Skocz do zawartości
Gość

[Rozwiązane] Invalid timer handle(?? ._.)

Rekomendowane odpowiedzi

Gość

Ok, uznajmy że mam problem z logicznym myśleniem i proszę o pomoc.

Log mówi mi 

L 08/09/2019 - 21:58:23: [SM] Exception reported: Invalid timer handle c5dc10fd (error 1)
L 08/09/2019 - 21:58:23: [SM] Call stack trace:
L 08/09/2019 - 21:58:23: [SM]   [0] KillTimer
L 08/09/2019 - 21:58:23: [SM]   [1] Line 1295, plugin.sp::ClearTimer
L 08/09/2019 - 21:58:23: [SM]   [2] Line 292, plugin.sp::KoniecRundy

 

Kiedy ja mówię mu 

}
 

public Action KoniecRundy(Event event, const char[] name, bool dontBroadcast)
{
    nuke_koniec = true;
    for(int i = 1; i <= MaxClients; i++)
    {
        if(!IsClientInGame(i) || !IsValidClient(i))
            continue;
            
        if(timer[i] != INVALID_HANDLE)
            ClearTimer(timer[i]);
    }
}
stock void ClearTimer(Handle timer)
{
    if (timer != INVALID_HANDLE)
    {
        KillTimer(timer);
        timer = INVALID_HANDLE;
    } 
}

 

 

Spoiler

 

? 😞

 

 

// sprawdzam podwójnie invalid handle, bo bez tego i tak ten błąd był, stąd taka akcja

Edytowane przez Gość

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zamiast

 ClearTimer(timer[i]);

Użyj samego. 

delete timer

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość

Dało radę - zalecam jeszcze dać INVALID_HANDLE po deletowaniu 🙂

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie.

 

Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...