赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 4 |
经验 | 4048 |
最后登录 | 2021-4-3 |
在线时间 | 125 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 417
- 在线时间
- 125 小时
- 注册时间
- 2010-10-11
- 帖子
- 96
|
6楼
楼主 |
发表于 2015-2-4 22:11:16
|
只看该作者
三途亚梦 发表于 2015-2-4 14:44
嗯,果然你没理解那个帖子的原理呀。
公共事件不是必要的,帖子里的公共事件只是为了给状态追加一个开关 ...
像这样,只有前者有效果!~~
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
state_resist_set.each {|state_id| erase_state(state_id) }
@hp = [[@hp, mhp].min, 0].max
@mp = [[@mp, mmp].min, 0].max
@hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
if self.actor? && $game_actors.include?(self) #这里是判断角色是否是玩家,且所有人物是否已经初始化
dead = 0 #这里是设置了一个临时变量
$game_party.battle_members.each {|actor| dead += 1 if actor.dead?} #检测参战人物中死亡者的个数,如果有则让dead变量+1
case dead #根据dead变量的值,判断主体是否带有特定装备,并附加对应的状态
when 1 #如果死亡者为1个,附加状态3
self.armors.include?($data_armors[52]) ? add_state(36) : remove_state(36)
when 2 #如果死亡者为2个,附加状态4
self.armors.include?($data_armors[52]) ? add_state(37) : remove_state(37)
when 3 #如果死亡者为3个,附加状态5
self.armors.include?($data_armors[52]) ? add_state(38) : remove_state(38)
if self.state?(2) && self.actor?
#↑这句的意思是当self在状态2且是玩家人物时返回true进入接下来的判断,否者跳过。
# 因为敌人是没有装备的,所以不添加是否是玩家的判断会报错。
self.armors.include?($data_armors[58]) ? add_state(30) : remove_state(30)
# 上面这句的格式叫“三目运算符”,它的作用是当?号前的内容是true时返回 : 前的内容,如果不是则返回 : 后的内容;
# self.armors.include?($data_armors[1]) 的意思就是当主体的装备有防具1(也就是布衣时),
# 自动附加状态3,否则移除状态3。
end
end
end
end |
|