Перейти к содержанию
Одно твое сообщение на этом сайте в день делает сайт лучше! Спасибо!

Принудительное завершение игры и объявление команды победителя (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

Ссылка на комментарий
Поделиться на другие сайты
Классное и оптимизированное сражение 6 на 6 в Left 4 Dead 2

Приятной игры!

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

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

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

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

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

Войти

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

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

    • Автор Райан
      Итак, суть вопроса вот в чем.
      Значит, начал я постигать создание плагинов для форума IPS 4.6, и даже уже что то получается. Начал делать уже максимально простые, но свои плагины. И недавно, я столкнулся со следующей бедой.
      Я на тестовом форуме (Личный форум для меня одного, на моем харде) занимался плагином, не важно каким, просто плагином. Все нормально получалось и все работало. Затем, мне понадобилось переустановить тестовый форум с нуля.
      Значит на переустановленный форум я закидываю свой же плагин, включаю режим разработчика. А в моем плагине нет моих папок, моего вложенного стиля, моего js скрипта. То есть как бы, чужой плагин в режиме разработчика редактировать конечно можно, но почему то только хуки, а все остальное исчезло.
      И я подумал. А возможно ли скачанный с чужого сайта плагин, корректно "Раскомпилировать" в режиме разработчика? Со всеми папками, и вытекающими. Итак возможно ли?
       
    • Автор Райан
      В данном форуме ведется набор администраторов, модераторов и людей кому интересен наш проект с административной точки зрения, для поддерживания порядка на всем сообществе IP-Gamers.
      Пример заявки для админа сервера:
      Имя; Возраст (кол-во полных лет); Город (проживание); Как можно связаться помимо форума и игры; IP адрес и его тип (статический / динамический); Ник в игре; Стаж игры Left 4 Dead 2; Знание SourceMod, Серверостроения. Опыт Администрирования (IP, адрес форума, срок); Пользовались ли читами; На каком сервере хотели бы быть администратором (один на ваш выбор); Удобное время посещения сервера (утро / день / вечер / ночь); Полезная информация о себе (Также указывайте такие качества как владение языками программирования, графическими программами и всё в таком духе). Ваш Steam ID (Можно узнать, прописав в консоли игры "Status", находясь на сервере). Пример заявки для модератора форума:
      Имя; Возраст (кол-во полных лет); Город (проживание); Как можно связаться помимо форума и игры; Заполнен ли твой профиль на форуме на 100 процентов; Есть ли 5 сообщений на форуме; Опыт модерирования (адрес форума, срок); Удобное время посещения форума (утро / день / вечер / ночь); Полезная информация о себе (Также указывайте такие качества как владение языками программирования, графическими программами и всё в таком духе). Пример заявки для модераторов группы Steam:
      Имя; Возраст (кол-во полных лет); Город (проживание); Как можно связаться помимо форума и игры; Ссылка на профиль Steam; Как долго состоишь в группе Steam; Опыт модерирования (адрес группы Steam, срок); Удобное время посещения форума (утро / день / вечер / ночь); Полезная информация о себе (Также указывайте такие качества как владение языками программирования, графическими программами и всё в таком духе). Халатное, несерьезное отношение к этой должности недопустимо. У нас очень жесткие правила, подумайте сразу, нужно вам это или нет, чтобы лишний раз не беспокоить администрацию, и не тратить свое и наше время.
      Написание заявки означает, что Вы знаете правила нашего сообщества.
      Заявки может оставить любой желающий пользователь.
      Рассмотрим все предложения!
      Решения о принятии заявки или ее отказе, могут быть обоснованы с причинами и без них, которые не обсуждаются!
      Тема закроется автоматически, спустя 3 суток.
    • Автор Райан
      Чуть больше года назад у нас уже проходило подобное голосование, с которым вы можете ознакомится по этой ссылке.
      Смысл голосования IP-Gamers Plugins Awards'22 состоит в том, что бы напомнить о тех плагинах, которые запомнились нам больше всего и возможно, благодаря этому подарить им вторую жизнь. Суть в том, что даже в нашем, маленьком сообществе с каждым днем становится все больше и больше новых плагинов, и за всем уследить попросту не возможно.
      Само собой у каждого человека свое мнение, но это будет так сказать локальный рейтинг от пользователей нашего сообщества. Вам лишь надо проголосовать.
      Итак, в голосовании участвуют следующие плагины:
      showdamage.smx - Плагин отображающий нанесенный урон в стиле игры Fortnite. На нашем сервере CSS Classic используется именно он. l4d_brutal_hunter_mod - Никогда не перестану заявлять что это мой самый любимый плагин. Ведь с помощью него выживших можно убить всего лишь с одного точного прыжка Охотника. l4d2vsmapfinalenext.smx - Простой, классический переход с кампании на кампанию. Ничего лишнего, никаких голосований. Отыграл компанию, идешь на следующую по порядку. Разве не классно? Никогда, никаких альтернатив не рассматривал и на всех серверах L4D2 использовал только этот плагин. Отображаем репорты игроков с сервера CS:S на форуме Invision Community - Этот плагин у нас не прижился, но давайте будем честными это одна из немногих интеграций SourceMod в форумный движок IPS4, и эта интеграция достойна упоминания. Рандомное ХП у Танка - Скрипт - Я помню как в этом плагине отключил лимиты, и сделал так что бы рандомное хп у Танка ставилось от 100 хп до 100000 хп. Ух, сколько нервов я потрепал игрокам. Они до сих пор меня ненавидят за это. Нет Урона под Водой (No Water Damage) - Простой плагин отключающий урон от воды игроку, если у того нет больше воздуха. Тем самым плагин исправляет баг завязанный на таблетках и ныряниях под воду. Отображение дистанции между охотником и жертвой - Плагин покажет дистанцию перед прыжком Охотника, до жертвы. Полезно использовать в связке с l4d_brutal_hunter_mod. Наша версия этого плагина отобразит дистанцию более заметно, в подсказке снизу. Закрыть/Открыть дверь в Left 4 Dead 2 - Плагин, который позволяет закрывать и открывать двери. Очень полезно на картах с Выживанием. Двери само собой не вечны, поэтому долго укрываться не получится. Зомби питомцы - Zombie pets - Плагин позволяет создать питомца в виде зомби, который будет следовать за игроком. Классно, когда у тебя есть прирученный Громила. Авто лечение у выживших / Call of Duty-like automatic healing for survivors - Данный плагин будет автоматически лечить выжившего, как в Call of Duty. Количество восстанавливаемого ХП указывается в конфиге. Снег на карте (sm_snow) - Простой новогодний плагин, который на открытой местности закидывает твой экран снегом. Не нужно удерживать кнопку при лечении / Hold key when ProgressBar running - Все просто, раньше что бы выполнить какое то действие нужно было удерживать клавишу. Теперь достаточно одного клика, и действие будет выполняться само. Игра в Силача на каждой карте - Strongman Game - Возможность получить достижение 'GONG SHOW' на каждой карте. Все названия кликабельны, если вы на них нажмете, то сможете вспомнить, что конкретно представляет из себя каждый плагин. А самое главное плагины в этой подборке доступны для скачивания у нас в сообществе прямо сейчас.
    • Автор CHIKI_BRIKI
      Раян, прошу сделать больше нормальных причин для мута, и больше вариантов времени для них
      Просто иногда от игрока идут оскорбления заслуживающие лишь мута, и не хочется его просто банить, да, есть прописанные правила, но ранее было добрее с этим, чем выдавать мут за оски и забывать его редактировать с двух дней на меньший срок
      Просто нужна более гибкая система выдачи наказаний
      Да, я не прошу сделать сразу кучу всего
      Но можешь добавить в муты "использование музыки в чат", какое нибудь 1 день или два дня приурочить
      И главное, сделать возможным нормально выдавать мут и гаг на 16 часов (лучше на 16 часов), вместо бана
      Это может показать игрокам что хоть их общение и наказывается - всё равно игрока не выгоняют и просят успокоится
    • Автор Райан
      Данный плагин SourceMod до банального прост. Вы в конфиге биндите необходимое вам ключевое слово на команду и после этого команду можно вызывать с помощью привязанного слова. Полезно для плагинов с длинными командами. Пример !resetscore>!rs>!r.
      В версии которую я выложил, в конфиге, вместо флагов администратора можно использовать SteamID.
      Переменные:
      sm_commandshortcuts_notification - Отображать сообщение при срабатывании команды. 1 = включено, 0 = отключено. sm_commandshortcuts_publicinfo - разрешить всем клиентам просматривать о ярлыках, набрав !commandshortcuts. 1 = все клиенты, 0 = только администраторы Команды:
      sm_reloadshortcuts - Перезагружает файл конфигурации. sm_commandshortcuts - Дает информацию о сочетаниях клавиш. Пример конфига:
      "commandshortcuts" { "1" { "shortcut" "!restartgame" "flag" "d" "command" "mp_restartgame 5" "type" "1" "registershortcut" "0" } "2" { "shortcut" "sm_fly" "flag" "STEAM_0:1:175038461" "command" "sm_noclip {player}" "type" "1" "registershortcut" "1" } "3" { "shortcut" "!shortcuts" "flag" "" "command" "sm_commandshortcuts" "type" "2" "registershortcut" "0" } } Установка:
      Поместите содержимое архива в FTP вашего сервера и сделайте рестарт. sm_commandshortcuts_v1.2.zip
      Я плагин не тестировал. Это обычный перепост оригинального плагина.
  • Последние посетители   0 пользователей онлайн

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



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