Иконка ресурса

[LSD] Core 1.1.1

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

Код:
Expand Collapse Copy
#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").
Автор
hirowatch
Скачивания
0
Просмотры
248
Первый выпуск
Обновление

Оценки

0.00 звёзд 0 оценок

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

  1. Версия 1.1.1

    Исправление ошибок.
  2. Версия 1.1.0

    Изменения в API (большинство старых модулей не будут работать на этой версии ядра). Исправлена...
  3. Версия 1.0.4

    Исправлен баг с автоматическим отклонением дуэли. Добавлена переменная block_attack, отвечающая...
Назад
Сверху Снизу