石器SO 发表于 2022-5-2 21:02:29

内挂基础指令大全(部分可能待修正)

部分ASSA在内挂中确定被废弃的写法:
不等于的另类写法“<>”,在内挂中已经废弃,建议使用“!=”
waitdlg ,,2,xxx首个参数为空,内挂中首个参数必须存在,建议使用waitdlg ?,,2,xxx或waitdlg ?,0,2,xxx
label在调用时需要完整填写名称,内挂不支持模糊匹配label名
内挂部分指令大小写必须严格按照指令本身设定,错误的大小写指令无法正常




x,y表示坐标
' 号后面表示解释代码
小括号()内表示为解释脚本代码中文意思
中括号[]内表示为可选代码,实际编写脚本的时候可以不用上去
大括号{}内表示一定要用上的代码,实际编写脚本的时候不用上去会出错
这里所说的时间单位为S/秒,delay (延时)命令除外

∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【say】(说话)【print】(显示)指令∽∽∽∽∽∽∽∽∽∽∽∽∽
say说话内容[,color]封包说话 (56字节长度)(0=白,1=蓝绿,2=紫红,3=蓝,4=黄,5=绿,6=深红,7=灰,8=灰蓝,9=灰绿)

print显示内容, [,color]屏显 (56字节长度)
(0=白,1=蓝绿,2=紫红,3=蓝,4=黄,5=绿,6=深红,7=灰,8=灰蓝,9=灰绿)
例子:
say 感谢你使用石器so脚本
say 感谢你使用石器so脚本,4 '这里说出来的话是显示为黄色的:感谢你使用石器so脚本

print 感谢你使用石器so脚本 '用这个命令说话只显示在你的电脑上,其它玩家是看不到的
print 感谢你使用石器so脚本,3 '在你屏幕上显示出来的话是蓝色的:感谢你使用石器so脚本


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【msg】(弹出窗口)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
msg 想要在窗口显示的内容[|] '|表示换行
例子:
msg 感谢你使用石器so脚本
msg 感谢你使用石器so脚本|感谢你使用石器so辅助软件|||欢迎光临


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【waitsay】(等待说话)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
waitsay {1-20},等待要出现的说话,等待时间[,错误跳转]

用途:用作判断当时状况,而后应该采取什么行动。如MM喂石时出现的文字可判断MM是否已经喂满该种灵石;魔法或抗性是否练到一个程度;是否得到某些物品(如不可思仪贝壳);或者让玩家以自己的发言表示应该采取什么样的行动等在石器窗口里以对话形式出现的文字。

例子:
waitsay 1-10,成长率达到最高,5,没有达到最高 '在石器窗口1-10行里,5秒内一定要有以对话形式出现的“成长率达到最高”才继续执行waitsay后面的指令,否则就跳转到label 没有达到最高
waitsay 1-10,成长率达到最高,5,-4 '在石器窗口1-10行里,5秒内一定要有以对话形式出现的“成长率达到最高”才继续执行waitsay后面的指令,否则就跳转到-4行,-4行是指在当前命令上,往上数第4行
waitsay 1-10,成长率达到最高,5,+6 '在石器窗口1-10行里,5秒内一定要有以对话形式出现的“成长率达到最高”才继续执行waitsay后面的指令,否则就跳转到+6行,+4行是指在当前命令上,往下数第6行

注意:①该指令为判断类指令.
②此为“包含”指令,如waitsay 1-10,最高,5,-4,即听见的内容包含有“最高”的都达到“正确”的条件,继续执行waitsay后面的指令
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【cls】(清屏)指令∽∽∽∽∽∽∽

用途:用了此指令,除了有可以清除屏幕的文字的作用,还必须用此指令来消除“waitsay”的屏幕信息,不至于让“waitsay”混淆了之前和之后的信息。

错误例子:
say 好了,请玩家现在说出用方法一(继续脚本之后说一)还是用方法二(继续脚本之后说二)
pause
label 一
waitsay 1-10,一,5,二
goto 方法一
label 二
waitsay 1-10,二,5,一
goto 方法二
goto 一



结果因为之前的对话里请玩家现在说出用方法1包含了“1”,所以即使玩家说“1”还是说“2”,所以还是会变成听见了“1”

正确例子:
say 好了,请玩家现在说出用方法一(继续脚本之后说一)还是用方法二(继续脚本之后说二)
pause
cls
label 一
waitsay 1-10,一,5,二
goto 方法一
label 二
waitsay 1-10,二,5,一
goto 方法二
goto 一

继续脚本后用了“cls”指令,脚本就会变成一直处于等待状态,直至玩家说出“一”或者“二”脚本才会跳转去使用方法一或者二。



∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【waitmap】(等待地图)指令∽∽∽∽∽
在切换地图时等待此地图编号的地图出现,若出现则执行下一行的指令
例子:
walkpos 72,108
walkpos 72,111
walkpos 72,114
walkpos 72,117
waitmap 100,5,-3 '5秒内还没出现地图100,就自动跳转到-3行,即walkpos 72,111
delay 2000 '这里加延时是怕辅助软件当掉,养成在waitmap后面加延时的习惯
walkpos 260,175
walkpos 260,177
walkpos 260,179
W 260,179,A '这个“W”是封包走路命令,这里的意思是把人物方向转到A(北)
say 芝麻关门
waitdlg 你可以进去,1,5,-5 '这个“waitdlg”是判断对话框命令,将在后面进来解释
Button 确定
Walkpos 13,15
Walkpos 14,16


此类跟NPC对话点对话框进门的情况,一般都要加“waitdlg”命令,等待时间和错误跳转,避免在对NPC说话时因遇敌而没有出现对话框而出错。不仅是和有可能会遇敌的NPC对话要加“waitdlg”,只要是和NPC对话的一定要加“waitdlg”命令。

注意:①“waitmap”指令其实可以当作“判断条件类”指令
②因为现在的7.5可以“无限制走路”,玩家和脚本都“看到”游戏人物在快速的走到一个地方并切换地图,其实因为石器服务器的速度有时候跟不上的缘故,游戏人物的实际位置并不是我们所看到的位置,游戏人物其实还在行走的途中甚至已经遇敌了,如果是这样的情况,按上面所写在“waitmap 地图编号,5,-3”一般可以解决这样的问题。
③石器服务器的缓慢出现了又一问题:其实切换地图已经成功,只是当时因为服务器速度慢地图还没有换,此时脚本判断成“地图错误”,就跳转到前面的标记里去,此时刚好换完了地图,人物已经出现在下一地图里,而却要走上一地图的坐标,后果可想而知了。这就要求脚本制作者要想方设法去解决各种各样的问题,使脚本更稳定.可配合“ifpos”命令使用。



∽∽∽∽∽∽∽∽∽∽∽【waitdlg】【ifdlg】(等待对话框)(判断对话框)指令∽∽∽∽∽∽
waitdlg 对话框内容,对话框行数,等待时间[,错误跳转]

一般与NPC对话后,就弹出相应的对话框,此指令用途为可以按设定时间等待指定内容或任意内容的对话框的弹出,在设定的时间内直到对话框出现才进行下一步,若超时没有出现则执行错误跳转的内容。
例子:
walkpos 278,331
walkpos 278,326
walkpos 278,326
W 0,0,北 '人物方向往北
say 进去
waitdlg ?,0,5,-5 '不管对话是什么内容,只要弹出有对话框就执行下一个指令,如果5秒内没出现对话框,就跳转到 -5行
button 确定

label 地图错误
walkpos 278,331
walkpos 278,326
walkpos 278,326
W 0,0,A '人物方向往北
say 进去
waitdlg ?,0,5,地图错误 '不管对话是什么内容,只要弹出有对话框就执行下一个指令,如果5秒内没出现对话框,就跳转到”地图错误”
button 确定 ’这里加上地图错误跳转在遇敌的地方使用可以纠正因遇敌而不能跟NPC说话出现对话框的情况,但有时候却即使有出现对话框也当作没有出现而跳转,所以一般可以在“waidlg”指令后面添加“delay”(详细请参考“delay”指令)。

walkpos 69,48
walkpos 69,47
walkpos 69,46
walkpos 69,45
W 69,45,A
say 买
waitdlg只要使用这根羽毛,无论在任何地方都可以立刻回,2,5,-5 '等待对话框的第2行是否出现”只要使用…. ”是的话就执行下一个指令,
不是的话就执行-5行的指令,即”walkpos 69,47”
buy 1,1
delay 500
walkpos 70,45
walkpos 71,45




∽∽∽∽∽【mousemove】【lclick】【rclick】【doubleclick】(鼠标移动)(鼠标左击)(鼠标右击)(左键双击)指令∽∽∽∽∽
注意:使用此类指令,必须跟有X和Y两个坐标参数,获得参数的方法如下:
①资料显示的下面的信息那一栏有“鼠标”显示出鼠标在当前窗口的坐标X和Y

②选上脚本制作器里的“记录鼠标”,然后在窗口里单击鼠标左键捕捉

mousemove X,Y
用途:把鼠标移动到某坐标


lclick X,Y
用途:在某坐标位置上单击鼠标左键
注意:即使连点两下也不能充当“双击”


rclick X,Y
用途:在某坐标位置上单击鼠标右键


doubleclick X,Y
用途:在某坐标位置上双击鼠标左键(内挂独有assa不支持)


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【button】(点击按钮)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
button {OK|CANCEL|确定|确定2|取消|上一页|下一页|ESC}

button 确定 '会判断窗口上是OK还是确定,然后发送对应的
button 确定2 '不做判断直接发送确定

例子:
Say hi
waitdlg ?,0,4,-1
button 下一页
waitdlg 你想接这个任务吗?,1,5,-3
button 确定
waitdlg 麻烦你了,1,5,-5
button OKbutton 6|2 '在技能店使用时,相当于学习第6个技能,给第二只宠,第二个技能位


∽∽∽∽∽∽∽∽∽∽∽∽∽∽【Pickup】(拾道具)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽
Pickup {*|北|东北|东|东南|南|西南|西|西北|A|B|C|D|E|F|G|H} [,x,y] '一般后面的坐标是不用加的,加上去了也没有什么作用
拣取身边以人物为中心,人物身边连同人物站立位置一共9个位置范围内的物品
Pickup * '把人物周围所有东西拾起
pickup 北 '把人物北边的道具拾起
pickup A '把人物北边的道具拾起
Pickup 东,12,13 '站在12,13下拾起人物位置东边的东西,一定要站在12,13下才能用这个指令,否则会出错

∽∽∽∽∽∽∽∽∽∽∽∽【nearpos】(查找最近坐标)指令∽∽∽∽∽∽∽∽∽∽∽∽
nearpos


任意位置只限于开头任意位置,若后面跟有交通类脚本指令,则相当于“开始位置”般锁定了开始的位置,举个例子说说吧:

nearpos
say 这里是奇喀喀村,现在出发下海去了
walkpos 63,48
walkpos 60,43
walkpos 60,40
waitmap 200,5,-3
walkpos 133,1007
walkpos 128,1007
walkpos 122,1008
walkpos 116,1010
walkpos 102,1018
walkpos 102,1019
walkpos 102,1022
waitmap 817,5,-3假若上面那段指令没有用“nearpos”指令的话,那么站在128,1007里开始运行脚本,脚本会在说完”这里是奇喀喀村,现在出发下海去了”这句话后就马上走到63,48,而你又站在地图 200中了,这样肯定就会造成坐标错误.用了”nearpos”的话,脚本就会找到在地图200下的最近坐标,比如”122,1008”,然后就直接在122,1008这个指令开始继续运行这个脚本.

∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【walkpos】(坐标)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
walkpos X,Y

注意:使用此指令,必须跟有X和Y两个坐标参数,获得参数的方法如下图:
①①资料显示的下面的信息那一栏有“坐标”显示出鼠标在当前窗口的坐标X和Y
②选上脚本制作器里的“记录走路”,然后在窗口里控制人物走动捕捉

用途:控制人物走到某个坐标,是石器辅助软件里最原始,最普遍,使用率最高的指令


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【W】(封包走路)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
W x,y,{} '这个指令也可以让人物转向,如W 0,0,东
格式1:W 0,0,{北|东北|东|东南|南|西南|西|西北} 转向
格式2:W 0,0,{A|B|C|D|E|F|G|H} 转向
格式3:W 50,50,{北|东北|东|东南|南|西南|西|西北} 1.82瞬移(面向) 限三步
格式4:W 50,50,{A|B|C|D|E|F|G|H} 1.82瞬移(面向)限三步
格式5:W 50,50 1.82瞬移(默认面向) 限三步
格式6:W 50,50,aa 在50,50的位置上向北(a)移两步

上面这个W(封包走路)走路命令用得比较多的是它的转向功能.一般用在和NPC对话时.



∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【set】(设定)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
set {快速遇敌|快速行走|自动逃跑|自动捉宠|快速战斗|自动KNPC|原地保护|经验显示|断线重登|穿墙行走|W2|自动堆叠|}{,1|0}
'1表示开启,0表示关闭
set 指定攻击, {宠物名称|宠物名称……| 宠物名称} '最多可以设置捉10只宠物的名字
set 锁定攻击, {宠物名称|宠物名称……| 宠物名称} '最多可以设置捉10只宠物的名字
set 捉宠等级,等级数值
set 捉宠名称,{宠物名称|宠物名称……| 宠物名称} '最多可以设置捉10只宠物的名字
set 捉宠血量,血量数值
set 捉宠魔法,{1|2|3|4|5} '1表示帽子精灵,2表示衣服精灵,3表示武器精灵,4表示左饰精灵,5表示右饰精灵,一般都设置为3
set 超回合数逃跑,{1|0}'后面的数字可以控制具体多少个回合

set 宠被飞逃跑,{1|0}
set 被飞换宠,{1|0}
例子:
set 快速战斗,1
set 快速战斗,0
set 吃补血肉,1
set 丢非血肉,1
set 断线重登,1
set 自动堆叠,0
set 加速,14

set 捉宠等级,50 '设置捕捉50级的宠物
set 捉宠名称,卡特|史克杰|史菲洛
set 捉宠名称,那提拉
set 捉宠名称,0 '设置捕捉宠物名称选项前面的勾去掉
set 捉宠等级,0 '设置捕捉宠物等级选项前面的勾去掉
set 捉宠魔法,3 '设置用武器精灵捕捉宠物
set 锁定攻击,扑满乌力|吉比set 被飞换宠,1





