Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

[ROZWIĄZANE] Problem z true false..


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 pfkers

    Banned

  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 17.07.2012 20:46

Witam.. mam pewien problem .. niestety nie wiem jak sobie podolac z tym dlatego mam nadzieje ze ktos mi wytlumaczy i poprawi owy kod

public SprawdzPoziom_Damage(id)
{
if(awans_damage_na1[id] == true)
{
if(doswiadczenie_damage[id] < 20)
{
while(doswiadczenie_damage[id] >= exp_poziom_dmg[poziom_damage[id]])
{
poziom_damage[id]++;
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
ShowSyncHudMsg(id, SyncHudObj, "Twoje Ulepszenie DAMAGE wynosi 100%");
}
}

if(doswiadczenie_damage[id] == 20 )
{
awans_damage_z1_na2[id] = true;
awans_damage_na1[id] = false;
awans_damage_z2_na3[id] = false;
}
}



if(awans_damage_z1_na2[id] == true)
{
if(doswiadczenie_damage[id] < 50)
{
while(doswiadczenie_damage[id] >= exp_poziom_dmg2[poziom_damage[id]])
{
poziom_damage[id]++;
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
ShowSyncHudMsg(id, SyncHudObj, "Twoje Ulepszenie DAMAGE wynosi 100%");
}
}

if(doswiadczenie_damage[id] == 50 )
{
awans_damage_z2_na3[id] = true;
awans_damage_z1_na2[id] = false;
awans_damage_na1[id] = false;

}


}

if(awans_damage_z2_na3[id] == true)
{
if(doswiadczenie_damage[id] < 10000)
{
while(doswiadczenie_damage[id] >= exp_poziom_dmg3[poziom_damage[id]])
{
poziom_damage[id]++;
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
ShowSyncHudMsg(id, SyncHudObj, "Twoje Ulepszenie DAMAGE wynosi 100%");
}
}

awans_damage_na1[id] = false;

awans_damage_z1_na2[id] = false;

}



}


w skrocie.. gdy zdobede 20 pkt doswiadczenie zmienna "awans_damage_z1_na2[id]" przybiera wartosc true i wszystko jest naliczane wtedy przez
    if(awans_damage_z1_na2[id] == true)
{
if(doswiadczenie_damage[id] < 50)
{
while(doswiadczenie_damage[id] >= exp_poziom_dmg2[poziom_damage[id]])
{
poziom_damage[id]++;
set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
ShowSyncHudMsg(id, SyncHudObj, "Twoje Ulepszenie DAMAGE wynosi 100%");
}
}

if(doswiadczenie_damage[id] == 50 )
{
awans_damage_z2_na3[id] = true;
awans_damage_z1_na2[id] = false;
awans_damage_na1[id] = false;

}


}


lecz problem jest w tym( tak mi sie wydaje)
   	 if(doswiadczenie_damage[id] == 20 )
{
awans_damage_z1_na2[id] = true;
awans_damage_na1[id] = false;
awans_damage_z2_na3[id] = false;
}

nie zmienia wartosci gdy osiagne 20 doswiadczenia..

a i jeszcze w public connect mam :

awans_damage_na1[id] = true;


To jest opcja dla gracza ktory jest pierwszy raz na serwerze aby mu sprawdzalo hud(nie wiem czy dobrze ze to jest)

wszystko sie zapisuje na vault

public ZapiszDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-sol", nazwa_gracza[id], bron_gracza[id]);
format(vaultdata,255,"%i#%i#%i#%i#%i#%i",doswiadczenie_damage[id],doswiadczenie_ammo[id],doswiadczenie_reload[id],awans_damage_na1[id],awans_damage_z1_na2[id],awans_damage_z2_na3[id]);
nvault_set(g_vault,vaultkey,vaultdata);
}
public WczytajDane(id, bron)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-sol", nazwa_gracza[id], bron);
format(vaultdata,255,"%i#%i#%i#%i#%i#%i", doswiadczenie_damage[id],doswiadczenie_ammo[id],doswiadczenie_reload[id],awans_damage_na1[id],awans_damage_z1_na2[id],awans_damage_z2_na3[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

new doswiadczeniedmg[32], doswiadczenieammo[32], doswiadczeniereload[32],dmgawansna1[32],dmgawans1na2[32],dmgawans2na3[32];

parse(vaultdata, doswiadczeniedmg, 31, doswiadczenieammo, 31, doswiadczeniereload, 31,dmgawansna1, 31, dmgawans1na2, 31, dmgawans2na3, 31);

doswiadczenie_damage[id] = str_to_num(doswiadczeniedmg);
doswiadczenie_ammo[id] = str_to_num(doswiadczenieammo);
doswiadczenie_reload[id] = str_to_num(doswiadczeniereload);
awans_damage_na1[id] = bool:str_to_num(dmgawansna1);
awans_damage_z1_na2[id] = bool:str_to_num(dmgawans1na2);
awans_damage_z2_na3[id] = bool:str_to_num(dmgawans2na3);

}


#2 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1279
Godlike

  • Postów:2371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Tomaszów Mazowiecki
Offline

Napisano 17.07.2012 21:12

skoro nie wywołuje się to warunek nie jest spełniony może jak zdobywasz xp to liczba 20 została ominięta (np. od razu wbiłeś 21)

lub w złym momencie sprawdzasz xp.

Smiem tak twierdzić bo kod już na początku działa wadliwie ;)


p.s jak nie jesteś pewien to dodaj client_print do warunku, jak sie wywola to problem leży gdzie indziej :)

Użytkownik HubertTM edytował ten post 17.07.2012 21:15

  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#3 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 17.07.2012 21:24

nom wlasnie juz sprawdzalem... dostaje 10 pkt wiec nie ominie mi 20.. a sprawdzalem ze jak

if(awans_damage_z1_na2[id] == true)

to przy respie daje mi granat.. lecz nie dalo..

#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 17.07.2012 22:23

Zamiast tworzyć zmienne typu boolowskiego typu awans_damage_z2_na3, zastosuj jedną tablicę awans[33] przechowującą poziom gracza.
Wiadomo, że nastąpił awans z poziomu awans[id]-1 na awans[id] lub nie nastąpił żaden, o ile awans[id]==0

#5 pfkers

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 90
Zaawansowany

  • Postów:759
  • GG:
  • Imię:Krzysiek
  • Lokalizacja:Płock
Offline

Napisano 18.07.2012 22:11

przeksztalcilem troche kod i jest wszystko ok.. dzięki za pomoc + // do zamkniecia

#6 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 18.07.2012 22:45

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL




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

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