Все .lua файлы должны находиться в AppData/SCP Secret Laboratory/LabAPI/configs/SCPLogs/
-- @enabled true
-- @channels 123456789,987654321
--
-- Комментарии с описанием доступных значений...
reply = "Ваш текст сообщения"@enabled true/false- включено ли событие@channels id1,id2,id3- список ID каналов Discord/Telegram через запятую
SendLog(message, channels?)- отправить лог в указанные каналы (или дефолтные)PrintTime()- получить текущее время в формате Discord timestampPrintPlayer(player, printRole?)- форматировать информацию об игрокеIsOneFraction(player1, player2)- проверить принадлежность к одной фракции
Результат выполнения lua скрипта должен быть записан в переменную reply:
- Если
replyне nil, её содержимое отправится в каналы - Можно вызвать
SendLog()напрямую вместо использованияreply
Формат: {ClassName}.{EventName}.lua
Примеры из LabApi.Events.Handlers.PlayerEvents:
public static event LabEventHandler<PlayerJoinedEventArgs>? Joined;→ файлPlayerEvents.Joined.luapublic static event LabEventHandler<PlayerDeathEventArgs>? Death;→ файлPlayerEvents.Death.lua
Примеры из LabApi.Events.Handlers.ServerEvents:
public static event LabEventHandler? RoundStarted;→ файлServerEvents.RoundStarted.lua
Примеры из LabApi.Events.Handlers.WarheadEvents:
public static event LabEventHandler<WarheadStartingEventArgs>? Starting;→ файлWarheadEvents.Starting.lua
Список всех событий: смотри поля в LabApi.Events.Handlers.* классах (PlayerEvents, ServerEvents, WarheadEvents, и
т.д.)
Смотрите примеры конфигов в этой папке:
PlayerEvents.Joined.lua- присоединение игрока (PlayerEvents.Joined)PlayerEvents.Death.lua- смерть игрока с проверкой убийцы (PlayerEvents.Death)ServerEvents.RoundStarted.lua- начало раунда без параметров (ServerEvents.RoundStarted)
В lua скриптах доступны все свойства EventArgs классов из LabAPI:
Player- обертка игрока с методами и свойствами- Enum'ы регистрируются автоматически с префиксом
Enum_(напримерEnum_DamageType) - Все public свойства EventArgs доступны как глобальные переменные