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


Dodatki SourceMod












