public start_hp_regen(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); if (class[client] == 2) { TimerHP[client] = true; if (TimerHP[client] == true) { CreateTimer(5.0, IntRegen, client, TIMER_REPEAT); TimerHP[client] = false; } } }
public Action:IntRegen(Handle:timer, any:client) { if(hp_RegenTimer[client] == INVALID_HANDLE) { hp_RegenTimer[client] = CreateTimer(1.0, Regenerate, client, TIMER_REPEAT); TimerHP[client] = true; } }
public Action:Regenerate(Handle:timer, any:client) { new hp = GetClientHealth(client); if(hp < 100) { SetClientHealth(client, hp + 5); } else { SetClientHealth(client, 100); hp_RegenTimer[client] = INVALID_HANDLE; KillTimer(timer); } }
Задача такова, если в игрока попали 1 раз, создается таймер 5 сек. Если повторно попали в течении 5 сек нужно убить старую цепочку таймеров и создать поверх нее новую, такую же, чтобы не было регена во время стрельбы по игроку
Сообщение отредактировал dases2003 - Воскресенье, 21.09.2014, 08:01:06 |