传奇服务端核心脚本命令大全 常用命令用法及实战实例解析

来源: 作者: 点击:
一、传奇服务端脚本命令基础认知

传奇服务端脚本命令是控制游戏内NPC对话、物品交互、任务触发、属性变动等核心逻辑的指令集合,主要存放在Envir文件夹下的各类脚本文件中,以.txt格式保存。所有命令需遵循固定语法规则,通过“#IF”“#ACT”“#ELSEACT”等关键字实现条件判断与执行逻辑,配合系统变量(如$USERNAME玩家名、$LEVEL等级)可实现灵活交互。

脚本命令的核心作用是搭建游戏玩法框架,无论是商贩售卖物品、任务奖励发放,还是技能学习限制,都需通过命令组合实现。使用前需明确两个关键点:一是命令区分大小写(如#IF不可写为#if),二是脚本文件编码需设为ANSI,否则会出现乱码导致命令失效。

二、核心脚本命令分类及详细用法

根据功能差异,传奇服务端脚本命令可分为物品操作、属性修改、对话交互、条件判断四大类,以下为每类中高频使用的命令及实战说明。

1. 物品操作命令:控制物品获取与消耗

物品操作是脚本最基础的功能,核心命令包括给予物品、扣除物品、检查物品数量等,直接影响玩家道具交互体验。

命令格式

功能说明

参数解释

实战实例

GIVE 物品名称 数量

给予玩家指定数量物品

物品名称需与数据库完全一致,数量为正整数

GIVE 金疮药(小) 5 —— 给予玩家5个小瓶金疮药

TAKE 物品名称 数量

扣除玩家背包中指定物品

物品需存在且数量充足,否则命令不执行

TAKE 沃玛号角 1 —— 扣除玩家1个沃玛号角

CHECKITEM 物品名称 数量

条件判断:检查玩家是否拥有指定物品及数量

常用于#IF模块,返回真则执行#ACT逻辑

#IF CHECKITEM 金币 1000 #ACT GIVE 声望卷 1 —— 有1000金币则兑换声望卷

CLEARITEM 物品名称

清空玩家背包中指定物品

不限制数量,慎用(建议搭配数量限制)

CLEARITEM 新手礼包 —— 清空玩家所有新手礼包

注意:物品名称必须与Items.DB数据库中的“物品名称”字段完全匹配,包括特殊符号,否则命令无法识别。

2. 属性修改命令:调整玩家核心数据

此类命令用于修改玩家等级、金币、声望、攻击力等核心属性,是任务奖励、等级提升、道具效果的实现核心,需严格控制使用场景避免失衡。

- ADDLEVEL 数值:增加玩家等级,数值可正可负(负数为降低等级)。实例:ADDLEVEL 2 —— 玩家等级提升2级;ADDLEVEL -1 —— 玩家等级降低1级。

- ADDGOLD 数值:增减玩家金币,数值为负时扣除金币。实例:ADDGOLD 5000 —— 给予5000金币;ADDGOLD -2000 —— 扣除2000金币(需金币充足)。

- ADDREPUTE 数值:修改玩家声望值,传奇中声望用于结婚、拜师等功能。实例:ADDREPUTE 10 —— 增加10点声望,配合声望卷使用即为此命令。

- SETSTR 数值:直接设置玩家攻击力(STR为力量属性对应攻击力),而非增减。实例:SETSTR 30 —— 将玩家攻击力固定设为30点。

- ADDHP 数值:即时增加玩家生命值,不改变最大生命值上限。实例:ADDHP 200 —— 玩家当前生命值立即增加200点。

属性修改命令常与条件判断结合,例如“达到30级可领取属性奖励”:

#IF
CHECKLEVEL >= 30
#ACT
ADDSTR 5
ADDHPMAX 100
SENDMSG 6 恭喜达到30级,获得5点攻击力和100点生命上限奖励!
#ELSEACT
SENDMSG 6 需达到30级才能领取该奖励,请继续升级!

3. 对话交互命令:构建NPC沟通逻辑

对话交互命令决定NPC与玩家的对话流程,包括菜单显示、文字提示、对话跳转等,是提升游戏交互体验的关键,核心命令围绕“@”符号展开。

(1)基础对话命令

- [@main]:NPC对话主入口,所有对话逻辑从该标签开始。实例:[@main] 欢迎来到土城,我是武器商人!\1. 购买武器\2. 修理装备 —— “\”用于换行,数字引导菜单选项。

- [@数字/关键词]:菜单选项跳转标签,与[@main]中的数字或关键词对应。实例:[@1] 你选择购买武器,以下是本店现货:\1. 青铜剑(1000金币) —— 对应主菜单的“1. 购买武器”。

- SENDMSG 频道 内容:向玩家发送系统提示,频道6为常用公共提示频道。实例:SENDMSG 6 武器购买成功! —— 玩家屏幕中央显示绿色提示文字。

- CLOSE:关闭当前NPC对话窗口,结束交互。通常用于“离开”选项。

(2)对话跳转与循环

通过GOTO命令可实现对话跳转,构建复杂交互流程。例如购买武器后返回主菜单:

[@main]
欢迎光临武器店!\1. 购买青铜剑\2. 离开
[@1]
#IF
CHECKGOLD >= 1000
#ACT
GIVE 青铜剑 1
TAKEGOLD 1000
SENDMSG 6 购买成功!
GOTO @main ;跳转回主菜单
#ELSEACT
SENDMSG 6 金币不足!
GOTO @main
[@2]
SENDMSG 6 欢迎下次光临!
CLOSE

4. 条件判断命令:实现脚本逻辑分支

条件判断是脚本的“大脑”,通过#IF模块判断玩家状态(等级、物品、属性等),进而执行#ACT(条件成立)或#ELSEACT(条件不成立)的逻辑,核心是各类CHECK开头的命令。

判断命令

判断内容

使用场景

CHECKLEVEL 比较符 数值

玩家等级是否满足条件

等级任务、高级道具购买限制

CHECKGOLD 比较符 数值

玩家金币是否达标

物品购买、NPC服务付费

CHECKONLINE

判断玩家是否在线

避免离线状态下执行属性修改

CHECKJOB 职业编号

判断玩家职业(1战士、2法师、3道士)

职业专属任务、武器发放

CHECKQUEST 任务编号 状态

判断任务完成情况

多环节任务的流程控制

多条件判断可叠加使用,例如“30级以上战士且拥有沃玛头盔可领取奖励”:

#IF
CHECKLEVEL >= 30
CHECKJOB 1
CHECKITEM 沃玛头盔 1
#ACT
ADDREPUTE 5
SENDMSG 6 战士专属奖励领取成功!
#ELSEACT
SENDMSG 6 需满足30级战士且拥有沃玛头盔才能领取!

三、实战脚本案例:命令组合应用示范

单一命令仅能实现基础功能,实际脚本需通过命令组合完成复杂玩法。以下为两个典型场景的完整脚本,涵盖上述多类命令的配合使用。

1. 职业专属任务脚本(战士篇)

功能:30级战士提交10个僵尸牙齿,可获得攻击力奖励和金币,非战士或条件不满足则提示对应信息。脚本存放于Envir/Market_Def/土城任务官.txt。

;战士专属任务脚本
[@main]
我是土城任务官,为各职业提供专属任务!\
1. 领取战士专属任务(30级可接)\
2. 提交任务道具\
3. 离开
[@1]
#IF
CHECKLEVEL >= 30
CHECKJOB 1
#ACT
SENDMSG 6 战士任务:前往僵尸洞收集10个僵尸牙齿,提交后可获奖励!
GOTO @main
#ELSEACT
#IF
CHECKJOB != 1
SENDMSG 6 此任务仅战士可接!
#ELSEACT
SENDMSG 6 需达到30级才能领取该任务!
GOTO @main
[@2]
#IF
CHECKITEM 僵尸牙齿 10
CHECKJOB 1
#ACT
TAKE 僵尸牙齿 10
ADDSTR 3
ADDGOLD 3000
SENDMSG 6 任务完成!获得3点攻击力和3000金币奖励!
GOTO @main
#ELSEACT
#IF
CHECKJOB != 1
SENDMSG 6 此任务仅战士可提交!
#ELSEACT
SENDMSG 6 你需要10个僵尸牙齿才能提交任务!
GOTO @main
[@3]
SENDMSG 6 任务相关问题可随时来找我!
CLOSE

2. 道具使用触发脚本(经验丹)

功能:玩家使用“初级经验丹”后,根据等级给予对应经验(等级越高经验越多),同时发送提示并记录日志。脚本存放于Envir/QuestDiary/ExpPill.txt(需在数据库中设置经验丹“使用脚本”为ExpPill)。

;初级经验丹使用脚本
[@ExpPill]
#IF
CHECKONLINE
CHECKITEM 初级经验丹 1
#ACT
TAKE 初级经验丹 1
;根据等级计算经验(等级×1000)
LEVELUP 1 $LEVEL*1000
;发送提示并记录日志
SENDMSG 6 使用初级经验丹,获得$LEVEL*1000点经验!
WRITELONGLOG 经验丹使用记录 玩家【$USERNAME】使用初级经验丹,等级$LEVEL,获得经验:$LEVEL*1000
#ELSEACT
SENDMSG 6 无法使用经验丹,请确认物品存在且你处于在线状态!
CLOSE

四、脚本命令使用常见问题及解决方法

脚本命令使用中常因语法错误、参数错误等导致功能失效,以下为高频问题及针对性解决技巧。

1. 命令执行无反应

核心原因:命令语法错误、物品/职业名称不匹配、脚本文件路径错误。解决步骤:

1. 检查#IF、#ACT等关键字是否大写,命令格式是否符合要求(如GIVE后需跟物品名和数量);

2. 核对物品名称与Items.DB数据库完全一致,避免多字、少字或符号错误;

3. 确认脚本文件存放路径正确(NPC脚本在Envir/Market_Def,物品触发脚本在Envir/QuestDiary)。

2. 条件判断失效

核心原因:比较符使用错误、多条件逻辑冲突。解决方法:

- 比较符需正确书写(如“大于等于”为>=,不可写为=>或>);

- 多条件判断时,确保条件之间无逻辑矛盾(如同时判断等级>30和等级<20);

- 职业判断使用正确编号(1战士、2法师、3道士),而非职业名称。

3. 脚本乱码导致命令失效

核心原因:脚本文件编码非ANSI。解决步骤:用Notepad++打开脚本文件,点击“格式”→“转为ANSI编码”,保存后重启服务端即可恢复。

4. 服务端报错“脚本不存在”

核心原因:数据库“使用脚本”字段与脚本文件名不一致。解决方法:确保Items.DB中物品的“使用脚本”字段(如ExpPill)与QuestDiary文件夹下的脚本文件名(ExpPill.txt)完全一致,包括大小写。

五、脚本命令学习与拓展技巧

掌握基础命令后,可通过以下方法提升脚本编写能力:

- 参考默认脚本:服务端Envir文件夹下的默认脚本(如新手任务、商贩脚本)是最佳学习案例,可模仿其命令组合逻辑;

- 利用系统变量:除$USERNAME、$LEVEL外,$MAP(当前地图)、$HP(当前生命值)等变量可实现更精准的逻辑控制;

- 备份与测试:修改脚本前备份原文件,每次修改后重启服务端,通过测试账号验证功能,避免直接在正式服操作;

- 命令拓展:部分服务端支持自定义命令,可通过查阅服务端说明文档,实现更具特色的游戏玩法。

传奇服务端脚本命令的核心是“逻辑清晰、参数准确”,从简单的物品给予开始,逐步尝试多条件组合与复杂脚本编写,即可实现各类游戏玩法需求。实际使用中,需结合自身游戏的经济体系、职业平衡设定,合理运用命令避免破坏游戏体验。