Справочник Команд 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— Ожидание выполнения на следующем tickRUNNING— Текущее выполнениеSLEEPING— Приостановлено командойsleep NDONE— Успешно завершено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 секунды |
Обработка Ошибок
Что Происходит Если Команда Не Удалась?
- Неверный файл:
error: Script file not found: startup.ss - Разрешение отклонено:
error: Operator permission required - Функция не найдена:
error: Function greet not defined in startup.ss - Процесс уже остановлен:
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
Смотрите Также
- Functions & Async Mechanics — Как выполняются функции
- Complete Events Reference — Детали обработчиков событий
- Complete Built-in Reference — Все 60+ функций