MegastoRM

lvlmod_pomoc

May 20th, 2012
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.48 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.  
  30. #define CIN_Razvodnik 0
  31. #define CIN_Desetar 1
  32. #define CIN_Mladji_Vodnik 2
  33. #define CIN_Vodnik 3
  34. #define CIN_Stariji_Vodnik 4
  35. #define CIN_Stariji_Vodnik_I 5
  36. #define CIN_Zastavnik 6
  37. #define CIN_Zastavnik_I 7
  38. #define CIN_Potporucnik 8
  39. #define CIN_Porucnik 9
  40. #define CIN_Kapetan 10
  41. #define CIN_Major 11
  42. #define CIN_Potpukovnik 12
  43. #define CIN_Pukovnik 13
  44. #define CIN_Brigadni_General 14
  45. #define CIN_General_Major 15
  46. #define CIN_General_Potpukovnik 13
  47. #define CIN_General 17
  48.  
  49. #define MAXCINOVI 18
  50.  
  51. new CinIgraca[33]
  52.  
  53. new const Cinovi[MAXCINOVI][] =
  54. {
  55.     "Razvodnik",
  56.     "Desetar",
  57.     "Mladji vodnik",
  58.     "Vodnik",
  59.     "Stariji vodnik",
  60.     "Stariji vodnik I",
  61.     "Zastavnik",
  62.     "Zastavnik I",
  63.     "Potporucnik",
  64.     "Porucnik",
  65.     "Kapetan",
  66.     "Major",
  67.     "Potpukovnik",
  68.     "Pukovnik",
  69.     "Brigadni general",
  70.     "General-Major",
  71.     "General-Potpukovnik",
  72.     "General"
  73.    
  74. }
  75.  
  76. new g_vault;  
  77.  
  78. new SyncHudObj;  
  79.  
  80. new iskustvo_igraca[33]
  81. new nivo_igraca[33] = 1;  
  82.  
  83. new maxlvl
  84. new kill_iskustvo;
  85.  
  86.  
  87. public plugin_init()  
  88. {  
  89.     register_plugin("Level Mod", "1.0", "AMD");  
  90.    
  91.     register_event("DeathMsg", "Death", "ade");
  92.     g_vault = nvault_open("xpmod");  
  93.    
  94.     SyncHudObj = CreateHudSyncObj();
  95.    
  96.    
  97.     kill_iskustvo = register_cvar("amx_killxp", "13");
  98.     maxlvl = register_cvar("amx_maxlevel","100000")
  99. }  
  100.  
  101. public client_connect(id)  
  102. {  
  103.     PonistiInfo(id);  
  104.     UcitajLevele(id);  
  105.     set_task(3.0, "PokaziInfo", id+672);  
  106. }  
  107.  
  108. public client_disconnect(id)  
  109. {  
  110.     SacuvajLevele(id);  
  111.     PonistiInfo(id);  
  112.     remove_task(id+672);  
  113. }  
  114. public PonistiInfo(id)  
  115. {  
  116.     nivo_igraca[id] = 0;  
  117.     iskustvo_igraca[id] = 0;  
  118. }  
  119.  
  120. public izracunajxp(level)
  121.     return level*3*10;
  122.  
  123.  
  124. public PokaziInfo(id)  
  125. {  
  126.     id -= 672;  
  127.    
  128.     set_task(0.1, "PokaziInfo", id+672);  
  129.    
  130.     if(nivo_igraca[id] < 5)
  131.     {
  132.         CinIgraca[id] = CIN_Razvodnik
  133.     }
  134.     if(nivo_igraca[id] >= 5 || nivo_igraca[id] <= 25)
  135.     {
  136.         CinIgraca[id] = CIN_Desetar
  137.     }
  138.     if(nivo_igraca[id] >= 25 || nivo_igraca[id] <= 50)
  139.     {
  140.         CinIgraca[id] = CIN_Mladji_Vodnik
  141.     }
  142.     if(nivo_igraca[id] >= 50 || nivo_igraca[id] <= 75)
  143.     {
  144.         CinIgraca[id] = CIN_Vodnik
  145.     }
  146.     if(nivo_igraca[id] >= 75 || nivo_igraca[id] <= 100)
  147.     {
  148.         CinIgraca[id] = CIN_Stariji_Vodnik
  149.     }
  150.     if(nivo_igraca[id] >= 100 || nivo_igraca[id] <= 125)
  151.     {
  152.         CinIgraca[id] = CIN_Stariji_Vodnik_I
  153.     }
  154.     if(nivo_igraca[id] >= 125 || nivo_igraca[id] <= 150)
  155.     {
  156.         CinIgraca[id] = CIN_Zastavnik
  157.     }
  158.     if(nivo_igraca[id] >= 150 || nivo_igraca[id] <= 175)
  159.     {
  160.         CinIgraca[id] = CIN_Zastavnik_I
  161.     }
  162.     if(nivo_igraca[id] >= 175 || nivo_igraca[id] <= 200)
  163.     {
  164.         CinIgraca[id] = CIN_Potporucnik
  165.     }
  166.     if(nivo_igraca[id] >= 200 || nivo_igraca[id] <= 215)
  167.     {
  168.         CinIgraca[id] = CIN_Potporucnik
  169.     }
  170.     if(nivo_igraca[id] >= 215 || nivo_igraca[id] <= 225)
  171.     {
  172.         CinIgraca[id] = CIN_Kapetan
  173.     }
  174.     if(nivo_igraca[id] >= 225 || nivo_igraca[id] <= 250)
  175.     {
  176.         CinIgraca[id] = CIN_Major
  177.     }
  178.     if(nivo_igraca[id] >= 250 || nivo_igraca[id] <= 275)
  179.     {
  180.         CinIgraca[id] = CIN_Potpukovnik
  181.     }
  182.     if(nivo_igraca[id] >= 275 || nivo_igraca[id] <= 300)
  183.     {
  184.         CinIgraca[id] = CIN_Pukovnik
  185.     }
  186.     if(nivo_igraca[id] >= 300 || nivo_igraca[id] <= 325)
  187.     {
  188.         CinIgraca[id] = CIN_Brigadni_General
  189.     }
  190.     if(nivo_igraca[id] >= 325 || nivo_igraca[id] <= 350)
  191.     {
  192.         CinIgraca[id] = CIN_General_Major
  193.     }
  194.     if(nivo_igraca[id] >= 350 || nivo_igraca[id] <= 375)
  195.     {
  196.         CinIgraca[id] = CIN_General_Potpukovnik
  197.     }
  198.     if(nivo_igraca[id] >= 375)
  199.     {
  200.         CinIgraca[id] = CIN_General
  201.     }
  202.    
  203.     if(!is_user_alive(id))  
  204.     {  
  205.         new target = entity_get_int(id, EV_INT_iuser2);  
  206.        
  207.         if(target == 0)  
  208.         {  
  209.             return;  
  210.         }      
  211.         set_hudmessage(255, 212, 42, -1.0, 0.0, 0, 0.0, 0.3, 0.0, 0.0);  
  212.         ShowSyncHudMsg(id, SyncHudObj, "Iskustvo : %i / %i ^nLevel: %i^nRank: %s", iskustvo_igraca[target],izracunajxp(nivo_igraca[target]), nivo_igraca[target], Cinovi[CinIgraca[target]]);  
  213.     }  
  214.     else  
  215.     {  
  216.         set_hudmessage(0, 200, 250, -1.0, 0.0, 0, 0.0, 0.3, 0.0, 0.0);  
  217.         ShowSyncHudMsg(id, SyncHudObj, "[Iskustvo : %i / %i]^n[Level: %i]^n[Rank: %s]", iskustvo_igraca[id],izracunajxp(nivo_igraca[id]), nivo_igraca[id], Cinovi[CinIgraca[id]]);  
  218.     }  
  219. }    
  220.  
  221. public Death()  
  222. {  
  223.     new id = read_data(2);  
  224.     new napadac = read_data(1);  
  225.    
  226.     if(napadac != id && is_user_connected(napadac))  
  227.     {  
  228.         new novo_iskustvo = get_pcvar_num(kill_iskustvo);
  229.        
  230.         iskustvo_igraca[napadac] += novo_iskustvo
  231.         ProveriNivo(napadac);  
  232.     }  
  233. }      
  234.  
  235. public ProveriNivo(id)
  236. {    
  237.     if(nivo_igraca[id] < maxlvl)
  238.     {
  239.         while(iskustvo_igraca[id] >= izracunajxp(nivo_igraca[id]))
  240.         {
  241.             nivo_igraca[id]++;
  242.         }
  243.         if(nivo_igraca[id] > maxlvl)
  244.         {
  245.             nivo_igraca[id] = maxlvl
  246.            
  247.         }
  248.     }
  249.     SacuvajLevele(id);
  250. }
  251.  
  252. public SacuvajLevele(id)  
  253. {  
  254.     new AuthID[35];  
  255.     get_user_authid(id, AuthID, 34);  
  256.    
  257.     new vaultkey[64], vaultdata[256];  
  258.    
  259.     format(vaultkey, 63, "%s-lvl", AuthID);  
  260.     format(vaultdata, 255, "%i#%i#", iskustvo_igraca[id], nivo_igraca[id]);  
  261.    
  262.     nvault_set(g_vault, vaultkey, vaultdata);  
  263.    
  264.     return PLUGIN_CONTINUE;  
  265. }  
  266.  
  267. public UcitajLevele(id)  
  268. {  
  269.     new AuthID[35];  
  270.     get_user_authid(id, AuthID, 34);  
  271.    
  272.     new vaultkey[64], vaultdata[256];  
  273.    
  274.     format(vaultkey, 63, "%s-lvl", AuthID);  
  275.     format(vaultdata, 255, "%i#%i#", iskustvo_igraca[id], nivo_igraca[id] );  
  276.    
  277.     nvault_get(g_vault, vaultkey, vaultdata, 255);  
  278.    
  279.     replace_all(vaultdata, 255, "#", " ");  
  280.    
  281.     new iskustvoigraca[32], leveligraca[32]
  282.    
  283.     parse(vaultdata, iskustvoigraca, 31, leveligraca, 31);  
  284.    
  285.     iskustvo_igraca[id] = str_to_num(iskustvoigraca);  
  286.     nivo_igraca[id] = str_to_num(leveligraca);  
  287.     return PLUGIN_CONTINUE;  
  288. }
Advertisement
Add Comment
Please, Sign In to add comment