←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] usuwanie danych z nvault po x...


Best Answer 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));
}
Go to the full post
Locked

  • +
  • -
Rivit's Photo Rivit 13.12.2013

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?
Quote

  • +
  • -
Droso's Photo Droso 13.12.2013

nvault_prune ?

Quote

  • +
  • -
Rivit's Photo Rivit 13.12.2013

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

  • +
  • -
k4x4z5's Photo k4x4z5 13.12.2013

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));
}
Quote

  • +
  • -
sebul's Photo sebul 14.12.2013

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

  • +
  • -
Rivit's Photo Rivit 14.12.2013

@up
widzialem tego CoD'a.

Czyli trzeba zrobic zapis i wczyt pod to tak?
I co to znaczy odpowiednio wczytac? Co tam trzeba umiescic?
Quote

  • +
  • -
k4x4z5's Photo k4x4z5 14.12.2013

Dane ktore zostaly zapisane.

Quote

  • +
  • -
Rivit's Photo Rivit 14.12.2013

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

  • +
  • -
Best Answer k4x4z5's Photo k4x4z5 14.12.2013

#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));
}
Quote
Locked