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.
|
Guest Message by DevFuse
utrata danych w nvault
Temat rozp.
Sniper Elite
, 07.04.2012 07:01
12 odpowiedzi w tym temacie
#1
Napisano 07.04.2012 07:01
Witam.
Jest jakiś sposób na zabezpieczenie danych w nvault przed kasacją.
Chodzi mi o to, że czasami plik się obcina, przez co zostaje tracone część danych.
To dzieje się najczęściej przy crashu.
Używam funkcji plugin_end, ale nie pomaga.
Jest jakiś sposób na zabezpieczenie danych w nvault przed kasacją.
Chodzi mi o to, że czasami plik się obcina, przez co zostaje tracone część danych.
To dzieje się najczęściej przy crashu.
Używam funkcji plugin_end, ale nie pomaga.
#2
Napisano 07.04.2012 08:58
najlepszy sposob to chyba zapis sql bo tam zapis jest do bazy danych i tam nie powinno być utraty. W nvault zawsze przy crashu bedzie utrata. Chyba że jest jakaś funkcja która zapisywałaby na bierząco do pliku txt albo coś w tym stylu
#3
Napisano 07.04.2012 11:38
Owieraj pluginem nvaulta tylko wtedy gdy zapisujesz dane a zamykaj po zapisie.
#5
Napisano 07.04.2012 12:02
w publicu gdzie masz zapis danych dajesz to co jest w plugin_init (bo tam najcześciej się otwiera nvaulty)
po zapisie zamykasz go.
g_vault = nvault_open("nazwapliku");
po zapisie zamykasz go.
nvault_close(g_vault)
#7
Napisano 07.04.2012 13:13
na końcu funkcji zapisu.
#8
Napisano 07.04.2012 13:24
Czyli ma to wyglądać tak?
public ZapiszDane(id) { new vaultkey[64],vaultdata[256]; format(vaultkey,63,"%s-%i-cod", nazwa_gracza[id], klasa_gracza[id]); format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], monety[id], honor[id], s_aw[id], s_apw[id], s_pas[id], grawitacja_gracza[id], niewidzialnosc_gracza[id], celneoko_gracza[id]); nvault_set(g_vault,vaultkey,vaultdata); nvault_close(g_vault)//to od Ciebie }
Użytkownik Sniper Elite edytował ten post 07.04.2012 13:24
#9
Napisano 07.04.2012 13:56
public ZapiszDane(id) { g_vault = nvault_open("nazwapliku"); new vaultkey[64],vaultdata[256]; format(vaultkey,63,"%s-%i-cod", nazwa_gracza[id], klasa_gracza[id]); format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], monety[id], honor[id], s_aw[id], s_apw[id], s_pas[id], grawitacja_gracza[id], niewidzialnosc_gracza[id], celneoko_gracza[id]); nvault_set(g_vault,vaultkey,vaultdata); nvault_close(g_vault)//to od Ciebie }
#10
Napisano 07.04.2012 19:33
Z z funkcją wczytaj dane też muszę tak zrobić jak z Zapiszdane:
I czy jak dodam to aby otwierał w tych funkcjach to nie muszę w plugin_init?
Może głupie pytanie, ale nie za bardzo się znam.
public WczytajDane(id, klasa) { g_vault = nvault_open("CodMod"); new vaultkey[64],vaultdata[256]; format(vaultkey,63,"%s-%i-cod", nazwa_gracza[id], klasa); format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], monety[id], honor[id], s_aw[id], s_apw[id], s_pas[id], grawitacja_gracza[id], niewidzialnosc_gracza[id], celneoko_gracza[id]); nvault_get(g_vault,vaultkey,vaultdata,255); replace_all(vaultdata, 255, "#", " "); new doswiadczeniegracza[32], poziomgracza[32], inteligencjagracza[32], silagracza[32], zrecznoscgracza[32], zwinnoscgracza[32], monetygracza[32], honorgracza[32], awgracza[32], apwgracza[32], poziompasa[32], grawitacjagracza[32], niewidzialnoscgracza[32], celneokogracza[32]; parse(vaultdata, doswiadczeniegracza, 31, poziomgracza, 31, inteligencjagracza, 31, silagracza, 31, zrecznoscgracza, 31, zwinnoscgracza, 31, monetygracza, 31, honorgracza, 31, awgracza, 31, apwgracza, 31, poziompasa, 31, grawitacjagracza, 31, niewidzialnoscgracza, 31, celneokogracza, 31); doswiadczenie_gracza[id] = str_to_num(doswiadczeniegracza); poziom_gracza[id] = str_to_num(poziomgracza)>0?str_to_num(poziomgracza):1; inteligencja_gracza[id] = str_to_num(inteligencjagracza); zdrowie_gracza[id] = str_to_num(silagracza); wytrzymalosc_gracza[id] = str_to_num(zrecznoscgracza); kondycja_gracza[id] = str_to_num(zwinnoscgracza); monety[id] = str_to_num(monetygracza); honor[id] = str_to_num(honorgracza); s_aw[id] = str_to_num(awgracza); s_apw[id] = str_to_num(apwgracza); s_pas[id] = str_to_num(poziompasa); grawitacja_gracza[id] = str_to_num(grawitacjagracza); niewidzialnosc_gracza[id] = str_to_num(niewidzialnoscgracza); celneoko_gracza[id] = str_to_num(celneokogracza); punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-grawitacja_gracza[id]-niewidzialnosc_gracza[id]-celneoko_gracza[id]+q_punkty_gracza; nvault_close(g_vault) }
I czy jak dodam to aby otwierał w tych funkcjach to nie muszę w plugin_init?
Może głupie pytanie, ale nie za bardzo się znam.
Użytkownik Sniper Elite edytował ten post 07.04.2012 19:33
#11
Napisano 08.04.2012 08:29
nie musisz.
#12
Napisano 08.04.2012 09:31
Nie jesteś defacto w stanie usunąć problemów z utratom danych z plików nvault, z biegiem czasu plik się przepełni i automatycznie usunięte zostaną ostatnie rekordy. Możesz spróbować usuwać stare rekordy i tym samym robić więcej miejsca dla nowych, ale to nadal rozwiązanie z lekka bez sensu.
http://www.unixstorm.org/Konta_WWW.html - tragedia, 24zł/rok... http://www.idhosting...akiet=niebieskiChciałbym sql ale nie mam tak szybkich baz.
IP: ts3.cserwerek.pl
#13
Napisano 08.04.2012 14:02
Myślę nad Vps, a bazy na unixstorm mają limit otwartych połączeń 40 więc to odpada (dużo optymalizacji potrzeba, a ja tego nie ogarniam)
Da się tak zrobić, że plugin sam usuwa wpisy, które nie były ruszane od 21 dni?
Da się tak zrobić, że plugin sam usuwa wpisy, które nie były ruszane od 21 dni?
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych