Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
CoD Nowy

Dlaczego zeruje się lvl po osciągnieciu limitu poziomu ?

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 OpUr off

    Pomocny

  • Zbanowany

Reputacja: 16
Początkujący

  • Postów:74
  • Imię:Arek łowca szparek
  • Lokalizacja:Warszawa
Offline

Napisano 16.05.2014 15:47

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


#2 Michael

    Pomocny

  • Oczekujący

Reputacja: 2
Nowy

  • Postów:41
  • GG:
  • Imię:Michał
  • Lokalizacja:Częstochowa Polska
Offline

Napisano 17.05.2014 12:34

Spróbuj to usunąć:

{

poziom_gracza[id] = limit_poziomu;

Resetujpunkty(id);

}

To odpowiada za reset lvl graczy.

 


  • +
  • -
  • 0

b_350_20_EB3D5D_0E1981_F8F30C_000000.png


#3 OpUr off

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 16
Początkujący

  • Postów:74
  • Imię:Arek łowca szparek
  • Lokalizacja:Warszawa
Offline

Napisano 17.05.2014 14:43

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ć.







Również z jednym lub większą ilością słów kluczowych: cod nowy

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych