传奇给力引擎装备触发技能脚本编写实例

来源: 作者: 点击:
一、核心触发字段与脚本结构

在给力引擎中,实现“装备攻击时概率触发技能”的功能,核心在于武器数据库的AniCount字段以及脚本文件的编写。此功能不通过装备属性直接实现,而是需要数据库与脚本联动。

数据库字段设定:
首先,打开服务端DB数据库(DBC2000或Access),找到需要添加触发效果的武器。关键字段是AniCount。此字段通常控制武器外观,但可将其设置为一个特定的、不重复的触发编号(例如1001)。此编号无实际外观意义,仅作为脚本识别的标识。

脚本联动路径:
触发检测与执行的脚本,需编写在服务端的QuestDiary文件夹下的特定文本文件中,并在引擎的功能脚本(通常是QFunction-0.txt)中进行关联调用。

二、数据库设置与攻击触发检测

第一步:数据库标记武器
1. 打开数据库,找到目标武器(如“命运之刃”)。
2. 将其AniCount字段的值修改为一个独特的编号,例如 1001。此编号代表“攻击时触发技能1”。
3. 保存数据库修改,重启M2引擎使数据库更改生效。

第二步:编写触发检测脚本
在D:\MirServer\Mir200\Envir\MapQuest_Def\QManage.txt(或其他给力引擎指定的个人登录脚本)中,添加攻击触发检测。

[@Attack]
#IF
CHECKCURRTARGETRACE = 0 ; 检测攻击目标是怪物
#ACT
; 此处可添加更复杂的触发条件,如等级、地图等
GOTO @CheckWeaponSkill
BREAK

[@CheckWeaponSkill]
#IF
CHECKITEMW 命运之刃 1 ; 检测是否佩戴指定武器
RANDOM 10 ; 设置触发概率,此处为1/10,即10%几率
#ACT
GOTO @TriggerSkill_1001 ; 触发编号1001对应的技能脚本
#ELSEACT
BREAK

说明:[@Attack]是引擎默认的攻击触发段。RANDOM 10表示十分之一的触发几率,可根据需求调整数字。

三、具体技能触发与效果执行

第三步:编写技能触发效果脚本
在QFunction-0.txt文件中,编写具体触发效果。此文件是引擎的核心功能脚本,用于处理各类自定义触发。

[@TriggerSkill_1001]
#IF
; 可在此处添加额外条件,如怪物血量、自身Buff等
#ACT
; 1. 释放技能效果(此处以“雷霆剑”为例,使用GM命令模拟)
GMEXECUTE MAGIC 雷霆剑
; 2. 给予技能伤害(可选,增强效果)
M.HUMANHP - 200 ; 对目标造成200点额外伤害
; 3. 发送提示信息
SENDMSG 6 【命运之刃】光芒一闪,雷霆之力迸发!
; 4. 添加特效(可选,需客户端支持)
; PLAYEFFECT 雷霆剑 5
#ELSEACT
BREAK

关键点:
• GMEXECUTE MAGIC 技能名 是给力引擎中让角色释放指定技能的关键命令。

• M. 代表当前攻击的怪物目标,HUMANHP - 数值 表示对其造成固定伤害。若攻击玩家目标,命令可能不同。

• SENDMSG 6 发送的提示信息仅自己可见。

四、多技能与概率进阶设置

若需一件武器触发多种技能,或不同技能有不同概率,需在数据库和脚本中进行更复杂的设置。

方案一:一武器多技能,按概率触发
1. 数据库:武器AniCount字段仍设置为唯一编号,如1002。
2. 脚本逻辑:在[@CheckWeaponSkill]段,通过嵌套RANDOM和#ACT来实现权重概率。

[@CheckWeaponSkill_1002]
#IF
CHECKITEMW 逍遥扇 1
#ACT
RANDOM 100
#IF
SMALL N99 20 ; 1-20, 20%概率
#ACT
GOTO @TriggerSkill_火墙
BREAK
#IF
LARGE N99 20
SMALL N99 50 ; 21-50, 30%概率
#ACT
GOTO @TriggerSkill_灵魂火符
BREAK
#IF
LARGE N99 50 ; 51-100, 50%概率
#ACT
GOTO @TriggerSkill_施毒术
BREAK

说明:N99是RANDOM 100生成的随机数变量,通过判断其范围来实现不同技能的触发权重。

方案二:多武器共用触发检测
若多件武器需触发同一技能,无需为每件武器单独写脚本。可在[@CheckWeaponSkill]段使用OR条件判断。

[@CheckWeaponSkill_Group]
#IF
CHECKITEMW 裁决之杖 1
OR
CHECKITEMW 屠龙 1
OR
CHECKITEMW 开天 1
#ACT
RANDOM 15
GOTO @TriggerSkill_开天斩
BREAK

脚本放置与引擎重读:所有脚本修改后,必须保存。在游戏中,管理员输入命令 @重读攻击触发 或 @ReloadQFunction(具体命令因引擎小版本而异)使脚本生效,无需重启整个服务器。