Raised This Month: $ Target: $400
 0% 

Help with nvault


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
ErrorStereotype
Senior Member
Join Date: Feb 2011
Location: Bosnia and Herzegovina
Old 02-25-2014 , 06:12   Help with nvault
Reply With Quote #1

There is my code, i started to mess up with nvault saving for this lvl, i just wanna make when player disconnect/server shutdown save levels and when player connects it load his level... Can anyone help me?

Code:
#include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <nvault> #include <ColorChat> #include <fun> #include <engine> #include <zombieplague> // Aktuelna verzija #define PLUGIN_VERSION "3.0Fix" new lvl[33]; new iskustvo[33]; new g_zm_dmg[33], g_human_dmg[33], g_human_hp[33], g_armor[33], g_zombie_hp[33]; new g_vault; new g_szAuthID[33][35]; new SyncHudObj; new cvar_xp_za_ubistvo, cvar_max_lvl, cvar_lvlup_ammopacks, cvar_lvl_zmdmg, cvar_lvl_humandmg, cvar_lvl_humanhp, cvar_lvl_armor, cvar_lvl_zombiehp; new cvar_motd, cvar_vip, cvar_menu, cvar_shop_zmdmg, cvar_shop_humandmg; new const cmd_file[] = "addons/amxmodx/configs/zp_level_system.txt" public plugin_init() {     register_plugin("PZP Leveling System", PLUGIN_VERSION, "Stereotype")     register_cvar("csflvlsystem","1",(FCVAR_SERVER|FCVAR_SPONLY))         register_concmd("zp_set_lvl", "SetLvL", ADMIN_BAN, "<name> <level>");     register_clcmd("say /mylevel","fCheckAbility")     register_clcmd("say /lvl","fMotdPluginInfo")     register_clcmd("say /shop","f_Shop")     register_clcmd( "say /savelevel" , "cmdSaveLevel" );             register_event("DeathMsg", "eDeath", "ade");     register_event("HLTV", "eRoundStart", "a", "1=0", "2=0")         RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")         g_vault = nvault_open("csf_lvlsystem")     SyncHudObj = CreateHudSyncObj()         cvar_xp_za_ubistvo = register_cvar("zp_lvl_kill_xp","100")     cvar_lvlup_ammopacks = register_cvar("zp_lvl_ammopacks","10")     cvar_lvl_zmdmg = register_cvar("zp_lvl_zombiedmg","3")     cvar_lvl_humandmg = register_cvar("zp_lvl_humandmg","1")     cvar_max_lvl = register_cvar("zp_maxlvl","100")     cvar_lvl_humanhp = register_cvar("zp_lvl_humanhp","10")     cvar_lvl_zombiehp = register_cvar("zp_lvl_zombiehp","80")     cvar_lvl_armor = register_cvar("zp_bonus_armor","1")     cvar_motd = register_cvar("zp_motd_e","1")     cvar_vip = register_cvar("zp_lvlmax_givevip","1")     cvar_menu = register_cvar("zp_lvl_menu_e","1")     cvar_shop_zmdmg = register_cvar("zp_lvl_menu_zombiedmg","10")     cvar_shop_humandmg = register_cvar("zp_lvl_menu_humandmg","8")         register_menucmd(register_menuid("Menu_Lvl"),1023,"f_ShopItems");         register_clcmd("say", "handlesay")     set_task(90.0,"eReklama" , _ , _ , _ , "b") } public plugin_precache() {     if(get_pcvar_num(cvar_vip) == 0)         return PLUGIN_HANDLED     if(!file_exists(cmd_file))     {         write_file(cmd_file,"Ovde se nalaze igraci koji su dosli na poslednji Level.")         write_file(cmd_file,"Njima treba da date VIP-a u configs/vips.ini")         write_file(cmd_file,"==================================================")         write_file(cmd_file," ")     }     return PLUGIN_HANDLED } public plugin_end() {     //Close the vault when the plugin ends (map change\server shutdown\restart)     nvault_close( g_vault ); } public client_authorized(id) {     //Get the connecting users authid and store it in our global string array so it     //will not need to be retrieved every time we want to do an nvault transaction.     get_user_authid( id , g_szAuthID[id] , charsmax( g_szAuthID[] ) ); } public cmdSaveLevel(id) {     //Save a single item into the value of the entry.     //Example: STEAM_0:0:1234 16000     new szLevel[33];     new szKey[40];        //Key used to save money "STEAM_0:0:1234MONEY"     formatex( szKey , charsmax( szKey ) , "%sLVL" , g_szAuthID[id] );     formatex( szLevel , charsmax( szLevel ) , "%d" , g_szLevel[id] );         nvault_set( g_Vault , szKey , lvl );     client_print( id , print_chat , "* Your levels was saved to vault" ); } public eRoundStart() {     new players[32] , inum     get_players(players, inum)     for(new a = 0; a < inum; ++a)         set_task(3.0, "dajAbility", players[a]) } public dajAbility(id) {     if(!is_user_alive(id)) return;     set_user_health(id, get_user_health(id) + g_human_hp[id])     set_user_armor(id, get_user_armor(id) + g_armor[id]) }   public client_connect(id)   {     UcitajInfo(id)     set_task(3.0, "Showinfo", id+672)     set_task(5.0, "PodigniNivo",id) } public PodigniNivo(id) {     if(lvl[id] == 0)     {         lvl[id]++         return PLUGIN_HANDLED     }     return PLUGIN_HANDLED }         public client_disconnect(id) {     SacuvajInfo(id)     remove_task(id+672) } public eDeath()   {       new id = read_data(2);       new attacker = read_data(1);           if(lvl[attacker] == get_pcvar_num(cvar_max_lvl))         return PLUGIN_HANDLED         if(attacker != id && is_user_connected(attacker))       {         set_hudmessage(0, 255, 0, -1.0, 0.76, 0, 6.0, 5.0)         show_hudmessage(attacker, "+ %d XP",get_pcvar_num(cvar_xp_za_ubistvo))         iskustvo[attacker] += get_pcvar_num(cvar_xp_za_ubistvo);           Checklvl(attacker);       }       return PLUGIN_HANDLED } public zp_user_infected_pre(id, infector) {     if(lvl[infector] == get_pcvar_num(cvar_max_lvl))         return PLUGIN_HANDLED         set_hudmessage(0, 255, 0, -1.0, 0.76, 0, 6.0, 5.0)     show_hudmessage(infector, "+ %d XP",get_pcvar_num(cvar_xp_za_ubistvo))     iskustvo[infector] += get_pcvar_num(cvar_xp_za_ubistvo);       Checklvl(infector);     return PLUGIN_HANDLED } public Checklvl(id) {     if(lvl[id] == get_pcvar_num(cvar_max_lvl))         return PLUGIN_HANDLED     while(iskustvo[id] >= lvl[id]*lvl[id]*60)       {         lvl[id]++;         iskustvo[id]=0;         g_zm_dmg[id] += get_pcvar_num(cvar_lvl_zmdmg);         g_human_dmg[id] += get_pcvar_num(cvar_lvl_humandmg);         g_human_hp[id] += get_pcvar_num(cvar_lvl_humanhp);         g_zombie_hp[id] += get_pcvar_num(cvar_lvl_zombiehp);         zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + get_pcvar_num(cvar_lvlup_ammopacks))         new nick[32]         get_user_name(id,nick,31)         set_hudmessage(0, 255, 0, 0.02, -1.0, 0, 6.0, 12.0)         show_hudmessage(id, "Welcome to %i level! ^nDMG Human++ | DMG Zombie++ | HP++",lvl[id])         ColorChat(0, TEAM_COLOR,"^4[PZP] ^1Player ^3 %s ^1is now level ^3 %i^1",nick,lvl[id])         if(lvl[id] >= get_pcvar_num(cvar_max_lvl) - 10)         {             g_human_hp[id] += get_pcvar_num(cvar_lvl_humanhp)*2             g_armor[id] += get_pcvar_num(cvar_lvl_armor)             zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + get_pcvar_num(cvar_lvlup_ammopacks)*2)             set_hudmessage(255, 255, 212, -1.0, 0.27, 0, 6.0, 12.0)             show_hudmessage(id, "You got bonus on %i Level! ^n||HP++*2|| AMMO++|| ARMOR+ ||",lvl[id])             ColorChat(0, TEAM_COLOR,"^4[PZP] ^1Igrac ^3 %s ^1je dobio bonus na levelu ^3 %i^1",nick,lvl[id])         }         if(lvl[id] == get_pcvar_num(cvar_max_lvl))         {             if(get_pcvar_num(cvar_vip) == 0)                 return PLUGIN_HANDLED             new ime[33]             new steam[33]             new nesto[192]             get_user_name(id,ime,32)             get_user_authid(id,steam,32)             format(nesto, 191, "[Nick: ^"%s^" je ^"%i^"lvl ^"%s^"]", ime, lvl[id], steam)             write_file(cmd_file, nesto)             write_file(cmd_file, " ")             ColorChat(id, TEAM_COLOR,"^4[PZP] ^1Congratulations. You are now last level %i! ^4You will earn free V.I.P!^1",lvl[id])             ColorChat(id, TEAM_COLOR,"^4[PZP] ^1Head Admin will review your status and set you V.I.P!")         }         return PLUGIN_HANDLED     }     return PLUGIN_HANDLED } public zp_user_infected_post(id, infector) {     if(!is_user_alive(id)) return;     set_user_health(id, get_user_health(id) + g_zombie_hp[id]) } public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits) {     if (!zp_get_user_zombie(attacker) || is_user_alive(attacker))     {         SetHamParamFloat(4, damage + g_human_dmg[attacker])     }     else     {         SetHamParamFloat(4, damage + g_zm_dmg[attacker])     } } public Showinfo(id)   {       id -= 672;           set_task(0.1, "Showinfo", id+672);           if(!is_user_alive(id))       {           new target = entity_get_int(id, EV_INT_iuser2);                   if(target == 0)           {               return;           }         set_hudmessage(255, 212, 42, 0.55, 0.44, 0, 0.0, 0.3, 0.0, 0.0);           ShowSyncHudMsg(id, SyncHudObj, "[XP: %i / %i]^n[Level: %i]^n/shop", iskustvo[target],lvl[target]*lvl[target]*60, lvl[target]);       }       else       {           set_hudmessage(0, 255, 0, 0.02, 0.65, 0, 0.0, 0.3, 0.0, 0.0);           ShowSyncHudMsg(id, SyncHudObj, "[XP: %i / %i]^n[Level: %i]^n/shop", iskustvo[id],lvl[id]*lvl[id]*60, lvl[id]);       }   } public SetLvL(id, level, cid) {       if(!cmd_access(id,level,cid,3))     {         client_print(id, print_console,"[PZP] No Acces")         return PLUGIN_HANDLED;     }         new arg1[33];     new arg2[6];     read_argv(1, arg1, 32);     read_argv(2, arg2, 5);     new player = cmd_target(id, arg1, CMDTARGET_NO_BOTS);     new value = str_to_num(arg2)-1;         if(!is_user_connected(player))     {         client_print(id, print_console,"[PZP] Igrac trenutno nije konektovan")         return PLUGIN_HANDLED;     }         if(value > get_pcvar_num(cvar_max_lvl))     {         client_print(id, print_console,"[PZP] Maksimalno mozete dati %d lvl ovom igracu!",get_pcvar_num(cvar_max_lvl)-lvl[player])         return PLUGIN_HANDLED     }         new name[32]     get_user_name(player, name, 31) //ime igraca kome dajemo lvl         client_print(id, print_console,"[PZP] Set %d lvl to %s",value,name)     lvl[player]+=value;     return PLUGIN_HANDLED } public f_Shop(id) {     if(get_pcvar_num(cvar_menu) == 0)     {         ColorChat(id, TEAM_COLOR,"^4[PZP] ^1This option is turned off")         return PLUGIN_HANDLED     }     new szText[555 char]     formatex(szText, charsmax(szText), "\yPZP Level Shop")     new menu = menu_create(szText, "f_ShopItems")         if(lvl[id] < 5)     {         formatex(szText, charsmax(szText), "\rGravity [UNLOCK -5 Level]")         menu_additem(menu, szText, "1", 0)     }     else     {         formatex(szText, charsmax(szText), "\wGravity \y[5 Packs = 30 Sec.]")         menu_additem(menu, szText, "1", 0)     }         if(lvl[id] < 10)     {         formatex(szText, charsmax(szText), "\r200AM [UNLOCK -10 Level]")         menu_additem(menu, szText, "2", 0)     }     else     {         formatex(szText, charsmax(szText), "\w200AM \y[30 Packs]")         menu_additem(menu, szText, "2", 0)     }         if(lvl[id] < 30)     {         formatex(szText, charsmax(szText), "\r5000HP+500AM [UNLOCK -30 Level]")         menu_additem(menu, szText, "3", 0)     }     else     {         formatex(szText, charsmax(szText), "\w5000HP+500AM \y[80 Packs]")         menu_additem(menu, szText, "3", 0)     }         if(lvl[id] < 35)     {         formatex(szText, charsmax(szText), "\rZM DMG++ [UNLOCK -35 Level]")         menu_additem(menu, szText, "4", 0)     }     else     {         formatex(szText, charsmax(szText), "\wZM DMG++ \y[120 Packs]")         menu_additem(menu, szText, "4", 0)     }         if(lvl[id] < 45)     {         formatex(szText, charsmax(szText), "\rHuman DMG++ [UNLOCK -45 Level]")         menu_additem(menu, szText, "5", 0)     }     else     {         formatex(szText, charsmax(szText), "\wHuman DMG++ \y[220 Packs]")         menu_additem(menu, szText, "5", 0)     }         menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)     menu_display(id, menu)      return PLUGIN_HANDLED } public f_ShopItems(id,menu,item) {     if(item ==MENU_EXIT)     {         menu_destroy(menu)         return PLUGIN_CONTINUE     }     new data[6], iName[64], access, callback     menu_item_getinfo(menu, item, access, data, charsmax(data), iName, charsmax(iName), callback )     new key = str_to_num(data)     switch(key)     {         case 1:         {             if(lvl[id] < 5)             {                 ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have level for this item!")                 return PLUGIN_HANDLED             }             else             {                 if(zp_get_user_ammo_packs(id) < 5)                 {                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have enough cash!")                     return PLUGIN_HANDLED                 }                 else                 {                     set_user_gravity(id, 0.3)                     zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - 5)                     set_task(30.0, "Iskljuci_Gravity",id)                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You have bought gravitation for 30 secs!")                 }             }         }                 case 2:         {             if(lvl[id] < 10)             {                 ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have levels for this item!")                 return PLUGIN_HANDLED             }             else             {                 if(zp_get_user_ammo_packs(id) < 30)                 {                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have enough cash!")                     return PLUGIN_HANDLED                 }                 else                 {                     if(get_user_armor(id) < 300)                     {                         ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You cant have more than 300 armour")                         return PLUGIN_HANDLED                     }                     set_user_armor(id, get_user_armor(id) + 200)                     zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - 30)                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You have bought 200ARMOR")                 }             }         }                 case 3:         {             if(lvl[id] < 30)             {                 ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have levels for this item!")                 return PLUGIN_HANDLED             }             else             {                 if(zp_get_user_ammo_packs(id) < 80)                 {                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have enough cash!")                     return PLUGIN_HANDLED                 }                 else                 {                     if(get_user_armor(id) < 600)                     {                         ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You cant have more than 600 Armor")                         return PLUGIN_HANDLED                     }                     set_user_armor(id, get_user_armor(id) + 500)                     set_user_health(id, get_user_health(id) + 5000)                     zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - 80)                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You have bought 5000HP and 500AM")                 }             }         }                 case 4:         {             if(lvl[id] < 35)             {                 ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have levels for this item!")                 return PLUGIN_HANDLED             }             else             {                 if(zp_get_user_ammo_packs(id) < 120)                 {                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have enough cash!")                     return PLUGIN_HANDLED                 }                 else                 {                     g_zm_dmg[id] += get_pcvar_num(cvar_shop_zmdmg);                     zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - 120)                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1Your zombie damage is now +%d. DMG is added on your level damage.",get_pcvar_num(cvar_shop_zmdmg))                 }             }         }                 case 5:         {             if(lvl[id] < 45)             {                 ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have levels for this item!")                 return PLUGIN_HANDLED             }             else             {                 if(zp_get_user_ammo_packs(id) < 220)                 {                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1You dont have enough cash!")                     return PLUGIN_HANDLED                 }                 else                 {                     g_human_dmg[id] += get_pcvar_num(cvar_shop_humandmg);                     zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - 220)                     ColorChat(id, TEAM_COLOR, "^4[PZP] ^1Human Damage increased for +%d. DMG is added on your human damage.",get_pcvar_num(cvar_shop_humandmg))                 }             }         }     }     return PLUGIN_HANDLED } public Iskljuci_Gravity(id) {     if(is_user_connected(id))     {         set_user_gravity(id, 1.0)         ColorChat(id, TEAM_COLOR, "^4[PZP] ^1Gravitation off")     }     return PLUGIN_HANDLED } public handlesay(id) {     new said[192], name[30]     get_user_name(id, name, 29)     read_args(said,191)     remove_quotes(said)     ColorChat(0 , GREEN, "[PZP Level: %i] ^x03%s ^1: %s ",lvl[id], name, said)     return PLUGIN_HANDLED } public UcitajInfo(id) {     new AuthID[35]     get_user_authid(id,AuthID,34)     new vaultkey[64],vaultdata[256]     format(vaultkey,63,"%s-info",AuthID)     format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#",lvl[id],iskustvo[id],g_human_dmg[id],g_zm_dmg[id],g_human_hp[id],g_armor[id],g_zombie_hp[id])     nvault_get(g_vault,vaultkey,vaultdata,255)     replace_all(vaultdata, 255, "#", " ")     new s1[6], s2[6], s3[6], s4[6], s5[6], s6[6], s7[6]     parse(vaultdata, s1,6, s2,6, s3,6, s4,6, s5,6, s6,6, s7,6)     lvl[id] = str_to_num(s1)     iskustvo[id] = str_to_num(s2)     g_human_dmg[id] = str_to_num(s3)     g_zm_dmg[id] = str_to_num(s4)     g_human_hp[id] = str_to_num(s5)     g_armor[id] = str_to_num(s6)     g_zombie_hp[id] = str_to_num(s7)     return PLUGIN_CONTINUE } public SacuvajInfo(id) {     new AuthID[35]     get_user_authid(id,AuthID,34)     new vaultkey[64],vaultdata[256]     format(vaultkey,63,"%s-info",AuthID)     format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#",lvl[id],iskustvo[id],g_human_dmg[id],g_zm_dmg[id],g_human_hp[id],g_armor[id],g_zombie_hp[id])     nvault_set(g_vault,vaultkey,vaultdata)         lvl[id] = 0     iskustvo[id] = 0     g_human_dmg[id] = 0     g_zm_dmg[id] = 0     g_human_hp[id] = 0     g_armor[id] = 0     g_zombie_hp[id] = 0     return PLUGIN_CONTINUE } public fCheckAbility(id) {     ColorChat(id, TEAM_COLOR,"^4[PZP] ^1+Human HP: %d , +Zombie HP: %d , +Human DMG: %d , +Zombie DMG: %d , +Armor: %d",g_human_hp[id],g_zombie_hp[id],g_human_dmg[id],g_zm_dmg[id],g_armor[id]) } public fMotdPluginInfo(id) {     if(get_pcvar_num(cvar_motd) == 0)     {         ColorChat(id, TEAM_COLOR, "^4[PZP] ^1Invalid option")         return PLUGIN_HANDLED     }             static motd[1501], len     len += format(motd[len], 1500-len,"<center><font color=^"red^"><B>This server is using level system made by Stereotype</B> </font></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>That is system for leveling in Zombie Mode</B> </font></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>and it is increasing human and zombie abilityes.</B> </font></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>On your HUD your level and XP is showed.</B> </font></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>For every level you need X numbers of XP.</B> </font></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>On last 10 levels you get extra perks.</B> </font></center>")     len += format(motd[len], 1500-len,"<hr></hr>")     len += format(motd[len], 1500-len,"<center><h2><font color=^"red^"><B>Rewards for levels</B> </font></h2></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>On every level you get extra health,</B> </font></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>for zombie, and humans</B> </font></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>For every level you get 10 ammo packs</B> </font></center>")     len += format(motd[len], 1500-len,"<center><font color=^"white^"><B>When you reach 100 level you gte FREE VIP. </B> </font></center>")     len += format(motd[len], 1500-len,"<hr></hr>")     show_motd(id, motd, "PZP Leveling System")     return 0 } public eReklama() {     ColorChat(0, TEAM_COLOR,"^4[PZP] ^1PZP Leveling System ^3/lvl ^3/mylevel ^3/shop") }

Last edited by ErrorStereotype; 02-25-2014 at 06:12.
ErrorStereotype is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 06:49.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode