查看: 3173|回复: 4

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

[复制链接]
梦石
0
星屑
314
在线时间
30 小时
注册时间
2018-12-13
回帖
5
发表于 2019-11-1 20:35:06 | 显示全部楼层 |阅读模式

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

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

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

开拓者

发表于 2019-11-1 21:02:44 | 显示全部楼层
本帖最后由 gqxastg 于 2019-11-2 08:35 编辑

举个例子 敌我通用 单独插入一页
[pre lang="ruby"]class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 检查技能的使用条件
  #--------------------------------------------------------------------------
  alias old_hp_limit_skill_conditions_met? skill_conditions_met?
  def skill_conditions_met?(skill)
    old_hp_limit_skill_conditions_met?(skill) &&
    (skill.id == 10000 ? hp_rate <= 0.15 : true)
  end
end[/pre]

评分

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

查看全部评分

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

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-11-1 22:31:29 | 显示全部楼层

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

[pre lang="ruby"]#==============================================================================
# ■ 自定义物品/技能使用条件 by Calendar99
#------------------------------------------------------------------------------
#  使用方法
#  物品/技能备注中写<condition>xxx</condition> xxx为条件,支持多行
#  condition也可以换成使用条件或者条件
#  用user代表使用者,s[n]和v[n]分别代表n号开关和变量
#
#  例 <condition>user.level > 9</condition>   # 使用者等级大于9才能用
#     <使用条件>s[1] && v[1] > 5</使用条件>    # 1号开关开启且1号变量大于5才能用
#     <条件>s[1] && v[1] > 5</条件>    # 1号开关开启且1号变量大于5才能用
#     其他用法参考伤害公式
#==============================================================================
class RPG::UsableItem
  TAG_CONDITION = "(?:condition|(?:使用)?条件)"
  REG_CONDITION = /<#{TAG_CONDITION}>((?:.\s?)+)<\/#{TAG_CONDITION}>/mi
  #--------------------------------------------------------------------------
  # ● [追加]自定义条件是否满足
  #--------------------------------------------------------------------------
  def condition_ok?(user)
    s = $game_switches
    v = $game_variables
    self.note =~ REG_CONDITION ? eval($1) : true
  end
end

class Game_Actor
  #--------------------------------------------------------------------------
  # ● [别名修改]技能/物品的应用测试
  #--------------------------------------------------------------------------
  alias item_test_for_eval_condition item_test
  def item_test(user, item)
    return false unless item.condition_ok?(self) # self为使用者
    item_test_for_eval_condition(user, item)
  end
  #--------------------------------------------------------------------------
  # ● [别名修改]判定技能/使用物品是否可用
  #--------------------------------------------------------------------------
  alias usable_for_eval_condition usable?
  def usable?(item)
    return false unless extra_condition_met?(item)
    usable_for_eval_condition(item)
  end
  #--------------------------------------------------------------------------
  # ● [追加]判定技能/使用物品是否可用的额外条件
  #--------------------------------------------------------------------------
  def extra_condition_met?(item)
    item.is_a?(RPG::UsableItem) && item.condition_ok?(self) # self为使用者
  end
end

class Window_BattleItem < Window_ItemList
  #--------------------------------------------------------------------------
  # ● [别名修改]查询使用列表中是否含有此物品
  #--------------------------------------------------------------------------
  alias include_for_eval_condition include?
  def include?(item)
    original_usable = BattleManager.actor.usable_for_eval_condition(item)
    include_for_eval_condition(item) || original_usable
  end
  #--------------------------------------------------------------------------
  # ● [子类覆盖]查询此物品是否可用
  #--------------------------------------------------------------------------
  def enable?(item)
    BattleManager.actor.usable?(item)
  end
end
[/pre]

评分

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

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
314
在线时间
30 小时
注册时间
2018-12-13
回帖
5
 楼主| 发表于 2019-11-2 07:55:21 | 显示全部楼层
gqxastg 发表于 2019-11-1 21:02
举个例子 敌我通用 单独插入一页
class Game_BattlerBase
  #------------------------------------------- ...

感谢大佬啊
回复

使用道具 举报

梦石
0
星屑
314
在线时间
30 小时
注册时间
2018-12-13
回帖
5
 楼主| 发表于 2019-11-2 07:56:14 | 显示全部楼层
KB.Driver 发表于 2019-11-1 22:31
范例见工程,测试技能为130号。

感谢大佬啊
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部