-
Notifications
You must be signed in to change notification settings - Fork 0
API UO FunRunning zh tw
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.CallSub · UO.FunRunning · UO.SubExists
ClassicUO • Runtime API
檢查所選程序是否仍有有效執行個體,包含暫停中的個體。可避免重複啟動已有的監看工作。
UO.FunRunning(subrutineName:String) -> Integer
-
subrutineName— 必要的 String subrutineName 是目錄中的 Sub/Function 名稱,例如 WeightWatch。不是路徑、檔名、執行索引、程式碼,也不是 SetScriptName 改過的顯示名稱。比對不分大小寫,但不會去除空白。本呼叫不能傳遞程序引數。
Integer:1(True)表示執行個體存在且未取消,包含手動暫停及斷線暫停;0(False)表示未知、未啟動、已結束或取消中。可用 If UO.FunRunning(name)、= 1 或 = True。GetScriptState 區分執行中(1)與暫停(2)。
- 只搜尋目前工作階段的目錄。同名時選第一筆,因此不同程序請使用唯一名稱。這三個命令不會載入未知檔案或搜尋磁碟。
- CallSub 傳入零個引數。Private、語法錯誤、必要參數、停用 Basic 或單一程序限制都可能拒絕啟動;請查看 IDE 狀態與錯誤。再次呼叫有效工作不會複製或解除暫停。取消後的新啟動可能等待舊工作清理。控制腳本不等待工作完成。
- FunRunning 使用原始程序名稱與鍵值,不使用重新命名的顯示標籤。暫停保留執行個體,因此回傳 1。取消後即使仍在清理也回傳 0。檢查與後續呼叫不是不可分割的操作,工作可能在其間結束。
- Private 或無效定義也可能讓 SubExists 回傳 1。停止工作或關閉編輯器分頁不一定移除目錄項目。重新載入修改過的檔案會移除舊定義。只載入另一個 runtime 的本機函式不一定已登錄到管理員。
以下是真實實作步驟;C# 名稱不是額外的 UO 命令。所有可執行的 Basic 輔助函式都在範例中完整定義。
必要的 String subrutineName 是目錄中的 Sub/Function 名稱,例如 WeightWatch。不是路徑、檔名、執行索引、程式碼,也不是 SetScriptName 改過的顯示名稱。比對不分大小寫,但不會去除空白。本呼叫不能傳遞程序引數。
Integer:1(True)表示執行個體存在且未取消,包含手動暫停及斷線暫停;0(False)表示未知、未啟動、已結束或取消中。可用 If UO.FunRunning(name)、= 1 或 = True。GetScriptState 區分執行中(1)與暫停(2)。
專案原始碼: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; 函式 FunRunning.
只搜尋目前工作階段的目錄。同名時選第一筆,因此不同程序請使用唯一名稱。這三個命令不會載入未知檔案或搜尋磁碟。
Private 或無效定義也可能讓 SubExists 回傳 1。停止工作或關閉編輯器分頁不一定移除目錄項目。重新載入修改過的檔案會移除舊定義。只載入另一個 runtime 的本機函式不一定已登錄到管理員。
專案原始碼: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; 函式 FindProcedureByName.
檢查所選程序是否仍有有效執行個體,包含暫停中的個體。可避免重複啟動已有的監看工作。
FunRunning 使用原始程序名稱與鍵值,不使用重新命名的顯示標籤。暫停保留執行個體,因此回傳 1。取消後即使仍在清理也回傳 0。檢查與後續呼叫不是不可分割的操作,工作可能在其間結束。
專案原始碼: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; 函式 FunRunning.
以下是真實實作步驟;C# 名稱不是額外的 UO 命令。所有可執行的 Basic 輔助函式都在範例中完整定義。
# 沒有有效執行時才啟動
#
# 檢查所選程序是否仍有有效執行個體,包含暫停中的個體。可避免重複啟動已有的監看工作。
#
# Integer:1(True)表示執行個體存在且未取消,包含手動暫停及斷線暫停;0(False)表示未知、未啟動、已結束或取消中。可用 If UO.FunRunning(name)、= 1
# 或 = True。GetScriptState 區分執行中(1)與暫停(2)。
SUB Main()
# FunRunning = 0 才提出啟動請求。暫停時為 1,因此不會解除暫停。
# 每個範例各存成一個檔案,在 IDE/管理員載入後執行 Main,讓其他程序登錄到目錄。WeightWatch/ManaWatch 都有完整定義:量測重量/魔力三次,Wait(1000) 為
# 1000 毫秒,只在已進入世界時輸出。不是無限監看;暫停會延長時間。雙工作範例須允許並行程序。
If Not UO.FunRunning("WeightWatch") Then
UO.CallSub("WeightWatch")
End If
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參數與執行說明:
- FunRunning = 0 才提出啟動請求。暫停時為 1,因此不會解除暫停。
- 每個範例各存成一個檔案,在 IDE/管理員載入後執行 Main,讓其他程序登錄到目錄。WeightWatch/ManaWatch 都有完整定義:量測重量/魔力三次,Wait(1000) 為 1000 毫秒,只在已進入世界時輸出。不是無限監看;暫停會延長時間。雙工作範例須允許並行程序。
# 區分執行與暫停
#
# 檢查所選程序是否仍有有效執行個體,包含暫停中的個體。可避免重複啟動已有的監看工作。
#
# Integer:1(True)表示執行個體存在且未取消,包含手動暫停及斷線暫停;0(False)表示未知、未啟動、已結束或取消中。可用 If UO.FunRunning(name)、= 1
# 或 = True。GetScriptState 區分執行中(1)與暫停(2)。
SUB Main()
# NamedRunState 搜尋 WeightWatch 顯示名稱並回傳 GetScriptState:1、2 或 0。假設名稱唯一且未改名,清單也未同時變動。SetScriptName
# 後請搜尋新名稱或路徑;FunRunning 仍使用原始名稱。
# 每個範例各存成一個檔案,在 IDE/管理員載入後執行 Main,讓其他程序登錄到目錄。WeightWatch/ManaWatch 都有完整定義:量測重量/魔力三次,Wait(1000) 為
# 1000 毫秒,只在已進入世界時輸出。不是無限監看;暫停會延長時間。雙工作範例須允許並行程序。
If UO.FunRunning("WeightWatch") Then
Return NamedRunState("WeightWatch")
End If
Return 0
END SUB
Function NamedRunState(name) As Integer
Dim indices = UO.GetScriptsList()
For Each index In indices
If UO.GetScriptName(index) = name Then
Return UO.GetScriptState(index)
End If
Next
Return 0
End Function
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參數與執行說明:
- NamedRunState 搜尋 WeightWatch 顯示名稱並回傳 GetScriptState:1、2 或 0。假設名稱唯一且未改名,清單也未同時變動。SetScriptName 後請搜尋新名稱或路徑;FunRunning 仍使用原始名稱。
- 每個範例各存成一個檔案,在 IDE/管理員載入後執行 Main,讓其他程序登錄到目錄。WeightWatch/ManaWatch 都有完整定義:量測重量/魔力三次,Wait(1000) 為 1000 毫秒,只在已進入世界時輸出。不是無限監看;暫停會延長時間。雙工作範例須允許並行程序。
# 只停止一個監看工作
#
# 檢查所選程序是否仍有有效執行個體,包含暫停中的個體。可避免重複啟動已有的監看工作。
#
# Integer:1(True)表示執行個體存在且未取消,包含手動暫停及斷線暫停;0(False)表示未知、未啟動、已結束或取消中。可用 If UO.FunRunning(name)、= 1
# 或 = True。GetScriptState 區分執行中(1)與暫停(2)。
SUB Main()
# Terminate 接收原始名稱 WeightWatch,取消該工作,包含暫停狀態;其他工作繼續。Main 必須作為另一個控制工作執行。
# 每個範例各存成一個檔案,在 IDE/管理員載入後執行 Main,讓其他程序登錄到目錄。WeightWatch/ManaWatch 都有完整定義:量測重量/魔力三次,Wait(1000) 為
# 1000 毫秒,只在已進入世界時輸出。不是無限監看;暫停會延長時間。雙工作範例須允許並行程序。
If UO.FunRunning("WeightWatch") Then
UO.Terminate("WeightWatch")
End If
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參數與執行說明:
- Terminate 接收原始名稱 WeightWatch,取消該工作,包含暫停狀態;其他工作繼續。Main 必須作為另一個控制工作執行。
- 每個範例各存成一個檔案,在 IDE/管理員載入後執行 Main,讓其他程序登錄到目錄。WeightWatch/ManaWatch 都有完整定義:量測重量/魔力三次,Wait(1000) 為 1000 毫秒,只在已進入世界時輸出。不是無限監看;暫停會延長時間。雙工作範例須允許並行程序。
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь