1,给敌人附加一个状态,增加敌人受伤害30%,AI不好使
2,七伤拳
伤敌1000,自损800,AI搓出来了,只扣血没有显示数字效果
#============================================================================== # ** Game_Battler #------------------------------------------------------------------------------ # 添加技能反噬效果 # 配置区域:REBOUND_SKILL_IDS 填入需要具有反噬效果的技能ID #============================================================================== class Game_Battler # [配置] 在这里填入需要拥有“50%几率反噬0.8倍伤害”效果的技能ID # 例如: [15, 23, 40] 表示 ID 为 15, 23, 40 的技能会触发此效果 REBOUND_SKILL_IDS = [57,58] # 默认设为1,请根据实际情况修改 # 别名化原有的技能效果方法,以便插入额外逻辑 alias_method :rebound_skill_effect_original, :skill_effect def skill_effect(user, skill) # 先执行原有的技能效果计算(包括伤害计算、状态添加等) result = rebound_skill_effect_original(user, skill) # 只有当技能是攻击性技能(造成HP伤害)且命中时才触发反噬 # self.damage > 0 表示造成了正向伤害(HP减少) if self.damage.is_a?(Integer) && self.damage > 0 if REBOUND_SKILL_IDS.include?(skill.id) # 50% 几率触发 if rand(100) < 50 # 计算反噬伤害:当前造成伤害的 0.8 倍 rebound_damage = (self.damage * 0.8).to_i # 确保反噬伤害至少为 1,避免显示 0 if rebound_damage < 1 rebound_damage = 1 end # 对使用者(user)造成伤害 # 注意:user 可能是敌人也可能是演员,Game_Battler 通用 user.hp -= rebound_damage rebound_damage = "[199021133]自伤#{rebound_damage}" # 可选:在用户头上显示反噬伤害数字(需要场景支持,通常自动处理) # 如果希望显示伤害数字,可能需要更复杂的 Scene_Battle 修改 # 这里仅做数值扣除,保证逻辑正确。 # 记录日志或提示(可选,取决于是否开启战斗日志) #$game_temp.battle_messages.push("#{user.name} 受到了反噬!") end end end return result end end
#==============================================================================
# ** Game_Battler
#------------------------------------------------------------------------------
# 添加技能反噬效果
# 配置区域:REBOUND_SKILL_IDS 填入需要具有反噬效果的技能ID
#==============================================================================
class Game_Battler
# [配置] 在这里填入需要拥有“50%几率反噬0.8倍伤害”效果的技能ID
# 例如: [15, 23, 40] 表示 ID 为 15, 23, 40 的技能会触发此效果
REBOUND_SKILL_IDS = [57,58] # 默认设为1,请根据实际情况修改
# 别名化原有的技能效果方法,以便插入额外逻辑
alias_method :rebound_skill_effect_original, :skill_effect
def skill_effect(user, skill)
# 先执行原有的技能效果计算(包括伤害计算、状态添加等)
result = rebound_skill_effect_original(user, skill)
# 只有当技能是攻击性技能(造成HP伤害)且命中时才触发反噬
# self.damage > 0 表示造成了正向伤害(HP减少)
if self.damage.is_a?(Integer) && self.damage > 0
if REBOUND_SKILL_IDS.include?(skill.id)
# 50% 几率触发
if rand(100) < 50
# 计算反噬伤害:当前造成伤害的 0.8 倍
rebound_damage = (self.damage * 0.8).to_i
# 确保反噬伤害至少为 1,避免显示 0
if rebound_damage < 1
rebound_damage = 1
end
# 对使用者(user)造成伤害
# 注意:user 可能是敌人也可能是演员,Game_Battler 通用
user.hp -= rebound_damage
rebound_damage = "[199021133]自伤#{rebound_damage}"
# 可选:在用户头上显示反噬伤害数字(需要场景支持,通常自动处理)
# 如果希望显示伤害数字,可能需要更复杂的 Scene_Battle 修改
# 这里仅做数值扣除,保证逻辑正确。
# 记录日志或提示(可选,取决于是否开启战斗日志)
#$game_temp.battle_messages.push("#{user.name} 受到了反噬!")
end
end
end
return result
end
end
在40行自行添加rebound_damage = "[199021133]自伤#{rebound_damage}",未能显示数字,也未显示文字。打开47行,出错,不打开就可以。
3,变猪
让敌人变成一只猪,属性减半,目前有时候会出错, battle 2,偶尔会,不会经常出现
#============================================================================== # ▼ 变形技能(变猪/青蛙) + 属性减半 + 战斗图替换 #============================================================================== module Polymorph # 技能ID SKILL_ID = 57 # 变形状态ID PIG_STATE_ID = 21 FROG_STATE_ID = 22 # 战斗图文件名(位于 Graphics/Battlers/ 目录,不含后缀) PIG_BATTLER = "pig" FROG_BATTLER = "frog" end #-------------------------------------------------------------------------- # ● 技能使用效果:命中时随机附加变猪或变青蛙状态 #-------------------------------------------------------------------------- class Game_Battler alias poly_skill_effect skill_effect def skill_effect(user, skill) effective = poly_skill_effect(user, skill) return effective unless effective return effective unless skill.id == Polymorph::SKILL_ID # 随机选择变形状态 state_id = rand(2) == 0 ? Polymorph::PIG_STATE_ID : Polymorph::FROG_STATE_ID self.add_state(state_id) unless self.state_full?(state_id) effective end end #-------------------------------------------------------------------------- # ● 基本属性减半(若处于变形状态) #-------------------------------------------------------------------------- class Game_Battler [:str, :dex, :agi, :int, :atk, :pdef, :mdef, :eva].each do |stat| alias_method("poly_base_#{stat}", stat) define_method(stat) do val = send("poly_base_#{stat}") if [Polymorph::PIG_STATE_ID, Polymorph::FROG_STATE_ID].any? { |id| self.state?(id) } val / 2 else val end end end end #-------------------------------------------------------------------------- # ● 敌方战斗图替换(处于变形状态时显示猪/蛙图) #-------------------------------------------------------------------------- class Game_Enemy < Game_Battler alias poly_battler_name battler_name def battler_name if state?(Polymorph::PIG_STATE_ID) Polymorph::PIG_BATTLER elsif state?(Polymorph::FROG_STATE_ID) Polymorph::FROG_BATTLER else poly_battler_name end end end
#==============================================================================
# ▼ 变形技能(变猪/青蛙) + 属性减半 + 战斗图替换
#==============================================================================
module Polymorph
# 技能ID
SKILL_ID = 57
# 变形状态ID
PIG_STATE_ID = 21
FROG_STATE_ID = 22
# 战斗图文件名(位于 Graphics/Battlers/ 目录,不含后缀)
PIG_BATTLER = "pig"
FROG_BATTLER = "frog"
end
#--------------------------------------------------------------------------
# ● 技能使用效果:命中时随机附加变猪或变青蛙状态
#--------------------------------------------------------------------------
class Game_Battler
alias poly_skill_effect skill_effect
def skill_effect(user, skill)
effective = poly_skill_effect(user, skill)
return effective unless effective
return effective unless skill.id == Polymorph::SKILL_ID
# 随机选择变形状态
state_id = rand(2) == 0 ? Polymorph::PIG_STATE_ID : Polymorph::FROG_STATE_ID
self.add_state(state_id) unless self.state_full?(state_id)
effective
end
end
#--------------------------------------------------------------------------
# ● 基本属性减半(若处于变形状态)
#--------------------------------------------------------------------------
class Game_Battler
[:str, :dex, :agi, :int, :atk, :pdef, :mdef, :eva].each do |stat|
alias_method("poly_base_#{stat}", stat)
define_method(stat) do
val = send("poly_base_#{stat}")
if [Polymorph::PIG_STATE_ID, Polymorph::FROG_STATE_ID].any? { |id| self.state?(id) }
val / 2
else
val
end
end
end
end
#--------------------------------------------------------------------------
# ● 敌方战斗图替换(处于变形状态时显示猪/蛙图)
#--------------------------------------------------------------------------
class Game_Enemy < Game_Battler
alias poly_battler_name battler_name
def battler_name
if state?(Polymorph::PIG_STATE_ID)
Polymorph::PIG_BATTLER
elsif state?(Polymorph::FROG_STATE_ID)
Polymorph::FROG_BATTLER
else
poly_battler_name
end
end
end
|