←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Nvualt - usuwa dane

Zablokowany

GT Team - zdjęcie GT Team 11.04.2013

Witam, mam problem, gdyż niektórzy się skarżą na to, że usuwa lvl przy zapisie w nvualt. Prawdopodobnie serwer na którym jest ten mod, ma crashe co powoduje ucinki zapisów i tworzenie od nowa zapisu. o to co jest używane z nvault: plugin_init
plik = nvault_open("ExpMod");
public ZapiszExp(id)
{
	get_user_name(id, nazwa_gracza, 32)
	new dane[256]
	formatex(dane, 255, "%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#", doswiadczenie_gracza[id], poziom_gracza[id], punkty_gracza[id],
	ultra_punkty_gracza[id], zycie_gracza[id], nowe_zycie_gracza[id], niewidzialnosc_gracza[id], nowa_niewidzialnosc_gracza[id], obrazenia_gracza[id],
	nowe_obrazenia_gracza[id], szybkosc_gracza[id], floatround(nowa_szybkosc_gracza[id]), grawitacja_gracza[id], floatround(nowa_grawitacja_gracza[id]),
	kasa_gracza[id], nowa_kasa_gracza[id], skoki_gracza[id], nowe_skoki_gracza[id], longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id], monety_gracza[id])
	
	nvault_set(plik, nazwa_gracza, dane)
}
public WczytajExp(id)
{
	get_user_name(id, nazwa_gracza, 32)
	new dane[512]
	
	nvault_get(plik, nazwa_gracza, dane, 511)
	
	replace_all(dane, 255, "#", " ")
	
	new dg[16], pg[16], pkt[16], upkt[16], hp[16], nhp[16], ng[16], 
	nng[16], og[16], nog[16], sg[16], nsg[16], gg[16], ngg[16], kg[16], 
	nkg[16], skokig[16], noweskg[16], lg[16], nlg[16], lgsc[16], mg[16]
	
	parse(dane, dg, 15, pg, 15, pkt, 15, upkt, 15, hp, 15, nhp, 15, ng, 15, nng, 15, og, 15, 
	nog, 15, sg, 15, nsg, 15, gg, 15, ngg, 15, kg , 15, nkg, 15, skokig, 15, noweskg, 15, lg,
	15, nlg, 15, lgsc, 15, mg, 15)
	
	doswiadczenie_gracza[id] = str_to_num(dg)
	poziom_gracza[id] = str_to_num(pg)
	
	punkty_gracza[id] = str_to_num(pkt)
	ultra_punkty_gracza[id] = str_to_num(upkt)
	
	monety_gracza[id] = str_to_num(mg)
	
	zycie_gracza[id] = str_to_num(hp)
	nowe_zycie_gracza[id] = str_to_num(nhp)
	
	niewidzialnosc_gracza[id] = str_to_num(ng)
	nowa_niewidzialnosc_gracza[id] = str_to_num(nng)
	
	obrazenia_gracza[id] = str_to_num(og)
	nowe_obrazenia_gracza[id] = str_to_num(nog)
	
	szybkosc_gracza[id] = str_to_num(sg)
	nowa_szybkosc_gracza[id] = float(str_to_num(nsg))
	
	grawitacja_gracza[id] = str_to_num(gg)
	nowa_grawitacja_gracza[id] = float(str_to_num(ngg))
	
	kasa_gracza[id] = str_to_num(kg)
	nowa_kasa_gracza[id] = str_to_num(nkg)
	
	skoki_gracza[id] = str_to_num(skokig)
	nowe_skoki_gracza[id] = str_to_num(noweskg)
	
	longjump_gracza[id] = str_to_num(lg)
	nowy_longujmp_gracza[id] = str_to_num(nlg)
	longjump_s_czas[id] = str_to_num(lgsc)
}
public plugin_end()
{
	nvault_close(plik)
}
Ogólnie mówiąc. Resetuje lvl graczom poprzez nvault, nie mam pojęcia czemu. Pomożecie ?
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 11.04.2013

nVault jest niestety mało odporny na błędy. Potrafi cały plik wyczyścić jak się coś źle zapisze... Dlatego polecam przerobienie pluginu na SQLite albo na MySQL. Są dużo odporniejsze na błędy, tym bardziej MySQL.

Odpowiedz

GT Team - zdjęcie GT Team 11.04.2013

Eh... Szkoda. Więc dobrze, że to nie moja wina :) A Fvault ?
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 11.04.2013

Fvault nawet nigdy nie używałem, więc na jego temat się nie wypowiem. Najlepszym rozwiązaniem jest MySQL, gdyż w tym wypadku zapis i odczyt danych spada na zewnętrzny serwer, który tak łatwo Ci nie "padnie", więc i dane się łatwo nie uszkodzą. Na drugim miejscu stawiam SQLite lub SQLVault (to to samo chyba... nie testowałem tego 2go).

Odpowiedz

GT Team - zdjęcie GT Team 11.04.2013

Dobra dzięki, temat do zamknięcia. +
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 12.04.2013

Nie ma się co dziwić, że "usuwa" lvle, skoro plugin jest do d*py, źle napisany, itd.


Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany