[LSD] Core

Ядро плагина [LSD] Core 1.3.1

Нет прав для скачивания
Поддерживаемые игры
  1. CS: Source (OrangeBox)
  2. CS: Source (v34)
  3. CS: GO
Lovely Sweet Duels🤡
Система для проведения дуэлей между последними двумя игроками в конце раунда.
Вроде как работает на CSS.

Модули:
  • [LSD] Weapons - Выдает дуэлянтам оружие.
  • [LSD] CR - Не дает дуэлям запуститься во время кастомных раундов.
  • [LSD] Bomb - Блокирует запуск дуэлей при установленной бомбе.
  • [LSD] Beacon - Устанавливает на дуэлянтов маяк.
  • [LSD] Base Features - Изменение здоровья, брони, скорости, гравитации, урона на время дуэли.
  • [LSD] NoZoom - Отключает прицел на время дуэли.
  • [LSD] Teleport - Телепортирует игроков друг к другу перед началом дуэли.
  • [LSD] Vip Features Manager - Отключает вип-функции на время дуэли.
  • [LSD] Overlays - Отображает дуэлянтам оверлеи.
  • [LSD] OO - Отключает ограничение оружия на время дуэли.
  • [LSD] Only HeadShot - Добавляет запрет убийства не в голову.
  • [LSD] Server Commands - Выполнение серверных команд при старте и завершении дуэли.
  • [LSD] Mode selector - Позволяет игрокам выбрать режим дуэли перед ее началом.
  • [LSD] Messages - Отправляет сообщения при старте и конце дуэли.
  • [LSD] FPS Reward - Выдача очков FPS победителю дуэли.
  • [LSD] Mode announce - Выводит игрокам имя выбранного режима дуэли по центру экрана.
  • [LR WEB] DUELS - Модуль статистики дуэлей под lr web.
Приватные модули (покупая платные модули, вы поддерживаете разработку плагина):
  • [LSD] Knife accept (PROJECTTM / SM.CRYSTALS.PW)- Голосование за начало дуэли ударами ножа по стене.

💸💸💸Поддержать разработку💸💸💸
🥝QIWI: D4CKLOH
💰WMR: R911282388550
🔫ЯД: 410016485390252

API:
#if defined _lsd_included
#endinput
#endif
#define _lsd_included

#define LSD_Stage_NotStarted 0 //Дуэль не началась.
#define LSD_Stage_Vote 1 //Голосование.
#define LSD_Stage_Prep 2 //Подготовка.
#define LSD_Stage_Live 3 //Дуэль.
#define LSD_Stage_Finished 4 //Дуэль завершена.
#define LSD_Stage_Cancelled 5 //Дуэль отменена.

#define LSD_Reason_WinnerSelected 0 //Победитель выбран
#define LSD_Reason_Draw 1 //Ничья
#define LSD_Reason_Cancelled 2 //Дуэль отменена

#define LSD_Duelist_T false
#define LSD_Duelist_CT true

/*
 * Вызывается когда игрок нажимает на пункт в меню.
 *
 * client - id игрока.
 *
 * iID - id пункта.
*/
typedef LSDOnItemPressed = function void(int client, int iID);

/*
 * Вызывается когда игроку отображается пункт в меню или ссылка.
 *
 * client - id игрока.
 *
 * iID - id пункта.
 *
 * sBuff - Буфер.
 *
 * maxsize - Максимальный размер строки.
*/
typedef LSDOnItemDisplay = function void(int client, int iID, char[] sBuff, int maxsize);

/*
 * Вызывается когда игроку отображается стиль пункта в меню.
 *
 * client - id игрока.
 *
 * iID - id пункта.
*/
typedef LSDOnItemDraw = function int(int client, int iID);

/*
 * Возвращает true, если ядро загружено.
*/
native bool LSD_IsCoreReady();

/*
 * Возвращает user id последнего победителя/проигравшего или одно из значений:
 * 0 - Дуэль не состоялась.
 * -1 - Дуэль завершилась ничьей.
 *
 * bLoser - Вернуть user id проигравшего.
*/
native int LSD_GetLastWinnerOrLoser(bool bLoser = false);

/*
 * Возвращает id дуэлянта.
 *
 * bSecond - Вернуть id второго дуэлянта.
*/
native int LSD_GetDuelist(bool bSecond = false);

/*
 * Возвращает время таймера до следующей стадии.
*/
native int LSD_GetCurrentTime();

/*
 * Возвращает имя режима текущей дуэли.
 *
 * sBuff - Буфер.
 *
 * maxsize - Максимальный размер строки.
*/
native void LSD_GetMode(char[] sBuff, int maxsize);

/*
 * Возвращает конфиг.
 *
 * bCurrent - Перейти в секцию текущей дуэли.
*/
native KeyValues LSD_GetConfig(bool bCurrent = false);

/*
 * Возвращает указатель базы данных.
*/
native Database LSD_GetDatabase();

/*
 * Возвращает стадию текущей дуэли (LSD_Stage_*).
*/
native int LSD_GetStage();

