-
Notifications
You must be signed in to change notification settings - Fork 0
API UO FunRunning uk
Русский · 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, навіть якщо очищення триває. Перевірка та наступний виклик не атомарні: задача може завершитися між ними.
- SubExists може дати 1 для Private чи помилкового визначення. Зупинка або закриття вкладки не обов’язково видаляє запис каталогу. Перезавантаження зміненого файла видаляє застарілі визначення. Функція лише в окремому 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.
Пошук лише в каталозі цього сеансу. Однакові імена обирають перший збіг: використовуйте унікальні назви. Ці команди не завантажують невідомі файли та не шукають на диску.
SubExists може дати 1 для Private чи помилкового визначення. Зупинка або закриття вкладки не обов’язково видаляє запис каталогу. Перезавантаження зміненого файла видаляє застарілі визначення. Функція лише в окремому 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
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь