Project1

标题: 改变装备值 [打印本页]

作者: 小小西    时间: 2018-3-3 20:55
标题: 改变装备值
装备防具默认增加物理防御值,我想把角色所有的装备物理防御值改成增加到变量100号变量去,物理防御不变
作者: chd114    时间: 2018-3-3 23:14
首先确定一个问题,你的100号变量可以在其他地方自由增减吗?如果不会,那就在Game_Actor的change_equip和force_change_equip里面进行变量调整就可以了
$game_variables[100]+=新装备的物理防御-旧装备的物理防御

然后修改Game_Actor中的param_plus(param_id)
让他在能力是物理防御时返回0就行,也就是改成

  1.   def param_plus(param_id)
  2.     param_id==3 ? 0 : equips.compact.inject(super) {|r, item| r += item.params[param_id] }
  3.   end
复制代码

作者: 小小西    时间: 2018-3-3 23:35
chd114 发表于 2018-3-3 23:14
首先确定一个问题,你的100号变量可以在其他地方自由增减吗?如果不会,那就在Game_Actor的change_equip和f ...

这是武器增加变量的,能帮我把这个改成防具加变量吗
  1. class Game_Actor < Game_Battler
  2.   def initialize(actor_id)
  3.     super()
  4.     setup(actor_id)
  5.     @last_skill = Game_BaseItem.new
  6.     $game_variables[self.id] = equips[0].params[2] if equips[0] != nil
  7.   end
  8.   def param(param_id)
  9.     if param_id == 2
  10.       value = param_base(param_id)
  11.       if equips[0] != nil
  12.         $game_variables[self.id + 190] = equips[0].params[2]
  13.         value = param_base(param_id) + param_plus(param_id) - equips[0].params[2]
  14.       else
  15.         $game_variables[self.id + 190] = 0
  16.         value = param_base(param_id) + param_plus(param_id)
  17.       end
  18.     else
  19.       value = param_base(param_id) + param_plus(param_id)
  20.     end
  21.     value *= param_rate(param_id) * param_buff_rate(param_id)
  22.     [[value, param_max(param_id)].min, param_min(param_id)].max.to_i
  23.   end
  24. end
复制代码

作者: chd114    时间: 2018-3-4 00:32
小小西 发表于 2018-3-3 23:35
这是武器增加变量的,能帮我把这个改成防具加变量吗

equips[0]就是武器,把0改成1-4就可以了,如果是二刀流职业则是2-4




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