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

Project1

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

[已经解决] HP低于多少时附加一个状态的被动技能

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
跳转到指定楼层
1
发表于 2017-1-26 11:48:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 fjm 于 2017-1-26 13:08 编辑

原本的脚本是这样的
RUBY 代码复制
  1. module P
  2.   #==============参==============数==============设==============定==============
  3.   # 请在下面设定被动技能的ID,当角色拥有该被动技能时才会触发状态附加。
  4.   # 默认设置是127号技能。
  5.     SKILL_ID = 127
  6.   # 请在下面设定附加状态的ID
  7.   # 默认设置是26号状态。
  8.     STATE_ID = 26
  9.   # 请设定HP限定变量的ID,用于控制各项数值。
  10.   # 默认设置是10号变量。
  11.     HP_VARIABLE = 10
  12.   # HP限定变量是类似这样一个特殊的一维数组变量:
  13.   # $game_variables[P叔::HP_VARIABLE] = [40,35,0,45]
  14.   # 默认表示当队伍1号的HP小于或等于40才附加状态;当队伍2号的HP小于或等于35才附加状态;
  15.   # 队伍3号无效化,队伍4号的HP小于或等于45才附加状态
  16.   #==============================================================================
  17. end
  18.  
  19. class Scene_Base
  20.  
  21.   #--------------------------------------------------------------------------
  22.   # ● 更新画面
  23.   #--------------------------------------------------------------------------
  24.   def update
  25.     auto_state_by_skill                                 # 添加了本句
  26.     update_basic
  27.   end
  28.  
  29.   #--------------------------------------------------------------------------
  30.   # ● 附加状态  自定义函数
  31.   #--------------------------------------------------------------------------
  32.   def auto_state_by_skill
  33.     if $game_variables[P叔::HP_VARIABLE].class == Array # 当HP限定变量才执行
  34.       return if $game_party.members.empty?
  35.       for i in 0...$game_party.members.size
  36.         j = $game_party.members[i]
  37.         j.remove_state(P叔::STATE_ID) if j.hp <= 0      # 死亡时解除状态
  38.         next unless j.skill_learn?($data_skills[P叔::SKILL_ID]) # 没有学会技能则跳过
  39.         # 当hp<=最大hp的百分比时,附加状态STATE_ID,否则就解除
  40.         j.hp <= j.mhp * $game_variables[P叔::HP_VARIABLE][i] / 100.0 ? j.add_state(P叔::STATE_ID) : j.remove_state(P叔::STATE_ID)
  41.       end  
  42.     end  
  43.   end
  44. end



我想改成下面这种效果  第6行,15行,39行,42行的效果
RUBY 代码复制
  1. module P
  2.   #==============参==============数==============设==============定==============
  3.   # 请在下面设定被动技能的ID,当角色拥有该被动技能时才会触发状态附加。
  4.   # 默认设置是127号技能。
  5.     SKILL_ID = 127
  6.     SKILL_ID = 128       (有多个被动技能,附加不同的状态ID,例如127号技能附加26号状态,128号技能附加27号状态)
  7.   # 请在下面设定附加状态的ID
  8.   # 默认设置是26号状态。
  9.     STATE_ID = 26
  10.     STATE_ID = 27
  11.   # 请设定HP限定变量的ID,用于控制各项数值。
  12.   # 默认设置是10号变量。
  13.     HP_VARIABLE = 10
  14.   # HP限定变量是类似这样一个特殊的一维数组变量:
  15.   # $game_variables[P叔::HP_VARIABLE] = [40,35,0,45]   (队伍有6个成员)
  16.   # 默认表示当队伍1号的HP小于或等于40才附加状态;当队伍2号的HP小于或等于35才附加状态;
  17.   # 队伍3号无效化,队伍4号的HP小于或等于45才附加状态
  18.   #==============================================================================
  19. end
  20.  
  21. class Scene_Base
  22.  
  23.   #--------------------------------------------------------------------------
  24.   # ● 更新画面
  25.   #--------------------------------------------------------------------------
  26.   def update
  27.     auto_state_by_skill                                 # 添加了本句
  28.     update_basic
  29.   end
  30.  
  31.   #--------------------------------------------------------------------------
  32.   # ● 附加状态  自定义函数
  33.   #--------------------------------------------------------------------------
  34.   def auto_state_by_skill
  35.     if $game_variables[P叔::HP_VARIABLE].class == Array # 当HP限定变量才执行
  36.       return if $game_party.members.empty?
  37.       for i in 0...$game_party.members.size
  38.         j = $game_party.members[i]
  39.         j.remove_state(P叔::STATE_ID) if j.hp <= 0      # 死亡时解除状态  (死亡时保留被动技能)
  40.         next unless j.skill_learn?($data_skills[P叔::SKILL_ID]) # 没有学会技能则跳过
  41.         # 当hp<=最大hp的百分比时,附加状态STATE_ID,否则就解除
  42.         j.hp <= j.mhp * $game_variables[P叔::HP_VARIABLE][i] / 100.0 ? j.add_state(P叔::STATE_ID) : j.remove_state(P叔::STATE_ID)   (HP回复到一定量时不移除状态)
  43.       end  
  44.     end  
  45.   end
  46. end


自动状态.rar

1.42 MB, 下载次数: 57

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

2
发表于 2017-1-26 13:45:17 | 只看该作者
我用的这个你试试
脚本

点评

我没遇到你这情况,我是HP恢复后直接就解除了  发表于 2017-1-27 08:20
fjm
问下HP回复到一定程度不移除状态,怎么改  发表于 2017-1-26 15:51
fjm
非常感谢,这个脚本蛮好用的  发表于 2017-1-26 14:05

评分

参与人数 2星屑 +180 收起 理由
RaidenInfinity + 150 认可答案
fjm + 30

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 05:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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