MegastoRM

level_mod_fixed

May 16th, 2012
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.25 KB | None | 0 0
  1. /*
  2.  
  3. Credits: QTM Peyote: Za sistem prikazivanja levela
  4.      Ovidius: Za nacin racunanja levela(za mogucnost upotrebe beskonacno levela)
  5.      Sn1per: Za ideju o ovom modu koju sam delimicno preuzeo
  6.      Hvala vam svima :)
  7.      PS: Ovaj rad nije namenjen za prodaju niti bilo kakvo ostvarivanje materijalnih sredstava,
  8.      vec iskljucivo za zabavu i nastavak kreiranja novog Level Mod-a
  9.  
  10. */
  11. /*
  12.  
  13. Credits: QTM Peyote: Za sistem prikazivanja levela
  14.      Ovidius: Za nacin racunanja levela(za mogucnost upotrebe beskonacno levela)
  15.      Sn1per: Za ideju o ovom modu koju sam delimicno preuzeo
  16.      Hvala vam svima :)
  17.      PS: Ovaj rad nije namenjen za prodaju niti bilo kakvo ostvarivanje materijalnih sredstava,
  18.      vec iskljucivo za zabavu i nastavak kreiranja novog Level Mod-a
  19.  
  20. */
  21.  
  22. #include <amxmodx>
  23. #include <amxmisc>  
  24. #include <fun>
  25. #include <cstrike>
  26. #include <engine>
  27. #include <nvault>
  28.  
  29. new g_vault;  
  30.  
  31. new SyncHudObj;  
  32.  
  33. new iskustvo_igraca[33]
  34. new nivo_igraca[33] = 1;  
  35.  
  36. new maxlvl
  37. new kill_iskustvo;
  38.  
  39.  
  40. public plugin_init()  
  41. {  
  42.     register_plugin("Level Mod", "1.0", "AMD");  
  43.    
  44.     register_event("DeathMsg", "Death", "ade");
  45.     g_vault = nvault_open("xpmod");  
  46.    
  47.     SyncHudObj = CreateHudSyncObj();
  48.    
  49.    
  50.     kill_iskustvo = register_cvar("amx_killxp", "13");
  51.     maxlvl = register_cvar("amx_maxlevel","100000")
  52. }  
  53.  
  54. public client_connect(id)  
  55. {  
  56.     PonistiInfo(id);  
  57.     UcitajLevele(id);  
  58.     set_task(3.0, "PokaziInfo", id+672);  
  59. }  
  60.  
  61. public client_disconnect(id)  
  62. {  
  63.     SacuvajLevele(id);  
  64.     PonistiInfo(id);  
  65.     remove_task(id+672);  
  66. }  
  67. public PonistiInfo(id)  
  68. {  
  69.     nivo_igraca[id] = 0;  
  70.     iskustvo_igraca[id] = 0;  
  71. }  
  72.  
  73. public izracunajxp(level)
  74.     return level*3*10;
  75.  
  76.  
  77. public PokaziInfo(id)  
  78. {  
  79. id -= 672;  
  80.  
  81. set_task(0.1, "PokaziInfo", id+672);  
  82.  
  83. if(!is_user_alive(id))  
  84.     {  
  85.         new target = entity_get_int(id, EV_INT_iuser2);  
  86.        
  87.         if(target == 0)  
  88.         {  
  89.             return;  
  90.         }      
  91.         set_hudmessage(255, 212, 42, -1.0, 0.0, 0, 0.0, 0.3, 0.0, 0.0);  
  92.         ShowSyncHudMsg(id, SyncHudObj, "Iskustvo : %i / %i ^nLevel: %i", iskustvo_igraca[target],izracunajxp(nivo_igraca[target]), nivo_igraca[target]);  
  93.     }  
  94.     else  
  95.     {  
  96.         set_hudmessage(0, 200, 250, -1.0, 0.0, 0, 0.0, 0.3, 0.0, 0.0);  
  97.         ShowSyncHudMsg(id, SyncHudObj, "[Iskustvo : %i / %i]^n[Level: %i]", iskustvo_igraca[id],izracunajxp(nivo_igraca[id]), nivo_igraca[id]);  
  98.     }  
  99. }    
  100.  
  101. public Death()  
  102. {  
  103. new id = read_data(2);  
  104. new napadac = read_data(1);  
  105.  
  106. if(napadac != id && is_user_connected(napadac))  
  107. {  
  108.         new novo_iskustvo = get_pcvar_num(kill_iskustvo);
  109.        
  110.         iskustvo_igraca[napadac] += novo_iskustvo
  111.         ProveriNivo(napadac);  
  112.     }  
  113. }      
  114.  
  115. public ProveriNivo(id)
  116. {    
  117.     if(nivo_igraca[id] < maxlvl)
  118.     {
  119.         while(iskustvo_igraca[id] >= izracunajxp(nivo_igraca[id]))
  120.         {
  121.             nivo_igraca[id]++;
  122.         }
  123.         if(nivo_igraca[id] > maxlvl)
  124.         {
  125.             nivo_igraca[id] = maxlvl
  126.            
  127.         }
  128.     }
  129.     SacuvajLevele(id);
  130. }
  131.  
  132. public SacuvajLevele(id)  
  133. {  
  134.     new AuthID[35];  
  135.     get_user_authid(id, AuthID, 34);  
  136.    
  137.     new vaultkey[64], vaultdata[256];  
  138.    
  139.     format(vaultkey, 63, "%s-lvl", AuthID);  
  140.     format(vaultdata, 255, "%i#%i#", iskustvo_igraca[id], nivo_igraca[id]);  
  141.    
  142.     nvault_set(g_vault, vaultkey, vaultdata);  
  143.    
  144.     return PLUGIN_CONTINUE;  
  145. }  
  146.  
  147. public UcitajLevele(id)  
  148. {  
  149.     new AuthID[35];  
  150.     get_user_authid(id, AuthID, 34);  
  151.    
  152.     new vaultkey[64], vaultdata[256];  
  153.    
  154.     format(vaultkey, 63, "%s-lvl", AuthID);  
  155.     format(vaultdata, 255, "%i#%i#", iskustvo_igraca[id], nivo_igraca[id] );  
  156.    
  157.     nvault_get(g_vault, vaultkey, vaultdata, 255);  
  158.    
  159.     replace_all(vaultdata, 255, "#", " ");  
  160.    
  161.     new iskustvoigraca[32], leveligraca[32]
  162.    
  163.     parse(vaultdata, iskustvoigraca, 31, leveligraca, 31);  
  164.    
  165.     iskustvo_igraca[id] = str_to_num(iskustvoigraca);  
  166.     nivo_igraca[id] = str_to_num(leveligraca);  
  167.     return PLUGIN_CONTINUE;  
  168. }
Advertisement
Add Comment
Please, Sign In to add comment