Witam, przerabiam system perków. Plugin ładnie się kompiluje bez żadnych błędów jednak podczas testów napotkaliśmy błąd otóż Na serwerze poniekąd jest ustawiony drop tego "artefaktu" jednak zabijając np. 4 razy z rzędu cały czas dropi, nie uwzlegniając wcale tej szansy i w którymś tam momencie wcale przestaje dropić i w konsoli wyskakują takie błędy:

zarzucam ten public
public UstawArtefakt(id, artefakt, wartosc, pokaz_info)
{
if(!ilosc_artefakty)
return PLUGIN_CONTINUE;
static obroty[33];
if(obroty[id]++ >= 5)
{
UstawArtefakt(id, 0, 0, 0);
obroty[id] = 0;
return PLUGIN_CONTINUE;
}
artefakt = (artefakt == -1)? random_num(1, ilosc_artefakty): artefakt;
wartosc = (wartosc == -1 || min_wartosci_artefakty[artefakt] > wartosc || wartosc > max_wartosci_artefakty[artefakt])? random_num(min_wartosci_artefakty[artefakt], max_wartosci_artefakty[artefakt]): wartosc;
new ret;
new forward_handle = CreateOneForward(pluginy_artefakty[artefakt_gracza[id]], "artefakt_disabled", FP_CELL, FP_CELL);
ExecuteForward(forward_handle, ret, id, artefakt);
DestroyForward(forward_handle);
artefakt_gracza[id] = 0;
forward_handle = CreateOneForward(pluginy_artefakty[artefakt], "artefakt_enabled", FP_CELL, FP_CELL, FP_CELL);
ExecuteForward(forward_handle, ret, id, wartosc, artefakt);
DestroyForward(forward_handle);
if(ret == 4)
{
UstawArtefakt(id, -1, -1, 1);
return PLUGIN_CONTINUE;
}
ExecuteForward(artefakt_zmieniony, ret, id, artefakt, wartosc);
if(ret == 4)
{
UstawArtefakt(id, -1, -1, 1);
return PLUGIN_CONTINUE;
}
artefakt_gracza[id] = artefakt;
wartosc_artefaktu_gracza[id] = wartosc;
obroty[id] = 0;
if(pokaz_info && artefakt_gracza[id])
chat_color(id, "!g[ARTEFAKT] !yZdobyles %s.", nazwy_artefakty[artefakt_gracza[id]]);
return PLUGIN_CONTINUE;
}
Proszę o jakąkolwiek pomoc. Z góry dziękuje


Dodatki SourceMod














