- Поддерживаемые игры
- CS: Source (OrangeBox)
- CS: GO
Lovely Sweet Duels?
Система для проведения дуэлей между последними двумя игроками в конце раунда.
Вроде как работает на CSS.
Система для проведения дуэлей между последними двумя игроками в конце раунда.
Вроде как работает на CSS.
Скрытое содержимое доступно для зарегистрированных пользователей!
Код:
#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 //Дуэль отменена.
/*
* Вызывается когда игрок нажимает на пункт в меню.
*
* 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);
/*
* Получает числовое значение из конфига.
*
* sValue - Имя переменной.
*
* bLocal - Получить значение переменной внутри секции текущей дуэли.
*
* def - Значение по умолчанию.
*/
native int LSD_GetIntValue(const char[] sValue, bool bLocal = false, int def = 0);
/*
* Получает float из конфига.
*
* sValue - Имя переменной.
*
* bLocal - Получить значение переменной внутри секции текущей дуэли.
*
* def - Значение по умолчанию.
*/
native float LSD_GetFloatValue(const char[] sValue, bool bLocal = false, float def = 0.0);
/*
* Получает строку из конфига.
*
* sValue - Имя переменной.
*
* bLocal - Получить значение переменной внутри секции текущей дуэли.
*
* sBuff - Буфер.
*
* maxsize - Максимальный размер строки.
*
* sDefault - Значение по умолчанию.
*/
native void LSD_GetStringValue(const char[] sValue, bool bLocal = false, char[] sBuff, int maxsize, const char[] sDefault = "");
/*
* Возвращает id последнего победителя или одно из значений:
* 0 - Дуэль не состоялась.
* -1 - Дуэль завершилась ничьей.
*/
native int LSD_GetLastWinner();
/*
* Возвращает id дуэлянта.
*
* bSecond - Вернуть id второго дуэлянта.
*/
native int LSD_GetDuelist(bool bSecond = false);
/*
* Возвращает имя режима текущей дуэли.
*
* sBuff - Буфер.
*
* maxsize - Максимальный размер строки.
*/
native void LSD_GetMode(char[] sBuff, int maxsize);
/*
* Возвращает указатель конфига.
*/
native KeyValues LSD_GetConfig();
/*
* Возвращает стадию текущей дуэли.
*/
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_OnVoteStartPre(int &time, int iDuelist[2]);
/*
* Началось голосование.
*
* time - Время голосования.
*
* iDuelist - id дуэлянтов.
*/
forward void LSD_OnVoteStart(int time, int iDuelist[2]);
/*
* Вызывается перед LSD_OnPrepStart.
*
* time - Время голосования.
*
* iDuelist - id дуэлянтов.
*
* Если вернуть true, то дуэль будет отменена.
*/
forward bool LSD_OnPrepStartPre(int &time, int iDuelist[2]);
/*
* Началась подготовка к дуэли.
*
* time - Время голосования.
*
* iDuelist - id дуэлянтов.
*/
forward void LSD_OnPrepStart(int time, int iDuelist[2]);
/*
* Вызывается перед LSD_OnDuelStart.
*
* time - Время голосования.
*
* iDuelist - id дуэлянтов.
*
* sMode - Имя режима дуэли (если не указано, то будет выбран случайный режим).
*
* buffsize - Максимальный размер строки.
*
* Если вернуть true, то дуэль будет отменена.
*/
forward bool LSD_OnDuelStartPre(int &time, int iDuelist[2], char[] sMode, int buffsize);
/*
* Дуэль началась.
*
* time - Время голосования.
*
* iDuelist - id дуэлянтов.
*
* sMode - Имя режима дуэли.
*/
forward void LSD_OnDuelStart(int time, int iDuelist[2], char[] sMode);
/*
* Вызывается перед LSD_OnTimer.
*
* iStage - Стадия дуэли.
*
* time - Время таймера до следующей стадии.
*
* Если вернуть true, то LSD_OnTimer не будет вызван, а информация о таймере не будет отображена игрокам.
*/
forward bool LSD_OnTimerPre(int iStage, int &time);
/*
* Вызывается каждую секунду таймера во время дуэли.
*
* iStage - Стадия дуэли.
*
* time - Время таймера до следующей стадии.
*/
forward void LSD_OnTimer(int iStage, int time);
/*
* Победитель был выбран.
*
* iWinner - id победителя или -1, если дуэль завершилась ничьей:
*
* iDuelist - id дуэлянтов.
*/
forward void LSD_OnWinnerSelected(int iWinner, int iDuelist[2]);
/*
* Дуэль была отменена.
*/
forward void LSD_OnDuelCancelled();
/*
* Вызывается перед LSD_OnWinnerSpawn.
*
* client - id игрока.
*
* Если вернуть true, событие не будет вызвано.
*/
forward bool LSD_OnWinnerSpawnPre(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_GetIntValue");
MarkNativeAsOptional("LSD_GetFloatValue");
MarkNativeAsOptional("LSD_GetStringValue");
MarkNativeAsOptional("LSD_GetLastWinner");
MarkNativeAsOptional("LSD_GetDuelist");
MarkNativeAsOptional("LSD_GetMode");
MarkNativeAsOptional("LSD_GetConfig");
MarkNativeAsOptional("LSD_GetStage");
MarkNativeAsOptional("LSD_PrintToChat");
MarkNativeAsOptional("LSD_PrintToChatAll");
}
#endif
- Команды
- Команды для открытия главного меню указываются в конфиге ("cmd").