事实胜于雄辩 我这里有一个采矿和伐木的脚本 大家可以试试看 看能不能在后台工作 大家只要将下面这个脚本贴在EZS的脚本区就可以了 注意将变量设好哦 
Repeat var1 //var1是走动的步数
 Repeat var2  //var2是在一个点采矿的次数
 SendKey(112)  //你采矿的快捷键 112是F1的扫描码
 Delay(3500)   
 Left Click pos1 //pos1是采矿点1
 Delay(6500)
 End Repeat
 SendKey(33)
End repeat
SendKey(35)  //转身
Repeat var1
 Repeat var2
 SendKey(112)
 Delay(3500)
 Left Click pos2
 Delay(6500)
 End Repeat
 SendKey(35)
End repeat
SendKey(33)
viper
2002-07-24 09:34:16
0樓
EZScript II 【Script語法】 by Li-chieh Wang ([email protected])
--------------------------------------------------------------------------------
 
【變數】

目前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
 
 
 
viper
2002-07-24 09:38:25
1樓
EZScript II【UO-Plugin】 -------------------------------------------------------------------------------- 以下指令功能只適用在UO。 【延伸指令】 SellItem 數量用途:賣指定數量的物品。若物品可堆疊,則只會賣一個。在賣之前先把Sell視窗打開,並且不要移動視窗。範例://賣前20個物品sellitem 20stop --------------------------------------------------------------------------------SendMacro(編號)用途:(需有UOAssist)送出UOAssist裡的對應的編號macro。macro送出後會等待UOAssist動作完成後再繼續下一個指令。在使用SendMacro時要注意,儘量不要隨便對EZScript視窗做操作,否則可能造成一直呈現等待狀態,這時請按暫停/繼續按鈕即可。範例://送出編號#1的macrosendmacro(1) --------------------------------------------------------------------------------Drag 數量 from 來源 to 目的 用途: 搬指定數量的物品從指定的來源到目的。數量若輸入all表示全部搬過去。範例://搬3個物品從pos1到pos2Drag 3 from pos1 to pos2 --------------------------------------------------------------------------------WaitForWghtChange(時間)WaitForWghtDec(時間)WaitForWghtInc(時間)用途:(需有UOAssist)和Delay相似,差別在於在身上重量有變化時就不再等待。WaitForWghtChange(時間)-重量改變WaitForWghtDec(時間)-重量減少WaitForWghtInc(時間)-重量增加範例://等待10秒,或身上重量改變就結束等待WaitForWghtChange(10000) --------------------------------------------------------------------------------Skill[編號]sSkill[編號]用途:(需有UOAssist)取得對應編號的技能值。編號範圍為0~48剛好對應UO裡的49個技能。sskill是表面值,skill是真實值。範例:var1=skill[11] --------------------------------------------------------------------------------STRHITSINTMANADEXSTAMWGHTMAXWGHTNowXNowY用途:(需有UOAssist)傳回人物目前的狀態。範例://取得人物目前的加量值var1=str//傳回人物目前所在的X座標var1=nowx --------------------------------------------------------------------------------BPBMMRSSSAGAGINSUSER1USER2用途:(需有UOAssist)傳回人物目前的資源數量。範例://傳回目前有多少藥草SSvar1=ss
viper
2002-07-24 09:59:41
2樓
o 我有兴趣看你砍树的脚本。。。挖矿的。技能一百的情况下当然可以后台运行了。。UOAP也可以的。
:)
zerg
2002-07-24 23:07:32
3樓