2023年11月27日发(作者:)注意:

行者脱机挂L2Walker 10.9.3版的特性:不支持以“!”开头的指令。行者对标点符号(叹号! 逗号, 小括号() 中括号[] 大括号{} 大于> 小于< 等于= ... ...等等)是非常敏感的,必须用“输入法的半角符号”。





脚本编辑说明:

脚本一个指令必须占一行,()前是指令名称,()中的是指令参数,没有参数可以不用写().

指令名称可以使用大小写.



Label()

标签Label(XX),LABEL(检测打怪圈),标签下面为若干脚本命令。



Jmp()

跳转到指定标签Jmp(XXX),如Jmp(检测打怪圈),跳到并执行此条目,实现控制脚本执行流程的作用。



Call()

调用函数Call(XXX),如call(开始打怪),执行一段指定代码,

与Jmp不同执行完后会后会执行Call语句后的一条语句,Call的函数后面必须带Return()返回指令。



Exit()

退出运行脚本。



Pause()

暂停运行脚本。





条件判断指令,如果判断正确会执行下一条指令或下面跟着{}中的指令,否则会跳过下一条指令

或跳过下面跟着{}中的指令继续执行

例:

ITEMCOUNT(回城卷,<,1)

{

MSG(身上没有回城卷,使用走回城)

JMP(走回城)

}

USEITEM(回城卷)

DELAY(5000)







ITEMCOUNT(回城卷,>=,1)

JMP(使用回城卷回城)

MSG(没有回城卷,走回城)





描述 命令 举例





使用物品 useitem(名称[ID=XXX]) USEITEM(返回卷轴[ID=736])

无备注





脚本信息 msg(信息) MSG(死亡回城!)

括号中的信息只有自己可见





开始战斗 set(fightstart) SET(FIGHTSTART)

自动开始战斗





结束战斗 set(fightstop) SET(FIGHTSTOP)

自动结束战斗





脚本延时 delay(N) DELAY(1000)

延时执行脚本下一步,单位:毫秒.例子中为延时1秒





条目 label(XX) LABEL(检测打怪圈)

条目下面为若干脚本命令





跳至 jmp(XXX) JMP(检测打怪圈)

跳到并执行此条目,起到连接脚本动作的作用





移动到 moveto(X,Y,Z) MOVETO(-96716,255766,-3443)

移动到坐标X,Y,Z





选定NPC npcsel(NPC名[ID=XXX]) NPCSEL(杰克森[ID=7002])

选定NPC





和NPC对话 npcdlg(NPC名[ID=7002]) NPCDLG(杰克森[ID=7002])

与NPC对话





选定对话项目 dlgsel(XX) DLGSEL(出售)

选定和NPC对话时出现的某一

个项目





检测人物属性 charstatus(xxxxxx) CHARSTATUS(WEIGHT,>=,45%)

例子中的是检测负重超过45%,还有检测其他的命令





检测点 posoutrange(x,y,z,范围) POSOUTRANGE(-96716,255766,-3443,3000)

检测是否在此范围之外





检测范围内 posinrange(x,y,z,范围) POSINRANGE(-96716,255766,-3443,3000)

检测是否在此范围之内





死亡回城 gohome() GOHOME()

和charstatus一起用可以达到死亡自动回城的效果





说话 say(文本) SAY(早) 其他玩家可见





退出运行脚本 exit() EXIT()

退出脚本的运行,如果退出命令前没有条件激活跳到其他label.则脚本停止





暂停运行脚本 pause() PAUSE()

暂停运行脚本的段落





判断包含文字 strindlg(文字) STRINDLG(蘑菇)

判断NPC对话中是否有特定的文字,如果有,即执行下面的指令,用法同ITEMCOUNT(),多用于判断是否接过任务用.





判断不包含文字 stroutdlg(文字) STROUTDLG(蘑菇)

对应于STRINDLG,判断对话中有无特定的文字,如果没有,即执行下面的指令





人物站立或坐下 ChangeWaitType(x) ChangeWaitType(1)

x = 0 坐

x = 1 站



人物状态判断,为百分比

CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND],[>=|>|==|!=|<|<=],num)

CharStatus(STAND,==,0)

CHP,CMP为人物当前实际值

WEIGHT为负重百分比

LV为人物等级

RACE为人物种族(人类=0,精灵=1,黑暗精灵=2,半兽人=3,矮人=4)

STAND判断是否站立





判断自身是否有某种状态,有则执行大括号内的指令,没有则跳过大括号内的指令,例如:

CharBuffs(大地之歌[ID=264])

{

//若有,则执行这里。

}

//若没有则直接执行这里。







动作指令:

MOVETO(x,y,z)

说明:移动到x,y,z



NPCSEL(名字[ID=x])

说明:选择NPC



NPCDLG(名字[ID=x])

说明:跟NPC对话



DLGSEL(名称)

说明:对话选择



GOHOME()

说明:死亡回城



SAY(文字)

说明:一般说话



MSG(文字)

说明:外挂提示,别人看不到



UseItem(名字[ID=x])

说明:使用道具



BuyItem(名字[ID=x],数量)

说明:购买物品

例1:BuyItem(返回卷轴[ID=736],2)

例2:BuyItem(返回卷轴[ID=736],2;复活卷轴[ID=737],3)



SellItem(名字[ID=x],数量)

