当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇服务端脚本命令功能详解与应用

热度:
传奇服务端脚本命令是引擎内置的指令集,用于在NPC对话、任务触发、怪物死亡、物品使用等事件中控制游戏逻辑。这些命令通常写在NPC脚本(.txt)、任务脚本、物品数据库(StdItems.DB)或怪物数据库(Monster.DB)中,由M2引擎解析执行。理解它们是修改与开发版本的基础。

一、核心命令分类与语法结构

脚本命令遵循“命令参数1参数2...”的格式,不区分大小写,但参数通常有特定要求。

1.玩家交互与控制命令

此类命令直接影响玩家角色或与之对话的触发对象。

•GIVE/TAKE物品交换

GIVE金条1:给予当前对话玩家1个金条。
TAKE裁决之杖1:从玩家背包中取走1个裁决之杖。
CHECKITEM金条1:检测玩家背包是否拥有至少1个金条。常用于任务前置条件。

•CHANGE属性变更

CHANGEEXP+1000:为玩家增加1000点经验值。使用负值则为扣除。
CHANGELEVEL+1:玩家等级提升1级。
CHANGEPKPOINT-100:减少100点PK值。

•传送与位置控制

MAPMOVE3330330:将玩家传送至地图编号3的坐标(330330)。
MAP盟重省:将玩家传送至“盟重省”地图的默认安全区。

2.变量与条件判断命令

脚本的智能逻辑依赖于变量系统和条件分支。

•变量操作

MOVA0100:将数字100存入私有变量A0(每个玩家独立)。
INCA01:将变量A0的值增加1。DEC为减少。
SMALLA050:判断变量A0的值是否小于50。配合GOTO实现条件跳转。

•条件判断与跳转

脚本通过条件判断命令控制流程。基本结构如下:

#IF
CHECKITEM金矿5
CHECKLEVEL35
#ACT
TAKE金矿5
GIVE金条1
#SAY
这是你的奖励。
#ELSEACT
#SAY
你尚未满足条件。

#IF后接条件,#ACT后接条件满足时执行的动作,#ELSEACT后接不满足时的动作,#SAY用于NPC对话输出。

3.系统与全局控制命令

用于影响游戏世界、行会或发送全局信息。

•行会与公告

GUILDNOTICE%guild公告内容:向指定行会全体成员发送公告。%guild为变量,常替换为<$GUILDNAME>(当前玩家行会名)。
SENDMSG0玩家<$USERNAME>成功合成了极品装备!:向全服发送系统公告。数字0代表全服彩色公告,1-6为不同范围/颜色。

•怪物与地图控制

PARAM1330PARAM2330MOB沃玛教主51:在当前地图坐标(330330)附近5*5范围内刷出1只沃玛教主。PARAM1/2设置坐标。
CLEARMAPMON3:清除地图编号3上的所有怪物。

二、常用命令组合与脚本示例

示例1:基础任务脚本


[@主线任务]
#IF
CHECKLEVEL30
CHECKITEM沃玛号角1
#ACT
TAKE沃玛号角1
GIVE沃玛勋章1
CHANGEEXP+50000
SENDMSG0玩家<$USERNAME>完成了创建行会任务!
#SAY
你已证明了自己的实力,这是给你的奖励。
#ELSEACT
#SAY
请达到30级并携带“沃玛号角”再来。

此脚本让玩家在30级时用沃玛号角兑换奖励,并向全服公告。

示例2:变量与循环


[@兑换宝石]
#IF
LARGEA09
#ACT
DECA010
GIVE祝福油1
SENDMSG1你消耗了10点积分兑换了祝福油。
GOTO@兑换宝石
#SAY
继续兑换。
#ELSEACT
#SAY
积分不足10点,无法兑换。

此脚本允许玩家用变量A0(代表积分)循环兑换祝福油,每次扣除10点积分,直到积分不足。

三、高级命令与调试技巧

1.时间与延迟控制
SLEEP1000:使脚本暂停1000毫秒(1秒)后继续执行下一条命令。常用于制造效果或控制节奏。

2.调用外部脚本
CALL[路径\脚本名.txt]@标签:调用外部脚本文件中的指定段落,实现模块化管理。

3.调试与日志
SENDMSG7调试信息:变量A0=<$STR(A0)>:向当前玩家发送私人消息(白色),用于调试时查看变量值。<$STR(A0)>用于在消息中显示变量A0的值。

脚本编写核心原则:
•路径纯英文:脚本文件存放路径(如Envir\Market_Def\)严禁使用中文。

•标签唯一:每个脚本段落的标签(如[@Main])必须唯一,否则会调用错误。

•备份先行:修改任何核心脚本前,务必备份原文件。语法错误可能导致NPC功能失效或M2引擎报错。
[顶部]