Указать на ошибки

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Hejter, с чего бы им взяться ?

Т.е это самый оптимальный вариант?
или лучше запускать таймер в OnMapStart и убивать в OnMapEnd?

PHP:
public RoundStart(Handle:event, const String:name[], bool:dontBroadcast){
	g_hTimer = CreateTimer(g_fCheckInterval, Timer_CheckPlayers, 0, TIMER_REPEAT);
}

public RoundEnd(Handle:event, const String:name[], bool:dontBroadcast){
	if(g_hTimer)
	{
		KillTimer(g_hTimer);
		g_hTimer = INVALID_HANDLE;
	}
}
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Hejter, он сам умрет с флагом mapchange

PHP:
public RoundStart(Handle:event, const String:name[], bool:dontBroadcast){
	g_hTimer = CreateTimer(g_fCheckInterval, Timer_CheckPlayers, 0, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}

public RoundEnd(Handle:event, const String:name[], bool:dontBroadcast){
	if(g_hTimer)
	{
		KillTimer(g_hTimer);
		g_hTimer = INVALID_HANDLE;
	}
}
Тобишь такой вариант сойдет?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #24
Hejter, лучше не ставить в таких случаях TIMER_FLAG_NO_MAPCHANGE
Если стоит TIMER_FLAG_NO_MAPCHANGE то таймер убивается при смене карты но handle не становится равен INVALID_HANDLE.
Так что если у тебя есть проверки на != INVALID_HANDLE то не юзай TIMER_FLAG_NO_MAPCHANGE
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Hejter, лучше не ставить в таких случаях TIMER_FLAG_NO_MAPCHANGE
Если стоит TIMER_FLAG_NO_MAPCHANGE то таймер убивается при смене карты но handle не становится равен INVALID_HANDLE.
Так что если у тебя есть проверки на != INVALID_HANDLE то не юзай TIMER_FLAG_NO_MAPCHANGE

Все понятно. Спасибо.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Так что если у тебя есть проверки на != INVALID_HANDLE то не юзай TIMER_FLAG_NO_MAPCHANGE
Без разницы, ведь он запускает таймер в начале раунда, а значит на новой карте Handle таймера всегда будет перезаписан на "свежий".
Мне вообще как-то не очень нравится идея такого скорого пересоздавания таймера... Между концом раунда и началом максимум 10 секунд про стандарту, а если учитывать, что в начале раунда сервер может быть пуст - вообще как-то не айс.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #27
AlmazON, я не про раунды, а вообще чтобы знал, прост увидел - написал к слову.
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Без разницы, ведь он запускает таймер в начале раунда, а значит на новой карте Handle таймера всегда будет перезаписан на "свежий".
Мне вообще как-то не очень нравится идея такого скорого пересоздавания таймера... Между концом раунда и началом максимум 10 секунд про стандарту, а если учитывать, что в начале раунда сервер может быть пуст - вообще как-то не айс.

Вообщем вы меня запутали. Таймер убивается каждый новый раунд и убивается если с сервера вышли все игроки.
Создается каждый новый раунд.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Hejter, он убивается тогда, когда ты ему скажешь убиться. Сам по себе он не убьётся (исключаем краши и т.д.). Если стоит флаг TIMER_FLAG_NO_MAPCHANGE, то таймер будет убиваться, когда карта сменится. Если напишешь, чтобы он убился в конце раунда, то он убьётся. Тогда в этом случае тебе нужно будет его снова запускать тогда, когда тебе будет нужен (т.е. в начале раунда и т.д.)
 

Hejter

xor ebx, ebx
Сообщения
1,759
Реакции
393
Hejter, он убивается тогда, когда ты ему скажешь убиться. Сам по себе он не убьётся (исключаем краши и т.д.). Если стоит флаг TIMER_FLAG_NO_MAPCHANGE, то таймер будет убиваться, когда карта сменится. Если напишешь, чтобы он убился в конце раунда, то он убьётся. Тогда в этом случае тебе нужно будет его снова запускать тогда, когда тебе будет нужен (т.е. в начале раунда и т.д.)

Это я знаю.
 
Сверху Снизу