Czyszczenie nvault z niepotrzebnych danych
Jak się nazwać
26.08.2012
Plugin na początku mapy szuka w pliku CodMod.vault wpisów w których doświadczenie gracza wynosi 0 i usuwa je. Działa tylko przy zapisie na nick (i tak nikt nie używa zapisu na ip, ew sid ale proszę napisać w temacie to dodam)
Do kompilacji wymaga biblioteki Nvaulut Utility
Link: http://forums.allied...ad.php?t=139584
Brak.
Brak.
Załączone pliki
Jak się nazwać
26.08.2012
Dużo osób nażekało że usuwają im się levele, ponieważ plik jest przeciążony. Ten plugin usuwa zbędne dane czyli odciąża plik w znaczym stopniu.
dasiek
27.08.2012
a nie łatwiej zmienić ZapiszDane w silniku Coda z
na
? Na jedno wyjdzie.
Użytkownik CheQ edytował ten post 27.08.2012 09:28
if(!klasa_gracza[id]) return PLUGIN_CONTINUE;
na
if(!klasa_gracza[id] || doswiadczenie_gracza[id] < 1) return PLUGIN_CONTINUE;
? Na jedno wyjdzie.
Użytkownik CheQ edytował ten post 27.08.2012 09:28
Jak się nazwać
27.08.2012
Dobra wyjdzie na jedno jak od razu na serwie będzie to wgrane, ale jak to dodasz po jakimś czasie to ten plugin wyczyści wszystko gdzie exp = 0
SoPelQ 28.08.2012
@top: Dorobił byś możliwość "Jezeli klasa nie byla uzywany 2miechy to jest kasowny zapis z nvault" i "Jezeli ma ktos poziom nizszy niz 50 lvl, zapis jest czyszczony".
@Cheq: jak zmienie to:
Użytkownik SoPelQ edytował ten post 28.08.2012 01:41
@Cheq: jak zmienie to:
if(!klasa_gracza[id] || doswiadczenie_gracza[id] < 1) return PLUGIN_CONTINUE;Na to:
if(!klasa_gracza[id] || poziom_gracza[id] < 50) return PLUGIN_CONTINUE;To czy jeżeli ktoś bd miał lvl niższy niż 50 nie zapisze go?
Użytkownik SoPelQ edytował ten post 28.08.2012 01:41
Jak się nazwać
28.08.2012
Tu ci czyści co 30 dni: http://amxx.pl/topic...post__p__414821
Co do usuwania poniżej 50 poziomu zmień to:
na
i tyle
Co do usuwania poniżej 50 poziomu zmień to:
if(nexp[0] == '0')
na
new iexp = str_to_num(nexp)
if(iexp < TU_PODAJESZ_ILE_EXPA)
i tyle
dasiek
28.08.2012
@SoPelQ
Powinno. Ale to po prostu nie zapisuje kogoś kto ma Poniżej 50 poziomu a nie Kasuje (choć na jedno wychodzi)
Powinno. Ale to po prostu nie zapisuje kogoś kto ma Poniżej 50 poziomu a nie Kasuje (choć na jedno wychodzi)
SoPelQ 28.08.2012
Gdy tak zrobilem wywalilo all lvle z serwera. Za "TU_PODAJESZ_ILE_EXPA" wpisalem "35000", potem sprawdzilem z "30" w obu przypadkach to samo.Co do usuwania poniżej 50 poziomu zmień to:
if(nexp[0] == '0')
na
new iexp = str_to_num(nexp)
if(iexp < TU_PODAJESZ_ILE_EXPA)
i tyle
Co do samego plugu, gdy sprawdzam zapis .vault poprzez nvault reader są wpisy posiadajace 0 expa.
Użytkownik SoPelQ edytował ten post 28.08.2012 17:50
Jak się nazwać
28.08.2012
Nie możliwe że wywaliło wszystko, widocznie coś źle wgrywasz, sam sprawdzałem dziś rano i wszystko działało.
SoPelQ 28.08.2012
Jak można źle podmienić jedną linijkę
Podmieniłem te linijke:
Co do tego ze nie czysci mi zapisow z vault w orginalnej wersji, pobralem CodMod.vault, otworzylem nvault readerem i tam byly powpisywane 1lvle (0expa)(a plug dzialal juz 2dni), plugin wpisany w plugins.ini
Użytkownik SoPelQ edytował ten post 28.08.2012 20:04
Podmieniłem te linijke:
if(nexp[0] == '0')na to:
new iexp = str_to_num(nexp) if(iexp < 35000)35k expa to około 30lvla na moim codzie. Zmieniłem mapę, jednak po jej zmianie cały plik vault został sformatowany z 500kb zostalo 16b.
Co do tego ze nie czysci mi zapisow z vault w orginalnej wersji, pobralem CodMod.vault, otworzylem nvault readerem i tam byly powpisywane 1lvle (0expa)(a plug dzialal juz 2dni), plugin wpisany w plugins.ini
Użytkownik SoPelQ edytował ten post 28.08.2012 20:04
SoPelQ 28.08.2012
Oczywiście że mam coda nowego, dlatego się dziwie czy tylko mi to nie działa:(
A może sma?
29.08.2012
Od kiedy tablica o długości 1 może przechować 5 znaków?
Zmień nexp[1] na nexp[5]...
Warunek ZAWSZE był prawdą, bo największa cyfra to 9, a 9 < 35000
;]
PS Levele nie do odzyskania, jeżeli nie masz kopii zapasowej...
PPS @SoPelQ: Problem wystąpił tylko u Ciebie, bo tylko Ty edytowałeś tą linijkę
PPPS Ktoś niezłą wtopę zaliczył ;D
Zmień nexp[1] na nexp[5]...
Warunek ZAWSZE był prawdą, bo największa cyfra to 9, a 9 < 35000
;]
PS Levele nie do odzyskania, jeżeli nie masz kopii zapasowej...
PPS @SoPelQ: Problem wystąpił tylko u Ciebie, bo tylko Ty edytowałeś tą linijkę
PPPS Ktoś niezłą wtopę zaliczył ;D
K!113r
29.08.2012
Wtopa ostra
Plugin przydatny jeżeli ma już ktoś śmietnik w pliku .vault, bo jak CzeQ napisał można zapobiegać zamiast leczyć
Plugin przydatny jeżeli ma już ktoś śmietnik w pliku .vault, bo jak CzeQ napisał można zapobiegać zamiast leczyć
Jak się nazwać
29.08.2012
A może sma?
Racja nie zauwazyłem tego Plugin pisałem z myślą o 0 więc jeden znak mi wystarczył.
Racja nie zauwazyłem tego Plugin pisałem z myślą o 0 więc jeden znak mi wystarczył.
adif11 19.01.2013
Witam czy mógł by ktoś napisać jak zrobić aby usuwało postacie poniżej 200 expa? zmieniłem wszystko jak podał a może sma ale nadal usuwane są postacie :< powyżej 1000 expa
Jak się nazwać
28.01.2013
Wersja sterowana przez cvar w którym ustalamy poniżej jakiej ilości expa ma usuwać (domyślnie cod_autoclean 1 czyli poniżej 1 expa będzie usuwało):
/* Script generated by Pawn Studio */ #include <amxmodx> #include <nvault_util> #define PLUGIN "Nvault auto cleaner (for cod mod)" #define AUTHOR "Pusty [b]" #define VERSION "1.0" new vault new cvar_pointer public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) cvar_pointer = register_cvar("cod_autoclean", "1") } public plugin_precache() AutoClean(); public AutoClean() { vault = nvault_open("CodMod") new iVault = nvault_util_open("CodMod") nvault_util_readall(iVault, "fwd_ReadVault") nvault_util_close(iVault) nvault_close(vault) } public fwd_ReadVault( iCurrent , iTotal , const szKey[] , const szVal[] , iTimeStamp , const Data[] , iSize ) { new name[48], class[48], reszta[1], nexp[7], exp; strtok(szKey, name, charsmax(name), class, charsmax(class), '-') strtok(class, class, charsmax(class), reszta, charsmax(reszta), '-') strtok(szVal[1], nexp, charsmax(nexp), reszta, charsmax(reszta), '#') exp = str_to_num(nexp) if(exp < get_pcvar_num(cvar_pointer)) { new vaultkey[64] format(vaultkey, charsmax(vaultkey),"%s-%s-1-cod", name, class); nvault_remove(vault, vaultkey) } }