def calc_mp_cost(skill)
n = skill.mp_cost
n = -n if state?(200) # 200之状态ID
if half_mp_cost
return n / 2
else
return n
end
end作者: qq523203115 时间: 2012-1-10 00:29
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