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] usuwanie danych z nvault po x dniach


Najlepsza odpowiedź k4x4z5 , 14.12.2013 11:03

#include <nvault>

#define DNI(%1) (86400 * %1)

new	nazwa_gracza[33][64],
	fragi[33];
	zapis

public plugin_init() {
	zapis = nvault_open("jb_sklep");
	
	WyczyscZapis();
}
public client_authorized(id){
	get_user_name(id, nazwa_gracza[id], 63);
	
	WczytajDane(id);
}
public client_disconnect(id)
	ZapiszDane(id);

public ZapiszDane(id){
	new key[64], data[256];
	format(key, 63, "%s-cos", nazwa_gracza[id]);
	format(data, 255, "%i", fragi[id]);
	nvault_set(zapis, key, data);
}
public WczytajDane(id){
	new key[64], data[256];
	format(key, 63, "%s-cos", nazwa_gracza[id]);
	
	if(nvault_get(zapis, key, data, 255)){
		fragi[id] = str_to_num(data);
		
		nvault_touch(zapis, key);
		
		return 1;
	}
	else
		fragi[id] = 0;
	
	return 1;
}

WyczyscZapis(){
	if(zapis != INVALID_HANDLE)
		nvault_prune(zapis, 0, get_systime() - DNI(30));
}
Przejdź do postu


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

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.12.2013 19:00

witam,
jak zrobic aby dane z nvault byly usuwane po x dniach?
Patrzylem juz na taki silnik cod moda ale on ma calkiem inna budowe (zapis dla kazdej klasy osobno).
Co musze dodac/usunac/podmienic?
  • +
  • -
  • 0

#2 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 13.12.2013 19:02

nvault_prune ?


  • +
  • -
  • 0

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

Na zlecenie i bez zlecenia zresztą też!


#3 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.12.2013 21:19

okej ale skad plugin ma wiedziec ktore dane usunac? (np poziom gracza o nicku hubert).
I gdzie dopisac to nvault prune?
Init, cfg?
  • +
  • -
  • 0

#4 k4x4z5

    Wszechwidzący

  • Użytkownik

Reputacja: 84
Zaawansowany

  • Postów:257
  • Imię:Marcin
  • Lokalizacja:zDaleka
Offline

Napisano 13.12.2013 21:31

okej ale skad plugin ma wiedziec ktore dane usunac? (np poziom gracza o nicku hubert).
I gdzie dopisac to nvault prune?
Init, cfg

Skoro chcesz usuwac z nvault jakies dane to muszą one byc zapisane wcześniej:D

 

Łap,moze sie przyda

#include <nvault>

#define DNI(%1) (86400 * %1)

new zapis;

public plugin_init() {
	 zapis = nvault_open("blelbel");
	
	WyczyscZapis();
}

WyczyscZapis(){
	if(zapis != INVALID_HANDLE)
		nvault_prune(zapis, 0, get_systime() - DNI(30));
}

  • +
  • -
  • 1

#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 14.12.2013 00:36

Żeby w ogóle myśleć o usuwaniu starych danych, musisz je najpierw odpowiednio wczytywać, co zresztą widać w poprawionej przeze mnie wersji coda.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 14.12.2013 10:36

@up
widzialem tego CoD'a.

Czyli trzeba zrobic zapis i wczyt pod to tak?
I co to znaczy odpowiednio wczytac? Co tam trzeba umiescic?
  • +
  • -
  • 0

#7 k4x4z5

    Wszechwidzący

  • Użytkownik

Reputacja: 84
Zaawansowany

  • Postów:257
  • Imię:Marcin
  • Lokalizacja:zDaleka
Offline

Napisano 14.12.2013 10:41

Dane ktore zostaly zapisane.


  • +
  • -
  • 0

#8 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 14.12.2013 10:51

a moglbys 'ulepszyc' ten twoj kod tak aby tam byl jeszcze wczytanie i zapis (przykladowe rzeczy do zapisania i wczytania)
  • +
  • -
  • 0

#9 k4x4z5

    Wszechwidzący

  • Użytkownik

Reputacja: 84
Zaawansowany

  • Postów:257
  • Imię:Marcin
  • Lokalizacja:zDaleka
Offline

Napisano 14.12.2013 11:03   Najlepsza odpowiedź

#include <nvault>

#define DNI(%1) (86400 * %1)

new	nazwa_gracza[33][64],
	fragi[33];
	zapis

public plugin_init() {
	zapis = nvault_open("jb_sklep");
	
	WyczyscZapis();
}
public client_authorized(id){
	get_user_name(id, nazwa_gracza[id], 63);
	
	WczytajDane(id);
}
public client_disconnect(id)
	ZapiszDane(id);

public ZapiszDane(id){
	new key[64], data[256];
	format(key, 63, "%s-cos", nazwa_gracza[id]);
	format(data, 255, "%i", fragi[id]);
	nvault_set(zapis, key, data);
}
public WczytajDane(id){
	new key[64], data[256];
	format(key, 63, "%s-cos", nazwa_gracza[id]);
	
	if(nvault_get(zapis, key, data, 255)){
		fragi[id] = str_to_num(data);
		
		nvault_touch(zapis, key);
		
		return 1;
	}
	else
		fragi[id] = 0;
	
	return 1;
}

WyczyscZapis(){
	if(zapis != INVALID_HANDLE)
		nvault_prune(zapis, 0, get_systime() - DNI(30));
}

  • +
  • -
  • 1




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

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