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

Project1

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

[已经解决] 关于脚本中如何判定生命值低于百分比后才能使用的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
297
在线时间
28 小时
注册时间
2018-12-13
帖子
8
跳转到指定楼层
1
发表于 2019-11-1 20:35:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在下是一名刚入脚本改造的菜鸡
很多地方都还搞不懂,单看帮助文档的解释依然没法理解(可能是我蠢吧┭┮﹏┭┮)
如题,我想要实现当使用者生命值低于百分之十五之后才能使用某个技能,但是一直想不到怎么去写,虽然模仿了帮助文档里的写法,但是还是不会,有很多问题。

Lv4.逐梦者

梦石
0
星屑
14767
在线时间
5839 小时
注册时间
2011-7-18
帖子
159

开拓者

2
发表于 2019-11-1 21:02:44 | 只看该作者
本帖最后由 gqxastg 于 2019-11-2 08:35 编辑

举个例子 敌我通用 单独插入一页
RUBY 代码复制
  1. class Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 检查技能的使用条件
  4.   #--------------------------------------------------------------------------
  5.   alias old_hp_limit_skill_conditions_met? skill_conditions_met?
  6.   def skill_conditions_met?(skill)
  7.     old_hp_limit_skill_conditions_met?(skill) &&
  8.     (skill.id == 10000 ? hp_rate <= 0.15 : true)
  9.   end
  10. end

评分

参与人数 2星屑 +100 +1 收起 理由
VIPArcher + 100 认可答案
Cupidk爱呗茶 + 1 塞糖

查看全部评分

这里岚风·雷,任饭、PM理性粉、UT/DR原作粉、(Trans)Furry自萌,半吊子技术一枚_(:з」∠)_    游戏制作交流工(liao)作(tian)室欢迎来玩!
【无偿/有偿】RGSS3(VA)脚本定制 + 合作招募/同好交友    修正Firefox/火狐浏览器的代码框复制问题(油猴脚本)
Click→←Click
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

3
发表于 2019-11-1 22:31:29 | 只看该作者

范例见工程,测试技能为130号。
Project1.zip (1.43 MB, 下载次数: 89)

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 自定义物品/技能使用条件 by Calendar99
  3. #------------------------------------------------------------------------------
  4. #  使用方法
  5. #  物品/技能备注中写<condition>xxx</condition> xxx为条件,支持多行
  6. #  condition也可以换成使用条件或者条件
  7. #  用user代表使用者,s[n]和v[n]分别代表n号开关和变量
  8. #
  9. #  例 <condition>user.level > 9</condition>   # 使用者等级大于9才能用
  10. #     <使用条件>s[1] && v[1] > 5</使用条件>    # 1号开关开启且1号变量大于5才能用
  11. #     <条件>s[1] && v[1] > 5</条件>    # 1号开关开启且1号变量大于5才能用
  12. #     其他用法参考伤害公式
  13. #==============================================================================
  14. class RPG::UsableItem
  15.   TAG_CONDITION = "(?:condition|(?:使用)?条件)"
  16.   REG_CONDITION = /<#{TAG_CONDITION}>((?:.\s?)+)<\/#{TAG_CONDITION}>/mi
  17.   #--------------------------------------------------------------------------
  18.   # ● [追加]自定义条件是否满足
  19.   #--------------------------------------------------------------------------
  20.   def condition_ok?(user)
  21.     s = $game_switches
  22.     v = $game_variables
  23.     self.note =~ REG_CONDITION ? eval($1) : true
  24.   end
  25. end
  26.  
  27. class Game_Actor
  28.   #--------------------------------------------------------------------------
  29.   # ● [别名修改]技能/物品的应用测试
  30.   #--------------------------------------------------------------------------
  31.   alias item_test_for_eval_condition item_test
  32.   def item_test(user, item)
  33.     return false unless item.condition_ok?(self) # self为使用者
  34.     item_test_for_eval_condition(user, item)
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● [别名修改]判定技能/使用物品是否可用
  38.   #--------------------------------------------------------------------------
  39.   alias usable_for_eval_condition usable?
  40.   def usable?(item)
  41.     return false unless extra_condition_met?(item)
  42.     usable_for_eval_condition(item)
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● [追加]判定技能/使用物品是否可用的额外条件
  46.   #--------------------------------------------------------------------------
  47.   def extra_condition_met?(item)
  48.     item.is_a?(RPG::UsableItem) && item.condition_ok?(self) # self为使用者
  49.   end
  50. end
  51.  
  52. class Window_BattleItem < Window_ItemList
  53.   #--------------------------------------------------------------------------
  54.   # ● [别名修改]查询使用列表中是否含有此物品
  55.   #--------------------------------------------------------------------------
  56.   alias include_for_eval_condition include?
  57.   def include?(item)
  58.     original_usable = BattleManager.actor.usable_for_eval_condition(item)
  59.     include_for_eval_condition(item) || original_usable
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● [子类覆盖]查询此物品是否可用
  63.   #--------------------------------------------------------------------------
  64.   def enable?(item)
  65.     BattleManager.actor.usable?(item)
  66.   end
  67. end

评分

参与人数 1星屑 +100 收起 理由
VIPArcher + 100 认可答案

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
297
在线时间
28 小时
注册时间
2018-12-13
帖子
8
4
 楼主| 发表于 2019-11-2 07:55:21 | 只看该作者
gqxastg 发表于 2019-11-1 21:02
举个例子 敌我通用 单独插入一页
class Game_BattlerBase
  #------------------------------------------- ...

感谢大佬啊
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
297
在线时间
28 小时
注册时间
2018-12-13
帖子
8
5
 楼主| 发表于 2019-11-2 07:56:14 | 只看该作者
KB.Driver 发表于 2019-11-1 22:31
范例见工程,测试技能为130号。

感谢大佬啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 15:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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