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

nvault odczyt string


  • Zamknięty Temat jest zamknięty
Brak odpowiedzi do tego tematu

#1 Draba

    Początkujący

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:11
  • Imię:B.
  • Lokalizacja:TT
Offline

Napisano 22.05.2011 20:41

Witam

//(...)

new topexp; // il. expa
new topexpname[35]; // nick gracza 
new topexplvl[35]; // ranga

//(...)
public top_stats_save()
{
	new vaultkey[64], vaultdata[512];

        format(vaultkey,63,"zp_czempion")
        format(vaultdata,511,"%i#%s#%s#",topexp,topexpname,topexplvl)

        nvault_set(zp_top,vaultkey,vaultdata)
}

public top_stats_load()
{
	new vaultkey[64],vaultdata[512]

        format(vaultkey,63,"zp_czempion")
        format(vaultdata,511,"%i#%s#%s#",topexp,topexpname,topexplvl) 

        nvault_get(zp_top,vaultkey,vaultdata,511)
	replace_all(vaultdata, 511, "#", " ")

	new jeden[100], dwa[100], trzy[100];
	topexp = str_to_num(jeden);

	parse(vaultdata, dwa, charsmax(dwa), topexpname, charsmax(topexpname));
	parse(vaultdata, trzy, charsmax(trzy), topexplvl, charsmax(topexplvl));

}

Problem polega na tym, że plugin poprawnie zapisuje i odczytuje tylko 2 pierwsze zmienne (topexp, topexpname). Topexplvl jest poprawnie wyświetlana tylko, wtedy jeżeli gracz jest na serwerze. Po zmianie mapy, błędnie wyświetla dane - zamiast informacji o poziomie, jest drugi raz podany nick, czyli po prostu nie odczytuje poprawnie topexplvl.

Statystyki pokazuje w ten sposób, ale to nie ma żadnego znaczenia (tak sądzę):
formatex(tempstring,charsmax(tempstring),"<b><font color=#F21533>OBECNY CZEMPION:</br> %s | %s | exp: %i</b></font><br /><br />", topexpname, topexplvl, topexp);


Nie znam się w ogóle na nvault i na pewno brakuje gdzieś czegoś, dlatego zwracam się do was z prośbą o pomoc.
Pozdrawiam

Dodano 22 maj 2011 - 20:55:
Sry za post pod postem, proszę moderatora o złączenie tej wiadomości z 1 postem (nie mogę edytować ;/).

To co opisałem jednak nie działa.
Wróciłem do starej wersji i tak wygląda działający kod z 2 zmiennymi:

public top_stats_save()
{
	new vaultkey[64],vaultdata[256];

        format(vaultkey,63,"zp_topexp");
        format(vaultdata,255,"%i#%s#",topexp,topexpname);

        nvault_set(zp_top,vaultkey,vaultdata);
}

public top_stats_load()
{
	new vaultkey[64],vaultdata[256];

        format(vaultkey,63,"zp_topexp");
        format(vaultdata,255,"%i#%s#",topexp,topexpname) ;

        nvault_get(zp_top,vaultkey,vaultdata,255);
	replace_all(vaultdata, 255, "#", " ");

	new jeden[100];
	new str_rank[32];
	parse(vaultdata, str_rank, charsmax(str_rank), topexpname, charsmax(topexpname));
	

 	parse(vaultdata, jeden, 99);
	topexp = str_to_num(jeden);
}

Jak dodać do tego 3 zmienną typu string?

Dodano 22 maj 2011 - 20:56:

Witam

//(...)

new topexp; // il. expa
new topexpname[35]; // nick gracza 
new topexplvl[35]; // ranga

//(...)
public top_stats_save()
{
	new vaultkey[64], vaultdata[512];

        format(vaultkey,63,"zp_czempion")
        format(vaultdata,511,"%i#%s#%s#",topexp,topexpname,topexplvl)

        nvault_set(zp_top,vaultkey,vaultdata)
}

public top_stats_load()
{
	new vaultkey[64],vaultdata[512]

        format(vaultkey,63,"zp_czempion")
        format(vaultdata,511,"%i#%s#%s#",topexp,topexpname,topexplvl) 

        nvault_get(zp_top,vaultkey,vaultdata,511)
	replace_all(vaultdata, 511, "#", " ")

	new jeden[100], dwa[100], trzy[100];
	topexp = str_to_num(jeden);

	parse(vaultdata, dwa, charsmax(dwa), topexpname, charsmax(topexpname));
	parse(vaultdata, trzy, charsmax(trzy), topexplvl, charsmax(topexplvl));

}

Problem polega na tym, że plugin poprawnie zapisuje i odczytuje tylko 2 pierwsze zmienne (topexp, topexpname). Topexplvl jest poprawnie wyświetlana tylko, wtedy jeżeli gracz jest na serwerze. Po zmianie mapy, błędnie wyświetla dane - zamiast informacji o poziomie, jest drugi raz podany nick, czyli po prostu nie odczytuje poprawnie topexplvl.

Statystyki pokazuje w ten sposób, ale to nie ma żadnego znaczenia (tak sądzę):
formatex(tempstring,charsmax(tempstring),"<b><font color=#F21533>OBECNY CZEMPION:</br> %s | %s | exp: %i</b></font><br /><br />", topexpname, topexplvl, topexp);


Nie znam się w ogóle na nvault i na pewno brakuje gdzieś czegoś, dlatego zwracam się do was z prośbą o pomoc.
Pozdrawiam

Dodano 22 maj 2011 - 20:55:

To co opisałem jednak nie działa.
Wróciłem do starej wersji i tak wygląda działający kod z 2 zmiennymi:

public top_stats_save()
{
	new vaultkey[64],vaultdata[256];

        format(vaultkey,63,"zp_topexp");
        format(vaultdata,255,"%i#%s#",topexp,topexpname);

        nvault_set(zp_top,vaultkey,vaultdata);
}

public top_stats_load()
{
	new vaultkey[64],vaultdata[256];

        format(vaultkey,63,"zp_topexp");
        format(vaultdata,255,"%i#%s#",topexp,topexpname) ;

        nvault_get(zp_top,vaultkey,vaultdata,255);
	replace_all(vaultdata, 255, "#", " ");

	new jeden[100];
	new str_rank[32];
	parse(vaultdata, str_rank, charsmax(str_rank), topexpname, charsmax(topexpname));
	

 	parse(vaultdata, jeden, 99);
	topexp = str_to_num(jeden);
}

Jak dodać do tego 3 zmienną typu string?


Dodano 22 maj 2011 - 20:57:
Sry za ten chaos, mam nadzieję, że ktoś się połapie ;/
  • +
  • -
  • 0




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

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