传奇服务端脚本命令是控制游戏逻辑、NPC行为、任务流程的核心工具,通过脚本实现装备发放、怪物刷新、地图传送、条件判断等功能。脚本文件位于Mir200\Envir目录,包括Market_def、QuestDiary、Robot_def等文件夹,不同文件承担不同功能。
一、脚本基础结构与执行原理
脚本执行遵循“检测-执行”逻辑框架,以#IF条件判断开始,#ACT执行动作结束。基础结构包含段落标签、条件语句、执行命令三部分。段落标签以[@标签名]格式定义,作为脚本入口点。条件语句检测玩家状态,执行命令实现具体功能。
脚本文件存储位置决定其作用范围。Market_def文件夹存放商人NPC脚本,控制物品买卖与对话。QuestDiary存放任务脚本,管理任务接取与完成流程。Robot_def存放机器人脚本,实现自动巡逻与行为控制。MapQuest_def存放地图触发脚本,响应特定地图事件。
脚本加载顺序影响功能生效。服务端启动时按固定顺序加载脚本文件,先加载系统脚本后加载自定义脚本。修改脚本后需使用@reloadnpc命令重新加载,或重启服务端使更改生效。脚本错误会导致NPC功能异常或服务端报错,需检查语法与逻辑。
二、核心命令分类与功能详解
条件检测命令用于判断玩家状态。CHECKLEVEL检测玩家等级,格式CHECKLEVEL数值,数值为要求的最低等级。CHECKITEM检测背包物品数量,格式CHECKITEM物品名数量,支持同时检测多个物品。CHECKGOLD检测金币数量,格式CHECKGOLD数值,数值为要求的最低金币数。CHECKPKPOINT检测PK值,格式CHECKPKPOINT数值,用于红名判断。
物品操作命令管理玩家背包。GIVE给予物品,格式GIVE物品名数量,可给予装备、道具、金币。TAKE收回物品,格式TAKE物品名数量,从玩家背包移除指定物品。TAKEW从身上移除装备,格式TAKEW物品名,直接卸下穿戴的装备。CHECKBAGSIZE检测背包空格,格式CHECKBAGSIZE数量,判断背包剩余空间是否足够。
地图传送命令控制玩家位置。MAP移动到随机坐标,格式MAP地图编号,将玩家传送到指定地图的随机位置。MAPMOVE移动到指定坐标,格式MAPMOVE地图编号X坐标Y坐标,精确传送至目标点。MAPMOVE支持范围参数,格式MAPMOVE地图编号X坐标Y坐标范围,在指定坐标周围随机传送。
怪物控制命令管理游戏生物。MONGEN刷新怪物,格式MONGEN怪物名数量刷新时间,在当前位置生成怪物。MONGENEX在指定坐标刷新,格式MONGENEX怪物名数量X坐标Y坐标范围刷新时间。MONCLEAR清除怪物,格式MONCLEAR地图编号,移除指定地图所有怪物。MONCLEAR支持怪物名参数,格式MONCLEAR地图编号怪物名,只清除特定怪物。
玩家属性命令修改角色状态。CHANGELEVEL调整等级,格式CHANGELEVEL+-数值,正数升级负数降级。CHANGEEXP调整经验,格式CHANGEEXP+-数值,直接修改经验值。CHANGEMAKEPOINT调整声望,格式CHANGEMAKEPOINT+-数值。CHANGEPKPOINT调整PK值,格式CHANGEPKPOINT+-数值,用于清除红名。
三、变量系统与数据存储
私人变量存储角色临时数据。P0-P9变量在对话期间有效,关闭NPC窗口后重置为零。D0-D9变量在角色在线期间有效,小退后清零。M0-M9变量在角色在线期间有效,切换地图后清零。N0-N9变量在角色在线期间有效,小退后清零。S0-S9为字符型变量,存储字符串信息。
全局变量存储服务器数据。G0-G499为数字型全局变量,保存在Mir200\GlobalVal.ini文件中,服务器重启后保留。A0-A499为字符型全局变量,同样保存在GlobalVal.ini中。I0-I99为临时全局变量,服务器重启后清零。全局变量所有玩家共享,用于记录全服事件进度。
持久变量存储角色永久数据。U0-U99为数字型私人变量,保存在人物数据库Mir.db中,下线不丢失。T0-T99为字符型私人变量,同样保存在人物数据库中。这些变量适合存储任务进度、个人成就等需要永久保存的数据。
变量操作命令实现数据处理。MOV给变量赋值,格式MOV变量名数值,如MOVP0100。INC变量增加,格式INC变量名数值,如INCP010使P0增加10。DEC变量减少,格式DEC变量名数值。SMALL检测小于,格式SMALL变量名数值,变量小于数值返回真。LARGE检测大于,格式LARGE变量名数值。EQUAL检测等于,格式EQUAL变量名数值。
四、NPC脚本编写实战
基础NPC对话脚本结构。以[@main]段落开始,包含#IF条件判断、#ACT执行命令、#SAY显示对话。示例:[@main]#IFCHECKLEVEL35#ACTGIVE屠龙1#SAY恭喜达到35级,获得屠龙刀!#ELSESAY等级不足35级,无法领取奖励。
商人NPC脚本配置。开头使用%100表示正常价格,%200表示双倍价格。+5代表武器购买,+6代表武器出售,+43代表武器修理。+15头盔,+10衣服购买,+11衣服修理。+26手镯类,+0药水购买,+42药水出售。+30蜡烛,+25特殊药水。+3卷轴书籍购买,+4卷轴书籍出售。
任务NPC脚本实现。使用QUEST_ACCEPT接取任务,QUEST_PROGRESS检测任务进度,QUEST_FINISH完成任务。示例:[@接受任务]#IFCHECKLEVEL20#ACTQUEST_ACCEPT1001收集鹿肉#SAY请收集10个鹿肉。[@提交任务]#IFCHECKITEM鹿肉10#ACTTAKE鹿肉10GIVE金币5000QUEST_FINISH1001#SAY任务完成,获得5000金币。
多功能NPC脚本设计。使用MENU创建选项菜单,每个选项对应不同功能段落。示例:[@main]#SAY请选择功能:\<领取奖励/@奖励>\<传送地图/@传送>\<兑换物品/@兑换>[@奖励]#IFCHECKLEVEL30#ACTGIVE经验卷5#SAY获得5个经验卷。
五、地图触发与事件脚本
地图进入触发脚本。在MapQuest.txt中配置,格式:地图编号触发标识怪物名触发脚本。示例:3[@进入地图]白野猪@BOSS刷新,玩家进入地图3时触发@BOSS刷新段落。触发脚本写在QuestDiary对应文件中。
怪物死亡触发脚本。使用OnKillMob标签,在QFunction-0.txt中定义。示例:[@OnKillMob]#IFCheckKillMonName白野猪#ACTGIVE沃玛号角1SENDMSG0玩家<$USERNAME>击杀了白野猪,获得沃玛号角!
定时触发脚本。使用Robot_def文件夹中的机器人脚本,配置执行时间与触发段落。示例:在RobotManage.txt中添加#AutoRunNPCMIN1@每分钟触发,每分钟执行一次@每分钟触发段落。用于定时活动、自动公告等功能。
攻击触发脚本。在QFunction-0.txt中使用[@Attack]标签,玩家攻击时触发。示例:[@Attack]#IFRandom100#ACTSENDMSG0玩家<$USERNAME>发动攻击!几率触发提示信息。
六、装备与属性操作命令
装备给予命令扩展格式。GIVE支持极品属性参数,格式GIVE物品名数量属性1属性2...属性13。属性位置对应:1攻击、2魔法、3道术、4幸运、5诅咒、6准确、7敏捷、8强度、9体力、10魔力、11防御、12魔防、13重量。示例:GIVE屠龙1500300000000
0给予幸运+3的屠龙刀。
装备升级命令。UPGRADEITEMEX升级装备指定属性,格式UPGRADEITEMEX装备位置属性位置升级点数。装备位置:0衣服、1武器、2蜡烛、3项链、4头盔、5左手镯、6右手镯、7左戒指、8右戒指、9符、10腰带、11鞋子、12宝石。属性位置与GIVE命令相同。
装备检测命令。CHECKITEMW检测身上装备,格式CHECKITEMW物品名,判断是否穿戴指定装备。CHECKITEMID检测物品ID,格式CHECKITEMID物品ID,精确检测特定ID物品。CHECKDURAEVA检测物品品质,格式CHECKDURAEVA物品名数值,用于检测矿石等物品纯度。
属性修改命令。HUMAN调整人物属性,格式HUMAN属性类型+-数值。属性类型:HP生命、MP魔法、AC防御、MAC魔防、DC攻击、MC魔法、SC道术、SPEED速度、HIT准确、DODGE敏捷。示例:HUMANHP+100增加100点生命值。
七、系统控制与消息命令
全服公告命令。SENDMSG发送消息,格式SENDMSG颜色内容。颜色代码:0白色、1绿色、2蓝色、3黄色、4红色、5紫色、6粉色、7灰色、8黑色。示例:SENDMSG0服务器将于10分钟后重启,请及时下线"送白色全服公告。
个人消息命令。MESSAGE发送私人消息,格式MESSAGE内容,仅当前玩家可见。SENDMSG支持私人消息格式,SENDMSG6<$USERNAME>获得屠龙刀"送粉色私人提示。
时间控制命令。TIMERECALL设置地图停留时间,格式TIMERECALL分钟数,限制玩家在特定地图的停留时间。BREAKTIMERECALL取消时间限制。CHECKDAYTIME检测游戏内时间,格式CHECKDAYTIME,判断是否为白天。
天气控制命令。WEATHER控制天气效果,格式WEATHER天气类型强度。天气类型:1下雨、2下雪、3雾、4沙暴。强度范围1-10,数值越大效果越强。示例:WEATHER15设置中等强度下雨。
八、脚本调试与错误处理
语法错误排查。脚本文件必须使用ANSI编码保存,UTF-8编码会导致乱码。段落标签必须唯一,重复标签会导致执行混乱。命令参数数量必须正确,缺少参数会导致执行失败。变量使用前必须初始化,未初始化变量值为0。
逻辑错误调试。使用SENDMSG输出调试信息,查看变量值与执行流程。示例:#ACTMOVP0100SENDMSG6当前P0值为:<$STR(P0)>。分段测试脚本功能,先测试条件判断,再测试执行命令。
性能优化建议。避免在频繁触发的脚本中使用复杂计算,减少服务器负担。使用局部变量代替全局变量,减少数据读写次数。合理使用BREAK命令结束脚本执行,避免多余判断。批量操作使用循环结构,减少代码重复。
兼容性注意事项。不同引擎命令存在差异,GOM引擎与BLUE引擎命令不完全相同。变量范围不同引擎有区别,GOM支持P0-P999,BLUE仅支持P0-P9。新功能命令需确认引擎支持情况,避免使用未实现命令。
九、高级脚本技巧应用
随机事件实现。使用RANDOM命令生成随机数,格式RANDOM数值,生成0到数值-1的随机整数。示例:#IFRANDOM10#ACTGIVE金币1000,10%几率获得1000金币。配合多个#IF实现多选一随机事件。
循环结构实现。使用GOTO与变量实现循环,示例:[@循环开始]#IFSMALLP010#ACTINCP01GIVE金币100GOTO@循环开始,循环10次每次给予100金币。注意设置循环退出条件,避免无限循环。
数组模拟实现。使用多个变量模拟数组,P0-P9作为数组元素。示例:MOVP0100MOVP1200MOVP2300,使用循环读取数组值。配合INC实现数组遍历。
文件操作实现。使用ADDNAMELIST添加名单到文件,格式ADDNAMELIST文件名。CHECKNAMELIST检测名单,格式CHECKNAMELIST文件名。DELNAMELIST删除名单,格式DELNAMELIST文件名。用于记录任务完成状态、活动参与名单等。
多条件判断实现。使用AND连接多个条件,所有条件满足才执行。示例:#IFCHECKLEVEL35ANDCHECKITEM屠龙1#ACTGIVE经验卷10。使用OR连接多个条件,任一条件满足即执行。示例:#IFCHECKLEVEL35ORCHECKITEM屠龙1#ACTGIVE经验卷5。
十、实用脚本示例集合
每日签到脚本。使用U变量记录签到日期,检测是否已签到。示例:[@签到]#IFEQUALU0<DAY>#SAY今日已签到#ACTMOVU0<DAY>GIVE金币5000SENDMSG0玩家<USERNAME>完成每日签到!使用<DAY>系统变量获取当前日期。
等级奖励脚本。检测玩家等级给予对应奖励,使用多个条件判断。示例:[@等级奖励]#IFEQUALU10#ACT[@35级]#IFCHECKLEVEL35#ACTGIVE屠龙1MOVU11#SAY获得35级奖励屠龙刀!使用U1记录是否已领取35级奖励。
抽奖脚本实现。使用RANDOM实现随机抽奖,不同几率获得不同奖励。示例:[@抽奖]#IFCHECKGOLD1000#ACTTAKE金币1000#IFRANDOM100#ACT[@一等奖]GIVE屠龙1#IFRANDOM20#ACT[@二等奖]GIVE圣战戒指1#IFRANDOM5#ACT[@三等奖]GIVE金币10000#ELSESAY很遗憾,未中奖。
自动回收脚本。检测背包物品自动回收兑换金币。示例:[@自动回收]#IFCHECKITEM战神盔甲1#ACTTAKE战神盔甲1GAMEGOLD+100#IFCHECKITEM圣战戒指1#ACTTAKE圣战戒指1GAMEGOLD+50使用GAMEGOLD增加元宝。
活动时间限制脚本。检测系统时间限制活动参与。示例:[@参与活动]#IFLARGE<HOUR>18ANDSMALL<HOUR>22#ACTGOTO@活动进行中#ELSESAY活动时间未到,请在18-22点参与。使用<$HOUR>获取当前小时。
十一、脚本命令速查参考
条件检测类:CHECKLEVEL检测等级、CHECKITEM检测物品、CHECKGOLD检测金币、CHECKPKPOINT检测PK值、CHECKBAGSIZE检测背包空间、CHECKHORSE检测坐骑、CHECKMAGIC检测技能。
物品操作类:GIVE给予物品、TAKE收回物品、TAKEW卸下装备、GAMEGOLD调整元宝、GAMEPOINT调整游戏点、CREDITPOINT调整声望。
地图传送类:MAP随机传送、MAPMOVE定点传送、RECALL召唤玩家、GROUPRECALL召唤队伍、MAPMOVERANGE范围传送。
怪物控制类:MONGEN刷新怪物、MONCLEAR清除怪物、MONGENEX坐标刷新、RECALLMOB召唤为宝宝、RESTMOB重置怪物。
属性调整类:CHANGELEVEL调整等级、CHANGEEXP调整经验、CHANGEMAKEPOINT调整声望、CHANGEPKPOINT调整PK值、HUMAN调整属性。
变量操作类:MOV赋值、INC增加、DEC减少、MUL乘法、DIV除法、SMALL小于、LARGE大于、EQUAL等于。
消息发送类:SENDMSG全服公告、MESSAGE私人消息、SENDMSG6粉色提示、SENDMSG4红色警告、SENDMSG1绿色系统。
时间控制类:TIMERECALL时间限制、BREAKTIMERECALL取消限制、CHECKDAYTIME检测白天、CHECKDATETIME检测日期时间。
文件操作类:ADDNAMELIST添加名单、CHECKNAMELIST检测名单、DELNAMELIST删除名单、CLEARNAMELIST清空名单。
系统功能类:KICK踢出玩家、KILL杀死玩家、RELOADNPC重载NPC、RELOADITEMDB重载物品数据库、RELOADMONSTERDB重载怪物数据库。
十二、总结归纳
传奇服务端脚本命令体系完整,涵盖游戏运营各个方面。掌握基础命令语法是脚本编写前提,理解变量系统实现复杂逻辑。实际应用需结合具体需求,从简单功能开始逐步深入。
脚本编写注重逻辑严谨,条件判断与执行命令必须匹配。变量使用区分作用范围,私人变量用于临时数据,全局变量用于全服状态。性能优化避免复杂计算,减少服务器负担。
调试过程逐步验证,使用消息输出辅助排查。兼容性注意引擎差异,参考对应引擎说明书。实战积累经验,从模仿现有脚本开始,逐步实现自定义功能。
脚本命令是传奇服务端核心控制工具,通过组合不同命令实现丰富游戏内容。系统学习命令分类与用法,结合实际需求灵活应用,可打造独特游戏体验,满足各种运营需求。
一、脚本基础结构与执行原理
脚本执行遵循“检测-执行”逻辑框架,以#IF条件判断开始,#ACT执行动作结束。基础结构包含段落标签、条件语句、执行命令三部分。段落标签以[@标签名]格式定义,作为脚本入口点。条件语句检测玩家状态,执行命令实现具体功能。
脚本文件存储位置决定其作用范围。Market_def文件夹存放商人NPC脚本,控制物品买卖与对话。QuestDiary存放任务脚本,管理任务接取与完成流程。Robot_def存放机器人脚本,实现自动巡逻与行为控制。MapQuest_def存放地图触发脚本,响应特定地图事件。
脚本加载顺序影响功能生效。服务端启动时按固定顺序加载脚本文件,先加载系统脚本后加载自定义脚本。修改脚本后需使用@reloadnpc命令重新加载,或重启服务端使更改生效。脚本错误会导致NPC功能异常或服务端报错,需检查语法与逻辑。
二、核心命令分类与功能详解
条件检测命令用于判断玩家状态。CHECKLEVEL检测玩家等级,格式CHECKLEVEL数值,数值为要求的最低等级。CHECKITEM检测背包物品数量,格式CHECKITEM物品名数量,支持同时检测多个物品。CHECKGOLD检测金币数量,格式CHECKGOLD数值,数值为要求的最低金币数。CHECKPKPOINT检测PK值,格式CHECKPKPOINT数值,用于红名判断。
物品操作命令管理玩家背包。GIVE给予物品,格式GIVE物品名数量,可给予装备、道具、金币。TAKE收回物品,格式TAKE物品名数量,从玩家背包移除指定物品。TAKEW从身上移除装备,格式TAKEW物品名,直接卸下穿戴的装备。CHECKBAGSIZE检测背包空格,格式CHECKBAGSIZE数量,判断背包剩余空间是否足够。
地图传送命令控制玩家位置。MAP移动到随机坐标,格式MAP地图编号,将玩家传送到指定地图的随机位置。MAPMOVE移动到指定坐标,格式MAPMOVE地图编号X坐标Y坐标,精确传送至目标点。MAPMOVE支持范围参数,格式MAPMOVE地图编号X坐标Y坐标范围,在指定坐标周围随机传送。
怪物控制命令管理游戏生物。MONGEN刷新怪物,格式MONGEN怪物名数量刷新时间,在当前位置生成怪物。MONGENEX在指定坐标刷新,格式MONGENEX怪物名数量X坐标Y坐标范围刷新时间。MONCLEAR清除怪物,格式MONCLEAR地图编号,移除指定地图所有怪物。MONCLEAR支持怪物名参数,格式MONCLEAR地图编号怪物名,只清除特定怪物。
玩家属性命令修改角色状态。CHANGELEVEL调整等级,格式CHANGELEVEL+-数值,正数升级负数降级。CHANGEEXP调整经验,格式CHANGEEXP+-数值,直接修改经验值。CHANGEMAKEPOINT调整声望,格式CHANGEMAKEPOINT+-数值。CHANGEPKPOINT调整PK值,格式CHANGEPKPOINT+-数值,用于清除红名。
三、变量系统与数据存储
私人变量存储角色临时数据。P0-P9变量在对话期间有效,关闭NPC窗口后重置为零。D0-D9变量在角色在线期间有效,小退后清零。M0-M9变量在角色在线期间有效,切换地图后清零。N0-N9变量在角色在线期间有效,小退后清零。S0-S9为字符型变量,存储字符串信息。
全局变量存储服务器数据。G0-G499为数字型全局变量,保存在Mir200\GlobalVal.ini文件中,服务器重启后保留。A0-A499为字符型全局变量,同样保存在GlobalVal.ini中。I0-I99为临时全局变量,服务器重启后清零。全局变量所有玩家共享,用于记录全服事件进度。
持久变量存储角色永久数据。U0-U99为数字型私人变量,保存在人物数据库Mir.db中,下线不丢失。T0-T99为字符型私人变量,同样保存在人物数据库中。这些变量适合存储任务进度、个人成就等需要永久保存的数据。
变量操作命令实现数据处理。MOV给变量赋值,格式MOV变量名数值,如MOVP0100。INC变量增加,格式INC变量名数值,如INCP010使P0增加10。DEC变量减少,格式DEC变量名数值。SMALL检测小于,格式SMALL变量名数值,变量小于数值返回真。LARGE检测大于,格式LARGE变量名数值。EQUAL检测等于,格式EQUAL变量名数值。
四、NPC脚本编写实战
基础NPC对话脚本结构。以[@main]段落开始,包含#IF条件判断、#ACT执行命令、#SAY显示对话。示例:[@main]#IFCHECKLEVEL35#ACTGIVE屠龙1#SAY恭喜达到35级,获得屠龙刀!#ELSESAY等级不足35级,无法领取奖励。
商人NPC脚本配置。开头使用%100表示正常价格,%200表示双倍价格。+5代表武器购买,+6代表武器出售,+43代表武器修理。+15头盔,+10衣服购买,+11衣服修理。+26手镯类,+0药水购买,+42药水出售。+30蜡烛,+25特殊药水。+3卷轴书籍购买,+4卷轴书籍出售。
任务NPC脚本实现。使用QUEST_ACCEPT接取任务,QUEST_PROGRESS检测任务进度,QUEST_FINISH完成任务。示例:[@接受任务]#IFCHECKLEVEL20#ACTQUEST_ACCEPT1001收集鹿肉#SAY请收集10个鹿肉。[@提交任务]#IFCHECKITEM鹿肉10#ACTTAKE鹿肉10GIVE金币5000QUEST_FINISH1001#SAY任务完成,获得5000金币。
多功能NPC脚本设计。使用MENU创建选项菜单,每个选项对应不同功能段落。示例:[@main]#SAY请选择功能:\<领取奖励/@奖励>\<传送地图/@传送>\<兑换物品/@兑换>[@奖励]#IFCHECKLEVEL30#ACTGIVE经验卷5#SAY获得5个经验卷。
五、地图触发与事件脚本
地图进入触发脚本。在MapQuest.txt中配置,格式:地图编号触发标识怪物名触发脚本。示例:3[@进入地图]白野猪@BOSS刷新,玩家进入地图3时触发@BOSS刷新段落。触发脚本写在QuestDiary对应文件中。
怪物死亡触发脚本。使用OnKillMob标签,在QFunction-0.txt中定义。示例:[@OnKillMob]#IFCheckKillMonName白野猪#ACTGIVE沃玛号角1SENDMSG0玩家<$USERNAME>击杀了白野猪,获得沃玛号角!
定时触发脚本。使用Robot_def文件夹中的机器人脚本,配置执行时间与触发段落。示例:在RobotManage.txt中添加#AutoRunNPCMIN1@每分钟触发,每分钟执行一次@每分钟触发段落。用于定时活动、自动公告等功能。
攻击触发脚本。在QFunction-0.txt中使用[@Attack]标签,玩家攻击时触发。示例:[@Attack]#IFRandom100#ACTSENDMSG0玩家<$USERNAME>发动攻击!几率触发提示信息。
六、装备与属性操作命令
装备给予命令扩展格式。GIVE支持极品属性参数,格式GIVE物品名数量属性1属性2...属性13。属性位置对应:1攻击、2魔法、3道术、4幸运、5诅咒、6准确、7敏捷、8强度、9体力、10魔力、11防御、12魔防、13重量。示例:GIVE屠龙1500300000000
0给予幸运+3的屠龙刀。
装备升级命令。UPGRADEITEMEX升级装备指定属性,格式UPGRADEITEMEX装备位置属性位置升级点数。装备位置:0衣服、1武器、2蜡烛、3项链、4头盔、5左手镯、6右手镯、7左戒指、8右戒指、9符、10腰带、11鞋子、12宝石。属性位置与GIVE命令相同。
装备检测命令。CHECKITEMW检测身上装备,格式CHECKITEMW物品名,判断是否穿戴指定装备。CHECKITEMID检测物品ID,格式CHECKITEMID物品ID,精确检测特定ID物品。CHECKDURAEVA检测物品品质,格式CHECKDURAEVA物品名数值,用于检测矿石等物品纯度。
属性修改命令。HUMAN调整人物属性,格式HUMAN属性类型+-数值。属性类型:HP生命、MP魔法、AC防御、MAC魔防、DC攻击、MC魔法、SC道术、SPEED速度、HIT准确、DODGE敏捷。示例:HUMANHP+100增加100点生命值。
七、系统控制与消息命令
全服公告命令。SENDMSG发送消息,格式SENDMSG颜色内容。颜色代码:0白色、1绿色、2蓝色、3黄色、4红色、5紫色、6粉色、7灰色、8黑色。示例:SENDMSG0服务器将于10分钟后重启,请及时下线"送白色全服公告。
个人消息命令。MESSAGE发送私人消息,格式MESSAGE内容,仅当前玩家可见。SENDMSG支持私人消息格式,SENDMSG6<$USERNAME>获得屠龙刀"送粉色私人提示。
时间控制命令。TIMERECALL设置地图停留时间,格式TIMERECALL分钟数,限制玩家在特定地图的停留时间。BREAKTIMERECALL取消时间限制。CHECKDAYTIME检测游戏内时间,格式CHECKDAYTIME,判断是否为白天。
天气控制命令。WEATHER控制天气效果,格式WEATHER天气类型强度。天气类型:1下雨、2下雪、3雾、4沙暴。强度范围1-10,数值越大效果越强。示例:WEATHER15设置中等强度下雨。
八、脚本调试与错误处理
语法错误排查。脚本文件必须使用ANSI编码保存,UTF-8编码会导致乱码。段落标签必须唯一,重复标签会导致执行混乱。命令参数数量必须正确,缺少参数会导致执行失败。变量使用前必须初始化,未初始化变量值为0。
逻辑错误调试。使用SENDMSG输出调试信息,查看变量值与执行流程。示例:#ACTMOVP0100SENDMSG6当前P0值为:<$STR(P0)>。分段测试脚本功能,先测试条件判断,再测试执行命令。
性能优化建议。避免在频繁触发的脚本中使用复杂计算,减少服务器负担。使用局部变量代替全局变量,减少数据读写次数。合理使用BREAK命令结束脚本执行,避免多余判断。批量操作使用循环结构,减少代码重复。
兼容性注意事项。不同引擎命令存在差异,GOM引擎与BLUE引擎命令不完全相同。变量范围不同引擎有区别,GOM支持P0-P999,BLUE仅支持P0-P9。新功能命令需确认引擎支持情况,避免使用未实现命令。
九、高级脚本技巧应用
随机事件实现。使用RANDOM命令生成随机数,格式RANDOM数值,生成0到数值-1的随机整数。示例:#IFRANDOM10#ACTGIVE金币1000,10%几率获得1000金币。配合多个#IF实现多选一随机事件。
循环结构实现。使用GOTO与变量实现循环,示例:[@循环开始]#IFSMALLP010#ACTINCP01GIVE金币100GOTO@循环开始,循环10次每次给予100金币。注意设置循环退出条件,避免无限循环。
数组模拟实现。使用多个变量模拟数组,P0-P9作为数组元素。示例:MOVP0100MOVP1200MOVP2300,使用循环读取数组值。配合INC实现数组遍历。
文件操作实现。使用ADDNAMELIST添加名单到文件,格式ADDNAMELIST文件名。CHECKNAMELIST检测名单,格式CHECKNAMELIST文件名。DELNAMELIST删除名单,格式DELNAMELIST文件名。用于记录任务完成状态、活动参与名单等。
多条件判断实现。使用AND连接多个条件,所有条件满足才执行。示例:#IFCHECKLEVEL35ANDCHECKITEM屠龙1#ACTGIVE经验卷10。使用OR连接多个条件,任一条件满足即执行。示例:#IFCHECKLEVEL35ORCHECKITEM屠龙1#ACTGIVE经验卷5。
十、实用脚本示例集合
每日签到脚本。使用U变量记录签到日期,检测是否已签到。示例:[@签到]#IFEQUALU0<DAY>#SAY今日已签到#ACTMOVU0<DAY>GIVE金币5000SENDMSG0玩家<USERNAME>完成每日签到!使用<DAY>系统变量获取当前日期。
等级奖励脚本。检测玩家等级给予对应奖励,使用多个条件判断。示例:[@等级奖励]#IFEQUALU10#ACT[@35级]#IFCHECKLEVEL35#ACTGIVE屠龙1MOVU11#SAY获得35级奖励屠龙刀!使用U1记录是否已领取35级奖励。
抽奖脚本实现。使用RANDOM实现随机抽奖,不同几率获得不同奖励。示例:[@抽奖]#IFCHECKGOLD1000#ACTTAKE金币1000#IFRANDOM100#ACT[@一等奖]GIVE屠龙1#IFRANDOM20#ACT[@二等奖]GIVE圣战戒指1#IFRANDOM5#ACT[@三等奖]GIVE金币10000#ELSESAY很遗憾,未中奖。
自动回收脚本。检测背包物品自动回收兑换金币。示例:[@自动回收]#IFCHECKITEM战神盔甲1#ACTTAKE战神盔甲1GAMEGOLD+100#IFCHECKITEM圣战戒指1#ACTTAKE圣战戒指1GAMEGOLD+50使用GAMEGOLD增加元宝。
活动时间限制脚本。检测系统时间限制活动参与。示例:[@参与活动]#IFLARGE<HOUR>18ANDSMALL<HOUR>22#ACTGOTO@活动进行中#ELSESAY活动时间未到,请在18-22点参与。使用<$HOUR>获取当前小时。
十一、脚本命令速查参考
条件检测类:CHECKLEVEL检测等级、CHECKITEM检测物品、CHECKGOLD检测金币、CHECKPKPOINT检测PK值、CHECKBAGSIZE检测背包空间、CHECKHORSE检测坐骑、CHECKMAGIC检测技能。
物品操作类:GIVE给予物品、TAKE收回物品、TAKEW卸下装备、GAMEGOLD调整元宝、GAMEPOINT调整游戏点、CREDITPOINT调整声望。
地图传送类:MAP随机传送、MAPMOVE定点传送、RECALL召唤玩家、GROUPRECALL召唤队伍、MAPMOVERANGE范围传送。
怪物控制类:MONGEN刷新怪物、MONCLEAR清除怪物、MONGENEX坐标刷新、RECALLMOB召唤为宝宝、RESTMOB重置怪物。
属性调整类:CHANGELEVEL调整等级、CHANGEEXP调整经验、CHANGEMAKEPOINT调整声望、CHANGEPKPOINT调整PK值、HUMAN调整属性。
变量操作类:MOV赋值、INC增加、DEC减少、MUL乘法、DIV除法、SMALL小于、LARGE大于、EQUAL等于。
消息发送类:SENDMSG全服公告、MESSAGE私人消息、SENDMSG6粉色提示、SENDMSG4红色警告、SENDMSG1绿色系统。
时间控制类:TIMERECALL时间限制、BREAKTIMERECALL取消限制、CHECKDAYTIME检测白天、CHECKDATETIME检测日期时间。
文件操作类:ADDNAMELIST添加名单、CHECKNAMELIST检测名单、DELNAMELIST删除名单、CLEARNAMELIST清空名单。
系统功能类:KICK踢出玩家、KILL杀死玩家、RELOADNPC重载NPC、RELOADITEMDB重载物品数据库、RELOADMONSTERDB重载怪物数据库。
十二、总结归纳
传奇服务端脚本命令体系完整,涵盖游戏运营各个方面。掌握基础命令语法是脚本编写前提,理解变量系统实现复杂逻辑。实际应用需结合具体需求,从简单功能开始逐步深入。
脚本编写注重逻辑严谨,条件判断与执行命令必须匹配。变量使用区分作用范围,私人变量用于临时数据,全局变量用于全服状态。性能优化避免复杂计算,减少服务器负担。
调试过程逐步验证,使用消息输出辅助排查。兼容性注意引擎差异,参考对应引擎说明书。实战积累经验,从模仿现有脚本开始,逐步实现自定义功能。
脚本命令是传奇服务端核心控制工具,通过组合不同命令实现丰富游戏内容。系统学习命令分类与用法,结合实际需求灵活应用,可打造独特游戏体验,满足各种运营需求。

