当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇给力引擎装备触发技能脚本实现方法

热度:
在给力引擎中,实现“装备特定武器后攻击时几率触发技能”需结合装备绑定脚本与攻击事件检测。核心逻辑通过QFunction.txt中的@Attack事件配合变量判断完成。以下是具体步骤。

一、确认技能编号与触发条件
首先明确目标技能的编号(如火墙为10,雷电术为12),并确定触发几率(例如20%)。技能必须为角色已学习或系统允许直接调用的类型。

二、在装备物品属性中添加自定义标识
编辑StdItems.txt或使用Diy功能,在目标武器的附加属性栏加入唯一标识,例如:
[属性]触发技能=雷电术
或通过ItemExt.ini添加:
[武器名称]
ExtInfo=SkillTrigger=12

更通用的做法是在QManage.txt中为该装备设置登录加载变量:
[@Login]
if
CHECKITEM武器名称
act
SET[TRIG_SKILL]12
SET[TRIG_RATE]20

三、在QFunction.txt中编写攻击触发逻辑
找到[@Attack]事件(若无则新建),加入以下代码:
[@Attack]
if
EQUAL
LARGE0
act
break

if
RANDOM
act
USESKILL

说明:
TRIG_SKILL存储技能编号;
TRIG_RATE存储触发百分比(0-100);
RANDOMN表示N%几率返回真;
USESKILL为给力引擎内置命令,直接释放技能。

四、处理多装备冲突
若角色可能同时携带多个触发装备,需在每次切换装备时更新变量。在ChangeEquipment.txt中添加:
[@WearItem]
if
CHECKITEM武器A
act
SET[TRIG_SKILL]12
SET[TRIG_RATE]20
goto@EndTrig

if
CHECKITEM武器B
act
SET[TRIG_SKILL]10
SET[TRIG_RATE]30
goto@EndTrig

[@EndTrig]

五、限制技能触发场景
避免在安全区或特定地图误触发,可在[@Attack]前增加地图判断:
if
CHECKMAPAREA3
act
break

CHECKMAPAREA3表示非安全区(具体数值依引擎配置而定)。

六、测试与调试
装备目标武器后,输入@变量TRIG_SKILL查看是否正确赋值;
使用低CD技能(如魔法盾)便于观察触发效果;
在[@Attack]中临时加入SENDMSG5触发检测辅助验证逻辑是否进入。

注意事项
部分技能(如召唤类)无法通过USESKILL直接调用,需改用MOVRUN执行技能脚本;
攻击事件包含物理与魔法攻击,若仅限物理攻击,需增加ISPHYSICALATTACK判断(依引擎支持情况);
变量建议使用字符串型($STR)避免数值溢出。

此方案不修改核心文件,仅依赖标准脚本事件,适用于多数版本的给力引擎。触发逻辑完全由服务端控制,客户端无需额外插件。
[顶部]