/*
 * Отправляет сообщение в чат для игрока.
 *
 * client - id игрока.
 *
 * sMsg - Текст сообщения.
 *
 * ... - Параметры.
*/
native void LSD_PrintToChat(int client, const char[] sMsg, any:...);

/*
 * Отправляет сообщение в чат для всех.
 *
 * sMsg - Текст сообщения.
 *
 * ... - Параметры.
*/
native void LSD_PrintToChatAll(const char[] sMsg, any:...);

/*
 * Регистрирует новый пункт меню.
 *
 * sName - Уникальное имя пункта.
 *
 * OnItemPressedCallback - Вызывается когда игрок нажимает на пункт.
 *
 * OnItemDisplayCallback - Вызывается когда игрок видит пункт в меню.
 *
 * OnItemDrawCallback - Вызывается когда игроку отображается стиль пункта в меню.
 *
 * Вернет id пункта или -1 в случае неудачи.
*/
native int LSD_RegMenuItem(const char[] sName, LSDOnItemPressed OnItemPressedCallback, LSDOnItemDisplay OnItemDisplayCallback = INVALID_FUNCTION, LSDOnItemDraw OnItemDrawCallback = INVALID_FUNCTION);

/*
 * Удаляет пункт из меню.
 *
 * iID - Айди пункта.
*/
native void LSD_UnRegMenuItem(int iID);

/*
 * Получает айди пункта меню.
 *
 * sName - Уникальное имя пункта.
*/
native int LSD_GetMenuItemId(const char[] sName);

/*
 * Открывает меню настроек игроку.
 *
 * client - id игрока.
*/
native void LSD_OpenMenu(int client);

/*
 * Принимает или отклоняет дуэль игроку.
 *
 * client - id игрока.
 *
 * bAccept - true - принять; false - отклонить
*/
native void LSD_VoteClient(int client, bool bAccept);

/*
 * Проголосовал ли человек за дуэль.
 *
 * client - id игрока.
*/
native bool LSD_IsVoted(int client);

/*
 * Вызывается после загрузки ядра.
*/
forward void LSD_OnCoreReady();

/*
 * Вызывается перед LSD_OnVoteStart.
 *
 * time - Время голосования.
 *
 * iDuelist - id дуэлянтов.
 *
 * Если вернуть true, то дуэль будет отменена.
*/
forward bool LSD_OnVoteStart_Pre(int &time, const int iDuelist[2]);

/*
 * Началось голосование.
 *
 * iDuelist - id дуэлянтов.
 *
 * Если вернуть true, то меню голосования не будет отображено игрокам (автоматический ответ на голосование все-равно сработает).
*/
forward bool LSD_OnVoteStart(const int iDuelist[2]);

/*
 * Вызывается перед LSD_OnPrepStart.
 *
 * time - Время подготовки.
 *
 * iDuelist - id дуэлянтов.
 *
 * Если вернуть true, то дуэль будет отменена.
*/
forward bool LSD_OnPrepStart_Pre(int &time, const int iDuelist[2]);

/*
 * Началась подготовка к дуэли.
 *
 * iDuelist - id дуэлянтов.
*/
forward void LSD_OnPrepStart(const int iDuelist[2]);

/*
 * Вызывается перед LSD_OnDuelStart.
 *
 * time - Время дуэли.
 *
 * iDuelist - id дуэлянтов.
 *
 * sMode - Имя режима дуэли (если не указано, то будет выбран случайный режим).
 *
 * buffsize - Максимальный размер строки.
 *
 * Если вернуть true, то дуэль будет отменена.
*/
forward bool LSD_OnDuelStart_Pre(int &time, const int iDuelist[2], char[] sMode, int buffsize);

/*
 * Дуэль началась.
 *
 * hKV - Конфиг с выбранной секцией текущей  дуэли.
 *
 * iDuelist - id дуэлянтов.
 *
 * sMode - Имя режима дуэли.
*/
forward void LSD_OnDuelStart(KeyValues hKV, const int iDuelist[2], const char[] sMode);

/*
 * Дуэль была завершена.
 *
 * iReason - причина завершения (LSD_Reason_*).
 *
 * iDuelist - id дуэлянтов.
*/
forward void LSD_OnDuelEnd(int iReason, const int iDuelist[2]);

/*
 * Вызывается перед LSD_OnTimer.
 *
 * iStage - Стадия дуэли.
 *
 * time - Время таймера до следующей стадии.
 *
 * Если вернуть true, то LSD_OnTimer не будет вызван, а информация о таймере не будет отображена игрокам.
*/
forward bool LSD_OnTimer_Pre(int iStage, int &time);

/*
 * Вызывается каждую секунду таймера во время дуэли.
 *
 * iStage - Стадия дуэли.
 *
 * time - Время таймера до следующей стадии.
*/
forward void LSD_OnTimer(int iStage, int time);

/*
 * Вызывается перед LSD_OnWinnerSpawn.
 *
 * client - id игрока.
 *
 * Если вернуть true, событие не будет вызвано.
*/
forward bool LSD_OnWinnerSpawn_Pre(int client);

