Справочник Команд SScript

Все команды SScript выполняются на консоли сервера или ОПами с помощью /sscript. Каждая команда управляет выполнением скриптов, мониторингом и отладкой.

Требования к Разрешениям

Все команды /sscript требуют разрешения Оператора (OP).


Синтаксис Команд

1. Запуск Скриптов/Функций

/sscript run <file> [function <name> [args...]]

Назначение: Выполняет файл скрипта или вызывает определенную функцию.

Параметры:

  • <file> — Имя файла скрипта (с расширением .ss или без)
    • Пример: startup, startup.ss, handlers.event.ss
    • Разрешается из папки sscripts/
  • function <name> — (Опционально) Вызывает конкретную функцию вместо запуска всего скрипта
    • ДОЛЖНА быть определена с помощью func или def в этом файле
  • [args...] — (Опционально) Аргументы для передачи функции

Примеры:

# Запустить весь файл startup.ss
/sscript run startup

# Вызвать функцию greet() из startup.ss с аргументом "Steve"
/sscript run startup function greet Steve

# Вызвать calculate() с несколькими аргументами
/sscript run utils function calculate 10 20

Вывод: Создает новый процесс, логирует выполнение, возвращает результат (если функция вызвана).


2. Монитор Запущенных Процессов

/sscript monitor [all|<id>]

Назначение: Просмотреть статус запущенных или очереди процессов.

Параметры:

  • (Без аргументов) — Показывает краткий обзор всех запущенных процессов
  • all — Показывает подробную информацию для всех процессов
  • <id> — Показывает детали конкретного ID процесса

Примеры Вывода:

Running Processes (5 total):
  #1 [RUNNING] startup.ss (started 5s ago)
  #2 [QUEUED]  handler_verify (waiting)
  #3 [RUNNING] fetch_api (95% complete)
  #4 [SLEEPING] sleep_task (1.2s remaining)
  #5 [IDLE] monitor_job

3. Остановка Процессов

/sscript stop [all|<id>|file <file>]

Назначение: Завершить запущенные или очереди процессы.

Параметры:

  • (Без аргументов) — Остановить последний процесс
  • all — Остановить ВСЕ запущенные процессы
  • <id> — Остановить процесс с ID #
  • file <file> — Остановить все процессы из конкретного файла

Примеры:

# Остановить процесс #3
/sscript stop 3

# Остановить все запущенные процессы
/sscript stop all

# Остановить все процессы из startup.ss
/sscript stop file startup

Вывод: Подтверждение остановленных процессов, очистка ресурсов.


4. Перезагрузка Процессов

/sscript reload [all|<id>|file <file>]

Назначение: Перезапустить процессы (полезно для тестирования изменений кода).

Параметры:

  • (Без аргументов) — Перезагрузить последний процесс
  • all — Перезагрузить ВСЕ запущенные процессы
  • <id> — Перезагрузить конкретный ID процесса
  • file <file> — Перезагрузить все процессы из конкретного файла

Примеры:

# Перезагрузить процесс #2
/sscript reload 2

# Перезагрузить все запущенные процессы
/sscript reload all

# Перезагрузить все обработчики из events.event.ss
/sscript reload file events.event.ss

5. Включить/Отключить Отладку

/sscript debug [on|off]

Назначение: Включить/отключить подробное логирование отладки для выполнения скрипта.

Параметры:

  • on — Включить логирование отладки (показывает каждый оператор, присваивание переменных)
  • off — Отключить логирование отладки (нормальная операция)
  • (Без аргументов) — Переключить текущее состояние

Пример:

/sscript debug on
# Теперь все операторы скрипта логируются подробно

/sscript debug off
# Вернуться в нормальный режим логирования

Вывод:

  • Когда вкл: Каждая выполняемая строка, изменения переменных, вызовы функций логируются
  • Полезно для: Отладки логических ошибок, трассировки потока выполнения, анализа производительности

6. Перезагрузка Обработчиков Событий

/sscript events reload

Назначение: Перезагрузить все файлы .event.ss без перезагрузки сервера.

Используется для: Тестирования изменений обработчиков событий без полной перезагрузки сервера.

Вывод: Повторно регистрирует все обработчики событий из файлов sscripts/*.event.ss.


ID Процесса Справка

Каждому запущенному скрипту назначается ID Процесса (например, #1, #2) для отслеживания.

Жизненный Цикл Процесса:

QUEUED → RUNNING → DONE/SLEEPING → (потенциальное RESUME)

Состояния:

  • QUEUED — Ожидание выполнения на следующем tick
  • RUNNING — Текущее выполнение
  • SLEEPING — Приостановлено командой sleep N
  • DONE — Успешно завершено
  • ERROR — Ошибка с исключением

Практические Примеры

Пример 1: Загрузить Модуль Данных Игрока

/sscript run player_data function initialize_all_players

Это вызывает initialize_all_players() из player_data.ss, передает всем подключенным игрокам.


Пример 2: Монитор Долгой Задачи

/sscript run bulk_export function export_stats
/sscript monitor 1
/sscript monitor 1
# (проверить прогресс несколько раз)

Пример 3: Отладка Проблемы Обработчика События

/sscript debug on
/sscript events reload
# (смотреть вывод консоли подробно)
/sscript debug off

Пример 4: Мягкое Выключение

/sscript stop all
# (убедитесь что никакие скрипты не запущены перед выключением сервера)

Пределы и Ограничения

Ограничение Значение Влияние
Макс запущенные процессы 500 Не может создать более 500 процессов
Процессы созданные за tick 20 Макс 20 новых процессов/tick для предотвращения лага
Операторы за tick 50 Каждый процесс выполняет макс 50 операторов/tick
Итерации цикла 1,000,000 Бесконечные циклы прерываются после 1M итераций
While loop guard Включен Предотвращает бесконечные циклы
HTTP timeout 60 секунд Долгие запросы отменяются после 60s
Сохранение глобальной переменной 2s debounce Сохраняет на диск максимум каждые 2 секунды

Обработка Ошибок

Что Происходит Если Команда Не Удалась?

  1. Неверный файл: error: Script file not found: startup.ss
  2. Разрешение отклонено: error: Operator permission required
  3. Функция не найдена: error: Function greet not defined in startup.ss
  4. Процесс уже остановлен: info: Process #5 already completed

Отладка Ошибок Скрипта

/sscript debug on
/sscript run startup
# Смотреть консоль для подробной трассировки ошибок

Продвинутое Использование

Цепи Команд

/sscript stop all
/sscript events reload
/sscript run startup

Это безопасно сбрасывает все состояние перед перезагрузкой.

Мониторинг Перед Остановкой

/sscript monitor all
/sscript stop all

Проверьте что запущено перед остановкой.

Профилирование Производительности

/sscript debug on
/sscript run startup
# (выполнить и смотреть времена tick)
/sscript debug off

Смотрите Также


This site uses Just the Docs, a documentation theme for Jekyll.