Project1

标题: sideview怎么让弓类武器产生穿刺和击打两种伤害? [打印本页]

作者: 雌性触手    时间: 2011-11-7 02:43
标题: sideview怎么让弓类武器产生穿刺和击打两种伤害?
  1. #--------------------------------------------------------------------------
  2. # ● 动作指定 从装备着的武器ID来决定通常攻击的动作。
  3. #--------------------------------------------------------------------------
  4. # when 1 ←这个数字是武器ID
  5. # return "通常攻击" ←请填入对应的连贯动作名
  6.   def base_action
  7.     case @id
  8. #当24号武器攻击时 物品35>1就-1并使用“弓”否则即为“通常攻击”
  9.     when 24
  10.       if $game_party.item_number($data_items[35]) > 0
  11.         $game_party.lose_item($data_items[35],1)
  12.         return "弓"
  13.       else
  14.         return "通常攻击"
  15.       end
  16.   end
  17.     # 上述ID以外的其他全部使用的动作
  18.     return "通常攻击"
  19.   end
复制代码
    这个远程和近战一个伤害……   能不能让它变成有弹药即为穿刺伤害 伤害较高   而没武器则为击打伤害 伤害低。(动画也改变……dsu_plus_rewardpost_czw
作者: 月夜神音    时间: 2011-11-7 09:13
修改Game_Actor的def element_set看看?
作者: 雌性触手    时间: 2011-11-7 16:39
   不好意思……   本人不怎么懂脚本……   这是别人脚本里提取出来然后自己改的……

请问具体要修改那个地方?
作者: 怪蜀黍    时间: 2011-11-7 20:43
本帖最后由 protosssonny 于 2011-11-7 20:43 编辑

在Game_Battler类下面找到def make_attack_damage_value(attacker),添加第8行即可:
  1.   #--------------------------------------------------------------------------
  2.   # ● 计算普通攻击造成的伤害
  3.   #     attacker : 攻击者
  4.   #    结果代入 @hp_damage。
  5.   #--------------------------------------------------------------------------
  6.   def make_attack_damage_value(attacker)
  7.     damage = attacker.atk * 4 - self.def * 2        # 基本计算
  8.     damage /= 3 if $game_party.item_number($data_items[35]) == 0 #添加本行
  9.     damage = 0 if damage < 0                        # 减少为 0
  10.     damage *= elements_max_rate(attacker.element_set)   # 修正属性
  11.     damage /= 100
  12.     if damage == 0                                  # 伤害为 0
  13.       damage = rand(2)                              # 1/2 概率为伤害 1
  14.     elsif damage > 0                                # 伤害为正数
  15.       @critical = (rand(100) < attacker.cri)        # 判断会心一击
  16.       @critical = false if prevent_critical         # 防止会心一击?
  17.       damage *= 3 if @critical                      # 会心一击修正
  18.     end
  19.     damage = apply_variance(damage, 20)             # 分散
  20.     damage = apply_guard(damage)                    # 防御修正
  21.     @hp_damage = damage                             # HP 伤害
  22.   end
复制代码
在35号弹药为0时,攻击力为原来的1/3。
公式什么的可以自己修改,就是damage=……就可以了。
这里的1/3只是我的举例!

作者: 雌性触手    时间: 2011-11-7 22:53
本帖最后由 雌性触手 于 2011-11-7 22:59 编辑

  感谢   但是问题又来了……  
   当本次攻击让弹药无剩余时  和无弹药时的伤害是一样的……    动画也没改……




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