API UO GetScriptState uk - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.GetScriptState

ClassicUO • Runtime API

Читає стан виконання за індексом.

Точний синтаксис

UO.GetScriptState(ScriptIndex:Any) -> Integer

Параметри

  • ScriptIndex — Обов’язковий ScriptIndex — цілий індекс від нуля зі свіжого GetScriptsList. Від’ємний або відсутній індекс дає описаний порожній/невідомий результат. Не передавайте serial предмета, ім’я процедури чи ID запуску IDE.

Повертає

Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно порівнюйте з 1 або 2.

Поведінка

  • Враховуються виконувані й призупинені запуски; завершені та ті, що отримали скасування, виключаються. Скрипт зазвичай враховує себе. Просто завантажена вкладка IDE запуском не є.
  • Індекси — поточні позиції в порядку запуску. Запуск/зупинка можуть їх зсунути. Окремі виклики не утворюють атомарний знімок; перед наступною командою керування перечитайте список.
  • Закриття Basic IDE не видаляє активних запусків. Команди стосуються цього клієнта, а не інших клієнтів чи процесів Windows.
  • GetScriptsList дає індекси, GetScriptsCount — кількість, GetScriptState — код із трьох станів. Не підміняйте ці значення й не вважайте будь-яке ненульове число значенням true.
  • Враховуються ручна/налагоджувальна пауза та налаштована пауза при від’єднанні. Стан 1 не гарантує, що скрипт саме зараз використовує процесор або отримує дані сервера.

Внутрішні функції: від виклику до результату

Нижче наведено справжні методи клієнта. Приклади Basic вище містять повні допоміжні функції; назви внутрішніх методів C# не є додатковими командами скрипта.

1. ExecuteStealthCompatibility

Runtime викликає зареєстровану UO-команду й обгортає результат моста як Integer, String або Array.

Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно порівнюйте з 1 або 2.

Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функція ExecuteStealthCompatibility.

2. GetScriptState

Міст звертається до менеджера запусків саме цього клієнта.

Враховуються ручна/налагоджувальна пауза та налаштована пауза при від’єднанні. Стан 1 не гарантує, що скрипт саме зараз використовує процесор або отримує дані сервера.

Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція GetScriptState.

3. GetScriptState

script == null ? 0 : script.IsPaused ? 2 : 1

Індекси — поточні позиції в порядку запуску. Запуск/зупинка можуть їх зсунути. Окремі виклики не утворюють атомарний знімок; перед наступною командою керування перечитайте список.

Код проєкту: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; функція GetScriptState.

Закриття Basic IDE не видаляє активних запусків. Команди стосуються цього клієнта, а не інших клієнтів чи процесів Windows.

Приклади

Перший виклик і результат

# Перший виклик і результат
#
# Читає стан виконання за індексом.
#
# Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно
# порівнюйте з 1 або 2.

SUB Main()
    # Запускайте Sub Main. Передане число 0 означає індекс; порожні дужки — відсутність аргументів.
    # Текст Print є лише повідомленням прикладу.
    # Враховуються ручна/налагоджувальна пауза та налаштована пауза при від’єднанні. Стан 1 не
    # гарантує, що скрипт саме зараз використовує процесор або отримує дані сервера.
    # Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно
    # порівнюйте з 1 або 2.
    # Обов’язковий ScriptIndex — цілий індекс від нуля зі свіжого GetScriptsList. Від’ємний або
    # відсутній індекс дає описаний порожній/невідомий результат. Не передавайте serial предмета,
    # ім’я процедури чи ID запуску IDE.

    Dim state=UO.GetScriptState(0)
    Select Case state
    Case 1
        UO.Print("running")
    Case 2
        UO.Print("paused")
    Case Else
        UO.Print("unknown")
    End Select
END SUB

Пояснення параметрів і виконання:

  • Запускайте Sub Main. Передане число 0 означає індекс; порожні дужки — відсутність аргументів. Текст Print є лише повідомленням прикладу.
  • Враховуються ручна/налагоджувальна пауза та налаштована пауза при від’єднанні. Стан 1 не гарантує, що скрипт саме зараз використовує процесор або отримує дані сервера.
  • Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно порівнюйте з 1 або 2.
  • Обов’язковий ScriptIndex — цілий індекс від нуля зі свіжого GetScriptsList. Від’ємний або відсутній індекс дає описаний порожній/невідомий результат. Не передавайте serial предмета, ім’я процедури чи ID запуску IDE.

Використання в циклі чи умові

# Використання в циклі чи умові
#
# Читає стан виконання за індексом.
#
# Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно
# порівнюйте з 1 або 2.

SUB Main()
    # Це окремий приклад спільного використання команд. Індекси масиву починаються з нуля;
    # перевіряйте довжину перед зверненням. Wait(250), де він використаний, чекає 250 мілісекунд.
    # Враховуються ручна/налагоджувальна пауза та налаштована пауза при від’єднанні. Стан 1 не
    # гарантує, що скрипт саме зараз використовує процесор або отримує дані сервера.
    # Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно
    # порівнюйте з 1 або 2.
    # Обов’язковий ScriptIndex — цілий індекс від нуля зі свіжого GetScriptsList. Від’ємний або
    # відсутній індекс дає описаний порожній/невідомий результат. Не передавайте serial предмета,
    # ім’я процедури чи ID запуску IDE.

    Dim paused=0
    Dim indices=UO.GetScriptsList()
    For Each index In indices
        If UO.GetScriptState(index)=2 Then
            paused+=1
        End If
    Next
    UO.Print(CStr(paused))
END SUB

Пояснення параметрів і виконання:

  • Це окремий приклад спільного використання команд. Індекси масиву починаються з нуля; перевіряйте довжину перед зверненням. Wait(250), де він використаний, чекає 250 мілісекунд.
  • Враховуються ручна/налагоджувальна пауза та налаштована пауза при від’єднанні. Стан 1 не гарантує, що скрипт саме зараз використовує процесор або отримує дані сервера.
  • Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно порівнюйте з 1 або 2.
  • Обов’язковий ScriptIndex — цілий індекс від нуля зі свіжого GetScriptsList. Від’ємний або відсутній індекс дає описаний порожній/невідомий результат. Не передавайте serial предмета, ім’я процедури чи ID запуску IDE.

Повна допоміжна функція

# Повна допоміжна функція
#
# Читає стан виконання за індексом.
#
# Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно
# порівнюйте з 1 або 2.

SUB Main()
    # Під Main наведено функцію повністю. Її параметри та результат пояснено окремо від API-команди,
    # яку вона викликає.
    # IsScriptActive перетворює 1 і 2 на true, а 0 на false. GetScriptState продовжує повертати
    # числовий код.
    # Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно
    # порівнюйте з 1 або 2.
    # Обов’язковий ScriptIndex — цілий індекс від нуля зі свіжого GetScriptsList. Від’ємний або
    # відсутній індекс дає описаний порожній/невідомий результат. Не передавайте serial предмета,
    # ім’я процедури чи ID запуску IDE.

    If IsScriptActive(0)=True Then
        UO.Print("running or paused")
    Else
        UO.Print("not active")
    End If
END SUB

Function IsScriptActive(index) As Boolean
    Dim state=UO.GetScriptState(index)
    Return state=1 OrElse state=2
End Function

Пояснення параметрів і виконання:

  • Під Main наведено функцію повністю. Її параметри та результат пояснено окремо від API-команди, яку вона викликає.
  • IsScriptActive перетворює 1 і 2 на true, а 0 на false. GetScriptState продовжує повертати числовий код.
  • Integer — код стану: 0 = немає/невідомо, 1 = виконується, 2 = пауза. Це не Boolean: явно порівнюйте з 1 або 2.
  • Обов’язковий ScriptIndex — цілий індекс від нуля зі свіжого GetScriptsList. Від’ємний або відсутній індекс дає описаний порожній/невідомий результат. Не передавайте serial предмета, ім’я процедури чи ID запуску IDE.

en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic