####一、脚本文件调用原理与核心逻辑
在传奇私人服务器引擎架构中,脚本调用遵循**三级触发机制**(见图1):
**引擎内核→主功能脚本(QFUNCTION)→自定义NPC脚本**。其中:
1.**QFunction-0.txt**:作为系统级事件触发器,负责处理全服公共事件(如死亡、升级、装备穿戴),其文件名和标签格式不可修改。
2.**自定义NPC脚本**:需通过**Merchant.txt注册**+**Market_Def存储**实现调用。
---
####二、创建并调用"装备领取.txt"全流程(含实战代码)
#####1.**NPC注册与坐标绑定**
在`MirServer\Mir200\Envir\Merchant.txt`中添加注册行(以盟重省为例):
```bash
装备领取3331332装备领取00000
```
-**参数解析**:`3`表示盟重省地图编号,`331332`为坐标点
-**目录规范**:NPC脚本需存储在`Market_Def`目录下,文件名为"装备领取.txt"
#####2.**脚本核心结构示例**
```lua
[@main]
#SAY
欢迎使用战神装备发放系统!\
请选择职业:\
<战士/@warrior>|<法师/@wizard>|<道士/@taoist>\
[@warrior]
#ACT
GIVE圣战项链1
GIVE圣战手镯2
TakeOnItem圣战手镯5//左手镯穿戴
TakeOnItem圣战手镯6//右手镯穿戴
MESSAGEBOX战士套装已发放并自动穿戴!
BREAK
```
---
####三、装备穿戴命令与位置编号对照表
#####1.**基础穿戴指令**
-**穿戴命令**:`TakeOnItem装备名称位置编号`
-**卸下命令**:`TakeOffItem位置编号`
#####2.**全装备位编号详解**
|位置编号|装备类型|穿戴规则|引擎差异说明|
|----------|----------------|-----------------------------------|-------------------------------|
|0|衣服|唯一性检测|GOM引擎支持外观染色|
|1|武器|检测职业限制|V8M2支持双持武器|
|2|勋章|需配合QFUNCTION触发技能|部分引擎支持勋章成长属性|
|3|项链|无职业限制|可绑定复活特效|
|4|头盔|检测性别外观|支持自定义染色|
|5|左手镯|可穿戴多个(需脚本判断)|GEE引擎扩展为5=左、15=右|
|6|右手镯|同左手镯||
|7|左戒指|支持套装检测|可触发元素属性|
|8|右戒指|同左戒指||
|10|腰带|需引擎支持扩展位|BLUE引擎需开启新字段|
|11|鞋子|同腰带||
---
####四、高阶开发技巧
#####1.**穿戴事件联动**
在`QFunction-0.txt`中实现装备属性触发:
```lua
[@TakeOn3]//项链穿戴触发
#IF
CHECKITEMNAME圣战项链
#ACT
CHANGEMODE111//激活暴击率+1%
SENDMSG6圣战之力激活!暴击率提升1%
[@TakeOff3]
#ACT
CHANGEMODE110//移除暴击加成
```
#####2.**跨脚本调用示例**
```lua
[@main]
#CALL[\\系统功能\装备检测.txt]@检测战力//调用外部脚本
#IF
EQUALS$战力评级"SSS"
#ACT
GIVE神·至尊腰带1
TakeOnItem神·至尊腰带10
```
---
####五、常见问题排查表
|故障现象|原因分析|解决方案|
|--------------------------|-----------------------------|-----------------------------------|
|NPC不显示|Merchant.txt格式错误|检查字段数和地图编号合法性|
|装备无法穿戴|位置编号与引擎不兼容|使用GEE引擎需测试5/15位差异|
|穿戴后属性未触发|QFunction标签命名错误|确认[@TakeOnX]格式正确|
|多件手镯穿戴冲突|未清空旧装备位|先执行TakeOffItem再穿戴新装备|
---
####六、2025引擎特性适配
1.**V8M2引擎增强**:
```lua
ADDBUTTON311125325325302000一键换装//添加自定义换装按钮
```
2.**GOM引擎内存优化**:
```lua
#CALL[\\内存管理\清理缓存.txt]@Flush//防止穿戴事件堆积卡顿
```
---
####结语:脚本开发三大原则
1.**路径规范**:所有自定义脚本必须存放在`Market_Def`目录下
2.**编号验证**:穿戴位置需通过`/test_equip_pos`命令实测
3.**事件分离**:基础功能放在QFunction,业务逻辑写在NPC脚本
在传奇私人服务器引擎架构中,脚本调用遵循**三级触发机制**(见图1):
**引擎内核→主功能脚本(QFUNCTION)→自定义NPC脚本**。其中:
1.**QFunction-0.txt**:作为系统级事件触发器,负责处理全服公共事件(如死亡、升级、装备穿戴),其文件名和标签格式不可修改。
2.**自定义NPC脚本**:需通过**Merchant.txt注册**+**Market_Def存储**实现调用。
---
####二、创建并调用"装备领取.txt"全流程(含实战代码)
#####1.**NPC注册与坐标绑定**
在`MirServer\Mir200\Envir\Merchant.txt`中添加注册行(以盟重省为例):
```bash
装备领取3331332装备领取00000
```
-**参数解析**:`3`表示盟重省地图编号,`331332`为坐标点
-**目录规范**:NPC脚本需存储在`Market_Def`目录下,文件名为"装备领取.txt"
#####2.**脚本核心结构示例**
```lua
[@main]
#SAY
欢迎使用战神装备发放系统!\
请选择职业:\
<战士/@warrior>|<法师/@wizard>|<道士/@taoist>\
[@warrior]
#ACT
GIVE圣战项链1
GIVE圣战手镯2
TakeOnItem圣战手镯5//左手镯穿戴
TakeOnItem圣战手镯6//右手镯穿戴
MESSAGEBOX战士套装已发放并自动穿戴!
BREAK
```
---
####三、装备穿戴命令与位置编号对照表
#####1.**基础穿戴指令**
-**穿戴命令**:`TakeOnItem装备名称位置编号`
-**卸下命令**:`TakeOffItem位置编号`
#####2.**全装备位编号详解**
|位置编号|装备类型|穿戴规则|引擎差异说明|
|----------|----------------|-----------------------------------|-------------------------------|
|0|衣服|唯一性检测|GOM引擎支持外观染色|
|1|武器|检测职业限制|V8M2支持双持武器|
|2|勋章|需配合QFUNCTION触发技能|部分引擎支持勋章成长属性|
|3|项链|无职业限制|可绑定复活特效|
|4|头盔|检测性别外观|支持自定义染色|
|5|左手镯|可穿戴多个(需脚本判断)|GEE引擎扩展为5=左、15=右|
|6|右手镯|同左手镯||
|7|左戒指|支持套装检测|可触发元素属性|
|8|右戒指|同左戒指||
|10|腰带|需引擎支持扩展位|BLUE引擎需开启新字段|
|11|鞋子|同腰带||
---
####四、高阶开发技巧
#####1.**穿戴事件联动**
在`QFunction-0.txt`中实现装备属性触发:
```lua
[@TakeOn3]//项链穿戴触发
#IF
CHECKITEMNAME圣战项链
#ACT
CHANGEMODE111//激活暴击率+1%
SENDMSG6圣战之力激活!暴击率提升1%
[@TakeOff3]
#ACT
CHANGEMODE110//移除暴击加成
```
#####2.**跨脚本调用示例**
```lua
[@main]
#CALL[\\系统功能\装备检测.txt]@检测战力//调用外部脚本
#IF
EQUALS$战力评级"SSS"
#ACT
GIVE神·至尊腰带1
TakeOnItem神·至尊腰带10
```
---
####五、常见问题排查表
|故障现象|原因分析|解决方案|
|--------------------------|-----------------------------|-----------------------------------|
|NPC不显示|Merchant.txt格式错误|检查字段数和地图编号合法性|
|装备无法穿戴|位置编号与引擎不兼容|使用GEE引擎需测试5/15位差异|
|穿戴后属性未触发|QFunction标签命名错误|确认[@TakeOnX]格式正确|
|多件手镯穿戴冲突|未清空旧装备位|先执行TakeOffItem再穿戴新装备|
---
####六、2025引擎特性适配
1.**V8M2引擎增强**:
```lua
ADDBUTTON311125325325302000一键换装//添加自定义换装按钮
```
2.**GOM引擎内存优化**:
```lua
#CALL[\\内存管理\清理缓存.txt]@Flush//防止穿戴事件堆积卡顿
```
---
####结语:脚本开发三大原则
1.**路径规范**:所有自定义脚本必须存放在`Market_Def`目录下
2.**编号验证**:穿戴位置需通过`/test_equip_pos`命令实测
3.**事件分离**:基础功能放在QFunction,业务逻辑写在NPC脚本

