Macros頁
這一頁的作用極端重要,對於Razor整個機制的理解,從新手轉向高手的跳躍,都是從這一部分開始. (圖會補上的)
左側顯示的是巨集的名稱,點擊後將在右側顯示該巨集的內容,如果是新建巨集則為巨集.
左側New...按鈕即為新建一個巨集,Remove為刪除當前選中的巨集.注意巨集的名稱可以是中文,但要在焦點還是Razor主窗體時切換輸入法,否則可能會出現在點擊了New之後不能切換輸入法的情況.
Actions中顯示的是當前巨集的內容,下面框中每一行代表一個動作,這和UO本身自帶的巨集原理一樣.
Play按鈕即表示執行當前巨集,從第一行一直執行到最後一行.
Record表示重新錄製一個巨集.在Razor的巨集機制中,你可以將你在遊戲中的一套動作錄製一遍,然後再逐行添加內容或進行修改.
Loop:勾上後巨集會反复執行,執行到最後一行後會跳回第一行再繼續執行.
嘗試在遊戲中錄製一段動作來看看,比如說一句話,走動,打開一個箱子等等.比如我們這裡示範的是一段融鐵的巨集.第一行表示雙擊類型為tongs(火鉗)的工具,等待遊戲回應的Gump後再點擊第14個按鈕,然後再選擇種類為Platemail gorget(鐵甲護喉)的物品.
就是這麼簡單和方便,Razor的巨集功能強大,基本可以實現所有你掛機的需要,但是上手容易想熟練卻並不簡單.很多巨集錄製之後的執行效率並不如想像中的高,因為經常會出現意外情況,比如網絡延遲,包中某種物品用完等等,因此我們需要在錄製後再進行修改.
對著左側巨集的名稱上點擊鼠標右鍵,彈出如下菜單:
Add Category:添加一個目錄,Razor中的巨集可以分類,並把相應巨集移動到某一類的目錄下,方便管理.
Delete Category:刪除該類.
Move to Category:把所選巨集移動到某個目錄下.
Refresh Macro list:刷新巨集目錄.
對著巨集的內容點擊鼠標右鍵,彈出類似如下的菜單:
Reload和Save:由於巨集文件都存於Razor目錄中的Macros文件夾下,可以用文本方式打開相應的巨集文件,手動更改其中的巨集內容.Reload即手動更改後,再重新從巨集文件中把巨集內容讀到Razor並顯示,類似於刷新功能,可以用於撤消修改.Save則是把當前在Razor中修改好的巨集內容立刻保存到相應巨集文件中.因為Razor只有在關閉時才會自動將這些巨集內容統一保存到文件中,這一點可以通過打開2個Razor來證明.
Move up:將當前行動作上移一行.
Move down:將當前行動作下移一行.
Remove Action:刪除當前行動作.
Begin Recording here:有別於右側的Record按鈕,這個選項表示從當前行開始繼續插入錄製,而Record按鈕點擊後會出現提示,詢問是否確定清空原來的巨集內容,然後再重新錄製.
Play from here:從當前行開始執行.
Re-Target:重新選擇目標.由於我們是在選擇目標的動作上點擊的右鍵,因此會有該選項.此選項在雙擊某物品/選擇某個目標的動作中會出現,可以在這裡重新修改目標,點擊後UO中會出現一個圈.
Convert to last target:把本動作轉為最後目標.這是選擇目標動作所特有的選項,可以在類型目標/絕對目標/相對距離目標/最後目標間進行轉換.實踐後會更容易理解.
Special Constructs:可選項如下.
Insert Pause/Wait:可以在每個動作間插入等待.選擇後出現該對話框.
pause for:點擊此表示插入一段預定好了的等待時間,時間為後面框中所填數字,單位為毫秒.
Wait for Gump:等待直到出現Gump,所謂Gump即UO中的那些對話框.
Wait for old-style Menu/Dialog:此功能尚未使用過,作用請補充.
Wait for Target:等待目標,即等待到UO中選擇目標的圓圈出現.
Wait for:可以填寫等待的條件,等待血,魔法值或精力值到某一個指定值時.
回到上面Special Constructs.
Insert Set Last Target:加入指定最後目標的動作,執行該動作會在UO中出現一個圈,讓你選定一個目標為你的最後目標.
Insert Comment:加入註釋,註釋部分不會被執行,僅僅是幫助你理解巨集的意義.
Insert "if" Conditional:插入一行條件判斷語句.
理解為當某個物品的數量達到某個值時(比如血量大於等於某個值),或處於某個狀態時(比如係統回應了該目標沒有受傷的信息,你的角色中毒了等)執行下面語句,不加其他Else或End if時為執行IF下面的第一條語句,如果不符合條件則不執行該條語句.
Insert "else"/Insert "End if":可能會出現這樣的情況.你希望達到某個條件時執行A,不達到時執行B.因此只有IF來判斷顯然是沒辦法做到的,因為它無論是否執行了A都會去執行B.此時就需要ELSE來幫助我們.舉個例子來說明.
比如這段巨集:
if (Hits>=60)
AAA
BBB
Else
CCC
DDD
End if
EEE
這是段標準的2折判斷.當血量大於等於60時就會執行AAA,然後是BBB.否則會執行CCC,然後執行DDD.End if表示這個IF判斷已經結束,好習慣是每個IF都要添加一句End if與之相應.而最後一行EEE則無論血量是大於等於60抑或小於60,都會順序執行到.
如果可以理解以上的部分,基本Razor的巨集機制就可以運用自如了.
For loop/End loop:可以將被for loop和end loop語句包起來的一段動作重複執行,執行次數為所填寫的次數,該功能用途不多.
總體來說巨集部分就是這麼多了,有編程基礎的玩家自然很容易上手,但是我相信即便是普通玩家這些簡單的東西多試驗幾次也是可以理解的.
所有跟數量有關的動作都可以通過對其點右鍵,選擇Edit來重新編輯數量,比如給動物餵肉等.
最後注意所有非指定了具體時間的Wait(等待)動作,都可以編輯其最大的等待時間,默認為99秒.由於網速問題,很可能會一直卡在等待語句上,為防止該情況的發生,我們可以在等待動作上點擊右鍵,會有Edit Timeout.點擊後就可以更改最長在該行等待的時間了,單位為秒.