Перейти к содержимому


Фотография

Вопрос по Таймеру.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 AlexMy

AlexMy

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 806 сообщений

Отправлено 02 Апрель 2017 - 18:54

Всем привет, может хоть кто нибудь помочь мне по оригинальному вопросу. Возможно вообще сбрасывать таймер сохранененный в Handle, позже чем требует сам таймер. например в другом событие или в другом нативе:

#pragma newdecls required;

#define TimerHandle 5.0

Handle Kill_Timer = null;

public void OnPluginStart()
{
	HookEvent("tank_killed", Event_tank_killed);
}

public void OnMapStart()
{
	Kill_Timer = null;
}

public void OnMapEnd()
{
	Kill_Timer = null;
}

public void Event_tank_killed(Event event, const char[] name, bool dontBroadcast)
{
	int client  = GetClientOfUserId(GetEventInt(event, "userid"));
	{
		if (Kill_Timer != null)
		{
			delete(Kill_Timer);
		}
		Kill_Timer = CreateTimer(TimerHandle, TimerHandleSpawn, client);
	}
}

public Action TimerHandleSpawn(Handle timer)
{
	for (int i = 1; i <= MaxClients; ++i)
	{
		if (IsClientInGame(i) && !IsFakeClient(i))
		{
			//код
		}
	}
	//Kill_Timer = null;
	return;
} 

С меня лайк конкретный если кто поможет =)



#2 Figa

Figa

    Участник

  • Пользователь
  • PipPip
  • 60 сообщений

Отправлено 04 Апрель 2017 - 15:34

При активации таймера ты можешь создать новый таймер или использовать TIMER_REPEAT.

При срабатывании нужного эвента или выполнении условия в таймере, убиваешь таймер.

if (Kill_Timer  != INVALID_HANDLE)
{
	KillTimer(Kill_Timer);
	Kill_Timer  = INVALID_HANDLE;
}

http://world-source....orum/100-2277-1



#3 AlexMy

AlexMy

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 806 сообщений

Отправлено 04 Апрель 2017 - 17:13

При активации таймера ты можешь создать новый таймер или использовать TIMER_REPEAT.

При срабатывании нужного эвента или выполнении условия в таймере, убиваешь таймер.

if (Kill_Timer  != INVALID_HANDLE)
{
	KillTimer(Kill_Timer);
	Kill_Timer  = INVALID_HANDLE;
}

http://world-source....orum/100-2277-1

Если убитый таймер не сбросить ошибку получу. Где я специально за комментировал. На сколько я знаю его всегда надо убивать и следом очищать а более не как, вроде. Или ты имеешь виду таймер через таймер? 




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных