Project1

标题: 战斗系统的问题 [打印本页]

作者: 心碎小子HBK    时间: 2008-12-7 23:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: 殲滅天使·玲    时间: 2008-12-8 00:07
  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 = 0 if damage < 0                        # 减少为 0
  9.     damage *= elements_max_rate(attacker.element_set)   # 修正属性
  10.     damage /= 100
  11.     if damage == 0                                  # 伤害为 0
  12.       damage = rand(2)                              # 1/2 概率为伤害 1
  13.     elsif damage > 0                                # 伤害为正数
  14.       @critical = (rand(100) < attacker.cri)        # 判断会心一击
  15.       @critical = false if prevent_critical         # 防止会心一击?
  16.       damage *= 3 if @critical                      # 会心一击修正
  17.     end
  18.     damage = apply_variance(damage, 20)             # 分散
  19.     damage = apply_guard(damage)                    # 防御修正
  20.     @hp_damage = damage                             # HP 伤害
  21.   end
复制代码

这里是计算普通攻击伤害的地方.以
伤害 = 攻击*4 - 防御*2

我打圣火徽章的时候,敌人受到的伤害是(我的攻击-敌人防御),如果我的攻击小于敌人防御,伤害值一律为1
这个问题很好解决

damage = attacker.atk  - self.def
if damage == 0                              
  damage = 1                                    

只用改这2句就行

然后是 物理技能对人的伤害计算是
伤害 = 基本伤害
+ (使用特技(或物品)的攻撃力 × 4 × 打撃関係度 ÷ 100)
+ (使用特技(或物品)的精神力 × 2 × 精神関係度 ÷ 100)
- (对象防御力 × 2 × 打撃関係度 ÷ 100)
- (对象精神力 × 1 × 精神関係度 ÷ 100)

这里是F1里的内容

以下是经过修改的脚本
直接替换进Game_Battler里的同样的地方就可以
  1. #--------------------------------------------------------------------------
  2.   # ● 计算普通攻击造成的伤害
  3.   #     attacker : 攻击者
  4.   #    结果代入 @hp_damage。
  5.   #--------------------------------------------------------------------------
  6.   def make_attack_damage_value(attacker)
  7.     damage = attacker.atk  - self.def               # 基本计算
  8.     damage = 0 if damage < 0                        # 减少为 0
  9.     damage *= elements_max_rate(attacker.element_set)   # 修正属性
  10.     damage /= 100
  11.     if damage == 0                                  # 伤害为 0
  12.       damage = 1                                    # 伤害为 1
  13.     elsif damage > 0                                # 伤害为正数
  14.       @critical = (rand(100) < attacker.cri)        # 判断会心一击
  15.       @critical = false if prevent_critical         # 防止会心一击?
  16.       damage *= 3 if @critical                      # 会心一击修正
  17.     end
  18.     damage = apply_variance(damage, 20)             # 分散
  19.     damage = apply_guard(damage)                    # 防御修正
  20.     @hp_damage = damage                             # HP 伤害
  21.   end
复制代码
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 心碎小子HBK    时间: 2008-12-8 00:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: yoxi    时间: 2008-12-8 00:17
提示: 作者被禁止或删除 内容自动屏蔽




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