在传奇游戏的世界里,服务端脚本命令起着至关重要的作用。它们掌控着游戏中的各种逻辑和功能,从人物条件检测到地图功能操作,再到变量定义,每一个命令都有着独特的用途。本文将详细介绍传奇服务端脚本命令,帮助你更好地理解和运用这些强大的工具。
一、常用命令
#IF:如果条件判断语句,用于根据特定条件执行后续命令。
#SAY:输出字符串,可用于向玩家展示信息。
#ACT:执行命令,当满足条件时执行相应的操作。
break:结束命令,用于中断当前的命令执行流程。
close:结束对话,通常用于与NPC交互时结束对话。
二、人物条件命令
物品和金币检测:
CHECKITEM物品名数量:检测当前人物所带物品及数量。
CHECKGOLD数量:检测当前人物所带金币数量。
CHECKITEMW物品名数量:检测当前人物是否佩带指定物品。
CHECKDURAEVA物品名数值:检测当前人物所带矿物等物品的品质。
CheckBagSize数量:检测当前人物背包空格数。
CHECKUSEITEM物品位置:检测当前人物身上指定位置是否戴物品。
CHECKITEMTYPE物品位置物品类型:检测当前人物身上指定位置戴的物品是否为指定类型。
等级、声望和职业检测:
CHECKLEVELEX(><=)等级数:检测当前人物等级。
CHECKCREDITPOINT(><=)声望数:检测当前人物声望。
CHECKJOB(WarriorWizardTaoist):检测当前人物所属职业。
行会和成员身份检测:
HAVEGUILD:检测当前人物是否加入行会。
ISCASTLEGUILD:检测当前人物是否为沙城成员。
ISCASTLEMASTER:检测当前人物是否为沙城老大。
ISGUILDMASTER:检测当前人物是否为行会老大。
CHECKOFGUILD行会名称:检测当前人物行会名称。
CHECKGUILDLIST行会列表.txt:检测当前人物行会是否在列表中。
其他条件检测:
ISADMIN:检测当前人物是否为管理员。
ISNEWHUMAN:检测当前人物是否为新人。
CHECKSLAVECOUNT(><=)数量:检测传奇私人服务器人物所带宠物的数量。
CHECKSLAVELEVEL(><=)等级数(7):检测当前人物所带宠物的等级。
CHECKEXP(><=)经验值:检测当前人物经验值。
CHECKPOSELEVEL(><=)等级数:检测当前人物对面人物的等级。
CHECKPOSEGENDER性别(男女):检测当前人物对面人物的性别。
CHECKMEMBERLEVEL类型(><=)等级数:检测当前人物的会员等级。
CHECKMEMBERTYPE(=><)类型数:检测当前人物的会员类型。
CHECKRENEWLEVEL(=><)转生次数:检测当前人物的转生次数。
CHECKDC(=><)攻击下限(=><)攻击上限:检测当前人物攻击力的上限及下限值。
CHECKMC(=><)魔法下限(=><)魔法上限:检测当前人物魔法力的上限及下限值。
CHECKSC(=><)道术下限(=><)道术上限:检测当前人物道术力的上限及下限值。
CHECKHP(=><)HP下限(=><)HP上限:检测当前人物HP值的上限及下限值。
CHECKMP(=><)MP下限(=><)MP上限:检测当前人物MP值的上限及下限值。
CHECKGAMEPOINT活力值:检测当前人物活力值。
ISLOCKPASSWORD:检测当前人物的仓库是否解锁。
PASSWORDERRORCOUNT(=><)次数:检测当前人物输入仓库密码错误次数。
CheckRangeMonCount地图号XY范围(=><)数量:检测一个坐标范围内怪物数量。
CheckMonMap地图号数量:检测一个指定地图内的怪物数量。
CHECKMON数量:检测私人服务器人物所在地图内的怪物数量。
CHECKSKILL技能名称(=><)修炼等级:检测当前人物已学技能。
三、地图功能命令
地图移动和传送:
MAP地图名:将当前人物移动到指定地图。
MOVEMAP地图名XY:将当前人物移动到指定地图的指定坐标。
TIMERECALL时间值:指定当前人物到达多少时间后被传回这里。
BREAKTIMERECALL:中断指定人物达多少时间后被传回这里。
怪物和宝宝相关:
RECALLMOB怪物名称宝宝等级(最高为7)叛变时间(分钟)是否自动变色(0、1)固定颜色(1-7):给予当前人物指定怪物为宝宝。
setautogetexp命令时间经验是否安全区(0为任何地方)地图号(任何地图请不用填):指定当前人物在线泡经验(直接得到经验)。
CLEARMAPMON地图号:清除指定地图的所有怪物。
PARAM1地图、PARAM2横坐标、PARAM3纵坐标、MONGEN怪物名称数量时间:NPC刷怪命令,可在指定地图、坐标刷出指定数量的怪物。
人物属性调整:
GAMEGOLD(=+-)数量:调整当前人物的元宝数量。
SETRANKLEVELNAME封号:调整当前人物的封号。
ADDGUILDLIST行会列表.txt:将当前人物行会名加入列表。
DELGUILDLIST行会列表.txt:将当前人物行会名从列表删除。
ADLNAMELIST角色名列表.txt:将当前人物角色名加入列表。
DELNAMELIST角色名列表.txt:将当前人物角色名从列表删除。
CLEARNAMELIST列表.txt:清除列表内的所有信息。
HAIRSTYLE数值:调整当前人物的发型。
CHANGENAMECOLOR数值:调整当前人物的名字颜色。
CHANGEJOB职业名称(WarriorWizardTaoist):调整当前人物的所属职业。
CHANGEGENDER数值:调整当前人物的所属性别。
ADDSKILL技能名称技能等级:给予当前人物添加指定技能。
DELSKILL技能名称:删除当前人物的指定技能。
SKILLLEVEL技能名称(=+-)技能等级:调整当前人物的指定技能为指定等级。
DELNOJOBSKILL:删除当前人物非本职业的所有技能。
CLEARSKILL:删除当前人物的所有技能。
GAMEPOINT(=+-)数量:调整当前人物的活力值。
CREDITPOINT(=+-)数量:调整当前人物的声望点数。
SETMEMBERLEVEL(=+-)等级数:调整当前人物的会员等级。
SETMEMBERTYPE(=+-)等级数:调整当前人物的会员类型。
CHANGELEVEL(=+-)等级数:调整当前人物的等级。
CHANGEPKPOINT(=+-)点数:调整当前人物的PK点数。
CHANGEEXP(=+-)经验值:调整当前人物的经验值。
CHANGEMODE模式类型(1管理模式、2无敌模式、3隐身模式)开关(1为开0为关):调整当前人物的游戏模式。
CHANGEPERMISSION权限等级:调整当前人物的权限等级。
KILLMONEXPRATE倍率有效时间:调整当前人物的杀怪经验倍率。
POWERRATE倍率有效时间:调整当前人物的攻击力倍率。
KICK:将当前人物踢下线。
KILL数值:将当前传奇私人服务器人物杀死,并设置杀死类型。
KILLSLAVE:将当前人物的宝宝全部杀死。
CLEARPASSWORD:清除当前人物的仓库密码。
RestRenewLevel:将人物的转生次数复位为零,即未转生。
DELMARRY:清除当前人物的结婚信息。
DELMASTER:清除当前人物的拜师信息。
RENEWLEVEL转次数转后等级0:将当前人物转生,并设置转生次数以及转生后人物等级跳到多少级。
SENDMSG信息类型代码%s信息内容%d:发送文字信息。
RESTBONUSPOINT:清楚当前人物的属性点。
地图特殊操作:
takew:可以取走身上装备的物品。
mapmove移动地图(例如:mapmove0634612):移动到指定地图的指定坐标。
map移动地图(不需要具体坐标.例如:map0):移动到指定地图。
timerecall在规定时间内召回(timerecall5在5分钟之内召唤回原地图)。
takecheckitem收取checkitem过的物品(不加任何参数)。
monclear清空地图怪物(monclear0清空0地图上的所有怪物)。
exchangemap互换地图(exchangemap地图代码)。
recallmap把某地图的人召唤过来(recallmap地图代码)。
batchmove3(此3个连用可以瞬移地图用于DC)。
四、定义变量
RANDOM随机数:一般用在#IF语句中作为触发#IF机率。
EQUAL变量名数值:检测变量是否等于指定数值。
LARGE变量名数值:检测变量是否大于指定数值。
SMALL变量名数值:检测变量是否小于指定数值。
MOV变量名数值:给予变量赋于指定值。
INC变量名数值:给予变量加上指定值。
DEC变量名数值:给予变量减去指定值。
SUM变量名A变量名B:将两个变量相加。
MOVR数值:变量赋予小于指定数值的随机非负数。
<$STR(变量)>:把变量转为字符串。
SET[变量名]数值:定义变量。
RESET[变量名]连续数字:连续将变量清零。
CHECK[变量数值]数值:检测变量是否等于指定数值。
五、传奇服务器脚本命令常见错误
错误一:
很多人认为random的具体运行是首先在3以下随机取一个值,然后该脚本内的random3都不再取值了。那样理解的时候goto1、2、3的几率是相等的,都是1/3。这是一个理解上的错误,实际这里运行的操作是这样的,到达1的几率为1/3,到达2的几率为先2/3然后1/3就是2/9。而到达3的几率则为2/3然后2/3然后1/3实际几率为4/27!
错误二:
有人认为在第一个random的时候会给一个隐藏的值在3以下做一个赋值。然后以后的random就是检测是否自己的random值和这个隐藏值相同,如果相同则#act。这个也是一种错误理解,虽然同是对random理解错误造成的,但是该错误与错误一理解上是不同的。但是这种随机的设计方式是提倡的,利用P变量的随机取值是可以完成的。
一、常用命令
#IF:如果条件判断语句,用于根据特定条件执行后续命令。
#SAY:输出字符串,可用于向玩家展示信息。
#ACT:执行命令,当满足条件时执行相应的操作。
break:结束命令,用于中断当前的命令执行流程。
close:结束对话,通常用于与NPC交互时结束对话。
二、人物条件命令
物品和金币检测:
CHECKITEM物品名数量:检测当前人物所带物品及数量。
CHECKGOLD数量:检测当前人物所带金币数量。
CHECKITEMW物品名数量:检测当前人物是否佩带指定物品。
CHECKDURAEVA物品名数值:检测当前人物所带矿物等物品的品质。
CheckBagSize数量:检测当前人物背包空格数。
CHECKUSEITEM物品位置:检测当前人物身上指定位置是否戴物品。
CHECKITEMTYPE物品位置物品类型:检测当前人物身上指定位置戴的物品是否为指定类型。
等级、声望和职业检测:
CHECKLEVELEX(><=)等级数:检测当前人物等级。
CHECKCREDITPOINT(><=)声望数:检测当前人物声望。
CHECKJOB(WarriorWizardTaoist):检测当前人物所属职业。
行会和成员身份检测:
HAVEGUILD:检测当前人物是否加入行会。
ISCASTLEGUILD:检测当前人物是否为沙城成员。
ISCASTLEMASTER:检测当前人物是否为沙城老大。
ISGUILDMASTER:检测当前人物是否为行会老大。
CHECKOFGUILD行会名称:检测当前人物行会名称。
CHECKGUILDLIST行会列表.txt:检测当前人物行会是否在列表中。
其他条件检测:
ISADMIN:检测当前人物是否为管理员。
ISNEWHUMAN:检测当前人物是否为新人。
CHECKSLAVECOUNT(><=)数量:检测传奇私人服务器人物所带宠物的数量。
CHECKSLAVELEVEL(><=)等级数(7):检测当前人物所带宠物的等级。
CHECKEXP(><=)经验值:检测当前人物经验值。
CHECKPOSELEVEL(><=)等级数:检测当前人物对面人物的等级。
CHECKPOSEGENDER性别(男女):检测当前人物对面人物的性别。
CHECKMEMBERLEVEL类型(><=)等级数:检测当前人物的会员等级。
CHECKMEMBERTYPE(=><)类型数:检测当前人物的会员类型。
CHECKRENEWLEVEL(=><)转生次数:检测当前人物的转生次数。
CHECKDC(=><)攻击下限(=><)攻击上限:检测当前人物攻击力的上限及下限值。
CHECKMC(=><)魔法下限(=><)魔法上限:检测当前人物魔法力的上限及下限值。
CHECKSC(=><)道术下限(=><)道术上限:检测当前人物道术力的上限及下限值。
CHECKHP(=><)HP下限(=><)HP上限:检测当前人物HP值的上限及下限值。
CHECKMP(=><)MP下限(=><)MP上限:检测当前人物MP值的上限及下限值。
CHECKGAMEPOINT活力值:检测当前人物活力值。
ISLOCKPASSWORD:检测当前人物的仓库是否解锁。
PASSWORDERRORCOUNT(=><)次数:检测当前人物输入仓库密码错误次数。
CheckRangeMonCount地图号XY范围(=><)数量:检测一个坐标范围内怪物数量。
CheckMonMap地图号数量:检测一个指定地图内的怪物数量。
CHECKMON数量:检测私人服务器人物所在地图内的怪物数量。
CHECKSKILL技能名称(=><)修炼等级:检测当前人物已学技能。
三、地图功能命令
地图移动和传送:
MAP地图名:将当前人物移动到指定地图。
MOVEMAP地图名XY:将当前人物移动到指定地图的指定坐标。
TIMERECALL时间值:指定当前人物到达多少时间后被传回这里。
BREAKTIMERECALL:中断指定人物达多少时间后被传回这里。
怪物和宝宝相关:
RECALLMOB怪物名称宝宝等级(最高为7)叛变时间(分钟)是否自动变色(0、1)固定颜色(1-7):给予当前人物指定怪物为宝宝。
setautogetexp命令时间经验是否安全区(0为任何地方)地图号(任何地图请不用填):指定当前人物在线泡经验(直接得到经验)。
CLEARMAPMON地图号:清除指定地图的所有怪物。
PARAM1地图、PARAM2横坐标、PARAM3纵坐标、MONGEN怪物名称数量时间:NPC刷怪命令,可在指定地图、坐标刷出指定数量的怪物。
人物属性调整:
GAMEGOLD(=+-)数量:调整当前人物的元宝数量。
SETRANKLEVELNAME封号:调整当前人物的封号。
ADDGUILDLIST行会列表.txt:将当前人物行会名加入列表。
DELGUILDLIST行会列表.txt:将当前人物行会名从列表删除。
ADLNAMELIST角色名列表.txt:将当前人物角色名加入列表。
DELNAMELIST角色名列表.txt:将当前人物角色名从列表删除。
CLEARNAMELIST列表.txt:清除列表内的所有信息。
HAIRSTYLE数值:调整当前人物的发型。
CHANGENAMECOLOR数值:调整当前人物的名字颜色。
CHANGEJOB职业名称(WarriorWizardTaoist):调整当前人物的所属职业。
CHANGEGENDER数值:调整当前人物的所属性别。
ADDSKILL技能名称技能等级:给予当前人物添加指定技能。
DELSKILL技能名称:删除当前人物的指定技能。
SKILLLEVEL技能名称(=+-)技能等级:调整当前人物的指定技能为指定等级。
DELNOJOBSKILL:删除当前人物非本职业的所有技能。
CLEARSKILL:删除当前人物的所有技能。
GAMEPOINT(=+-)数量:调整当前人物的活力值。
CREDITPOINT(=+-)数量:调整当前人物的声望点数。
SETMEMBERLEVEL(=+-)等级数:调整当前人物的会员等级。
SETMEMBERTYPE(=+-)等级数:调整当前人物的会员类型。
CHANGELEVEL(=+-)等级数:调整当前人物的等级。
CHANGEPKPOINT(=+-)点数:调整当前人物的PK点数。
CHANGEEXP(=+-)经验值:调整当前人物的经验值。
CHANGEMODE模式类型(1管理模式、2无敌模式、3隐身模式)开关(1为开0为关):调整当前人物的游戏模式。
CHANGEPERMISSION权限等级:调整当前人物的权限等级。
KILLMONEXPRATE倍率有效时间:调整当前人物的杀怪经验倍率。
POWERRATE倍率有效时间:调整当前人物的攻击力倍率。
KICK:将当前人物踢下线。
KILL数值:将当前传奇私人服务器人物杀死,并设置杀死类型。
KILLSLAVE:将当前人物的宝宝全部杀死。
CLEARPASSWORD:清除当前人物的仓库密码。
RestRenewLevel:将人物的转生次数复位为零,即未转生。
DELMARRY:清除当前人物的结婚信息。
DELMASTER:清除当前人物的拜师信息。
RENEWLEVEL转次数转后等级0:将当前人物转生,并设置转生次数以及转生后人物等级跳到多少级。
SENDMSG信息类型代码%s信息内容%d:发送文字信息。
RESTBONUSPOINT:清楚当前人物的属性点。
地图特殊操作:
takew:可以取走身上装备的物品。
mapmove移动地图(例如:mapmove0634612):移动到指定地图的指定坐标。
map移动地图(不需要具体坐标.例如:map0):移动到指定地图。
timerecall在规定时间内召回(timerecall5在5分钟之内召唤回原地图)。
takecheckitem收取checkitem过的物品(不加任何参数)。
monclear清空地图怪物(monclear0清空0地图上的所有怪物)。
exchangemap互换地图(exchangemap地图代码)。
recallmap把某地图的人召唤过来(recallmap地图代码)。
batchmove3(此3个连用可以瞬移地图用于DC)。
四、定义变量
RANDOM随机数:一般用在#IF语句中作为触发#IF机率。
EQUAL变量名数值:检测变量是否等于指定数值。
LARGE变量名数值:检测变量是否大于指定数值。
SMALL变量名数值:检测变量是否小于指定数值。
MOV变量名数值:给予变量赋于指定值。
INC变量名数值:给予变量加上指定值。
DEC变量名数值:给予变量减去指定值。
SUM变量名A变量名B:将两个变量相加。
MOVR数值:变量赋予小于指定数值的随机非负数。
<$STR(变量)>:把变量转为字符串。
SET[变量名]数值:定义变量。
RESET[变量名]连续数字:连续将变量清零。
CHECK[变量数值]数值:检测变量是否等于指定数值。
五、传奇服务器脚本命令常见错误
错误一:
很多人认为random的具体运行是首先在3以下随机取一个值,然后该脚本内的random3都不再取值了。那样理解的时候goto1、2、3的几率是相等的,都是1/3。这是一个理解上的错误,实际这里运行的操作是这样的,到达1的几率为1/3,到达2的几率为先2/3然后1/3就是2/9。而到达3的几率则为2/3然后2/3然后1/3实际几率为4/27!
错误二:
有人认为在第一个random的时候会给一个隐藏的值在3以下做一个赋值。然后以后的random就是检测是否自己的random值和这个隐藏值相同,如果相同则#act。这个也是一种错误理解,虽然同是对random理解错误造成的,但是该错误与错误一理解上是不同的。但是这种随机的设计方式是提倡的,利用P变量的随机取值是可以完成的。

