Таймер через PrintHintText

alexmy

Участник
Сообщения
284
Реакции
13
Всем привет, помогите за юзать таймер что отображалось сколько секунд прошло, что то сообразить не могу=((( пробовал так:
PHP:
#define WALK 20.0


public Action MOVETYPENONE(Handle timer, any client)
{
    //код
    {
        //код
    }
    CreateTimer(WALK, MOVETYPEWALK, _, TIMER_FLAG_NO_MAPCHANGE);
    PrintCenterTextAll("%d sec", WALK);
}
У меня какое то число появляется и все :D
 
Последнее редактирование:

pracc

Быть, а не казаться.
Сообщения
946
Реакции
541
Всем привет, помогите за юзать таймер что отображалось сколько секунд прошло, что то сообразить не могу=((( пробовал так:
PHP:
#define WALK 20.0


public Action MOVETYPENONE(Handle timer, any client)
{
    //код
    {
        //код
    }
    CreateTimer(WALK, MOVETYPEWALK, _, TIMER_FLAG_NO_MAPCHANGE);
    PrintCenterTextAll("%d sec", WALK);
}
У меня какое то число появляется и все :D

PHP:
#include <sourcemod>

public OnPluginStart()
{
     CreateTimer(2.0, Timer_Func, _, TIMER_REPEAT);
}

public Action:Timer_Func(Handle:timer)
{
     static x = 0;
     if (++x < 10)
     {
         PrintToServer("-> %d", x);
         return Plugin_Continue;
     }
     return Plugin_Stop;
}

Как пример.
 

alexmy

Участник
Сообщения
284
Реакции
13
PHP:
#include <sourcemod>

public OnPluginStart()
{
     CreateTimer(2.0, Timer_Func, _, TIMER_REPEAT);
}

public Action:Timer_Func(Handle:timer)
{
     static x = 0;
     if (++x < 10)
     {
         PrintToServer("-> %d", x);
         return Plugin_Continue;
     }
     return Plugin_Stop;
}

Как пример.
Не работает.
--- Добавлено позже ---
Если так:
PHP:
#include <sourcemod>
//#pragma newdecls required

bool Player_Spawn_Stop = false;

public void OnPluginStart()
{
    HookEvent("mission_lost", OnReset, EventHookMode_Pre);
    HookEvent("map_transition", OnReset, EventHookMode_Pre);
}
public Action OnReset(Event event, const char[] name, bool dontBroadcast)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i))
        {
            Player_Spawn_Stop = false;
            ServerCommand("sm_rcon sm plugins reload l4d_move_type_none.smx");
        }
    }
}

public void OnMapStart()
{
    if(!Player_Spawn_Stop)
    {
        HookEvent("player_spawn", Event_Player_Spawn);
        Player_Spawn_Stop = true;
    }
}

public Action Event_Player_Spawn(Event event, const char[] name, bool dontBroadcast)
{
    UnhookEvent("player_spawn", Event_Player_Spawn);
    Player_Spawn_Stop = false;
    {
        CreateTimer(5.0, MOVETYPENONE, GetClientOfUserId(GetEventInt(event, "userid")), TIMER_FLAG_NO_MAPCHANGE);
    }
}
public Action MOVETYPENONE(Handle timer)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i))
        {
            if(GetEntProp(i, Prop_Send, "m_zombieClass") == 6)
            {
                SetEntityMoveType(i, MOVETYPE_NONE);
                PrintToChat(i, "Игрокам запрещено движение!")
            }
        }
    }
    CreateTimer(20.0, MOVETYPEWALK, _, TIMER_FLAG_NO_MAPCHANGE);
}
public Action MOVETYPEWALK(Handle timer)
{
    static x = 0;
    if (++x < 10)
    {
        PrintCenterTextAll("-> %d", x);
        {
            for (int i = 1; i <= MaxClients; ++i)
            {
                if (IsClientInGame(i))
                {
                    if(GetEntProp(i, Prop_Send, "m_zombieClass") == 6)
                    {
                        SetEntityMoveType(i, MOVETYPE_WALK);
                        PrintToChat(i, "Игрокам разрешено движение!")
                    }
                }
            }
        }
    }
    return Plugin_Stop;
}
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
@alexmy, Передавай лучше в таймере UserId, а не ClientId (c) RIKO
А потом уже в Callback извлекай ClientIndex и проверяй != 0
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
CreateTimer(20.0, MOVETYPEWALK, _, TIMER_FLAG_NO_MAPCHANGE);
}
public
Action MOVETYPEWALK(Handle timer)
{
static
x = 0;
if (++
x < 10)
{
PrintCenterTextAll("-> %d", x);
{
for (
int i = 1; i <= MaxClients; ++i)
{
if (
IsClientInGame(i))
{
if(
GetEntProp(i, Prop_Send, "m_zombieClass") == 6)
{
SetEntityMoveType(i, MOVETYPE_WALK);
PrintToChat(i, "Игрокам разрешено движение!")
}
}
}
}
}
return
Plugin_Stop;
}
PHP:
int g_iTimeWalk;

{
    //...
    CreateTimer(1.0, MoveTypeWalk, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
    g_iTimeWalk = 0;
}

public Action MoveTypeWalk(Handle timer)
{
    if (++g_iTimeWalk < 20)
    {
        PrintCenterTextAll("-> %d", g_iTimeWalk);
        return Plugin_Continue;
    }
    for (int i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i) && GetEntProp(i, Prop_Send, "m_zombieClass") == 6)
        {
            SetEntityMoveType(i, MOVETYPE_WALK);
            PrintToChat(i, "Игрокам разрешено движение!");
        }
    }
    return Plugin_Stop;
}
Вообще, должен быть обратный отсчёт. Оффтоп
 

alexmy

Участник
Сообщения
284
Реакции
13
Если так:
PHP:
int g_iTimeWalk;

{
    //...
    CreateTimer(1.0, MoveTypeWalk, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
    g_iTimeWalk = 0;
}

public Action MoveTypeWalk(Handle timer)
{
    if (++g_iTimeWalk < 20)
    {
        PrintCenterTextAll("-> %d", g_iTimeWalk);
        return Plugin_Continue;
    }
    for (int i = 1; i <= MaxClients; ++i)
    {
        if (IsClientInGame(i) && GetEntProp(i, Prop_Send, "m_zombieClass") == 6)
        {
            SetEntityMoveType(i, MOVETYPE_WALK);
            PrintToChat(i, "Игрокам разрешено движение!");
        }
    }
    return Plugin_Stop;
}
Вообще, должен быть обратный отсчёт. Оффтоп
Если честно я вообще не понимаю что ты написал =) :D
 
Сверху Снизу