请教一下大佬,触发物理闪避,我想让它在战斗中播放动画就行
rpgmakervxace吧
全部回复
仅看楼主
level 1
嗯咯都 楼主
如题 好像这个脚本 不行
#==============================================================================
# ■ 物理闪避触发动画脚本(RPGVXAce专用)
# 功能:角色/敌人触发物理闪避时,自动播放设定动画,不破坏默认战斗流程
# 配置:仅修改下方3个核心参数,无需懂脚本
#==============================================================================
module EvadeAnim
#--------------------------【核心配置(按需修改)】--------------------------
ANIM_ID = 24 # 闪避动画ID(数据库→动画中查询,默认123=快速闪光)
PLAY_TARGET = 0 # 动画播放对象:0=闪避方(推荐),1=攻击方(体现打空)
WAIT_ANIM = true # 战斗是否暂停等动画:true=流畅,false=快节奏
#----------------------------------------------------------------------------
end
#==============================================================================
# ■ Game_BattlerBase(重写闪避判定,追加动画触发)
#==============================================================================
class Game_BattlerBase
# 重写物理闪避判定,保留原逻辑+追加动画
def evade_physical?(attacker)
is_evade = super(attacker) # 执行默认闪避判定,获取结果
# 闪避成功且为战斗者(角色/敌人),触发动画
play_evade_anim(attacker) if is_evade && (actor? || enemy?)
is_evade
end
# 新增:闪避动画播放逻辑(战斗场景层级,显示无异常)
def play_evade_anim(attacker)
# 确定播放目标(闪避方/攻击方)
target = EvadeAnim::PLAY_TARGET == 0 ? self : attacker
# 播放动画(容错处理:动画ID无效时不报错,仅不显示)
SceneManager.scene.perform_animation([target], EvadeAnim::ANIM_ID, EvadeAnim::WAIT_ANIM) rescue nil
end
end
#==============================================================================
# 脚本结束
#==============================================================================
2025年12月16日 15点12分 1
1