Перезапуск раунда когда первый человек зашёл на сервер

EOS

Сообщения
21
Реакции
0
Здравствуйте, как нужно реализовать правильно такую вещь. Например: На сервере 0 онлайна, заходит любой игрок присоединяется за любую команду кт или т.
И когда пользователь присоединился: нужно чтобы раунд перезапускался. Тоесть раунд перезапускается и т.д. (имелось ввиду закупка оружий, etc..)
 
Сообщения
56
Реакции
27
Помог
3 раз(а)
Как вариант, хукнуть TeamInfo, проверить кол-во играющих игроков и сделать рестарт тем же sv_restart 1.
 

EOS

Сообщения
21
Реакции
0
@Albertio,Спасибо )
18 Янв 2022
@CSBishop,Хороший вариант, спасибо)
 
Сообщения
33
Реакции
1
а как сделать так; например играют 3 чела 1т и 2 кт, террорист выходит и раунд перезапускался. чтоб автобвлансер раскидал кт по командам, а то раунд продолжается.
 

EOS

Сообщения
21
Реакции
0
protagonist1982,
C:
public client_disconnected(id)
{
    new Terrorists, Counter_Terrorists
    for(new i; i < get_playersnum(); i++)
    {
        switch(cs_get_user_team(i))
        {
            case CS_TEAM_T: Terrorists++
            case CS_TEAM_CT: Counter_Terrorists++
            default: continue
        }
    }
    if(Terrorists != 0 && Counter_Terrorists == 0)
        RestartRound()
    else 
        RestartRound()
}

stock RestartRound()
{
    client_cmd(0, "sv_restartround 1")
}
18 Янв 2022
@protagonist1982,Не проверял
18 Янв 2022
protagonist1982, Тут я написал код который должен проверять. Есть ли в команде террористов люди а в КТ их нету, и наоборот.

Дальше перезапускается раунд.
 
Сообщения
1,015
Реакции
818
Помог
10 раз(а)
EOS, запускаешь сервер, игроков нету, заходит юзер, твоя проверка не сработает, выхода еще не было
18 Янв 2022
Более менее нормальный вариант чекать TeamInfo оно и при коннекте вызывается и при дисконнекте и при спавне и при смене команды и в ней делать необходимые условия
 

Albertio

скриптизёр
Сообщения
336
Реакции
393
Предупреждения
5
Помог
7 раз(а)
Вот этот вариант будет правильнее

Код:
#include <amxmodx>
#include <reapi>

new bool:g_bServerRestarted;

public plugin_init()
{
    register_plugin("Restard Round", "0.0.1", "Albertio");

    register_event("TeamInfo", "RestartRound", "a");
}

public client_disconnected(id)
{
    if(g_bServerRestarted && get_playersnum() == 0)
    {
        g_bServerRestarted = false;
    }
}

public RestartRound()
{
    if(!g_bServerRestarted && get_playersnum() == 1)
    {
        new id = read_data(1), szNewTeam[2];
        read_data(2, szNewTeam, charsmax(szNewTeam));

        if((szNewTeam[0] == 'C' || szNewTeam[0] == 'T') && !is_user_bot(id))
        {
            g_bServerRestarted = true;
            rg_restart_round();
        }
    }
}
версия без ReAPI

Код:
#include <amxmodx>

new bool:g_bServerRestarted;

public plugin_init()
{
    register_plugin("Restard Round", "0.0.1", "Albertio");

    register_event("TeamInfo", "RestartRound", "a");
}

public client_disconnected(id)
{
    if(g_bServerRestarted && get_playersnum() == 0)
    {
        g_bServerRestarted = false;
    }
}

public RestartRound()
{
    if(!g_bServerRestarted && get_playersnum() == 1)
    {
        new id = read_data(1), szNewTeam[2];
        read_data(2, szNewTeam, charsmax(szNewTeam));

        if((szNewTeam[0] == 'C' || szNewTeam[0] == 'T') && !is_user_bot(id))
        {
            g_bServerRestarted = true;
            server_cmd("sv_restartround 1");
        }
    }
}
 
Последнее редактирование:

EOS

Сообщения
21
Реакции
0
Javekson, согласен. Я на учёбе, и так не могу серъёзно думать)
 

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
346
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Albertio, Я конечно всё понимаю, но подтягивать реапи ради rg_restart_round - дикость. Мог хотя бы хукчейн заюзать ради приличия.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу