|
Mark 方便各位随时学习查询
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【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脚本
print感谢你使用Assa脚本 '用这个命令说话只显示在你的电脑上,其它玩家是看不到的
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【msg】(弹出窗口)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
msg 想要在窗口显示的内容[|] '|表示换行
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【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行
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【cls】(清屏)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
cls
用途:用了此指令,除了有可以清除屏幕的文字的作用,还必须用此指令来消除“waitsay”的屏幕信息,不至于让“waitsay”混淆了之前和之后的信息。
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【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后面加延时的习惯
注意:①“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”指令)。
∽∽∽∽∽【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下才能用这个指令,否则会出错
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【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 ’出售第十二格的道具五个(道具被叠加后)
∽∽∽∽∽∽∽∽∽【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个字的道具存进寄放店,当你的身上有萨姆吉尔首饰和萨村羽毛的时候,都会一起存进去
∽∽∽∽∽∽∽∽∽∽∽∽【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},{=|!=},{名称|说明|空位},{跳转符号} '判断装备,本教程最后有装备具体位置代码
}
∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽【ifstone】(判断石币)指令∽∽∽∽∽∽∽∽∽∽∽∽∽∽∽
ifstone {=|!=|<|<=|>=|>},数值,{跳转符号}
∽∽∽∽∽∽∽∽∽∽∽∽∽【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一样```
|
|