Project1

标题: 如何设定任何角色受到伤害时都立即获得一个状态? [打印本页]

作者: 神秘影子    时间: 2014-12-27 01:01
标题: 如何设定任何角色受到伤害时都立即获得一个状态?
本帖最后由 神秘影子 于 2014-12-27 01:03 编辑

呼= =!又来求助了喔

打算设定一个技能来记录角色在一定回合内受到过伤害,现在打算以状态方式体现,
但是在每一个伤害技能上都强制附加一个状态比较容易漏(偷懒的表现...)
于是请问有没有脚本的方法呢?

← v  ←或者有没有办法通过脚本 令所有技能的伤害公式都在执行时加上b.add_state(n)这句指令呢?
作者: 三途亚梦    时间: 2014-12-27 01:11
在Game_Battler的def make_damage_value(user, item)
的方法里写加一段
  1. self.add_state(2) if !self.state?(2)
复制代码
在不处在2号状态的前提下,任何伤害都会附加状态2。当然包括治疗,治疗的本质是负数的伤害。
  1. self.add_state(2) if !self.state?(2) && !item.damage.recover?
复制代码
这句治疗技能就会排除掉了。
作者: chd114    时间: 2014-12-27 02:07
本帖最后由 chd114 于 2014-12-26 21:12 编辑
  1. =begin
  2. 使用方法是在角色/敌人的备注栏里备注<我不是杂鱼>
  3. =end
  4. class Game_Enemy < Game_Battler
  5.   def damage_valid?
  6.     return true if $game_troop.alive_members == [self]
  7.     return false if $data_enemies[@enemy_id].note.include?("<我不是杂鱼>")
  8.     return true
  9.   end
  10. end
  11. class Game_Actor
  12.   def damage_valid?
  13.     #获取队伍里队员们的ID数组
  14.     @team=[]
  15.     (0...$game_party.alive_members.size).all?{|i|@team.push($game_party.alive_members[i].id)}
  16.     return true if $game_party.alive_members == [self]
  17.     return false if $data_actors[@actor_id].note.include?("<我不是杂鱼>")
  18.     return true
  19.     user.add_states(1)#受到伤害就附加1号状态
  20.   end
  21. end
  22. class Game_Battler
  23.   def damage_valid?
  24.     true
  25.   end
  26.   alias assign_hp_20140817 hp=
  27.   def hp=(hp)
  28.     assign_hp_20140817(hp) if hp >= @hp || damage_valid?
  29.   end
  30.   alias mdv_20140817 make_damage_value
  31.   def make_damage_value(user, item)
  32.     mdv_20140817(user, item) if damage_valid?
  33.   end
  34. end
复制代码
把那个什么被攻击如果备注了什么什么的就无敌的脚本改一下就行了···这里直接附加1号状态就会导致被打就是死- -|||

作者: morningboo    时间: 2014-12-27 09:26
话说楼上的大大们,是不是把问题搞复杂了,在GAME_Battler里面的应用技能/物品效果那里加上判断语句就可以了if @result.hit?就是如果目标被击中的意思,然后直接在里面写user(发动攻击者)或者self(被击中者)附加状态就好了啊,例如加上self.add_state(1),意思就是如果目标被击中,那么被击中者附加1号状态,同理,在下面可以写被闪避时if @result.evaded,攻击未命中时if @result.missed,附加各种状态,楼主可以自我参考。
PS:感谢XD大大在一个帖子里面的提示




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