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

Problem nvault


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

#1 Geekos

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:4
Offline

Napisano 06.03.2024 19:22

Witam mam taki kod na zapis waluty "Farbek" 

tutaj 1 część :

public client_putinserver(id) {
	Wczytaj(id);
}

tutaj 2 część :

public client_disconnect(id){
	Zapisz(id);
	farbki[id] = 0;
}

tutaj 3 część:

public Zapisz(id)
{ 
	new name[48];
	get_user_name(id,name,47);
	new vaultkey[64], vaultdata[256];
	format(vaultkey, 63, "%s-rangi", name);
	format(vaultdata, 255, "%i ^"%s^"",farbki[id],name);
	
	nvault_set(vault, vaultkey, vaultdata);
	log_amx("%s  Zapisywanie", vaultdata);
	return;
}
public Wczytaj(id)
{
	new name[48];
	get_user_name(id,name,47);
	new vaultkey[64], vaultdata[256];
	format(vaultkey, 63, "%s-rangi", name);
	nvault_get(vault, vaultkey, vaultdata,255);                                                                                                                                         

	
	new farbki_temp[33];
	
	parse(vaultdata, farbki_temp, 32);
	
	farbki[id] = str_to_num(farbki_temp);
	log_amx("%s  Ladowanie", vaultdata);
	return;
}

Log z konsoli jak wchodze do gry :

L 03/06/2024 - 19:11:58: [farbki.amxx] 5 "brdvsky" Ladownianie

Log z konsoli jak wychodzę z gry :

L 03/06/2024 - 19:12:00: [farbki.amxx] 5 "brdvsky"  Zapisywanie

I niby sie wszystko zapisuje ale jak wejde jeszcze raz do gry i mimo że pokaże że mam 5 farbek w konsoli w hud pokazuje mi 0 i nalicza mi od nowa jakbym miał faktycznie ich 0, uczę sie dopiero takich rzeczy moze ktoś coś podpowie 

--------NAPRAWIONE


Użytkownik Geekos edytował ten post 06.03.2024 19:41

  • +
  • -
  • 0

#2 Boski Z Polski

    Profesjonalista

  • Użytkownik

Reputacja: 61
Pomocny

  • Postów:183
  • Steam:steam
  • Imię:Olgierd
  • Lokalizacja:Leszno
Offline

Napisano 07.03.2024 10:15

public saveData(id) {
    new name[33];
    get_user_name(id, name, 32);
    nvault_set(vault, fmt("^"%s^"", name), fmt("%i", farbki[id]));
}

public getData(id) {
    new name[33], data[10];
    get_user_name(id, name, 32);
    if(nvault_get(vault, fmt("^"%s^"", name), data, 9))
        farbki[id] = str_to_num(data);
}

Poprawiona wersja, a ogólnie w zapisie, którym podałeś bezsensowne jest podwójne zapisywanie nicku (gdzie w sumie sam key jest już źle sformatowany bo powinnien być w cudzysłowiu)

new farbki_temp[33];
parse(vaultdata, farbki_temp, 32);

Nie dam sobie ręki uciąć, ale tego typu zapis odczytuje tylko i wyłącznie jedną wartość. Ty zapisujesz dwie wartości, więc powinno to wyglądać:

new farbki_temp[33], farbki_name[48];
parse(vaultdata, farbki_temp, 32, farbki_name, 47);
farbki[id] = str_to_num(farbki_temp);

  • +
  • -
  • 0




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

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