∽∽∽∽∽∽∽∽∽∽∽∽【chpet】(改变战宠骑宠命令)指令∽∽∽∽∽∽∽∽∽∽∽∽
chpet {0-5}{,模式} '模式只有1,1表示更换的是骑宠,不写表示更换的是战宠

在平时状态下换战宠,除了正在骑乘的宠物外,其余状态的宠都可以变成“战斗”,0为把当前战宠状态变回“等待”

chpet 1 '把第一位的宠物状态改变成“战斗”
chpet 2 '把第二位的宠物状态改变成“战斗”
chpet 0 '把战宠设置为等待状态
chpet 2,1 '把第二位的宠物状态改变成“骑乘”
chpet 3,1 '把第三位的宠物状态改变成“骑乘”






emihawk 发表于 2022-6-8 14:50:20

button 6|2|3 '在技能店使用时,相当于学习第6个技能,给第二只宠,第三技能位

button 7|4|2这里不能学习第7技能给4宠二技能栏,学习到第4技能栏去了

石器SO 发表于 2022-5-2 21:06:37

∽∽∽∽∽∽∽∽∽∽∽∽∽【buy】【购买道具】指令∽∽∽∽∽∽∽∽∽∽∽∽∽
buy {道具名|道具索引1-n},数量[,x,y] '购买商店内的物品

例子:walkpos 25,26
walkpos 25,28
W 25,28,C '人物方向向东
say 买
waitdlg 素材屋,1,5,-4'也可以直接用waitdlg ?,1,5,-4
buy 12,5 ’购买从第一页第一个数起,第十二个的物品,买五个

walkpos 25,26
walkpos 25,28
W 0,0,东 '人物方向向东
say 买
waitdlg 素材,1,5,-4
buy 贝壳,5 ’购买名为“贝壳”的物品,买五个,如果商店里有重复名字的物品,则会先买排列在最前面的,可能买到的道具不是你想要的等级的,所以最好把想要购买的道具名字(或者道具的说明)写全写清楚。


buy指令各种复杂写法:

buy 1,*         '商店第一个东西买满背包
buy 1, 1          '购买第一个商品x1个
buy name, 1   '购买名字为name的商品x1个
buy name1|name2, 1      '购买名字为name1和name2的商品x1个
buy 1-5, 1      '商店第1到5的商品各买1件
buy 1|5, 1      '商店第1个和第5个各一件
buy *, 1          '商店里所有的商品各买一件
buy @名字,@数量   '支持动态变量




∽∽∽∽∽∽∽∽∽∽∽∽∽【sellitem】【出售】指令∽∽∽∽∽∽∽∽∽∽∽∽∽
SellItem {道具名|道具索引1-15} '这个命令一定要出现卖的对话框才能使用,要不然会变成买的命令


例子:
walkpos 25,26
walkpos 25,28
W 0,0,东 '人物方向向东
say 卖
waitdlg ?,0,5,-4
sellitem 12,5 ’出售第十二格的道具五个(道具被叠加后)


walkpos 25,26
walkpos 25,28
W 0,0,东
say 卖
waitdlg ?,0,5,-4
sellitem 贝壳,5 '卖出名为“贝壳”的物品,卖五个,叠加后的道具,只要叠加5个或者以上的贝壳都卖掉其中的5个。


∽∽∽∽∽∽∽∽∽【moveitem】【waititem】(移动物品)(等待物品)指令∽∽∽∽∽∽∽∽∽
moveitem 1,|2-15
waititem {1|2|3-15},道具名称,等待时间[,错误跳转] '等待道具

其中人物装备位置编号为 101-109

当不指定物品名字时
waititem 5,,1,-1'第五个道具栏上有任意物品,即可下一步,否则等待时间过后运行上一步。


例子:
moveitem 2,15 '把道具栏第2格的物品称动到第15格
moveitem 14,3 '把道具栏第14格的物品称动到第3格

walkpos 92,101
walkpos 93,101
say buy
waitdlg ?,0,5,-3
buy 1,1
waititem 1,飞行至萨姆吉尔,5,-5 '等待道具栏第1位的道具,如果5秒内道具栏第一格还没有出现包含有”飞行至萨姆吉尔”,就跳转到-5行执行脚本
人物装备栏位置编号:101头盔,102 衣服,103 武器   104 右边饰品105左边饰品 106 腰带 107 盾牌 108鞋子 109 手套石器so内挂版本在此基础上扩展了宠物装备位置:
宠物1装备位置 201头套 202爪套 203牙套..(中间省略)....207脚防(一个编号对应一个宠物装备栏的位置)

宠物2装备位置 301头套 302爪套 303牙套..(中间省略)....307脚防(一个编号对应一个宠物装备栏的位置)

宠物3装备位置 401头套 402爪套 403牙套..(中间省略)....407脚防(一个编号对应一个宠物装备栏的位置)
宠物4装备位置 501头套 502爪套 503牙套..(中间省略)....507脚防(一个编号对应一个宠物装备栏的位置)

宠物5装备位置 601头套 602爪套 603牙套..(中间省略)....607脚防(一个编号对应一个宠物装备栏的位置)
ifitem支持判断宠物装备是否穿戴
比如:ifitem 201,=,头套,+2moveitem 头套,201ifitem 202,=,翅膀,+2moveitem 翅膀,202

∽∽∽∽∽∽∽∽∽∽∽∽【get】【put】(取得)(寄放)指令∽∽∽∽∽∽∽∽∽∽∽∽get {道具名|道具索引1-n} '封包命令,取道具put {道具名|道具索引1-15} '封包命令,存道具
一定要打开个人寄放店窗口或者仓库寄放店窗口才能使用,打开的方法很简单,可以不用lclick鼠标左击命令,直接用button命令来打开,这样不容易出错,下面的例子将介绍
寄放失败没问题,领取失败也不会出现问题,现脚本指令支持个人寄放店和仓库的领取和寄放
例子:say 我要存进个人寄放店一些东西waitdlg 欢迎光临,1,5,-1button 1 '这个button 1就是在欢迎光临对话框下打开个人寄放店存东西的对话框的,button 2就是取的对话框put 飞行至萨 '这个就是把萨村羽毛存进寄放店里了,只要带有”飞行至萨”的东西都会给一起存进去,所以有时候可以把名字写清楚点,put萨姆 '这个就是含有”萨姆”2个字的道具存进寄放店,当你的身上有萨姆吉尔首饰和萨村羽毛的时候,都会一起存进去

say 我要存进仓库一些东西waitdlg 欢迎光临,1,5,-1button 3 '这个button 3就是在欢迎光临对话框下打开”使用道具仓库”对话框waitdlg 使用道具仓库,1,5,-3 '等待对话框的出现button 1 '这个button 1就是在使用道具对框下打开仓库存东西的对话框的,button 2就是取的对话框put 飞行至玛丽 '这个就是含有”飞行至玛丽”的道具存进仓库

say 我要存进个人寄放店一些东西waitdlg 欢迎光临,1,5,-1button 2get 飞行至萨get萨姆 '这个就是含有”萨姆”2个字的道具取出来,当你的寄放店有萨姆吉尔首饰和萨村羽毛的时候,都会一起取出,所以有时要把名字写详细点

