Изменить действие плагина

Zakhar Revin

Участник
Сообщения
218
Реакции
28
Господа, подскажите пожалуйста, как можно изменить действие плагина на время начала freeztime или начало нового раунда, с отключением через определенное время. Плагин такой:

C-подобный:
public void OnPluginStart()
{
    HookEvent("round_start", OnStart, EventHookMode:1);
    HookEvent("round_end", OnEnd, EventHookMode:1);
    gravity = FindConVar("sv_gravity");
}

public void OnStart(Handle:event, String:name[], bool:dontBroadcast)
{
    SetConVarInt(gravity, 800, false, false);
}

public void OnEnd(Handle:event, String:name[], bool:dontBroadcast)
{
    SetConVarInt(gravity, 100, false, false);
}

Спасибо.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
C-подобный:
#define TIMER 10.0 // Время, через которое квар будет снова изменен

Handle g_hTimer;
ConVar g_hCvar;

public void OnPluginStart()
{
    g_hCvar = FindConVar("sv_gravity");
    HookEvent("round_freeze_end", RoundFreezeEnd, EventHookMode_PostNoCopy);
}

public void RoundFreezeEnd(Event hEvent, const char[] sEvName, bool bDbc)
{
    if(g_hTimer)
    {
        KillTimer(g_hTimer);
        g_hTimer = null;
    }

    g_hCvar.SetInt(800, false, false);
    g_hTimer = CreateTimer(TIMER, TimerCvar, _, TIMER_FLAG_NO_MAPCHANGE);
}

public Action TimerCvar(Handle hTimer)
{
    g_hCvar.SetInt(100, false, false);

    g_hTimer = null;
    return Plugin_Stop;
}
 
Последнее редактирование:

Zakhar Revin

Участник
Сообщения
218
Реакции
28
C-подобный:
#define TIMER 10.0 // Время, через которое квар будет снова изменен

Handle g_hTimer;
ConVar g_hCvar;

public void OnPluginStart()
{
    g_hCvar = FindConVar("sv_gravity");
    HookEvent("round_freeze_end", RoundFreezeEnd, EventHookMode_PostNoCopy);
}

public void RoundFreezeEnd(Event hEvent, const char[] sEvName, bool bDbc)
{
    if(g_hTimer)
    {
        KillTimer(g_hTimer);
        g_hTimer = null;
    }

    g_hCvar.SetInt(800, false, false);
    g_hTimer = CreateTimer(TIMER, TimerCvar, _, TIMER_FLAG_NO_MAPCHANGE);
}

public Action TimerCvar(Handle hTimer)
{
    g_hCvar.SetInt(100, false, false);
    return Plugin_Stop;
}
О, класс! пошел проверять!
 

Zakhar Revin

Участник
Сообщения
218
Реакции
28
Что-то я не понял, он по окончании фриз тайма убирает гравитацию?
Ну тип того. Вместо гравитации можно подставить что-нидь другое, примера ради. Так и не успел затестить. На повестке дня)
 
Сверху Снизу