Продление карты происходит 3 раза, хотя в исходнике изменено на 2.

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
527
Симпатии
103
Пол
Мужской
если отключаю плагин timer.amxx в plugins.ini, то таймер пропадает совсем. но когда плагин включен, то таймер отсчёта до конца карты стоит на месте, и не идёт отсчёт сколько до конца карты осталось.

Код:
#include <amxmodx>

public plugin_init()
{
    register_plugin("Show timeleft for CSDM", "1.0", "neygomon");
    set_task(1.0, "RegMsg");
}

public RegMsg()
{
    new msg = get_user_msgid("RoundTime");
    if(get_msg_block(msg) != BLOCK_NOT)
        set_msg_block(msg, BLOCK_NOT);

    register_message(msg, "msgRoundTime");
    register_message(get_user_msgid("HideWeapon"), "msgHideWeapon");
}

public msgRoundTime(msgId, msgDesc, msgEnt)
    set_msg_arg_int(1, ARG_SHORT, get_timeleft());

public msgHideWeapon(msgId, msgDesc, msgEnt)
{
    static flags; flags = get_msg_arg_int(1);
    if(flags & (1 << 4)) set_msg_arg_int(1, ARG_BYTE, flags & ~(1 << 4));
Up
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Diff:
public plugin_init()
{
    register_plugin("Show timeleft for CSDM", "1.0", "neygomon");
-    set_task(1.0, "RegMsg");
}

+public csdm_CfgInit()
+    set_task(1.0, "RegMsg");
 

Izmayl7

Пользователь
Регистрация
9 Июн 2017
Сообщения
527
Симпатии
103
Пол
Мужской
Diff:
public plugin_init()
{
    register_plugin("Show timeleft for CSDM", "1.0", "neygomon");
-    set_task(1.0, "RegMsg");
}

+public csdm_CfgInit()
+    set_task(1.0, "RegMsg");
верно?!
C++:
#include <amxmodx>

public plugin_init()
{
    register_plugin("Show timeleft for CSDM", "1.0", "neygomon");
public csdm_CfgInit()
    set_task(1.0, "RegMsg");
}

public RegMsg()
{
    new msg = get_user_msgid("RoundTime");
    if(get_msg_block(msg) != BLOCK_NOT)
        set_msg_block(msg, BLOCK_NOT);

    register_message(msg, "msgRoundTime");
    register_message(get_user_msgid("HideWeapon"), "msgHideWeapon");
}

public msgRoundTime(msgId, msgDesc, msgEnt)
    set_msg_arg_int(1, ARG_SHORT, get_timeleft());

public msgHideWeapon(msgId, msgDesc, msgEnt)
{
    static flags; flags = get_msg_arg_int(1);
    if(flags & (1 << 4)) set_msg_arg_int(1, ARG_BYTE, flags & ~(1 << 4));)) set_msg_arg_int(1, ARG_BYTE, flags & ~(1 << 4));
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Izmayl7, Вам же дали готовый вариант! Что начинаете выдумывать..

C++:
public plugin_init()
{
    register_plugin("Show timeleft for CSDM", "1.0", "neygomon");
}
public csdm_CfgInit()
    set_task(1.0, "RegMsg");
 
Сверху Снизу