say 我要存进仓库一些东西waitdlg 欢迎光临,1,5,-1button 3 '这个button 3就是在欢迎光临对话框下打开”使用道具仓库”对话框waitdlg 使用道具仓库,1,5,-3 '等待对话框的出现button 2get 飞行至玛丽 '这个就是含有”飞行至玛丽”的道具从仓库取出来


∽∽∽∽∽∽∽∽∽∽∽∽【join】(组队和脱离团队)指令∽∽∽∽∽∽∽∽∽∽∽∽join 1'1=组队,0=脱队
加入团队的指令,前方必须有人打开组队,即使组队了继续发送指令也不会有问题,进入战场再发送指令并且前方有人打开组队状态可能会造成掉线例子:join 1 '加入团队,这个命令可以在一些无法按加入团队按钮的地方使用,比如成人礼的洞,五兄弟的join 0 '脱离团队


∽∽∽∽∽∽∽∽∽∽∽∽【mail】【petmail】(邮件)(宠物邮件)指令∽∽∽∽∽∽∽∽∽∽∽∽mail {对方名片位置(1-80),邮件内容}
发送宠物邮件给名片上的人例子:mail 5,你好吗? ’发送邮件内容为“你好吗?”给你名片匣位置5的玩家mail 1-40,你最近怎么样? ’发送邮件内容为“你最近怎么样?”给你名片匣位置1-40的玩家

petmail {对方名片位置(1-80),道具索引1-23}格式1:petmail 1,9 '把道具栏中的第一格邮寄格式2:petmail 1,9|10 '把道具栏中的第1格第2格邮寄格式3:petmail 1,不可思议的贝壳 '把道具1-15中为不可思议的贝壳 的全部寄出给名片位置1的玩家格式4:petmail 1,?不可思议的贝壳 '在道具1-15中找到第一个的不可思议的贝壳寄出给名片位置1的玩家

∽∽∽∽∽∽∽∽【label】【goto】(标记)(跳转)指令∽∽∽∽∽∽∽∽label 标记名称goto 标记名称|+ -行数'特殊保留标记label .log. 断线重登后,脚本将跳到此处运行


∽∽∽∽∽∽∽∽【call】【return】(调用)(返回)指令∽∽∽∽∽∽∽∽
call 标记名称
return


例子:
walkpos 24,24
walkpos 26,24
call 票 '调用标记为”票”的指令执行完”票”的指令后将返回到下一行指令中去
ifitem ?,=,猜谜的参加票,+2 '道具栏上只要有猜迷的参加票就跳转到+2行
goto -2
walkpos 28,23
walkpos 29,22
walkpos 29,21
walkpos 29,20
goto 我猜我猜我猜猜猜

label 票
ifitem ?,=,猜谜的参加票,+13 '道具栏上只要有猜迷的参加票就跳转到+13行,即return指令,直接返回到call
say 现在帮你打猜谜的参加票,如果没有空位会帮你丢掉猜拳的参加券,4
set 自动逃跑,0
set 快速遇敌,1
delay 500
ifitem ?,=,猜谜的参加票,+4
ifitem 空位,>=,1,+2
doffitem ?猜拳的参加券
goto -4
delay 1000
set 快速遇敌,0
set 自动逃跑,1
delay 2000
return '返回到”call 票”的下一行指令” ifitem ?,=,猜谜的参加票,+2”继续执行脚本


简单的说call和return就是能使多个地方共用一个地方的指令。假设“goto”是只去不回的单程指令,那“call”加上“return”就是既去又回的双程了。是“从那里来,就回到那里去”的控制脚本流程指令。

例如,标记A后面的指令是一组很长的指令,我们常称此标记A后面的这一组指令为一个“组件”(现在简称为A组件)。
而标记B后面当执行完一段指令后,要执行A组件,执行完毕后要继续回到标记B处;
标记C后面执行完一段指令后也要执行A组件,执行完毕后要继续回到标记C处;
此时就要用上“call”指令,当然A组件最后面要用“return”指令,才能使指令“从那里来,就回到那里去”



石器SO 发表于 2022-5-2 21:14:06

∽∽∽∽∽∽∽∽∽∽【useitem】【doffitem】(使用道具)(丢弃道具)指令∽∽∽∽∽∽∽∽∽∽
useitem {1-15|道具名|道具说明},对象[,x,y] '使用道具 items格式:1|2|3-15 数值:1-15, 对象:0=人物,1-5宠物
格式1:useitem 1|2|3|4-6 '指定道具1,2,3,4,5,6 给人物吃掉
格式2:useitem 豪华船生鱼片 '把道具1-15中为豪华船生鱼片 的全部 都给人物吃掉
格式3:useitem ?豪华船生鱼片 '在道具1-15中找到第一个的豪华船生鱼片 都给人物吃掉

例子:
useitem ?飞行至萨姆吉尔 '飞到萨姆吉尔村,如果你道具栏第2格有一根萨村羽毛,第4格也有一根,脚本只会用第一根羽毛
useitem 1|2|3-5 '道具1,2,3,4,5 给人物吃掉
useitem 1|2|3-5,0 '道具1,2,3,4,5 给人物吃掉
useitem 1-10,2 '道具1-10 给宠物2吃掉
useitem 俄式宠物食物2,3 '道具俄式宠物食物2全部 给宠物3吃掉

doffItem {1-15|道具名全称}[,x,y] 丢出道具 items格式:1|2|3-6 数值:1-15
格式1:doffitem 1|2|3|4-6 '指定道具1,2,3,4,5,6 被丢出
格式2:doffitem 豪华船生鱼片 '把道具1-15中为豪华船生鱼片 的全部 被丢出
格式3:doffitem ?豪华船生鱼片 '在道具1-15中找到第一个的豪华船生鱼片 被丢出



∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【ifitem】(判断道具)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
ifitem {名称|说明|空位},{=|!=|<|<=|>=|>},数量,{跳转符号}
ifitem {?|*},{=|!=},{名称|说明|空位},{跳转符号}
ifitem {1|2|4-15},{=|!=},{名称|说明|空位},{跳转符号}
ifitem {101-109},{=|!=},{名称|说明|空位},{跳转符号} '判断装备,本教程最后有装备具体位置代码

例子:
ifitem 空位,>,5,XX2 '检测道具1-15, 其中有 空位>5 则跳转到标记XX2,空位小于或等于5则继续执行下一个指令
ifitem 火灵石,!=,0,err '检测道具1-15,火灵石数量不等于0则跳转到标记err,等于0则继续执行下一个指令
ifitem ?,=,不可思议的贝壳,XX2 '检测道具1-15, 其中有一个不可思议的贝壳则跳转到标记XX2
ifitem *,=!,火灵石,XX2 '检测道具1-15, 所有道具没有一个是火灵石则跳转到标记XX2

set 快速遇敌,1
delay 1000
ifitem 13|14-15,=,水灵石,+2 '检测道具13-15,都等于水灵石,则跳转到+2行,即”set 快速遇敌,0”
goto -2
set 快速遇敌,0
delay 100 ’延时100毫秒,即0.1秒
set 自动逃跑,1
delay 1000 ’延时1000毫秒,即1秒

ifitem 103,=,猛毒的精灵,+4 '检测装备栏,左武器是否为猛毒的精灵,是的话就跳转到+4行,否则的话就继续执行下一个指令


指令拆分解释:
“名称” 代表 “道具的名称”(包括道具栏及装备栏)
“说明” 代表 “道具的说明文”(包括道具栏及装备栏)
“?” 代表 “道具栏里全部位置”
“*” 代表 “道具栏及装备栏里的全部位置”

