MegastoRM

Dm_Lvl_Mod.sma

Apr 21st, 2012
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.03 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[] = {0,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};
  85.  
  86. public plugin_init()
  87. {
  88.     register_plugin(PLUGIN, VERSION, AUTHOR);
  89.    
  90.     g_vault = nvault_open("Experience");
  91.    
  92.     register_forward(FM_CmdStart, "CmdStart");
  93.     register_event("DeathMsg", "Death", "ade");
  94.     register_clcmd("say /moc","HudInfo")
  95.    
  96.     kill_xp = register_cvar("kill_iskustvo","1")
  97.    
  98.    
  99.     SyncHudObj = CreateHudSyncObj();
  100.     SyncHudObj3 = CreateHudSyncObj();
  101. }
  102.  
  103. public CmdStart(id, uc_handle)
  104. {
  105.     if(!is_user_alive(id))
  106.         return FMRES_IGNORED;
  107.    
  108.     new button = get_uc(uc_handle, UC_Buttons);
  109.     new oldbutton = get_user_oldbutton(id);
  110.     new flags = get_entity_flags(id);
  111.    
  112.     if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && skokovi[id] > 0)
  113.     {
  114.         skokovi[id]--;
  115.         new Float:velocity[3];
  116.         entity_get_vector(id,EV_VEC_velocity,velocity);
  117.         velocity[2] = random_float(265.0,285.0);
  118.         entity_set_vector(id,EV_VEC_velocity,velocity);
  119.     }
  120.     else if(flags & FL_ONGROUND && nivo[id] >= 15)
  121.     {  
  122.         skokovi[id] = 0;
  123.         if(get_user_flags(id) & ADMIN_LEVEL_A)
  124.             skokovi[id]+=3;
  125.        
  126.     }
  127.    
  128.     if(button & IN_ATTACK && nivo[id] >= 100)
  129.     {
  130.         new Float:punchangle[3];
  131.        
  132.         if(get_user_flags(id) & ADMIN_LEVEL_A)
  133.             entity_set_vector(id, EV_VEC_punchangle, punchangle);
  134.        
  135.     }
  136.    
  137.     return FMRES_IGNORED;
  138. }
  139.  
  140. public Death()
  141. {
  142.     new id = read_data(2);
  143.     new attacker = read_data(1);
  144.    
  145.     if(!is_user_alive(attacker) || !is_user_connected(attacker))
  146.         return PLUGIN_CONTINUE;
  147.    
  148.     if(get_user_team(id) != get_user_team(attacker))
  149.     {
  150.         iskustvo[attacker] += get_pcvar_num(kill_xp);
  151.     }
  152.     UcitajNivo(attacker)
  153.    
  154.     SacuvajPodatke(id);
  155.     return PLUGIN_CONTINUE;
  156. }
  157.  
  158. public client_authorized(id)
  159. {
  160.     get_user_authid(id, ID_igraca[id], 34);
  161.    
  162.     remove_task(id+info);
  163.     remove_task(id+provera);
  164.     UcitajPodatke(id)
  165.    
  166.     set_task(3.0, "PokaziInformacije", id+info);
  167.    
  168. }
  169.  
  170. public client_connect(id)
  171. {
  172.     UcitajPodatke(id)  
  173. }
  174.  
  175. public client_disconnect(id)
  176. {
  177.     remove_task(id+info);
  178.     remove_task(id+provera);
  179.    
  180.     SacuvajPodatke(id);
  181. }
  182.  
  183. public SacuvajPodatke(id)
  184. {
  185.     new AuthID[64], vaultdata[50];
  186.     get_user_authid(id, AuthID, charsmax(AuthID));
  187.     formatex(vaultdata, charsmax(vaultdata), "#%i#%i", iskustvo[id], nivo[id]);
  188.     nvault_set(g_vault, AuthID, vaultdata);
  189. }
  190.  
  191. public UcitajPodatke(id)
  192. {
  193.     new AuthID[64], vaultdata[100];
  194.    
  195.     get_user_authid(id, AuthID, charsmax(AuthID));
  196.     nvault_get(g_vault, AuthID, vaultdata, charsmax(vaultdata));
  197.     replace_all(vaultdata, charsmax(vaultdata), "#", " ");
  198.    
  199.     new PlayerData[2][33];
  200.    
  201.     parse(vaultdata, PlayerData, 32, PlayerData, 32);
  202.    
  203.     iskustvo[id] = str_to_num(PlayerData[0]);
  204.     nivo[id] = str_to_num(PlayerData[1]);
  205.    
  206. }
  207. public UcitajNivo(id)
  208. {  
  209.     if(nivo[id] < 2500)
  210.     {
  211.         while(iskustvo[id] >= iskustvo_za_nivo[nivo[id]])
  212.         {
  213.             nivo[id]++;
  214.             set_hudmessage(60, 200, 25, 0.01, 0.35, 0, 1.0, 2.0, 0.1, 0.2, 2);
  215.             ShowSyncHudMsg(id, SyncHudObj3, "Dobrodosao na %d nivo!",nivo[id]);
  216.         }
  217.        
  218.     }
  219.     SacuvajPodatke(id);
  220.     SuperPower(id)
  221. }
  222.  
  223. public SuperPower(id)
  224. {  
  225.     if(nivo[id] >= 15 && nivo[id] <=99)
  226.     {
  227.         set_hudmessage(60, 200, 25, 0.01, 0.5, 0, 1.0, 2.0, 0.1, 0.2, 2);
  228.         ShowSyncHudMsg(id, SyncHudObj3, "Dobio si Multijump!");
  229.        
  230.     }
  231.     else if(nivo[id] >= 100)
  232.     {
  233.         set_hudmessage(60, 200, 25, 0.01, 0.5, 0, 1.0, 2.0, 0.1, 0.2, 2);
  234.         ShowSyncHudMsg(id, SyncHudObj3, "Dobio si No Recoil!");
  235.        
  236.     }
  237. }
  238.  
  239. public HudInfo(id)
  240. {
  241.    
  242.     if(is_user_alive(id) && nivo[id] >= 15 && nivo[id] <= 99)
  243.     {
  244.         set_hudmessage(255, 0, 0, 0.0, 0.35, 0, 6.0, 15.0)
  245.         show_hudmessage(id, "Specijalna moc:^nMultijump")
  246.     }
  247.    
  248.     else if(is_user_alive(id) && nivo[id] >= 100)
  249.     {
  250.         set_hudmessage(0, 250, 200, 0.0, 0.35, 0, 6.0, 15.0)
  251.         show_hudmessage(id, "Specijalna moc:^nNo Recoil")
  252.     }
  253.     else if(is_user_alive(id) && nivo[id] <= 15)
  254.     {
  255.         set_hudmessage(255, 0, 0, 0.0, 0.35, 0, 6.0, 15.0)
  256.         show_hudmessage(id, "Trenutno nemas^n specijalnu moc")
  257.     }
  258.    
  259. }
  260. public PokaziInformacije(id)
  261. {
  262.     id -= info;
  263.    
  264.     set_task(0.1, "PokaziInformacije", id+info);
  265.    
  266.     if(!is_user_alive(id))
  267.     {
  268.         new target = entity_get_int(id, EV_INT_iuser2);
  269.        
  270.         if(target == 0)
  271.             return PLUGIN_CONTINUE;
  272.        
  273.         set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
  274.         ShowSyncHudMsg(id, SyncHudObj, "Iskustvo : %i / %i^nLevel : %i", iskustvo[target], iskustvo_za_nivo[nivo[target]], nivo[target]);
  275.        
  276.         return PLUGIN_CONTINUE;
  277.     }
  278.     set_hudmessage(255, 10, 10, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
  279.     ShowSyncHudMsg(id, SyncHudObj, "[Helti: %i]^n[Armor: %i]^n[Iskustvo : %i / %i]^n[Nivo : %i]",get_user_health(id),get_user_armor(id), iskustvo[id], iskustvo_za_nivo[nivo[id]], nivo[id]);
  280.     return PLUGIN_CONTINUE;
  281. }  
  282.  
  283.  
  284. public plugin_end()
  285. {
  286.     nvault_close( g_vault )
  287. }
Advertisement
Add Comment
Please, Sign In to add comment