Вопрос по sourcepawn

truekreo

Участник
Сообщения
18
Реакции
9
Как сделать, чтобы когда на сервере было 10 человек, запускался Warmod.
--- Добавлено позже ---
Или чтобы подгрузился конфиг от esl, ну в общем нужно начать соревновательный режим, когда на сервере будет 10 человек.
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Декомпельни WarMod Manager, там очень хорошо видно проверку кол-ва игроков
 

truekreo

Участник
Сообщения
18
Реакции
9
Декомпельни WarMod Manager, там очень хорошо видно проверку кол-ва игроков
Я только начал разбираться в сурспавне, поэтому я думаю будет легче в нем обработать кол-во игроков и подключить конфиг и сделать рестарты.

Так вот, как подключить конфиг, в сурспавне есть команда или что-то вроде того?
 
  • Мне нравится
Реакции: kyaN

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Я только начал разбираться в сурспавне, поэтому я думаю будет легче в нем обработать кол-во игроков и подключить конфиг и сделать рестарты.

Так вот, как подключить конфиг, в сурспавне есть команда или что-то вроде того?

PHP:
#define MINPLAYERS 10

public OnPluginStart()
{
    CreateTimer(3.0, PlayerChecker, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public Action:PlayerChecker(Handle:timer)
{
    new alive_players = GetClientsCount(3, true);
    new InTeams = GetClientsCount(1, true);
    if (InTeams == alive_players && alive_players >= MINPLAYERS)
    {
        ServerCommand("fs");
        return Plugin_Stop;
    }
 
    else
    {
        PrintCenterTextAll("Недостаточно игроков - %i\n(%i/%i)",MINPLAYERS - InTeams, InTeams, MINPLAYERS);
        return Plugin_Continue;
    }
}

GetClientsCount(filter, bool:inc_bots)
{
    new connected;
    new inteams;
    new ingame;
    new alive;
    for(new i = 1; i <= MaxClients; i++)
    {
        if (IsClientConnected(i) && !IsClientSourceTV(i) && !IsClientReplay(i))
        {
            if (!(!inc_bots && IsFakeClient(i)))
            {
                connected++;
                if (IsClientInGame(i))
                {
                    ingame++;
                    if (GetClientTeam(i) > 1)
                    {
                        inteams++;
                        if (IsPlayerAlive(i)) alive++;
                    }
                }
            }
            i++;
        }
        i++;
    }
    /*
    switch (filter)
    {
        case 1:        return inteams;
        case 2:        return ingame;
        case 3:        return alive;
        default:    return connected;
    }
    */
 
    if (filter == 1)            return inteams;
    else if (filter == 2)    return ingame;
    else if (filter == 3)    return alive;
    else return ingame;
}

Должно работать, только вот на счет работы после смены карты я не уверен.

Если что - замени OnMapStart() на OnPluginStart()

P.S. Команда для выполнения указана тут
PHP:
ServerCommand("fs");
Можешь например заменить ее на
PHP:
ServerCommand("exec config_5x5.cfg");
 

truekreo

Участник
Сообщения
18
Реакции
9
@Danyas, Спасибо, с тобой можно как-то связаться? Есть предложение.
 
  • Мне нравится
Реакции: kyaN

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
@Danyas, про ивенты на подобие 'player_team' не слышал?
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
@Danyas, каждые 3 секунды проверяешь количество игроков? мм
Что бы в hint-e было постоянно написано количество игроков нужно обновлять его чаще 5 секунд. После выполнения команды таймер завершает свою работу, и больше не ест ресурсов.
@Danyas, про ивенты на подобие 'player_team' не слышал?
Слышал, можно было бы и через player_team сделать, записывая количество игроков в переменную.
 

SourceSamil

Мошенник
Сообщения
121
Реакции
28
Было бы более оптимизировано, а так на быдлокод похоже.
 

Reg1oxeN

Участник
Сообщения
403
Реакции
319
6 лет назад еще куда не шло жаловаться на оптимизацию такого кода, но на текущий момент, извини меня - это уже нисколько не повлияет на производительность.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
на текущий момент, извини меня - это уже нисколько не повлияет на производительность
Оффтоп
 

SourceSamil

Мошенник
Сообщения
121
Реакции
28
По себе знаю, что 150 оптимизированных плагинов могут нагружать, как 80-100 неоптимизированных
 
Сверху Снизу