|
RAAASENGAN
Join Date: Mar 2012
Location: India
|

08-14-2013
, 08:17
Re: nVault problem ,save and load
|
#1
|
Try This
PHP Code:
#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,25000,31000,38000,46000,55000,65000,76000, 88000,101000,115000,130000,146000,174000,192000,211000,231000,252000,274000,297000,321000,346000,373000,400000, 428000,457000,487000,518000,550000,583000,617000,657000,686000,722000,759000,797000,836000,876000,917000,959000, 1002000,1046000,1091000,1137000,1185000,1234000,1284000,1335000,1387000,1440000,1494000,1549000,1605000,1662000, 1719000,1777000,1836000,1896000,1957000,2019000,2082000,2146000,2211000,2277000,2344000,2411000,2479000,2549000, 2620000,2692000,2765000,2839000,2914000,2990000,3067000,3145000,3224000,3304000,3385000,3406700,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_silaLevel[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,cztery,99,piec,99,szesc,99,siedem,99,osiem,99,dziew,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.
__________________
|
|