找回密码
 立即注册
查看: 1965|回复: 1

石器时代Assa外挂脚本各指令详解

[复制链接]
发表于 2019-7-17 15:46:36 | 显示全部楼层 |阅读模式
||绿色字体为用途说明或者例子
||蓝色字体为指令运行结果
||红色字体为注意内容
||橙色字体为脚本指令
||x,y表示坐标
||' 号后面表示解释代码
||小括号()内表示为解释脚本代码中文意思
||中括号[]内表示为可选代码,实际编写脚本的时候可以不用上去
||大括号{}内表示一定要用上的代码,实际编写脚本的时候不用上去会出错
||这里所说的时间单位为S/秒,delay (延时)命令除外


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

say感谢你使用Assa脚本
say感谢你使用Assa脚本,4
'这里说出来的话是显示为黄色的:感谢你使用Assa脚本
say感谢你使用Assa脚本,4,15,14
'在坐标15,14上说出字体为黄色的:感谢你使用Assa脚本

print感谢你使用Assa脚本
'用这个命令说话只显示在你的电脑上,其它玩家是看不到的
print感谢你使用Assa脚本,3
'在你屏幕上显示出来的话是蓝色的:感谢你使用Assa脚本
print感谢你使用Assa脚本,3,12,13
'在坐标12,13上显示出字体为蓝色的:感谢你使用Assa脚本
…………


∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【msg】(弹出窗口)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
msg 想要在窗口显示的内容[|] '|表示换行
例子:

msg 感谢你使用Assa脚本
msg 感谢你使用Assa脚本|感谢你使用Assa辅助软件|||欢迎光临http://bbs.shiqi.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】(清屏)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
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】(等待地图)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
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


因最近7.0服务器速度缓慢,出现对话框时难免会比较慢,可能会出现类似“waitmap”注意事项里的错误,请各脚本编写员留意并想办法解决好。


ifdlg 对话框内容,对话框行数[,正确跳转] '只要对话框内容符合脚本ifdlg中指定行数的内容,就执行正确跳转的指令
此指令用途为可以指定内容对话框的弹出,只要弹出了指定的内容脚本会执行正确跳转指定的指令


SAY 感谢你使用广二-杰哥2005.3.12为你制作的全智能二转MM喂挂看风景脚本,4
waitdlg ?,0,5,-8
'不管对话是什么内容,只要弹出窗口就执行下一个”ifdlg”指令,一般这里的不判断内容的等待对话框指令后面要跟”ifdlg”来配套使用,这样既能解决一些会变化的,不固定的对话框等待(因为有时会遇敌,所要要加等待对话框命令,但那个对话框出现的内容是不固定的,所以就不能在等待对话框里加判断,要用ifdlg来判断,例如做二转MM时的喂水的那个NPC) 又能解决对话框判断的问题
ifdlg 哇,你带来了很漂亮的宝石呢。,1,+2 '判断对话框的第1行是否为” 哇,你带来了很…..”,是的话则跳转到+2行,否则就执行下一行指令”ifdlg 你已经有一条灵石,1,err”

ifdlg 你已经有一条灵石,1,err '判断对话框的第1行是否为”ifdlg 你已经有一条灵石”,是的话就跳转到”err”,否则就执行下一行
button 确定
waitdlg 了喔。,2,5,-12
'如果5秒内第2行没出现包含有”了喔。”对话框,就跳转到 -12行
button OK
delay 500
walkpos 49,48
w 49,48,C
SAY 感谢你使用广二-杰哥2005.3.12为你制作的全智能二转MM喂挂看风景脚本,4
waitdlg ?,0,5,-3
delay 500
ifdlg 还好嘛,害我以为是很稀奇的珍宝呢…,3,+5
ifdlg 的运气真的不错喔!,4,+10
ifdlg 普普通通的嘛,真让我失望阿。,3,+3
ifdlg 质地有点差,差强人意啦!,3,+2
ifdlg 呃…虽然不好明讲,不过质地很差呢…,3,+1
'
button 确定
delay 100
doffitem ?风灵项炼
delay 500
goto 换极品风项炼
'
button 确定
delay 500
goto 戴极品风项炼

