查看: 1376|回复: 3

[已经解决] 如何判断带有20号属性防御的防具被卸下?

  [复制链接]
梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
回帖
258
发表于 2011-10-12 17:21:37 | 显示全部楼层 |阅读模式

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

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

×
想作为判断写在脚本里:当带有20号属性防御的防具被卸下,就执行。。。。。。
梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

发表于 2011-10-12 17:44:39 | 显示全部楼层
在 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? 方法











你知道得太多了

回复

使用道具 举报

梦石
0
星屑
50
在线时间
200 小时
注册时间
2008-3-1
回帖
258
 楼主| 发表于 2011-10-12 18:05:52 | 显示全部楼层
后知后觉 发表于 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
回复

使用道具 举报

梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

发表于 2011-10-12 19:15:42 | 显示全部楼层
木许许 发表于 2011-10-12 18:05
这样?  

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

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











你知道得太多了

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部