UO Topic scripts runtime - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
Scripts & Runtime
Home · BASIC · UO API · A–Z · Examples · Languages
Запуск, пауза, остановка скриптов и процедур, сведения об экземплярах, события и ожидание. Terminate и StopScript работают на разных уровнях выполнения.
Разделы
| Тема | Команды и пояснения |
|---|---|
| StartScript | UO.StartScript |
| StopScript | UO.StopScript |
| StopAllScripts | UO.StopAllScripts |
| PauseResumeScript | UO.PauseResumeScript |
| Script State | UO.GetScriptState |
| Script List | UO.GetScriptsList · UO.GetScriptsCount |
| Script Name | UO.GetScriptName · UO.SetScriptName |
| Script Path | UO.GetScriptPath |
| CallSub | UO.CallSub |
| SubExists | UO.SubExists |
| Events | UO.SetEvent · UO.SetEventProc |
| Timers | UO.Timer · UO.Wait |
| Disconnect Behaviour | UO.GetPauseScriptOnDisconnectStatus · UO.SetPauseScriptOnDisconnectStatus |
Все команды темы
Script Lifecycle
UO.StartScript · UO.StopScript · UO.StopAllScripts · UO.PauseResumeScript · UO.GetScriptName · UO.SetScriptName · UO.GetScriptPath · UO.GetScriptsCount · UO.GetScriptsList · UO.GetScriptState · UO.Exec · UO.Launch
Procedures / Events
UO.CallSub · UO.SubExists · UO.FunRunning · UO.Terminate · UO.TerminateAll · UO.SetEvent · UO.SetEventProc
Timers / Waiting
UO.Wait · UO.Waiting · UO.Timer · UO.Time · UO.Date
Disconnect Behaviour
UO.GetPauseScriptOnDisconnectStatus · UO.SetPauseScriptOnDisconnectStatus
Примеры по теме
Параметры, требования к состоянию клиента и результат каждого вызова описаны в связанной карточке. Перед игровыми действиями замените демонстрационные serial, координаты и имена на свои.
UO.GetScriptsList
Полная карточка: параметры, возврат и разбор
SUB Main()
# Запускайте Sub Main. Число 0, где оно передано, обозначает индекс; пустые скобки означают
# отсутствие аргументов. Текст Print — только сообщение примера.
# Аргументов нет. Каждое число передавайте в соответствующий getter имени, пути или состояния.
# Полученный массив — отдельный снимок; его изменение не управляет скриптами.
# Array из Integer: индексы 0..N-1 либо пустой массив. Элементы — числа, а не имена и не
# текстовые записи.
Dim indices=UO.GetScriptsList()
For Each index In indices
UO.Print(CStr(index) & ": " & UO.GetScriptName(index))
Next
END SUB
UO.TerminateAll
Полная карточка: параметры, возврат и разбор
SUB Main()
# У TerminateAll нет параметров. Условие UO.Dead() проверяет смерть персонажа перед очередной
# итерацией.
# При выполнении условия отменяются и текущий Main, и остальные запуски Basic. Сообщение Print
# расположено до остановки, поскольку после неё код этой процедуры прекращается.
# WAIT(250) задаёт паузу 250 миллисекунд между проверками в этом примере. Команда остановки не
# меняет длительность обычных пауз скрипта.
VAR cycle
FOR cycle = 1 TO 10
IF UO.Dead() THEN
UO.Print('Character is dead: stopping all Basic scripts')
UO.TerminateAll()
END IF
# Здесь выполняется одна безопасная итерация вашей работы.
WAIT(250)
NEXT
END SUB