a364774426 发表于 2013-3-5 00:33
P叔去睡觉了,那我就试试看能不能帮你实现吧,
在Game_Battler中的技能伤害定义处不过想LS说的,一个怪1W血 ...
#-------------------------------------------------------------------------- # * 對於使用物品或使用技能所造成的傷害的計算 # 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 # 如果值為負數,則值歸零 elsif damage < 0 # 一個負數? damage -= user.atk * 4 * obj.atk_f / 100 # 與使用者的攻擊力關係度 damage -= user.spi * 2 * obj.spi_f / 100 # 與使用者的意志力關係度 end damage *= elements_max_rate(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
#--------------------------------------------------------------------------
# * 對於使用物品或使用技能所造成的傷害的計算
# 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 # 如果值為負數,則值歸零
elsif damage < 0 # 一個負數?
damage -= user.atk * 4 * obj.atk_f / 100 # 與使用者的攻擊力關係度
damage -= user.spi * 2 * obj.spi_f / 100 # 與使用者的意志力關係度
end
damage *= elements_max_rate(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
請問代碼要改哪一段啊@@ |