【變數】
目前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
|