这段脚本由五个彼此独立的判断段组成,执行顺序从上到下。每个#IF重新开始一组条件判断,条件全部成立时才执行紧跟在后面的#ACT段;脚本中没有#ELSE,所以它不是互斥分支,而是逐段检查。一个角色如果同时满足多个条件,就可能触发多段动作。
#IF
checkjob warrior
ISNEWHUMAN
#ACT
ADDSKILL 基本剑术 3
翻译:如果当前角色的职业是战士,并且当前处于新人状态,那么给该角色添加基本剑术技能,等级设为3级。checkjob warrior是职业判断,warrior对应战士;ISNEWHUMAN是新人判断,具体判定规则由引擎决定,通常指新角色或新人保护状态;ADDSKILL是添加技能命令,后面的“基本剑术”是技能名称,“3”是技能等级。已经学会该技能时,是覆盖等级还是忽略,取决于引擎对ADDSKILL的处理方式。
#IF
checkjob wizard
ISNEWHUMAN
#ACT
ADDSKILL 火球术 3
翻译:如果当前角色职业是法师,并且处于新人状态,那么给该角色添加火球术,等级设为3级。wizard对应法师。这一段与上一段是并列判断,不是二选一;但由于职业通常只能是一种,战士段和法师段不会同时成立。
#IF
checkjob taoist
ISNEWHUMAN
#ACT
ADDSKILL 治愈术 3
翻译:如果当前角色职业是道士,并且处于新人状态,那么给该角色添加治愈术,等级设为3级。taoist对应道士。到这里为止,前三段的作用是按职业给新人发放对应的基础技能,并且直接给到3级。
#IF
ISCASTLEMASTER
#ACT
SENDMSG 0 本大陆最伟大的、倍受尊敬的、人见人爱的一代沙巴克霸主『<$USERNAME>』闪亮登场。。。!大家有仇的报仇,有冤的报冤!!
CHANGENAMECOLOR 253
SENDMSG 7 您现在的身份是『沙巴克城主』——祝贺你!自豪一下吧!
翻译:如果当前角色是沙巴克城主,那么执行三个动作。第一,用SENDMSG的0号频道发送一条广播,内容为“本大陆最伟大的、倍受尊敬的、人见人爱的一代沙巴克霸主『角色名』闪亮登场。。。!大家有仇的报仇,有冤的报冤!!”其中<$USERNAME>会被替换成当前角色的名字,0号频道通常是全服或系统广播频道,具体显示范围由引擎定义。第二,CHANGENAMECOLOR 253把该角色的名字颜色改成253号颜色。第三,SENDMSG 7给该角色本人发送提示“您现在的身份是『沙巴克城主』——祝贺你!自豪一下吧!”,7号频道通常是个人提示或屏幕提示,具体表现同样由引擎决定。这一段不判断职业,只判断城主身份。
#IF
ISADMIN
#ACT
CHANGEMODE 1 1
CHANGEMODE 2 1
CHANGEMODE 3 1
CHANGEPERMISSION 10
翻译:如果当前角色是管理员,那么把模式1、模式2、模式3分别设置为1,并把权限等级设置为10。ISADMIN是管理员判断。CHANGEMODE的第一个参数是模式编号,第二个参数是开关值,1表示开启或生效;模式1、2、3具体对应哪些管理状态,由引擎版本定义,常见会涉及无敌、隐身、麻痹一类管理能力,不能脱离引擎说明绝对对应关系。CHANGEPERMISSION 10是把权限级别调到10,10通常是较高或最高管理权限档位,实际含义看引擎权限表。这一段与城主段也是并列判断,管理员如果同时是城主,两段都会触发。
整段脚本的实际效果可以概括为:新人战士上线拿到3级基本剑术,新人法师拿到3级火球术,新人道士拿到3级治愈术;沙巴克城主触发全服广播、名字变色和个人身份提示;管理员触发三种模式开启和权限10设置。脚本本身没有做“否则”处理,也没有把城主段和管理员段放进同一个条件组,所以阅读时要按每个#IF单独成立来理解,不能当成一条从上到下只执行一个分支的判断链。
传奇脚本条件判断与动作命令逐段翻译及执行顺序完整详解说明大全
来源:
作者:
点击:

