Таймеры..

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
1. Не критично ли, если будет два или даже три глобальных таймера (общих).
2. Если создаю глобальный таймер, нужен ли цикл по игрокам?
3. Как остановить глобальный запущенный таймер, а потом его запустить?
4. Нужно ли убивать глобальный таймер? Как убивать? KillTimer или plugin_stop? Если игрок вышел тоже нужно убивать таймер?
5. Как создать глобальный таймер с двумя эффектами
  • Таймер А = 5.0 сек
  • Таймер B = 10.0 сек
 
Последнее редактирование:

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Достаточно одного таймера если время таймеров кратно друг другу, те 5 и 10, а 33 и 5 придется разные, что бы определить какое действие совершать достаточно переменной, в случае 5, 10 даже bool хватит
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
1. Не критично ли, если будет два или даже три глобальных таймера (общих).
Зависит от их "глобальности": содержимого, времени действия и флагов.
2. Если создаю глобальный таймер, нужен ли цикл по игрокам?
Если нужно выполнить действие всем, то да.
3. Как остановить глобальный запущенный таймер, а потом его запустить?
Как и любой другой.
4. Нужно ли убивать глобальный таймер? Как убивать? KillTimer или plugin_stop? Если игрок вышел тоже нужно убивать таймер?
Желательно. Почти всегда KillTimer. Нет, только если вышли ВСЕ.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Если неохота заморачиваться, то можно и так:
PHP:
public OnClientDisconnect_Post(client)
{
	for (new i = 1; i <= MaxClients; ++i)
	{
		if (IsClientInGame(i)) return;
	}
	if (HandleGlobalTimer != INVALID_HANDLE)
	{
		KillTimer(HandleGlobalTimer);
		HandleGlobalTimer = INVALID_HANDLE;
	}
}
 
Сверху Снизу