Перейти к содержанию

До Хэллоуина осталось....

 

Принудительное завершение игры и объявление команды победителя (SM_WINNER)


Рекомендуемые сообщения

  • Администратор

Это плагин для менеджмента (управления) каткой. Если админ вводит команду sm_winner ct/t, то игра завершается со счетом в пользу выбранной команды.

Плагин проверялся в игре Counter-Strike: Source, на версии SourceMod 1.10.0.6501.

Установка:

  • Скомпилируйте .sp файл и поместите его в /addons/sourcemod/plugins
  • Или поместите уже готовый .smx файл в /addons/sourcemod/plugins
  • Сделайте рестарт сервера.
#pragma newdecls required

#include <sourcemod>
#include <sdktools>
#include <cstrike>

public Plugin myinfo =  {
	name = "Winner", 
	author = "Ilusion9", 
	description = "При прописи команды sm_winner (CT/T) идет принудительное завершение игры и объявление победителя", 
	version = "1.0", 
	url = "https://ip-gamers.net/"
};

ConVar g_Cvar_MaxRounds;
ConVar g_Cvar_Timelimit;
ConVar g_Cvar_RoundRestartDelay;

public void OnPluginStart()
{
    g_Cvar_MaxRounds = FindConVar("mp_maxrounds");
    g_Cvar_Timelimit = FindConVar("mp_timelimit");
    g_Cvar_RoundRestartDelay = FindConVar("mp_round_restart_delay");
    
    RegConsoleCmd("sm_winner", Command_Winner);
}

public Action Command_Winner(int client, int args)
{
    char arg[64];
    GetCmdArg(1, arg, sizeof(arg));
    
    if (StrEqual(arg, "T", false))
    {
        EndGame(CS_TEAM_T);
    }
    else if (StrEqual(arg, "CT", false))
    {
        EndGame(CS_TEAM_CT);
    }
    
    return Plugin_Handled;
}

void EndGame(int winner)
{
    if (winner == CS_TEAM_T)
    {
        CS_SetTeamScore(CS_TEAM_T, g_Cvar_MaxRounds.IntValue / 2);
        SetTeamScore(CS_TEAM_T, g_Cvar_MaxRounds.IntValue / 2);
        
        CS_SetTeamScore(CS_TEAM_CT, 0);
        SetTeamScore(CS_TEAM_CT, 0);
        
        CS_TerminateRound(g_Cvar_RoundRestartDelay.FloatValue, CSRoundEnd_TerroristWin);
    }
    else
    {
        CS_SetTeamScore(CS_TEAM_CT, g_Cvar_MaxRounds.IntValue / 2);
        SetTeamScore(CS_TEAM_CT, g_Cvar_MaxRounds.IntValue / 2);
        
        CS_SetTeamScore(CS_TEAM_T, 0);
        SetTeamScore(CS_TEAM_T, 0);
        
        CS_TerminateRound(g_Cvar_RoundRestartDelay.FloatValue, CSRoundEnd_CTWin);
    }
    
    g_Cvar_Timelimit.SetInt(1);
}

 

winner.sp winner.smx

Я не ищу ничего логичного, например денег. Меня нельзя купить, запугать, аргументировать или договориться со мной. Я просто хочу смотреть, как горит мир.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Похожий контент

    • Автор Ry@N
      SPCode - продолжение работы над SPEdit но уже другим разработчиком. То есть это Форк.
      Почему вам надо использовать SPCode вместо SPEdit:
      Редактор работает теперь на .NET Framework 4.8 (раньше работал на 4.5). Исправлен ошибка при закрытии несохраненной вкладки (Очень меня раздражало). Исправлены проблемы с отступом. Обновлены шаблоны плагинов. Помимо указанных четырех пунктов в программе есть еще очень много различных исправлений, плюс редактор сам по себе новее, ну и в него включены новые переводы
      SPCode.Installer.exe
      Требования:
      Что бы попытаться раскомпилировать простейшие плагины этим редактором, вам на PC потребуется последняя версия Java. Добавил это в первый пост.
    • Автор Ry@N
      Следующий код способен выводить определенную информацию игроку, если он будет набирать необходимые триггер команды, которые вы интегрируете в этот код. Интегрируется все настолько легко, что даже я такой паразит, смог его переделать под свои нужды.
      Кстати, @dr.lex считает этот код мусором 🙂 Но я все же им поделюсь, так как форум в первую очередь рассчитан на новичков.
      Пример работы:
      Сам код, работать в L4D2 будет:
      #include <sourcemod> #include <sdktools> #include <colors> #pragma semicolon 1 #pragma newdecls required public Plugin myinfo = { name = "Информация по триггер запосам", author = "L4D2Noob.Ru", description = "Отображает необходимую информацию по триггер запросам в чате", version = "3.5", url = "https://l4d2noob.ru/" }; ConVar g_site; ConVar g_grup; ConVar g_easteregg; ConVar g_adminka; char g_sBuffer[64]; public void OnPluginStart() { RegConsoleCmd("sm_site", CommandSite); RegConsoleCmd("sm_grup", CommandGrup); RegConsoleCmd("sm_easteregg", CommandEasteregg); RegConsoleCmd("sm_adminka", CommandAdminka); g_site = CreateConVar("sm_link_site", "https://l4d2noob.ru/"); g_grup = CreateConVar("sm_link_grup", "https://steamcommunity.com/groups/l4d2noobru"); g_easteregg = CreateConVar("sm_link_easteregg", "Торта нет"); g_adminka = CreateConVar("sm_link_adminka", "На форуме бесплатно!"); } public Action CommandSite(int client, int args) { g_site.GetString(g_sBuffer, sizeof(g_sBuffer)); CPrintToChat(client, "» \x04Форум для админов и кодеров:\x04 \x05%s", g_sBuffer); return Plugin_Handled; } public Action CommandGrup(int client, int args) { g_grup.GetString(g_sBuffer, sizeof(g_sBuffer)); CPrintToChat(client, "» \x04Группа в Steam:\x04 \x05%s", g_sBuffer); return Plugin_Handled; } public Action CommandEasteregg(int client, int args) { g_easteregg.GetString(g_sBuffer, sizeof(g_sBuffer)); CPrintToChat (client, "» \x04[ОТСЫЛКА]: \x04 \x05%s", g_sBuffer); return Plugin_Handled; } public Action CommandAdminka(int client, int args) { g_adminka.GetString(g_sBuffer, sizeof(g_sBuffer)); CPrintToChat (client, "» \x04[СТАТЬ АДМИНОМ]: \x04 \x05%s", g_sBuffer); return Plugin_Handled; } Ну и готовый пример можно посмотреть на нашем VS#3 сервере.
    • Автор Ry@N
      Для игроков:
      --------------------------------------------------
      Отображение урона на сервере немного обновлено, и теперь немного напоминает Fortnite. Отображается количество ХП снятое не только у врага, но и у союзника. Так же учитывается важность критичности. Например чем больше крит выстрела, тем краснее надпись.
      Так же отображается надпись "Убил!!!" и ник, кого ты убил.

      Для владельцев серверов:
      ---------------------------------------------------------
      Так как старый плагин нами использоваться больше не будет, то может быть он пригодится кому то другому, поэтому вот: showdamage.smx Исходника у меня к сожалению нет.
      Конфиг который использовал сервер для старого плагина:
      // This file was auto-generated by SourceMod (v1.10.0.6501) // ConVars for plugin "showdamage.smx" // Enabled/Disabled show damage functionality, 0 = off/1 = on // - // Default: "1" // Minimum: "0.000000" // Maximum: "1.000000" sm_show_damage "1" // Show friendly fire damage, 0 = off/1 = on // - // Default: "0" // Minimum: "0.000000" // Maximum: "1.000000" sm_show_damage_ff "0" // Show your own damage, 0 = off/1 = on // - // Default: "0" // Minimum: "0.000000" // Maximum: "1.000000" sm_show_damage_own_dmg "0" // Defines the area for damage text: // 1 = in the center of the screen // 2 = in the hint text area // 3 = in chat area of screen // - // Default: "1" // Minimum: "1.000000" // Maximum: "3.000000" sm_show_damage_text_area "1" Приятной игры.
    • Автор Ry@N
      Организация fnatic сегодня празднует 18-й день рождения!
      Какие 3 игрока этой организации первыми приходят вам на ум, когда вы видите это лого?

    • Автор Ry@N
      Версия плагина 2.1.3, изменения:
      Remke code Исправлена ошибка предыдущей памяти Исправлена утечка памяти Powerup возвращается в норму, когда игрок меняет команду или умирает Новая функция:
      Адреналин заставляет вас быстрее реагировать на нокдауны. Обновление cfg:
      Были добавлены новые переменные, поэтому удалите старую конфигурацию переменных, что бы вместо нее сгенерировалась новая. Новая конфигурация:
      // Нужно ли давать игрокам адреналин в начале раунда? l4d_powerups_adren_give_on "0" // Скорость восстановления l4d_powerups_animspeed "2.0" // Следует ли уведомлять игроков при подключении к серверу о бонусах? l4d_powerups_broadcast_on "1" // Как уведомляются игроки? (0 = Чат, 1 = Хинт 2 = Оба) l4d_powerups_broadcast_type "1" // Как долго должны длиться бусты? l4d_powerups_duration "20" // Нужно ли давать игрокам таблетки в начале раунда? l4d_powerups_pills_give_on "0" // Фактор удачи при проглатывании таблеток, которые дадут импульс. (1 = 1/1 2 = 1/2 3 = 1/3 4 = 1/4) l4d_powerups_pills_luck "3" // Включен ли плагин? l4d_powerups_plugin_on "1" // Нужно ли давать игрокам адреналин или таблетки в начале раунда? l4d_powerups_random_give_on "0" // Следует ли игрокам использовать адреналин для супер-перезарядки, стрельбы из оружия и рукопашных ударов? l4d_powerups_use_on "1" // Интервал между выстрелами умножается на это значение. ВНИМАНИЕ: достаточно короткий интервал приведет к искажению точности стрельбы из пистолетов-пулеметов и винтовок. l4d_powerups_weaponfiring_rate "0.6667" // Интервал размахивания холодного оружия l4d_powerups_weaponmelee_rate "0.45" // Интервал, возникающий при перезагрузке, умножается на это значение l4d_powerups_weaponreload_rate "0.5714" Команды плагина:
      sm_giveadren - Дать адреналин всем выжившим. (ADMFLAG_CHEATS) sm_givepills - Дать таблетки всем выжившим. (ADMFLAG_CHEATS) sm_giverandom - Дать или таблетки или адреналин всем выжившим. (ADMFLAG_CHEATS) Плагин мной не проверялся, так как в данный момент у меня нет тестового сервера для Left 4 Dead 2.
      l4d2_powerups_rush.smx l4d2_powerups_rush.sp
  • Что вы сделаете; когда увидите исчезающее животное; которое ест исчезающее растение?

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу


×
×
  • Создать...