查看: 2656|回复: 3

[已经解决] 脚本盲求指教,我这样改有什么问题

[复制链接]
梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2015-11-21 09:12:13 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 yang1zhi 于 2015-11-21 09:24 编辑

这个是跨地图航行脚本中的某一段
我想要的效果是按下某键后,船就会向前冲出一段距离,等待几秒后再次使用。
可是我改完后是会报错的。
添加了#####那部分

[pre lang="ruby"]  =begin
--------------------------------------------------------------------------
=begin
--------------------------------------------------------------------------
跨地图航海辅佐脚本 v1.1
By 叶子
Date 4-8-2006
--------------------------------------------------------------------------
跨地图航海由一个脚本+一个事件完成

使用方法(请耐心阅读完全部说明!每一步都必不可少):

-插入本脚本到Main之上

-二选一:
一)插入航海脚本懒人插件到Main之上,或者
二)仔细观察插件脚本,找到:
    #-----------插入船命令-----------
    setup_ship
    #--------------------------------
   和
    #---------插入船刷新命令---------
    $game_player.shipping_update
    #--------------------------------
插入到Game_Map中相同位置(出现冲突时采用此方法)

-小船事件设置方法:
小船为范例工程工程里湖中的矿道车,可以改成其它船的行走图
第二页出现条件设置为航行中标志开关打开(默认50号开关),第三页为独立开关A打开

-水中通行设置方法:
把所有水的图块的地形标志设置为2,把水中不可通行图块(例如水中礁石)的地形标志
设置为3或以上(反正要大于水的地形标志)

注意事项:

-不明白小船实现原理的话最好不要改小船事件(除了注释说可以随便改的地方之外)
-默认角色航行中的话,50号开关打开,这时可以利用并行公共事件判断角色遇敌等
-航行中标志开关只能用于判断,不要在其它事件中打开或关闭,否则可能出错误

=end

SHIPPING_SWITCH = 50                # 默认50号开关为是否航行中标志开关

#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
#  处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================