例1:SellItem(返回卷轴[ID=736],2)

例2:SellItem(返回卷轴[ID=736],

2;复活卷轴[ID=737],3)

例3:SellItem(*)卖出道具设定中设为"卖"的全部物品



SaveItem(名字[ID=x],数量)

例1:SavelItem(返回卷轴[ID=736],2)

例2:SavelItem(返回卷轴[ID=736],2;复活卷轴[ID=737],3)

例3:SavelItem(*)保存道具设定中设为"存"的全部物品



LoadItem(名字[ID=x],数量)

例1:LoadlItem(返回卷轴[ID=736],2)

例2:LoadlItem(返回卷轴[ID=736],2;复活卷轴[ID=737],3)



ChangeWaitType(x)

人物站立或坐下

x = 0 坐

x = 1 站



条件指令:

StrInDlg(对话文字)

说明:用来判断和NPC对话的对话框中是否有指定的文字

例:

NPCSEL(克普[ID=1007534])

NPCDLG(克普[ID=1007534])

DLGSEL(任务)

STRINDLG(答应委托)

{

DLGSEL(答应委托)

JMP(任务接完)

}

JMP(任务已经接过)



StrNotInDlg(对话文字)

说明:用来判断和NPC对话的对话框中是否没有指定的文字

例:

NPCSEL(克普[ID=1007534])

NPCDLG(克普[ID=1007534])

DLGSEL(任务)

STRNOTINDLG(答应委托)

{

MSG(已经接过任务)

JMP(已接任务)

}

DLGSEL(答应委托)





CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND],[>=|>|==|!=|<|<=],num)

说明:人物状态判断,为百分比

CHP,CMP为人物当前实际值

WEIGHT为负重百分比

LV为人物等级

RACE为人物种族(人类=0,精灵=1,黑暗精灵=2,半兽人=3,矮人=4)



PosInRange(x,y,z,range)

说明:检测人物当前坐标是否在以x,y,z为中心点range为半径的圆心中





PosOutRange(x,y,z,range)

说明:检测人物当前坐标是否在以x,y,z为中心点range为半径的圆心外

例:在脚本开头加入

PosOutRange(100,100,100,500)

{

MSG(请站在xxx附近开始)

EXIT()

}





ItemCount(名字[ID=x],[>=|>|==|!=|<|<=],count)

说明:比较人物身上指定名字或ID的道具数量是否满足条件





流程控制指令:

CALL(LABEL名称)

说明:调用LABEL标识的标签地址执行,执行完返回,必须要有RETURN指令

例:

CALL(下一步)

调用完成会继续执行下一步

...

EXIT()

LABEL(下一步)

...

RETURN





JMP(LABEL名称)

说明:跳转到LABEL标识的标签地址执行



RETURN()

说明:CALL调用时必须用这个返回



EXIT()

说明:结束脚本运行



DELAY(x)

说明:延迟x毫秒



PAUSE()

说明:暂停脚本的执行,提示信息给玩家,让玩家控制继续执行



LABEL(标签名)

说明:定义标签名,用来JMP或CALL



设置指令:

SET([FIGHTSTART|FIGHTSTOP])

说明:设置战斗开始或停止战斗

例:SET(FIGHTST

ART)//开始战斗

SET(FIGHTSTOP)//停止战斗



CharBuffs(保护盾[ID=1040])

说明:检查自身是否有某种状态



SET(L2WALKER,ENABLE|DISABLE)//启动、停止外挂一切自动使用的功能,脚本除外,脚本会正常运行

例:SET(L2WALKER,ENABLE)//启动外挂功能

SET(L2WALKER,DISABLE)//停止外挂功能



SET(RANGETYPE,RAND)//设置为“随机找怪”模式。



SET(RANGETYPE,STARTPOS,radii)//设置为“开始战斗为中心点找怪”模式。

例如:SET(RANGETYPE,STARTPOS,1500)//以开始战斗地点为中心点1500为半径,进行找怪



SET(RANGETYPE,DEFPOS,x,y,z,radii)//设置为“自定义中心点找怪”

例如:SET(RANGETYPE,DEFPOS,-48551,-60896,-3192,1400)//自定义“-48551,-60896,-3192”为中心点,1400为半径,进行找怪。



SET(RANGETYPE,DEFRANGE)//设置为“按自定义范围找怪”模式。

SET(RANGETYPE,DEFPATH)//设置为“按自定义路径找怪”模式。

SET(DEFRANGE,CLEAR)//清除自定义范围

SET(DEFRANGE,ADD,x,y,z)//添加自定义范围点

SET(DEFPATH,CLEAR)//清除自定义路径

SET(DEFPATH,ADD,x,y,z,radii)//添加自定义路径点







SET(MON,ATTACK|NOATTACK|ATTACKONE,Name[ID=n];Name1[ID=n];|*)

SET(ITEM,PICK|NOPICK|SAVE|NOSAVE|SELL|NOSELL|TRADE|NOTRADE,Name[ID=n];Name1[ID=n];|*)



SET(MON,NOATTACK,*)//设置不攻击所有怪物

SET(MON,ATTACK,塔尔克邪恶蜥蜴[ID=20573];塔尔克邪恶蜥蜴首领[ID=20574];奥耶玛夫[ID=20161];狩猎翼魔[ID=20241];豺狼卓越者[ID=20261])//设置只攻击设定的这几种怪物怪物