Project1

标题: 自订技能伤害计算公式 [打印本页]

作者: zh99998    时间: 2008-5-24 21:51
标题: 自订技能伤害计算公式
怎么自定技能伤害计算公式,就是不用VX自带的公式,而是自己编,比如
设置一个技能,可以
伤害对方HP = 物理攻击伤害 * [变量001]
或者
伤害对方HP = 主角当前HP
之类的


3楼的,看不懂。。。。。。。。。。是在公共事件里加脚本吗 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 越前リョーマ    时间: 2008-5-24 22:26
MS很难吧……

LZ是要用系统自带的那种战斗系统咯?
那样的话改起来就麻烦了……

如果是事件自制战斗就简单了……(全是废话……)
作者: Beside    时间: 2008-5-24 22:54
#--------------------------------------------------------------------------
  # ● 计算普通攻击造成的伤害
  #     attacker : 攻击者
  #    结果代入 @hp_damage。
  #--------------------------------------------------------------------------
  def make_attack_damage_value(attacker)
    damage = attacker.atk * 4 - self.def * 2        # 基本计算
    damage = 0 if damage < 0                        # 减少为 0
    damage *= elements_max_rate(attacker, attacker.element_set)   # 修正属性
    damage /= 100
    if damage == 0                                  # 伤害为 0
      damage = rand(2)                              # 1/2 概率为伤害 1
    elsif damage > 0                                # 伤害为正数
      @critical = (rand(100) < attacker.cri)        # 判断会心一击
      @critical = false if prevent_critical         # 防止会心一击?
      damage *= 3 if @critical                      # 会心一击修正
    end
    damage = apply_variance(damage, 20)             # 分散
    damage = apply_guard(damage)                    # 防御修正
    @hp_damage = damage                             # HP 伤害
  end
  #--------------------------------------------------------------------------
  # ● 计算特技以及物品造成的伤害
  #     user : 使用特技以及物品的人
  #     obj  : 特技以及物品
  #    将结果代入 @hp_damage 或 @mp_damage。
  #--------------------------------------------------------------------------
  def make_obj_damage_value(user, obj)
    damage = obj.base_damage                        # 获取基本伤害
    if damage > 0                                   # 伤害为正数
      damage += user.atk * 4 * obj.atk_f / 100      # 打击关系度: 使用者
      damage += user.spi * 2 * obj.spi_f / 100      # 精神关系度: 使用者
      unless obj.ignore_defense                     # 无视防御力以外
        damage -= self.def * 2 * obj.atk_f / 100    # 打击关系度: 对象者
        damage -= self.spi * 1 * obj.spi_f / 100    # 精神关系度: 对象者
      end
      damage = 0 if damage < 0                      # 减少为 0
    elsif damage < 0                                # 伤害为负数
      damage -= user.atk * 4 * obj.atk_f / 100      # 打击关系度: 使用者
      damage -= user.spi * 2 * obj.spi_f / 100      # 精神关系度: 使用者
    end
    damage *= elements_max_rate(user, obj.element_set)    # 属性修正
    damage /= 100
    damage = apply_variance(damage, obj.variance)   # 分散
    damage = apply_guard(damage)                    # 防御修正
    if obj.damage_to_mp  
      @mp_damage = damage                           # MP 伤害
    else
      @hp_damage = damage                           # HP 伤害
    end
  end

普通攻击和技能的伤害计算
可以发现单看普通攻击,伤害=攻击者的攻击力*4-对方防御*2
可以这么加上一句
damage *= $game_variables[n]  伤害乘上某变量加成。
作者: lyl2008    时间: 2008-5-25 01:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: zh99998    时间: 2008-5-25 15:27
3楼的,看不懂。。。。。。。。。。是在公共事件里加脚本吗
作者: 天仙玉女    时间: 2008-5-25 15:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: 天蚁    时间: 2008-5-25 17:09
3楼的,看不懂。。。。。。。。。。是在公共事件里加脚本吗
[LINE]1,#dddddd[/LINE]版主对此帖的评论:『純引=灌水』,积分『-5』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: zh99998    时间: 2008-5-25 18:57
以下引用天仙玉女于2008-5-25 7:48:26的发言:

放在Game_Battler最後一個end前面


还是看不懂…………这怎么在技能设定里体现出来
作者: lyl2008    时间: 2008-5-28 04:37
提示: 作者被禁止或删除 内容自动屏蔽




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