Project1

标题: 如何判断带有20号属性防御的防具被卸下? [打印本页]

作者: 木许许    时间: 2011-10-12 17:21
标题: 如何判断带有20号属性防御的防具被卸下?
想作为判断写在脚本里:当带有20号属性防御的防具被卸下,就执行。。。。。。dsu_plus_rewardpost_czw
作者: 后知后觉    时间: 2011-10-12 17:44
在 Game_Actor 里的这一块
  1.   #--------------------------------------------------------------------------
  2.   # ● 更新自动状态
  3.   #     old_armor : 卸下防具
  4.   #     new_armor : 装备防具
  5.   #--------------------------------------------------------------------------
  6.   def update_auto_state(old_armor, new_armor)
  7.     # 强制解除卸下防具的自动状态
  8.     if old_armor != nil and old_armor.auto_state_id != 0
  9.       remove_state(old_armor.auto_state_id, true)
  10.     end
  11.     # 强制附加装备防具的自动状态
  12.     if new_armor != nil and new_armor.auto_state_id != 0
  13.       add_state(new_armor.auto_state_id, true)
  14.     end
  15.   end
复制代码
这里是做的自动状态的判定.而你要判断的是属性.
去 F1 里搜索 RPG::Armor 找到了防具的类
找到了这样的信息
guard_element_set
属性防御。为属性 ID 的数组。

然后模仿默认的这3行自己添加进去吧.
  1.     if old_armor != nil and old_armor.auto_state_id != 0
  2.       remove_state(old_armor.auto_state_id, true)
  3.     end
复制代码
要判断一个数组里是否有某元素.可以用  include? 方法
作者: 木许许    时间: 2011-10-12 18:05
后知后觉 发表于 2011-10-12 17:44
在 Game_Actor 里的这一块这里是做的自动状态的判定.而你要判断的是属性.
去 F1 里搜索 RPG::Armor 找到了 ...

这样?  

if old_armor != nil and old_armor.guard_element_set.include?(20)
      XXXXXXXXXXXXXXX
    end
    if new_armor != nil and new_armor.guard_element_set.include?(20)
      XXXXXXXXXXXXXXX
    end
作者: 后知后觉    时间: 2011-10-12 19:15
木许许 发表于 2011-10-12 18:05
这样?  

if old_armor != nil and old_armor.guard_element_set.include?(20)

是添加不是修改.
把默认的改了就没有防具的自动状态了哦.
只想在卸下的时候干某事.就只判断 old_armor 就行了.new的那个是新装上的防具的判断.




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