Project1

标题: 如何做到装备特定装备后 在战斗开始时附加上指定状态 [打印本页]

作者: youda1018    时间: 2014-11-2 00:57
标题: 如何做到装备特定装备后 在战斗开始时附加上指定状态
如题 (我承认是我闪轨玩太多了)
如何做到装上特定装备后 在战斗开始时附加上指定状态
曾经考虑过做成被动技能
但是发现只要附加上体力值再生(OR魔力特技值)等
在一般场景中就会持续回复了 就不是我想要的
也参考过图书馆的光环类技能 但是又是全体的

作者: 三途亚梦    时间: 2014-11-2 01:24
可以告诉你一个比较简单但是工作量比较大的思路

在敌群里设置一个0回合间隔为战斗的事件,检测玩家人物是否持有某装备,
如果是,则给他附加一个状态。

然后这个状态在战斗结束后解除。

如果你觉得太麻烦,有脚本的思路。
作者: VIPArcher    时间: 2014-11-2 01:34
本帖最后由 VIPArcher 于 2014-11-2 01:36 编辑

随手写的,未测试
  1. # 随便写的,没有详细测试过。用法是在角色|职业|装备|敌人的备注栏
  2. # 备注<被动状态:状态ID> 例如<被动状态:18> 那么就会在战斗开始前
  3. # 会为该角色附加18号状态,战斗结束时移除这个状态。同时装备2个以
  4. # 上的有被动状态的装备亦可叠加,都会附加上对应的状态。
  5. class Game_Battler < Game_BattlerBase
  6.   #--------------------------------------------------------------------------
  7.   # ● 战斗开始处理
  8.   #--------------------------------------------------------------------------
  9.   alias state_battle_start on_battle_start
  10.   def on_battle_start
  11.     state_battle_start
  12.     self.feature_objects.each {|obj|
  13.     self.add_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 战斗结束时的处理
  17.   #--------------------------------------------------------------------------
  18.   alias state_on_battle_end on_battle_end
  19.   def on_battle_end
  20.     state_on_battle_end
  21.     self.feature_objects.each {|obj|
  22.     self.remove_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}
  23.   end
  24. end
复制代码

作者: youda1018    时间: 2014-11-2 01:42
VIPArcher 发表于 2014-11-2 01:34
随手写的,未测试

感谢 没有目前测试可用 没有报错
作者: youda1018    时间: 2014-11-2 02:36
VIPArcher 发表于 2014-11-2 01:34
随手写的,未测试

抱歉刚刚测试设置的状态都是1回合的性质没发现到  
设置的状态只要大于1回合時
当行动结束之后就会消失了
作者: youda1018    时间: 2014-11-2 02:45
VIPArcher 发表于 2014-11-2 01:34
随手写的,未测试


抱歉 复制到这个版本了

# ● 战斗行动结束时的处理
  #--------------------------------------------------------------------------
  alias state_action_end on_action_end
  def on_action_end
    state_action_end
    self.feature_objects.each {|obj|
    self.remove_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}




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