-
Notifications
You must be signed in to change notification settings - Fork 0
API UO Exec zh tw
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.Exec · UO.Launch · UO.CallSub · UO.FunRunning · UO.SubExists
ClassicUO • Runtime API
執行一條主控台格式的文字命令,適合動態組合名稱或參數。一般腳本直接呼叫 UO.UseSkill("Hiding") 較清楚;Exec 不會求值任意 Basic 原始碼。
UO.Exec(parameters:String) -> Unit
-
parameters— 必要的 String:命令名稱及以空格分隔的參數,例如 useskill Hiding。字串內省略 UO.、呼叫括號及逗號;Basic 本身仍寫 UO.Exec(...)。空字串不執行任何動作。
Unit:無回傳值。內部命令或區域 Function 的回傳值也會被丟棄;要取得結果請直接呼叫。Exec 返回不代表伺服器已完成動作。
- 單引號或雙引號可包住含空格的參數。'' 保留空參數;'00123' 保持 String 及前導零。未加引號的數字會轉為數值,其他項目保持字串。2+3 不會被計算。
- Windows/UNC 的反斜線會保留。緊接結尾引號前的最後一個反斜線須重複,或使用 /。參數內的同類引號可重複或以反斜線跳脫。引號未閉合會產生錯誤。Print/Msg/Say/ConsolePrint/TextPrint 將剩餘項目合為文字;ColorPrint/CharPrint 保留前面的獨立參數。
- 先找符合的 UO 處理程序,再找此 runtime 內參數個數符合的區域 Sub/Function;區域呼叫為同步。特殊形式 exec 程序名稱 向管理員要求不帶參數的獨立工作;此形式的未知名稱不啟動任何工作。程序名稱不是檔案路徑。
- 一般命令未知、參數數量錯誤或引號錯誤可由 Try/Catch 捕捉。exec 必須只有一個非空名稱。重複呼叫有效工作不會複製或解除暫停。檔案用 startscript,目錄檢查用 SubExists/FunRunning。別名:sayu→Say、closeuo→CloseHandle、CountOnGround→CountGround、clearignorelist→IgnoreReset、canceltarget→CancelTarget、cancelmove→MoveOff。
以下是用戶端的實作階段,不是額外的 Basic 命令。範例輔助程序都有完整定義。
單引號或雙引號可包住含空格的參數。'' 保留空參數;'00123' 保持 String 及前導零。未加引號的數字會轉為數值,其他項目保持字串。2+3 不會被計算。
Windows/UNC 的反斜線會保留。緊接結尾引號前的最後一個反斜線須重複,或使用 /。參數內的同類引號可重複或以反斜線跳脫。引號未閉合會產生錯誤。Print/Msg/Say/ConsolePrint/TextPrint 將剩餘項目合為文字;ColorPrint/CharPrint 保留前面的獨立參數。
專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; 函式 Tokenize.
先找符合的 UO 處理程序,再找此 runtime 內參數個數符合的區域 Sub/Function;區域呼叫為同步。特殊形式 exec 程序名稱 向管理員要求不帶參數的獨立工作;此形式的未知名稱不啟動任何工作。程序名稱不是檔案路徑。
Unit:無回傳值。內部命令或區域 Function 的回傳值也會被丟棄;要取得結果請直接呼叫。Exec 返回不代表伺服器已完成動作。
專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; 函式 Exec / CallNativeSubrutine.
以下是用戶端的實作階段,不是額外的 Basic 命令。範例輔助程序都有完整定義。
# 使用技能
#
# 執行一條主控台格式的文字命令,適合動態組合名稱或參數。一般腳本直接呼叫 UO.UseSkill("Hiding") 較清楚;Exec 不會求值任意 Basic 原始碼。
#
# Unit:無回傳值。內部命令或區域 Function 的回傳值也會被丟棄;要取得結果請直接呼叫。Exec 返回不代表伺服器已完成動作。
SUB Main()
# Hiding 是 UseSkill 的唯一參數。角色在世界內時提出技能要求;成功由伺服器決定。直接形式為 UO.UseSkill("Hiding")。
UO.Exec("useskill Hiding")
END SUB參數與執行說明:
- Hiding 是 UseSkill 的唯一參數。角色在世界內時提出技能要求;成功由伺服器決定。直接形式為 UO.UseSkill("Hiding")。
# 將名稱傳給區域程序
#
# 執行一條主控台格式的文字命令,適合動態組合名稱或參數。一般腳本直接呼叫 UO.UseSkill("Hiding") 較清楚;Exec 不會求值任意 Basic 原始碼。
#
# Unit:無回傳值。內部命令或區域 Function 的回傳值也會被丟棄;要取得結果請直接呼叫。Exec 返回不代表伺服器已完成動作。
SUB Main()
# 下方完整定義 SelectSavedRoute,儲存路線名稱。引號保留 00123;同步呼叫結束後 Main 回傳此字串。這只儲存名稱,不移動角色。
UO.Exec("SelectSavedRoute '00123'")
Return UO.GetGlobal("manual", "savedRoute")
END SUB
Sub SelectSavedRoute(name)
UO.SetGlobal("manual", "savedRoute", name)
End Sub參數與執行說明:
- 下方完整定義 SelectSavedRoute,儲存路線名稱。引號保留 00123;同步呼叫結束後 Main 回傳此字串。這只儲存名稱,不移動角色。
# 啟動獨立監看
#
# 執行一條主控台格式的文字命令,適合動態組合名稱或參數。一般腳本直接呼叫 UO.UseSkill("Hiding") 較清楚;Exec 不會求值任意 Basic 原始碼。
#
# Unit:無回傳值。內部命令或區域 Function 的回傳值也會被丟棄;要取得結果請直接呼叫。Exec 返回不代表伺服器已完成動作。
SUB Main()
# 在管理員/IDE 載入整個檔案並執行 Main,讓 WeightWatch 進入目錄。每隔 1000 毫秒量測重量,共三次,獨立執行。須允許同時程序;重複呼叫不解除暫停。
UO.Exec("exec WeightWatch")
END SUB
Sub WeightWatch()
Dim sample
For sample = 1 To 3
If UO.Connected() Then
UO.Print("Weight: " & CStr(UO.Weight()))
End If
UO.Wait(1000)
Next
End Sub參數與執行說明:
- 在管理員/IDE 載入整個檔案並執行 Main,讓 WeightWatch 進入目錄。每隔 1000 毫秒量測重量,共三次,獨立執行。須允許同時程序;重複呼叫不解除暫停。
# 從含空格的路徑載入
#
# 執行一條主控台格式的文字命令,適合動態組合名稱或參數。一般腳本直接呼叫 UO.UseSkill("Hiding") 較清楚;Exec 不會求值任意 Basic 原始碼。
#
# Unit:無回傳值。內部命令或區域 Function 的回傳值也會被丟棄;要取得結果請直接呼叫。Exec 返回不代表伺服器已完成動作。
SUB Main()
# 改為實際存在且有 Main 的 Basic 檔案。startscript 載入並要求 Main。內層引號屬於主控台命令。請在 IDE 查看錯誤,Exec 不確認啟動成功。
UO.Exec("startscript 'C:\UO Scripts\Gather.bas'")
END SUB參數與執行說明:
- 改為實際存在且有 Main 的 Basic 檔案。startscript 載入並要求 Main。內層引號屬於主控台命令。請在 IDE 查看錯誤,Exec 不確認啟動成功。
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь