←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

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

OpUr off's Photo 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);
}

Edited by OpUr off, 16.05.2014 15:54.
Quote

  • +
  • -
Michael's Photo Michael 17.05.2014

Spróbuj to usunąć:

{

poziom_gracza[id] = limit_poziomu;

Resetujpunkty(id);

}

To odpowiada za reset lvl graczy.

 

Quote

OpUr off's Photo 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ć.

Quote