Online Helper настройка

Сообщения
511
Реакции
111
Помог
16 раз(а)
Привет есть плагин https://dev-cs.ru/resources/581/

Вот код

Код:
#include <amxmodx>

#define PLUGIN "Online Helper"
#define VERSION "0.2"
#define AUTHOR "Nordic Warrior"

#define MAP "de_dust2_2x2"    // Карта по умолчанию
#define TIME 5            // Через сколько минут карта сменится на карту по умолчанию

new g_Timelimit

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
  
    set_task(15.0, "check_players_1", 1,.flags="b")
    set_task(1.0, "check_cvar", 5)
  
    if(!is_map_valid(MAP)) pause("ad"), log_amx("Map %s not found.", MAP)
}
public check_players_1(id)
{
    new players[32], Count, mapname[32]
    get_players(players, Count, "ch")
    get_mapname(mapname,31)
  
    if(Count == 0)
    {
        if(equal(mapname,MAP,strlen(MAP)))
        {
            set_cvar_num("mp_timelimit", 0)
            remove_task(1)
            set_task(5.0, "check_players_2", 3,.flags="b")
        }
        else set_task(TIME * 60.0, "change_map", 2)
    }
    change_task(1, 5.0)
}
public check_players_2(id)
{
    new players[32], Count
    get_players(players, Count, "ch")
  
    if(Count > 0)
    {
        if(task_exists(2)) remove_task(2)
        server_cmd("sv_restartround 1")
        set_task(1.5, "change_cvar", 4)
        remove_task(3)
        set_task(5.0, "check_players_1", 1,.flags="b")
    }
}
public change_cvar() set_cvar_num("mp_timelimit", g_Timelimit)
public change_map() server_cmd("changelevel %s", MAP)
public check_cvar() g_Timelimit = get_cvar_num("mp_timelimit")

Какая строка отвечает за проверку сколько человек на сервере?
Подскажите как сделать чтоб она менялась при определенном онлайне,а не при 0
20 Фев 2019
Если я правильно понял то
Код:
public check_players_1(id)
{
    new players[32], Count, mapname[32]
    get_players(players, Count, "ch")
    get_mapname(mapname,31)
  
    if(Count < 5) // НАПРИМЕР МЕНЬШЕ 5 то ---
    {
        if(equal(mapname,MAP,strlen(MAP)))
        {
            set_cvar_num("mp_timelimit", 0)
            remove_task(1)
            set_task(5.0, "check_players_2", 3,.flags="b")
        }
        else set_task(TIME * 60.0, "change_map", 2)
    }
    change_task(1, 5.0)
}
А типа тут заменить 0 на больше > 5 ?

Код:
public check_players_2(id)
{
    new players[32], Count
    get_players(players, Count, "ch")
    
    if(Count > 5)
    {
        if(task_exists(2)) remove_task(2)
        server_cmd("sv_restartround 1")
        set_task(1.5, "change_cvar", 4)
        remove_task(3)
        set_task(5.0, "check_players_1", 1,.flags="b")
    }
}
 
Последнее редактирование:
Сообщения
511
Реакции
111
Помог
16 раз(а)
sbelov020, Обновил ага.

Стало еще более не понятно.

Код:
#define TASK_WICH_PLAYERS 1
#define TASK_NO_PLAYERS 2
#define TASK_CHANGE_MAP 3
Ну я понял что этим настраивается?

Код:
#include <amxmodx>

#define PLUGIN "Online Helper"
#define VERSION "1.0.1"
#define AUTHOR "Nordic Warrior"

#define TASK_WICH_PLAYERS 1
#define TASK_NO_PLAYERS 2
#define TASK_CHANGE_MAP 3

/* Settings */

#define MAP "de_dust2_2x2"    // Карта по умолчанию
#define TIME 5                // Через сколько минут карта сменится на карту по умолчанию

/* End of setting */

new g_Timelimit;

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);

    set_task(15.0, "start_check");
    set_task(1.0, "check_cvar");

    if(!is_map_valid(MAP))
    {
        pause("ad");
    }
}

