[LSD] Core

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

Нет прав для скачивания
Требование
SourceMod 1.10+
MoreColor
Lovely Sweet Duels🤡


Взято с сайта: HLMOD
Система для проведения дуэлей между последними двумя игроками в конце раунда.
Вроде как работает на CSS.

Поддержка CS GO - CSS V34 - CSS OB

Модули:
  • [LSD] Weapons - Выдает дуэлянтам оружие.
  • [LSD] Bomb - Блокирует запуск дуэлей при установленной бомбе.
  • [LSD] Base Features - Изменение здоровья, брони, скорости, гравитации, урона на время дуэли.
  • [LSD] Teleport - Телепортирует игроков друг к другу перед началом дуэли.
  • СКОРО - Отключает вип-функции на время дуэли.
  • СКОРО - Отображает дуэлянтам оверлеи.
  • СКОРО - Отключает ограничение оружия на время дуэли.

Код:
#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 0
#define LSD_Duelist_CT 0

/*
* Вызывается когда игрок нажимает на пункт в меню.
*
* 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);

/*
* Возвращает id последнего победителя/проигравшего или одно из значений:
* 0 - Дуэль не состоялась.
* -1 - Дуэль завершилась ничьей.
*
* bLoser - Вернуть 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);

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

/*
* Началось голосование.
*
* iDuelist - id дуэлянтов.
*/
forward void 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_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");
}
#endif
Переменные
Код:
"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 - Нет.
    "draw_mode"        "1" //Что делать с игроками по истечении таймера? 0 - Ничего, 1 - Убить обоих, 2 - Убить случайного игрока, 3 - Убить того, у которого меньше здоровья.
    "block_attack"    "1" //Блокировать ли игрокам стрельбу на время голосования? 1 - Да, 0 - Нет.

    "Knife" //Имя режима дуэли.
    {
        "weapons"    "weapon_knife"
        "health"    "100"
        "armor"        "0"
        "helmet"    "0"
    }
}
Команды
Команды для открытия главного меню указываются в конфиге ("cmd").
Установка
Раскидать все содержимое на серверер.
Автор
the_voodoo
Скачивания
0
Просмотры
87
Первый выпуск
Обновление
Рейтинг
0,00 звезд Оценок: 0

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

Поделиться ресурсом

Верх