Witam, dlaczego tu jest wyliczanie punktów dwa razy? skoro jak awansował to zmienna jest na true i potem w warunku są podliczane?
public SprawdzPoziom(id)
{
if(!is_user_connected(id))
return;
new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);
new bool:zdobyl_poziom = false, bool:stracil_poziom = false;
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);
}
else if(zdobyl_poziom)
{
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
client_cmd(id, "spk QTM_CodMod/levelup");
}
}
Mógłby ktoś wyjaśnic?


Dodatki SourceMod















