-
Notifications
You must be signed in to change notification settings - Fork 0
API UO Exec uk
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
UO.Exec · UO.Launch · UO.CallSub · UO.FunRunning · UO.SubExists
ClassicUO • Runtime API
Виконує одну команду в консольній формі, коли назву або аргументи складають у рядок. Для звичайного скрипта краще прямий виклик UO.UseSkill("Hiding"). Довільний код Basic не обчислюється.
UO.Exec(parameters:String) -> Unit
-
parameters— Обов’язкова String: назва та аргументи через пробіл, наприклад useskill Hiding. Усередині рядка немає префікса UO., дужок виклику й ком; сам виклик Basic — UO.Exec(...). Порожній рядок нічого не робить.
Unit — значення немає. Результат вкладеної команди чи локальної Function відкидається; щоб отримати його, викликайте функцію прямо. Повернення не підтверджує дію сервера.
- Одинарні чи подвійні лапки об’єднують аргумент із пробілами. '' зберігає порожній аргумент; '00123' лишається String з нулями. Без лапок розпізнаються числа, решта лишається рядками. Вираз 2+3 не обчислюється.
- Зворотні слеші Windows/UNC зберігаються. Кінцевий слеш перед закривальною лапкою подвойте або замініть на /. Лапку всередині аргументу подвойте чи екрануйте слешем. Незакриті лапки спричиняють помилку. Print/Msg/Say/ConsolePrint/TextPrint об’єднують решту як текст; ColorPrint/CharPrint відокремлюють початкові аргументи.
- Спочатку шукається відповідна UO-команда, потім локальна Sub/Function поточного runtime з потрібною кількістю аргументів. Локальний виклик синхронний. Особлива форма 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-команда, потім локальна Sub/Function поточного runtime з потрібною кількістю аргументів. Локальний виклик синхронний. Особлива форма exec НазваПроцедури передає менеджеру нуль аргументів і запускає окреме завдання; невідоме ім’я нічого не запускає. Це ім’я процедури, не шлях.
Unit — значення немає. Результат вкладеної команди чи локальної Function відкидається; щоб отримати його, викликайте функцію прямо. Повернення не підтверджує дію сервера.
Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; функція Exec / CallNativeSubrutine.
Це етапи реалізації клієнта, а не додаткові команди Basic. Допоміжні процедури наведено повністю.
# Використати навичку
#
# Виконує одну команду в консольній формі, коли назву або аргументи складають у рядок. Для
# звичайного скрипта краще прямий виклик UO.UseSkill("Hiding"). Довільний код Basic не
# обчислюється.
#
# Unit — значення немає. Результат вкладеної команди чи локальної Function відкидається; щоб
# отримати його, викликайте функцію прямо. Повернення не підтверджує дію сервера.
SUB Main()
# Hiding — єдиний аргумент UseSkill. У світі надсилається запит; успіх визначає сервер. Прямий
# відповідник: UO.UseSkill("Hiding").
UO.Exec("useskill Hiding")
END SUBПояснення параметрів і виконання:
- Hiding — єдиний аргумент UseSkill. У світі надсилається запит; успіх визначає сервер. Прямий відповідник: UO.UseSkill("Hiding").
# Передати назву локальній процедурі
#
# Виконує одну команду в консольній формі, коли назву або аргументи складають у рядок. Для
# звичайного скрипта краще прямий виклик UO.UseSkill("Hiding"). Довільний код Basic не
# обчислюється.
#
# Unit — значення немає. Результат вкладеної команди чи локальної Function відкидається; щоб
# отримати його, викликайте функцію прямо. Повернення не підтверджує дію сервера.
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"). Довільний код Basic не
# обчислюється.
#
# Unit — значення немає. Результат вкладеної команди чи локальної Function відкидається; щоб
# отримати його, викликайте функцію прямо. Повернення не підтверджує дію сервера.
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"). Довільний код Basic не
# обчислюється.
#
# Unit — значення немає. Результат вкладеної команди чи локальної Function відкидається; щоб
# отримати його, викликайте функцію прямо. Повернення не підтверджує дію сервера.
SUB Main()
# Замініть шлях на наявний Basic-файл з Main. startscript завантажує файл і запитує запуск Main.
# Внутрішні лапки належать консольній команді. Помилки дивіться в IDE: Exec не підтверджує
# старт.
UO.Exec("startscript 'C:\UO Scripts\Gather.bas'")
END SUBПояснення параметрів і виконання:
- Замініть шлях на наявний Basic-файл з Main. startscript завантажує файл і запитує запуск Main. Внутрішні лапки належать консольній команді. Помилки дивіться в IDE: Exec не підтверджує старт.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь