←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Nie zapisuje się PKT do nVault

Locked

  • +
  • -
NiFreZ's Photo NiFreZ 03.01.2011

TLVn 
To co jedynie jest w nVault to to co powyżej.
Nic Więcej ; / nie zapisuje się chyba to co powinno.

Zrobiłem tak

new player_punktyep[33]


do plugin_init

TypZapisu = register_cvar("amx_save_type", "2") // 1 - SteamID // 2 - Nick
g_vault = nvault_open("punktyep")
gSyncMessage = CreateHudSyncObj()


w Clinet_disconnect

Zapisz(id)
player_punktyep[id] = 0


w client_connect

Wczytaj(id)
PokazInformacje(id)


gdzieś daleko

public Zapisz(id)
{
new name[35]

if(TypZapisu == 1)
get_user_authid(id,name,34)
else if(TypZapisu == 2)
get_user_name(id,name,34)

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",name)
format(vaultdata,255,"%i#%i#",player_punktyep[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public Wczytaj(id)
{
new name[35]

if(TypZapisu == 1)
get_user_authid(id,name,34)
else if(TypZapisu == 2)
get_user_name(id,name,34)

new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",name)
format(vaultdata,255,"%i#%i#",player_punktyep[id])
nvault_get(g_vault,vaultkey,vaultdata,255)

replace_all(vaultdata, 255, "#", " ")

new punktyeps[32]

parse(vaultdata, punktyeps, 31)

player_punktyep[id] = str_to_num(punktyeps)

return PLUGIN_CONTINUE
}


public PokazInformacje(id)
{
set_task(0.1, "PokazInformacje", id)
if(!is_user_alive(id))
return PLUGIN_CONTINUE


set_hudmessage(255, 0, 0, 0.01, 0.31, 0, 6.0, 12.0)
ShowSyncHudMsg(id, gSyncMessage, "[EvoPoints: %s]", player_punktyep[id]);
return PLUGIN_CONTINUE;

}


Możecie mi wskazać błąd ?
Quote

cedriK's Photo cedriK 03.01.2011

19:33:46
wersja "mondra": register_cvar zwraca pointer do cvaru a nie jego wartosc, trzeba ja jeszcze pobrac.

wersja doityourself: zamiast if(TypZapisu == 1) to dajesz if(get_pcvar_num(TypZapisu) == 1) analogicznie zmien w pozostalych, do tego najlepiej to pobrac w raz w plugin init tak samo jak nick/sid pobierac tylko raz w client_connect

Quote

  • +
  • -
AmD's Photo AmD 03.01.2011

Pierwsza sprawa jeśli chcesz sprawdzić wartości pliku vault korzystaj z nVaultEditor...
Kolejna,
format(vaultdata,255,"%i#%i#",player_punktyep[id])
po co 2x %i skoro masz jedną tablice?
Quote

  • +
  • -
NiFreZ's Photo NiFreZ 03.01.2011

do tego najlepiej to pobrac w raz w plugin init tak samo jak nick/sid pobierac tylko raz w client_connect

Tzn ?

Pierwsza sprawa jeśli chcesz sprawdzić wartości pliku vault korzystaj z nVaultEditor...

i tak nie zapisuje .. to jest najwazniejsze

///
format(vaultdata,255,"%i#%i#",player_punktyep[id])

Tzn że zapisuje tylko punkty a nie Pkt i Name ?..
Edited by FreZ, 03.01.2011 19:50.
Quote

  • +
  • -
AmD's Photo AmD 03.01.2011

Name zapisuje linie wyżej...

zrób nową funkcję publiczną:


public plugin_end( )
nvault_close(g_Vault)

oraz
Wczytaj(id) daj do:
public client_putinserver(id)
a z connect usuń.

kolejna sprawa:
format(vaultkey,63,"%s-Mod",name)
możesz zrobić tak:
format(vaultkey,63,"%s",name)


to ma wyglądać tak:
format(vaultdata,255,"%i",player_punktyep[id])


i dla folderu data chmody 777

i jak coś daj Logi...
Edited by AmD, 03.01.2011 20:22.
Quote

  • +
  • -
NiFreZ's Photo NiFreZ 03.01.2011

Inaczej zrobilem i dziala ;]
Quote
Locked