Tak jak w nazwie tematu używam tablicy z lvl i gdy gracz wbije maksymalny lvl to zeruje go do 0 i nie mogę skumać dlaczego, może ktoś mi to wytłumaczy ? Tak wygląda funkcja od sprawdzania lvl.
public SprawdzPoziom(id) { if(!is_user_connected(id)) return; new limit_poziomu = 65001; new bool:zdobyl_poziom = false, bool:stracil_poziom = false; new nazwa_gracza[64]; while(doswiadczenie_gracza[id] >= PobierzDoswiadczeniePoziomu(poziom_gracza[id]) && poziom_gracza[id] < limit_poziomu) { poziom_gracza[id]++; punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]; zdobyl_poziom = true; } while(doswiadczenie_gracza[id] < PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)) { poziom_gracza[id]--; stracil_poziom = true; } if(poziom_gracza[id] > limit_poziomu) { poziom_gracza[id] = limit_poziomu; ResetujPunkty(id); } if(stracil_poziom) { ResetujPunkty(id); set_hudmessage(212, 255, 85, 0.31, 0.32, 0, 6.0, 5.0); ShowSyncHudMsg(id, SyncHudObj2,"Spadles do %i poziomu!", poziom_gracza[id]); } else if(zdobyl_poziom) { punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]; } ZapiszDane(id); }
Coś to nie trybi
if(poziom_gracza[id] > limit_poziomu) { poziom_gracza[id] = limit_poziomu; ResetujPunkty(id); }
Użytkownik OpUr off edytował ten post 16.05.2014 15:54