PDA

View Full Version : nVault problem ,save and load


ugousek
08-13-2013, 17:46
Hi Guys, i have problem with save and load data from nvault :/ please help me whats wrong public NactiData(id)
{
new vaultkey[64],vaultdata[512];
new authid[64];
get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
nvault_get(expmod,vaultkey,vaultdata,511);
replace_all(vaultdata,256,"#"," ");
new jeden[100],dwa[100],trzy[100],cztery[100],piec[100],szesc[100],siedem[100],osiem[100],dziew[100],dzies[100],jedenascie[100]
parse(vaultdata,jeden,99,dwa,99,trzy,99,czter y,99,piec,99,szesc,99,siedem,99,osiem,99,dzie w,99,dzies,99,jedenascie,99)
PlayerLevel[id] = str_to_num(jeden);
PlayerXP[id] = str_to_num(dwa);
stribro[id] = str_to_num(trzy);
zlato[id] = str_to_num(cztery);
bronz[id] = str_to_num(piec);
g_armorLevel[id] = str_to_num(szesc);
g_rychlostLevel[id] = str_to_num(siedem)
g_zdraviLevel[id] = str_to_num(osiem);
g_silaLevel[id] = str_to_num(dziew);
g_gravitaceLevel[id] = str_to_num(dzies)
g_neviditelnostLevel[id] = str_to_num(jedenascie)
}
public ZapisData(id)
{
new vaultkey[64],vaultdata[512];
new authid[64];

get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
format(vaultdata,511,"%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
nvault_set(expmod,vaultkey,vaultdata)
}
Debug post :
L 08/13/2013 - 21:27:30: [nVault] Invalid vault id: 0
L 08/13/2013 - 21:27:30: [AMXX] Displaying debug trace (plugin "4gory.amxx")
L 08/13/2013 - 21:27:30: [AMXX] Run time error 10: native error (native "nvault_get")
L 08/13/2013 - 21:27:30: [AMXX] [0] 4gory.sma::NactiData (line 738)
L 08/13/2013 - 21:27:30: [AMXX] [1] 4gory.sma::client_authorized (line 241)
L 08/13/2013 - 21:27:32: [CSTRIKE] Invalid player 2
L 08/13/2013 - 21:27:32: [AMXX] Displaying debug trace (plugin "4gory.amxx")
L 08/13/2013 - 21:27:32: [AMXX] Run time error 10: native error (native "cs_set_user_armor")
L 08/13/2013 - 21:27:32: [AMXX] [0] 4gory.sma::dejatributy (line 267)
L 08/13/2013 - 21:27:32: [AMXX] [1] 4gory.sma::afterspawn (line 124)[/PHP] Thx for all

Black Rose
08-13-2013, 18:16
"Invalid vault id: 0"
Usually solved with:

if ( ! is_user_connected(id) )
return;

ugousek
08-14-2013, 04:06
"Invalid vault id: 0"
Usually solved with:

if ( ! is_user_connected(id) )
return;

Like this ?
public ZapisData(id)
{

if ( ! is_user_connected(id) )
return;

new vaultkey[64],vaultdata[512];
new authid[64];

get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
format(vaultdata,511,"%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
nvault_set(expmod,vaultkey,vaultdata)
}

MrKiller2010
08-14-2013, 04:11
Like this ?
public ZapisData(id)
{

if ( ! is_user_connected(id) )
return;

new vaultkey[64],vaultdata[512];
new authid[64];

get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
format(vaultdata,511,"%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
nvault_set(expmod,vaultkey,vaultdata)
}

Yes thats right.

ugousek
08-14-2013, 04:27
But it does not work :(

Shooting King
08-14-2013, 04:30
post full code here.

ugousek
08-14-2013, 04:59
Ok #include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <engine>
#include <nvault>

#define PREMIUM ADMIN_LEVEL_H
#define VERSION "0.0.1"
#define PLUGIN "4Story mod"
#define MaxLevel 93
new const LEVELS[93] =
{
1000,2250,3500,5000,7000,10000,14000,19000,25 000,31000,38000,46000,55000,65000,76000,
88000,101000,115000,130000,146000,174000,1920 00,211000,231000,252000,274000,297000,321000, 346000,373000,400000,
428000,457000,487000,518000,550000,583000,617 000,657000,686000,722000,759000,797000,836000 ,876000,917000,959000,
1002000,1046000,1091000,1137000,1185000,12340 00,1284000,1335000,1387000,1440000,1494000,15 49000,1605000,1662000,
1719000,1777000,1836000,1896000,1957000,20190 00,2082000,2146000,2211000,2277000,2344000,24 11000,2479000,2549000,
2620000,2692000,2765000,2839000,2914000,29900 00,3067000,3145000,3224000,3304000,3385000,34 06700,3551000,3636000,
3700000,3950000,4300000,5000000
}
enum { NONE = 0, Lukostrelec, Bojovnik, Zarikavac, Kouzelnik }
new const postavy[][] = {"Nevybrano",

"Lukostrelec",
"Bojovnik",
"Zarikavac",
"Kouzelnik"
}

new const prefix[] = "!g[4Story]!y"
new zlato[33], stribro[33], bronz[33]
new PlayerXP[33],PlayerLevel[33]
new chat_zpravy[33] = 1, bodyvlp[33]
new g_zdraviLevel[33], g_rychlostLevel[33], g_neviditelnostLevel[33], g_silaLevel[33], g_gravitaceLevel[33], g_armorLevel[33]
new hud_zpravy[33] = 1
new Float:HPcka[33]
new Text_Msg, WinningTeam
new Trie: tc
new expmod
new erychlosti[33], erustu[33], esily[33], chatul[33]
new klasa_gracza[33];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, "uGO" );
register_clcmd("say /player", "function");
register_clcmd("say /menu", "herne_menu");
register_clcmd("say /nastaveni", "nastaveni");
register_clcmd("say /reset", "reset");
register_clcmd("say /vmenu", "v_menu")
register_clcmd("say /shop", "shop")
register_clcmd("say /postavy", "PostavyMenu")
RegisterHam(Ham_Spawn,"player","afterspawn",1);
RegisterHam(Ham_TakeDamage, "player", "nastavDamage", 0)
register_event("CurWeapon" , "cur_weapon" , "be" , "1=1");
register_message(get_user_msgid("TextMsg"), "msgTextMsg");
register_logevent("konec_kola", 2,"0=World triggered", "1=Round_End")
expmod = nvault_open("4expmod")

tc = TrieCreate()
TrieSetCell(tc, "%!MRAD_terwin" , register_cvar("msg_t_win" , "Valorianci vyhrali nad Derionem!"))
TrieSetCell(tc, "%!MRAD_ctwin" , register_cvar("msg_ct_win" , "Derionci vyhrali nad Valorianem!"))
TrieSetCell(tc, "%!MRAD_rounddraw" , register_cvar("msg_rounddraw" , "Nikdo nevyhral!"))
register_message(get_user_msgid("SendAudio"), "Messages_Audio")

Text_Msg = get_user_msgid("TextMsg")
}
public PostavyMenu(id)
{
new menupm = menu_create("Vyber si postavu:", "PostavyMenu_handler");
for(new i=1; i<sizeof postavy; i++)
menu_additem(menupm, postavy[i]);
menu_setprop(menupm, MPROP_EXITNAME, "Zavrit");
menu_setprop(menupm, MPROP_BACKNAME, "Predchozi strana");
menu_setprop(menupm, MPROP_NEXTNAME, "Dalsi strana");
menu_display(id, menupm);
}
public PostavyMenu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
ChatColor(id,"%s Dale", prefix)
menu_display(id, menu);

return PLUGIN_CONTINUE;
}
public vyber_classu(id)
{
new menu = menu_create("Vyber Postav:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i<sizeof postavy; i++)
{
menu_additem(menu, klasa);
}


menu_setprop(menu, MPROP_EXITNAME, "Zavrit");
menu_setprop(menu, MPROP_BACKNAME, "Predchozi strana");
menu_setprop(menu, MPROP_NEXTNAME, "Dalsi strana");
menu_display(id, menu);

return PLUGIN_CONTINUE;
}

public WybierzKlase_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
for(new i=1; i<sizeof postavy; i++)
{
item = i;
break;
}
}
public konec_kola(id)
{
new vipwin = PlayerLevel[id]*2
new win = PlayerLevel[id]*2

if(get_user_flags(id) & PREMIUM)
{
if(is_user_alive(id))
{
if(chat_zpravy[id] == 1)
{
ChatColor(id,"%s Vyborne ziskal si odmenu za preziti kola. [%i stribra]", prefix, vipwin)
stribro[id] += vipwin
}
}
}
else
{
if(is_user_alive(id))
{
ChatColor(id,"%s Vyborne ziskal si odmenu za preziti kola. [%i stribra]",prefix, win)
stribro[id] += win
}
}
}
public plugin_end()
{
nvault_close(expmod);
}
public afterspawn(id)
{
ChatColor(id,"%s Tumas atributy!",prefix)
dejatributy(id)
}
public shop(id)
{
new espeedcost = PlayerLevel[id]
new esilycost = PlayerLevel[id]*2
new erustucost = PlayerLevel[id]*3
new chatulcost = PlayerLevel[id]*4

static item[64]

formatex(item, charsmax(item), "\y[\g4Story Shop\y]")
new menu = menu_create(item, "shop_handle")

formatex(item, charsmax(item), "\rE\glixir \rr\gychlosti(+50) [Cena %i zlata]", espeedcost)
menu_additem(menu, item, "", 0)

formatex(item, charsmax(item), "\rE\glixir \rs\gily(+3%) [Cena %i zlata]", esilycost)
menu_additem(menu, item, "", 0)

formatex(item, charsmax(item), "\rE\glixir \rr\gustu(+30XP ke vsemu) [Cena %i zlata]", erustucost)
menu_additem(menu, item, "", 0)

formatex(item, charsmax(item), "Zradce Chatul [Cena %i zlata]", chatulcost)
menu_additem(menu, item, "", 0)

formatex(item, charsmax(item), "\yNastaveni \yVyhod")
menu_additem(menu, item, "5", 0)

formatex(item, charsmax(item), "\yZakoupit \rVIP")
menu_additem(menu, item, "6", 0)


menu_display(id, menu, 0)


menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Zpet");
menu_setprop(menu, MPROP_NEXTNAME, "Dalsi strana");
menu_setprop(menu, MPROP_EXITNAME, "Ukoncit");
menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");

}
public shop_handle(id, menu, item)
{
switch(item)
{
case 0:
{
if(!erychlosti[id])
{
erychlosti[id] = 1
}
else
{
ChatColor(id,"%s Uz mas koupeny elixir rychlosti!",prefix)
}
}
case 1:
{
if(!esily[id])
{
esily[id] = 1
}
else
{
ChatColor(id,"%s Uz mas koupeny elixir sily!",prefix)
}
}
case 2:
{
if(!erustu[id])
{
erustu[id] = 1
}
else
{
ChatColor(id,"%s Uz mas koupeny elixir rustu!",prefix)
}
}
case 3:
{
if(!chatul[id])
{
chatul[id] = 1
}
else
{
ChatColor(id,"%s Uz si Zradce Chatul!",prefix)
}
}

}

}
public Messages_Audio(Message_Index, Message_Dest, Index)
{
if(!Index)
{
new Audio[14], won_msg[120]
get_msg_arg_string(2, Audio, charsmax(Audio))

if(TrieGetCell(tc, Audio, WinningTeam) && get_pcvar_string(WinningTeam, won_msg, charsmax(won_msg)))
{
if(get_msg_block(Text_Msg) == BLOCK_NOT)
{
set_msg_block(Text_Msg, BLOCK_ONCE)
client_print(0, print_center, "%s", won_msg)
}

return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public client_authorized(id)
{
NactiData(id)
chat_zpravy[id] = 1
hud_zpravy[id] = 1
ChatColor(id,"%s Vitej na serveru!",prefix)
}
public client_disconnect(id)
{
ZapisData(id)
}
public cur_weapon(id)
{
new Float:SPLevel = float(g_rychlostLevel[id])
SPLevel*=2
set_user_maxspeed(id, 250.0+SPLevel)
}
public nastavDamage(id, inflictor, attacker,Float:damage, damagebits)
{
SetHamParamFloat(4,damage+(damage*(g_silaLeve l[attacker]*0.015)))
}
public dejatributy(id)
{
new armor = g_armorLevel[id]*2
new hpf = (get_user_health(id)+(g_zdraviLevel[id]*2))
HPcka[id] = float(hpf)

set_pev(id, pev_health, HPcka[id])
cs_set_user_armor(id, armor, CS_ARMOR_VESTHELM)
set_pev(id, pev_gravity, 1-(0.005*g_gravitaceLevel[id]))
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 255-(g_neviditelnostLevel[id]*2))
}
public v_menu(id)
{
new menu=menu_create("\y[Vylepsovaci menu]", "nst_handle")

menu_additem(menu, "\wZdravi")
menu_additem(menu, "\wRychlost")
menu_additem(menu, "\wNeviditelnost")
menu_additem(menu, "\wSila")
menu_additem(menu, "\wGravitace")
menu_additem(menu, "\wArmor^n")

menu_setprop(menu,MPROP_EXITNAME, "Zavrit")
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu)

}
public nst_handle(id,menu,item)
{
switch(item)
{
case 0:
{
if(g_rychlostLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_zdraviLevel[id]++
v_menu(id)
new Float:HPadd = float(get_user_health(id)+2)
set_pev(id, pev_health, HPadd)
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 1:
{
if(g_rychlostLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_rychlostLevel[id]++
v_menu(id)
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 2:
{
if(g_neviditelnostLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_neviditelnostLevel[id]++
v_menu(id)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 255-(g_neviditelnostLevel[id]*2))
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 3:
{
if(g_silaLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_silaLevel[id]++
v_menu(id)
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 4:
{
if(g_gravitaceLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_gravitaceLevel[id]++
v_menu(id)
set_pev(id, pev_gravity, 1-(0.005*g_gravitaceLevel[id]))
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 5:
{
if(g_armorLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_armorLevel[id]++
v_menu(id)
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
}
return PLUGIN_HANDLED
}

public nastaveni(id)
{
new m = menu_create("Nastaveni","n_handler")
if(chat_zpravy[id] == 0)
{
menu_additem(m,"Zapnout Chat")
}
else
{
menu_additem(m,"Vypnout Chat")
}
if(hud_zpravy[id] == 0)
{
menu_additem(m,"Zapnout HUD zpravy")
}
else
{
menu_additem(m,"Vypnout HUD zpravy")
}
menu_display(id,m)

}
public n_handler(id,menu,item)
{
switch(item)
{
case 0:
{
if(chat_zpravy[id] == 0)
{
chat_zpravy[id] = 1
nastaveni(id)
}
else
{
chat_zpravy[id] = 0
nastaveni(id)
}
}
case 1:
{
if(hud_zpravy[id] == 0)
{
hud_zpravy[id] = 1
nastaveni(id)
}
else
{
hud_zpravy[id] = 0
nastaveni(id)
}

}
}
}
public client_death(attacker, victim, wpnindex, hitplace, TK)
{
new viphsodmena = PlayerLevel[attacker]*4
new hsodmena = PlayerLevel[attacker]*2
new vipodmena = PlayerLevel[attacker]*2
new odmena = PlayerLevel[attacker]*1

if(get_user_team(victim) == 2)
{
if(hitplace == 1)
{
if(get_user_flags(attacker) & PREMIUM)
{
PlayerXP[attacker] += 250
stribro[attacker] += viphsodmena
if(chat_zpravy[attacker] == 1)
{
ChatColor(attacker,"%s Vyborne zabil si Derionce a ziskal si !g250!tXP a !g%i!t stribra!",prefix, viphsodmena)
}
}
else
{
PlayerXP[attacker] += 200
stribro[attacker] += hsodmena
ChatColor(attacker,"%s Vyborne zabil si Derionce a ziskal si !g200!tXP a !g%i!t stribra",prefix, hsodmena)
}
}
else
{
if(get_user_flags(attacker) & PREMIUM)
{
PlayerXP[attacker] += 200
stribro[attacker] += vipodmena
if(chat_zpravy[attacker] == 1)
{
ChatColor(attacker,"%s Vyborne zabil si Derionce a ziskal si !g200!tXP a !g%i!t stribra",prefix, vipodmena)
}
}
else
{
stribro[attacker] += odmena
PlayerXP[attacker] += 150
ChatColor(attacker,"%s Vyborne zabil si Derionce a ziskal si !g150!tXP a !g%i!t stribra",prefix, odmena)
}
}
}
if(get_user_team(victim) == 1)
{
if(hitplace == 1)
{
if(get_user_flags(attacker) & PREMIUM)
{
PlayerXP[attacker] += 250
stribro[attacker] += viphsodmena
if(chat_zpravy[attacker] == 1)
{
ChatColor(attacker,"%s Vyborne zabil si Valoriance a ziskal si !g250!tXP a !g%i!t stribra",prefix, viphsodmena)
}
}
else
{
stribro[attacker] += hsodmena
PlayerXP[attacker] += 200
ChatColor(attacker,"%s Vyborne zabil si Valoriance a ziskal si !g200!tXP a !g%i!t stribra",prefix, hsodmena)
}
}
else
{
if(get_user_flags(attacker) & PREMIUM)
{
stribro[attacker] += vipodmena
PlayerXP[attacker] += 200
if(chat_zpravy[attacker] == 1)
{
ChatColor(attacker,"%s Vyborne zabil si Valoriance a ziskal si !g200!tXP a !g%i!t stribra",prefix, vipodmena)
}
}
else
{
stribro[attacker] += odmena
PlayerXP[attacker] += 150
ChatColor(attacker,"%s Vyborne zabil si Valoriance a ziskal si !g150!tXP a !g%i!t stribra",prefix, odmena)
}
}
}
}
public kontrolalvl(id)
{
if(PlayerLevel[id] == MaxLevel)
{
return PLUGIN_HANDLED;
}
else
{
if(PlayerXP[id] >= LEVELS[PlayerLevel[id]])
{
PlayerLevel[id] += 1;
bodyvlp[id] += 2
v_menu(id)
ChatColor(id,"%s Nyni jsi level %i ",prefix, PlayerLevel[id])
new name[32]
get_user_info(id, "name", name, 31)
ChatColor(0,"%s Hrac %s ziskal level %i ",prefix, name, PlayerLevel[id]);
}
}
return PLUGIN_HANDLED
}
public herne_menu(id)
{
if(is_user_alive(id))
{
new hm = menu_create("Prachy","herne_menu_handle")
menu_additem(hm,"Goldu")
menu_additem(hm,"Stribro")
menu_additem(hm,"Bronzu")
menu_display(id,hm)
}
else
{
ChatColor(id,"%s Na otvereni menu musis byt nazivu",prefix)
}
}
public reset(id)
{
PlayerLevel[id] = 0
PlayerXP[id] = 0
}
public herne_menu_handle(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
switch(item)
{
case 0:
{
PlayerXP[id] += 500
zlato[id]+=3
herne_menu(id)
client_print(id, print_chat, "+3 +500")
}
case 1:
{
stribro[id]+=90
herne_menu(id)
client_print(id, print_chat, "+90")
}
case 2:
{
bronz[id]+=90
herne_menu(id)
client_print(id, print_chat, "+90")
}
}
return PLUGIN_HANDLED
}
public client_PostThink(id)
{
if(bronz[id]>=100)
{
bronz[id]-=100
stribro[id]+=1
}
if(stribro[id]>=100)
{
stribro[id]-=100
zlato[id]+=1
}
kontrolalvl(id)
if(hud_zpravy[id] == 1)
{
hud_status(id)
}
}
public bomb_planted(id)
{
new vipodmena = PlayerLevel[id]*2
new odmena = PlayerLevel[id]
if(get_user_flags(id) & PREMIUM)
{
if(chat_zpravy[id] == 1)
{
ChatColor(id,"%s Vyborne plantnul si bombu, ziskal !g%i !tstribra a 100XP!",prefix, vipodmena)
stribro[id] += vipodmena
PlayerXP[id] += 100

}
}
else
{
ChatColor(id,"%s Vyborne plantnul si bombu, ziskal §g%i !tstribra a !g50!tXP!",prefix, odmena)
stribro[id] += odmena
PlayerXP[id] += 50
}
}
public bomb_defused(id)
{
new vipodmena = PlayerLevel[id]*2
new odmena = PlayerLevel[id]
if(get_user_flags(id) & PREMIUM)
{
if(chat_zpravy[id] == 1)
{
ChatColor(id,"%s Vyborne defusnul si bombu, ziskal si !g%i !tstribra a !g100!tXP !",prefix,vipodmena)
stribro[id] += vipodmena
PlayerXP[id] += 100
}
}
else
{
ChatColor(id,"%s Vyborne defusnul si bombu, ziskal si !g%i !tstribra a !g50!tXP !",prefix,odmena)
stribro[id] += odmena
PlayerXP[id] += 50
}
}

public hud_status(id)
{
new amount = PlayerLevel[id];
set_hudmessage(255, 255, 0, 0.02, 0.15, 0, 6.0, 0.0)
show_hudmessage(id, "[Zlato %i]^n[Stribro %i]^n[Bronz %i]^n[Level %i]^n[XP %i/%i]^n[Body vylepsovani %i]", zlato[id], stribro[id], bronz[id],PlayerLevel[id],PlayerXP[id],LEVELS[amount],bodyvlp[id])
}
public function(id)
{
new menu = menu_create("\rPlayer Menu:", "menu_handler");

new name[32], id_string[5];
new players[32], pnum, i, pid;
get_players(players, pnum);
for( i=0; i<pnum; i++ )
{
pid = players[i];
get_user_name(pid, name, 31);
num_to_str(pid, id_string, 4);
menu_additem(menu, name, id_string);
}
menu_display(id, menu, 0);
}
public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);

new pid = str_to_num(data);
PlayerXP[pid] += 20000

menu_destroy(menu);
return PLUGIN_HANDLED;
}

public NactiData(id)
{
new vaultkey[64],vaultdata[512];
new authid[64];
get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
nvault_get(expmod,vaultkey,vaultdata,511);
replace_all(vaultdata,256,"#"," ");
new jeden[100],dwa[100],trzy[100],cztery[100],piec[100],szesc[100],siedem[100],osiem[100],dziew[100],dzies[100],jedenascie[100]
parse(vaultdata,jeden,99,dwa,99,trzy,99,czter y,99,piec,99,szesc,99,siedem,99,osiem,99,dzie w,99,dzies,99,jedenascie,99)
PlayerLevel[id] = str_to_num(jeden);
PlayerXP[id] = str_to_num(dwa);
stribro[id] = str_to_num(trzy);
zlato[id] = str_to_num(cztery);
bronz[id] = str_to_num(piec);
g_armorLevel[id] = str_to_num(szesc);
g_rychlostLevel[id] = str_to_num(siedem)
g_zdraviLevel[id] = str_to_num(osiem);
g_silaLevel[id] = str_to_num(dziew);
g_gravitaceLevel[id] = str_to_num(dzies)
g_neviditelnostLevel[id] = str_to_num(jedenascie)
}
public ZapisData(id)
{

if ( ! is_user_connected(id) )
return;

new vaultkey[64],vaultdata[512];
new authid[64];

get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
format(vaultdata,511,"%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
nvault_set(expmod,vaultkey,vaultdata)
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!y", "^1" )
replace_all( msg, 190, "!t", "^3" )


if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for(new i = 0; i < count; i++)
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end( )
}
}
}
}

Shooting King
08-14-2013, 08:17
Try This #include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <engine>
#include <nvault>

#define PREMIUM ADMIN_LEVEL_H
#define VERSION "0.0.1"
#define PLUGIN "4Story mod"
#define MaxLevel 93
new const LEVELS[93] =
{
1000,2250,3500,5000,7000,10000,14000,19000,25 000,31000,38000,46000,55000,65000,76000,
88000,101000,115000,130000,146000,174000,1920 00,211000,231000,252000,274000,297000,321000, 346000,373000,400000,
428000,457000,487000,518000,550000,583000,617 000,657000,686000,722000,759000,797000,836000 ,876000,917000,959000,
1002000,1046000,1091000,1137000,1185000,12340 00,1284000,1335000,1387000,1440000,1494000,15 49000,1605000,1662000,
1719000,1777000,1836000,1896000,1957000,20190 00,2082000,2146000,2211000,2277000,2344000,24 11000,2479000,2549000,
2620000,2692000,2765000,2839000,2914000,29900 00,3067000,3145000,3224000,3304000,3385000,34 06700,3551000,3636000,
3700000,3950000,4300000,5000000
}
enum { NONE = 0, Lukostrelec, Bojovnik, Zarikavac, Kouzelnik }
new const postavy[][] = {"Nevybrano",

"Lukostrelec",
"Bojovnik",
"Zarikavac",
"Kouzelnik"
}

new const prefix[] = "!g[4Story]!y"
new zlato[33], stribro[33], bronz[33]
new PlayerXP[33],PlayerLevel[33]
new chat_zpravy[33] = 1, bodyvlp[33]
new g_zdraviLevel[33], g_rychlostLevel[33], g_neviditelnostLevel[33], g_silaLevel[33], g_gravitaceLevel[33], g_armorLevel[33]
new hud_zpravy[33] = 1
new Float:HPcka[33]
new Text_Msg, WinningTeam
new Trie: tc
new expmod
new erychlosti[33], erustu[33], esily[33], chatul[33]
//new klasa_gracza[33];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, "uGO" );
register_clcmd("say /player", "function");
register_clcmd("say /menu", "herne_menu");
register_clcmd("say /nastaveni", "nastaveni");
register_clcmd("say /reset", "reset");
register_clcmd("say /vmenu", "v_menu")
register_clcmd("say /shop", "shop")
register_clcmd("say /postavy", "PostavyMenu")
RegisterHam(Ham_Spawn,"player","afterspawn",1);
RegisterHam(Ham_TakeDamage, "player", "nastavDamage", 0)
register_event("CurWeapon" , "cur_weapon" , "be" , "1=1");
//register_message(get_user_msgid("TextMsg"), "msgTextMsg");
register_logevent("konec_kola", 2,"0=World triggered", "1=Round_End")
expmod = nvault_open("4expmod")

tc = TrieCreate()
TrieSetCell(tc, "%!MRAD_terwin" , register_cvar("msg_t_win" , "Valorianci vyhrali nad Derionem!"))
TrieSetCell(tc, "%!MRAD_ctwin" , register_cvar("msg_ct_win" , "Derionci vyhrali nad Valorianem!"))
TrieSetCell(tc, "%!MRAD_rounddraw" , register_cvar("msg_rounddraw" , "Nikdo nevyhral!"))
register_message(get_user_msgid("SendAudio"), "Messages_Audio")

Text_Msg = get_user_msgid("TextMsg")
}

public PostavyMenu(id)
{
new menupm = menu_create("Vyber si postavu:", "PostavyMenu_handler");
for(new i=1; i<sizeof postavy; i++)
menu_additem(menupm, postavy[i]);
menu_setprop(menupm, MPROP_EXITNAME, "Zavrit");
menu_setprop(menupm, MPROP_BACKNAME, "Predchozi strana");
menu_setprop(menupm, MPROP_NEXTNAME, "Dalsi strana");
menu_display(id, menupm);
}

public PostavyMenu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
ChatColor(id,"%s Dale", prefix)
menu_display(id, menu);

return PLUGIN_CONTINUE;
}

public vyber_classu(id)
{
new menu = menu_create("Vyber Postav:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i<sizeof postavy; i++)
{
menu_additem(menu, klasa);
}


menu_setprop(menu, MPROP_EXITNAME, "Zavrit");
menu_setprop(menu, MPROP_BACKNAME, "Predchozi strana");
menu_setprop(menu, MPROP_NEXTNAME, "Dalsi strana");
menu_display(id, menu);

return PLUGIN_CONTINUE;
}

public WybierzKlase_Handle(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
for(new i=1; i<sizeof postavy; i++)
{
item = i;
break;
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}

public konec_kola(id)
{
new vipwin = PlayerLevel[id]*2
new win = PlayerLevel[id]*2

if(get_user_flags(id) & PREMIUM)
{
if(is_user_alive(id))
{
if(chat_zpravy[id] == 1)
{
ChatColor(id,"%s Vyborne ziskal si odmenu za preziti kola. [%i stribra]", prefix, vipwin)
stribro[id] += vipwin
}
}
}
else
{
if(is_user_alive(id))
{
ChatColor(id,"%s Vyborne ziskal si odmenu za preziti kola. [%i stribra]",prefix, win)
stribro[id] += win
}
}
}

public plugin_end()
{
nvault_close(expmod);
}

public afterspawn(id)
{
ChatColor(id,"%s Tumas atributy!",prefix)
dejatributy(id)
}

public shop(id)
{
new espeedcost = PlayerLevel[id]
new esilycost = PlayerLevel[id]*2
new erustucost = PlayerLevel[id]*3
new chatulcost = PlayerLevel[id]*4

static item[64]

formatex(item, charsmax(item), "\y[\g4Story Shop\y]")
new menu = menu_create(item, "shop_handle")

formatex(item, charsmax(item), "\rE\glixir \rr\gychlosti(+50) [Cena %i zlata]", espeedcost)
menu_additem(menu, item, "", 0)

formatex(item, charsmax(item), "\rE\glixir \rs\gily(+3%) [Cena %i zlata]", esilycost)
menu_additem(menu, item, "", 0)

formatex(item, charsmax(item), "\rE\glixir \rr\gustu(+30XP ke vsemu) [Cena %i zlata]", erustucost)
menu_additem(menu, item, "", 0)

formatex(item, charsmax(item), "Zradce Chatul [Cena %i zlata]", chatulcost)
menu_additem(menu, item, "", 0)

formatex(item, charsmax(item), "\yNastaveni \yVyhod")
menu_additem(menu, item, "5", 0)

formatex(item, charsmax(item), "\yZakoupit \rVIP")
menu_additem(menu, item, "6", 0)


menu_display(id, menu, 0)


menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_setprop(menu, MPROP_BACKNAME, "Zpet");
menu_setprop(menu, MPROP_NEXTNAME, "Dalsi strana");
menu_setprop(menu, MPROP_EXITNAME, "Ukoncit");
menu_setprop(menu, MPROP_NUMBER_COLOR, "\w");

}

public shop_handle(id, menu, item)
{
switch(item)
{
case 0:
{
if(!erychlosti[id])
{
erychlosti[id] = 1
}
else
{
ChatColor(id,"%s Uz mas koupeny elixir rychlosti!",prefix)
}
}
case 1:
{
if(!esily[id])
{
esily[id] = 1
}
else
{
ChatColor(id,"%s Uz mas koupeny elixir sily!",prefix)
}
}
case 2:
{
if(!erustu[id])
{
erustu[id] = 1
}
else
{
ChatColor(id,"%s Uz mas koupeny elixir rustu!",prefix)
}
}
case 3:
{
if(!chatul[id])
{
chatul[id] = 1
}
else
{
ChatColor(id,"%s Uz si Zradce Chatul!",prefix)
}
}

}

}

public Messages_Audio(Message_Index, Message_Dest, Index)
{
if(!Index)
{
new Audio[14], won_msg[120]
get_msg_arg_string(2, Audio, charsmax(Audio))

if(TrieGetCell(tc, Audio, WinningTeam) && get_pcvar_string(WinningTeam, won_msg, charsmax(won_msg)))
{
if(get_msg_block(Text_Msg) == BLOCK_NOT)
{
set_msg_block(Text_Msg, BLOCK_ONCE)
client_print(0, print_center, "%s", won_msg)
}

return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}

public client_authorized(id)
{
NactiData(id)
chat_zpravy[id] = 1
hud_zpravy[id] = 1
ChatColor(id,"%s Vitej na serveru!",prefix)
}

public client_disconnect(id)
{
ZapisData(id)
}

public cur_weapon(id)
{
new Float:SPLevel = float(g_rychlostLevel[id])
SPLevel*=2
set_user_maxspeed(id, 250.0+SPLevel)
}

public nastavDamage(id, inflictor, attacker,Float:damage, damagebits)
{
SetHamParamFloat(4,damage+(damage*(g_silaLeve l[attacker]*0.015)))
}

public dejatributy(id)
{
if( is_user_connected(id) )
{
new armor = g_armorLevel[id]*2
new hpf = (get_user_health(id)+(g_zdraviLevel[id]*2))
HPcka[id] = float(hpf)

set_pev(id, pev_health, HPcka[id])
cs_set_user_armor(id, armor, CS_ARMOR_VESTHELM)
set_pev(id, pev_gravity, 1-(0.005*g_gravitaceLevel[id]))
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 255-(g_neviditelnostLevel[id]*2))
}
}

public v_menu(id)
{
new menu=menu_create("\y[Vylepsovaci menu]", "nst_handle")

menu_additem(menu, "\wZdravi")
menu_additem(menu, "\wRychlost")
menu_additem(menu, "\wNeviditelnost")
menu_additem(menu, "\wSila")
menu_additem(menu, "\wGravitace")
menu_additem(menu, "\wArmor^n")

menu_setprop(menu,MPROP_EXITNAME, "Zavrit")
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu)

}

public nst_handle(id,menu,item)
{
switch(item)
{
case 0:
{
if(g_rychlostLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_zdraviLevel[id]++
v_menu(id)
new Float:HPadd = float(get_user_health(id)+2)
set_pev(id, pev_health, HPadd)
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 1:
{
if(g_rychlostLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_rychlostLevel[id]++
v_menu(id)
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 2:
{
if(g_neviditelnostLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_neviditelnostLevel[id]++
v_menu(id)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransTexture, 255-(g_neviditelnostLevel[id]*2))
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 3:
{
if(g_silaLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_silaLevel[id]++
v_menu(id)
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 4:
{
if(g_gravitaceLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_gravitaceLevel[id]++
v_menu(id)
set_pev(id, pev_gravity, 1-(0.005*g_gravitaceLevel[id]))
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
case 5:
{
if(g_armorLevel[id] <= 100)
{
if(bodyvlp[id] >= 1)
{
bodyvlp[id]--
g_armorLevel[id]++
v_menu(id)
}
else
{
ChatColor(id,"%s Nemas dostatek vylepsovacich bodu!",prefix)
}
}
else
{
ChatColor(id,"%s Uz mas maximalni level !",prefix)
}
}
}
return PLUGIN_HANDLED
}

public nastaveni(id)
{
new m = menu_create("Nastaveni","n_handler")
if(chat_zpravy[id] == 0)
{
menu_additem(m,"Zapnout Chat")
}
else
{
menu_additem(m,"Vypnout Chat")
}
if(hud_zpravy[id] == 0)
{
menu_additem(m,"Zapnout HUD zpravy")
}
else
{
menu_additem(m,"Vypnout HUD zpravy")
}
menu_display(id,m)

}

public n_handler(id,menu,item)
{
switch(item)
{
case 0:
{
if(chat_zpravy[id] == 0)
{
chat_zpravy[id] = 1
nastaveni(id)
}
else
{
chat_zpravy[id] = 0
nastaveni(id)
}
}
case 1:
{
if(hud_zpravy[id] == 0)
{
hud_zpravy[id] = 1
nastaveni(id)
}
else
{
hud_zpravy[id] = 0
nastaveni(id)
}

}
}
}

public client_death(attacker, victim, wpnindex, hitplace, TK)
{
new viphsodmena = PlayerLevel[attacker]*4
new hsodmena = PlayerLevel[attacker]*2
new vipodmena = PlayerLevel[attacker]*2
new odmena = PlayerLevel[attacker]*1

if(get_user_team(victim) == 2)
{
if(hitplace == 1)
{
if(get_user_flags(attacker) & PREMIUM)
{
PlayerXP[attacker] += 250
stribro[attacker] += viphsodmena
if(chat_zpravy[attacker] == 1)
{
ChatColor(attacker,"%s Vyborne zabil si Derionce a ziskal si !g250!tXP a !g%i!t stribra!",prefix, viphsodmena)
}
}
else
{
PlayerXP[attacker] += 200
stribro[attacker] += hsodmena
ChatColor(attacker,"%s Vyborne zabil si Derionce a ziskal si !g200!tXP a !g%i!t stribra",prefix, hsodmena)
}
}
else
{
if(get_user_flags(attacker) & PREMIUM)
{
PlayerXP[attacker] += 200
stribro[attacker] += vipodmena
if(chat_zpravy[attacker] == 1)
{
ChatColor(attacker,"%s Vyborne zabil si Derionce a ziskal si !g200!tXP a !g%i!t stribra",prefix, vipodmena)
}
}
else
{
stribro[attacker] += odmena
PlayerXP[attacker] += 150
ChatColor(attacker,"%s Vyborne zabil si Derionce a ziskal si !g150!tXP a !g%i!t stribra",prefix, odmena)
}
}
}
if(get_user_team(victim) == 1)
{
if(hitplace == 1)
{
if(get_user_flags(attacker) & PREMIUM)
{
PlayerXP[attacker] += 250
stribro[attacker] += viphsodmena
if(chat_zpravy[attacker] == 1)
{
ChatColor(attacker,"%s Vyborne zabil si Valoriance a ziskal si !g250!tXP a !g%i!t stribra",prefix, viphsodmena)
}
}
else
{
stribro[attacker] += hsodmena
PlayerXP[attacker] += 200
ChatColor(attacker,"%s Vyborne zabil si Valoriance a ziskal si !g200!tXP a !g%i!t stribra",prefix, hsodmena)
}
}
else
{
if(get_user_flags(attacker) & PREMIUM)
{
stribro[attacker] += vipodmena
PlayerXP[attacker] += 200
if(chat_zpravy[attacker] == 1)
{
ChatColor(attacker,"%s Vyborne zabil si Valoriance a ziskal si !g200!tXP a !g%i!t stribra",prefix, vipodmena)
}
}
else
{
stribro[attacker] += odmena
PlayerXP[attacker] += 150
ChatColor(attacker,"%s Vyborne zabil si Valoriance a ziskal si !g150!tXP a !g%i!t stribra",prefix, odmena)
}
}
}
}

public kontrolalvl(id)
{
if(PlayerLevel[id] == MaxLevel)
{
return PLUGIN_HANDLED;
}
else
{
if(PlayerXP[id] >= LEVELS[PlayerLevel[id]])
{
PlayerLevel[id] += 1;
bodyvlp[id] += 2
v_menu(id)
ChatColor(id,"%s Nyni jsi level %i ",prefix, PlayerLevel[id])
new name[32]
get_user_info(id, "name", name, 31)
ChatColor(0,"%s Hrac %s ziskal level %i ",prefix, name, PlayerLevel[id]);
}
}
return PLUGIN_HANDLED
}

public herne_menu(id)
{
if(is_user_alive(id))
{
new hm = menu_create("Prachy","herne_menu_handle")
menu_additem(hm,"Goldu")
menu_additem(hm,"Stribro")
menu_additem(hm,"Bronzu")
menu_display(id,hm)
}
else
{
ChatColor(id,"%s Na otvereni menu musis byt nazivu",prefix)
}
}

public reset(id)
{
PlayerLevel[id] = 0
PlayerXP[id] = 0
}

public herne_menu_handle(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
switch(item)
{
case 0:
{
PlayerXP[id] += 500
zlato[id]+=3
herne_menu(id)
client_print(id, print_chat, "+3 +500")
}
case 1:
{
stribro[id]+=90
herne_menu(id)
client_print(id, print_chat, "+90")
}
case 2:
{
bronz[id]+=90
herne_menu(id)
client_print(id, print_chat, "+90")
}
}
return PLUGIN_HANDLED
}

public client_PostThink(id)
{
if(bronz[id]>=100)
{
bronz[id]-=100
stribro[id]+=1
}
if(stribro[id]>=100)
{
stribro[id]-=100
zlato[id]+=1
}
kontrolalvl(id)
if(hud_zpravy[id] == 1)
{
hud_status(id)
}
}

public bomb_planted(id)
{
new vipodmena = PlayerLevel[id]*2
new odmena = PlayerLevel[id]
if(get_user_flags(id) & PREMIUM)
{
if(chat_zpravy[id] == 1)
{
ChatColor(id,"%s Vyborne plantnul si bombu, ziskal !g%i !tstribra a 100XP!",prefix, vipodmena)
stribro[id] += vipodmena
PlayerXP[id] += 100

}
}
else
{
ChatColor(id,"%s Vyborne plantnul si bombu, ziskal §g%i !tstribra a !g50!tXP!",prefix, odmena)
stribro[id] += odmena
PlayerXP[id] += 50
}
}

public bomb_defused(id)
{
new vipodmena = PlayerLevel[id]*2
new odmena = PlayerLevel[id]
if(get_user_flags(id) & PREMIUM)
{
if(chat_zpravy[id] == 1)
{
ChatColor(id,"%s Vyborne defusnul si bombu, ziskal si !g%i !tstribra a !g100!tXP !",prefix,vipodmena)
stribro[id] += vipodmena
PlayerXP[id] += 100
}
}
else
{
ChatColor(id,"%s Vyborne defusnul si bombu, ziskal si !g%i !tstribra a !g50!tXP !",prefix,odmena)
stribro[id] += odmena
PlayerXP[id] += 50
}
}

public hud_status(id)
{
new amount = PlayerLevel[id];
set_hudmessage(255, 255, 0, 0.02, 0.15, 0, 6.0, 0.0)
show_hudmessage(id, "[Zlato %i]^n[Stribro %i]^n[Bronz %i]^n[Level %i]^n[XP %i/%i]^n[Body vylepsovani %i]", zlato[id], stribro[id], bronz[id],PlayerLevel[id],PlayerXP[id],LEVELS[amount],bodyvlp[id])
}

public function(id)
{
new menu = menu_create("\rPlayer Menu:", "menu_handler");

new name[32], id_string[5];
new players[32], pnum, i, pid;
get_players(players, pnum);
for( i=0; i<pnum; i++ )
{
pid = players[i];
get_user_name(pid, name, 31);
num_to_str(pid, id_string, 4);
menu_additem(menu, name, id_string);
}
menu_display(id, menu, 0);
}

public menu_handler(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);

new pid = str_to_num(data);
PlayerXP[pid] += 20000

menu_destroy(menu);
return PLUGIN_HANDLED;
}

public NactiData(id)
{
if( is_user_connected(id) )
{
new vaultkey[64],vaultdata[512];
new authid[64];
get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
nvault_get(expmod,vaultkey,vaultdata,511);
replace_all(vaultdata,256,"#"," ");
new jeden[100],dwa[100],trzy[100],cztery[100],piec[100],szesc[100],siedem[100],osiem[100],dziew[100],dzies[100],jedenascie[100]
parse(vaultdata,jeden,99,dwa,99,trzy,99,czter y,99,piec,99,szesc,99,siedem,99,osiem,99,dzie w,99,dzies,99,jedenascie,99)
PlayerLevel[id] = str_to_num(jeden);
PlayerXP[id] = str_to_num(dwa);
stribro[id] = str_to_num(trzy);
zlato[id] = str_to_num(cztery);
bronz[id] = str_to_num(piec);
g_armorLevel[id] = str_to_num(szesc);
g_rychlostLevel[id] = str_to_num(siedem)
g_zdraviLevel[id] = str_to_num(osiem);
g_silaLevel[id] = str_to_num(dziew);
g_gravitaceLevel[id] = str_to_num(dzies)
g_neviditelnostLevel[id] = str_to_num(jedenascie)
}
}
public ZapisData(id)
{
if ( is_user_connected(id) )
{
new vaultkey[64],vaultdata[512];
new authid[64];

get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
format(vaultdata,511,"%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
nvault_set(expmod,vaultkey,vaultdata)
}
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[ 32 ]
static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!g", "^4" )
replace_all( msg, 190, "!y", "^1" )
replace_all( msg, 190, "!t", "^3" )


if(id) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for(new i = 0; i < count; i++)
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] )
write_byte( players[ i ] )
write_string( msg )
message_end( )
}
}
}
}
All errors can be solved by is_user_connected(id), and removing unnecessary stuff.

ugousek
08-14-2013, 15:07
Doesnt work :(

Black Rose
08-15-2013, 01:07
Doesnt work :(

Which part? I'm not gonna debug your whole script because then I'll end up rewriting the whole thing.

ugousek
08-15-2013, 03:55
Debug doesnt write anything, but data from nvault not load and I dont know if data was saved.

Black Rose
08-15-2013, 04:07
Add a bunch of server_print() to verify that functions gets called as expected, checking data and parameters sent to natives.

I can, with almost full certainty, tell you that the error is in your code, not the nVault natives.

The first thing you learn is the syntax, the second is basic debugging.

EDIT: It seems to work just fine when I try just the vault part.


new PlayerLevel[33]
new PlayerXP[33]
new stribro[33]
new zlato[33]
new bronz[33]
new g_armorLevel[33]
new g_rychlostLevel[33]
new g_zdraviLevel[33]
new g_silaLevel[33]
new g_gravitaceLevel[33]
new g_neviditelnostLevel[33]

new expmod;

public plugin_end() {
nvault_close(expmod);
}

public plugin_cfg() {
expmod = nvault_open("TEST");
}

public client_disconnect(id) {
ZapisData(id)
}

public client_authorized(id) {
NactiData(id)
}

public ZapisData(id)
{
if ( is_user_connected(id) )
{

PlayerLevel[id] = 4
PlayerXP[id] = 124243
stribro[id] = 12
zlato[id] = 14
bronz[id] = 16
g_armorLevel[id] = 18
g_rychlostLevel[id] = 20
g_zdraviLevel[id] = 22
g_silaLevel[id] = 24
g_gravitaceLevel[id] = 26
g_neviditelnostLevel[id] = 28

new vaultkey[64],vaultdata[512];
new authid[64];

get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
format(vaultdata,511,"%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
nvault_set(expmod,vaultkey,vaultdata)
}
}

public NactiData(id)
{
new vaultkey[64],vaultdata[512];
new authid[64];
get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
nvault_get(expmod,vaultkey,vaultdata,511);
replace_all(vaultdata,256,"#"," ");
new jeden[100],dwa[100],trzy[100],cztery[100],piec[100],szesc[100],siedem[100],osiem[100],dziew[100],dzies[100],jedenascie[100]
parse(vaultdata,jeden,99,dwa,99,trzy,99,czter y,99,piec,99,szesc,99,siedem,99,osiem,99,dzie w,99,dzies,99,jedenascie,99)
PlayerLevel[id] = str_to_num(jeden);
PlayerXP[id] = str_to_num(dwa);
stribro[id] = str_to_num(trzy);
zlato[id] = str_to_num(cztery);
bronz[id] = str_to_num(piec);
g_armorLevel[id] = str_to_num(szesc);
g_rychlostLevel[id] = str_to_num(siedem)
g_zdraviLevel[id] = str_to_num(osiem);
g_silaLevel[id] = str_to_num(dziew);
g_gravitaceLevel[id] = str_to_num(dzies)
g_neviditelnostLevel[id] = str_to_num(jedenascie)

server_print("%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
}



4#124243#12#14#16#18#20#22#24#26#28

ugousek
08-15-2013, 04:41
I do not know what you want, please do it

Shooting King
08-15-2013, 07:32
Fortunately or Unfortunately the plugin works fine for me.

Debug doesnt write anything, but data from nvault not load and I dont know if data was saved.

See in "addons/amxmodx/data/vault" dir if a file named "4expmod" exists or not. If it exists rename it to "4expmod_Backup" and try again. ( May be the vault is corrupt )

ugousek
08-15-2013, 17:14
public ZapisData(id)
{
if ( is_user_connected(id) )
{
new vaultkey[64],vaultdata[512];
new authid[64];

get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
format(vaultdata,511,"%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
nvault_set(expmod,vaultkey,vaultdata)
}
}

public NactiData(id)
{
new vaultkey[64],vaultdata[512];
new authid[64];
get_user_authid(id,authid,63);
format(vaultkey,63,"%s",authid);
nvault_get(expmod,vaultkey,vaultdata,511);
replace_all(vaultdata,256,"#"," ");
new jeden[100],dwa[100],trzy[100],cztery[100],piec[100],szesc[100],siedem[100],osiem[100],dziew[100],dzies[100],jedenascie[100]
parse(vaultdata,jeden,99,dwa,99,trzy,99,czter y,99,piec,99,szesc,99,siedem,99,osiem,99,dzie w,99,dzies,99,jedenascie,99)
PlayerLevel[id] = str_to_num(jeden);
PlayerXP[id] = str_to_num(dwa);
stribro[id] = str_to_num(trzy);
zlato[id] = str_to_num(cztery);
bronz[id] = str_to_num(piec);
g_armorLevel[id] = str_to_num(szesc);
g_rychlostLevel[id] = str_to_num(siedem)
g_zdraviLevel[id] = str_to_num(osiem);
g_silaLevel[id] = str_to_num(dziew);
g_gravitaceLevel[id] = str_to_num(dzies)
g_neviditelnostLevel[id] = str_to_num(jedenascie)

server_print("%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d", PlayerLevel[id], PlayerXP[id], stribro[id], zlato[id], bronz[id], g_armorLevel[id], g_rychlostLevel[id], g_zdraviLevel[id], g_silaLevel[id], g_gravitaceLevel[id], g_neviditelnostLevel[id])
} Ok that work ,thank you guys :)