Troche o nVault
G[o]Q
07.05.2010
Chcialbym opisac tutaj jeden ze sposobow zapisu danych jaki mozemy uzyc tworzac nasze pluginy.
1. Opis uzywanych funkcji - opisze funkcje ktore beda nam nie zbedne
2. Przykladowe uzycie:
powiedzmy ze do zapisu i odczytu mamy liczbe fragow gracza ktora musi zostac zapisana przy rozlaczeniu i wczytana przy polaczeniu dodatkowo zapisujemy liczbe dead'ow. Przy okazji jest też pokazany sposób zapisania ciągu znaków, w tym przypadku nick gracza.
(wazniejsze linie maja komentarze)
Użytkownik sebul edytował ten post 19.05.2012 10:33
1. Opis uzywanych funkcji - opisze funkcje ktore beda nam nie zbedne
Spoiler
2. Przykladowe uzycie:
powiedzmy ze do zapisu i odczytu mamy liczbe fragow gracza ktora musi zostac zapisana przy rozlaczeniu i wczytana przy polaczeniu dodatkowo zapisujemy liczbe dead'ow. Przy okazji jest też pokazany sposób zapisania ciągu znaków, w tym przypadku nick gracza.
(wazniejsze linie maja komentarze)
Spoiler
Użytkownik sebul edytował ten post 19.05.2012 10:33
sbstn
07.05.2010
Już prawie miałem napisany tutorial o nVault! Wyprzedziłeś!!
Poradnik ok, ale ja jakoś inaczej używam tego nVaulta. Bez 'nvault_close(plik_vault)' i w ogóle...
Dam plusa
Poradnik ok, ale ja jakoś inaczej używam tego nVaulta. Bez 'nvault_close(plik_vault)' i w ogóle...
Dam plusa
G[o]Q
07.05.2010
w zasadzie jesli sie cos otworzylo to kultura wymaga zeby to zamknac
pisalem ze mozna tez uzywac nvault_get/set przypisujac je do zmiennej
pisalem ze mozna tez uzywac nvault_get/set przypisujac je do zmiennej
sbstn
07.05.2010
Każdy robi jak chcę (albo jak przyzwyczajenie dyktuje!)
Jeśli GoQ pozwolisz, pokażę kod robiony w nVault wg mnie
(Dane dla odmiany zapisują się na steam_id, a nie jak u GoQ na nick
EDIT: Plugin nie działa tak jak GoQ, bo plugin GoQ pokazuje ostatnie nasze fragi sprzed zapisu. Mój kod to takjakby statystyki. Liczy wszystkie fragi i smierci od pierwszego wejscia gracza na serwer do konca
Użytkownik sbstn edytował ten post 07.05.2010 21:26
Jeśli GoQ pozwolisz, pokażę kod robiony w nVault wg mnie
(Dane dla odmiany zapisują się na steam_id, a nie jak u GoQ na nick
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#define PLUGIN "Frags&Deaths"
#define VERSION "1.0"
#define AUTHOR "sbstn for AMXX.pl"
new stats_vault
new player_frags[33]
new player_deaths[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
stats_vault=nvault_open("Frags&Deaths")
register_event("DeathMsg","Death","a")
}
public Load_Data(id)
{
new steam_id[35]
get_user_authid(id,steam_id,34)
new vaultkey[64]
new vaultdata[256]
format(vaultkey,63,"%s-stats",steam_id)
format(vaultdata,255,"%i#%i#",player_frags[id],player_deaths[id])
nvault_get(stats_vault,vaultkey,vaultdata,255)
replace_all(vaultdata,255,"#"," ")
new p_f[32]
new p_d[32]
parse(vaultdata,p_f,31,p_d,31)
player_frags[id]=str_to_num(p_f)
player_deaths[id]=str_to_num(p_d)
return PLUGIN_CONTINUE
}
public Save_Data(id)
{
new steam_id[35]
get_user_authid(id,steam_id,34)
new vaultkey[64]
new vaultdata[256]
format(vaultkey,63,"%s-stats",steam_id)
format(vaultdata,255,"%i#%i#",player_frags[id],player_deaths[id])
nvault_set(stats_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public client_connect(id)
{
Load_Data(id)
}
public client_disconnect(id)
{
Save_Data(id)
}
public Death()
{
new killer=read_data(1)
new victim=read_data(2)
if(killer==victim)
{
return PLUGIN_HANDLED
}
else
{
player_frags[killer]+=1
player_deaths[victim]+=1
}
return PLUGIN_HANDLED
}
public client_putinserver(id)
{
set_task(1.0,"HUD",id,_,_,"b")
}
public HUD(id)
{
set_hudmessage(255,255,255,0.60,0.97,0,8.0,1.5,0.1,0.1,-1)
show_hudmessage(id, "Frags:%i | Deaths:%i",player_frags[id],player_deaths[id])
}
EDIT: Plugin nie działa tak jak GoQ, bo plugin GoQ pokazuje ostatnie nasze fragi sprzed zapisu. Mój kod to takjakby statystyki. Liczy wszystkie fragi i smierci od pierwszego wejscia gracza na serwer do konca
Użytkownik sbstn edytował ten post 07.05.2010 21:26
G[o]Q
07.05.2010
nie chce nic mowic ale dales taki kod jak ja tylko zmieniles nazwy zmiennych i %i na %d
sbstn
07.05.2010
Faktycznie , aczkolwiek chodziło mi o regułę mijania tego 'close'.
Nie ma tego:
... Co do pluginu to możemy odpowiednio dodać kod z tutoriala ( http://amxx.pl/opera...czu-t24028.html ) i mamy funkcję dawającą daną liczbę fragów lub śmierci przez admina (No bo po co to komu? )
Dobra, dobra, bez offtopu, poradnik zajeb****
Użytkownik sbstn edytował ten post 07.05.2010 21:31
Nie ma tego:
if (plik_vault == INVALID_HANDLE)
set_fail_state( "Nie moge otworzyc pliku ");
... Co do pluginu to możemy odpowiednio dodać kod z tutoriala ( http://amxx.pl/opera...czu-t24028.html ) i mamy funkcję dawającą daną liczbę fragów lub śmierci przez admina (No bo po co to komu? )
Dobra, dobra, bez offtopu, poradnik za
Użytkownik sbstn edytował ten post 07.05.2010 21:31
G[o]Q
07.05.2010
mozemy a tamten kod co podales jest poprostu po to zeby wydrukowac blad jesli nie uda sie otwarcie pliku np zle chmody
sbstn
07.05.2010
OK. Porządności trzeba uczyć
EDIT:
Jeszcze jakbyś GoQ jakiś tutek o MySQL naskrobał, to byłby pełen sukces (Przyda się )
Użytkownik sbstn edytował ten post 07.05.2010 21:48
EDIT:
Jeszcze jakbyś GoQ jakiś tutek o MySQL naskrobał, to byłby pełen sukces (Przyda się )
Użytkownik sbstn edytował ten post 07.05.2010 21:48
G[o]Q
07.05.2010
moze kiedys jak zaczne uzywac w pluginach chociaz vault szybsze i stabilniejsze
sbstn
08.05.2010
moze kiedys jak zaczne uzywac w pluginach chociaz vault szybsze i stabilniejsze
A właśnie.. Masz jakiś sposób na robienie rankingów z plików *.vault?
Monsulito
19.06.2010
Mam 1 pytanko, jezeli
stats_vault=nvault_open("Frags&Deaths")To jak nie bedzie pliku samo go utworzy?
Lunatic
17.08.2010
Ja mam takie 2 amatorskie pytanie.
1. Czy nie lepiej pobrać nick raz w public client_connect??
1. Jak zapisuje do nVault exp to jak go poźniej zresetować??
Użytkownik Lunatic edytował ten post 17.08.2010 00:54
1. Czy nie lepiej pobrać nick raz w public client_connect??
1. Jak zapisuje do nVault exp to jak go poźniej zresetować??
Użytkownik Lunatic edytował ten post 17.08.2010 00:54
Vertricus
17.08.2010
1. To plugin pokazowy jak używamy tylko przy zapisie odczytu to nie trza pamięci marnować.
Jednak z drugiej strony gracz moze zmienic nick w trakcie więc lepiej jakby zapisywalo na ten na który wszedł.
2. Tworzysz komendę, w której: to tylko przykład "nvault_set(TWOJE_VAULT,"VERT_EXP","0")" innymi słowy zerujesz . W zależności co masz w jako trzeci argument.
Jednak z drugiej strony gracz moze zmienic nick w trakcie więc lepiej jakby zapisywalo na ten na który wszedł.
2. Tworzysz komendę, w której: to tylko przykład "nvault_set(TWOJE_VAULT,"VERT_EXP","0")" innymi słowy zerujesz . W zależności co masz w jako trzeci argument.
Lunatic
17.08.2010
Dzięki mam jeszcze 1 pytanie jak miałem zapis exp na baze msql to po crashu serwera nie było leveli dopiero po zmianie mapy były czy tutaj będzie tak samo??
Vertricus
17.08.2010
To najprawdopodobniej problem z bazą jak jest dobrze napisany plugin to aniu tu ani tu nie powinno być problemów.
Boluus
12.12.2011
Witam.Chciałbym zmienić zapis z Sql na zpis nvault jak mogę to zrobić ? co musze zrobić z kodem ? lub plikami