“(1-15)” 代表 “道具栏里的指定位置,顺序为从左上到右下,如1-1为第一个道具格,1-5为第一到第五个道具格,如此类推”
“101-109” 代表石器7.0及以上版本装备101-109位置顺序
“{==|>|>=|<|<=}” 代表 “{等于|大于|大于或等于|小于|小于或等于}”


ifitem支持判断宠物装备是否穿戴
例子:
ifitem 201,=,头套,+2
moveitem 头套,201
ifitem 202,=,翅膀,+2
moveitem 翅膀,202

宠物1装备位置 201头套 202爪套 203牙套..(中间省略)....207脚防(一个编号对应一个宠物装备栏的位置)

∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【ifstone】(判断石币)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
ifstone {=|!=|<|<=|>=|>},数值,{跳转符号}

ifstone <=,980000,+2 '石币小于或等于980000就跳转到+2行执行脚本,跳转call save.如果大于980000,就调用 标记 SAVE下的指令
CALL SAVE

'中间的代码省略

LABEL SAVE
save 950000
delay 5000
ifstone >=,980000,-2
RETURN '返回到call

∽∽∽∽∽∽∽∽∽∽∽∽∽【iffight】(判断战斗回合数)指令∽∽∽∽∽∽∽∽∽∽∽∽∽
iffight {=|!=|<|<=|>=|>},战斗回合数,{跳转符号} 判断战斗回合

例子:
label 开始叠加
delay 200
iffight !=,0,-1 '判断战斗回合数不等于0(说明在战斗中)就跳转到-1行的delay 200中去循环执行,等于0就执行下一个指令”moveitem”(移动道具),因为移动道具一定要在平时状态中才可以的,所以这里通过判断战斗回合来判断战斗是否结束.
moveitem 1,2
delay 200
iffight !=,0,-1
moveitem 2,3
delay 200
iffight !=,0,-1
moveitem 3,4
delay 200



∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【ifpet】(判断宠物)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
ifpet {名称|空位},{=|!=|<|<=|>=|>},数量,{跳转符号}
ifpet {?|*},{=|!=},{名称|空位},{跳转符号}
ifpet {1|2|4-5},{=|!=},{名称|空位},{跳转符号}
例子:
ifpet 5,=,风水火地满2,全部喂满 '宠物5的名字等于风水火地满2的话就跳转到”全部喂满”继续执行脚本
ifpet 2,!=,那提拉,+5 '宠物2的名字不等于那提拉的话就跳转到+5行继续执行脚本,等于那提拉的话就继续执行下一行脚本
ifpet ?,=,那提拉,err '宠物栏只要有一个名字叫那提拉的宠物,就跳转到”err”执行脚本,没有的话就执行下一行脚本

这里和判断道具的是一样的只是变成判断宠物了而已


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【doffpet】(丢弃宠物)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
doffpet 1-5 '丢弃宠物1-5
例子:
doffpet 2 '丢弃宠物2,这指令不要随便使用,因为用这个丢宠物不需要按确定的

∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【ifsay】(判断说话)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽

ifsay {1-20},对话内容,{跳转符号} 判断说话

ifsay 1-10,拿到不可思议的贝壳,拿到贝壳

这个命令基本上和waitsay一样```

∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【ifpos】(判断坐标)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
ifpos x,y, {跳转符号}
用途:在一些利用地图传送点换地图的时候,真正的地图编号没有换的,只是换了一个地方,例如泪之海底,就可以用到ifpos来判断是否真的切换了地方.因为这时用waitmap已经没有任何作用了,传送点传来传去都是同一个地图编号,怎么判断都是判断不出是否真的传送到另一个地方的.

例子:
walkpos 147,61
walkpos 147,62
walkpos 148,63
delay 1000
ifpos 148,63,-4 ’判断坐标,如果坐标还在148,63,说明地图没有切换成功,就跳转到-4行,再走一次坐标
walkpos 149,63
walkpos 148,71
walkpos 148,72
walkpos 148,74



∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【check】(状态检测)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
check {人物},{名称|LV|HP|MP|石币|攻击|防御|敏捷|魅力|转生},{=|!=|<|<=|>=|>},数值,{跳转符号}
check {宠物1-5|战宠|骑宠},{名称|LV|HP|攻击|防御|敏捷|魅力|忠诚|职位|技能1-7},{=|!=|<|<=|>=|>},数值,{跳转符号}


例子:
check 人物,魅力,<,100,做橘子 '人物的魅力小于100,就跳转到标记”做橘子”,大于或等于100就执行下一行指令
check 战宠,忠诚,<,100,加忠 '战宠的忠诚小于100,就跳转到标记”加忠”
check 宠物1,技能4,=,料理,+3 '检查宠物1的技能4是否为料理,如果是,就跳转到+3行,不是就执行下一行”say “指令
say 料理宠物放第1位,技能第4位。
end

check 队伍,{?|1-5},{!=|>|<|LIKE},名称,{跳转符号}    '1队长,2-5队员

石器so内挂版本优化指令例子:
check 队伍,2,!=,LV:16?,-1 '判断队员2大于等于160级 而且 小于等于169级
check 队伍,2,!=,LV:1?9,-1 '判断队员2   匹配   (109119129)等
check 队伍,2,!=,LV:1??,-1 '判断队员2大于等于100级 而且 小于等于199级
check 队伍,3,=,LV:14?,-1 '判断队员3小于140级 或者 大于149级   
check 队伍,3,=,LV:140,-1 '判断队员3等于140级
check 队伍,4,>,LV:130,-1 '判断队员4大于130级      130为绝对值,不能有问号
check 队伍,5,<,LV:120,-1 '判断队员5小于120级


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【log】(登陆状态)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
log {0-3}
用途:改变登陆状态.

例子:
log 0 '原地重登(不显示登陆的时候的星系,人物选择画面,直接登陆,登陆的时候,周围的人物.NPC都会消失,登陆成功后恢复)
log 1 '回记录点
log 2 '登出
log 3 '断线


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【end,pause,】(停止,暂停)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
end
pause
用途:
end是停止脚本命令
pause是暂停脚本命令

例子:
end '结束脚本
pause '暂停脚本,随便加到哪都行,一行加在”MSG”命令的后面


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【beep】(提示消息)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
beep

用途:
提示声音,会发出"beep"的一声来提醒玩家


∽∽∽∽∽∽∽∽∽∽∽∽∽【usemagic】(使用人物技能,精灵)指令∽∽∽∽∽∽∽∽∽∽∽∽∽
usemagic {1-5}
usemagic {1-26},-1

例子:
usemagic 3 '使用武器精灵

usemagic 1,-1 '使用技能,如果你的第一个技能是寻敌追踪,那么这个命令就能用出寻敌追踪这技能


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【LL】(合成,料理,精练)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
LL {0-5},{1-7|技能名},{1-15|道具名}

用途:
封包合成,料理,精练

例子:
LL 1,2,1|2|3-5 '用宠物1的第2个技能料理或者合成,精练第1,2,3,4,5这5个素材或道具
LL 1,2,高级鱼|毛蟹|大王花枝|活跳跳章鱼|高级玛丽娜丝虾
LL 2,加工,1|2|3 '用宠物2的任意位置的加工技能合成第1,2,3这3个素材或道具
LL 2,加工,1|4 '用宠物2的任意位置的加工技能合成第1,4这2个素材或道具


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【sellpet】出售快速宠物指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
sellpet {1-5}

sellpet 1'就是出售第一只宠物,这类指令使用上需要小心哦

∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【savepet】存放宠物指令(未完善可能存在问题)∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
savepet {寄存|仓库},1|2|3|4|5
注意目前仅支持宠物小仓库和第一个宠物大仓库
例:
savepet 仓库,1 '存位置1的宠物到仓库
savepet 仓库,1|2|3|4|5 '存位置1、2、3、4、5的宠物到仓库
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【saveitem】寄存道具指令(未完善可能存在问题)∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
saveitem{寄存|仓库},1|2|3|4|5
寄存支持一次村多个道具,仓库不支持只能一次存一个

例:
savepet 寄存,1|2|3|4|5 '存道具栏1、2、3、4、5的道具小仓库
savepet 仓库,1'存道具栏第一个到大仓库

∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【fightpet】设置宠物为战斗∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
fightpet {1-5}
fightpet 1'宠物栏中第一只宠物设置为战斗


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【bt】摆摊【cancelbt】取消摊位∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
bt {石币|声望|积分},{类别1|位置1|价格1;类别1|位置2|价格2;},{标题},{错误跳转}
cancelbt '取消摆摊
cancelbt '先取消摆摊
bt 积分,0|1|1;,广告,-2'以及分形式对道具位置1摆摊价格1
bt 积分,0|1-15|1;,广告,-2'以及分形式对道具位置1-15摆摊价格1
bt 积分,0|1|1;0|2|1;,广告,-2'以及分形式对道具位置1位置2摆摊价格1
                                                
bt 积分,1|1|0;,广告,-2'以及分形式对宠物栏位置1摆摊价格0为议价
bt 积分,1|1|0;,广告,-2'以及分形式对宠物栏位置1摆摊价格0为议价
道具栏1-15位置顺序(从左上到右下):
┏━━┳━━┳━━┳━━┳━━┓
┃ 1┃ 2┃ 3┃ 4┃ 5┃
┣━━╋━━╋━━╋━━╋━━┫
┃ 6┃ 7┃ 8┃ 9┃10┃
┣━━╋━━╋━━╋━━╋━━┫
┃11┃12┃13┃14┃15┃
┗━━┻━━┻━━┻━━┻━━┛
宠物栏位置顺序(主要按资料显示-->人宠资料上为准)及宠物技能位置顺序从上到下:
┏━━━┓ ┏━━━┓
┃宠物一┃ ┃技能1┃
┣━━━┫ ┣━━━┫
┃宠物二┃ ┃技能2┃
┣━━━┫ ┣━━━┫
┃宠物三┃ ┃技能3┃
┣━━━┫ ┣━━━┫
┃宠物四┃ ┃技能4 ┃
┣━━━┫ ┗━━━┛
┃宠物五┃
┗━━━┛


石器6.0及以下版本装备101-105位置顺序:

┏━━━━━━━┳━━━━━━━┓ ┏━━━━━━━┓
┃左饰(104)┃右饰(105)┃ ┃头盔(101)┃
┗━━━━━━━┻━━━━━━━┛ ┗━━━━━━━┛

┏━━━━━━━┓ ┏━━━━━━━┓
┃武器(103)┃ ┃衣服(102)┃
┗━━━━━━━┛ ┗━━━━━━━┛

石器7.0及以上版本装备101-109位置顺序:

┏━━━━━━━┳━━━━━━━┳━━━━━━━┓
┃左饰(105)┃头盔(101)┃右饰(104)┃
┣━━━━━━━╋━━━━━━━╋━━━━━━━┫
┃左武(103)┃衣服(102)┃右武(107)┃
┣━━━━━━━╋━━━━━━━╋━━━━━━━┫
┃手套(109)┃腰带(106)┃鞋子(108)┃
┗━━━━━━━┻━━━━━━━┻━━━━━━━┛

名片位置顺序从第一页开始翻页,从上到下(1-80)7.5以上的时代,2.0的为(1-40)。
















以下可能有部分不支持。使用前先测试一下


脚本指令中文详细说明

cls    '清屏
beep    '提示声音
end    '结束当前脚本, 返回上级脚本调用位值
exit    '退出所有脚本
pause    '暂停脚本运行
print 提示信息 [,颜色值] '提示
say 说话内容 [,颜色值] [,x,y] '说话
join {0|1} [,x,y]'1组队 0脱队
chmap x,y [,mode]'换地图
skup {0|1|2|3} '调升级点,0体力、1腕力、2耐力、3速度
say /jk   '刷新人物坐标,用于取代原有的eo
msg 消息内容   '信息窗口
delay 延时毫秒   '延时
mousemove x,y   '鼠标移动
lclick x,y [,按下延时]'按下左键
rclick x,y [,按下延时]'按下右键
log {0|1|2|3}或 {重登|回纪录点|原地|断线}
chname {人物|宠物(1-5)|战宠|骑宠},名称
pickup {*|北|东北|东|东南|南|西南|西|西北|A|B|C|D|E|F|G|H} [,x,y]
W X,Y,
{a..h|A..H}   '
不显示位置 a=北 b=东北 c=东 d=东南 e=南 f=西南 g=西 h=西北

button {OK|CANCEL|确定|取消|上一页|下一页|关闭|0..8|{$|#}输入文字} [,x,y[,key[,flag]]] 对话框命令
    button &宠物名称1|宠物名称2|宠物名称2   '融合命令1在打开融合对话框下使用
    button #1|2|3       '融合命令2在打开融合对话框下使用

label 标签名称    '保留标签: .end. .log..err.
goto 标签名称 [,错误跳转]
call 标签名称 [,错误跳转]
return

ifmap num, {跳转符号}         判断地图
ifpos x,y, {跳转符号}判断人物坐标
ifstone {=|!=|<|<=|>=|>},stone,{跳转符号} 判断石头数值
iffight {=|!=|<|<=|>=|>},战斗回合数,{跳转符号}判断战斗回合
ifdlg text,num,{跳转符号}判断对话框。 跟waitdlg ?,0 后面使用
ifsay {1-20},text,{跳转符号}   判断说话
ifitem {名称|空位},{=|!=|<|<=|>=|>},数量,{跳转符号}
例如:ifitem 空位,>,5,XX2      检测道具1-15, 其中有 空位>5 则跳转
ifitem {?|*},{=|!=},{名称|空位},{跳转符号}
例如:ifitem ?,=,晒干的鱼,XX2   检测道具1-15, 其中有一个 晒干的鱼 则跳转
ifitem {1|2|4-5},{=|!=},{名称|空位},{跳转符号}
例如:ifitem 4-5,=,晒干的鱼,XX2   检测道具4-5,都是 晒干的鱼 则跳转
ifpet {名称|空位},{=|!=|<|<=|>=|>},数量,{跳转符号}
ifpet {?|*},{=|!=},{名称|空位},{跳转符号}
ifpet {1|2|4-5},{=|!=},{名称|空位},{跳转符号}



check {人物},{名称|LV|EXP|HP|HP%|MP|MP%|攻击|防御|敏捷|魅力|体力|腕力|耐力|速度|转生|升级点数|石币|地图|战斗},{=|!=|<|<=|>=|>},数值,{跳转符号}

   {宠物1-5|战宠|骑宠},{名称|职位|技能1-7|LV|EXP|HP|HP%|攻击|防御|敏捷|忠诚|转生},{=|!=|<|<=|>=|>},数值,{跳转符号}
                  宠物职位:0=战骑 1=骑宠 2=战宠3=等待 4=邮件 5=休息
   {精灵1-5|职能1-26},{名称|消耗气力|熟练度},{=|!=|<|<=|>=|>},数值,{跳转符号}
   地图,编号,{=|!=|<|<=|>=|>},编号,{跳转符号}
   地图,名称,{=|!=},名称,{跳转符号}
   座标,{=|!=},X,Y,{跳转符号}
   队伍,人数,{=|!=|<|<=|>=|>},数量,{跳转符号}   
   队伍,{?|1-5},{=|!=|LIKE},名称,{跳转符号}    '1队长,2..5队员, 名称格式:名称 LV:xx

   说话,{?|行号列表},{=|!=|LIKE},内容,{跳转符号}
   对话,{?|行号},{=|!=|LIKE},内容,{跳转符号}
   对话,0,{=|!=|LIKE},?,{跳转符号}'表示只检测对话框
   道具,{1|2|3-5},{=|!=|LIKE},{名称|空位},{跳转符号}
   道具,空位,{=|!=|<|<=|>=|>},数量,{跳转符号}
   道具,名称,{=|!=|<|<=|>=|>},数量,{跳转符号}
   道具,{?|*},{=|!=|LIKE},名称,{跳转符号}      '*装备位+道具位, ?道具位
   道具,{*1..15|*名称},{=|!=|<|<=|>=|>},数量,{跳转符号} '堆叠数量检测

   宠物,{1|2|3-5},{=|!=|LIKE},{名称|空位},{跳转符号}
   宠物,空位,{=|!=|<|<=|>=|>},数量,{跳转符号}
   宠物,名称,{=|!=|<|<=|>=|>},数量,{跳转符号}
   宠物,?,{=|!=|LIKE},名称,{跳转符号}   
   任务,?,{=|!=|LIKE},名称,{跳转符号} '必须先运行: button 任务日志 ; delay 500
'例: check 任务,?,=,成人礼 {已完成},+2
   ********************
   字符匹配 LIKE 说明:(汉字作一个字符)*=所有, ?=一个
   如下面说话:
   魔法牌主持人:第3回合 战斗

   1.不检测'第3回合' ,则可写成:
   check 说话,1-20,like,魔法牌主持人:???? 战斗
   或 check 说话,1-20,like,魔法牌主持人:* 战斗

   2.不check '战斗' ,则可写成:
   check 说话,1-20,like,魔法牌主持人:第3回合 ??
   或 check 说话,1-20,like,魔法牌主持人:第3回合 *

   3.不检测'魔法牌主持人:' ,则可写成:
   check 说话,1-20,like,???????第3回合 战斗
   或 check 说话,1-20,like,*第3回合 战斗
   *********************
   跳转符号说明:
   除默认的 [+行|-行|标签]外,也含有以下命令:
      goto 标签名称
call 标签名称
return
end

运行脚本指令:
run \01.【内建脚本】\flyto加加村.ASC
run test.ASC   '同一脚本目录下,直接run 脚本名字.ASC 不需要路径.

wait 地图,编号 [,错误跳转]
wait 对话,行号,内容 [,错误跳转]
wait 说话,1-20,内容 [,错误跳转]
wait 道具,{列表|名称},{名称|数量} [,错误跳转]'内挂暂时不支持该指令
wait 宠物,{列表|名称},{名称|数量} [,错误跳转]'内挂暂时不支持该指令
wait 座标,X,Y [,错误跳转]'内挂暂时不支持该指令
waitmap num,dly [,errlabel]
waitpos x,y,dly [,errlable]
waitdlg txt,num,dly [,errlabel]
waititem items,name,dly [,errlabel]
waitpet indexs,name,dly [,errlabel]
waitsay nums,text,dly [,errlabel]
'***********************
'变量指令
'***********************
'@变量符号(不分大小写),变量必须经过定义方能使用
'不合法的变量字符 是=,@,[ 和空格
'所有命令参数输入都可以以变量作输入
'系统变量不能定义,赋值,判断,输入
dim [-]@a [,[-]@b,[-]@c,[-]@d,[-]@e]'一个命令最多能定义5个变量,[-]为删除变量
let 变量,{=|+|-|*|/},{数值|字符串}'赋值和变量计算
if 变量,{=|<|>|<=|>=|!=},{数值|字符串},跳转   '变量判断
input 变量 [,提示文字,标题文字]'变量输入框

赋值的特别计算参数:
数值:
INT         取数值的整数部分(内挂和ASSA写法不同)
RND         取一个乱数
ABS         取数值的绝对值

内挂特有随机数写法,格式为 let @a,rnd,最小值,最大值
let @s,rnd,0'生成一个随机数
let @s,rnd,1,10'生成一个1-10的随机数
let @s,rnd,2,100'生成一个2-100的随机数

let 变量,left,数目          '取左边字符
let 变量,right,数目      '取右边字符
let 变量,lcase                '把字符转为小写(暂未支持)
let 变量,ucase                '把字符转为大写(暂未支持)
let 变量,trim               '去除左右空格
let 变量,ltrim                '去除左边空格(暂未支持)
let 变量,rtrim                '去除右边空格(暂未支持)
let 变量,mid,位置,数目 '取指定数目字符(暂未支持)
let 变量,replace,查找字符,覆盖字符      '把查找出的字符转为覆盖字符
let 变量,get,查找字符1 [,查找字符2]      '取查找字符1与查找字符2之间的字符


例1:
dim @x, @y
let @x,=,5
let @y,=,10
label xx
walkpos @x,@y
let @y,+,2
if @y,>=,22,+2
goto xx
end
例2:
dim @name,@name2
let @name,=,小明
let @name2,=,END
input @name,请输入你的名字
if @name,=,@name2,+4
let @name2,=,我的名字是:
let @name2,+,@name
msg @name2
end



系统变量名称:

@[说话.1] ... @[说话.20]'直接打在屏幕上的文字
@[对话.1] ... @[对话.20]      '和npc对话后输出对话框的第一行
@[装备名称.1] ... @[装备名称.9]'人物身上的装备名称
@[道具名称.1] ... @[道具名称.15]'背包栏里的物品

@[人物名称]
@[人物等级]
@[人物血量]
@[人物气力]
@

@[宠物名称.1] ... @[宠物名称.5]
@[宠物等级.1] ... @[宠物等级.5]
@[宠物血量.1] ... @[宠物血量.5]
@[宠物攻击.1] ... @[宠物攻击.5]
@[宠物防御.1] ... @[宠物防御.5]
@[宠物敏捷.1] ... @[宠物敏捷.5]


@[鼠标X]
@[鼠标Y]
@[座标X] '也可以写为@
@[座标Y] '也可以写为@

@[地图编号] '也可以写为@[地图]
@[地图名称]
@[战斗回合]
@[石币]
@[日期]    '格式2022-06-21
@[时间]    '格式18:50:20
@       '电脑开启时间,返回毫秒
@    '电脑开启时间,返回秒
@[寻找NPCID.萨姆吉尔] 'let @NPCID,=,@[寻找NPCID.萨姆吉尔]
@[寻找道具.新手兜] '查找道具栏的装备名,输出位置,道具栏的第一格为编号9,最后一个为23
@[寻找宠物.乌力] '查找宠物会输出宠物在宠物栏中的位置编号1-5






chpet 1-5 [,mode]'换宠
   or chpet {战宠|骑宠}, pet
doffpet 列表(1|2|3-5)|[?]名称[,x,y]
doffstone 数值[,x,y]'丢钱
save 数值    '存钱
load 数值    '个人银行取钱,load 家族银行,数值
mail 名片列表(1|2|4-8),邮件信息
petmail 名片编号(1..80),{道具(1|3|4-6)|[?]名称}[,1]'1等待寄出
get {道具列表|名称} [,x,y]
put {列表1|2-5|名称} [,x,y]
buy {列表|名称},{*|数量}[,x,y]*自动买满空位置
sellitem {列表|名称},{*|数量}[,x,y]*道具的堆叠数
doffitem {列表(1|2|3-5)|[?]名称}
useitem {列表(1|2|3-5)|[?]名称},对象(0..5) [,x,y]
moveitem 编号(1|2|3-9),道具(1|2-9)|? '装备编号 101..109
usemagic {魔法编号|魔法名称},对象(0..5)[,x,y]
usefunc {技能编号|技能名称}
ll {0|宠物编号1-5},{技能名称|技能1-7},道具列表   '料理命令

set 加速,{0|(1-14)}
set 脚本延时,0-250
set 走动遇敌,{0|1}
set 快速遇敌,{0|1}
set 走动步数,{1-9}
set 快速延迟,(1-250}
set 快速行走,{0|1}
set 穿墙行走,{0|1}
set 自动战斗,{0|1}
set 快速战斗,{0|1}
set 自动捉宠,{0|1}
set 自动逃跑,{0|1}
set 自动KNPC,{0|1}
set 原地保护,{0|1}
set 落马逃跑,{0|1}
set 关闭特效,{0|1}
set 隐藏石器,{0|1}
set 屏蔽人物,{0|1}
set 自动猜谜,{0|1}
set 组队,{0|1}
set 决斗,{0|1}
set 名片,{0|1}
set 交易,{0|1}
set 队伍频道,{0|1}
set 密语频道,{0|1}
set 家族频道,{0|1}
set 职业频道,{0|1}
set 对话储存,{0|1}
set 锁定时间,{0|(1-5)|下午|黄昏|午夜|早晨|中午}
set 指定攻击,{0|(宠物名称1|宠物名称2..)}
set 锁定攻击,{0|(宠物名称1|宠物名称2..)}
set 指定逃跑,{0|(宠物名称1|宠物名称2..)}
set 自动登陆,{0|1}
set 断线重登,{0|1}
set 缩短等待,{0|1}
set 登陆主机,1...
set 登陆副机,1-8
set 登陆人物,1-3
set 自动加点,{0|(体力:n|腕力:n|耐力:n|速度:n)}
set 来信显示,{0|1}
set 自动回信,{0|回信内容}
set 经验显示,{0|1}
set 吃鱼鳃草,{0|1}
set 吃智慧果,{0|1}
set 自动堆叠,{0|1}
set 吃补血肉,{0|1}
set 丢非血肉,{0|1}
set 平时补气,{0|1-250}
set 锁定骑宠,{0|宠物名称|(1-5)}   0关闭, 1-5锁定编号 或宠物名称
set 锁定战宠,{0|宠物名称|(1-5)}   0关闭, 1-5锁定编号 或宠物名称
set 转换战宠,{0|(1:n|2:n|3:n|4:n|5:n)}
set 丢弃中为,{0|(1|2|3-5)},{道具名称1|道具名称2...}
set 丢弃中非,{0|(1|2|3-5)},{道具名称1|道具名称2...}
set 首次延迟,{0|0.1-9.9}
set 攻击延迟,{0|0.1-9.9}
set 最少时间,{0|0.1-9.9}
set 遇敌延迟,{0|0.1-9.9}
set 战斗补气,{0|1-250}
set 嗜血补气,{0|1-250}
set 人物首次,{0|技能名称|(1-34)}
set 人物间隔,{0|技能名称|(1-34)},{2-9}
set 人物一般,{技能名称|(1-34)}
set 战宠首次,{0|技能名称|(1-7)}
set 战宠间隔,{0|技能名称|(1-7)},{2-9}
set 战宠一般,{技能名称|(1-7)}
set 精灵补血, { 帽子 | 衣服 | 武器 | 左饰 | 右饰:百分比 }
注释:本命令主要用于战时补血
例如:set 精灵补血, 衣服:70 % '战时血量低于70%时,衣服精灵补血

set 超回合数逃跑,{0|1}'后面的数字可以控制具体多少个回合
set 被飞换宠,{0|1}
set 宠被飞逃跑,{0|1}


'捉宠设置
set 捉宠等级,{0|1-255}
set 捉宠名称,{0|(宠物名称1|宠物名称2..)}
set 捉宠血量,{0|1-5000}
set 捉宠魔法,{0|1-5}
set 捉宠人物技能,武器:20%
set 捉宠宠物技能,技能编号(0-6)
set 捉宠无宠动作,自动战斗|自动逃跑


内挂新增功能:
脚本加入 读取\保存配置指令
格式:
读取配置 文件名.opt
保存配置 文件名.opt(如果文件名缺省则使用角色名.opt)

excard '名片交换
delcard 1'删除第一张名片,数字可改
findpath 77,55'尝试寻路到指定坐标,无法避开障碍物













dwemaila 发表于 2022-5-2 21:17:20

石器时代SO好样的

dwemaila 发表于 2022-5-2 21:35:01

平时用道具栏里道具的精灵加血的功能希望能加上

石器SO 发表于 2022-5-3 08:06:23

dwemaila 发表于 2022-5-2 21:35
平时用道具栏里道具的精灵加血的功能希望能加上

指令是?

z18367675775 发表于 2022-5-5 09:56:51

1、平时补血的assa没有指令靠set完成
2、恩惠会卡掉勾选,治愈宠物时会卡掉勾选
3、check指令中的 等级检测只能使用!=和=,还是大于小于可以用(看介绍是不能)?
4、别的帖子中有提到 check道具的*和?都是全匹配,那么ifitem是否也是全匹配?
5、waitsay的文字部分是否支持变量?还是说书写错误
6、assa中部分省略可以执行,内挂是否能做到?例如:W ,, cc中无坐标2步。

疯狂的豆丁 发表于 2022-5-22 17:46:06

z18367675775 发表于 2022-5-5 09:56
1、平时补血的assa没有指令靠set完成
2、恩惠会卡掉勾选,治愈宠物时会卡掉勾选
3、check指令中的 等级检 ...

内挂可以用>< !这里说的是<>一起用是不等于的意思。内挂里面可以用!=代替

waei 发表于 2022-5-23 15:00:55

set 队伍频道,{0|1}
set 密语频道,{0|1}
set 家族频道,{0|1}

芳总想问下,既然可以脚本指令设置频道的开关,那在对应频道说话的指令是什么啊?
页: [1] 2 3 4 5 6
查看完整版本: 内挂基础指令大全(部分可能待修正)