Project1

标题: 怎样设置指定角色的一个变量数值有增伤和伤减效果? [打印本页]

作者: 7795593    时间: 2014-1-25 02:07
标题: 怎样设置指定角色的一个变量数值有增伤和伤减效果?
例如角色1学会某技能,用事件增加变量【最终伤害+】80点,就会在普通攻击和技能的总伤害值加上80点固定伤害。
角色1学会某技能,用事件增加变量【防御抵消+】80点,就会在受到伤害的总值减掉80点固定伤害。

目前,我是这样弄的,
Game_Battler里def make_attack_damage_value(attacker)里
@hp_damage = damage上面插入

    damage -= $game_variable[5] if attacker.is_a?(Game_Enemy)
    damage += $game_variable[6] if attacker.is_a?(Game_Actor)

然后还有def make_obj_damage_value(user, obj)里if obj.damage_to_mp上面插入

    if damage > 0
      damage -= $game_variable[5] if user.is_a?(Game_Enemy)
      damage += $game_variable[6] if user.is_a?(Game_Actor)
    end

这样子,所以角色都对这两个变量有效果.
我想要的是每个ID都有两个变量实现效果.
希望有大神能改成[指定角色]享有,这样就能做出不同角色有不同的效果了.
作者: a364774426    时间: 2014-1-25 02:07
你需要每个角色都有这种效果,且每个角色的不一样,有两个办法,
设置n个变量,
对于角色1
  1. if attacker.is_a?(Game_Actor) and attacker.id == 1
  2.   damage += $game_variables[1]
  3. end
  4. if self.is_a?(Game_Actor) and self.id == 1
  5.   damage -= $game_variables[2]
  6. end
复制代码
你的脚本之所以对每个角色都生效,是因为没有判定角色ID。
另外一种办法就是在Game_Actor开始部分加入
  1. attr_accessor :atk_plus
  2. attr_accessor :def_plus
复制代码
在def setup(actor_id)中加入
  1. @atk_plus = 0
  2. @def_plus = 0
复制代码
然后
  1. if attacker.is_a?(Game_Actor)
  2.   damage += atk_plus
  3. end
  4. if self.is_a?(Game_Actor)
  5.   damage -= def_plus
  6. end
复制代码
通过脚本
  1. $game_actors[i].atk_plus += n
复制代码
来增加atk_plus 或 def_plus的值
作者: yangjunyin2002    时间: 2014-1-25 08:03
这种大事情当然应该要找大触P叔叔了~~~我来帮你at把(>_<)@protosssonny @丿梁丶小柒  
作者: 7795593    时间: 2014-1-31 20:12
a364774426 发表于 2014-1-25 08:56
你需要每个角色都有这种效果,且每个角色的不一样,有两个办法,
设置n个变量,
对于角色1你的脚本之所以对 ...

不好意思~
if attacker.is_a?(Game_Actor)
  damage += atk_plus
end
if self.is_a?(Game_Actor)
  damage -= def_plus
end

这段应该插在哪里?
作者: a364774426    时间: 2014-1-31 20:43
将你自己写的改成我的就行了
作者: crow2006    时间: 2014-1-31 21:43
我补充一点,设定减伤的话需要注意判断obj.base_damage大于0还是小于0。




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