class Game_Player < Game_Character
  TERRAIN_TAG = 2                     # 默认2号地形标志为水的地形标志
  attr_accessor :x                    # x坐标
  attr_accessor :y                    # y坐标
  attr_accessor :shipping             # 航海中标志
  attr_accessor :ship                 # 船信息
  #--------------------------------------------------------------------------
  # ● 航海更新
  #--------------------------------------------------------------------------
  def shipping_update
    return if !@shipping
    @old_x = @x
    @old_y = @y
    # 着陆判断初始化
    @land = false
    # 移动中、事件执行中、强制移动路线中、
    # 信息窗口一个也不显示的时候
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      # 如果方向键被按下、主角就朝那个方向移动
      case Input.dir4
      when 2
        ship_move_down
      when 4
        ship_move_left
      when 6
        ship_move_right
      when 8
        ship_move_up
      end
      #################
      if Input::C
        @move_speed = 6
        ship_move_forward
        @move_speed = 4
      end
      ###############
    end
    # 着陆判断
    if @land
      end_shipping
    end
  end
  #--------------------------------------------------------------------------
  # ● 开始航海
  #--------------------------------------------------------------------------
  def start_shipping(ship)
    $game_player.shipping = true
    need_setup = false
    # 处女航的话,刷新地图
    if @ship.nil?
      need_setup = true
    end
    # 把船事件添加入资料中
    @ship = ship
    # 移动角色
    @x = @ship.x
    @y = @ship.y
    # 记录位置
    @ship.ship_position = [$game_map.map_id, @ship.x, @ship.y]
    if need_setup
      $game_map.setup_ship
    end
    $game_map.need_refresh = true
  end
  #--------------------------------------------------------------------------
  # ● 着陆
  #--------------------------------------------------------------------------
  def end_shipping
    # 获取带头的角色
    actor = $game_party.actors[0]
    # 设置角色的文件名及对像
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    # 关闭标志
    @shipping = false
    $game_switches[SHIPPING_SWITCH] = false
    # 关闭停止时动画
    @step_anime = false
    # 回复速度
    @move_speed = 4
    # 设置船位置
    @ship.ship_position = [$game_map.map_id, @old_x, @old_y]
    @ship.moveto(@ship.ship_position[1], @ship.ship_position[2])
    # 刷新地图
    $game_map.need_refresh = true
  end
  #--------------------------------------------------------------------------
  # ● 向下移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_down(turn_enabled = true)
    # 面向下
    if turn_enabled
      turn_down
    end
    # 可以通行的场合
    if ship_passable?(@x, @y, 2)
      # 面向下
      turn_down
      # 更新坐标
      @y += 1
      # 增加步数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x, @y+1)
    end
  end
  #--------------------------------------------------------------------------
  # ● 向左移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_left(turn_enabled = true)
    # 面向左
    if turn_enabled
      turn_left
    end
    # 可以通行的情况下
    if ship_passable?(@x, @y, 4)
      # 面向左
      turn_left
      # 更新坐标
      @x -= 1
      # 增加步数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x-1, @y)
    end
  end
  #--------------------------------------------------------------------------
  # ● 向右移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_right(turn_enabled = true)
    # 面向右
    if turn_enabled
      turn_right
    end
    # 可以通行的场合
    if ship_passable?(@x, @y, 6)
      # 面向右
      turn_right
      # 更新坐标
      @x += 1
      # 增加部数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x+1, @y)
    end
  end
  #--------------------------------------------------------------------------
  # ● 向上移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_up(turn_enabled = true)
    # 面向上
    if turn_enabled
      turn_up
    end
    # 可以通行的情况下
    if ship_passable?(@x, @y, 8)
      # 面向上
      turn_up
      # 更新坐标
      @y -= 1
      # 歩数増加
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x, @y-1)
    end
  end
  ################################
    #--------------------------------------------------------------------------
  # ● 向前移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_forward(turn_enabled = true)
        # 面向上
    if turn_enabled
      turn_up
    end
    # 可以通行的情况下
    if ship_passable?(@x, @y, 8)
      # 面向上
      turn_up
      # 更新坐标
      @y -= 1
      # 歩数増加
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x, @y-1)
    end
    # 面向右
    if turn_enabled
      turn_right
    end
    # 可以通行的场合
    if ship_passable?(@x, @y, 6)
      # 面向右
      turn_right
      # 更新坐标
      @x += 1
      # 增加部数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x+1, @y)
    end
    # 面向左
    if turn_enabled
      turn_left
    end
    # 可以通行的情况下
    if ship_passable?(@x, @y, 4)
      # 面向左
      turn_left
      # 更新坐标
      @x -= 1
      # 增加步数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x-1, @y)
    end
    # 面向下
    if turn_enabled
      turn_down
    end
    # 可以通行的场合
    if ship_passable?(@x, @y, 2)
      # 面向下
      turn_down
      # 更新坐标
      @y += 1
      # 增加步数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x, @y+1)
    end

  end
#############################################
  #--------------------------------------------------------------------------
  # ● 可以通行判定
  #     x : X 坐标
  #     y : Y 坐标
  #     d : 方向 (0,2,4,6,8)  ※ 0 = 全方向不能通行的情况判定 (跳跃用)
  #--------------------------------------------------------------------------
  def ship_passable?(x, y, d)
    # 求得新的坐标
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    # 坐标在地图以外的情况
    unless $game_map.valid?(new_x, new_y)
      # 不能通行
      return false
    end
    # 穿透是 ON 的情况下
    if @through
      # 可以通行
      return true
    end
    # 循环全部事件
    for event in $game_map.events.values
      # 事件坐标于移动目标坐标一致的情况下
      if event.x == new_x and event.y == new_y
        # 穿透为 ON
        unless event.through
          # 自己就是事件的情况下
          if self != $game_player
            # 不能通行
            return false
          end
          # 自己是主角、对方的图形是角色的情况下
          if event.character_name != ""
            # 不能通行
            return false
          end
        end
      end
    end
    # 主角的坐标与移动目标坐标一致的情况下
    if $game_player.x == new_x and $game_player.y == new_y
      # 穿透为 ON
      unless $game_player.through
        # 自己的图形是角色的情况下
        if @character_name != ""
          # 不能通行
          return false
        end
      end
    end
    # 地形标志判断通行
    for i in [2, 1, 0]
      tile_id = $game_map.data[new_x, new_y, i]
      return false if tile_id == nil
    end
    if $game_map.terrain_tag(new_x, new_y) != TERRAIN_TAG
      if passable?(new_x, new_y, 0)
        @land = true
        return true
      end
      return false
    end
    # 可以通行
    return true
  end
end

#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
#  处理地图的类。包含卷动以及可以通行的判断功能。
# 本类的实例请参考 $game_map 。
#==============================================================================

