Смена конфигурации от определенного количества игроков

Статус
В этой теме нельзя размещать новые ответы.

alexmy

Участник
Сообщения
284
Реакции
13
Всем привет ребята нужен плагин. Суть плагина от определенного количества игроков чтоб менялась конфигурация например на сервере 7 человек зашел еще один то есть уже 8 играет сразу изменился квар и в обратном случаи, вышел один игрок настройки поменялись на ранее.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
сразу изменился квар и в обратном случаи
PHP:
#define PEOPLE_NEWCONFIG    8

public OnClientPostAdminCheck(client)
{
    if(GetClientCount() == PEOPLE_NEWCONFIG) ServerCommand("mp_friendlyfire 1");
}

public OnClientDisconnect(client)
{
    if(IsClientInGame(client)) if(GetClientCount() == PEOPLE_NEWCONFIG) ServerCommand("mp_friendlyfire 0");
}
Где: PEOPLE_NEWCONFIG - минимальное количество зашедших на сервер игроков, при котором в силу вступают новые настройки (и наоборот).
"mp_friendlyfire 1" - указать любые переменные и консольные команды через точку с запятой. Например: "mp_fraglimit 60;mp_freezetime 2;mp_roundtime 7".
Можно и из файла брать все настройки - одинаково просто.
 
Последнее редактирование:

alexmy

Участник
Сообщения
284
Реакции
13
PHP:
#define PEOPLE_NEWCONFIG    8

public OnClientPostAdminCheck(client)
{
    if(GetClientCount() == PEOPLE_NEWCONFIG) ServerCommand("mp_friendlyfire 1");
}

public OnClientDisconnect(client)
{
    if(IsClientInGame(client)) if(GetClientCount() == PEOPLE_NEWCONFIG) ServerCommand("mp_friendlyfire 0");
}
Где: PEOPLE_NEWCONFIG - минимальное количество зашедших на сервер игроков, при котором в силу вступают новые настройки (и наоборот).
"mp_friendlyfire 1" - указать любые переменные и консольные команды через точку с запятой. Например: "mp_fraglimit 60;mp_freezetime 2;mp_roundtime 7".
Можно и из файла брать все настройки - одинаково просто.
Спасибо большое вроде работает=). Я вот добавил рекламу но она очень много спамится, можно как нибудь исправит? Оффтоп
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
она очень много спамится
Писать надо внутри, после проверки:
PHP:
#include <colors>
#define PEOPLE_NEWCONFIG    6

public OnClientPostAdminCheck(client)
{
	if(GetClientCount() == PEOPLE_NEWCONFIG)
	{
		ServerCommand("sm_cvar z_difficulty Hard");
		CPrintToChatAll("{blue}Превышенный лимит игроков, смена сложности на {green}Мастер{blue}!");
	}
}

public OnClientDisconnect(client)
{
	if(IsClientInGame(client)) if(GetClientCount() == PEOPLE_NEWCONFIG)
	{
		ServerCommand("sm_cvar z_difficulty Normal");
		CPrintToChatAll("{blue}Состав команды уменьшился, смена сложности  на {green}Нормально{blue}!");
	}
}
 

alexmy

Участник
Сообщения
284
Реакции
13
Писать надо внутри, после проверки:
PHP:
#include <colors>
#define PEOPLE_NEWCONFIG    6

public OnClientPostAdminCheck(client)
{
    if(GetClientCount() == PEOPLE_NEWCONFIG)
    {
        ServerCommand("sm_cvar z_difficulty Hard");
        CPrintToChatAll("{blue}Превышенный лимит игроков, смена сложности на {green}Мастер{blue}!");
    }
}

public OnClientDisconnect(client)
{
    if(IsClientInGame(client)) if(GetClientCount() == PEOPLE_NEWCONFIG)
    {
        ServerCommand("sm_cvar z_difficulty Normal");
        CPrintToChatAll("{blue}Состав команды уменьшился, смена сложности  на {green}Нормально{blue}!");
    }
}
Привет. помоги еще раз). настройки меняет а назад не скидывает.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
назад не скидывает
Боты есть? Учти, что их тоже считает. Поэтому, если стало 8 игроков (включая ботов), люди вышли, а боты - нет, то и сбрасывать не станет. Проверил - у меня стабильно, даже с ботами.
 

alexmy

Участник
Сообщения
284
Реакции
13
Как я пробовал в настройках стоит 6 чел. зашел на сервер играло четверо настройка поменялась, вышел из сервера настройка осталась включенной=)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
играло четверо настройка поменялась
Как-то математика хромает, тебе не кажется? :biggrin: Если четверо + ты, то от 5 не включится. Либо ещё бот появился, либо кто-то подключался в этот момент (качал карту, звуки, модели) и его посчитало. Может, когда ты вышел, ещё начал кто-то подключаться к серверу и настройка сохранилась.
Проверяй по занятым слотам ещё, они покажут "подключенцев".
 
Последнее редактирование:

alexmy

Участник
Сообщения
284
Реакции
13
Как-то математика хромает, тебе не кажется? :biggrin:.
Шутник как всегда)
Если четверо + ты, то от 5 не включится. Либо ещё бот появился, либо кто-то подключался в этот момент (качал карту, звуки, модели) и его посчитало. Может, когда ты вышел, ещё начал кто-то подключаться к серверу и настройка сохранилась.
Проверяй по занятым слотам ещё, они покажут "подключенцев".
Я с тобой согласен если он считает и зараженных боссов тогда ты прав=), ну а если это простой баг опять же+)?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
если он считает и зараженных боссов
Босы - эти те же боты, конечно считает. Если же ты хочешь, чтобы считало только людей, так и скажи. Тут тоже ненамного больше писанины.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
PHP:
#include <colors>
#define PEOPLE_NEWCONFIG    6

new bool:g_bPlayerLoaded[MAXPLAYERS + 1], g_iPlayers;

public OnMapEnd() g_iPlayers = 0;

public OnClientPostAdminCheck(client)
{
	if (!IsFakeClient(client))
	{
		g_bPlayerLoaded[client] = true;
		if (++g_iPlayers == PEOPLE_NEWCONFIG)
		{
			ServerCommand("sm_cvar z_difficulty Hard");
			CPrintToChatAll("{blue}Превышенный лимит игроков, смена сложности на {green}Мастер{blue}!");
		}
	}
}

public OnClientDisconnect_Post(client)
{
	if (g_bPlayerLoaded[client])
	{
		g_bPlayerLoaded[client] = false;
		if (--g_iPlayers == PEOPLE_NEWCONFIG - 1)
		{
			ServerCommand("sm_cvar z_difficulty Normal");
			CPrintToChatAll("{blue}Состав команды уменьшился, смена сложности  на {green}Нормально{blue}!");
		}
	}
}
Где: PEOPLE_NEWCONFIG - минимальное количество зашедших на сервер игроков, при котором в силу вступают новые настройки (и наоборот).
"sm_cvar z_difficulty Hard" - указать любые переменные и консольные команды через точку с запятой. Например: "mp_fraglimit 60;mp_freezetime 2;mp_roundtime 7".
Из-за окраски чата не забудьте файл colors.inc!
Этот конфигуратор, на сей раз, считает только полностью подключившихся к серверу игроков (скачавших карту, звуки, модели т.п.). Оффтоп
 
Последнее редактирование:

alexmy

Участник
Сообщения
284
Реакции
13
PHP:
#include <colors>
#define PEOPLE_NEWCONFIG    6

new bool:g_bPlayerLoaded[MAXPLAYERS + 1], g_iPlayers;

public OnMapEnd() g_iPlayers = 0;

public OnClientPostAdminCheck(client)
{
    if (!IsFakeClient(client))
    {
        g_bPlayerLoaded[client] = true;
        if (++g_iPlayers == PEOPLE_NEWCONFIG)
        {
            ServerCommand("sm_cvar z_difficulty Hard");
            CPrintToChatAll("{blue}Превышенный лимит игроков, смена сложности на {green}Мастер{blue}!");
        }
    }
}

public OnClientDisconnect_Post(client)
{
    if (g_bPlayerLoaded[client])
    {
        g_bPlayerLoaded[client] = false;
        if (--g_iPlayers == PEOPLE_NEWCONFIG - 1)
        {
            ServerCommand("sm_cvar z_difficulty Normal");
            CPrintToChatAll("{blue}Состав команды уменьшился, смена сложности  на {green}Нормально{blue}!");
        }
    }
}
Где: PEOPLE_NEWCONFIG - минимальное количество зашедших на сервер игроков, при котором в силу вступают новые настройки (и наоборот).
"sm_cvar z_difficulty Hard" - указать любые переменные и консольные команды через точку с запятой. Например: "mp_fraglimit 60;mp_freezetime 2;mp_roundtime 7".
Из-за окраски чата не забудьте файл colors.inc!
Этот конфигуратор, на сей раз, считает только полностью подключившихся к серверу игроков (скачавших карту, звуки, модели т.п.). Оффтоп
Спасибо большое, вот теперь вроде норма работает)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу