关联的数值改成角色1的攻击力
#============================================================================== # ■ 状态17溅射伤害处理 #============================================================================== class Game_Troop # 对随机最多3个敌人附加状态17,并对所有带该状态的敌人造成主角1攻击力的伤害 def splash_state17_damage # 1. 筛选出所有存活的敌人 alive_targets = @enemies.select { |e| e.hp > 0 } # 2. 从存活敌人中随机选取最多3个 targets_to_add_state = alive_targets.sort_by{ rand }[0, [3, alive_targets.size].min] # 3. 为选中的目标附加状态17(已存在则不重复添加) targets_to_add_state.each do |enemy| enemy.add_state(17) unless enemy.state?(17) end # 4. 对所有拥有状态17的存活敌人造成伤害 alive_targets.each do |enemy| if enemy.state?(17) # 获取队伍第一个成员(主角1)的最终攻击力 # 包含装备、状态、buff/debuff的最终数值 dmg = $game_party.actors[0].atk enemy.hp -= dmg enemy.damage = dmg enemy.critical = false enemy.animation_id = 101 enemy.damage_pop = true end end end end
#==============================================================================
# ■ 状态17溅射伤害处理
#==============================================================================
class Game_Troop
# 对随机最多3个敌人附加状态17,并对所有带该状态的敌人造成主角1攻击力的伤害
def splash_state17_damage
# 1. 筛选出所有存活的敌人
alive_targets = @enemies.select { |e| e.hp > 0 }
# 2. 从存活敌人中随机选取最多3个
targets_to_add_state = alive_targets.sort_by{ rand }[0, [3, alive_targets.size].min]
# 3. 为选中的目标附加状态17(已存在则不重复添加)
targets_to_add_state.each do |enemy|
enemy.add_state(17) unless enemy.state?(17)
end
# 4. 对所有拥有状态17的存活敌人造成伤害
alive_targets.each do |enemy|
if enemy.state?(17)
# 获取队伍第一个成员(主角1)的最终攻击力
# 包含装备、状态、buff/debuff的最终数值
dmg = $game_party.actors[0].atk
enemy.hp -= dmg
enemy.damage = dmg
enemy.critical = false
enemy.animation_id = 101
enemy.damage_pop = true
end
end
end
end
甚至可以加上浮动
#============================================================================== # ■ 状态17溅射伤害处理 #============================================================================== class Game_Troop # 对随机最多3个敌人附加状态17,并对所有带该状态的敌人造成主角1攻击力的伤害 def splash_state17_damage # 1. 筛选出所有存活的敌人 alive_targets = @enemies.select { |e| e.hp > 0 } # 2. 从存活敌人中随机选取最多3个 targets_to_add_state = alive_targets.sort_by{ rand }[0, [3, alive_targets.size].min] # 3. 为选中的目标附加状态17(已存在则不重复添加) targets_to_add_state.each do |enemy| enemy.add_state(17) unless enemy.state?(17) end # 4. 对所有拥有状态17的存活敌人造成伤害 alive_targets.each do |enemy| if enemy.state?(17) # 获取主角1的基础攻击力 base_atk = $game_party.actors[0].atk # 生成±10%的随机浮动系数 fluct = 0.9 + rand * 0.2 # 计算最终伤害(向下取整,确保为整数) dmg = (base_atk * fluct).to_i # 保底1点伤害,避免出现0伤 dmg = [dmg, 1].max enemy.hp -= dmg enemy.damage = dmg enemy.critical = false enemy.animation_id = 101 enemy.damage_pop = true end end end end
#==============================================================================
# ■ 状态17溅射伤害处理
#==============================================================================
class Game_Troop
# 对随机最多3个敌人附加状态17,并对所有带该状态的敌人造成主角1攻击力的伤害
def splash_state17_damage
# 1. 筛选出所有存活的敌人
alive_targets = @enemies.select { |e| e.hp > 0 }
# 2. 从存活敌人中随机选取最多3个
targets_to_add_state = alive_targets.sort_by{ rand }[0, [3, alive_targets.size].min]
# 3. 为选中的目标附加状态17(已存在则不重复添加)
targets_to_add_state.each do |enemy|
enemy.add_state(17) unless enemy.state?(17)
end
# 4. 对所有拥有状态17的存活敌人造成伤害
alive_targets.each do |enemy|
if enemy.state?(17)
# 获取主角1的基础攻击力
base_atk = $game_party.actors[0].atk
# 生成±10%的随机浮动系数
fluct = 0.9 + rand * 0.2
# 计算最终伤害(向下取整,确保为整数)
dmg = (base_atk * fluct).to_i
# 保底1点伤害,避免出现0伤
dmg = [dmg, 1].max
enemy.hp -= dmg
enemy.damage = dmg
enemy.critical = false
enemy.animation_id = 101
enemy.damage_pop = true
end
end
end
end
但你要明白,这本质上仍然是关联了某个数值的固定伤害,如果你想像正常战斗一样,需要套用整个伤害计算公式,还要考虑敌人的防御力,不如从新做一个比较方便
这是我在这个帖子的最后一个回复了,如果还不满意,就去开新帖吧 |