Tag mismatch
wacho
17.10.2017
Cześć,
Przy kompilacji zwraca mi błąd Tag mismatch
public NowaRunda() { new stats[8], bdhits[8] for(new i = 1; i <= MAX_PLAYERS; i++) { if(!is_user_connected(i) || !ePlayerQuestType[i]) continue; get_user_rstats(i, stats, bdhits) switch(ePlayerQuestType[i]) { case CELNOSC: { if(stats[5]) { new celnosc = 100 * stats[5] / stats[4]; // TUTAJ ZWRACA TAG MISMATCH if(celnosc >= ArrayGetCell(gIleRazy, iPlayerQuestID[i])) { Nagroda(i); return; } client_print(i, print_chat, "W poprzedniej rundzie miales %i%% celnosci!", celnosc) } } case KILLSROUND: iPlayerQuestProgress[i] = 0 case HSRATIO: { if(stats[2]) { new hsratio = 100 * stats[2] / stats[0]; // TUTAJ ZWRACA TAG MISMATCH if(hsratio >= ArrayGetCell(gIleRazy, iPlayerQuestID[i])) { Nagroda(i); return; } client_print(i, print_chat, "W poprzedniej rundzie miales %i%% hs/kills!", hsratio) } } } } }
add_progress(id, amount)
{
if((iPlayerQuestProgress[id] += amount) >= ArrayGetCell(gIleRazy, iPlayerQuestID[id])) // TUTAJ ZWRACA TAG MISMATCH
Nagroda(id);
}
Wie ktoś co jest nie tak ?
new celnosc
new hsratio
i ostatni if
Ogen Dogen
17.10.2017
if(stats[5])
if(stats[2])
To chyba jest liczba całkowita, a nie wartość logiczna
wacho
18.10.2017
Zgadza się ale przecież zastosowana jest zmienna dla liczb całkowitych a nie new bool
Ogen Dogen
19.10.2017
Taki warunek sprawdza tylko czy stats[2] jest prawdziwe, a jest prawdziwe dla każdej liczby różnej od zera.
Chodziło ci może o bardziej sprecyzowane wyrażenie np. stats[2] > 0 ?
_McHappy
20.10.2017
Dla tego typu problemów wystarczy zastosować !!
if(!!stats[2])
{
...
}
Ale stosuje się to w przypadku przypisania wartości do zmiennej.
Wydaje mi się jednak, że problem leży nie w tym, co wyżej lecz w deklaracji zmiennych. Kompilator nie przewiduje, czy użytkownik chce sprawdzić warunek zmienna!=0, czy też zmienna>0 i ostrzeżenia z tego powodu nie wyrzuci.
Byłbyś w stanie podrzucić na wklejce kompletny kod pluginu?
Użytkownik _McHappy edytował ten post 20.10.2017 10:55
if(!!stats[2])
{
...
}
Ale stosuje się to w przypadku przypisania wartości do zmiennej.
Wydaje mi się jednak, że problem leży nie w tym, co wyżej lecz w deklaracji zmiennych. Kompilator nie przewiduje, czy użytkownik chce sprawdzić warunek zmienna!=0, czy też zmienna>0 i ostrzeżenia z tego powodu nie wyrzuci.
Byłbyś w stanie podrzucić na wklejce kompletny kod pluginu?
Użytkownik _McHappy edytował ten post 20.10.2017 10:55
wacho
20.10.2017
Można zamknąć już sobie poradziłem.
Problem leżał w kompilatorze miałem jakiegos includa który to powodował. wrzuciłem na czysty kompilator i poszło