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

Автоматический mp_autoteambalance


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

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

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

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

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

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

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

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

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

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

Войти

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

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

    • Автор Райан
      Обновление сообщества Left 4 Dead 2: The Last Stand выходит 24 сентября, и мы празднуем его бесплатными выходными!
      Хватайте своих друзей и сражайтесь с ордой зомби на более чем двадцати новых аренах выживания, четырех новых аренах сбора и кампании, основанной на карте выживания Маяк. Новые достижения, холодное оружие, анимация, диалоги, корректировка игрового баланса и другие сюрпризы завершают это официальное обновление Left 4 Dead 2, созданное сообществом для сообщества.
      Взгляните на новый трейлер ниже!
       
    • Автор Райан
      В общем я еще раз пытался сделать Swapper для L4D2, вроде снова получилось, но время от времени наблюдается еще тот баг из этой темы:
      Поэтому я этот плагин помещаю в раздел нестабильных. Он работает, но есть решения получше.
      SwitchPlayers.sp SwitchPlayers.smx
    • Автор BoSSICoM
      Администратор имеет право отказать вам в рассмотрении жалобы, если: Жалоба составлена не по форме; Скриншот обрезан или выполнен с телефона; Отсутствуют доказательства, либо    отредактированы/обрезаны; На док-вах присутствуют посторонние программы, которые запрещены правилами  сервера; В жалобе присутствуют оскорбления игроков; Жалоба составлена неадекватным образом, через каждое слово присутствует нецензурная лексика; Вы неуважительно относитесь к администратору/ции; Отсутствует хотя бы один пункт из формы подачи;                                 Массовый флуд в теме; Заголовок темы не по форме; Жалоба составлена на нескольких нарушителей; Отсутствуют звуки игры; Вы неуважительно относились к нарушителю.        2. Поднимать (апать) темы запрещено.
             3. Запрещено дублирование тем.
             Дублированием тем считается 2-е и более тем с одинаковым содержанием.
             4. Отказ в случае с указанными      недействительными данными ника/без ника. 
             5. Быть совершенно уверенным, что в жалобе присутствуют нужные доказательства;
             6. Терпеливо ждать ответа от модератора/администратора раздела;
             7. Видеозапись хорошего качества (480p+);
      В теме запрещены:
      - Оффтоп;
      - Флуд;
      - Оскорбления;
      Оставлять жалобу строго по указанной форме ниже. (под спойлером)

    • Автор Райан
      Давайте создадим раздел, где игроки смогут получить ссылки на аддоны на L4D2? Что думаете по этому поводу?
    • Автор Райан
      Столкнулся с интересной проблемой, при редактировании бана в WEB части Material Admin 1.1.5.4, то ники типа "<<<Zippo>>>" не сохраняются. Бан будет отображаться с ником "имя игрока не указано".
      А если ник сохранить прям в кавычках """<<<Zippo>>>"", то ник будет отображаться как "&quot;&quot;"
      Пока единственное решение, которое я нашел, это сохранять в нике только латинские символы. То есть, просто Zippo будет спокойно сохранятся.
      Надеюсь на Hlmod мне дадут какую нибудь подсказку, но пока только так...
  • Последние посетители   0 пользователей онлайн

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

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