设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2508|回复: 6
打印 上一主题 下一主题

[已经解决] 求教一下设计一个不能吃药的角色问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1971
在线时间
926 小时
注册时间
2015-10-26
帖子
356

开拓者

跳转到指定楼层
1
发表于 2018-11-28 21:13:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 踢腿水上飘 于 2018-11-29 06:41 编辑

我想设计一个不能对其使用恢复道具的角色
本来我的思路是在
RUBY 代码复制
  1. def item_test(user, item)
  2.     return false if item.for_dead_friend? != dead?
  3.     return true if $game_party.in_battle
  4.     return true if item.for_opponent?
  5.     return true if item.damage.recover? && item.damage.to_hp? && hp < mhp
  6.     return true if item.damage.recover? && item.damage.to_mp? && mp < mmp
  7.     return true if item_has_any_valid_effects?(user, item)
  8.     return false
  9.   end

里面插入一行
RUBY 代码复制
  1. return false if self ==  $game_actors[2]


结果发现战斗是还是可以对该角色使用恢复道具,只不过是不会产生效果罢了,离目标还差一点
如何才能做到直接不让对他用药?

Lv4.逐梦者

梦石
8
星屑
4801
在线时间
1567 小时
注册时间
2014-1-9
帖子
402

开拓者

2
发表于 2018-11-28 21:32:10 | 只看该作者
RUBY 代码复制
  1. class Game_Actor
  2.   alias hawkeye_no_recovery_item_item_conditions_met? item_conditions_met?
  3.   def item_conditions_met?(item)
  4.     hawkeye_no_recovery_item_item_conditions_met?(item) && !(/<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note)
  5.   end
  6. end


使用方法:在恢复道具的备注区写<恢复道具>,在禁用恢复道具的角色的备注区写<禁用恢复道具>
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1971
在线时间
926 小时
注册时间
2015-10-26
帖子
356

开拓者

3
 楼主| 发表于 2018-11-29 06:41:43 | 只看该作者
余音·魔眼 发表于 2018-11-28 21:32
class Game_Actor
  alias hawkeye_no_recovery_item_item_conditions_met? item_conditions_met?
  def it ...

你这个和我的方法效果一样啊,在战斗中还是可以给她用药,只是用了药也没效果而已~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
帖子
583
4
发表于 2018-11-29 09:28:57 | 只看该作者
我觉得你应该在“选择使用物品的目标”这一步上做筛选。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
4801
在线时间
1567 小时
注册时间
2014-1-9
帖子
402

开拓者

5
发表于 2018-11-30 17:18:59 | 只看该作者
RUBY 代码复制
  1. class Game_Actor
  2.   alias hawkeye_no_recovery_item_item_test item_test
  3.   def item_test(user, item)
  4.     return false if /<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note
  5.     hawkeye_no_recovery_item_item_test(user, item)
  6.   end
  7. end
  8. class Window_BattleItem
  9.   alias hawkeye_no_recovery_item_enable? enable?
  10.   def enable?(item)
  11.     actor = BattleManager.actor.actor
  12.     hawkeye_no_recovery_item_enable?(item) && !(/<禁用恢复道具>/ =~ actor.note && /<恢复道具>/ =~ item.note)
  13.   end
  14. end

点评

不知道你有没有插入什么其他脚本,反正我测试了是好的。  发表于 2018-12-6 21:16
还是一样呀  发表于 2018-12-3 20:08
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 00:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表