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

Project1

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

[已经解决] 如何做到血量越少某种属性越高或受到攻击时增加某种属性

[复制链接]

Lv2.观梦者

梦石
0
星屑
382
在线时间
36 小时
注册时间
2018-4-14
帖子
51
跳转到指定楼层
1
发表于 2018-5-5 16:20:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
15星屑
求问:
如何做到血量越少某种属性越高 或受到攻击时增加某种属性
用公共事件做不出来,没办法出来求助。
希望得到大佬帮助,万分感谢!

最佳答案

查看完整内容

有一个这样的脚本,需要什么效果照着设置就行了

Lv3.寻梦者

梦石
0
星屑
2333
在线时间
275 小时
注册时间
2017-7-25
帖子
163
2
发表于 2018-5-5 16:20:46 | 只看该作者
  1. # 战斗开始前附加状态或者HP到达一定比率时附加状态
  2. #--------------------------------------------------------------------------
  3. # ● 战斗开始前附加状态
  4. #--------------------------------------------------------------------------
  5. # 用法是在角色|职业|装备|敌人的备注栏
  6. # 备注<被动状态:状态ID> 例如<被动状态:18> 那么就会在战斗开始前
  7. # 会为该角色附加18号状态,战斗结束时移除这个状态。同时装备2个以
  8. # 上的有被动状态的装备亦可叠加,都会附加上对应的状态。
  9. #--------------------------------------------------------------------------
  10. # ● HP到达一定比率时附加状态
  11. #--------------------------------------------------------------------------
  12. # 用法是在角色|职业|装备|敌人的备注栏
  13. # 设定34行处设定HP比率并备注<危机:状态ID>可在设定的HP比率下附加状态
  14. # 例:比率0.2 <危机:19> 就会在该角色HP低于20%的情况下附加19号状态
  15. # 并于战斗结束时移除这个状态。
  16. # 设定的状态请勾选战斗结束时解除
  17. # <危机1:19>是HP低于50% <危机2:19>是25% <危机3:19> 是10%
  18. #如果想低于特定HP自行设定,hp_rate改成mp_rate可以设置成MP低于某比例
  19. class Game_Battler < Game_BattlerBase
  20.   #--------------------------------------------------------------------------
  21.   # ● 战斗开始处理
  22.   #--------------------------------------------------------------------------
  23.   alias state_battle_start on_battle_start
  24.   def on_battle_start
  25.     state_battle_start
  26.     self.feature_objects.each {|obj|
  27.     self.add_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 重新整理
  31.   #--------------------------------------------------------------------------
  32.   def refresh
  33.     state_resist_set.each {|state_id| erase_state(state_id) }
  34.     @hp = [[@hp, mhp].min, 0].max
  35.     @mp = [[@mp, mmp].min, 0].max
  36.       if hp_rate <=  0.2 #设定触发状态的生命比率
  37.          self.feature_objects.each {|obj|
  38.          self.add_state($1.to_i) if obj.note =~ /<危机:\s*(\d+)>/}
  39.        else
  40.          self.feature_objects.each {|obj|
  41.          self.remove_state($1.to_i) if obj.note =~ /<危机:\s*(\d+)>/}
  42.        end
  43.       if hp_rate <=  0.5 #设定触发状态的生命比率
  44.          self.feature_objects.each {|obj|
  45.          self.add_state($1.to_i) if obj.note =~ /<危机1:\s*(\d+)>/}
  46.        else
  47.          self.feature_objects.each {|obj|
  48.          self.remove_state($1.to_i) if obj.note =~ /<危机1:\s*(\d+)>/}
  49.        end
  50.       if hp_rate <=  0.25 #设定触发状态的生命比率
  51.          self.feature_objects.each {|obj|
  52.          self.add_state($1.to_i) if obj.note =~ /<危机2:\s*(\d+)>/}
  53.        else
  54.          self.feature_objects.each {|obj|
  55.          self.remove_state($1.to_i) if obj.note =~ /<危机2:\s*(\d+)>/}
  56.        end
  57.       if hp_rate <=  0.01 #设定触发状态的生命比率
  58.          self.feature_objects.each {|obj|
  59.          self.add_state($1.to_i) if obj.note =~ /<危机3:\s*(\d+)>/}
  60.        else
  61.          self.feature_objects.each {|obj|
  62.          self.remove_state($1.to_i) if obj.note =~ /<危机3:\s*(\d+)>/}
  63.        end
  64.     @hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
  65.   end
  66.   #--------------------------------------------------------------------------
  67.   # ● 战斗结束时的处理
  68.   #--------------------------------------------------------------------------
  69.   alias state_on_battle_end on_battle_end
  70.   def on_battle_end
  71.     state_on_battle_end
  72.     self.feature_objects.each {|obj|
  73.     self.remove_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}
  74.     self.feature_objects.each {|obj|
  75.     self.remove_state($1.to_i) if obj.note =~ /<危机:\s*(\d+)>/}
  76.     self.feature_objects.each {|obj|
  77.     self.remove_state($1.to_i) if obj.note =~ /<危机1:\s*(\d+)>/}
  78.     self.feature_objects.each {|obj|
  79.     self.remove_state($1.to_i) if obj.note =~ /<危机2:\s*(\d+)>/}
  80.     self.feature_objects.each {|obj|
  81.     self.remove_state($1.to_i) if obj.note =~ /<危机3:\s*(\d+)>/}
  82.   end
  83. end
复制代码

有一个这样的脚本,需要什么效果照着设置就行了

评分

参与人数 1+1 收起 理由
不汐汐 + 1

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2333
在线时间
275 小时
注册时间
2017-7-25
帖子
163
3
发表于 2018-5-5 18:06:13 | 只看该作者
还有一种比较蛇皮的方法是在Game_Battler计算伤害那栏end之前插入各种
    if self.hp_rate <=0.2
     self.add_state(66)
    end                       #被攻击者HP比率低于20时,被攻击时附加66号状态,把这个66号状态设定成一个无限回合战斗结束时结束的加某种属性的状态就行了

这样不用额外插脚本担心啥时候出毛病冲突,想写还是挺简单的,就是这里加一点那里加一点就一大堆了

点评

LZ要的应该是被攻击一次增加一次属性..  发表于 2018-5-5 18:26
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
382
在线时间
36 小时
注册时间
2018-4-14
帖子
51
4
 楼主| 发表于 2018-5-5 18:26:04 | 只看该作者
骷髅岛遗老 发表于 2018-5-5 16:20
有一个这样的脚本,需要什么效果照着设置就行了

已经解决了问题,谢谢,把危机复制一下就好了。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 06:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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