MegastoRM

level_mod

Apr 25th, 2012
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.71 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <engine>
  4. #include <nvault>
  5.  
  6.  
  7. #define PLUGIN "Levelling System"
  8. #define VERSION "1.0b"
  9. #define AUTHOR "AMD"
  10. #define info 672
  11. #define provera 704
  12. #define brzina 832
  13.  
  14.  
  15. new skokovi[33];
  16.  
  17. new SyncHudObj;
  18. new SyncHudObj3;
  19. new g_vault;
  20. new kill_xp
  21. new ID_igraca[33][35];
  22. new nivo[33]
  23. new iskustvo[33];
  24. new const iskustvo_za_nivo[] = {7,28,63,112,175,252,343,448,567,700,847,1008,1183,1372,1575,1792,2023,2268,2527,
  25.     2800,3087,3388,3703,4032,4375,4732,5103,5488,5887,6300,6727,7168,7623,8092,8575,9072,9583,10108,10647,
  26.     11200,11767,12348,12943,13552,14175,14812,15463,16128,16807,17500,18207,18928,19663,20412,21175,21952,22743,23548,24367,
  27.     25200,26047,26908,27783,28672,29575,30492,31423,32368,33327,34300,35287,36288,37303,38332,39375,40432,41503,42588,43687,
  28.     44800,45927,47068,48223,49392,50575,51772,52983,54208,55447,56700,57967,59248,60543,61852,63175,64512,65863,67228,68607,
  29.     70000,71407,72828,74263,75712,77175,78652,80143,81648,83167,84700,86247,87808,89383,90972,92575,94192,95823,97468,99127,
  30.     100800,102487,104188,105903,107632,109375,111132,112903,114688,116487,118300,120127,121968,123823,125692,127575,129472,131383,133308,135247,
  31.     137200,139167,141148,143143,145152,147175,149212,151263,153328,155407,157500,159607,161728,163863,166012,168175,170352,172543,174748,176967,
  32.     179200,181447,183708,185983,188272,190575,192892,195223,197568,199927,202300,204687,207088,209503,211932,214375,216832,219303,221788,224287,
  33.     226800,229327,231868,234423,236992,239575,242172,244783,247408,250047,252700,255367,258048,260743,263452,266175,268912,271663,274428,277207,
  34.     280000,282807,285628,288463,291312,294175,297052,299943,302848,305767,308700,311647,314608,317583,320572,323575,326592,329623,332668,335727,
  35.     338800,341887,344988,348103,351232,354375,357532,360703,363888,367087,370300,373527,376768,380023,383292,386575,389872,393183,396508,399847,
  36.     403200,406567,409948,413343,416752,420175,423612,427063,430528,434007,437500,441007,444528,448063,451612,455175,458752,462343,465948,469567,
  37.     473200,476847,480508,484183,487872,491575,495292,499023,502768,506527,510300,514087,517888,521703,525532,529375,533232,537103,540988,544887,
  38.     548800,552727,556668,560623,564592,568575,572572,576583,580608,584647,588700,592767,596848,600943,605052,609175,613312,617463,621628,625807,
  39.     630000,634207,638428,642663,646912,651175,655452,659743,664048,668367,672700,677047,681408,685783,690172,694575,698992,703423,707868,712327,
  40.     716800,721287,725788,730303,734832,739375,743932,748503,753088,757687,762300,766927,771568,776223,780892,785575,790272,794983,799708,804447,
  41.     809200,813967,818748,823543,828352,833175,838012,842863,847728,852607,857500,862407,867328,872263,877212,882175,887152,892143,897148,902167,
  42.     907200,912247,917308,922383,927472,932575,937692,942823,947968,953127,958300,963487,968688,973903,979132,984375,989632,994903,1000188,1005487,
  43.     1010800,1016127,1021468,1026823,1032192,1037575,1042972,1048383,1053808,1059247,1064700,1070167,1075648,1081143,1086652,1092175,1097712,1103263,1108828,1114407,
  44.     1120000,1125607,1131228,1136863,1142512,1148175,1153852,1159543,1165248,1170967,1176700,1182447,1188208,1193983,1199772,1205575,1211392,1217223,1223068,1228927,
  45.     1234800,1240687,1246588,1252503,1258432,1264375,1270332,1276303,1282288,1288287,1294300,1300327,1306368,1312423,1318492,1324575,1330672,1336783,1342908,1349047,
  46.     1355200,1361367,1367548,1373743,1379952,1386175,1392412,1398663,1404928,1411207,1417500,1423807,1430128,1436463,1442812,1449175,1455552,1461943,1468348,1474767,
  47.     1481200,1487647,1494108,1500583,1507072,1513575,1520092,1526623,1533168,1539727,1546300,1552887,1559488,1566103,1572732,1579375,1586032,1592703,1599388,1606087,
  48.     1612800,1619527,1626268,1633023,1639792,1646575,1653372,1660183,1667008,1673847,1680700,1687567,1694448,1701343,1708252,1715175,1722112,1729063,1736028,1743007,
  49.     1750000,1757007,1764028,1771063,1778112,1785175,1792252,1799343,1806448,1813567,1820700,1827847,1835008,1842183,1849372,1856575,1863792,1871023,1878268,1885527,
  50.     1892800,1900087,1907388,1914703,1922032,1929375,1936732,1944103,1951488,1958887,1966300,1973727,1981168,1988623,1996092,2003575,2011072,2018583,2026108,2033647,
  51.     2041200,2048767,2056348,2063943,2071552,2079175,2086812,2094463,2102128,2109807,2117500,2125207,2132928,2140663,2148412,2156175,2163952,2171743,2179548,2187367,
  52.     2195200,2203047,2210908,2218783,2226672,2234575,2242492,2250423,2258368,2266327,2274300,2282287,2290288,2298303,2306332,2314375,2322432,2330503,2338588,2346687,
  53.     2354800,2362927,2371068,2379223,2387392,2395575,2403772,2411983,2420208,2428447,2436700,2444967,2453248,2461543,2469852,2478175,2486512,2494863,2503228,2511607,
  54.     2520000,2528407,2536828,2545263,2553712,2562175,2570652,2579143,2587648,2596167,2604700,2613247,2621808,2630383,2638972,2647575,2656192,2664823,2673468,2682127,
  55.     2690800,2699487,2708188,2716903,2725632,2734375,2743132,2751903,2760688,2769487,2778300,2787127,2795968,2804823,2813692,2822575,2831472,2840383,2849308,2858247,
  56.     2867200,2876167,2885148,2894143,2903152,2912175,2921212,2930263,2939328,2948407,2957500,2966607,2975728,2984863,2994012,3003175,3012352,3021543,3030748,3039967,
  57.     3049200,3058447,3067708,3076983,3086272,3095575,3104892,3114223,3123568,3132927,3142300,3151687,3161088,3170503,3179932,3189375,3198832,3208303,3217788,3227287,
  58.     3236800,3246327,3255868,3265423,3274992,3284575,3294172,3303783,3313408,3323047,3332700,3342367,3352048,3361743,3371452,3381175,3390912,3400663,3410428,3420207,
  59.     3430000,3439807,3449628,3459463,3469312,3479175,3489052,3498943,3508848,3518767,3528700,3538647,3548608,3558583,3568572,3578575,3588592,3598623,3608668,3618727,
  60.     3628800,3638887,3648988,3659103,3669232,3679375,3689532,3699703,3709888,3720087,3730300,3740527,3750768,3761023,3771292,3781575,3791872,3802183,3812508,3822847,
  61.     3833200,3843567,3853948,3864343,3874752,3885175,3895612,3906063,3916528,3927007,3937500,3948007,3958528,3969063,3979612,3990175,4000752,4011343,4021948,4032567,
  62.     4043200,4053847,4064508,4075183,4085872,4096575,4107292,4118023,4128768,4139527,4150300,4161087,4171888,4182703,4193532,4204375,4215232,4226103,4236988,4247887,
  63.     4258800,4269727,4280668,4291623,4302592,4313575,4324572,4335583,4346608,4357647,4368700,4379767,4390848,4401943,4413052,4424175,4435312,4446463,4457628,4468807,
  64.     4480000,4491207,4502428,4513663,4524912,4536175,4547452,4558743,4570048,4581367,4592700,4604047,4615408,4626783,4638172,4649575,4660992,4672423,4683868,4695327,
  65.     4706800,4718287,4729788,4741303,4752832,4764375,4775932,4787503,4799088,4810687,4822300,4833927,4845568,4857223,4868892,4880575,4892272,4903983,4915708,4927447,
  66.     4939200,4950967,4962748,4974543,4986352,4998175,5010012,5021863,5033728,5045607,5057500,5069407,5081328,5093263,5105212,5117175,5129152,5141143,5153148,5165167,
  67.     5177200,5189247,5201308,5213383,5225472,5237575,5249692,5261823,5273968,5286127,5298300,5310487,5322688,5334903,5347132,5359375,5371632,5383903,5396188,5408487,
  68.     5420800,5433127,5445468,5457823,5470192,5482575,5494972,5507383,5519808,5532247,5544700,5557167,5569648,5582143,5594652,5607175,5619712,5632263,5644828,5657407,
  69.     5670000,5682607,5695228,5707863,5720512,5733175,5745852,5758543,5771248,5783967,5796700,5809447,5822208,5834983,5847772,5860575,5873392,5886223,5899068,5911927,
  70.     5924800,5937687,5950588,5963503,5976432,5989375,6002332,6015303,6028288,6041287,6054300,6067327,6080368,6093423,6106492,6119575,6132672,6145783,6158908,6172047,
  71.     6185200,6198367,6211548,6224743,6237952,6251175,6264412,6277663,6290928,6304207,6317500,6330807,6344128,6357463,6370812,6384175,6397552,6410943,6424348,6437767,
  72.     6451200,6464647,6478108,6491583,6505072,6518575,6532092,6545623,6559168,6572727,6586300,6599887,6613488,6627103,6640732,6654375,6668032,6681703,6695388,6709087,
  73.     6722800,6736527,6750268,6764023,6777792,6791575,6805372,6819183,6833008,6846847,6860700,6874567,6888448,6902343,6916252,6930175,6944112,6958063,6972028,6986007,//1000
  74.     7000000,7014007,7028028,7042063,7056112,7070175,7084252,7098343,7112448,7126567,7140700,7154847,7169008,7183183,7197372,7211575,7225792,7240023,7254268,7268527,
  75.     7282800,7297087,7311388,7325703,7340032,7354375,7368732,7383103,7397488,7411887,7426300,7440727,7455168,7469623,7484092,7498575,7513072,7527583,7542108,7556647,
  76.     7571200,7585767,7600348,7614943,7629552,7644175,7658812,7673463,7688128,7702807,7717500,7732207,7746928,7761663,7776412,7791175,7805952,7820743,7835548,7850367,
  77.     7865200,7880047,7894908,7909783,7924672,7939575,7954492,7969423,7984368,7999327,8014300,8029287,8044288,8059303,8074332,8089375,8104432,8119503,8134588,8149687,
  78.     8164800,8179927,8195068,8210223,8225392,8240575,8255772,8270983,8286208,8301447,8316700,8331967,8347248,8362543,8377852,8393175,8408512,8423863,8439228,8454607,
  79.     8470000,8485407,8500828,8516263,8531712,8547175,8562652,8578143,8593648,8609167,8624700,8640247,8655808,8671383,8686972,8702575,8718192,8733823,8749468,8765127,
  80.     8780800,8796487,8812188,8827903,8843632,8859375,8875132,8890903,8906688,8922487,8938300,8954127,8969968,8985823,9001692,9017575,9033472,9049383,9065308,9081247,
  81.     9097200,9113167,9129148,9145143,9161152,9177175,9193212,9209263,9225328,9241407,9257500,9273607,9289728,9305863,9322012,9338175,9354352,9370543,9386748,9402967,
  82.     9419200,9435447,9451708,9467983,9484272,9500575,9516892,9533223,9549568,9565927,9582300,9598687,9615088,9631503,9647932,9664375,9680832,9697303,9713788,9730287,
  83.     9746800,9763327,9779868,9796423,9812992,9829575,9846172,9862783,9879408,9896047,9912700,9929367,9946048,9962743,9979452,9996175,10012912,10029663,10046428,10063207,
  84.     10080000,10112000}
  85.    
  86. new const cinovi[][] =
  87. {    
  88.         "Novajlija",
  89.         "Vojnik",
  90.         "Razvodnik",
  91.         "Desetar",
  92.         "Mladji Vodnik",
  93.         "Podoficir",
  94.         "Vodnik",
  95.         "Stariji Vodnik",
  96.         "Zastavnik",
  97.         "Oficir",
  98.         "Potporucnik",
  99.         "Porucnik",
  100.         "Kapetan",
  101.         "Major",
  102.         "Potpukovnik",
  103.         "Pukovnik",
  104.         "General",
  105.         "General Major",
  106.         "General Potpukovnik",
  107.         "General Pukovnik",
  108.         "General Armije"
  109. }
  110.  
  111.    
  112. public plugin_init()
  113. {
  114.     register_plugin(PLUGIN, VERSION, AUTHOR);
  115.    
  116.     g_vault = nvault_open("Experience");
  117.    
  118.     register_forward(FM_CmdStart, "CmdStart");
  119.     register_event("DeathMsg", "Death", "ade");
  120.     register_clcmd("say /moc","HudInfo")
  121.    
  122.     kill_xp = register_cvar("kill_iskustvo","1")
  123.    
  124.    
  125.     SyncHudObj = CreateHudSyncObj();
  126.     SyncHudObj3 = CreateHudSyncObj();
  127. }
  128.  
  129. public CmdStart(id, uc_handle)
  130. {
  131.     if(!is_user_alive(id))
  132.         return FMRES_IGNORED;
  133.    
  134.     new button = get_uc(uc_handle, UC_Buttons);
  135.     new oldbutton = get_user_oldbutton(id);
  136.     new flags = get_entity_flags(id);
  137.    
  138.     if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && skokovi[id] > 0)
  139.     {
  140.         skokovi[id]--;
  141.         new Float:velocity[3];
  142.         entity_get_vector(id,EV_VEC_velocity,velocity);
  143.         velocity[2] = random_float(265.0,285.0);
  144.         entity_set_vector(id,EV_VEC_velocity,velocity);
  145.     }
  146.     else if(flags & FL_ONGROUND && nivo[id] >= 15)
  147.     {  
  148.         skokovi[id] = 0;
  149.         if(get_user_flags(id) & ADMIN_LEVEL_A)
  150.             skokovi[id]+=3;
  151.        
  152.     }
  153.    
  154.     if(button & IN_ATTACK && nivo[id] >= 100)
  155.     {
  156.         new Float:punchangle[3];
  157.        
  158.         if(get_user_flags(id) & ADMIN_LEVEL_A)
  159.             entity_set_vector(id, EV_VEC_punchangle, punchangle);
  160.        
  161.     }
  162.    
  163.     return FMRES_IGNORED;
  164. }
  165. public resetuj(id)
  166. {
  167.     nivo[id] = 0
  168. }
  169. public Death()
  170. {
  171.     new id = read_data(2);
  172.     new attacker = read_data(1);
  173.    
  174.     if(!is_user_alive(attacker) || !is_user_connected(attacker))
  175.         return PLUGIN_CONTINUE;
  176.    
  177.     if(nivo[id] >= 30)
  178.     {
  179.     resetuj(id)
  180.     }
  181.    
  182.     if(get_user_team(id) != get_user_team(attacker))
  183.     {
  184.         iskustvo[attacker] += get_pcvar_num(kill_xp);
  185.     }
  186.     UcitajNivo(attacker)
  187.    
  188.     SacuvajPodatke(id);
  189.     return PLUGIN_CONTINUE;
  190. }
  191.  
  192. public client_authorized(id)
  193. {
  194.     get_user_authid(id, ID_igraca[id], 34);
  195.    
  196.     remove_task(id+info);
  197.     remove_task(id+provera);
  198.     UcitajPodatke(id)
  199.    
  200.     set_task(3.0, "PokaziInformacije", id+info);
  201.    
  202. }
  203.  
  204. public client_connect(id)
  205. {
  206.     UcitajPodatke(id)  
  207. }
  208.  
  209. public client_disconnect(id)
  210. {
  211.     remove_task(id+info);
  212.     remove_task(id+provera);
  213.    
  214.     SacuvajPodatke(id);
  215. }
  216.  
  217. public SacuvajPodatke(id)
  218. {
  219.     new AuthID[64], vaultdata[50];
  220.     get_user_authid(id, AuthID, charsmax(AuthID));
  221.     formatex(vaultdata, charsmax(vaultdata), "#%i#%i", iskustvo[id], nivo[id]);
  222.     nvault_set(g_vault, AuthID, vaultdata);
  223.     return PLUGIN_CONTINUE;
  224. }
  225.  
  226. public UcitajPodatke(id)
  227. {
  228.     new AuthID[64], vaultdata[100];
  229.    
  230.     get_user_authid(id, AuthID, charsmax(AuthID));
  231.     nvault_get(g_vault, AuthID, vaultdata, charsmax(vaultdata));
  232.     replace_all(vaultdata, charsmax(vaultdata), "#", " ");
  233.    
  234.     new PlayerData[2][33];
  235.    
  236.     parse(vaultdata, PlayerData[0], 32, PlayerData[1], 32);
  237.    
  238.     iskustvo[id] = str_to_num(PlayerData[0]);
  239.     nivo[id] = str_to_num(PlayerData[1]);
  240.    
  241.     return PLUGIN_CONTINUE;
  242. }
  243. public UcitajNivo(id)
  244. {  
  245.     if(nivo[id] < 2500)
  246.     {
  247.         while(iskustvo[id] >= iskustvo_za_nivo[nivo[id]])
  248.         {
  249.             nivo[id]++;
  250.             set_hudmessage(60, 200, 25, 0.01, 0.35, 0, 1.0, 2.0, 0.1, 0.2, 2);
  251.             ShowSyncHudMsg(id, SyncHudObj3, "Dobrodosao na %d nivo!",nivo[id]);
  252.         }
  253.        
  254.     }
  255.     SacuvajPodatke(id);
  256.     SuperPower(id)
  257. }
  258.  
  259. public SuperPower(id)
  260. {  
  261.     if(nivo[id] >= 15 && nivo[id] <=99)
  262.     {
  263.         set_hudmessage(60, 200, 25, 0.01, 0.5, 0, 1.0, 2.0, 0.1, 0.2, 2);
  264.         ShowSyncHudMsg(id, SyncHudObj3, "Dobio si Multijump!");
  265.        
  266.     }
  267.     else if(nivo[id] >= 100)
  268.     {
  269.         set_hudmessage(60, 200, 25, 0.01, 0.5, 0, 1.0, 2.0, 0.1, 0.2, 2);
  270.         ShowSyncHudMsg(id, SyncHudObj3, "Dobio si No Recoil!");
  271.        
  272.     }
  273. }
  274.  
  275. public HudInfo(id)
  276. {
  277.    
  278.     if(is_user_alive(id) && nivo[id] >= 15 && nivo[id] <= 99)
  279.     {
  280.         set_hudmessage(255, 0, 0, 0.0, 0.35, 0, 6.0, 15.0)
  281.         show_hudmessage(id, "Specijalna moc:^nMultijump")
  282.     }
  283.    
  284.     else if(is_user_alive(id) && nivo[id] >= 100)
  285.     {
  286.         set_hudmessage(0, 250, 200, 0.0, 0.35, 0, 6.0, 15.0)
  287.         show_hudmessage(id, "Specijalna moc:^nNo Recoil")
  288.     }
  289.     else if(is_user_alive(id) && nivo[id] <= 15)
  290.     {
  291.         set_hudmessage(255, 0, 0, 0.0, 0.35, 0, 6.0, 15.0)
  292.         show_hudmessage(id, "Trenutno nemas^n specijalnu moc")
  293.     }
  294.    
  295. }
  296. public PokaziInformacije(id)
  297. {
  298.     id -= info;
  299.    
  300.     set_task(0.1, "PokaziInformacije", id+info);
  301.    
  302.     if(!is_user_alive(id))
  303.     {
  304.         new target = entity_get_int(id, EV_INT_iuser2);
  305.        
  306.         if(target == 0)
  307.             return PLUGIN_CONTINUE;
  308.        
  309.         set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
  310.         ShowSyncHudMsg(id, SyncHudObj, "Iskustvo : %i / %i^nLevel : %i", iskustvo[target], iskustvo_za_nivo[nivo[target]], nivo[target]);
  311.        
  312.         return PLUGIN_CONTINUE;
  313.     }
  314.     set_hudmessage(255, 10, 10, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
  315.     ShowSyncHudMsg(id, SyncHudObj, "[Helti: %i]^n[Armor: %i]^n[Iskustvo : %i / %i]^n[Level : %i]",get_user_health(id),get_user_armor(id), iskustvo[id], iskustvo_za_nivo[nivo[id]], nivo[id]);
  316.     return PLUGIN_CONTINUE;
  317. }  
  318.  
  319.  
  320. public plugin_end()
  321. {
  322.     nvault_close( g_vault )
  323. }
Advertisement
Add Comment
Please, Sign In to add comment