'

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

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



mousemove X,Y

用途:把鼠标移动到某坐标

--------------------------------------------------
lclick X,Y

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

用途:在某坐标位置上单击鼠标右键
--------------------------------

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

例子:
Say hi
waitdlg ?,0,4,-1
button 下一页
waitdlg 你想接这个任务吗?,1,5,-3
button 确定
waitdlg 麻烦你了,1,5,-5
button OK


当窗口出现对话框时,发送封包点击对话框下面的按钮。
与“lclick”指令对比——优点:即使图形加速有问题导致对话框的出现很卡或者鼠标在石器窗口里胡乱移动也可以点击成功
缺点:有时候窗口没有该按钮(如指令是button 确定,但实际上对话框只有“下一页”而没有“确定”按钮)有可能会点击不成功或造成掉线



∽∽∽∽∽∽∽∽∽∽∽∽∽∽【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,{[a..h|aa..hh|A..H]} '这个指令也可以让人物转向,如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
set 快速战斗,0
set 捉宠等级,50
'设置捕捉50级的宠物
set 捉宠名称,卡特|史克杰|史菲洛
set 捉宠名称,那提拉
set 捉宠名称,0
'设置捕捉宠物名称选项前面的勾去掉
set 捉宠等级,0
'设置捕捉宠物等级选项前面的勾去掉
set 捉宠魔法,3
'设置用武器精灵捕捉宠物
set 锁定攻击,扑满乌力|吉比




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

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

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


∽∽∽∽∽∽∽∽∽∽∽∽∽【buy】【购买道具】指令∽∽∽∽∽∽∽∽∽∽∽∽∽
buy {道具名|道具索引1-n},数量[,x,y] '这个命令可以直接站在NPC面前,不用说话都可以买到道具,封包命令

详尽的料理材料购买目录,请参考情报STW脚本指令详解〖村庄购物指南〗

例子:
walkpos 25,26
walkpos 25,28
W 25,28,C
'人物方向向东
say 买
waitdlg 店,1,5,-4
buy 12,5
’购买从第一页第一个数起,第十二个的物品,买五个


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



∽∽∽∽∽∽∽∽∽∽∽∽∽【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},道具名称,等待时间[,错误跳转] '等待道具


例子:
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行执行脚本



∽∽∽∽∽∽∽∽∽∽∽∽【get】【put】(取得)(寄放)指令∽∽∽∽∽∽∽∽∽∽∽∽
get {道具名|道具索引1-n} '封包命令,取道具
put {道具名|道具索引1-15} '封包命令,存道具

一定要打开个人寄放店窗口或者仓库寄放店窗口才能使用,打开的方法很简单,可以不用lclick鼠标左击命令,直接用button命令来打开,这样不容易出错,下面的例子将介绍

寄放失败没问题,领取失败也不会出现问题,现脚本指令支持个人寄放店和仓库的领取和寄放

例子:

say 我要存进个人寄放店一些东西
waitdlg 欢迎光临,1,5,-1
button 1
'这个button 1就是在欢迎光临对话框下打开个人寄放店存东西的对话框的,button 2就是取的对话框
put 飞行至萨
'这个就是把萨村羽毛存进寄放店里了,只要带有”飞行至萨”的东西都会给一起存进去,所以有时候可以把名字写清楚点,
put萨姆
'这个就是含有”萨姆”2个字的道具存进寄放店,当你的身上有萨姆吉尔首饰和萨村羽毛的时候,都会一起存进去


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


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


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



∽∽∽∽∽∽∽∽∽∽∽∽【join】(组队和脱离团队)指令∽∽∽∽∽∽∽∽∽∽∽∽
join mode [,x,y] 'mode:=组队,0=脱队,后面的坐标一般都没有用

