| 赞 | 353 |
| VIP | |
| 好人卡 | |
| 积分 | 392 |
| 经验 | |
| 最后登录 | 2026-8-25 |
| 在线时间 | 11155 小时 |
- 梦石
- 0
- 星屑
- 39236
- 在线时间
- 11155 小时
- 注册时间
- 2009-3-15
- 回帖
- 4768
|
发表于 2018-5-16 19:27:21
|
显示全部楼层
本帖最后由 soulsaga 于 2018-5-17 11:22 编辑
[pre lang="ruby"]
module NODMG
GUARD_ONCE_STATE = [
447, # 状态ID
448,
449,
]
GUARD_TIME = [
1,#免伤次数
2,
3,
]
end
class Game_Battler
alias init0622 initialize
def initialize
init0622
@guard_times = 0
end
alias add_state_0622 add_state
def add_state(state_id)
for i in 0..NODMG::GUARD_ONCE_STATE.size-1
@guard_times += NODMG::GUARD_TIME if state_id == NODMG::GUARD_ONCE_STATE
@state_id = state_id if state_id == NODMG::GUARD_ONCE_STATE
end
add_state_0622(state_id)
end
alias remove_state_0622 remove_state
def remove_state(state_id)
for i in 0..NODMG::GUARD_ONCE_STATE.size-1
@guard_times = 0 if state_id == NODMG::GUARD_ONCE_STATE
end
remove_state_0622(state_id)
end
def item_apply(user, item)
@result.clear
@result.used = item_test(user, item)
@result.missed = (@result.used && rand >= item_hit(user, item))
@result.evaded = (!@result.missed && rand < item_eva(user, item))
return unless @result.hit?
if @guard_times > 0
if (@guard_times -= 1) <= 0
remove_state(@state_id)
return
end
return if @guard_times > 0
end
end
end
unless item.damage.none?
@result.critical = (rand < item_cri(user, item))
make_damage_value(user, item)
execute_damage(user)
end
item.effects.each {|effect| item_effect_apply(user, item, effect) }
item_user_effect(user, item)
end
end
[/pre]
未测试..不保证可行..
回合数应该可以在数据库设置.. |
|