Project1

标题: 怎么实现当角色死亡时自动离队 [打印本页]

作者: 穿越时空之剑    时间: 2018-2-9 18:22
标题: 怎么实现当角色死亡时自动离队
本帖最后由 穿越时空之剑 于 2018-2-9 19:08 编辑

我倒是找到了一个角色死亡后执行公共事件的脚本,但是只在战斗画面有效…求教怎么实现在地图画面上角色死亡时也能自动离队。(就是当角色被附加无法战斗状态时,角色自动离队)
作者: 穿越时空之剑    时间: 2018-2-9 18:40
这是脚本
死亡公共事件脚本

或者是我数据库设置的有问题?
图片


作者: chd114    时间: 2018-2-9 23:36
本帖最后由 chd114 于 2018-2-9 23:47 编辑

可以從Game_BattlerBase入手

  1.   #--------------------------------------------------------------------------
  2.   # ● 更改 HP
  3.   #--------------------------------------------------------------------------
  4.   def hp=(hp)
  5.     @hp = hp
  6.     refresh
  7.   end
复制代码

在這裡面判定hp是否扣光並且是角色
如果是角色就可以$game_party.remove_actor(self.id)

這樣的話改成

  1.   #--------------------------------------------------------------------------
  2.   # ● 更改 HP
  3.   #--------------------------------------------------------------------------
  4.   def hp=(hp)
  5.     @hp = hp
  6.     $game_party.remove_actor(id) if actor? and hp<=0
  7.     refresh
  8.   end
复制代码

就可以了


注意,在地图上通过事件指令减少生命时,需要把【允许导致无法战斗】勾选
作者: 穿越时空之剑    时间: 2018-2-10 00:48
感谢chd114的帮助,最终我照猫画虎从Game_Battler中附加新的状态入手,如果被附加的状态是无法战斗状态并且被附加状态的是角色时,角色离队。这样结合脚本死亡公共事件的话无论是战斗中还是地图中角色死亡都可以自动离队了。
  1.   #--------------------------------------------------------------------------
  2.   # ● 附加新的状态
  3.   #--------------------------------------------------------------------------
  4.   def add_new_state(state_id)
  5.     $game_party.remove_actor(id) if actor? and state_id == death_state_id
  6.     @states.push(state_id)
  7.     on_restrict if restriction > 0
  8.     sort_states
  9.     refresh
  10.   end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1