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

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

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

Внимание, я этот плагин не проверял. У меня нет возможности проверить его на наших тестовых серверах.

Задача плагина состоит в том, что бы выключить 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

Мир изменился, он стал другим!

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

  • 2 года спустя...
  • Администратор

MP_Autoteambalance

Просмотр файла

Плагин mp_autoteambalance представляет собой инструмент для автоматического управления функцией автобаланса в игре Counter-Strike: Source. Этот плагин позволяет администраторам серверов гибко настраивать автобаланс в зависимости от количества игроков на сервере.

Основные особенности:

  • Автоматическое выключение автобаланса при достижении определенного количества игроков на сервере.
  • Возможность настройки определенного порога игроков, при достижении которого функция автобаланса будет отключена.
  • Управление параметрами плагина через консоль сервера или файлы конфигурации.

Этот плагин обеспечивает более гибкое и удобное управление автобалансом на сервере, что способствует более сбалансированной игровой среде и повышению удовлетворенности игроков.


 

Мир изменился, он стал другим!

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

  • Лучшие авторы

    На этой неделе никто репутацию не получал

  • Последние достижения

    • GAMADA повысил звание
      Lvl 1
    • Darya повысил звание
      Lvl 14
    • Mad.Eagle повысил звание
      Lvl 5
    • Mad.Eagle повысил звание
      Lvl 4
    • Plamen474 получил значок
      Бета
×
×
  • Создать...