Previous topicNext topic
Help > BLUE引擎2021更新 >
新增NPC命令
==========================================================================================================
增加NPC命令:ClientPressKey 常规键 状态键               //让客户端模拟按下键盘键
                                                        //常规键:0~9,A-Z,F1~F24,~!@*...,ESC、UP、DOWN、HOME、END...等等
                                                        //状态键:0=无,1=Shift,2=Alt,4=Ctrl,复合键位将数字相加即可
             ClientPressKey A 6                         //切换地图可人玩家 ALT+A 自动挂机,0目前是客户端自动挂机复选框状态
             ClientPressKey F12                         //F12打开内挂、可任意设置快捷键
             ClientPressKey TAB                         //打开地图界面
             ClientPressKey ESC                         //物品显示开关
             ClientPressKey UP                          //聊天内容上翻
             ClientPressKey DOWN                        //聊天内容下翻
             ClientPressKey HOME                        //聊天内容顶部
             ClientPressKey END                         //聊天内容底部
==========================================================================================================
             ALT+V                                      //隐藏怪物尸体
             ALT+Enter                                  //切换窗口/全屏模式bug
             CTRL+O                                     //查看任务
             CTRL+P                                     //查看组队
             CTRL+T                                     //交易
             Ctrl+L                                     //历史记录
             Ctrl+K                                     //清理聊天栏
             CTRL+A                                     //切换下属攻击模式
             CTRL+Z                                     //显示或隐藏名称
             CTRL+X                                     //灵媒探索
             CTRL+H                                     //切换角色攻击模式
             CTRL+G                                     //打开行会界面
==========================================================================================================
增加NPC命令:ChangeRevivalTime +/-/= 毫秒               //修改个人每次复活间隔时间(非下次复活时间),可以使用$REVIVALCD查看可复活等待秒数
增加NPC命令:ChangeTeleportTime +/-/= 毫秒              //修改个人每次传送间隔时间(非下次传送时间),可以使用$TELEPORTCD查看可传送等待秒数,禁止频繁使用
增加NPC命令:ChangeAbilMakeStoneRate +/-/= 几率(1~255)  //修改个人石化能力几率,数字越大石化几率“越小”
增加NPC命令:ChangeAbilMakeStoneTime +/-/= 秒数(1~59)   //修改个人石化能力时间,数字越大石化时间“越长”
增加NPC命令:RetBoxItem 0~9                              //将物品框物品返回背包
增加NPC命令:CheckApprFilter 位置(0~7) 开关(隐藏0/显示1) //检测某个外观是否开启显示,位置信息参考ChangeApprFilters  注:待定位置 4~7
增加NPC命令:NewStat 统计ID                              //创建一个自定的统计信息
增加NPC命令:#for和#~for,                               //脚本的循环支持,配套NPC变量:<$LoopCursor>、配套NPC执行命令:BreakLoop,循环内部支持完整的#if,#act,#elseact...流程,
                                                           用于中断当前的循环层,并非整个字段中断;整个字段中断仍然使用Break
增加NPC命令:                                            //脚本的区间选择支持,#case和#~case,配对使用,内部支持的#if,#act,#elseact...流程,仅单层
增加NPC命令:CompVal 变量 < 10 int                       //第4参数为 int 表示以数字类型比对,str 表示以字符串进行比对,f时,支持浮点数比较
             CompVal <$PropRate[3]> > 1.5 f
增加NPC命令:
             CliProgBar 6500 这是提示信息                //在客户端显示简单的进度条,参数1是倒计时时间(毫秒),参数2是提示文字
             CliProgBar 0                                //关闭进度条
