Project1
标题: 求教一下设计一个不能吃药的角色问题 [打印本页]
作者: 踢腿水上飘 时间: 2018-11-28 21:13
标题: 求教一下设计一个不能吃药的角色问题
本帖最后由 踢腿水上飘 于 2018-11-29 06:41 编辑
我想设计一个不能对其使用恢复道具的角色
本来我的思路是在
def item_test(user, item)
return false if item.for_dead_friend? != dead?
return true if $game_party.in_battle
return true if item.for_opponent?
return true if item.damage.recover? && item.damage.to_hp? && hp < mhp
return true if item.damage.recover? && item.damage.to_mp? && mp < mmp
return true if item_has_any_valid_effects?(user, item)
return false
end
def item_test(user, item)
return false if item.for_dead_friend? != dead?
return true if $game_party.in_battle
return true if item.for_opponent?
return true if item.damage.recover? && item.damage.to_hp? && hp < mhp
return true if item.damage.recover? && item.damage.to_mp? && mp < mmp
return true if item_has_any_valid_effects?(user, item)
return false
end
里面插入一行
return false if self == $game_actors[2]
return false if self == $game_actors[2]
结果发现战斗是还是可以对该角色使用恢复道具,只不过是不会产生效果罢了,离目标还差一点
如何才能做到直接不让对他用药?
作者: 余音·魔眼 时间: 2018-11-28 21:32
class Game_Actor
alias hawkeye_no_recovery_item_item_conditions_met? item_conditions_met?
def item_conditions_met?(item)
hawkeye_no_recovery_item_item_conditions_met?(item) && !(/<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note)
end
end
class Game_Actor
alias hawkeye_no_recovery_item_item_conditions_met? item_conditions_met?
def item_conditions_met?(item)
hawkeye_no_recovery_item_item_conditions_met?(item) && !(/<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note)
end
end
使用方法:在恢复道具的备注区写<恢复道具>,在禁用恢复道具的角色的备注区写<禁用恢复道具>
作者: 踢腿水上飘 时间: 2018-11-29 06:41
你这个和我的方法效果一样啊,在战斗中还是可以给她用药,只是用了药也没效果而已~
作者: 梦想家大魔王 时间: 2018-11-29 09:28
我觉得你应该在“选择使用物品的目标”这一步上做筛选。
作者: 余音·魔眼 时间: 2018-11-30 17:18
class Game_Actor
alias hawkeye_no_recovery_item_item_test item_test
def item_test(user, item)
return false if /<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note
hawkeye_no_recovery_item_item_test(user, item)
end
end
class Window_BattleItem
alias hawkeye_no_recovery_item_enable? enable?
def enable?(item)
actor = BattleManager.actor.actor
hawkeye_no_recovery_item_enable?(item) && !(/<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note)
end
end
class Game_Actor
alias hawkeye_no_recovery_item_item_test item_test
def item_test(user, item)
return false if /<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note
hawkeye_no_recovery_item_item_test(user, item)
end
end
class Window_BattleItem
alias hawkeye_no_recovery_item_enable? enable?
def enable?(item)
actor = BattleManager.actor.actor
hawkeye_no_recovery_item_enable?(item) && !(/<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note)
end
end
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |