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

[ROZWIĄZANE] Format zapisu i odczytu


Najlepsza odpowiedź PANDA_2zl, 24.10.2022 18:13

dzięki za wskazówkę, ale nie działało w pełni to co dałeś edytowałem trochę zapis i odczyt
zapis:

replace_all(nick, 32, " ", "~");
formatex(data, charsmax(data), "%s#%d", nick, zmienna);
fvault_set_data(fvault, sid, data)

odczyt:

fvault_get_data(fvault, sid, data, charsmax(data)
replace_all(data, charsmax(data), "#", " ");
parse(pobrane, nick, charsmax(nick), zmienna, charsmax(zmienna));
replace_all(nick, 39, "~", " ");

przy twoim zapisie dane zapisane wyglądały tak:

""Sezonowy Gracz"#213"

i był problem z odczytem, dzięki za pomoc

Przejdź do postu


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

#1 PANDA_2zl

    Guru

  • Power User

Reputacja: 178
Profesjonalista

  • Postów:726
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 24.10.2022 09:47

Chciałbym zapisywać nick sid i wartość zmiennej, moje pytanie jak zrobić odczyt klucza z nvault gdy kluczem jest sid a danymi "nick#zmienna" biorąc pod uwagę że nick może się różnić jak ktoś sobie zmieni i zmienna to liczba, chciałbym oczywiście rozdzielić te dane przy odczytaniu
  • +
  • -
  • 0

#2 Boski Z Polski

    Profesjonalista

  • Użytkownik

Reputacja: 61
Pomocny

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

Napisano 24.10.2022 15:58

#include <nvault>

new vault;
new nasza_zmienna[33];

public plugin_init() 
{
	vault = nvault_open("nazwa_pliku");
}

public client_authorized(id)
{
	new sid[33];
	get_user_authid(id, sid, charsmax(sid));
	
	new name[33];
	get_user_name(id, name, charsmax(name));
	
	new vaultkey[128];
	formatex(vaultkey, charsmax(vaultkey), "%s", sid);
	new vaultdata[128];
	
	if(nvault_get(vault, vaultkey, vaultdata, charsmax(vaultdata)))
	{
		replace_all(vaultdata, charsmax(vaultdata), "#", " ");
		
		new dane1[33];
		new dane2[33];
		parse(vaultdata, dane1, charsmax(dane1), dane2, charsmax(dane2));
		
		//dane1 = nick
		//dane2 = zmienna
		
		nasza_zmienna[id] = str_to_num(dane2);
	}
}

public client_disconnected(id)
{
	new sid[33];
	get_user_authid(id, sid, charsmax(sid));
	
	new name[33];
	get_user_name(id, name, charsmax(name));
	
	new vaultkey[128];
	formatex(vaultkey, charsmax(vaultkey), "%s", sid);
	
	new vaultdata[128];
	formatex(vaultdata, charsmax(vaultdata), "^"%s^"#%i",name,  nasza_zmienna[id]);
	
	nvault_set(vault, vaultkey, vaultdata);
	nasza_zmienna[id] = 0;
}

Teraz jak gracz wejdzie na innym nicku, to automatycznie ustawi mu dane ze zmiennej. 

Jeżeli chcesz żeby nie ustawiało mu danych na innym nicku, to:

#include <nvault>

new vault;
new nasza_zmienna[33];

public plugin_init() 
{
	vault = nvault_open("nazwa_pliku");
}

public client_authorized(id)
{
	new sid[33];
	get_user_authid(id, sid, charsmax(sid));
	
	new name[33];
	get_user_name(id, name, charsmax(name));
	
	new vaultkey[128];
	formatex(vaultkey, charsmax(vaultkey), "^"%s^"-^"%s^"", sid, name);
	new vaultdata[128];
	
	if(nvault_get(vault, vaultkey, vaultdata, charsmax(vaultdata)))
	{
		nasza_zmienna[id] = str_to_num(vaultdata);
	}
}

public client_disconnected(id)
{
	new sid[33];
	get_user_authid(id, sid, charsmax(sid));
	
	new name[33];
	get_user_name(id, name, charsmax(name));
	
	new vaultkey[128];
	formatex(vaultkey, charsmax(vaultkey), "^"%s^"-^"%s^"", sid, name);
	
	new vaultdata[128];
	formatex(vaultdata, charsmax(vaultdata), "%i", nasza_zmienna[id]);
	
	nvault_set(vault, vaultkey, vaultdata);
	nasza_zmienna[id] = 0;
}

Użytkownik Boski Z Polski edytował ten post 24.10.2022 16:07

  • +
  • -
  • 1

#3 PANDA_2zl

    Guru

  • Autor tematu
  • Power User

Reputacja: 178
Profesjonalista

  • Postów:726
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 24.10.2022 18:13   Najlepsza odpowiedź

dzięki za wskazówkę, ale nie działało w pełni to co dałeś edytowałem trochę zapis i odczyt
zapis:

replace_all(nick, 32, " ", "~");
formatex(data, charsmax(data), "%s#%d", nick, zmienna);
fvault_set_data(fvault, sid, data)

odczyt:

fvault_get_data(fvault, sid, data, charsmax(data)
replace_all(data, charsmax(data), "#", " ");
parse(pobrane, nick, charsmax(nick), zmienna, charsmax(zmienna));
replace_all(nick, 39, "~", " ");

przy twoim zapisie dane zapisane wyglądały tak:

""Sezonowy Gracz"#213"

i był problem z odczytem, dzięki za pomoc


  • +
  • -
  • 0

#4 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 27.10.2022 16:48

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0




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

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