class Game_Map
  attr_accessor :events                    # 事件
  def setup_ship
    return if $game_player.ship.nil?
    # 航行中或船停泊在此则创建船事件
    if $game_player.shipping or $game_player.ship.ship_position[0] == @map_id
      id = @events.values.size + 1
      # 防止事件错误
      while @events[id] != nil
        id += 1
      end
      @events[id] = $game_player.ship
      @events[id].id = id
      @events[id].map_id = @map_id
      @events[id].moveto($game_player.ship.ship_position[1],
      $game_player.ship.ship_position[2])
      # 不在航行中则关闭开关使船出现
      if !$game_player.shipping
        $game_switches[SHIPPING_SWITCH] = false
      end
    end
  end
end

#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
#  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能
# 在 Game_Map 类的内部使用。
#==============================================================================

class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :id                               # 事件ID
  attr_accessor :map_id                           # 地图ID
  attr_accessor :ship_position                    # 记录船位置数组
  #--------------------------------------------------------------------------
  # ● 越过目标判定 (不能将相同位置作为启动条件)
  #--------------------------------------------------------------------------
  def over_trigger?
    # 图形是角色、没有开启穿透的情况下
    if @character_name != "" and not @through
      # 启动判定是正面
      return false
    end
    # 地图上的这个位置不能通行,并且不在航海中的情况下
    if !$game_map.passable?(@x, @y, 0) and $game_player.shipping != true
      # 启动判定是正面
      return false
    end
    # 启动判定在同位置
    return true
  end
  def id=(new_id)
    @id = new_id
    @event.id = new_id
  end
end

#==============================================================================
# ■ Interpreter
#------------------------------------------------------------------------------
#  执行事件命令的解释器。本类在 Game_System 类
# 与 Game_Event 类的内部使用。
#==============================================================================

class Interpreter
  #--------------------------------------------------------------------------
  # ● 开始航海
  #--------------------------------------------------------------------------
  def start_shipping
    $game_player.start_shipping($game_map.events[@event_id])
  end
end
[/pre]  

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

梦石
0
星屑
1816
在线时间
2527 小时
注册时间
2010-10-12
回帖
1336

开拓者

发表于 2015-11-21 10:49:38 | 显示全部楼层
83 行
改为  if Input.trigger?(Input::C)

点评

已经利用脚本加事件完成了。不过还是不明白为什么要打if Input.trigger?(Input::C),这么麻烦  发表于 2015-11-23 15:38
修改后,按键,然后只是面朝下。并没有前进。  发表于 2015-11-21 13:16

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分


回复

使用道具 举报

梦石
0
星屑
590
在线时间
392 小时
注册时间
2012-1-20
回帖
212

开拓者

发表于 2015-11-21 13:10:02 | 显示全部楼层
文字描述的部分没有注释掉??

点评

文字是正常的,就是我添加了82行和236行内容  发表于 2015-11-21 13:33
支持一下下我的这个游戏吧~~
大雄与空间军团
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

 楼主| 发表于 2015-11-23 15:27:05 | 显示全部楼层
刺夜之枪 发表于 2015-11-21 10:49
83 行
改为  if Input.trigger?(Input::C)

我这样写可以达到90%的效果了。可是问题是加速后的      
@move_speed = 6
怎么变回来。
       @move_speed = 4插入到END前就没有加速效果了
不加就一直是6速度

[fold=脚本]=begin
--------------------------------------------------------------------------
=begin
--------------------------------------------------------------------------
跨地图航海辅佐脚本 v1.1
By 叶子
Date 4-8-2006
--------------------------------------------------------------------------
跨地图航海由一个脚本+一个事件完成

使用方法(请耐心阅读完全部说明!每一步都必不可少):

-插入本脚本到Main之上

-二选一:
一)插入航海脚本懒人插件到Main之上,或者
二)仔细观察插件脚本,找到:
    #-----------插入船命令-----------
    setup_ship
    #--------------------------------
   和
    #---------插入船刷新命令---------
    $game_player.shipping_update
    #--------------------------------
插入到Game_Map中相同位置(出现冲突时采用此方法)

-小船事件设置方法:
小船为范例工程工程里湖中的矿道车,可以改成其它船的行走图
第二页出现条件设置为航行中标志开关打开(默认50号开关),第三页为独立开关A打开

-水中通行设置方法:
把所有水的图块的地形标志设置为2,把水中不可通行图块(例如水中礁石)的地形标志
设置为3或以上(反正要大于水的地形标志)

注意事项:

-不明白小船实现原理的话最好不要改小船事件(除了注释说可以随便改的地方之外)
-默认角色航行中的话,50号开关打开,这时可以利用并行公共事件判断角色遇敌等
-航行中标志开关只能用于判断,不要在其它事件中打开或关闭,否则可能出错误

=end

SHIPPING_SWITCH = 50                # 默认50号开关为是否航行中标志开关

#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
#  处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================

class Game_Player < Game_Character
  TERRAIN_TAG = 2                     # 默认2号地形标志为水的地形标志
  attr_accessor :x                    # x坐标
  attr_accessor :y                    # y坐标
  attr_accessor :shipping             # 航海中标志
  attr_accessor :ship                 # 船信息
  #--------------------------------------------------------------------------
  # ● 航海更新
  #--------------------------------------------------------------------------
  def shipping_update
    return if !@shipping
    @old_x = @x
    @old_y = @y
    # 着陆判断初始化
    @land = false
    # 移动中、事件执行中、强制移动路线中、
    # 信息窗口一个也不显示的时候
    unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
      # 如果方向键被按下、主角就朝那个方向移动
      case Input.dir4
      when 2
        ship_move_down
      when 4
        ship_move_left
      when 6
        ship_move_right
      when 8
        ship_move_up
      end
    end
    ###############
     if Input.trigger?(Input::C)
       @move_speed = 6
       @wait_count = 1
       ship_move_forward
       ship_move_forward
       ship_move_forward
       @wait_count = 20

     end
     ###############
    # 着陆判断
    if @land
      end_shipping
    end
  end
  #--------------------------------------------------------------------------
  # ● 开始航海
  #--------------------------------------------------------------------------
  def start_shipping(ship)
    $game_player.shipping = true
    need_setup = false
    # 处女航的话,刷新地图
    if @ship.nil?
      need_setup = true
    end
    # 把船事件添加入资料中
    @ship = ship
    # 移动角色
    @x = @ship.x
    @y = @ship.y
    # 记录位置
    @ship.ship_position = [$game_map.map_id, @ship.x, @ship.y]
    if need_setup
      $game_map.setup_ship
    end
    $game_map.need_refresh = true
  end
  #--------------------------------------------------------------------------
  # ● 着陆
  #--------------------------------------------------------------------------
  def end_shipping
    # 获取带头的角色
    actor = $game_party.actors[0]
    # 设置角色的文件名及对像
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    # 关闭标志
    @shipping = false
    $game_switches[SHIPPING_SWITCH] = false
    # 关闭停止时动画
    @step_anime = false
    # 回复速度
    @move_speed = 4
    # 设置船位置
    @ship.ship_position = [$game_map.map_id, @old_x, @old_y]
    @ship.moveto(@ship.ship_position[1], @ship.ship_position[2])
    # 刷新地图
    $game_map.need_refresh = true
  end
  #--------------------------------------------------------------------------
  # ● 向下移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_down(turn_enabled = true)
    # 面向下
    if turn_enabled
      turn_down
    end
    # 可以通行的场合
    if ship_passable?(@x, @y, 2)
      # 面向下
      turn_down
      # 更新坐标
      @y += 1
      # 增加步数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x, @y+1)
    end
  end
  #--------------------------------------------------------------------------
  # ● 向左移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_left(turn_enabled = true)
    # 面向左
    if turn_enabled
      turn_left
    end
    # 可以通行的情况下
    if ship_passable?(@x, @y, 4)
      # 面向左
      turn_left
      # 更新坐标
      @x -= 1
      # 增加步数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x-1, @y)
    end
  end
  #--------------------------------------------------------------------------
  # ● 向右移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_right(turn_enabled = true)
    # 面向右
    if turn_enabled
      turn_right
    end
    # 可以通行的场合
    if ship_passable?(@x, @y, 6)
      # 面向右
      turn_right
      # 更新坐标
      @x += 1
      # 增加部数
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x+1, @y)
    end
  end
  #--------------------------------------------------------------------------
  # ● 向上移动
  #     turn_enabled : 本场地位置更改许可标志
  #--------------------------------------------------------------------------
  def ship_move_up(turn_enabled = true)
    # 面向上
    if turn_enabled
      turn_up
    end
    # 可以通行的情况下
    if ship_passable?(@x, @y, 8)
      # 面向上
      turn_up
      # 更新坐标
      @y -= 1
      # 歩数増加
      increase_steps
    # 不能通行的情况下
    else
      # 接触事件的启动判定
      check_event_trigger_touch(@x, @y-1)
    end
  end
  
  #################
  #向前移动
    def ship_move_forward(turn_enabled = true)
    case @direction
    when 2
      ship_move_down(false)
    when 4
      ship_move_left(false)
    when 6
      ship_move_right(false)
    when 8
      ship_move_up(false)
    end
  end
######################
  #--------------------------------------------------------------------------
  # ● 可以通行判定
  #     x : X 坐标
  #     y : Y 坐标
  #     d : 方向 (0,2,4,6,8)  ※ 0 = 全方向不能通行的情况判定 (跳跃用)
  #--------------------------------------------------------------------------
  def ship_passable?(x, y, d)
    # 求得新的坐标
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
    # 坐标在地图以外的情况
    unless $game_map.valid?(new_x, new_y)
      # 不能通行
      return false
    end
    # 穿透是 ON 的情况下
    if @through
      # 可以通行
      return true
    end
    # 循环全部事件
    for event in $game_map.events.values
      # 事件坐标于移动目标坐标一致的情况下
      if event.x == new_x and event.y == new_y
        # 穿透为 ON
        unless event.through
          # 自己就是事件的情况下
          if self != $game_player
            # 不能通行
            return false
          end
          # 自己是主角、对方的图形是角色的情况下
          if event.character_name != ""
            # 不能通行
            return false
          end
        end
      end
    end
    # 主角的坐标与移动目标坐标一致的情况下
    if $game_player.x == new_x and $game_player.y == new_y
      # 穿透为 ON
      unless $game_player.through
        # 自己的图形是角色的情况下
        if @character_name != ""
          # 不能通行
          return false
        end
      end
    end
    # 地形标志判断通行
    for i in [2, 1, 0]
      tile_id = $game_map.data[new_x, new_y, i]
      return false if tile_id == nil
    end
    if $game_map.terrain_tag(new_x, new_y) != TERRAIN_TAG
      if passable?(new_x, new_y, 0)
        @land = true
        return true
      end
      return false
    end
    # 可以通行
    return true
  end
end

#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
#  处理地图的类。包含卷动以及可以通行的判断功能。
# 本类的实例请参考 $game_map 。
#==============================================================================

class Game_Map
  attr_accessor :events                    # 事件
  def setup_ship
    return if $game_player.ship.nil?
    # 航行中或船停泊在此则创建船事件
    if $game_player.shipping or $game_player.ship.ship_position[0] == @map_id
      id = @events.values.size + 1
      # 防止事件错误
      while @events[id] != nil
        id += 1
      end
      @events[id] = $game_player.ship
      @events[id].id = id
      @events[id].map_id = @map_id
      @events[id].moveto($game_player.ship.ship_position[1],
      $game_player.ship.ship_position[2])
      # 不在航行中则关闭开关使船出现
      if !$game_player.shipping
        $game_switches[SHIPPING_SWITCH] = false
      end
    end
  end
end

#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
#  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能
# 在 Game_Map 类的内部使用。
#==============================================================================

class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :id                               # 事件ID
  attr_accessor :map_id                           # 地图ID
  attr_accessor :ship_position                    # 记录船位置数组
  #--------------------------------------------------------------------------
  # ● 越过目标判定 (不能将相同位置作为启动条件)
  #--------------------------------------------------------------------------
  def over_trigger?
    # 图形是角色、没有开启穿透的情况下
    if @character_name != "" and not @through
      # 启动判定是正面
      return false
    end
    # 地图上的这个位置不能通行,并且不在航海中的情况下
    if !$game_map.passable?(@x, @y, 0) and $game_player.shipping != true
      # 启动判定是正面
      return false
    end
    # 启动判定在同位置
    return true
  end
  def id=(new_id)
    @id = new_id
    @event.id = new_id
  end
end

#==============================================================================
# ■ Interpreter
#------------------------------------------------------------------------------
#  执行事件命令的解释器。本类在 Game_System 类
# 与 Game_Event 类的内部使用。
#==============================================================================

class Interpreter
  #--------------------------------------------------------------------------
  # ● 开始航海
  #--------------------------------------------------------------------------
  def start_shipping
    $game_player.start_shipping($game_map.events[@event_id])
  end
end[/fold]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部