-
Notifications
You must be signed in to change notification settings - Fork 0
API wait uk
ClassicUO / Basic IDE
Призупиняє поточний скрипт на задану кількість мілісекунд. Використовуйте між повторними перевірками стану, щоб не створювати безперервний цикл.
wait(ms:Integer) -> Unit
-
ms— Цілі мілісекунди: 1000 — одна секунда. Використовуйте 0..2147483647. Це не кроки, не секунди й не таймаут підтвердження сервера.
Unit — результату немає. Викликайте окремим рядком. Завершення затримки не підтверджує перенесення предмета, завершення заклинання чи з’єднання; перевіряйте потрібний стан окремо.
- Чекає поточна процедура, а ігровий цикл та інші скрипти працюють далі. Скасування скрипту перериває очікування через токен скасування. Планування системи й обробники можуть збільшити час; точний інтервал кадрів не гарантується. Для асинхронного завдання Basic є Delay з Await.
- UO.Wait ділить додатний час на частини до 25 мс і між ними перевіряє обробники подій UO. Вбудовані wait і sleep викликають одну функцію Basic; за наявності таймерів і callback обслуговують їх, але самі не викликають диспетчер старих подій UO. Для скрипту з UO.SetEvent вони не цілком взаємозамінні.
- Нуль не створює справжньої затримки й не підходить для паузи у швидкому циклі. Від’ємний час не означає нескінченність: UO.Wait зводить його до 0; wait/sleep можуть відхилити його з активними callback, а клієнтський міст без них не чекає. Використовуйте лише невід’ємний час.
- Basic.WaitUntil · Basic.Timers · Delay
Призупиняє поточний скрипт на задану кількість мілісекунд. Використовуйте між повторними перевірками стану, щоб не створювати безперервний цикл.
Цілі мілісекунди: 1000 — одна секунда. Використовуйте 0..2147483647. Це не кроки, не секунди й не таймаут підтвердження сервера.
UO.Wait ділить додатний час на частини до 25 мс і між ними перевіряє обробники подій UO. Вбудовані wait і sleep викликають одну функцію Basic; за наявності таймерів і callback обслуговують їх, але самі не викликають диспетчер старих подій UO. Для скрипту з UO.SetEvent вони не цілком взаємозамінні.
Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApi.cs; функція Wait.
Чекає поточна процедура, а ігровий цикл та інші скрипти працюють далі. Скасування скрипту перериває очікування через токен скасування. Планування системи й обробники можуть збільшити час; точний інтервал кадрів не гарантується. Для асинхронного завдання Basic є Delay з Await.
Нуль не створює справжньої затримки й не підходить для паузи у швидкому циклі. Від’ємний час не означає нескінченність: UO.Wait зводить його до 0; wait/sleep можуть відхилити його з активними callback, а клієнтський міст без них не чекає. Використовуйте лише невід’ємний час.
Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/Interpreter.Timers.cs; функція WaitWithTimers.
Цілі мілісекунди: 1000 — одна секунда. Використовуйте 0..2147483647. Це не кроки, не секунди й не таймаут підтвердження сервера.
Чекає поточна процедура, а ігровий цикл та інші скрипти працюють далі. Скасування скрипту перериває очікування через токен скасування. Планування системи й обробники можуть збільшити час; точний інтервал кадрів не гарантується. Для асинхронного завдання Basic є Delay з Await.
Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція Wait.
# wait — 1
#
# Призупиняє поточний скрипт на задану кількість мілісекунд. Використовуйте між повторними
# перевірками стану, щоб не створювати безперервний цикл.
#
# Unit — результату немає. Викликайте окремим рядком. Завершення затримки не підтверджує
# перенесення предмета, завершення заклинання чи з’єднання; перевіряйте потрібний стан окремо.
SUB Main()
# 250 — чверть секунди. Наступний рядок виконується після очікування; Delay complete — текст
# прикладу, а не повернений результат.
wait(250)
UO.Print("Delay complete")
END SUBПояснення параметрів і виконання:
- 250 — чверть секунди. Наступний рядок виконується після очікування; Delay complete — текст прикладу, а не повернений результат.
# wait — 2
#
# Призупиняє поточний скрипт на задану кількість мілісекунд. Використовуйте між повторними
# перевірками стану, щоб не створювати безперервний цикл.
#
# Unit — результату немає. Викликайте окремим рядком. Завершення затримки не підтверджує
# перенесення предмета, завершення заклинання чи з’єднання; перевіряйте потрібний стан окремо.
SUB Main()
# WaitForOnline повністю оголошена тут. Аргумент 20 дозволяє до двадцяти пауз по 250 мс.
# З’єднання перевіряється перед паузами й після останньої. Помічник повертає Connected (1/0);
# команда очікування не повертає значення й не підключається до сервера.
RETURN WaitForOnline(20)
END SUB
SUB WaitForOnline(checks)
WHILE checks > 0
IF UO.Connected() THEN
RETURN 1
END IF
wait(250)
checks = checks - 1
WEND
RETURN UO.Connected()
END SUBПояснення параметрів і виконання:
- WaitForOnline повністю оголошена тут. Аргумент 20 дозволяє до двадцяти пауз по 250 мс. З’єднання перевіряється перед паузами й після останньої. Помічник повертає Connected (1/0); команда очікування не повертає значення й не підключається до сервера.
# wait — 3
#
# Призупиняє поточний скрипт на задану кількість мілісекунд. Використовуйте між повторними
# перевірками стану, щоб не створювати безперервний цикл.
#
# Unit — результату немає. Викликайте окремим рядком. Завершення затримки не підтверджує
# перенесення предмета, завершення заклинання чи з’єднання; перевіряйте потрібний стан окремо.
SUB Main()
# Цикл читає вагу рівно тричі. Між читаннями дві паузи по 500 мс, після останнього паузи немає.
# Друк відбувається при першому читанні та зміні ваги. previous зберігає значення для
# порівняння, а не змінює вагу в грі.
VAR previous = -1
VAR checks = 0
WHILE checks < 3
VAR weight = UO.Weight()
IF weight <> previous THEN
UO.Print("Weight: " + CStr(weight))
previous = weight
END IF
checks = checks + 1
IF checks < 3 THEN
wait(500)
END IF
WEND
END SUBПояснення параметрів і виконання:
- Цикл читає вагу рівно тричі. Між читаннями дві паузи по 500 мс, після останнього паузи немає. Друк відбувається при першому читанні та зміні ваги. previous зберігає значення для порівняння, а не змінює вагу в грі.
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь