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

Project1

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

[已经解决] 求,一状态在HP低于X%解除

[复制链接]

Lv2.观梦者

梦石
0
星屑
582
在线时间
310 小时
注册时间
2016-2-29
帖子
210
跳转到指定楼层
1
发表于 2016-10-9 10:21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
求新增状态解除条件,回合结束时如果HP低于x%时自动解除

评分

参与人数 1星屑 +60 收起 理由
夜狠简单 + 60 塞糖

查看全部评分

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

2
发表于 2016-10-10 20:04:27 | 只看该作者
本帖最后由 七重 于 2016-10-10 21:01 编辑

RUBY 代码复制
  1. class Game_BattlerBase
  2.   def refresh
  3.     state_resist_set.each {|state_id| erase_state(state_id) }
  4.     @hp = [[@hp, mhp].min, 0].max
  5.     @mp = [[@mp, mmp].min, 0].max
  6.     @hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
  7.     if hp_rate <= 0.3 #生命值的百分比。
  8.       remove_state(4)#狀態的編號。
  9.     end
  10.   end
  11. end


在標記的地方設置狀態的編號,比如默認是4號,沉默。
生命值的百分比,寫成小數形式,比如百分之30以下解除就是0.3.
==
class Game_Battler < Game_BattlerBase
  alias krst161010_update_state_turns update_state_turns
  def update_state_turns
    states.each do |state|
      if state.note.include?("<limited>")
        if $game_party.battle_members[0].hp_rate <= 0.3
          remove_state(state.id)
        end
      else
      @state_turns[state.id] -= 1 if @state_turns[state.id] > 0
      end
    end
  end
end

写了个不成熟的。。。
  这个脚本的效果是:
“备注标记有“<limited>”的状态”,会在队伍的第一个角色生命值少于百分之三十的时候解除。

不知道楼主能不能用得上,我不知道这里怎么写成判断状态使用者的血量。。等人来补充吧。。_(:X_L

评分

参与人数 3星屑 +320 梦石 +1 收起 理由
RaidenInfinity + 250 + 1 楼主认可的解答
是猪别乱叫 + 10 认可答案
夜狠简单 + 60 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
3
发表于 2016-10-15 10:17:37 | 只看该作者
七重 发表于 2016-10-10 20:04
class Game_BattlerBase
  def refresh
    state_resist_set.each {|state_id| erase_state(state_id) }

请问如果是HP低于X%自动附加一个状态的 怎么写
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

4
发表于 2016-10-15 11:23:33 | 只看该作者
本帖最后由 七重 于 2016-10-15 11:45 编辑
sq333333 发表于 2016-10-15 10:17
请问如果是HP低于X%自动附加一个状态的 怎么写


RUBY 代码复制
  1. module Krst7e
  2.  
  3.   LimitedHp_Rate = 0.3 #设置生命值比率
  4.  
  5.   Limited_State = 4 #设置状态的编号
  6.  
  7.   Limited_Class = 1 #设置能够享受这个效果的职业的编号
  8.  
  9. end
  10.  
  11. ################################################
  12.  
  13. class Game_BattlerBase
  14.   def refresh
  15.     state_resist_set.each {|state_id| erase_state(state_id) }
  16.     @hp = [[@hp, mhp].min, 0].max
  17.     @mp = [[@mp, mmp].min, 0].max
  18.     @hp == 0 ? add_state(death_state_id) : remove_state(death_state_id)
  19.     if hp_rate <= Krst7e::LimitedHp_Rate
  20.       add_state(Krst7e::Limited_State) # if @class_id == Krst7e::Limited_Class
  21.     end
  22.     if hp_rate > Krst7e::LimitedHp_Rate
  23.        remove_state(Krst7e::Limited_State)
  24.     end
  25.   end
  26. end


在最上面设置。
当生命值高于设置的比率时,这个状态又会消失掉。

嘛 想必需要这个功能的时候,应该也是限度个别的职业才能使用的。
有这个需求的话,就将下面的#号去掉
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
5
发表于 2016-10-15 12:14:06 手机端发表。 | 只看该作者
七重 发表于 2016-10-15 11:23
module Krst7e
  
  LimitedHp_Rate = 0.3 #设置生命值比率

感谢大神,回去试试
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
6
发表于 2016-10-16 19:49:14 | 只看该作者
本帖最后由 夜狠简单 于 2016-10-17 12:55 编辑
七重 发表于 2016-10-15 11:23
module Krst7e
  
  LimitedHp_Rate = 0.3 #设置生命值比率


RUBY 代码复制
  1. module Krst7e
  2.  
  3.   LimitedHp_Rate = 0.3 #设置生命值比率
  4.  
  5.   Limited_State = 4 #设置状态的编号
  6.  
  7.   Limited_Class = 1 #设置能够享受这个效果的职业的编号
  8.  
  9. end
  10.  
  11. ################################################
  12.  
  13. class Game_BattlerBase
  14. alias Krst7e_refresh refresh
  15.   def refresh
  16.     Krst7e_refresh
  17.     hp_rate <= Krst7e::LimitedHp_Rate ?  (add_state(Krst7e::Limited_State) if
  18.     @class_id == Krst7e::Limited_Class) : remove_state(Krst7e::Limited_State)
  19.   end
  20. end


那一段可以在如下部分换行
hp_rate <=
Krst7e::LimitedHp_Rate ?
(add_state(Krst7e::Limited_State)  if
@class_id ==
Krst7e::Limited_Class) :
remove_state(Krst7e::Limited_State)

点评

用alias 的话兼容性会高一些  发表于 2016-10-17 12:47
被发现了///x///,当初犹豫了一下,最后还是没加。。  发表于 2016-10-16 23:52
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 00:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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