赞 | 0 |
VIP | 0 |
好人卡 | 3 |
积分 | 1 |
经验 | 5478 |
最后登录 | 2017-1-12 |
在线时间 | 124 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 124 小时
- 注册时间
- 2010-8-8
- 帖子
- 58
|
本帖最后由 psychopiz 于 2012-1-11 12:37 编辑
qq523203115 发表于 2012-1-10 00:29
那么自己受到了一个技能,然后被干掉后自动复活怎么做?
自动复活就是在死亡的判定之前加上一个是否有自动复活这个状态的判定,如果有的话就直接加满HP或者MaxHP的百分之多少,然后去掉这个状态就行了,这样就能达到信春哥原地满BUff复活的效果了。
首先是Hp不等于零的直接即死得情况,在class Game_Battler找到
class Game_Battler
#--------------------------------------------------------------------------
# ● 附加状态
# state_id : 状态 ID
#--------------------------------------------------------------------------
def add_state(state_id)
state = $data_states[state_id] # 获取状态资料
return if state == nil # 资料是否为空?
return if state_ignore?(state_id) # 状态是否无视?
return if state_id == 6 and self.state?(19)
return if state_id == 19 and self.state?(6)
return if state_id == 8 and self.state?(20)
return if state_id == 20 and self.state?(8)
unless state?(state_id) # 状态是否存在?
unless state_offset?(state_id) # 状态是否抵销?
@states.push(state_id) # 加入状态
end
if state_id == 1 # 如状态是「无法战斗」(1号状态)
#————————————————————————————————————
if state?(200) # 如果有200号状态,200为自动复活状态ID
@hp = maxhp # 满血复活
remove_state(200) # 自动复活状态消失
@removed_states.push(200)
else
#————————————————————————————————————
@hp = 0 # 设体力为0
#———————————————————————————————————————
end
#————————————————————————————————————
end
unless inputable? # 除非角色无法输入命令
@action.clear # 清除所有行动
end
for i in state.state_set # 获取「移除状态」列表
remove_state(i) # 移除状态
@removed_states.delete(i) # 清除
end
sort_states # 依照优先度排列状态
end
@state_turns[state_id] = state.hold_turn # 设置回合数
end
end
然后是受到伤害后死亡,然后自动复活,还是在class Game_Battler里找:
#--------------------------------------------------------------------------
# ● 更改 HP
# hp : 新的 HP
#--------------------------------------------------------------------------
def hp=(hp)
@hp = [[hp, maxhp].min, 0].max
if @hp == 0 and not state?(1) and not @immortal
————————————————————————————————
if state?(200)
@hp = maxhp
remove_state(200)
@removed_states.push(200)
else
————————————————————————————————
add_state(1) # 附加「无法战斗」状态(1号状态)
@added_states.push(1)
————————————————————————————————
end
————————————————————————————————
elsif @hp > 0 and state?(1)
remove_state(1) # 移除「无法战斗」状态(1号状态)
@removed_states.push(1)
end
end
大体上就是这个思路了。。 |
|