【变数】
目前EZScript II提供66个变数供使用,分别是Var1~Var8,Pos1~Pos8,ExtVar[n]。
ExtVar[n] n的范围为0~49
用法: extvar[11]=var1 var2=extvar[3]
您也可以用变数来控制阵列位置 如把extvar[0]~extvar[49]全设为1
var1=0
while var1<50
extvar[var1]=1
var1=var1+1
wend
【运算语法】
名称 |
范例 |
结果 |
加法 |
var1+var2 |
把var1加上var2 |
减法 |
var1-var2 |
把var1减掉var2 |
乘法 |
var1*var2 |
把var1乘上var2 |
除法 |
var1/var2 |
把var1除以var2 |
取馀数 |
var1%var2 |
把var1除以var2取馀数 |
【条件语法】
条件 |
用法 |
等於(=) |
var1=var2 |
大於(>) |
var1>var2 |
大於或等於(>=) |
var1>=var2 |
小於(<) |
var1 |
小於或等於(<=) |
var1<=var2 |
不等於(!=) |
var1!=var2 |
且(&&) |
var1=1 && var2=3 |
或(||) |
var1=1 || var2=3 |
条件语法通常配合if或while使用。
【流程控制】
if...elseif...else...end if
用法:
条件成立则执行if...end if里的叙述。
if 条件 叙述 end if
范例:
if var1>3 say "hi!!" end if
if 条件 叙述 elseif var1=10 叙述 end if
if var1>3 say "hi!!" else say "bye!!" end if
while...wend
用法:
条件成立则执行while...wend里的叙述。
while 条件 叙述 wend
范例:
while var1<100 var1=var1+1 wend
repeat...end repeat
用法:
重覆执行repeat...end repeat里的叙述。 次数可直接用数字也可用变数或运算式。
repeat 次数 叙述 end repeat
范例:
repeat 100 var1=var1+1 end repeat
repeat var2 var1=var1+1 end repeat
break
用法:
离开目前的repeat...end repeat或while...wend回圈。
范例:
while var1<100 var1=var1+1 var2=var2*var1 if var2>30 break end if wend
标记
标记的格式为名称:
范例:
Label:
good:
jump 标记
跳到指定的标记处。
用法:
jump 标记
范例:
add: var1=var1+1 jump add
on..jump
resume
条件成立则触动jump指令。 on...jump检查条件时机在on..jump後的所有指令,直到最後一行或有其他的on...jump。 on...jump之前的script不会检查。 一但触动jump,会停止目前的script,直接jump到指定标记处。 配合resuem可以回到触动条件成立时的script位
用法:
On var1=1 Jump ext
范例:
on var1=1 jump ext ... ... //下面这行会触动jump而到ext标记处执行 var1=1 //在resume後会从此处继续执行 var2=2 ... ...
ext: var1=0 resume
stop
结束script执行,即按了停止键。 将stop放在script最後一行,则script只会执行一次
范例:
var1=var1+1 stop
call return
call会跳到标记所指的位置,并记录目前执行的位置 return则是回到上一个call位置
用法 call 标记 stop
标记: return
【键盘字元相关指令】
SendKey(按键码) KeyPress(按键码)
用途:
模拟按下键盘动作。
范例:
//以下皆为送出F1(模拟按了F1键) SendKey(112) KeyPress(112)
//alt+F1 SendKey(alt+112) KeyPress(alt+112) //ctrl+alt+F1 SendKey(ctrl+alt+112) KeyPress(ctrl+alt+112)
Say "字串" Text "字串" KeyString "字串"
用途:
模拟打字动作。 Text和KeyString功能相似,但Text不会影响你目前的键盘操作。 Say会在送完字串後再送出一个Enter键,Text和KeyString则否。 KeyString可以用"\n"来送出Enter键。 注意,KeyString无法用中文,Say及Text可以是中文字串。
范例:
Say "Hi!!你好!!" Text "Hi!!你好!!" KeyString "Hi!!"
//打完字後模拟按Enter KeyString "Hi!!\n"
如果想把某个变数或运算式结果说出来,可以用$[运算式(或变数)] 如我要列出var1的值: KeyString "$[var1]\n"
或如我要列出22*33的值: KeyString "$[22*33]\n"
Echo "字串" 用途:
模拟打字动作。用法和Say、Text、KeyString类似。 这个指令较特别,你必须先将滑鼠游标移到要输入的范围内(只要是范围内即可,不用在起点),然後再使用Echo "字串"
范例:
//Pos1为输入对话框的座标位置 MouseMove pos1 Echo "Hi!!你好!!\n"
KeyDown(按键码) KeyUp(按键码)
用途:
模拟按下或放开某个键。 若用了KeyDown而没用KeyUp放开, 则被按下的按键会一直保持著按下的状态。
范例:
//按下按键A不放 KeyDown(65) //放开按键A KeyUp(65)
WaitKey
功能:等待按键并传回按键码 这个指令可单独使用或配合指定或条件式 如: waitkey 或 var1=waitkey 或 while(waitkey!=27) wend
ScanKey
功能:传回按键码 这个指令无法单独使用需配合指定或条件式 PS.这指令功能和waitkey一样,只不过不会等待按键输入,若没按任何键则传回0 如: var1=scankey 或 while(scankey!=27) wend
【mouse指令】
Left Click 座标 Left DbClick 座标(位置) Left Down 座标(位置) Left Up 座标(位置) Right Click 座标 Right DbClick 座标(位置) Right Down 座标(位置) Right Up 座标(位置)
用途:
模拟滑鼠按键动作。 用法和键盘指令类似。 若用了Left Down或Right Down而没用Left Up或Right Up来放开, 则该键会一直保持被按下的状态。 座标若是NoPos,则表示在目前座标处做动作(类似滑鼠连点功能)。
范例:
//在Pos1座标处按下点一下左键 Left Click Pos1
//在Pos1座标处按下左键不放 Left Down Pos1
//在目前游标座标处按下左键 Left Click NoPos
Left ColorClick 颜色 左上角座标 右下角座标 Left Color DbClick 颜色 左上角座标 右下角座标
用途:
在指定座标范围内点选或双击符合颜色值的第一个座标。
范例:
//在Pos1座标及Pos2座标范围内双击符合颜色Var1的第一个座标 Left Color DbClick Var1 Pos1 Pos2
MouseMove 座标
用途:
模拟滑鼠移动到座标处。
范例:
//移动游标到Pos1处 MouseMove Pos1
MoveFlag
功能 当moveflag=0时(预设) 在执行click动作时和以前一样
当moveflag=1时 则会自动移到该点再执行click动作
如 left click pos1 left click pos2 left click pos3
游标并不会移到pos1~3(除非有把滑鼠锁定打勾) 若要移到该处需用mousemove 如 mousemove pos3 left click pos3
现在你可以用 mouseflag=1 left click pos1 left click pos2 left click pos3 如此,在执行click前游标便会移到pos1~3处... 而不需用mousemove了
在使用时会以最近的一次设定为主 如 moveflag=1 left click pos1 left click pos2 left click pos3 moveflag=0 left click pos4 left click pos5 left click pos6
黄色那3行会做游标移动的动作 而红色3行则不会
【座标转换指令】
Xy2Pos[X座标,Y座标]
用途:
把x,y形式表示的座标转成Pos位置格式。
范例:
//指定pos1座标为(100,200) pos1=xy2pos[100,200]
x2pos[x偏移量] y2pos[y偏移量]
以上2个和xy2pos一样,只不过独立出来
【颜色相关指令】
Color[位置]
用途:
传回指定位置的颜色值。
范例:
//取得Pos1座标的颜色值 var1=color[pos1]
GetColorPos[颜色值,左上角,右下角]
用途:
取得范围内符合颜色值的第一个座标。
范例:
//取得pos1,pos2范围内符合颜色值var1的第一个座标 var2=GetColorPos[var1,pos1,pos2]
【时间日期指令】
Time Timer
用途:
传回时间值。 Time传回从西元1970年至现在所经过的秒数。 Timer传回系统的clock时间,单位为ms(千分之一秒)
范例:
var1=time
year month hour day minute second
功能:传回目前时间值(年,月,日,时,分,秒) 这个指令无法单独使用需配合指定或条件式 如: //传回目前是几点到var1
var1=hour
【其他指令】
Delay(时间)
用途:
延迟指定时间。 时间单位为ms(千分之一秒)。
范例:
//等待2秒 delay(2000)
Rand[范围]
用途:
传回指定范围内的整数乱数。
范例:
//取得0-99的整数乱数 var1=rand[100]
Beep
用途:
发出哔声。
范例:
//发出哔声 beep
ReadMemory[address,type] 取得记忆体某位址的值 这功能不能用"工作中视窗"..请注意....
用法: address为记忆体位址 你可以用10进位或16进位 16进位表示法为 0x0000a 记住"0x"为16进位表示
type为读取格式 共有0,1,2三个值可用 0表示读1个byte 1表示读2个bytes 2表示读4个bytes
这个功能有什麽用呢? 你可以用GM7找到游戏中的某个数值的记忆位址 比如体力好了...位址为004DE19A,大小为1byte
那你想要做到体力如果小於10就补充体力 可以这样写 if ReadMemory[0x004DE19A,0]<10 then ...补充体力.... end if
interval
用法 interval=数值(千分之一秒)
如 interval=100 //以下每个指令间隔为0.1秒 repeat 10 var1=var1+1 end repeat
interval=1 //以下每个指令间隔为0.001秒 repeat 10 var1=var1+1 end repeat
表示每个指令间的时间间隔为0.1秒
预设内定值为1(即0.001秒)
注意若设成0,会造成CPU被100%占用住.... 所以若非特别需要,请最少设成1
|