Young <
Now, finally free
- Сообщения
- 1,263
- Реакции
- 505
Сломал уже себе голову, не могу понять в чем причина.
Жизненный цикл таймера:
мб кто заметит в чем косяк
Жизненный цикл таймера:
C-подобный:
bool
bPlayed[MAXPLAYERS+1];
Handle
hWatcher;
public void OnPluginStart()
{
HookEvent("round_start", Event_RoundStart);
HookEvent("round_end", Event_RoundEnd);
}
public void Event_RoundStart(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
if(hWatcher)
{
KillTimer(hWatcher);//Агрится на эту
hWatcher = null;
}
hWatcher = CreateTimer(5.0, Timer_Watcher, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
}
public Action Timer_Watcher(Handle hTimer)
{
for (int i = 1; i <= MaxClients; i++)
if (IsClientConnected(i) && !IsFakeClient(i) && !bPlayed[i] && IsPlayerAlive(i))
bPlayed[i] = true;
}
public void Event_RoundEnd(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
if(hWatcher)
{
KillTimer(hWatcher);//и на эту
hWatcher = null;
}
for (int i = 1; i <= MaxClients; i++)
if (bPlayed[i])
bPlayed[i] = false;
}
мб кто заметит в чем косяк
Последнее редактирование: