// SETBIT,UNSETBIT,FLIPBIT,ISBITSET
例子:
[@SETBIT]
#IF
!ISBITSET P1 22 //第22位是否关闭
#ACT
SETBIT P1
22
SENDMSG 7 P1的22位现在处于开启状态
#IF
ISBITSET P1 22
//第22位是否开启
#ACT
UNSETBIT P1 22
SENDMSG 7 P1的22位现在处于关闭状态
[@FILPBIT]
#IF
CHECKLEVELEX >
0
#ACT
FLIPBIT P1 31 //切换状态,开<->关来回切换
#IF
ISBITSET P1 31
//第31位是否开启
#ACT
SENDMSG 7 P1的31位现在处于开启状态
#ELSEACT
SENDMSG 7
P1的31位现在处于关闭状态
;==========================================
MOVEBAGITEM
物品名或物品ID 数量
//玩家执行则将物品移动到英雄背包,英雄执行(H.MOVEBAGITEM)则将物品移动到玩家背包(重叠物品被认为是一整个物品)
;==========================================
例:
;==========================================
#IF
CHECKHEROONLINE
#ACT
MOVEBAGITEM
随机传送石 2 //主人背包物品移动到英雄背包
H.MOVEBAGITEM 随机传送石 2
//英雄背包物品移动到主人背包
;==========================================
;==========================================
PLAYEFFECT的X/Y坐标有效并且第10参数为1时,会以背景方式播放效果(配套客户端更新)
;==========================================
例:
#IF
#ACT
PLAYEFFECT
PRGUSE2/333/333 110 15 80 3 WAV\POWERUP.WAV 0 "" 0 1
;==========================================
历史命令:
;==========================================
TAKEON
//自动穿装备
CREATEHEROEX
//申请多英雄
RECALLHERO
//召唤英雄,参数不为空时回收英雄
SETAUTOGETEXP
//自动在线泡经验
SETOFFLINEPLAY ON
//开启下线安全区自动脱机功能
SETOFFLINEPLAY OFF
//关闭下线安全区自动脱机功能
SETOFFLINEFUNC
//设置人物上线自动挂机涨经验
OFFLINEPLAYEX
//设置人物离线挂机打怪
KILLMONEXPRATE
//设置人物杀怪经验倍数
BATCHDELAY
//设置人物秒延迟,作为ADDBATCH延迟多少的参数
ADDBATCH
//就会按前一条BATCHDELAY延迟多久后飞地图
BATCHMOVE
//延迟+随机飞上面增加的地图
STATUSRATE
//设置人物属性翻倍、支持小数点 比如:1.2 (0:防御力 1:魔御力 2: 攻击力 3:魔法力 4:道术 5:HP
6:MP)
SETSCTIMER ID(0-15) //设置人物个人定时器
KILLSCTIMER ID(0-15)
//停止人物个人定时器
THROUGHHUMMS
//设置人物穿人穿怪
POWERRATE
//设置人物职业本属性:攻击、魔法、道术倍数
HAIRSTYLE
0/1
//设置人物发型
CHANGENAMECOLOR
//设置人物名称颜色
NAMECOLOR 0/1
//开启人物名字自动变色功能,需要M2-功能设置-转生系统-勾选自动变色
GETPOSENAME
//获取对面人物名称
QUERYBINDITEM 0
//弹出绑定窗口
QUERYBINDITEM 1
//弹出解绑窗口
RESUMEBINDITEM
//允许继续执行绑定
RESUMEUNBINDITEM
//允许继续执行解绑
[@ITEMBINDING]
//进行绑定之前,做检测用
[@ITEMUNBINDING]
//进行解绑之前,做检测用
KILLMONGETFULLEXP
//高等级杀怪获取全部经验时间
REFITEMSHAPE
//参数2为-1时忽略更改,第3参数(数字)可以设置装备的光效,-1时忽略、引用某同类型物品外观,位置:0衣服
1武器,数值参考STDITEMS.DB中的物品IDX,存库,(连击合击版本才支持)
[@ITEMBINDED]
//绑定成功后
[@ITEMUNBINDED]
//解绑成功后
CLICKNPC
//增加可以点击摆摊中的角色名称
SEARCHONSALEITEM //物品名 出售类型(元宝/金币)
返回最高个数(1-10) //返回信息自动以SENDMSG形式发送给玩家
DELAYGOTO S LABEL
//功能:跳转,延时执行脚本
DELAYCALL S LABEL
//功能:跳转,延时执行脚本
REPAIRALL
//特修人物所有装备
READRANDOMSTR
//从指定文件内随机读取一行到变量中。
READRANDOMLINE
//从指定文件内随机读取一行到变量中。
READRANDOMSTR
//字符串1|权重1,字符串2|权重2,字符串3|权重3... //
权重为数字,数值越大,对应的字符串获取到的几率就越大,注意:所有权重总和不要超过21亿!
ADDLINELIST
//文件名(默认ENVIR目录下) 字符
//写入文本行
DELLINELIST
//文件名(默认ENVIR目录下) 字符
//删除文本行
GETSTRLENGTH
//获取$STR(S1)字符的长度到M1
GETPOSENAME
//获取对面人物名称
ENABLECHARACTER //角色名 0/1 //
0禁用,1启用
RANDSERIESSKILL //随机释放连击NPC命令
注:主要给假人用
MAP
$CURRENTMAP //随机地图点守护点
注:此命令与GUARDPOS 同时存在NPC内使用
GUARDPOS $CURRENTX
$CURRENTY 30
//设置地图的守护点和范围(不小于SETUP中的MAXVIEWRANGEX),X为-1时取消守护
TAKE
//物品1|物品2|物品3... 数量 P0 1 第四参数=1时,不取走极品装备,第三参数P0不需要时可以用""代替 第六参数=1时
回收仓库道具
TAKE 龙之手镯|骑士手镯|三眼手镯|紫碧螺|泰坦戒指|绿色项链|万年雪霜|力量戒指|炼狱 46 "" 1
0
1
PETPICKUPITEMRANGE //宠物名字
范围(0-15)
宠物自动拾取范围,宠物名字为“H”时指英雄,宠物名字为“SELF”时指自己(挂机用),“*”指非英雄的所有宠物,范围0时关闭自动拾取,可结合上条更新进行定时。
LOCKDOWN
1
//锁定,不可攻击、移动、魔法等,LOCKDOWN 0是解锁
FAKEPLAYER
0/1 //0踢假人,1加载假人
CALCVAL
//数值1 操作符(+-*/=) 数值2,结果返回在变量$CALCRESULT中,对于字符串和时间的操作,只支持+-, 例如: CALCVAL
$TIMESTAMP +
1,返回结果在$CALCRESULT,对于时间计算单位为秒。
UNITYENERGY
//修改合击怒气值NPC命令 +/-/= 数值
UNITYPOWERRATE
//修改合击威力倍率NPC命令 +/-/= 数值,百分比,默认100,<$UNITYPOWERRATE> 可以显示当前值
STRCAP S1
S2 ( )
//捕获字符串S1中“()”内的内容到S2,S1返回剩余部分
UpgradeItem //第5参数设置为99时,忽略普通属性的升级,只升级神秘属性;第4参数为鉴定属性,格式:普通鉴定属性|神秘鉴定属性|特殊属性|神技|几鉴,类似Give命令的格式,留空则不起作用
UpgradeItemEx //第5参数设置为99时,忽略普通属性的升级,只升级神秘属性;第8参数为鉴定属性,同UpgradeItem的第4参数
UpgradeItemEx //第4参数如果是1=5,3=5,28=7,28=8这样的“位置=数值”批量格式,则直接按第4参数修改装备普通属性,不会失败,将不受参数2位置和参数3几率的控制
UpgradeDlgItem //第4参数设置为99时,忽略普通属性的升级,只升级神秘属性;第6参数为鉴定属性,同上
MOBFIREBURN
//刷新光圈 地图 X Y 类型 时间
伤害值
DELFIREBURN //删除光圈
地图 X Y
类型
VERIFYKEYCODE //<$TOTPKEY>
<$STR(M5)> 验证两步验证码,参数1是两步验证密钥,参数2是输入的验证码,用法可以参考:
佣兵示意脚本.TXT
QUERYVALUE
//命令支持QCHATMISSION,第五参数为:QC
MAKEPOISON
//生物状态系统:类型:(0~16) 秒数
点数,第一参数为CLEARUP时,清理掉状态
类型:0:绿毒
类型:1:红毒
类型:2:人物变色
类型:3:雷击
类型:4:冰冻
类型:5:石化
类型:6:禁锢(轻量麻痹)
类型:7:重伤(丧失防御)
类型:8:隐身
类型:9:战甲术
类型:10:幽灵盾
类型:11:魔法盾
类型:12:四级魔法盾
类型:13:神龙附身(传奇之刃附属技能.刀刀暴击)
类型:14:龙化(攻防增强、抵抗石化、龙化状态下如穿戴首饰类Shape=197的首饰,获得龙卫神技:神龙之怒
神技:无视麻痹、无视冰冻、增加自身攻击力、暴击伤害!)
类型:15:滴血(相当于按一定百分比掉血的绿毒)
类型:16:诅咒丧失防御,数值小于100时,按百分比减少攻击(100-数值),数值大于100时,按百分比增加攻击(数值-100),状态存档
MONGENEX
//MONGENEX地图文件名称XY怪物名称范围数量是否内功怪物(0否,1是)名称颜色(0~255)
CLIENTFEATURES //开始或停止(0/1)条件(ALL/地图/空)//客户全开放挂机功能前提下,开始或停止客户端所有角色挂机,ALL=所有在线角色,地图=地图上的角色\空=当前执行角色
;==========================================
功能:自动挂机
开关
只有引擎关闭自动挂机才有效!
;==========================================
#IF
TRUE
#ACT
CLIENTFEATURES
1
#ELSEACT
CLIENTFEATURES
0
;==========================================
扩展装备展示功能:
;==========================================
[@SHOWITEMS]
#ACT
SETDLGITEM
屠龙
FORMATSTR %S <$DLGITEMSHOW>
SETDLGITEM 怒斩
FORMATSTR
"%S %S" <$CALCRESULT> <$DLGITEMSHOW>
SETDLGITEM
龙牙
FORMATSTR "%S %S" <$CALCRESULT>
<$DLGITEMSHOW>
SETDLGITEM 逍遥扇
FORMATSTR "%S %S"
<$CALCRESULT> <$DLGITEMSHOW>
#SAY
装备:<$CALCRESULT>\ \<返回
/@BACK> <关闭
/@EXIT>
;==========================================
;==========================================
功能:随机地图点守护
;==========================================
#IF
TRUE
#ACT
GUARDPOS
$CURRENTX $CURRENTY 30
;==========================================
;==========================================
功能:MOBFIREBURN
地图 X Y 光圈 (1~8) 9999 20000 1
1
;==========================================
#IF
TRUE
#ACT
GMEXECUTE
MOBFIREBURN N3 330 330 4 120 0 1
GMEXECUTE MOBFIREBURN N3 331 330 4 120 0
1
GMEXECUTE MOBFIREBURN N3 332 330 4 120 0 1
GMEXECUTE MOBFIREBURN N3 333
330 4 120 0 1
GMEXECUTE MOBFIREBURN N3 334 330 4 120 0 1
GMEXECUTE
MOBFIREBURN N3 334 331 4 120 0 1
GMEXECUTE MOBFIREBURN N3 334 332 4 120 0
1
GMEXECUTE MOBFIREBURN N3 334 333 4 120 0 1
GMEXECUTE MOBFIREBURN N3 334
334 4 120 0 1
GMEXECUTE MOBFIREBURN N3 333 334 4 120 0 1
GMEXECUTE
MOBFIREBURN N3 332 334 4 120 0 1
GMEXECUTE MOBFIREBURN N3 331 334 4 120 0
1
GMEXECUTE MOBFIREBURN N3 330 334 4 120 0 1
GMEXECUTE MOBFIREBURN N3 330
333 4 120 0 1
GMEXECUTE MOBFIREBURN N3 330 332 4 120 0 1
GMEXECUTE
MOBFIREBURN N3 330 331 4 120 0
1
;==========================================
功能:DELFIREBURN 3 678 336 5
9999
;==========================================
#IF
TRUE
#ACT
GMEXECUTE
MOBFIREBURN N3 330 330 4
GMEXECUTE MOBFIREBURN N3 331 330 4
GMEXECUTE
MOBFIREBURN N3 332 330 4
GMEXECUTE MOBFIREBURN N3 333 330 4
GMEXECUTE
MOBFIREBURN N3 334 330 4
GMEXECUTE MOBFIREBURN N3 334 331 4
GMEXECUTE
MOBFIREBURN N3 334 332 4
GMEXECUTE MOBFIREBURN N3 334 333 4
GMEXECUTE
MOBFIREBURN N3 334 334 4
GMEXECUTE MOBFIREBURN N3 333 334 4
GMEXECUTE
MOBFIREBURN N3 332 334 4
GMEXECUTE MOBFIREBURN N3 331 334 4
GMEXECUTE
MOBFIREBURN N3 330 334 4
GMEXECUTE MOBFIREBURN N3 330 333 4
GMEXECUTE
MOBFIREBURN N3 330 332 4
GMEXECUTE MOBFIREBURN N3 330 331
4
;==========================================
UPGRADEDLGITEM
第一参数
属性位置(0-23)
第二参数 成功机率(0-100)
第三参数 点数机率(0-255)
第四参数
是否破碎或还原(0,1,2)(2代表还原) //第4参数设置为99时,忽略普通属性的升级,只升级神秘属性和宝石属性
第五参数
非空时,不显示成功、失败、破碎等信息 如果需要为空可留空或 ""
第六参数
为鉴定属性+宝石属性,同上(8-13参数)
UPGRADEDLGITEM 0 0 0 0 0 0|0|0|0|0@1,4=3|2,9=4|5,24=5;==========================================
UPGRADEITEM
第一参数
物品位置(0-12)
第二参数
随机属性机率(0-100)
//此命令参数2,为随机属性几率,即该命令升级概率出现任何属性
第三参数 点数(0-255)
第四参数
为鉴定属性+宝石属性,同上(8-13参数)
第五参数 设置为99时,忽略普通属性的升级,只升级神秘属性和宝石属性
UPGRADEITEM 1 0 0
0|2|0|0|0@1,4=3|2,9=4|5,24=5
99
如需调整鉴定属性自行改更改
0|0|0|0|0
格式:普通鉴定属性|神秘鉴定属性|特殊属性|神技|几鉴(注意如果有鉴定属性必须给几鉴不然属性不生效)
;==========================================
功能:UPGRADEITEMEX
普通鉴定属性|神秘鉴定属性|特殊属性|神技|几鉴,类似GIVE命令的格式,留空则不起作用
扩展:支持位置10000(表示对当前非空的DLGITEMID物品进行操作)
;==========================================
[@UPGRADEITEMEX]
#IF
TRUE
#ACT
UPGRADEITEMEX
1 0 1 1 2 0
UPGRADEITEMEX 1 1 1 1 2 0
UPGRADEITEMEX 1 2 1 1 2
0
UPGRADEITEMEX 1 3 1 1 2 0
UPGRADEITEMEX 1 4 1 1 2 0
UPGRADEITEMEX 1 5
1 1 2 0
UPGRADEITEMEX 1 6 1 11 2 0
UPGRADEITEMEX 1 7 1 1 2
0
UPGRADEITEMEX 1 8 1 1 2 0
UPGRADEITEMEX 1 9 1 1 2 0
UPGRADEITEMEX 1
14 1 1 2 0
UPGRADEITEMEX 1 15 1 1 2 0
UPGRADEITEMEX 1 16 1 1 2
0
UPGRADEITEMEX 1 17 1 1 2 0
UPGRADEITEMEX 1 18 1 1 2 0
UPGRADEITEMEX 1
19 1 1 2 0
UPGRADEITEMEX 1 20 1 1 2 0
UPGRADEITEMEX 1 21 1 1 2
0
UPGRADEITEMEX 1 22 1 1 2
0
UPGRADEITEMEX 10000 99 0 0 1=10,2=10,3=10,11=15,|9=3,12=15,17=10,28=15|67|127|1@1,4=3|2,9=4|5,24=5
;=========================================
功能:UPGRADEITEM
普通鉴定属性|神秘鉴定属性|特殊属性|神技|几鉴,类似GIVE命令的格式,留空则不起作用
格式:UPGRADEITEM
支持位置10000(表示对当前非空的DLGITEMID物品进行操作)
;==========================================
#IF
TRUE
#ACT
UPGRADEITEM 1 0 0
0|1|2|3|0@1,4=3|2,9=4|5,24=5
99
;==========================================
第一参数 物品位置(0-12)
第二参数
属性位置(0-22)
第三参数 点数(0-255)
第四参数 为鉴定属性+宝石属性,同上(8-13参数)
第五参数
设置为99时,忽略普通属性的升级,只升级神秘属性和宝石属性
支持位置10000(表示对当前非空的DLGITEMID物品进行操作)
;==========================================
give
第一参数 物品名
第二参数 数量
第三参数 属性位置(0-22)
第四参数
属性值(0-255)
第五参数 为鉴定属性+宝石属性,同上(8-13参数)
give 屠龙 1 0 0 0|0|0|0|0@1,4=3|2,9=4|5,24=5;==========================================
Give
聚灵珠 1 满
===========================================
GiveEx
第一参数
物品名
第二参数 数量
第三参数批量附加属性比如:0=11,1=12,2=13,3=15,4=11,5=12,6=13,8=15,9=15,16=15,17=15,18=15,19=15,20=15,21=15,22=15,23=1
第四参数 为鉴定属性+宝石属性,同上(8-13参数)
giveEx 屠龙 1 0 0|0|0|0|0@1,4=3|2,9=4|5,24=5GiveEx 聚灵珠 1 满
;==========================================
功能:STRCAP S1
S2 ( ) //注意:符号不能使用双字节的大写【】、:*
()
;==========================================
#IF
TRUE
#ACT
MOV
S2
MOV S1 玩家:(风云)雄霸天下
STRCAP S1 S2 ( )
SENDMSG 5
当前:S1=<$STR(S1)>
SENDMSG 5
当前:S2=<$STR(S2)>
;==========================================
;==========================================
新扩展检测命令:
//支持变量操作 脚本变量大全 COMPVAL 变量 < > = ?
数字或文字
;==========================================
COMPVAL <$USERID>
^ "USERID" // $USERID是否以USERID开头
COMPVAL <$USERID> ` "USERID" //
$USERID是否以USERID结尾
;==========================================
;==========================================
功能:KILLMONGETFULLEXP
+/-/= 秒数 //
高等级杀怪获取全部经验时间(秒),存库
;==========================================
例如:
;==========================================
#IF
TRUE
#ACT
KILLMONGETFULLEXP
+
2100000000
;==========================================
;==========================================
功能:获取对面人物名称。
格式:GETPOSENAME 变量
;==========================================
#IF
TRUE
#ACT
GETPOSENAME
S0
SENDMSG 5 你对面的人物是:
<$STR(S0)>
;==========================================
功能:GETSTRLENGTH
$STR(S1) M1
//获取$STR(S1)字符的长度到M1
;==========================================
[@GETSTRLENGTH]
#IF
TRUE
#ACT
MOV
S1 <$USERNAME>
GETSTRLENGTH $STR(S1)
M1
;==========================================
;==========================================
示例:
;==========================================
#IF
TRUE
#ACT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第一名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第二名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第三名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第四名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第五名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第六名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第七名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第八名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第九名.TXT
CLEARNAMELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第十名.TXT
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第一名.TXT <$STR(A14)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第二名.TXT <$STR(A16)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第三名.TXT <$STR(A18)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第四名.TXT <$STR(A20)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第五名.TXT <$STR(A22)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第六名.TXT <$STR(A24)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第七名.TXT <$STR(A26)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第八名.TXT <$STR(A28)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第九名.TXT <$STR(A30)>
ADDLINELIST
..\QUESTDIARY\WWW.BLUEM2.COM\冲级数据\冲级第十名.TXT <$STR(A32)>
;==========================================
功能:设置NPC刷怪功能
;==========================================
格式:
PARAM1 地图号
PARAM2
Y坐标
PARAM3
X坐标
MONGEN 怪物名 数量
范围
;==========================================
举例:
;==========================================
#IF
CHECKMONMAP
G005 150
#ACT
GIVE 回城卷 1
MAPMOVE G005 67 38
#ELSEACT
PARAM1
G005
PARAM2 50
PARAM3 50
MONGEN 巨型多角虫 50 100
MONGEN 狼 50
100
MONGEN 虎蛇 50 100
MONGEN 红蛇 50 100
GIVE 回城卷 1
MAPMOVE G005 67
38
;==========================================
;==========================================
功能:从指定文件内随机读取一行到变量中。
格式:
1概率型. READRANDOMSTR
.\QUESTDIARY\变量\颜色.TXT S15
2随机型. READRANDOMLINE .\QUESTDIARY\变量\颜色.TXT
S15
;==========================================
[@DELSKILL]
#IF
TRUE
#ACT
READRANDOMSTR
.\QUESTDIARY\变量\颜色.TXT S15
#SAY
你所获得的颜色是:$STR(S15)
;颜色.TXT 文本内字符 获取几率(数字越大,获取该行字符几率越小)
字符1 11
文字2
88
;==========================================
[@DELSKILL]
#IF
TRUE
#ACT
READRANDOMLINE
.\QUESTDIARY\变量\颜色.TXT S15
#SAY
你所获得的颜色是:$STR(S15)
;颜色.TXT 文本内字符 随机获取
字符1
文字2
;==========================================
新增加命令:READRANDOMSTR
//字符串1|权重1,字符串2|权重2,字符串3|权重3 (S A) 变量
#IF
#ACT
READRANDOMSTR 圣域蝙蝠|5,圣域勇士|5,圣域魔蝎|5,圣域精灵|5,圣域稻草人|5,
S10 // 权重为数字,数值越大,对应的字符串获取到的几率就越大,注意:所有权重总和不要超过21亿!
结果:<$STR(S10)>
不建议使用读取文本,直接填写装备名称!权重越小越难!
相关检查字符串是否在指定文件中:
CHECKSTRINGLIST
;==========================================
功能:特修人物所有装备
格式:REPAIRALL
;==========================================
[@SUPERREPAIR]
#IF
CHECKLEVELEX
> 0
#ACT
REPAIRALL
SENDMSG 5
[提示]:看你那身破烂东西.现在给你全部修好了.
;==========================================
;==========================================
功能:跳转,延时执行脚本
格式:
DELAYGOTO S LABEL
DELAYCALL S LABEL
参数一S单位为毫秒.参数二LABEL为跳转的脚本段,以上两个命令都可以进行跳转和延时执行脚本。
;==========================================
[@MAIN]
<延时执行脚本/@DELAYCALL> <清除延迟
/@CLEARDELAYGOTO>\\<返回/@MAIN>
[@DELAYCALL]
#IF
TRUE
#ACT
DELAYGOTO 3
@DELAYCALL1
#SAY
请稍候....
[@DELAYCALL1]
#ACT
GIVE 金币 100
[@CLEARDELAYGOTO]
#IF
TRUE
#ACT
CLEARDELAYGOTO
#SAY
延迟跳转已清除\
<返回/@MAIN>
;==========================================
;==========================================
功能:系统随机给一个验证码<$RANDOMNO>.可用于防挂机等等功能噢.
格式:SETRANDOMNO
让系统随机给一个验证码.
CHECKRANDOMNO
检测输入的字符是否为系统给的随机验证码.
;==========================================
举例:
;==========================================
[@MAIN]
#IF
CHECKLEVELEX
>
0
#ACT
SETRANDOMNO
#SAY
<输入验证码/@@CHECKNO>:<$RANDOMNO>
[@@CHECKNO]
#IF
CHECKRANDOMNO
#ACT
SENDMSG
5 [提示]:验证码输入正确.
CLOSE
#ELSEACT
SENDMSG 5
[提示]:验证码输入错误.
CLOSE
;==========================================
功能:SEARCHONSALEITEM //物品名 出售类型(元宝/金币) 返回最高个数(1-10)
//返回信息自动以SENDMSG形式发送给玩家
;==========================================
举例:
#IF
CHECKGAMEGOLD
~ 1
SEARCHONSALEITEM 开天 元宝 3
#ACT
GAMEGOLD - 1
#ELSEACT
SENDMSG 5
找不到指定的物品
;==========================================
功能:绑定装备的控制在
功能设置->全局设置
;==========================================
举例:
;==========================================
#IF
TRUE
#ACT
QUERYBINDITEM
0 //弹出绑定窗口
QUERYBINDITEM 1 //弹出解绑窗口
RESUMEBINDITEM
//允许继续执行绑定
RESUMEUNBINDITEM //允许继续执行解绑
[@ITEMBINDING] //进行绑定之前,做检测用
[@ITEMUNBINDING]
//进行解绑之前,做检测用
[@ITEMBINDED] //绑定成功后
[@ITEMUNBINDED] //解绑成功后
[@BIND]
#IF
TRUE
#ACT
QUERYBINDITEM 0
[@UNBIND]
#IF
TRUE
#ACT
QUERYBINDITEM 1
[@ITEMBINDING]
#IF
CHECKGAMEGOLD ?
10
#ACT
RESUMEBINDITEM
#ELSESAY
你元宝不够!\ \<退出
/@EXIT>
[@ITEMUNBINDING]
#IF
CHECKGAMEGOLD ?
10
#ACT
RESUMEUNBINDITEM
#ELSESAY
你元宝不够!\ \<退出
/@EXIT>
[@ITEMBINDED]
物品绑定到帐号成功!\ \<退出
/@EXIT>
[@@BUHERO]
#ACT
DELAYCALL 10
~$CREATEHERO
[@CREATEHERO_WARR_MAN]
#ACT
CREATEHERO 0
0
[@CREATEHERO_WARR_WOM]
#ACT
CREATEHERO 0
1
[@CREATEHERO_WIZA_MAN]
#ACT
CREATEHERO 1
0
[@CREATEHERO_WIZA_WOM]
#ACT
CREATEHERO 1
1
[@CREATEHERO_TAOS_MAN]
#ACT
CREATEHERO 2
0
[@CREATEHERO_TAOS_WOM]
#ACT
CREATEHERO 2 1
//返回消息
[@CREATEINGHERO]
系统正在接受申请,请稍候……\
\
<关闭/@EXIT>
[@HAVEHERO]
您已经有英雄了。\ \
<关闭/@EXIT>
[@SETHERONAME]
请先给您的英雄取名字。\
\
<关闭/@EXIT>
[@HAVEHERO]
您已经有英雄了。\ \
<关闭/@EXIT>
[@DELMYHERO]
#ACT
DELETEHERO
//返回消息
[@NOTHAVEHERO]
你没有英雄。\
\
<关闭/@EXIT>
[@LOGOUTHEROFIRST]
请将英雄设置下线!\
\
<关闭/@EXIT>
[@DELETEHEROOK]
删除英雄成功。\
\
<关闭/@EXIT
注意:QFUNCTION 添加如下设置
[@@RECALLPLAYER]
#IF
CHECKHEROONLINE
#ACT
CLOSE
MESSAGEBOX
请先设置您的英雄下线!
#ELSEACT
CLOSE
RECALLPLAYER
[@HERONAMEFILTER]
英雄名字中包含禁用字符\<关闭/@EXIT>
[@CREATEHEROOK]
#IF
#ACT
GIVE 火龙之心
1
SENDMSG 0
恭喜:玩家「<$USERNAME>」成功带领英雄。
#SAY
创建英雄成功\<关闭/@EXIT>
[@HERONAMEEXISTS]
英雄名字已经存在\<关闭/@EXIT>
[@HEROOVERCHRCOUNT]
你的帐号角色过多\<关闭/@EXIT>
[@CREATEHEROFAIL]
创建英雄失败\<关闭/@EXIT>
[@CREATEHEROFAILEX]
创建英雄失败,请稍候重试\<关闭/@EXIT>
;==========================================
功能:CREATEHEROEX
//申请多英雄(新)。
格式:CREATEHEROEX
,申请储备英雄,参考脚本附件:申请英雄.TXT
;==========================================
举例:
;==========================================
[@@BUHEROEX]
#IF
TRUE
#ACT
DELAYCALL
10 ~$CREATEHEROEX
[~$CREATEHEROEX]
选择英雄职业:\
\
<男战士/@CREATEHERO_WARR_MAN1>
<女战士
/@CREATEHERO_WARR_WOM1>\<男法师/@CREATEHERO_WIZA_MAN1> <女法师
/@CREATEHERO_WIZA_WOM1>\<男道士/@CREATEHERO_TAOS_MAN1> <女道士
/@CREATEHERO_TAOS_WOM1>\
\
<关闭/@EXIT>
[@CREATEHERO_WARR_MAN1]
#ACT
CREATEHEROEX
0 0
[@CREATEHERO_WARR_WOM1]
#ACT
CREATEHEROEX 0
1
[@CREATEHERO_WIZA_MAN1]
#ACT
CREATEHEROEX 1
0
[@CREATEHERO_WIZA_WOM1]
#ACT
CREATEHEROEX 1
1
[@CREATEHERO_TAOS_MAN1]
#ACT
CREATEHEROEX 2
0
[@CREATEHERO_TAOS_WOM1]
#ACT
CREATEHEROEX 2 1
;==========================================
参数:RECALLHERO
//召唤英雄,参数不为空时回收英雄
;==========================================
举例:
;==========================================
[@自动召唤出英雄]
#IF
HAVEHERO
#ELSEACT
BREAK
#IF
#ACT
RECALLHERO
BREAK
[@自动收回英雄]
#IF
HAVEHERO
#ELSEACT
BREAK
#IF
#ACT
RECALLHERO
1
BREAK
;==========================================
功能:获取对面人物名称。
格式:GETPOSENAME
变量
;==========================================
#IF
TRUE
#ACT
GETPOSENAME
S0
SENDMSG 5 你对面的人物是:
<$STR(S0)>
;==========================================
;==========================================
查看颜色表
;==========================================
功能:更改人物名称颜色
格式:CHANGENAMECOLOR
颜色代码(0-255)
;==========================================
[@CHANGENAMECOLOR]
#IF
TRUE
#ACT
CHANGENAMECOLOR
2
#SAY
你的颜色已改变。
;==========================================
;==========================================
功能:更改头发类型
格式:HAIRSTYLE
0/1
;==========================================
[@HAIRSTYLE]
#IF
TRUE
#ACT
HAIRSTYLE
0
;==========================================
[@HAIRSTYLE1]
#IF
TRUE
#ACT
HAIRSTYLE
1
;==========================================
;==========================================
功能:设置穿人穿怪。
格式:THROUGHHUMMS参数一M为模式[-1=恢复(;注意-1没空格)/0=穿人穿怪/1=穿怪/2=穿人].参数二S为时间.单位秒
;==========================================
举例:
;==========================================
#IF
TRUE
#ACT
THROUGHHUM
0
1800
#SAY
1800秒内你可以穿人穿怪了
;==========================================
举例:
;==========================================
#IF
TRUE
#ACT
THROUGHHUM
1
1200
#SAY
1200秒内你可以穿怪了
;==========================================
举例:
;==========================================
#IF
TRUE
#ACT
THROUGHHUM
2
1200
#SAY
1200秒内你可以穿人了
;==========================================
;==========================================
功能:设置攻击力倍数
格式:POWERRATE
倍率 有效时间
倍率:攻击、魔法、道术倍数,倍数除以100为真正的倍率(200 为 2 倍,150 为1.5倍)
支持变量操作
;==========================================
[@POWERRATE]
#IF
CHECKJOB
WARRIOR
#ACT
POWERRATE 1000 600
#SAY
您当前攻击伤害倍数为 10倍,有效时间
600秒。
#ACT
BREAK
#IF
CHECKJOB WIZARD
#ACT
POWERRATE 1000
600
#SAY
您当前魔法伤害倍数为 10倍,有效时间 600秒。
#IF
CHECKJOB
TAOIST
#ACT
POWERRATE 1000 600
#SAY
您当前道术伤害倍数为 10倍,有效时间 600秒。
;==========================================
;==========================================
功能:个人定时功能类似机器人!
格式:SETSCTIMER
ID(0-15) 定时间隔(秒)
说明:定时器脚本位于QMANAGE.TXT里,定时器对应的为[@ONTIMER0] [@ONTIMER1]
[@ONTIMER2] ...
[@ONTIMER14]
;==========================================
举例:开启定时时器
;==========================================
#IF
TRUE
#ACT
SETSCTIMER
0 20
#SAY
你已经开始定时器系统每20秒触发一次QMANAGE.TXT里[@ONTIMER0]段
[@ONTIMER0]
#IF
TRUE
#ACT
SENDMSG 5
你目前位于%M的(%X:%Y)
;==========================================
举例:停止定时器
;==========================================
#IF
TRUE
#ACT
KILLSCTIMER
0
#SAY
0号定时器已经停止
;==========================================
;==========================================
功能:设置人物属性翻倍。(0:防御力
1:魔御力 2: 攻击力 3:魔法力 4:道术
格式:STATUSRATE 类别 倍率 时间
(倍率为整数,时间的单位为秒)
;==========================================
[@MAIN]
#IF
TRUE
#ACT
STATUSRATE
0 2
60
#SAY
恭喜,你获得了60秒,防御属性翻倍的奖励。
;==========================================
;==========================================
功能:设置人物属性附加。(0=HP, 1= MP, 2=防御, 3= 魔御, 4= 攻击, 5= 魔法, 6=
道术)
格式:ABILITYADD 属性(0~6)点数(0~65535)
时间(秒)
;==========================================
举例1:
;==========================================
比如原来人物防御:5-10
使用:ABILITYADD
2 123 20,后人物防御为:5+(123/2)-10+123=66-133
//这里下限附加一半,上限全部附加(HP,MP除外)
;==========================================
举例2:
;==========================================
#IF
TRUE
#ACT
MOV M1
$ABILITYADDPOINT0
#IF
LARGE M1 0
#ACT
MOV M0
$ABILITYADDTIME0
INC M0 100
ABILITYADD 0 $ABILITYADDPOINT0
$STR(M0)
SENDMSG XX
HP附加增加了100秒
;==========================================
配套变量:
<$ABILITYADDPOINT0>~<$ABILITYADDPOINT6>
//附加点数
<$ABILITYADDTIME0>~<$ABILITYADDTIME6> //附加时间(秒)
;==========================================
;==========================================
功能:设置人物杀怪经验倍数
格式:KILLMONEXPRATE
倍率 有效时间 倍率 为杀怪经验倍数,倍数除以100为真正的倍率(200 为 2 倍经验,150 为1.5倍)
;==========================================
[@KILLMONEXPRATE]
#IF
TRUE
#ACT
KILLMONEXPRATE
1000 600
#SAY
您当前杀怪经验倍数为 10倍,有效时间
600秒。
;==========================================
;==========================================
功能:自动穿背包中的装备,TAKEON
物品名称 装备位置
格式:查看装备位置
;==========================================
功能:在线泡经验(直接得到经验)。
举例:
;==========================================
#IF
CHECKLEVELEX
> 30
#ACT
SETAUTOGETEXP 1 10 1 3
命令 时间 经验
是否安全区(0为任何地方)地图号(任何地图请不用填)
;==========================================
功能:增加NPC命令控制人物下线是否自动脱机,如下:
示例:此命令只为NPC命令!可以放在任何脚本里使用!建议放在登陆脚本里进行执行!
比如:D:\MIRSERVER\MIR200\ENVIR\MAPQUEST_DEF\QMANAGE.TXT
一开始就执行!
[@LOGIN]
#IF
TRUE
#ACT
SETOFFLINEPLAY
ON
SENDMSG 7 你现在已经开启下线安全区自动脱机功能!
[@LOGIN]
#IF
TRUE
#ACT
SETOFFLINEPLAY
OFF
SENDMSG 7 你现在没有开启下线安全区自动脱机功能!
功能:设置人物下线触发脚本
格式:SETOFFLINEFUNC
@LABEL
参数一@LABEL为QFUNCTION.TXT文本中指定的脚本段落.设置后下线将触发[@LABEL]如参数一留空则为取消下线触发.
;参数三 < =
0时,无限时间脱机挂着,否则为脱机的时间限制(分钟),超过该时间踢下线
;==========================================
注意:QMANAGE.TXT人物上线执行此功能:
[@LOGIN]
#IF
#ACT
SETOFFLINEFUNC @OFFLINE
;==========================================
QFUNCTION.TXT文本中
[@OFFLINE]
#IF
TRUE
#ACT
OFFLINE
60 3000000 1440
BREAK
;==========================================
;==========================================
功能:设置人物延迟跳转地图!
说明:
BATCHDELAY
//先设置秒延迟,作为ADDBATCH延迟多少的参数
ADDBATCH
//就会按前一条BATCHDELAY延迟多久后飞地图
BATCHMOVE
//延迟+随机飞上面增加的地图
;==========================================
举例:
;==========================================
#IF
DAYTIME
NIGHT
#ACT
SENDMSG 7 晚上进入祖玛地图,小心怪物异常凶猛!
BATCHDELAY
111
ADDBATCH D5071
BATCHDELAY 222
ADDBATCH
D5072
BATCHDELAY 333
ADDBATCH
D5073
BATCHMOVE
;==========================================
功能:设置人物离线挂机打怪
也可用于假人!
格式:OFFLINEPLAYEX
99999
;==========================================
[@LOGIN]
#IF
COMPVAL <$USERID> ^
"1111111111"
#ACT
SENDMSG 1 账号:<$USERID>不执行[@LOGIN]脚本
BREAK
#IF
CHECKJOB
WARRIOR
#ACT
CLEARSKILL
SETRANDOMNO 16
ADDSKILL 基本剑术
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 刺杀剑术
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 烈火剑法
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 刺杀剑术
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 半月弯刀
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 野蛮冲撞
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 逐日剑法
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 开天斩
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 追心刺
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 横扫千军 <$RANDOMNO>
GOTO @WARRIOR
#IF
CHECKJOB
WIZARD
#ACT
CLEARSKILL
SETRANDOMNO 16
ADDSKILL 雷电术
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 冰咆哮
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 流星火雨
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 疾光电影
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 魔法盾
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 灭天火
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 抗拒火环
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 凤舞祭
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 双龙破 <$RANDOMNO>
GOTO
@WIZARD
#IF
CHECKJOB
TAOIST
#ACT
CLEARSKILL
SETRANDOMNO 16
ADDSKILL 治愈术
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 幽灵盾
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 神圣战甲术
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 施毒术
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 灵魂火符
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 召唤神兽
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 气功波
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 三焰咒
<$RANDOMNO>
SETRANDOMNO 16
ADDSKILL 八卦掌 <$RANDOMNO>
GOTO
@TAOIST
[@WARRIOR]
#IF
GENDER MAN
#ACT
GIVE
重盔甲(男)
TAKEON 重盔甲(男)
#ELSEACT
GIVE 重盔甲(女)
TAKEON
重盔甲(女)
#IF
#ACT
GOTO @FINALLY
[@WIZARD]
#IF
GENDER MAN
#ACT
GIVE
魔法长袍(男)
TAKEON 魔法长袍(男)
#ELSEACT
GIVE 魔法长袍(女)
TAKEON 魔法长袍(女)
#IF
#ACT
GOTO @FINALLY
[@TAOIST]
#IF
GENDER MAN
#ACT
GIVE
灵魂战衣(男)
TAKEON 灵魂战衣(男)
#ELSEACT
GIVE 灵魂战衣(女)
TAKEON
灵魂战衣(女)
#IF
#ACT
GOTO @FINALLY
[@FINALLY]
#IF
RANDOM 20
#ACT
GOTO
@R0
#ELSEIF
RANDOM 19
#ACT
GOTO @R18
#ELSEIF
RANDOM
18
#ACT
GOTO @R17
#ELSEIF
RANDOM 17
#ACT
GOTO
@R16
#ELSEIF
RANDOM 16
#ACT
GOTO @R15
#ELSEIF
RANDOM
15
#ACT
GOTO @R14
#ELSEIF
RANDOM 14
#ACT
GOTO
@R13
#ELSEIF
RANDOM 13
#ACT
GOTO @R12
#ELSEIF
RANDOM
12
#ACT
GOTO @R11
#ELSEIF
RANDOM 10
#ACT
GOTO
@R09
#ELSEIF
RANDOM 9
#ACT
GOTO @R08
#ELSEIF
RANDOM
8
#ACT
GOTO @R07
#ELSEIF
RANDOM 7
#ACT
GOTO
@R06
#ELSEIF
RANDOM 6
#ACT
GOTO @R05
#ELSEIF
RANDOM
5
#ACT
GOTO @R04
#ELSEIF
RANDOM 4
#ACT
GOTO
@R03
#ELSEIF
RANDOM 3
#ACT
GOTO @R02
#ELSEACT
GOTO @R01
[@R0]
#ACT
MAP D618
OFFLINEPLAYEX 99999
[@R18]
#ACT
MAP D602
OFFLINEPLAYEX 99999
[@R17]
#ACT
MAP 2
OFFLINEPLAYEX 99999
[@R16]
#ACT
MAP D023
OFFLINEPLAYEX 99999
[@R15]
#ACT
MAP D022
OFFLINEPLAYEX 99999
[@R14]
#ACT
MAP D012
OFFLINEPLAYEX 99999
[@R13]
#ACT
MAP D618
OFFLINEPLAYEX 99999
[@R12]
#ACT
MAP D617
OFFLINEPLAYEX 99999
[@R11]
#ACT
MAP D612
OFFLINEPLAYEX 99999
[@R10]
#ACT
MAP D604
OFFLINEPLAYEX 99999
[@R09]
#ACT
MAP D601
OFFLINEPLAYEX 99999
[@R08]
#ACT
MAP D416
OFFLINEPLAYEX 99999
[@R07]
#ACT
MAP D604
OFFLINEPLAYEX 99999
[@R06]
#ACT
MAP D614
OFFLINEPLAYEX 99999
[@R05]
#ACT
MAP D615
OFFLINEPLAYEX 99999
[@R04]
#ACT
MAP D616
OFFLINEPLAYEX 99999
[@R03]
#ACT
MAP D617
OFFLINEPLAYEX 99999
[@R02]
#ACT
MAP D618
OFFLINEPLAYEX 99999
[@R01]
#ACT
MAP D711
OFFLINEPLAYEX 99999
===================================================================================================
支持多层次的循环嵌套(见下发自定义技能示例)
格式:
#for (游标变量 = 初始值表达式, 游标变量 < 检测值, 游标变量 +
步进值) // 循环开始和声明
;
中间是完整的#if/#act/#elseact原脚本流程
#if
; ...
#act
; ..
#elseact
; ...
#~for // 循环结束标识
; 初始声明:即【游标变量 =
初始值表达式】部分,“游标变量”的初始化,“初始值表达式”支持单个整数或变量,或者一个运算表达式,如:游标变量 = M_SPLIT_CNT -
1(注意写法,中间留有空格)
; 条件声明:即【游标变量 <
检测值】部分,循环条件限制,“游标变量”小于“检测值”会继续循环,否则将终止循环,“检测值”可以是只读的整数或整数变量,比较符号支持:<小于、>大于、=等于、!不等于、?大于等于
; 步进声明:即【游标变量 +
步进值】部分,游标步进方法,“步进值”支持整数或整数变量,运算符号支持:+加、-减、*乘、/除、%取模、=等于
;
“游标变量”建议实用D0~99,M0~99这种非自由定义的整数变量,效率较好
例:
[@loopex]
; 这里没有写#if
true,不需要,程序会自动识别
#act
;
分解出阿拉伯数字,剩余部分是中文汉字
RegExSplitCapture 一1二2三3四4五5六6七7八8九
[0-9]+
SendMsg 7
剩余字的符串数量:<$STR(M_SPLIT_CNT)>
SendMsg 7 阿拉伯数字的数量:<$STR(M_MATCHED_CNT)>
; 循环游标D99从0初始化,至M_SPLIT_CNT -
1取S_SPLIT_STRS[n]的值,每次步进1
#for (D99 = 0, D99 <
M_SPLIT_CNT, D99 + 1)
#if
;
此次更新同时会自动补全true,可以忽略
; true
#act
SendMsg 5
S_SPLIT_STRS步进1:<$STR(S_SPLIT_STRS[<$STR(D99)>]>
#~for
; 循环游标D99从0初始化,至M_MATCHED_CNT -
1取S_SPLIT_STRS[n]的值,每次步进1
#for (D99 = 0, D99 <
M_MATCHED_CNT, D99 + 1)
#if
#act
SendMsg 6
S_MATCHED_STRS步进1:<$STR(S_MATCHED_STRS[<$STR(D99)>]>
#~for
; 倒退循环,初始D99 = M_SPLIT_CNT - 1,D99
大于等于 0,每次步退1
#for (D99 = M_SPLIT_CNT - 1, D99 ? 0, D99 -
1)
#if
#act
;
这里使用<$LoopCursor>变量,效率稍高些,等同于<$STR(D99)>
SendMsg 7
S_SPLIT_STRS步退1:<$STR(S_SPLIT_STRS[<$LoopCursor>]>
#if
;
游标到6后中断掉循环,会跳出循环继续执行(#~for之后),如果使用Break,则后续不再执行
CompVal
<$LoopCursor> = 6
#act
BreakLoop
#~for
;
上个循坏之外继续执行
SendMsg 7 上个循坏之外继续执行...
; 自己定义跳出循环变量
Mov M99
1
; 先定义一个无限循环(不建议,除非你熟悉脚本的写作)
#for
(D99 = 0, D99 < 1, D99 - 0)
;
运算M99
#if
#act
Inc M99 10
; 循环10万次后中断循环
#if
Equal M99 100000
#act
SendMsg 7
循环中断于<$STR(M99)>...
BreakLoop
#~for
#if
#act
SendMsg 7
循环结束<$STR(M99)>...
增加NPC脚本的区间选择支持,#case和#~case,配对使用,内部支持的#if,#act,#elseact...流程,仅单层
格式和示例:
[@TestCase]
#act
; 产生一个0~99之间的随机数字
SetRandomNO
100
Mov M99 <$RANDOMNO>
#case (M99) //
case开始,括号里的声明仅一个整数变量(Mxx,Dxx...等或此类自定义变量)
#0: //
选择器常量声明,“#”开头,后面是单个数字,以“:”结束
#if //
一个普通的#if/#act/#elseact流程
#act
SendMsg 5
命中:<$STR(M99)>
#1~9: //
选择器常量声明,“#”开头,后面可以是数字区间,以“:”结束,下同
#if
#act
SendMsg 5
<$STR(M99)>在1~9之间
#10~89:
#if
#act
SendMsg 5
<$STR(M99)>在10~99之间
#86,88,91~93: //
以“,”分开多个数字区间的写法
#if
#act
SendMsg 5
<$STR(M99)>在86,88,91~93之间
#def: //
默认选择,如果上面的数字区间均未命中,则默认选择此流程;可以不写,但是都未命中则不执行任何流程
#if
#act
SendMsg 5
<$STR(M99)>其他数字,默认执行此选择
#~case // case结束标识
注意:不允许在#case里执行#for循环,但是允许在#for里包含#case
注意:数字区间禁止重叠,如果重叠加载NPC脚本时会提示,同时重叠的数字区间将失效!