一、传奇脚本是什么?
传奇脚本是用于控制热血传奇游戏内NPC(非玩家角色)行为和交互逻辑的编程语言。通过编写脚本,可以让NPC执行特定操作,比如对话、发放物品、传送玩家、触发任务等。脚本文件通常以.txt为后缀,存放在服务器的Envir文件夹中。
二、基础语法结构
段落与跳转
每个脚本以[main]开头,表示主程序段。
用[@段名]定义子段落,通过goto@段名跳转执行。
示例:
[main]
#say欢迎来到我的商店!
goto@buy#跳转到购买功能段落
[buy]
#say请选择要购买的物品:
对话与操作命令
#say文字:显示对话内容(无需引号)。
#act命令:执行系统指令,如传送、刷怪等。
close:关闭对话框。
示例:
#say金币不足,请充值!
close#关闭对话
物品与金币管理
give物品ID数量:发放物品(如give20011发放药水)。
take物品ID数量:收回物品。
givegold数量:发放金币。
示例:
#actgive20011#给玩家一瓶药水
#acttakegold100#收取100金币
地图与传送控制
map地图ID:传送到随机坐标(如map101)。
mapmove地图IDXY:传送到指定坐标(如mapmove1013050)。
monclear地图ID:清除地图上的怪物。
时间与状态控制
TimeRecall数值:设置限时(单位:分钟),超时后触发事件。
checklevel数值:检测玩家等级是否≥数值。
checkgold数值:检测玩家金币是否≥数值。
---
三、逻辑控制语句
条件判断
#IF条件:满足条件时执行后续操作。
#ELSEACT:条件不满足时执行。
示例:
#IFchecklevel30
#say恭喜达到30级!
#ELSEACT
#say等级不足,继续努力!
变量操作
mov变量名数值:赋值(如movP010)。
inc变量名数值:增加变量值(如incP05)。
sum变量A变量B:变量相加(需先初始化变量)。
随机与概率
random数值:生成随机数,常用于概率触发。
示例:
#IFrandom3#30%概率触发
#actgive20011
#ELSEACT
#say很遗憾,未触发!
---
四、实战案例
案例1:简单传送脚本
[main]
say是否传送到安全区?
IFcheckpkpoint2#检测是否红名
say红名无法传送!
ELSEACT
mapmove101100100#传送到比奇城
say传送成功!
close
案例2:抽奖脚本
[main]
say消耗100金币抽奖!
IFcheckgold100
acttakegold100
random10#生成1-10的随机数
IFrandom1
actgive200110#10%概率得10瓶药水
ELSEACT
say感谢参与!
ENDIF
close
---
五、注意事项
语法规范:命令区分大小写,变量名需唯一。
测试脚本:修改后需在测试服验证,避免崩溃。
备份文件:修改前备份原脚本,防止误操作。
传奇脚本是用于控制热血传奇游戏内NPC(非玩家角色)行为和交互逻辑的编程语言。通过编写脚本,可以让NPC执行特定操作,比如对话、发放物品、传送玩家、触发任务等。脚本文件通常以.txt为后缀,存放在服务器的Envir文件夹中。
二、基础语法结构
段落与跳转
每个脚本以[main]开头,表示主程序段。
用[@段名]定义子段落,通过goto@段名跳转执行。
示例:
[main]
#say欢迎来到我的商店!
goto@buy#跳转到购买功能段落
[buy]
#say请选择要购买的物品:
对话与操作命令
#say文字:显示对话内容(无需引号)。
#act命令:执行系统指令,如传送、刷怪等。
close:关闭对话框。
示例:
#say金币不足,请充值!
close#关闭对话
物品与金币管理
give物品ID数量:发放物品(如give20011发放药水)。
take物品ID数量:收回物品。
givegold数量:发放金币。
示例:
#actgive20011#给玩家一瓶药水
#acttakegold100#收取100金币
地图与传送控制
map地图ID:传送到随机坐标(如map101)。
mapmove地图IDXY:传送到指定坐标(如mapmove1013050)。
monclear地图ID:清除地图上的怪物。
时间与状态控制
TimeRecall数值:设置限时(单位:分钟),超时后触发事件。
checklevel数值:检测玩家等级是否≥数值。
checkgold数值:检测玩家金币是否≥数值。
---
三、逻辑控制语句
条件判断
#IF条件:满足条件时执行后续操作。
#ELSEACT:条件不满足时执行。
示例:
#IFchecklevel30
#say恭喜达到30级!
#ELSEACT
#say等级不足,继续努力!
变量操作
mov变量名数值:赋值(如movP010)。
inc变量名数值:增加变量值(如incP05)。
sum变量A变量B:变量相加(需先初始化变量)。
随机与概率
random数值:生成随机数,常用于概率触发。
示例:
#IFrandom3#30%概率触发
#actgive20011
#ELSEACT
#say很遗憾,未触发!
---
四、实战案例
案例1:简单传送脚本
[main]
say是否传送到安全区?
IFcheckpkpoint2#检测是否红名
say红名无法传送!
ELSEACT
mapmove101100100#传送到比奇城
say传送成功!
close
案例2:抽奖脚本
[main]
say消耗100金币抽奖!
IFcheckgold100
acttakegold100
random10#生成1-10的随机数
IFrandom1
actgive200110#10%概率得10瓶药水
ELSEACT
say感谢参与!
ENDIF
close
---
五、注意事项
语法规范:命令区分大小写,变量名需唯一。
测试脚本:修改后需在测试服验证,避免崩溃。
备份文件:修改前备份原脚本,防止误操作。

