Project1

标题: 求助!我想写一个层数的状态 [打印本页]

作者: 215AA9    时间: 2023-11-19 18:11
标题: 求助!我想写一个层数的状态
纯小白,让gpt弄了个脚本。我的设想是有2.3.4.5四个状态分别区分层数1-4层,通过给予状态1来升层数,但一开始就卡住了……明明是很基础的东西……

class Game_Battler < Game_BattlerBase
def add_state(state_id)
    super(state_id)
    if state_id == 0
      if self.state?(1)
        self.add_state(2)  
        self.remove_state(1)
      else
        self.add_state(1)
      end
    end
  end
end

我通过技能还是只添加了状态0,没有其他任何变化。另外可以的话也想请教一个被攻击后使状态往下降一级的脚本……不清楚这个“受到伤害”条件的表达方法……

作者: srwjrevenger    时间: 2023-11-26 11:49
该○的gpt

rm的数据id默认都是从1开始,没有状态0
顺便状态1默认是即死/死亡... ...

这里应该用别名而不能用 super(state_id) ,倒不如说为什么你用它能跑起来呀喂!?

状态判定这样写之后会很麻烦的,学习一下数组和迭代吧?
无论如何小心写法,避免直接附加到最高层

受到伤害 条件的表达方法,
跟状态有关的推荐在#1处改
其它在#2处改

  1. ###
  2. class Game_Battler < Game_BattlerBase
  3.   #--------------------------------------------------------------------------
  4.   # ● 受到伤害时解除状态 #1
  5.   #--------------------------------------------------------------------------
  6.   def remove_states_by_damage
  7.     states.each do |state|
  8.       if state.remove_by_damage && rand(100) < state.chance_by_damage
  9.         remove_state(state.id)
  10.       end
  11.     end
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # ● 被伤害时的处理 #2
  15.   #--------------------------------------------------------------------------
  16.   def on_damage(value)
  17.     remove_states_by_damage
  18.     charge_tp_by_damage(value.to_f / mhp)
  19.   end
  20. end #
  21. ###
复制代码









欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1