加入团队的指令,前方必须有人打开组队,即使组队了继续发送指令也不会有问题,进入战场再发送指令并且前方有人打开组队状态可能会造成掉线
例子:

join 1 '加入团队,这个命令可以在一些无法按加入团队按钮的地方使用,比如成人礼的洞,五兄弟的
join 0 '脱离团队



∽∽∽∽∽∽∽∽∽∽∽∽【mail】【petmail】(邮件)(宠物邮件)指令∽∽∽∽∽∽∽∽∽∽∽∽
mail {对方名片位置(1-80),邮件内容}

发送宠物邮件给名片上的人
例子:

mail 5,你好吗? ’发送邮件内容为“你好吗?”给你名片匣位置5的玩家
mail 1-40,你最近怎么样?
’发送邮件内容为“你最近怎么样?”给你名片匣位置1-40的玩家


petmail {对方名片位置(1-80),道具索引1-15} [,mode] '宠物邮件 mode=1 等待任务完成
格式1:petmail 1,1|2|3-5 '把道具1-5中寄出给名片位置1的玩家
格式2:petmail 1,不可思议的贝壳 '把道具1-15中为不可思议的贝壳 的全部寄出给名片位置1的玩家
格式3:petmail 1,?不可思议的贝壳 '在道具1-15中找到第一个的不可思议的贝壳寄出给名片位置1的玩家

例子:

mail 5,2-4 ’发送宠物邮件道具为道具栏上2-4格给你名片匣位置5的玩家
mail 15,聪明的豆子3
’发送宠物邮件道具为道具栏上所有聪明的豆子3给你名片匣位置15的玩家


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

简单的说标记实质是为脚本设置一个点,让脚本到达某个时候或者达到/不能达到某个条件时跳到这个点上继续执行其他指令跳转,就是无条件跳到某个标记的指令


∽∽∽∽∽∽∽∽【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”指令,才能使指令“从那里来,就回到那里去”

∽∽∽∽∽∽∽∽∽∽【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位置顺序
“{==|>|>=|<|<=}” 代表 “{等于|大于|大于或等于|小于|小于或等于}”


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

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

'中间的代码省略

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

∽∽∽∽∽∽∽∽∽∽∽∽∽【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



∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【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个素材或道具






新增指令介绍:
这些指令如果要在脚本中实现...就不能直接在脚本指令那里输入如/cls..这样是无效的...
要配合say指令
如:
say /ac 0 '人物做出攻击动作
say /cls '清屏


这些指令直接在石器窗口里输入就行了
比如:
/load 20000 '取出个人银行2万石币
/loadz 20000 '取出家族银行2万石币


/cls 清屏
/pk 对战
/lb 观战
/pickup 检身边物品
/ac [0..12] '人物动作
0 攻击
1 受伤
2 晕倒
3 站立
4 走动
5 坐下
6 挥手
7 高兴
8 生气
9 悲伤
10 防御
11 点头
12 投掷

/ma 表情动作


/help [0..1] 求助关闭/开啓
/join [on..off] 加入队伍/脱离队伍
/name [text] 更改人物称号
/pname [pet no.] [text] 更改宠物名字.例:/pname 4 贝.
/load [数字] 取出个人银行x钱.
/loadz [数字] 取出家族银行x钱
/save [数字] 存入个人银行x钱
/savez [数字] 存入家族银行x钱
/drop [数字] 丢出x石币
/log [1..3] 控制人物登出登入原登等
/back [text] 回复最后来信的人
/ver 查看当前版本







道具栏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)。
公益石器时代欢迎您!
回复

使用道具 举报

发表于 2019-12-12 20:09:41 | 显示全部楼层
这很给力
公益石器时代欢迎您!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|公益

GMT+8, 2024-11-21 17:32 , Processed in 0.125650 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表