←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Dlaczego zeruje się lvl po osciągnieciu li...

OpUr off - zdjęcie OpUr off 16.05.2014

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
Odpowiedz

  • +
  • -
Michael - zdjęcie Michael 17.05.2014

Spróbuj to usunąć:

{

poziom_gracza[id] = limit_poziomu;

Resetujpunkty(id);

}

To odpowiada za reset lvl graczy.

 

Odpowiedz

OpUr off - zdjęcie OpUr off 17.05.2014

To odpowiada za to że jeżeli gracz ma większy lvl niz maksymalny to jego lvl zostaje ustawiony na maksymalny i tyle ze resetuje punkty to jest głupotą. To musi być wina pętli while tylko nie wiem jak ją zastąpić.

Odpowiedz