事实胜于雄辩 我这里有一个采矿和伐木的脚本 大家可以试试看 看能不能在后台工作 大家只要将下面这个脚本贴在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樓 |