传奇刀刀触发冰冻Buff脚本编写方法

来源: 作者: 点击:
在传奇自建服务器中实现“刀刀冰冻”效果,即每次物理攻击命中时有概率或必定附加冰冻状态,需通过服务端的技能触发机制与自定义Buff系统配合完成。以下以Mir2引擎(如1117、1280等常见版本)为例,说明具体配置步骤。

一、确认引擎是否支持自定义Buff
多数新版Mir2引擎已内置Buff系统,通常通过!MagicInfo.txt定义技能,通过QFunction中的[@Attack]或[@HitMonster]事件触发附加效果。若引擎不支持原生Buff,需依赖“中毒状态模拟”或“定身技能”替代冰冻。

二、创建冰冻Buff技能
在!MagicInfo.txt中添加一个隐藏技能,作为冰冻效果载体:


[冰冻效果]
MagicID=999
SpellName=冰冻效果
SpellType=1
Damage=0
MP=0
Level=0
Range=0
Time=3000
Speed=0
Effect=0
SelfEffect=0
TargetEffect=107
Need=0 0 0


说明:
MagicID=999 为自定义ID,需确保未被占用
Time=3000 表示冰冻持续3秒(单位毫秒)
TargetEffect=107 为客户端显示的冰冻特效(需客户端支持该特效ID)

三、绑定攻击触发逻辑
在QFunction-0.txt中使用[@HitMonster]事件(玩家攻击怪物)或[@HitPlayer](玩家互攻)触发冰冻:


[@HitMonster]
IF
CHECKITEMBOX 武器名称
ACT
CALL [ApplyFreezeBuff]

[@HitPlayer]
IF
CHECKITEMBOX 武器名称
ACT
CALL [ApplyFreezeBuff]

[ApplyFreezeBuff]
IF
RANDOM 100


说明:
CHECKITEMBOX 可限定仅特定武器触发(如“屠龙”),若不限制可删除此条件
RANDOM 100 )

四、处理Buff实际效果(定身+减速)
纯视觉特效无法阻止目标移动。需通过技能附带“定身”逻辑。部分引擎支持在!MagicInfo.txt中设置:


MoveBlock=1


或在QManage.txt中监听Buff生效事件:


[@BuffStart_999]
ACT
CHANGEATTRIB 动作锁定 1

[@BuffEnd_999]
ACT
CHANGEATTRIB 动作锁定 0


若引擎不支持动作锁定,可用高减速替代:


[@BuffStart_999]
ACT
SET HUMAN FREEZE_SPEED 1
CALCVAR HUMAN SPEED = HUMAN SPEED * 0.1
...(需配合移动速度检测脚本)


五、测试与调试要点
确保目标能被正确识别(在[@HitMonster]中有效)
检查客户端是否加载了特效ID 107(冰冻粒子),否则无视觉反馈
若Buff不生效,确认MagicID未冲突,且CASTSPELL命令被引擎支持
玩家对玩家场景需在!Setup.txt中开启PK相关事件(如AllowPkEvent=1)

通过上述配置,可实现每次攻击命中时自动附加冰冻状态,达成“刀刀冰冻”效果。脚本结构可根据实际引擎特性调整触发条件与持续时间。