Project1
标题:
【战斗】关于修改系统一些默认数值的问题。
[打印本页]
作者:
fmy19960827
时间:
2011-7-31 13:31
标题:
【战斗】关于修改系统一些默认数值的问题。
【ONE】关于修改攻击默认公式的方法,我翻了半天脚本也没战斗,悲剧了。(意思就是哪里修改力量占普通攻击的百分比)
【TWO】关于修改系统默认的通常状态命中率,我感觉如果什么都不设置,敌人中状态的几率在70%左右,感觉有点高了,想改一下,也不知道在哪里改。 dsu_plus_rewardpost_czw
作者:
MSQ
时间:
2011-7-31 13:41
本帖最后由 MSQ 于 2011-7-31 14:03 编辑
1》力量?那是什么,感觉有xp乱入。
2》敌人中状态的几率,是武器自带还是技能?是技能的话在技能里有关于命中率的调整,武器的话……来脚本。
ps:可能我理解有问题,我感觉我没有听懂楼主的问题,麻烦详细点。{:nm_3:}
MSQ于2011-7-31 14:02补充以下内容:
哦,你的意思是说,一个技能,可以100%损失敌人XXX点HP,但同时有50%可能性让敌人中毒。是这样吗?
如果是这样,在技能中设定该技能的命中率与伤害。再调用公共事件,设置条件分歧和某个变数,
当变数在大于等于某个范围时
(相当于百分比)引发敌人状态的变更。
ps:楼主,我感觉你发错区了,这里是vx区。只有攻击,没有力量。
作者:
逆天RPG
时间:
2011-8-1 12:05
Game_Battler 600行至700行之间。命中、回避、攻击计算、技能计算都在这。
#--------------------------------------------------------------------------
# ● 计算最後命中率
# user : 攻击者,技能或物品的使用者
# obj : 使用的技能或物品(普通攻击时为nil)
#--------------------------------------------------------------------------
def calc_hit(user, obj = nil)
if obj == nil # 普通攻击
hit = user.hit + user.agi - self.agi # 获取命中率
physical = true
elsif obj.is_a?(RPG::Skill) # 技能攻击
hit = obj.hit + user.agi - self.agi # 获取命中率
physical = obj.physical_attack
else # 物品攻击
hit = 100 # 设命中率为100%
physical = obj.physical_attack
end
if physical # 物理攻击
hit /= 2 if user.reduce_hit_ratio? # 中了暗黑状态时命中率降低为50%
end
return hit
end
#--------------------------------------------------------------------------
# ● 计算最後闪躲率
# user : 攻击者,技能或物品的使用者
# obj : 使用的技能或物品(普通攻击时为nil)
#--------------------------------------------------------------------------
def calc_eva(user, obj = nil)
eva = self.agi - 10
unless obj == nil # 当obj为物品或技能
eva = 0 unless obj.physical_attack # 非物理攻击时闪躲率 0%
end
unless parriable? # 无法闪躲的场合
eva = 0 # 闪躲率为 0%
end
return eva
end
#--------------------------------------------------------------------------
# ● 计算普通攻击伤害
# attacker : 攻击者
# 计算结果赋值入 @hp_damage
#--------------------------------------------------------------------------
def make_attack_damage_value(attacker)
damage = (attacker.atk - self.def) + rand(attacker.atk) - rand(attacker.atk)# 基础计算
damage = 0 if damage < 0 # 设负数伤害为 0
damage *= elements_max_rate(attacker.element_set) # 属性校正
damage /= 100
if damage == 0 # 若伤害为 0
damage = rand(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 # 体力伤害
end
#--------------------------------------------------------------------------
# ● 计算技能/物品伤害
# user : 技能或物品的使用者
# obj : 使用的技能或物品
# 计算结果赋值入 @hp_damage
#--------------------------------------------------------------------------
def make_obj_damage_value(user, obj)
damage = obj.base_damage # 基础计算
if damage > 0 # 若伤害为正
damage += (rand(user.atk) + user.atk * 2 ) * obj.atk_f / 100# 使用者攻击力关系度
damage += (rand(user.spi) + user.spi * 2 ) * obj.spi_f / 100# 使用者精神力关系度
unless obj.ignore_defense # 除非无视防御力
damage -= self.def * 2 * obj.atk_f / 100 # 目标攻击力关系度
damage -= self.spi * 2 * obj.spi_f / 100 # 目标精神力关系度
end
damage = 0 if damage < 0 # 设负数伤害为0
elsif damage < 0 # 若伤害为负
damage -= user.atk * 2 * 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 # 伤害魔力
else
@hp_damage = damage # 伤害体力
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1