传奇脚本是控制游戏内各种功能事件的程序代码。通过脚本可实现装备交易、任务触发、活动开启、怪物刷新、地图传送等游戏功能。
脚本基本概念
脚本由特定命令和语法规则组成。引擎读取脚本文件后按顺序执行命令。每条命令完成特定功能,多条命令组合实现复杂逻辑。
脚本文件以.txt为扩展名。存放于服务端Envir目录下。不同功能脚本存放于不同子目录。
脚本目录结构
Market_Def目录存放NPC脚本。每个NPC对应一个脚本文件。玩家与NPC对话时触发脚本执行。
Manage_Quest目录存放任务脚本。任务接取、完成、奖励发放均由脚本控制。
MapEvent目录存放地图事件脚本。玩家进入特定地图时触发事件。
Robot_def目录存放机器人脚本。定时执行公告、活动等功能。
MonDrop目录存放怪物爆率脚本。定义每只怪物掉落物品及概率。
脚本基本格式
脚本由标签、条件、动作三部分组成。
标签格式为[@标签名]。标签是脚本入口点,引擎通过标签名称调用脚本。
条件段以#IF开头。检测玩家状态、物品、等级等条件。条件满足时执行动作段。
动作段以#ACT开头。执行发送物品、改变属性、传送地图等操作。
示例:
[@main]
IF
checklevel 50
ACT
SENDMSG 0 恭喜达到50级
BREAK
常用命令分类
检测类命令用于判断条件。CHECKLEVEL检测玩家等级。CHECKITEM检测背包物品。CHECKGOLD检测金币数量。CHECKJOB检测职业类型。
动作类命令用于执行操作。GIVE发送物品给玩家。TAKE收取玩家物品。GOTO跳转到指定标签。MAPMOVE传送玩家到地图。
消息类命令用于发送提示。SENDMSG向玩家发送消息。SENDMSG 0向全服发送消息。SENDMSG 1向当前地图发送消息。
变量类命令用于数据存储。MOV赋值变量。CHECK检测变量值。CALC计算变量数值。
变量类型说明
个人变量以N开头。N0至N9共10个临时变量。变量值仅当前脚本有效,脚本结束清空。
个人永久变量以D开头。D0至D9共10个永久变量。变量值保存在角色数据中,下线不丢失。
全局变量以G开头。G0至G9共10个全局变量。所有玩家共享同一变量值。
引擎变量以S开头。S0至S9共10个引擎变量。用于服务端系统功能。
NPC脚本编写
NPC脚本定义玩家可交互的非玩家角色。脚本包含NPC外观、位置、对话内容、功能选项。
NPC定义格式:
;NPC名称 地图号 X坐标 Y坐标 外观编号 描述
武器店 3 300 300 7 武器维修与购买
对话内容使用括号包裹。不同选项对应不同标签。玩家点击选项后跳转到对应标签执行功能。
[@main]
您好,需要购买武器吗?
@buy
@repair
@exit
任务脚本编写
任务脚本控制任务流程。包含任务接取条件、任务目标、任务完成奖励。
接取条件检测玩家等级、前置任务完成状态。任务目标包括击杀怪物数量、收集物品数量、到达指定地图。
任务完成时发放经验、金币、装备奖励。任务状态使用变量记录,避免重复接取。
[@任务接取]
IF
CHECKLEVEL 30
CHECK D0 0
ACT
MOV D0 1
SENDMSG 任务已接取,击杀100只沃玛卫士
BREAK
活动脚本编写
活动脚本控制限时活动开启与结束。使用机器人脚本定时触发。
活动开启时全服发送通知。活动期间怪物爆率提升、经验倍数增加。活动结束恢复默认设置。
活动状态使用全局变量记录。避免活动重复开启。
[@活动开启]
ACT
SENDMSG 0 双倍经验活动已开启
SET S0 1
CALC S0 + 1
BREAK
爆率脚本编写
爆率脚本定义怪物掉落物品。每只怪物可配置独立爆率文件。
爆率格式为物品名称加概率。概率格式为1/数值。数值越小爆率越高。
屠龙刀 1/10000
裁决之杖 1/5000
沃玛号角 1/500
金币 1/100 1000
可设置条件爆率。玩家等级、职业、幸运值影响实际爆率。高级玩家获得更高爆率。
地图传送脚本
传送脚本实现地图间快速移动。玩家支付金币或道具后传送到目标地图。
传送前检测玩家等级、金币数量、背包空间。条件满足后执行传送命令。
[@传送]
IF
CHECKGOLD 1000
ACT
TAKE 金币 1000
MAPMOVE 3 300 300
SENDMSG 传送成功
BREAK
可设置传送限制。部分地图需要特定道具才能进入。副本地图限制进入次数。
装备交易脚本
交易脚本实现玩家间装备交换。通过NPC中介完成交易流程。
脚本检测双方物品、金币。确认无误后执行物品转移。交易记录保存至日志。
可设置交易手续费。手续费比例在脚本中定义。收取的金币进入系统账户。
脚本调试方法
使用SENDMSG命令在关键位置发送测试消息。消息正常显示说明脚本执行到该位置。
开启引擎日志功能。脚本执行错误会在日志中显示。根据错误提示修正脚本。
变量值使用SENDMSG命令显示。检测变量是否正确赋值。
分段测试脚本功能。先测试条件检测,再测试动作执行。定位问题所在段落。
常见错误类型
标签名称拼写错误导致脚本无法调用。标签名称区分大小写。
命令参数格式错误导致命令失效。参数类型、数量需符合命令要求。
变量未初始化导致检测失败。使用MOV命令先赋值再检测。
脚本文件编码错误导致引擎无法读取。文件需保存为ANSI编码。
路径配置错误导致脚本无法加载。确认脚本目录与引擎配置一致。
脚本学习建议
从简单脚本开始练习。先掌握基础命令用法,再学习复杂逻辑。
参考现有脚本文件。分析成熟脚本的编写思路和命令组合。
记录常用命令格式。建立命令速查表方便编写时参考。
多实践多测试。脚本编写后充分测试确保功能正常。
加入技术交流群体。与其他脚本编写者交流经验解决问题。
引擎版本差异
不同引擎脚本命令存在差异。GOM引擎、GEE引擎、HERO引擎命令格式略有不同。
新版本引擎支持更多命令功能。老版本引擎部分命令已废弃。
脚本迁移时需对照引擎文档。确认命令在当前引擎中是否支持。
部分引擎支持脚本加密功能。加密后脚本内容不可查看。
脚本性能注意
避免脚本死循环。GOTO命令跳转需有退出条件。
减少不必要的数据检测。频繁检测变量影响执行效率。
大段脚本拆分为多个文件。使用CALL命令调用子脚本。
定时脚本设置合理间隔。过于频繁的定时触发占用系统资源。

