Продлить время карты.

Mr_panica

XenForo one 💖
Сообщения
942
Реакции
450
Операционная система
Linux
Всем привет,
нужно продлить карту, на 1 минуту, причём когда время карты уже вышло и она смениться после конца раунда.

Как я понял, mp_timelimit уходит в минус, поэтому через него добавлять нельзя, либо слишком сложно.
Я пытался, но при таком способе учитывается текущий mp_timelimit, и каждый раз нужно выставлять новое время (причём я даже не понял как это работает)
Если же сначала выставить mp_timelimit 0, а затем нужное нам значение, то оно опять будет отсчитывать от предыдущего времени.

Есть ли способ установить время карты с помощью плагина, ну или другим любым способом?

На сервере работает режим арены.
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Всем привет,
нужно продлить карту, на 1 минуту, причём когда время карты уже вышло и она смениться после конца раунда.

Как я понял, mp_timelimit уходит в минус, поэтому через него добавлять нельзя, либо слишком сложно.
Я пытался, но при таком способе учитывается текущий mp_timelimit, и каждый раз нужно выставлять новое время (причём я даже не понял как это работает)
Если же сначала выставить mp_timelimit 0, а затем нужное нам значение, то оно опять будет отсчитывать от предыдущего времени.

Есть ли способ установить время карты с помощью плагина, ну или другим любым способом?

На сервере работает режим арены.

C++:
public OnPluginStart()
{   
    RegAdminCmd("sm_extend",        CMD_Extend,            ADMFLAG_CHANGEMAP,    "Продлить карту");
}

public Action: CMD_Extend(client, args)
{
    if(args != 1)
    {
        ReplyToCommand(client, "[SM] Используйте: sm_extend <[+/-] минут>");
        return Plugin_Handled;
    }
    
    new String: buffer[6];
    GetCmdArg(1, buffer, sizeof(buffer));
    
    new value = StringToInt(buffer);
    ExtendMapTimeLimit(value * 60);
    
    return Plugin_Handled;
}
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,927
  • Команда форума
  • #3
Я на режиме арены в TF2 просто увеличивал mp_timelimit, и работало нормально. Сейчас не катит?
 

Mr_panica

XenForo one 💖
Сообщения
942
Реакции
450
Я на режиме арены в TF2 просто увеличивал mp_timelimit, и работало нормально. Сейчас не катит?
Работает, но я не могу понять, вот например:
У меня конец карты, после окончания раунда она смениться
Высвечивается такой значок в табе.
1577018705388.png


Через GetMapTimeLeft, я узнал, что timeleft ушёл в минус.
И в этом случае mp_timelimit ведёт себя странно, хотя нет, не странно, просто оно добавляет введённое мною значение к текущему значению, но текущее значение ведь уже в минусе.
Мне нужно точно 1 минуту прибавить, что до смены карты оставалась 1 минута.
Сообщения автоматически склеены:


C++:
public OnPluginStart()
{  
    RegAdminCmd("sm_extend",        CMD_Extend,            ADMFLAG_CHANGEMAP,    "Продлить карту");
}

public Action: CMD_Extend(client, args)
{
    if(args != 1)
    {
        ReplyToCommand(client, "[SM] Используйте: sm_extend <[+/-] минут>");
        return Plugin_Handled;
    }
   
    new String: buffer[6];
    GetCmdArg(1, buffer, sizeof(buffer));
   
    new value = StringToInt(buffer);
    ExtendMapTimeLimit(value * 60);
   
    return Plugin_Handled;
}
TimeLeft был -56
Ввёл sm_extend +10, время до смены карты стало 18:58
Изначальный mp_timelimit был 5

Я так, понял, что это работает также, потому что оно тоже выставляет новый mp_timelimit, просто с ней работать удобнее, а при минусовом значении timeleft тоже работает некорректно.
 
Последнее редактирование:

Mr_panica

XenForo one 💖
Сообщения
942
Реакции
450
В общем, выкрутился я так:
C-подобный:
            int timeleft;
            if (GetMapTimeLeft(timeleft))
            {
                int newtime = (timeleft * -1); //Умножаю минусовое значение на - 1, чтоб получить положительное.
                //CPrintToChatAll("%d", timeleft);
                if (timeleft < 0 && timeleft != 0) //Если время карты ушло в минус и не является нулевым.
                {
                    ExtendMapTimeLimit(newtime + 120); // Устанавливаю время карты на 0 и прибавляю 120 секунд.
                }
            }
 
Сверху Снизу