传奇服务端脚本命令是控制游戏玩法、NPC交互、任务执行、事件触发的核心工具,不同引擎(Blue、GOM、战神等)命令格式略有差异,但核心功能通用。以下按功能分类梳理常用脚本命令,包含命令格式、使用场景及示例,覆盖多数架设与修改需求。
一、基础交互类脚本命令(NPC对话、菜单触发)
1.对话命令:SendMsg格式:SendMsg玩家ID消息内容颜色换行符(可选)功能:向指定玩家发送对话消息,用于NPC交互、系统提示。示例:SendMsg%USERID%欢迎来到比奇城!71(7为黄色,1代表换行)。
2.菜单命令:MenuList格式:MenuList菜单标题|选项1|选项2|选项3|...功能:创建NPC对话菜单,玩家点击选项触发后续脚本。示例:MenuList新手引导|领取新手装备|传送至新手地图|退出对话,点击对应选项可关联其他命令执行。
3.选择分支命令:Case格式:Case选项序号功能:根据玩家选择的菜单选项,执行对应分支脚本。示例:Case1(玩家选择第1个选项“领取新手装备”),后续衔接发放装备命令。
二、物品相关脚本命令(发放、回收、检测)
1.发放物品命令:GiveItem格式:GiveItem玩家ID物品ID数量持久度(可选)功能:向指定玩家发放道具、装备或货币。示例:GiveItem%USERID%10011100(1001为木剑ID,发放1把持久100的木剑)。
2.回收物品命令:TakeItem格式:TakeItem玩家ID物品ID数量功能:从玩家背包中回收指定数量的物品,常用于任务提交。示例:TakeItem%USERID%20015(回收玩家5个金疮药,2001为金疮药ID)。
3.检测物品命令:CheckItem格式:CheckItem玩家ID物品ID数量功能:检测玩家背包中是否存在指定数量的物品,返回1(存在)或0(不存在),用于条件判断。示例:CheckItem%USERID%30011(检测玩家是否有1件裁决之杖,3001为裁决之杖ID)。
三、角色属性类脚本命令(等级、经验、属性修改)
1.增加经验命令:AddExp格式:AddExp玩家ID经验值功能:为指定玩家增加经验,可用于任务奖励、活动加成。示例:AddExp%USERID%10000(为玩家增加10000点经验)。
2.调整等级命令:SetLevel格式:SetLevel玩家ID目标等级功能:直接设置玩家等级,超越正常升级流程。示例:SetLevel%USERID%35(将玩家等级设置为35级)。
3.修改属性命令:SetAttr格式:SetAttr玩家ID属性类型属性值功能:修改玩家攻击、防御、魔法等基础属性。属性类型:1=攻击,2=魔法,3=道术,4=防御,5=魔御。示例:SetAttr%USERID%150(将玩家攻击属性设置为50)。
四、传送类脚本命令(地图跳转、坐标移动)
1.地图传送命令:MapMove格式:MapMove玩家ID地图IDX坐标Y坐标功能:将玩家传送到指定地图的指定坐标。示例:MapMove%USERID%3320280(将玩家传送到比奇城,地图ID3,坐标320280)。
2.随机传送命令:RandomMove格式:RandomMove玩家ID地图ID最小X最大X最小Y最大Y功能:在指定地图的坐标范围内随机传送玩家。示例:RandomMove%USERID%3300350250300(在比奇城300-350X、250-300Y范围内随机传送)。
五、任务相关脚本命令(任务状态、奖励触发)
1.设置任务状态命令:SetTaskStatus格式:SetTaskStatus玩家ID任务ID状态值功能:修改玩家指定任务的进度状态,状态值0=未接,1=进行中,2=完成。示例:SetTaskStatus%USERID%1011(将101号任务设置为进行中状态)。
2.检测任务状态命令:CheckTaskStatus格式:CheckTaskStatus玩家ID任务ID功能:检测玩家指定任务的当前状态,返回对应状态值,用于条件判断。示例:CheckTaskStatus%USERID%101(检测玩家101号任务的状态)。
六、事件触发类脚本命令(怪物死亡、时间触发)
1.怪物死亡触发命令:OnMonsterDie格式:OnMonsterDie怪物ID脚本标识功能:当指定ID的怪物死亡时,触发关联的脚本内容(如掉落特殊物品、发送全服公告)。示例:OnMonsterDie1001(100为沃玛教主ID,死亡时触发标识为1的脚本)。
2.定时触发命令:Timer格式:Timer时间间隔(秒)脚本标识功能:按指定时间间隔循环触发脚本,用于定时活动、怪物刷新。示例:Timer36002(每3600秒触发标识为2的脚本,如刷新世界BOSS)。
七、脚本控制类命令(条件判断、循环、结束)
1.条件判断命令:If格式:If条件表达式功能:判断条件是否成立,成立则执行后续脚本,不成立则跳过或执行Else分支。示例:IfCheckItem%USERID%20015(判断玩家是否有5个金疮药,成立则执行回收并奖励经验的脚本)。
2.循环命令:Loop格式:Loop循环次数脚本块功能:重复执行指定次数的脚本内容。示例:Loop3GiveItem%USERID%20011(循环3次,每次给玩家1个金疮药,共发放3个)。
3.脚本结束命令:End格式:End功能:结束当前脚本的执行,避免后续无关脚本触发。示例:玩家完成任务领取奖励后,用End结束脚本,防止重复领取。
八、通用使用注意事项
1.变量替换:脚本中%USERID%代表当前交互玩家的ID,%MAPID%代表当前地图ID,需根据场景正确使用变量,避免参数错误。
2.引擎适配:不同引擎部分命令格式有差异(如GOM引擎的物品发放命令为GiveItemEx),使用前需确认当前引擎的命令手册,避免不兼容。
3.脚本测试:修改或新增脚本后,需在单机测试环境中验证功能,确认无异常后再应用到正式服务端,避免引发游戏异常。
4.文件路径:脚本文件默认存放于服务端“Script”或“QuestDiary”文件夹,需按引擎要求的路径存放,确保服务端能正常读取。
一、基础交互类脚本命令(NPC对话、菜单触发)
1.对话命令:SendMsg格式:SendMsg玩家ID消息内容颜色换行符(可选)功能:向指定玩家发送对话消息,用于NPC交互、系统提示。示例:SendMsg%USERID%欢迎来到比奇城!71(7为黄色,1代表换行)。
2.菜单命令:MenuList格式:MenuList菜单标题|选项1|选项2|选项3|...功能:创建NPC对话菜单,玩家点击选项触发后续脚本。示例:MenuList新手引导|领取新手装备|传送至新手地图|退出对话,点击对应选项可关联其他命令执行。
3.选择分支命令:Case格式:Case选项序号功能:根据玩家选择的菜单选项,执行对应分支脚本。示例:Case1(玩家选择第1个选项“领取新手装备”),后续衔接发放装备命令。
二、物品相关脚本命令(发放、回收、检测)
1.发放物品命令:GiveItem格式:GiveItem玩家ID物品ID数量持久度(可选)功能:向指定玩家发放道具、装备或货币。示例:GiveItem%USERID%10011100(1001为木剑ID,发放1把持久100的木剑)。
2.回收物品命令:TakeItem格式:TakeItem玩家ID物品ID数量功能:从玩家背包中回收指定数量的物品,常用于任务提交。示例:TakeItem%USERID%20015(回收玩家5个金疮药,2001为金疮药ID)。
3.检测物品命令:CheckItem格式:CheckItem玩家ID物品ID数量功能:检测玩家背包中是否存在指定数量的物品,返回1(存在)或0(不存在),用于条件判断。示例:CheckItem%USERID%30011(检测玩家是否有1件裁决之杖,3001为裁决之杖ID)。
三、角色属性类脚本命令(等级、经验、属性修改)
1.增加经验命令:AddExp格式:AddExp玩家ID经验值功能:为指定玩家增加经验,可用于任务奖励、活动加成。示例:AddExp%USERID%10000(为玩家增加10000点经验)。
2.调整等级命令:SetLevel格式:SetLevel玩家ID目标等级功能:直接设置玩家等级,超越正常升级流程。示例:SetLevel%USERID%35(将玩家等级设置为35级)。
3.修改属性命令:SetAttr格式:SetAttr玩家ID属性类型属性值功能:修改玩家攻击、防御、魔法等基础属性。属性类型:1=攻击,2=魔法,3=道术,4=防御,5=魔御。示例:SetAttr%USERID%150(将玩家攻击属性设置为50)。
四、传送类脚本命令(地图跳转、坐标移动)
1.地图传送命令:MapMove格式:MapMove玩家ID地图IDX坐标Y坐标功能:将玩家传送到指定地图的指定坐标。示例:MapMove%USERID%3320280(将玩家传送到比奇城,地图ID3,坐标320280)。
2.随机传送命令:RandomMove格式:RandomMove玩家ID地图ID最小X最大X最小Y最大Y功能:在指定地图的坐标范围内随机传送玩家。示例:RandomMove%USERID%3300350250300(在比奇城300-350X、250-300Y范围内随机传送)。
五、任务相关脚本命令(任务状态、奖励触发)
1.设置任务状态命令:SetTaskStatus格式:SetTaskStatus玩家ID任务ID状态值功能:修改玩家指定任务的进度状态,状态值0=未接,1=进行中,2=完成。示例:SetTaskStatus%USERID%1011(将101号任务设置为进行中状态)。
2.检测任务状态命令:CheckTaskStatus格式:CheckTaskStatus玩家ID任务ID功能:检测玩家指定任务的当前状态,返回对应状态值,用于条件判断。示例:CheckTaskStatus%USERID%101(检测玩家101号任务的状态)。
六、事件触发类脚本命令(怪物死亡、时间触发)
1.怪物死亡触发命令:OnMonsterDie格式:OnMonsterDie怪物ID脚本标识功能:当指定ID的怪物死亡时,触发关联的脚本内容(如掉落特殊物品、发送全服公告)。示例:OnMonsterDie1001(100为沃玛教主ID,死亡时触发标识为1的脚本)。
2.定时触发命令:Timer格式:Timer时间间隔(秒)脚本标识功能:按指定时间间隔循环触发脚本,用于定时活动、怪物刷新。示例:Timer36002(每3600秒触发标识为2的脚本,如刷新世界BOSS)。
七、脚本控制类命令(条件判断、循环、结束)
1.条件判断命令:If格式:If条件表达式功能:判断条件是否成立,成立则执行后续脚本,不成立则跳过或执行Else分支。示例:IfCheckItem%USERID%20015(判断玩家是否有5个金疮药,成立则执行回收并奖励经验的脚本)。
2.循环命令:Loop格式:Loop循环次数脚本块功能:重复执行指定次数的脚本内容。示例:Loop3GiveItem%USERID%20011(循环3次,每次给玩家1个金疮药,共发放3个)。
3.脚本结束命令:End格式:End功能:结束当前脚本的执行,避免后续无关脚本触发。示例:玩家完成任务领取奖励后,用End结束脚本,防止重复领取。
八、通用使用注意事项
1.变量替换:脚本中%USERID%代表当前交互玩家的ID,%MAPID%代表当前地图ID,需根据场景正确使用变量,避免参数错误。
2.引擎适配:不同引擎部分命令格式有差异(如GOM引擎的物品发放命令为GiveItemEx),使用前需确认当前引擎的命令手册,避免不兼容。
3.脚本测试:修改或新增脚本后,需在单机测试环境中验证功能,确认无异常后再应用到正式服务端,避免引发游戏异常。
4.文件路径:脚本文件默认存放于服务端“Script”或“QuestDiary”文件夹,需按引擎要求的路径存放,确保服务端能正常读取。