==========================================================================================================
增加NPC命令:MESSAGEBOX                                 //支持颜色COLOR=、图片PIC= 等 不支持鼠标事件,需要更新客户端支持
举例:
#ACT
SetRandomNO 5592405 16777215
MESSAGEBOX "常规文字,<COLOR=clSkyBlue 天蓝色文字,><COLOR=#<$RANDOMNO> 随机颜色文字>"
==========================================================================================================
增加设置物品描述NPC命令:SetItemDesc 物品ID 描述 // 当“描述”为空时将删除对应物品ID的描述,也可以使用Hash命令操作;需要客户端配套,仅AC客户端支持该功能!
==========================================================================================================
CHANGEEVALPROPADDRATE // +/-/= 数值(0~65535)鉴定普通属性数值附加百分比,存库,DBS、客户端需配套!
==========================================================================================================
LOADDUMMY             //假人命令:LOADDUMMY 账号 角色名,或者只有一个参数:账号|角色名,或账号:角色名,别再用FAKEPLAYER加载200个假人再踢掉199个的方式!
==========================================================================================================
OUTPUTMESSAGE         //文字信息,将文字信息输出到引擎日志
==========================================================================================================
ADDSHOWITEM           //背包/身上某物品ID或者留空 //留空表示使用当前的DLGITEMID,作用:添加/刷新某物品ID展示物品,之后可以实时使用$ITEM(物品ID)来展示物品,比如可用于装备属性变更后
                      //展示新属性的物品);注意:单独使用$ITEM(XX)只会在首次使用该物品ID时添加展示物品,不会强制刷新
==========================================================================================================
GOTO @XXX 1 "" 参数4 参数5 参数6 参数7 参数8 参数9 //参数4~9非空时,传输参数4~9内容到队员(包括自己)的$PARAM(4~9),参数2的用法请查阅之前更新内容
==========================================================================================================
添加针对A/S字符变量的NPC命令:INS S1 位置(1~S1的长度+1) 插入字符 重复次数(默认1)
添加针对P/G/D/M/I/H等整数型变量的NPC命令:
增加预备合击的NPC命令:PrepareUniteHit,需英雄在线并且有合击技能,预备后如果有目标会立即释放合击
==========================================================================================================
AND,OR,XOR,NOT运算,COMPVAL支持与运算(&号)比较,这组操作相比下面的命令会比较晦涩难懂,但是一次可以批量开关;
针对0~31位的操作和比较:SETBIT,UNSETBIT,FLIPBIT,ISBITSET,第二参数表示第几位(0~31)
结合以上命令可以给一个INT类型的整数设置32个开关,节省变量的开销,有关操作请上网查阅。
// AND,OR,XOR,NOT,COMPVAL 例子:
[@OR]
#ACT
OR P1 5    // 或运算,1位和3位设置为1 (1是低1位,4是低3位,可以用计算器查看BIN数据)
SENDMSG 7 <$STR(P1)>
[@XOR]
#IF
COMPVAL <$STR(P1)> & 1
#ACT
XOR P1 1   // 异或运算,1位设置为0
#IF
COMPVAL <$STR(P1)> & 4 // 异或运算,3位设置为0
#ACT
XOR P1 4
[@CHECKSWITCHSTATE]
#IF
COMPVAL <$STR(P1)> & 1 // 于运算 比较
#ACT
SENDMSG 7 P1低1位二进制数值为1
#ELSEACT
SENDMSG 7 P1低1位二进制数值为0
#IF
COMPVAL <$STR(P1)> & 2
#ACT
SENDMSG 7 P1低2位二进制数值为1
#ELSEACT
SENDMSG 7 P1低2位二进制数值为0
#IF
COMPVAL <$STR(P1)> & 4
#ACT
SENDMSG 7 P1低3位二进制数值为1
#ELSEACT
SENDMSG 7 P1低3位二进制数值为0

// 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=5
GiveEx 聚灵珠 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] //解绑成功后
举例:
;==========================================
[@MAIN]
<绑定物品
/@BIND> <解绑物品 /@UNBIND>\ \<退出 /@EXIT>
[@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>
[@ITEMUNBINDED]
物品解除绑定成功!\ \<退出
/@EXIT>
;==========================================
(@@BUHERO)
[@MAIN]
创建英雄:<英雄取名
/@@BUHERO>\ \
删除英雄:<删除英雄
/@DELMYHERO>\ \
<退出
/@EXIT>
[@@BUHERO]
#ACT
DELAYCALL 10 ~$CREATEHERO
[~$CREATEHERO]
//CREATEHERO 职业 性别
请创建英雄:\ \
<男战士
/@CREATEHERO_WARR_MAN> <女战士 /@CREATEHERO_WARR_WOM>\
<男法师/@CREATEHERO_WIZA_MAN> <女法师 /@CREATEHERO_WIZA_WOM>\
<男道士/@CREATEHERO_TAOS_MAN> <女道士 /@CREATEHERO_TAOS_WOM>\ \
<关闭
/@EXIT>
[@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脚本时会提示,同时重叠的数字区间将失效!