public start_check()
{
    set_task(5.0, "check_players_1", TASK_WICH_PLAYERS, .flags = "b");
}

public check_players_1()
{
    new players[MAX_PLAYERS], Count, mapname[32];
    get_players(players, Count, "ch");
    get_mapname(mapname, charsmax(mapname));

    if(!Count)
    {
        remove_task(TASK_WICH_PLAYERS);
        set_task(5.0, "check_players_2", TASK_NO_PLAYERS, .flags = "b");

        if(equal(mapname, MAP, strlen(MAP)))
        {
            set_cvar_num("mp_timelimit", 0);
        }
        else
        {
            if(!task_exists(TASK_CHANGE_MAP))
            {
                set_task(TIME * 60.0, "change_map", TASK_CHANGE_MAP);
            }
        }
    }
}

public check_players_2()
{
    new players[MAX_PLAYERS], Count;
    get_players(players, Count, "ch");

    if(Count > 0)
    {
        if(task_exists(TASK_CHANGE_MAP))
        {
            remove_task(TASK_CHANGE_MAP);
        }
        server_cmd("sv_restartround 1");
        set_task(2.0, "change_cvar");
        remove_task(TASK_NO_PLAYERS);
        set_task(5.0, "check_players_1", TASK_WICH_PLAYERS, .flags = "b");
    }
}

public change_cvar()
{
    set_cvar_num("mp_timelimit", g_Timelimit);
}

public change_map()
{
    server_cmd("changelevel %s", MAP);
}

public check_cvar()
{
    g_Timelimit = get_cvar_num("mp_timelimit");
}
 
Сообщения
511
Реакции
111
Помог
16 раз(а)
velesgs, ну вот я и не понимаю что за что отвечает.
 
Сообщения
11
Реакции
0
Помог
1 раз(а)
const MIN_IGROKOV_DLYA_SMENI_KARTI = 5

if(!Count) --> if(Count < MIN_IGROKOV_DLYA_SMENI_KARTI )
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
r1nk0, я не пойму что надо? чтоб при онлайне меньше 5 менялось на dd2x2, или наоборот при больше 5 на d2?
 
Сообщения
511
Реакции
111
Помог
16 раз(а)
sbelov020, Чтоб при онлайне например 5 карта менялась на даст2 на 2 а при онлаине выше 5 выставлялось нормальное время карты.
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
44 строка:
Diff:
-if(!Count)
+if(Count < 5)
68 строка:
Diff:
-if(Count > 0)
+if(Count >= 5)
 
Сообщения
511
Реакции
111
Помог
16 раз(а)
sbelov020, я так делал карту не меняет amxmod 1.9 локальный сервер,я на сервере 1 нахожусь и ничего не происходит,время проверки поставил 1-2 минуты
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
r1nk0, я сейчас лично протестировал, всё прекрасно работает.
 
Сообщения
511
Реакции
111
Помог
16 раз(а)
sbelov020, да и у меня на основном сервере заработало а на локальном нехочет,непонимаю почему. ну ладно главно работает всем спс.
 
Сообщения
511
Реакции
111
Помог
16 раз(а)
w0w, я и ее пробовал отрубать и ставил что типа если 0 на сервере то через 5 минут он должен был карту сменить,но не менял непонимаю.
убирал
Код:
get_players(players, Count, "ch");
от сюда C
 
Сообщения
10
Реакции
-3
Исправьте в исходнике название карты,а то начинающие будут долго думать почему плагин не робит!

#define MAP "de_dust2_2x2" // Карта по умолчанию

de_dust2x2
 
Сообщения
10
Реакции
-3
@Алексеич,с этим de_dust2_2x2 [BGCOLOR=transparent]плагин[/BGCOLOR] у меня не робил,пока я не поставил de_dast2x2 и все заработало!Просто может у тех кто скачает и установит не будет робить,увидят это сообщение и исправят.
 

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

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