Проблема с ботами при mp_ignore_round_win_conditions 1

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,377
Так вот, есть проблема с ботами при mp_ignore_round_win_conditions 1, когда игрок выходит, бот заходит и весит в мёртвых, не возрождается(в дм), а когда боты заходят тока при заходе игроков, то они все весят мёртвыми, нормально возрождаются тока в начале раунда. Через какое то время снова веся в мёртвых.
Есть ли квар который блокирует сыграть второй раз в игре(стандартный)? Или я придумал сделать плагин который при команде возрождает мёртвых ботов(1 игрок может использовать его 1 раз за сессию или карту, для токго чтоб не злоупотребили этой командой).
Можно сделать плагн, когда первый игрок заходит в игру, делался рестарт игры.

вот придумал что, но как сделать проверку чтоб тока команда исполнялась при заходе первого игрока?
PHP:
public OnClientAuthorized(client, const String:auth[])
{
	new player = 0;
	if(player < 1) ServerCommand("mp_restartgame 3");
}
 
Последнее редактирование:

GoDtm666

Участник
Сообщения
580
Реакции
590
0_0 эт че? при каждом новом игроке, будет растарт делаться?
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,377
ilga80, я попробовал так, потянет?
PHP:
public OnClientAuthorized(client, const String:auth[])
{
	new playercount = 0; 
    for (new p = 1; p <= MaxClients; p++) 
    { 
        if (IsClientInGame(p) && !IsFakeClient(p) && IsPlayerAlive(p)) 
        { 
            playercount = 1; 
            break; 
        } 
    } 
    if (playercount == 0) 
    { 
        ServerCommand("mp_restartgame 3"); 
    }
}
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
ilga80
1. Если человек в спеках?
2. Если за CT 0 игроков, а за T +100500
3. Тоже самое с T
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,377
The End Is Near..., а какую ещё проверку добавить к твоему коду чтоб, ещё когда один игрок зашёл в спеки и снова в игру производился код?
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,377
The End Is Near..., на сервере один игрок, он заходит в спеки и потом снова в игру, ну вот надо чтоб код исполнялся когда один игрок на сервере и он заходит в команду из спектров. (думаю нормально объяснил:))
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Серый™
Попробуй v2
PHP:
#include <sourcemod>

public OnPluginStart()
{
	HookEvent("player_team", Event_OnPlayerTeam);
}

public Event_OnPlayerTeam(Handle:event, const String:name[], bool:silent)
{
	if (GetEventInt(event, "team") != 1)
	{
		GetPlayers();
	}
}

public OnClientPutInServer(client)
{
	GetPlayers();
}

GetPlayers()
{
	new players = 0;
	for (new i = 1; i <= MaxClients; i++)
	{
		if (IsClientInGame(i) && !IsFakeClient(i))
		{
			players++;
		}	
	}

	// Твое условие
	if (players == 0)
	{
		// Твой код
	}
}
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,377
The End Is Near..., при подключении работает, а при смене команды нет((

всё ровно(( Оффтоп
думаю если не получится, то мы главное уже сделали)) спасибо всем за помощь))
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,377
Мой плаг..
PHP:
#pragma semicolon 1
#pragma tabsize 0

#include <sourcemod>
#define VERSION "0.1b"

public Plugin:myinfo =
{
	name = "Restart",
	author = "",
	description = "",
	version = VERSION,
	url = ""
};

public OnPluginStart()
{
    HookEvent("player_team", Event_OnPlayerTeam);
}

public Event_OnPlayerTeam(Handle:event, const String:name[], bool:silent)
{
   if (GetEventInt(event, "team") != 1)
    {
        GetPlayers();
    }
}

public OnClientAuthorized(client)
{
	GetPlayers();
}

GetPlayers()
{
    // Создаем переменную и приравниваем ее 0
    new players = 0;
    
    // Выполняем цикл по игрокам
    for (new i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && !IsFakeClient(i))
        {
            players++;
        }    
    }
  
    // Делаешь свое условие
    if (players == 0)
    { 
        ServerCommand("mp_restartgame 3"); 
    }
}
Я один на сервер, 4 бота, добавляются когда я вхожу в игру, и когда я в спеках они уходят, присоединяются тока когда есть в игре игрок.
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,377
The End Is Near..., значит нужно сделать так if (players == 1) ?

вариант меня удовлетворивший ..
PHP:
#pragma semicolon 1
#pragma tabsize 0

#include <sourcemod>
#define VERSION "0.1b"

public Plugin:myinfo =
{
	name = "Restart",
	author = "",
	description = "",
	version = VERSION,
	url = ""
};

public OnPluginStart()
{
    HookEvent("player_team", Event_OnPlayerTeam);
}

public Event_OnPlayerTeam(Handle:event, const String:name[], bool:silent)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	if (client > 0 && IsClientInGame(client))
    {
        GetPlayers();
    }
}

GetPlayers()
{
	new playercount = 0;  
    for (new p = 1; p <= MaxClients; p++)  
    {  
        if (IsClientInGame(p) && !IsFakeClient(p) && IsPlayerAlive(p))  
        {  
            playercount = 1;  
            break;  
        }  
    }  
    if (playercount == 0)  
    {  
        ServerCommand("mp_restartgame 3");  
    }
}
 
Последнее редактирование:
Сверху Снизу