[轉貼]EZScript II 【Script語法】 by Li-chieh Wang (ajax@seed


版主: Rainteteqeijimmy苦魚@w@J.C.J.Schneider

回覆文章
art0709
高級玩家
高級玩家
文章: 650
註冊時間: 週五 8月 08, 2003 1:30 pm

文章 art0709 » 週三 12月 31, 2003 3:50 pm

*memo*
8)

monster0214
高級玩家
高級玩家
文章: 354
註冊時間: 週六 5月 31, 2003 10:38 pm

文章 monster0214 » 週三 12月 31, 2003 1:12 am

看到都傻眼了@@a :lol:
圖檔
跑呀跑呀~~跑到很遙遠的西方去阿~~!!
一直向西方走就能看見我了
新手Hammer Fall~
msn: monster0326@kimo.com

taipeiwolf
頂級玩家
頂級玩家
文章: 1846
註冊時間: 週六 6月 01, 2002 9:53 pm

文章 taipeiwolf » 週二 12月 30, 2003 3:58 pm

看到頭昏....所以當初選擇混硬體不選軟體 :o :o :o
台北色狼的ODY教學筆記本網址如下
http://mypaper.pchome.com.tw/news/odywolf
需要下載UOLOOP,EZS,EZS2 ,UOA,Client2.3b5請至下列網址下載
http://cid-e11eb9999a175a5c.skydrive.li ... .Public/UO

jeff_cheng1260
頂級玩家
頂級玩家
文章: 1419
註冊時間: 週五 10月 18, 2002 9:04 pm

[轉貼]EZScript II 【Script語法】 by Li-chieh Wang (ajax@seed

文章 jeff_cheng1260 » 週二 12月 30, 2003 8:09 am

EZScript II 【Script語法】 by Li-chieh Wang (ajax@seed.cx)
--------------------------------------------------------------------------------

【變數】

目前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 座標
MouseMoveEX 座標

用途:

模擬滑鼠移動到座標處。

範例:

//移動游標到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
Account I.D== Louis Vuitton
圖檔

回覆文章

回到「[Wolves] 狼寨」

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 9 位訪客