/*
 * Победитель прошлой дуэли возродился.
 *
 * client - id игрока.
*/
forward void LSD_OnWinnerSpawn(int client);

public SharedPlugin __pl_lsd =
{
    name = "lsd",
    file = "lsd_core.smx",
    #if defined REQUIRE_PLUGIN
    required = 1
    #else
    required = 0
    #endif
};

#if !defined REQUIRE_PLUGIN
public __pl_lsd_SetNTVOptional()
{
    MarkNativeAsOptional("LSD_IsCoreReady");
    MarkNativeAsOptional("LSD_GetLastWinnerOrLoser");
    MarkNativeAsOptional("LSD_GetDuelist");
    MarkNativeAsOptional("LSD_GetCurrentTime");
    MarkNativeAsOptional("LSD_GetMode");
    MarkNativeAsOptional("LSD_GetConfig");
    MarkNativeAsOptional("LSD_GetDatabase");
    MarkNativeAsOptional("LSD_GetStage");
    MarkNativeAsOptional("LSD_PrintToChat");
    MarkNativeAsOptional("LSD_PrintToChatAll");
    MarkNativeAsOptional("LSD_RegMenuItem");
    MarkNativeAsOptional("LSD_UnRegMenuItem");
    MarkNativeAsOptional("LSD_GetMenuItemId");
    MarkNativeAsOptional("LSD_OpenMenu");
    MarkNativeAsOptional("LSD_VoteClient");
    MarkNativeAsOptional("LSD_IsVoted");
}
#endif
Требования
SourceMod 1.10+
Переменные
Конфиг:
"Settings"
{
    "tag"            "{green}[LSD]{default}" //Префикс плагина в чате.
    "cmd"            "duel;duels;lsd" //Команды для открытия меню с настройками.
    "vote_time"        "10" //Время, которое отводится на голосование.
    "prep_time"        "10" //Время, которое отводится на подготовку к дуэли.
    "duel_time"        "60" //Время дуэли.
    "min_players"    "4"    //Минимальное кол-во игроков на сервере, необходимое для работы дуэлей.
    "save_stats"    "1" //Вести ли статистику по дуэлям? 1 - Да, 0 - Нет.
    "save_weapons"    "1" //Сохранять ли оружие дуэлянтов и выдавать в начале следующего раунда? 1 - Да, 0 - Нет.
    "save_armor"    "1" //Сохранять ли броню и шлем дуэлянтов и выдавать в начале следующего раунда? 1 - Да, 0 - Нет.
    "draw_mode"        "1" //Что делать с игроками по истечении таймера? 0 - Ничего, 1 - Убить обоих, 2 - Убить случайного игрока, 3 - Убить того, у которого меньше здоровья.
    "block_attack"    "1" //Блокировать ли игрокам стрельбу на время голосования? 1 - Да, 0 - Нет.
    "auto_vote_disable" "0" //Отключает автоматическое принятие/отклонение дуэли. 1 - Да, 0 - Нет.

    "Knife" //Имя режима дуэли.
    {
        "weapons"    "weapon_knife"
        "health"    "100"
        "armor"        "0"
        "helmet"    "0"
    }
}
Команды
Команды для открытия главного меню указываются в конфиге ("cmd").
Автор
d4Ck
Скачивания
1,553
Просмотры
23,013
Первый выпуск
Обновление
Оценка
4.25 звёзд 28 оценок

Другие ресурсы пользователя d4Ck

Последние обновления

  1. Версия 1.3.1

    Добавлена переменная auto_vote_disable для отключения автоматического голосования за дуэль.
  2. Версия 1.3.0

    Исправление ошибок. Изменения API.
  3. Версия 1.2.0

    Фиксы. Добавлено сохранение и выдача в начале следующего раунда брони дуэлянтов (save_armor в...

Последние отзывы

В списке поддерживаемых игр числится CS:Source, но по факту плагин имеет очень критичную ошибку, он не выдаёт никакого оружия после начала дуэли.
Плагин топ, разработчику респект!
d4Ck
d4Ck
Деньги - лучший способ показать свое уважение к разработчику!!
Не плохой плагин
HQ Plugin! Respect for the plugin+module creators.
Хочется музыки во время дуэли... А так плагин топовый. Спасибо
Игрокам зашел на ура и мне тоже. Модулей хватает.
Чуть ли не первый на любом AWP/AIM/KNIFE сервере. Лойс!
Отличный плагин. С правильной настройкой все работает
почему просто нельзя поставить оценку? -.-
ну хороший плагин, чо ещё могу написать. модули есть. да. ядро ещё вроде какое-то.
а вообще если до ума довести, то неплохая замена weaponfight будет
Довольно качественное ядро, есть пара недоработок (например забывание точек спавна Игроков после перезугрузки), невозможность подключения к MySQL, некорректное отображение некоторых из пунктов меню и др.

Ставлю 3 пока что, исправь!
d4Ck
d4Ck
mysql работает, пункты отображаются корректно.
Сверху Снизу