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

Перемещение Игроков (Switch Players)


Райан

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

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

20200822045302_1.jpg

В общем я еще раз пытался сделать Swapper для L4D2, вроде снова получилось, но время от времени наблюдается еще тот баг из этой темы:

Поэтому я этот плагин помещаю в раздел нестабильных. Он работает, но есть решения получше.

SwitchPlayers.sp SwitchPlayers.smx

Ссылка на комментарий
Поделиться на другие сайты
  • 8 месяцев спустя...

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

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

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

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

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

Войти

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

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

    • Автор Райан
      Плагин без проверки. Мне как всегда его некогда было проверить, потому что я спешу. Но я думаю все в порядке.
      Задача плагина - Предотвращение вызова голосований во время загрузки других игроков. То есть пока, все игроки не загрузятся, голосование не запустится.
      blocktrolls.smx blocktrolls.sp
    • Автор Райан
      По этому плагину требуется обратная связь. Если у вас есть что сообщить о нем, найдите минутку пожалуйста.
      Плагин проверяет время подключения игрока. Если оно выше 240 (По умолчанию) секунд, плагин кикает этого игрока.
      Работать плагин начинает только на заполненном сервере.
      Список изменений:
      Версия 1.2: - Переписан код на новом синтаксисе Ссылки на скачивание:
      Перейти к скачиванию архива от 27.01.22 stuckconnectionkicker.smx stuckconnectionkicker.sp
    • Автор Райан
      Внимание, я этот плагин не проверял. У меня нет возможности проверить его на наших тестовых серверах.
      Задача плагина состоит в том, что бы выключить mp_autoteambalance если набирается определенное количество игроков. В данном примере количество игроков равно 26.
      #pragma semicolon 1 #pragma newdecls required #include <sourcemod> public Plugin myinfo = { name = "mp_autoteambalance", author = "", description = "Автоматическое выключение автобаланса при определенном количестве игроков", version = "1.0.0", url = "" }; int g_iRoundStatus = 0, g_iSettingNow; public void OnPluginStart() { HookEvent("round_start", Event_RoundStart, EventHookMode_PostNoCopy); HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy); HookConVarChange(FindConVar("mp_autoteambalance"), ConVarChanged); } public void OnMapStart() { g_iSettingNow = GetConVarInt(FindConVar("mp_autoteambalance")); } public void OnClientPostAdminCheck(int client) { checksetting(); } public void OnClientDisconnect(int client) { checksetting(); } public Action Event_RoundStart(Event event, char[] name, bool dontBroadcast) { g_iRoundStatus = 1; checksetting(); } public Action Event_RoundEnd(Event event, char[] name, bool dontBroadcast) { g_iRoundStatus = 0; } void ConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue) { g_iSettingNow = StringToInt(newValue); } void checksetting() { if (g_iRoundStatus) { if (countplayers() >= 26) { if (g_iSettingNow) { ServerCommand("mp_autoteambalance 0"); } } else if (!g_iSettingNow) { ServerCommand("mp_autoteambalance 1"); } } } int countplayers() { int count = 0; for (int i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && !IsFakeClient(i)) { count++; } } return count; } Для изменения количества игроков отредактируйте 51 строку плагина:
      void checksetting() { if (g_iRoundStatus) { if (countplayers() >= 26) { if (g_iSettingNow) { ServerCommand("mp_autoteambalance 0"); } } else if (!g_iSettingNow) { ServerCommand("mp_autoteambalance 1"); } } }  
      mp_autoteambalance.sp mp_autoteambalance.smx
    • Автор Райан
      Следующий код способен выводить определенную информацию игроку, если он будет набирать необходимые триггер команды, которые вы интегрируете в этот код. Интегрируется все настолько легко, что даже я такой паразит, смог его переделать под свои нужды.
      Кстати, @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 сервере.
  • Последние посетители   0 пользователей онлайн

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

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