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

utrata danych w nvault


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
12 odpowiedzi w tym temacie

#1 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

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.
  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#2 IndeS

    Wszechwiedzący

  • Power User

Reputacja: 146
Zaawansowany

  • Postów:574
  • GG:
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:NT
Offline

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
  • +
  • -
  • 0
Dołączona grafika

#3 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 07.04.2012 11:38

Owieraj pluginem nvaulta tylko wtedy gdy zapisujesz dane a zamykaj po zapisie.
  • +
  • -
  • 0

#4 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 07.04.2012 11:57

Chciałbym sql ale nie mam tak szybkich baz.

CheQ

możesz rozwinąć wypowiedź?
  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#5 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 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)

g_vault = nvault_open("nazwapliku");

po zapisie zamykasz go.

nvault_close(g_vault)

  • +
  • -
  • 0

#6 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 07.04.2012 13:04

czyli gdzie najlepiej dodać:


nvault_close(g_vault)

do plugin_end?
  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#7 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 07.04.2012 13:13

na końcu funkcji zapisu.
  • +
  • -
  • 0

#8 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

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

  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#9 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 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

}

  • +
  • -
  • 1

#10 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 07.04.2012 19:33

Z z funkcją wczytaj dane też muszę tak zrobić jak z Zapiszdane:


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

  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#11 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 08.04.2012 08:29

nie musisz.
  • +
  • -
  • 0

#12 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

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.

Chciałbym sql ale nie mam tak szybkich baz.

http://www.unixstorm.org/Konta_WWW.html - tragedia, 24zł/rok... http://www.idhosting...akiet=niebieski
  • +
  • -
  • 0

serwer-1.png
IP: ts3.cserwerek.pl


#13 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

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?
  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.





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

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