Advertisement
Guest User

Untitled

a guest
Nov 27th, 2011
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 80.55 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fun>
  4. #include <cstrike>
  5. #include <fakemeta>
  6. #include <engine>
  7. #include <hamsandwich>
  8. #include <nvault>
  9.  
  10.  
  11. #define PLUGIN "Call of Duty: MW Mod"
  12. #define VERSION "1.0"
  13. #define AUTHOR "QTM_Peyote,johnC,GranTorino"
  14. #define TRANSLATOR "HIGHNESS"
  15.  
  16. #define STANDARD_FAST 250.0
  17.  
  18. #define TASK_SHOW_INFORMATION 672
  19. #define TASK_RAISE 704
  20. #define TASK_TRAINING_SANITARY 736
  21. #define TASK_SHOW_ADVERTISEMENT 768
  22. #define TASK_SET_FAST 832
  23.  
  24. // weapons offsets
  25. #define OFFSET_CLIPAMMO 51
  26. #define OFFSET_LINUX_WEAPONS 4
  27. #define fm_cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, OFFSET_CLIPAMMO, %2, OFFSET_LINUX_WEAPONS)
  28.  
  29. // players offsets
  30. #define m_pActivation 373
  31.  
  32. const NOCLIP_WPN_BS = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))
  33.  
  34. new const g_MaxAmmoClip[] =
  35. {
  36. 0,
  37. 13, //CSW_P228
  38. 0,
  39. 10, //CSW_SCOUT
  40. 0, //CSW_HEGRENADE
  41. 7, //CSW_XM1014
  42. 0, //CSW_C4
  43. 30,//CSW_MAC10
  44. 30, //CSW_AUG
  45. 0, //CSW_SMOKEGRENADE
  46. 15,//CSW_ELITE
  47. 20,//CSW_FIVESEVEN
  48. 25,//CSW_UMP45
  49. 30, //CSW_SG550
  50. 35, //CSW_GALIL
  51. 25, //CSW_FAMAS
  52. 12,//CSW_USP
  53. 20,//CSW_GLOCK18
  54. 10, //CSW_AWP
  55. 30,//CSW_MP5NAVY
  56. 100,//CSW_M249
  57. 8, //CSW_M3
  58. 30, //CSW_M4A1
  59. 30,//CSW_TMP
  60. 20, //CSW_G3SG1
  61. 0, //CSW_FLASHBANG
  62. 7, //CSW_DEAGLE
  63. 30, //CSW_SG552
  64. 30, //CSW_AK47
  65. 0, //CSW_KNIFE
  66. 50//CSW_P90
  67. }
  68.  
  69. //#define BOT 1
  70.  
  71. new SyncHudObj;
  72. new SyncHudObj2;
  73. new SyncHudObj3;
  74. new g_msg_screenfade;
  75.  
  76. new sprite_white;
  77. new sprite_blast;
  78.  
  79. new g_vault;
  80.  
  81. new podkladajacy;
  82. new disarming;
  83.  
  84. new experience_for_murder;
  85. new experience_for_bomb;
  86. new dropitem;
  87. new itemalea;
  88.  
  89. new Clothing_CT[4][]={"sas","gsg9","urban","gign"};
  90. new Clothing_Terro[4][]={"arctic","leet","guerilla","terror"};
  91.  
  92. new const maxAmmo[31]={0,52,0,90,1,32,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,32,90,120,90,2,35,90,90,0,100};
  93. new const maxClip[31] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20,
  94. 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 };
  95.  
  96. new information_item_player[33][2];
  97. new const names_objects[][] =
  98. {
  99. "None",
  100. "Bottes d'Assaut", //1
  101. "Double Veste", //2
  102. "Veste Renforcee", //3
  103. "Couteau Veteran", //4
  104. "Surprise Ennemi", //5
  105. "Voile du Ninja", //6
  106. "Morphine", //7
  107. "Couteau Commando", //8
  108. "Lunettes d'Espion",
  109. "Grenade Mysterieuses",
  110. "Pieds de Ninja", //11
  111. "Secret Militaire", //12
  112. "AWP Sniper",//13
  113. "Adrenaline",//14
  114. "Mysterieux Soldat",//15
  115. "Formation Sanitaire",//16
  116. "Veste de la NASA",//17
  117. "Formation Veteran",//18
  118. "Kit de survie",//19
  119. "No recoil",//20
  120. "Cartouches de Titanes",//21
  121. "Cartouches du Colonel",//22
  122. "Limitation du recoil",//23
  123. "Bouclier SWAT",//24
  124. "Recrue experimentee",//25
  125. "Armure",//26
  126. "Les notes du Capitaine",//27
  127. "Jet Module",//28
  128. "Kamikaze"
  129.  
  130. };
  131.  
  132. new const descriptions_objects[][] = {"Vous devez tuer un ennemi pour obtenir un Item",
  133. "Cours silencieusement",
  134. "Reduit les dommages subis",
  135. "Reduit les dommages subis",
  136. "Les coups de couteaux font plus de dommages",
  137. "Vous faites 2x plus de dommages en touchant un ennemi dans le dos",
  138. "Vous rend partiellement invisible",
  139. "1/3 chance de respawn quand vous mourrez",
  140. "Tue instantanement avec le couteau",
  141. "Vous avez 1/3 chance de tuer directement avec la HE. Vous avez l'apparence de l'ennemi",
  142. "Tue directement avec la HE",
  143. "Vous pouvez faire un double jump",
  144. "Vos blessures sont reduites par 1/3. Vous avez 1/3 chance d'aveugler votre ennemi",
  145. "Tue instantanement avec l'AWP",
  146. "Pour chaque frag, vous avez +50 HP",
  147. "Pour chaque frag, vos munitions sont rechargees et +20 HP",
  148. "Recois +10 HP toutes les 3 secondes",
  149. "+500 Armure",
  150. "Vous avez +100 HP chaque round, mais vous courez plus lentement",
  151. "Press E pour obtenir des HP",
  152. "No recoil",
  153. "+15 Damage",
  154. "+25 Damage",
  155. "Recoil amoindri",
  156. "Aucun item ne vous affecte",
  157. "Vous avez +50 HP chaque round, et vous courez moins rapidement",
  158. "1/3 chance to reflex your damage",
  159. "Vous evitez 3 balles par round",
  160. "Press CTRL et SPACE pour utiliser le module, le module se recharge toutes les 4 secondes",
  161. "Lorsque vous etes mort tous les ennemis autour de vous explosent"
  162. };
  163.  
  164. new g_szAuthID[33][34];
  165. new class_player[33];
  166. new level_player[33] = 1;
  167. new experience_player[33];
  168.  
  169. new nowa_class_player[33];
  170.  
  171. new const experience_level[] =
  172. {
  173. 0,35,140,315,560,875,1260,1715,2240,2835,3500,4235,5040,5915,6860,7875,8960,10115,11340,12635,14000,15435,16940,18515,20160,21875,23660,25515,27440,29435,31500,33635,35840,38115,40460,42875,45360,47915,50540,53235,56000,58835,61740,64715,67760,70875,
  174. 74060,77315,80640,84035,87500,91035,94640,98315,102060,105875,109760,113715,117740,121835,126000,130235,134540,138915,143360,147875,152460,157115,161840,166635,171500,176435,181440,186515,191660,196875,202160,207515,212940,218435,224000,229635,235340,241115,246960,252875,258860,
  175. 264915,271040,277235,283500,289835,296240,302715,309260,315875,322560,329315,336140,343035,350000,357035,364140,371315,378560,385875,393260,400715,408240,415835,423500,431235,439040,446915,454860,462875,470960,479115,487340,495635,504000,512435,520940,529515,538160,546875,555660,564515,573440,
  176. 582435,591500,600635,609840,619115,628460,637875,647360,656915,666540,676235,686000,695835,705740,715715,725760,735875,746060,756315,766640,777035,787500,798035,808640,819315,830060,840875,851760,862715,873740,884835,896000,907235,918540,929915,941360,952875,964460,976115,987840,999635,1011500,1023435,1035440,
  177. 1047515,1059660,1071875,1084160,1096515,1108940,1121435,1134000,1146635,1159340,1172115,1184960,1197875,1210860,1223915,1237040,1250235,1263500,1276835,1290240,1303715,1317260,1330875,1344560,1358315,1372140,1386035,1400000
  178. };
  179.  
  180. new punkty_player[33];
  181. new zdrowie_player[33];
  182. new inteligencja_player[33];
  183. new wytrzymalosc_player[33];
  184. new Float:redukcja_obrazen_player[33];
  185. new kondycja_player[33];
  186. new maksymalne_zdrowie_player[33];
  187. new Float:fast_player[33];
  188. new ifdrop[33]=0;
  189.  
  190. new bool:gracz_resetuje[33];
  191.  
  192.  
  193. enum { NONE = 0, Sniper, Commando, Sharpshooter, Protector, Medic, FireSupport, Sapper, Demolitions, Rusher, Rambo };
  194. new const zdrowie_klasy[] = { 0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100};
  195. new const Float:fast_klasy[] = {0.0, 1.2, 1.35, 1.15, 0.8, 1.0, 1.0, 1.0, 1.0, 1.45 , 1.15};
  196. new const pancerz_klasy[] = { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0};
  197. new const names_klas[][] = {"None",
  198. "Tireur d'elite",
  199. "Commando",
  200. "Terroriste",
  201. "Terminator",
  202. "Sniper debutant",
  203. "Marine",
  204. "SWAT",
  205. "Demolition",
  206. "Rusher",
  207. "Soldat"
  208.  
  209. };
  210.  
  211. new const descriptions_klas[][] = {"None",
  212. "Tu as : AWP, Deagle , 120hp. 1/3 chance de tuer instanement au couteau. 110 Speed, 100 Armure.",
  213. "Tu as : M4a1, Deagle & 130hp. Tue instantanement au couteau (clique droit), 135 Speed, 100 Armure",
  214. "Tu as : AK47, Deagle , Grenade& 135hp. 115 Speed, 100 Armure",
  215. "Tu as : M249, 200hp & All grenades, Imminuse contre les mines, 200 Armure",
  216. "Tu as : SNIPE AUTO, Smoke, 150hp. Kit de survie, 100 Armure",
  217. "Tu as : MP5, 100 hp, Two rockets, Extra dommages par hit",
  218. "Tu as : P90, 100hp, 3 mines, 100 Armure",
  219. "Tu as : AUG, 130 hp, All grenades, dynamite, 100 Armure",
  220. "Tu as : M3, 100 hp, 145 Speed",
  221. "Tu as : Famas, 130 hp, 120 Speed, 20 HP per kill, Double jump, 100 Armure"
  222. };
  223.  
  224. new ilosc_apteczek_player[33];
  225. new ilosc_rakiet_player[33];
  226. new Float:poprzednia_rakieta_player[33];
  227. new ilosc_min_player[33];
  228. new ilosc_dynamitow_player[33];
  229. new ilosc_skokow_player[33];
  230.  
  231.  
  232. new bool:freezetime = true;
  233.  
  234. public plugin_init()
  235. {
  236. register_message(get_user_msgid("Health"), "message_Health");
  237.  
  238. register_plugin(PLUGIN, VERSION, AUTHOR);
  239.  
  240. g_vault = nvault_open("CodMod");
  241.  
  242. register_think("FirstAidKit","FirstAidKitThink");
  243.  
  244. RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
  245. RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
  246.  
  247.  
  248. register_forward(FM_CmdStart, "CmdStart");
  249. register_forward(FM_EmitSound, "EmitSound");
  250.  
  251. register_logevent("PoczatekRundy", 2, "1=Round_Start");
  252. register_logevent("BombaPodlozona", 3, "2=Planted_The_Bomb");
  253.  
  254. register_event("SendAudio", "BombaRozbrojona", "a", "2&%!MRAD_BOMBDEF");
  255. register_event("BarTime", "RozbrajaBomb", "be", "1=10", "1=5");
  256. register_event("DeathMsg", "Death", "ade");
  257. register_event("Damage", "Damage", "b", "2!=0");
  258. register_event("CurWeapon","CurWeapon","be", "1=1");
  259. register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
  260.  
  261. register_touch("Rocket", "*" , "DotykRakiety");
  262. register_touch("Mine", "player", "DotykMiny");
  263.  
  264. register_cvar("cod_killxp", "30");
  265. register_cvar("cod_bombxp", "50");
  266.  
  267. register_clcmd("say /shop", "shopmenu");
  268. register_clcmd("say shop", "shopmenu");
  269. register_clcmd("say /class", "WybierzKlase");
  270. register_clcmd("say /classinfo", "DescriptionKlasy");
  271. register_clcmd("say /item", "DescriptionItem");
  272. register_clcmd("say /drop", "WyrzucPrzedmiot");
  273. register_clcmd("say /reset", "KomendaResetujPunkty");
  274. register_clcmd("say /help", "userhelp", 0, " - Help Motd ");
  275. register_clcmd("say /save","ZapiszDane")
  276. register_clcmd("fullupdate", "CommandBlock");
  277. register_clcmd("cl_autobuy", "CommandBlock");
  278. register_clcmd("cl_rebuy", "CommandBlock");
  279. register_clcmd("cl_setautobuy","CommandBlock");
  280. register_clcmd("rebuy", "CommandBlock");
  281. register_clcmd("autobuy", "CommandBlock");
  282. register_clcmd("glock", "CommandBlock");
  283. register_clcmd("usp", "CommandBlock");
  284. register_clcmd("p228", "CommandBlock");
  285. register_clcmd("deagle", "CommandBlock");
  286. register_clcmd("elites", "CommandBlock");
  287. register_clcmd("fn57", "CommandBlock");
  288. register_clcmd("m3", "CommandBlock");
  289. register_clcmd("autoshotgun", "CommandBlock");
  290. register_clcmd("mac10", "CommandBlock");
  291. register_clcmd("tmp", "CommandBlock");
  292. register_clcmd("mp5", "CommandBlock");
  293. register_clcmd("ump45", "CommandBlock");
  294. register_clcmd("p90", "CommandBlock");
  295. register_clcmd("galil", "CommandBlock");
  296. register_clcmd("ak47", "CommandBlock");
  297. register_clcmd("scout", "CommandBlock");
  298. register_clcmd("sg552", "CommandBlock");
  299. register_clcmd("awp", "CommandBlock");
  300. register_clcmd("g3sg1", "CommandBlock");
  301. register_clcmd("famas", "CommandBlock");
  302. register_clcmd("m4a1", "CommandBlock");
  303. register_clcmd("bullpup", "CommandBlock");
  304. register_clcmd("sg550", "CommandBlock");
  305. register_clcmd("m249", "CommandBlock");
  306. register_clcmd("shield", "CommandBlock");
  307. register_clcmd("hegren", "CommandBlock");
  308. register_clcmd("sgren", "CommandBlock");
  309. register_clcmd("flash", "CommandBlock");
  310. register_concmd("codmw2_givelvl", "cmd_setlvl", ADMIN_KICK, "<name> <level>");
  311.  
  312. g_msg_screenfade = get_user_msgid("ScreenFade");
  313. SyncHudObj = CreateHudSyncObj();
  314. SyncHudObj2 = CreateHudSyncObj();
  315. SyncHudObj3 = CreateHudSyncObj();
  316. experience_for_murder = get_cvar_num("cod_killxp");
  317. experience_for_bomb = get_cvar_num("cod_bombxp");
  318.  
  319. set_task(60.0, "Pomoc");
  320.  
  321. }
  322.  
  323. public Kamikaze(id)
  324. {
  325.  
  326. new Float:fOrigin[3], iOrigin[3];
  327. entity_get_vector( id, EV_VEC_origin, fOrigin);
  328. iOrigin[0] = floatround(fOrigin[0]);
  329. iOrigin[1] = floatround(fOrigin[1]);
  330. iOrigin[2] = floatround(fOrigin[2]);
  331.  
  332. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  333. write_byte(TE_EXPLOSION);
  334. write_coord(iOrigin[0]);
  335. write_coord(iOrigin[1]);
  336. write_coord(iOrigin[2]);
  337. write_short(sprite_blast);
  338. write_byte(32);
  339. write_byte(20);
  340. write_byte(0);
  341. message_end();
  342.  
  343. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
  344. write_byte( TE_BEAMCYLINDER );
  345. write_coord( iOrigin[0] );
  346. write_coord( iOrigin[1] );
  347. write_coord( iOrigin[2] );
  348. write_coord( iOrigin[0] );
  349. write_coord( iOrigin[1] + 300 );
  350. write_coord( iOrigin[2] + 300 );
  351. write_short( sprite_white );
  352. write_byte( 0 ); // startframe
  353. write_byte( 0 ); // framerate
  354. write_byte( 10 ); // life
  355. write_byte( 10 ); // width
  356. write_byte( 255 ); // noise
  357. write_byte( 255 ); // r, g, b
  358. write_byte( 100 );// r, g, b
  359. write_byte( 100 ); // r, g, b
  360. write_byte( 128 ); // brightness
  361. write_byte( 8 ); // speed
  362. message_end();
  363.  
  364. new entlist[33];
  365. new numfound = find_sphere_class(id, "player", 320.0 , entlist, 32);
  366.  
  367. for (new i=0; i < numfound; i++)
  368. {
  369. new pid = entlist[i];
  370. /*Dist = entity_range(id,pid)
  371. Radius(id,pid,Dist)*/
  372.  
  373. if (!is_user_alive(pid))
  374. continue;
  375. ExecuteHam(Ham_TakeDamage, pid, 0, id, 160.0+float(inteligencja_player[id]) , 1);
  376. }
  377. return PLUGIN_CONTINUE;
  378. }
  379.  
  380.  
  381. public shopmenu(id)
  382. {
  383. if(is_user_alive(id))
  384. {
  385. new Menu = menu_create("[SHOP MENU] :", "montrer_menu")
  386. menu_additem(Menu, "\ Grenade HE [3.000 $]", "1", 0)
  387. menu_additem(Menu, "\ Grenade Flash [2.00 $]", "2", 0)
  388. menu_additem(Menu, "\ Grenade Fumigene [4.000 $]", "3", 0)
  389. menu_additem(Menu, "\ Item aleatoire 1 round [16000 $]", "4", 0)
  390. menu_additem(Menu, "\ 50 EXP [16000 $]", "5", 0)
  391. menu_additem(Menu, "\ 100 ARMURE [8000 $]", "6", 0)
  392.  
  393. menu_setprop(Menu,MPROP_EXITNAME,"Sortir")
  394. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
  395.  
  396. menu_display(id, Menu, 0)
  397. }
  398.  
  399. }
  400.  
  401. public montrer_menu(id, Menu, item)
  402. {
  403. if (item == MENU_EXIT)
  404. {
  405. menu_destroy(Menu)
  406. return PLUGIN_HANDLED
  407. }
  408.  
  409. // variables
  410. new iData[6];
  411. new iAccess;
  412. new iCallback;
  413. new iName[64];
  414. menu_item_getinfo(Menu, item, iAccess, iData, 5, iName, 63, iCallback)
  415.  
  416. switch (str_to_num(iData))
  417. {
  418. case 1:
  419. {
  420. if(cs_get_user_money(id) < 6000)
  421. {
  422. client_print( id, print_chat,"Vous n'avez pas assez d'argent pour acheter cet item.",id, "SHOP_ITEM_LOST");
  423. return PLUGIN_HANDLED;
  424. }
  425. else
  426. {
  427. cs_take_user_money(id, 3000);
  428. give_item(id, "weapon_hegrenade")
  429. client_print( id, print_chat,"Vous avez achete une HE.",id, "SHOP_ITEMT_1");
  430. }
  431. }
  432. case 2:
  433. {
  434. if(cs_get_user_money(id) < 2000)
  435. {
  436. client_print(id, print_chat,"Vous n'avez pas assez d'argent pour acheter cet item.",id, "SHOP_ITEM_LOST");
  437. return PLUGIN_HANDLED;
  438. }
  439. else
  440. {
  441.  
  442. cs_take_user_money(id, 2000)
  443. give_item(id, "weapon_flashbang")
  444. client_print( id, print_chat,"Vous avez achete une flash.",id, "SHOP_ITEMT_2");
  445.  
  446. }
  447. }
  448. case 3:
  449. {
  450. if(cs_get_user_money(id) < 4000)
  451. {
  452. client_print( id, print_chat,"Vous n'avez pas assez d'argent pour acheter cet item.",id, "SHOP_ITEM_LOST");
  453. return PLUGIN_HANDLED;
  454. }
  455. else
  456. {
  457. cs_take_user_money(id, 4000)
  458. give_item(id, "weapon_smokegrenade")
  459. client_print( id, print_chat,"Vous avez achete une smoke.",id, "SHOP_ITEMT_3");
  460. }
  461. }
  462.  
  463. case 4:
  464. {
  465. if(cs_get_user_money(id) < 16000)
  466. {
  467. client_print(id, print_chat, "Vous n'avez pas assez d'argent pour acheter cet item");
  468. }
  469. else
  470. {
  471. switch(information_item_player[id][0])
  472. {
  473. case 0: dropitem=0;
  474. case 1: dropitem=1;
  475. case 2: dropitem=2;
  476. case 3: dropitem=3;
  477. case 4: dropitem=4;
  478. case 5: dropitem=5;
  479. case 6: dropitem=6;
  480. case 7: dropitem=7;
  481. case 8: dropitem=8;
  482. case 9: dropitem=9;
  483. case 10: dropitem=10;
  484. case 11: dropitem=11;
  485. case 12: dropitem=12;
  486. case 13: dropitem=13;
  487. case 14: dropitem=14;
  488. case 15: dropitem=15;
  489. case 16: dropitem=16;
  490. case 17: dropitem=17;
  491. case 18: dropitem=18;
  492. case 19: dropitem=19;
  493. case 20: dropitem=20;
  494. case 21: dropitem=21;
  495. case 22: dropitem=22;
  496. case 23: dropitem=23;
  497. case 24: dropitem=24;
  498. case 25: dropitem=25;
  499. case 26: dropitem=26;
  500. case 27: dropitem=27;
  501. case 28: dropitem=28;
  502. }
  503. new Menu3 = menu_create("[ITEM SHOP]", "item_menu")
  504. menu_additem(Menu3, "\ Voile du Ninja", "1", 0)
  505. menu_additem(Menu3, "\ Grenade Mysterieuse", "2", 0)
  506. menu_additem(Menu3, "\ Couteau Commando", "3", 0)
  507. menu_additem(Menu3, "\ AWP Sniper", "4", 0)
  508. menu_additem(Menu3, "\ Morphine", "5", 0)
  509.  
  510. menu_setprop(Menu3,MPROP_EXITNAME,"Sortir")
  511. menu_setprop(Menu3, MPROP_EXIT, MEXIT_ALL)
  512. menu_display(id, Menu3, 0);
  513. }
  514. }
  515. case 5:
  516. {
  517. if(cs_get_user_money(id) < 16000)
  518. {
  519. client_print( id, print_chat,"Vous n'avez pas assez d'argent pour acheter cet item.",id, "SHOP_ITEM_LOST");
  520. return PLUGIN_HANDLED;
  521. }
  522. else
  523. {
  524. cs_take_user_money(id, 16000)
  525. experience_player[id]+=50;
  526. client_print( id, print_chat,"Vous avez achete 50 EXP.",id, "SHOP_ITEMT_7");
  527. }
  528. }
  529. case 6:
  530. {
  531. if(cs_get_user_money(id) < 8000)
  532. {
  533. client_print( id, print_chat,"Vous n'avez pas assez d'argent pour acheter cet item.");
  534. return PLUGIN_HANDLED;
  535. }
  536. else
  537. {
  538. cs_take_user_money(id, 8000)
  539. set_user_armor(id, get_user_armor(id) + 100);
  540. client_print(id, print_chat,"Vous avez achete +100 d'armure.");
  541. }
  542. }
  543.  
  544. }
  545.  
  546.  
  547. return PLUGIN_HANDLED
  548. }
  549.  
  550. public item_menu(id, Menu3, item)
  551. {
  552. if (item == MENU_EXIT)
  553. {
  554. menu_destroy(Menu3)
  555. return PLUGIN_HANDLED
  556. }
  557.  
  558. // variables
  559. new iData[6];
  560. new iAccess;
  561. new iCallback;
  562. new iName[64];
  563. menu_item_getinfo(Menu3, item, iAccess, iData, 5, iName, 63, iCallback)
  564.  
  565. switch (str_to_num(iData))
  566. {
  567. case 1:
  568. {
  569. cs_take_user_money(id, 16000);
  570. information_item_player[id][0]=6;
  571. ifdrop[id]=1;
  572. information_item_player[id][1] = random_num(100, 150);
  573. set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 40);
  574. client_print(id, print_chat, "Vous avez achete l'item Voile du Ninja");
  575. }
  576. case 2:
  577. {
  578. cs_take_user_money(id, 16000);
  579. information_item_player[id][0]=10;
  580. give_item(id, "weapon_hegrenade");
  581. ifdrop[id]=1;
  582. client_print(id, print_chat, "Vous avez achete l'item Grenade Mysterieuse");
  583. }
  584. case 3:
  585. {
  586. cs_take_user_money(id, 16000);
  587. information_item_player[id][0]=8;
  588. ifdrop[id]=1;
  589. client_print(id, print_chat, "Vous avez achete l'item Couteau Commando");
  590. }
  591. case 4:
  592. {
  593. cs_take_user_money(id, 16000);
  594. information_item_player[id][0]=13;
  595. give_item(id, "weapon_awp");
  596. ifdrop[id]=1;
  597. client_print(id, print_chat, "Vous avez achete l'item AWP SNIPER");
  598. }
  599. case 5:
  600. {
  601. cs_take_user_money(id, 16000);
  602. information_item_player[id][0]=7;
  603. ifdrop[id]=1;
  604. client_print(id, print_chat, "Vous avez achete l'item Morphine");
  605. }
  606. }
  607. }
  608.  
  609. stock cs_take_user_money(id, amount)
  610. {
  611. new money = cs_get_user_money(id)
  612. if (money - amount < 0)
  613. return 0
  614. cs_set_user_money(id, clamp( money - amount, 0, 16000))
  615. return 1
  616. }
  617.  
  618. public plugin_cfg()
  619. {
  620. server_cmd("sv_maxspeed 1600");
  621. }
  622.  
  623. public plugin_precache()
  624. {
  625. sprite_white = precache_model("sprites/white.spr") ;
  626. sprite_blast = precache_model("sprites/dexplo.spr");
  627.  
  628. precache_sound("MW/select.wav");
  629. precache_sound("MW/start.wav");
  630. precache_sound("MW/start2.wav");
  631. precache_sound("MW/levelup.wav");
  632.  
  633. precache_model("models/w_medkit.mdl");
  634. precache_model("models/rpgrocket.mdl");
  635. precache_model("models/mine.mdl");
  636. }
  637.  
  638. public CmdStart(id, uc_handle)
  639. {
  640. if(!is_user_alive(id))
  641. return FMRES_IGNORED;
  642.  
  643. new button = get_uc(uc_handle, UC_Buttons);
  644. new oldbutton = get_user_oldbutton(id);
  645. new flags = get_entity_flags(id);
  646.  
  647. if(information_item_player[id][0] == 11 || class_player[id] == Rambo)
  648. {
  649. if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && ilosc_skokow_player[id] > 0)
  650. {
  651. ilosc_skokow_player[id]--;
  652. new Float:velocity[3];
  653. entity_get_vector(id,EV_VEC_velocity,velocity);
  654. velocity[2] = random_float(265.0,285.0);
  655. entity_set_vector(id,EV_VEC_velocity,velocity);
  656. }
  657. else if(flags & FL_ONGROUND)
  658. {
  659. ilosc_skokow_player[id] = 0;
  660. if(information_item_player[id][0] == 11)
  661. ilosc_skokow_player[id]++;
  662. if(class_player[id] == Rambo)
  663. ilosc_skokow_player[id]++;
  664. }
  665. }
  666.  
  667. if(button & IN_ATTACK)
  668. {
  669. new Float:punchangle[3];
  670.  
  671. if(information_item_player[id][0] == 20)
  672. entity_set_vector(id, EV_VEC_punchangle, punchangle);
  673. if(information_item_player[id][0] == 23)
  674. {
  675. entity_get_vector(id, EV_VEC_punchangle, punchangle);
  676. for(new i=0; i<3;i++)
  677. punchangle[i]*=0.9;
  678. entity_set_vector(id, EV_VEC_punchangle, punchangle);
  679. }
  680. }
  681.  
  682. if(information_item_player[id][0] == 28 && button & IN_JUMP && button & IN_DUCK && flags & FL_ONGROUND && get_gametime() > information_item_player[id][1]+4.0)
  683. {
  684. information_item_player[id][1] = floatround(get_gametime());
  685. new Float:velocity[3];
  686. VelocityByAim(id, 700, velocity);
  687. velocity[2] = random_float(265.0,285.0);
  688. entity_set_vector(id, EV_VEC_velocity, velocity);
  689. }
  690.  
  691.  
  692. return FMRES_IGNORED;
  693. }
  694.  
  695. public Odrodzenie(id)
  696. {
  697. if(!is_user_alive(id) || !is_user_connected(id))
  698. return PLUGIN_CONTINUE;
  699.  
  700. if(nowa_class_player[id])
  701. {
  702. class_player[id] = nowa_class_player[id];
  703. nowa_class_player[id] = 0;
  704. strip_user_weapons(id);
  705. give_item(id, "weapon_knife");
  706. WczytajDane(id, class_player[id]);
  707. }
  708.  
  709. if(!class_player[id])
  710. {
  711. WybierzKlase(id);
  712. return PLUGIN_CONTINUE;
  713. }
  714.  
  715. switch(class_player[id])
  716. {
  717. case Sniper:
  718. {
  719. give_item(id, "weapon_awp");
  720. give_item(id, "weapon_deagle");
  721. give_item(id, "item_thighpack")
  722. }
  723. case Commando:
  724. {
  725. give_item(id, "weapon_deagle");
  726. give_item(id, "weapon_m4a1");
  727. give_item(id, "item_thighpack")
  728. }
  729. case Sharpshooter:
  730. {
  731. give_item(id, "weapon_deagle");
  732. give_item(id, "weapon_ak47");
  733. give_item(id, "weapon_hegrenade");
  734. give_item(id, "item_thighpack")
  735. }
  736. case Protector:
  737. {
  738. give_item(id, "weapon_m249");
  739. give_item(id, "weapon_hegrenade");
  740. give_item(id, "weapon_flashbang");
  741. give_item(id, "weapon_smokegrenade");
  742. give_item(id, "item_thighpack")
  743. }
  744. case Medic:
  745. {
  746. give_item(id, "weapon_sg550");
  747. give_item(id, "weapon_smokegrenade");
  748. ilosc_apteczek_player[id] = 2;
  749. give_item(id, "item_thighpack")
  750. }
  751. case FireSupport:
  752. {
  753. give_item(id, "weapon_mp5navy");
  754. ilosc_rakiet_player[id] = 3;
  755. give_item(id, "item_thighpack")
  756. }
  757. case Sapper:
  758. {
  759. give_item(id, "weapon_p90");
  760. ilosc_min_player[id] = 3;
  761. give_item(id, "item_thighpack")
  762. }
  763. case Demolitions:
  764. {
  765. give_item(id, "weapon_aug");
  766. give_item(id, "weapon_hegrenade");
  767. give_item(id, "weapon_flashbang");
  768. give_item(id, "weapon_smokegrenade");
  769.  
  770. give_item(id, "item_thighpack")
  771.  
  772. ilosc_dynamitow_player[id] = 1;
  773. }
  774. case Rusher:
  775. {
  776. give_item(id, "weapon_m3");
  777. give_item(id, "item_thighpack")
  778. }
  779. case Rambo:
  780. {
  781. give_item(id, "weapon_famas");
  782. give_item(id, "weapon_deagle");
  783. give_item(id, "item_thighpack")
  784. }
  785. }
  786.  
  787. if(gracz_resetuje[id])
  788. {
  789. ResetujPunkty(id);
  790. gracz_resetuje[id] = false;
  791. }
  792.  
  793. if(punkty_player[id]>0)
  794. PrzydzielPunkty(id);
  795.  
  796. if(information_item_player[id][0] == 10 || information_item_player[id][0] == 9)
  797. give_item(id, "weapon_hegrenade");
  798.  
  799. if(information_item_player[id][0] == 9)
  800. ZmienUbranie(id, 0);
  801.  
  802. if(information_item_player[id][0] == 1)
  803. set_user_footsteps(id, 1);
  804. else
  805. set_user_footsteps(id, 0);
  806.  
  807. if(information_item_player[id][0] == 13)
  808. give_item(id, "weapon_awp");
  809.  
  810. if(information_item_player[id][0] == 19)
  811. information_item_player[id][1] = 1;
  812.  
  813. if(information_item_player[id][0] == 27)
  814. information_item_player[id][1] = 3;
  815.  
  816. new weapons[32];
  817. new weaponsnum;
  818. get_user_weapons(id, weapons, weaponsnum);
  819. for(new i=0; i<weaponsnum; i++)
  820. if(is_user_alive(id))
  821. if(maxAmmo[weapons[i]] > 0)
  822. cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
  823.  
  824. redukcja_obrazen_player[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(wytrzymalosc_player[id])))/100);
  825. maksymalne_zdrowie_player[id] = zdrowie_klasy[class_player[id]]+zdrowie_player[id]*2;
  826. fast_player[id] = STANDARD_FAST*fast_klasy[class_player[id]]+floatround(kondycja_player[id]*1.3);
  827.  
  828. if(information_item_player[id][0] == 18)
  829. {
  830. maksymalne_zdrowie_player[id] += 100;
  831. fast_player[id] -= 0.4;
  832. }
  833.  
  834. if(information_item_player[id][0] == 25)
  835. {
  836. maksymalne_zdrowie_player[id] += 50;
  837. fast_player[id] -= 0.3;
  838. }
  839.  
  840. set_user_armor(id, pancerz_klasy[class_player[id]]);
  841. set_user_health(id, maksymalne_zdrowie_player[id]);
  842. if(information_item_player[id][0] == 17)
  843. set_user_armor(id, 500);
  844.  
  845. return PLUGIN_CONTINUE;
  846. }
  847.  
  848. public PoczatekRundy()
  849. {
  850. freezetime = false;
  851. for(new id=0;id<=32;id++)
  852. {
  853. if(!is_user_alive(id))
  854. continue;
  855.  
  856. set_task(0.1, "SetFast", id+TASK_SET_FAST);
  857.  
  858. switch(get_user_team(id))
  859. {
  860. case 1: client_cmd(id, "spk MW/start");
  861. case 2: client_cmd(id, "spk MW/start2");
  862. }
  863. }
  864. }
  865.  
  866. public NowaRunda()
  867. {
  868. new Players[32]
  869. new playerCount, i, player
  870. get_players(Players, playerCount)
  871. for (i=0; i<playerCount; i++)
  872. {
  873. player = Players[i]
  874. if(ifdrop[player]==1){
  875. ifdrop[player]=0;
  876. set_user_rendering(player, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
  877. information_item_player[player][0]=dropitem;}
  878. }
  879. client_print(0, print_chat, "Tapez /shop pour ouvrir le menu d'achats.");
  880.  
  881. freezetime = true;
  882. new iEnt = find_ent_by_class(-1, "Mine");
  883. while(iEnt > 0)
  884. {
  885. remove_entity(iEnt);
  886. iEnt = find_ent_by_class(iEnt, "Mine");
  887. }
  888. }
  889.  
  890. public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
  891. {
  892. if(!is_user_alive(this) || !is_user_connected(this) || information_item_player[this][0] == 24 || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !class_player[idattacker])
  893. return HAM_IGNORED;
  894.  
  895. new health = get_user_health(this);
  896. new weapon = get_user_weapon(idattacker);
  897.  
  898. if(health < 2)
  899. return HAM_IGNORED;
  900.  
  901. if(information_item_player[this][0] == 27 && information_item_player[this][1]>0)
  902. {
  903. information_item_player[this][1]--;
  904. return HAM_SUPERCEDE;
  905. }
  906.  
  907. if(wytrzymalosc_player[this]>0)
  908. damage -= redukcja_obrazen_player[this]*damage;
  909.  
  910. if(information_item_player[this][0] == 2 || information_item_player[this][0] == 3)
  911. damage-=(float(information_item_player[this][1])<damage)? float(information_item_player[this][1]): damage;
  912.  
  913. if(information_item_player[idattacker][0] == 5 && !UTIL_In_FOV(this, idattacker) && UTIL_In_FOV(idattacker, this))
  914. damage*=2.0;
  915.  
  916. if(information_item_player[idattacker][0] == 10)
  917. damage+=information_item_player[idattacker][1];
  918.  
  919. if(information_item_player[this][0] == 12)
  920. damage-=(5.0<damage)? 5.0: damage;
  921.  
  922. if(weapon == CSW_AWP && information_item_player[idattacker][0] == 13)
  923. damage=float(health);
  924.  
  925. if(information_item_player[idattacker][0] == 21)
  926. damage+=15;
  927.  
  928. if(information_item_player[idattacker][0] == 22)
  929. damage+=25;
  930.  
  931. if(idinflictor != idattacker && (entity_get_int(idinflictor, EV_INT_movetype) != 5 || entity_get_int(idinflictor, EV_INT_movetype) == MOVETYPE_BOUNCE || entity_get_int(idinflictor, EV_INT_movetype) == MOVETYPE_FOLLOW ))
  932. {
  933. if((information_item_player[idattacker][0] == 9 && random_num(1, information_item_player[idattacker][1]) == 1) || information_item_player[idattacker][0] == 10)
  934. damage = float(health);
  935. }
  936.  
  937. if(weapon == CSW_KNIFE)
  938. {
  939. if(information_item_player[this][0] == 4)
  940. damage=damage*1.4+inteligencja_player[idattacker];
  941. if(information_item_player[idattacker][0] == 8 || (class_player[idattacker] == Sniper && random(2) == 2) || class_player[idattacker] == Commando && !(get_user_button(idattacker) & IN_ATTACK))
  942. damage = float(health);
  943. }
  944.  
  945. if(information_item_player[this][0] == 26 && random_num(1, 3) == 1)
  946. {
  947. SetHamParamEntity(3, this);
  948. SetHamParamEntity(1, idattacker);
  949. }
  950.  
  951.  
  952.  
  953.  
  954. SetHamParamFloat(4, damage);
  955. return HAM_IGNORED;
  956. }
  957.  
  958. public Damage(id)
  959. {
  960. new attacker = get_user_attacker(id);
  961. new damage = read_data(2);
  962. if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker || !class_player[attacker])
  963. return PLUGIN_CONTINUE;
  964.  
  965. if(information_item_player[attacker][0] == 12 && random_num(1, information_item_player[id][1]) == 1)
  966. Display_Fade(id,1<<14,1<<14 ,1<<16,255,155,50,230);
  967.  
  968. if(get_user_team(id) != get_user_team(attacker))
  969. {
  970. while(damage>20)
  971. {
  972. damage-=20;
  973. experience_player[attacker]++;
  974. }
  975. }
  976. SprawdzLevel(attacker);
  977. return PLUGIN_CONTINUE;
  978. }
  979.  
  980. public Death()
  981. {
  982. new id = read_data(2);
  983. new attacker = read_data(1);
  984.  
  985. if(!is_user_alive(attacker) || !is_user_connected(attacker))
  986. return PLUGIN_CONTINUE;
  987.  
  988. new weapon = get_user_weapon(attacker);
  989. new zdrowie = get_user_health(attacker);
  990.  
  991. if(get_user_team(id) != get_user_team(attacker) && class_player[attacker])
  992. {
  993. new nowe_experience = 0;
  994.  
  995. nowe_experience += experience_for_murder;
  996.  
  997. if(class_player[id] == Rambo && class_player[attacker] != Rambo)
  998. nowe_experience += experience_for_murder*2;
  999.  
  1000. if(level_player[id] > level_player[attacker])
  1001. nowe_experience += level_player[id] - level_player[attacker];
  1002.  
  1003. if(class_player[attacker] == Rambo || information_item_player[attacker][0] == 15 && maxClip[weapon] != -1)
  1004. {
  1005.  
  1006. new nowe_zdrowie = (zdrowie+20<maksymalne_zdrowie_player[attacker])? zdrowie+20: maksymalne_zdrowie_player[attacker];
  1007. set_user_clip(attacker, maxClip[weapon]);
  1008. set_user_health(attacker, nowe_zdrowie);
  1009. }
  1010. #if defined BOT
  1011. if(is_user_bot2(attacker) && random(9) == 0)
  1012. WyrzucPrzedmiot(id);
  1013. #endif
  1014. if(!information_item_player[attacker][0])
  1015. DajPrzedmiot(attacker, random_num(1, sizeof names_objects-1));
  1016.  
  1017. if(information_item_player[attacker][0] == 14)
  1018. {
  1019. new nowe_zdrowie = (zdrowie+50<maksymalne_zdrowie_player[attacker])? zdrowie+50: maksymalne_zdrowie_player[attacker];
  1020. set_user_health(attacker, nowe_zdrowie);
  1021. }
  1022. if(information_item_player[id][0]==29)
  1023. set_task(0.1,"Kamikaze",id,_,_,"a",1)
  1024.  
  1025.  
  1026. set_hudmessage(255, 212, 0, 0.50, 0.33, 1, 6.0, 4.0);
  1027. ShowSyncHudMsg(attacker, SyncHudObj2, "+%i", nowe_experience);
  1028.  
  1029. experience_player[attacker] += nowe_experience;
  1030. }
  1031.  
  1032. SprawdzLevel(attacker);
  1033.  
  1034. if(information_item_player[id][0] == 7 && random_num(1, information_item_player[id][1]) == 1)
  1035. set_task(0.1, "Raise", id+TASK_RAISE);
  1036.  
  1037. return PLUGIN_CONTINUE;
  1038. }
  1039.  
  1040. public client_connect(id)
  1041. {
  1042. //resetuje umiejetnosci
  1043. class_player[id] = 0;
  1044. level_player[id] = 0;
  1045. experience_player[id] = 0;
  1046. punkty_player[id] = 0;
  1047. zdrowie_player[id] = 0;
  1048. inteligencja_player[id] = 0;
  1049. wytrzymalosc_player[id] = 0;
  1050. kondycja_player[id] = 0;
  1051. maksymalne_zdrowie_player[id] = 0;
  1052. fast_player[id] = 0.0;
  1053.  
  1054. get_user_authid(id, g_szAuthID[id], charsmax(g_szAuthID[] ));
  1055.  
  1056. remove_task(id+TASK_SHOW_INFORMATION);
  1057. remove_task(id+TASK_SHOW_ADVERTISEMENT);
  1058. remove_task(id+TASK_SET_FAST);
  1059. remove_task(id+TASK_RAISE);
  1060. remove_task(id+TASK_TRAINING_SANITARY);
  1061.  
  1062. set_task(10.0, "ShowAdvertisement", id+TASK_SHOW_ADVERTISEMENT);
  1063. set_task(3.0, "ShowInformation", id+TASK_SHOW_INFORMATION);
  1064.  
  1065. //resetuje przedmioty
  1066. UsunPrzedmiot(id);
  1067. }
  1068.  
  1069. public client_disconnect(id)
  1070. {
  1071. remove_task(id+TASK_SHOW_INFORMATION);
  1072. remove_task(id+TASK_SHOW_ADVERTISEMENT);
  1073. remove_task(id+TASK_SET_FAST);
  1074. remove_task(id+TASK_RAISE);
  1075. remove_task(id+TASK_TRAINING_SANITARY);
  1076.  
  1077. ZapiszDane(id);
  1078. UsunPrzedmiot(id);
  1079. }
  1080.  
  1081. public RozbrajaBomb(id)
  1082. if(class_player[id])
  1083. disarming = id;
  1084.  
  1085. public BombaPodlozona()
  1086. {
  1087. new Players[32], playerCount, id;
  1088. get_players(Players, playerCount, "aeh", "TERRORIST");
  1089.  
  1090. if(get_playersnum() > 1)
  1091. {
  1092. experience_player[podkladajacy] += experience_for_bomb;
  1093. for (new i=0; i<playerCount; i++)
  1094. {
  1095. id = Players[i];
  1096. if(!class_player[id])
  1097. continue;
  1098.  
  1099. if(id != podkladajacy)
  1100. {
  1101. experience_player[id] += experience_for_murder;
  1102. client_print(id, print_chat, "[COD:MW] Vous recevez **%i** EXP pour avoir plante la bombe.", experience_for_murder);
  1103. }
  1104. else
  1105. {
  1106. client_print(id, print_chat, "[COD:MW] Vous recevez **%i** EXP pour avoir plante la bombe.", experience_for_bomb);
  1107. }
  1108. SprawdzLevel(id);
  1109. }
  1110. }
  1111. }
  1112.  
  1113. public BombaRozbrojona()
  1114. {
  1115. new Players[32], playerCount, id;
  1116. get_players(Players, playerCount, "aeh", "CT");
  1117.  
  1118. experience_player[disarming] += experience_for_bomb;
  1119. for (new i=0; i<playerCount; i++)
  1120. {
  1121. id = Players[i];
  1122. if(!class_player[id])
  1123. continue;
  1124. if(id != disarming)
  1125. {
  1126. experience_player[id]+= experience_for_murder;
  1127. client_print(id, print_chat, "[COD:MW] Vous recevez **%i** EXP pour avoir diffuse la bombe.", experience_for_murder);
  1128. }
  1129. else
  1130. client_print(id, print_chat, "[COD:MW] Vous recevez **%i** EXP pour avoir diffuse la bombe.",experience_for_bomb);
  1131. SprawdzLevel(id);
  1132. }
  1133. }
  1134.  
  1135. public DescriptionKlasy(id)
  1136. {
  1137. new menu = menu_create("Select Class:", "DescriptionKlasy_Handle");
  1138. for(new i=1; i<sizeof names_klas; i++)
  1139. menu_additem(menu, names_klas[i]);
  1140. menu_setprop(menu, MPROP_EXITNAME, "Exit");
  1141. menu_setprop(menu, MPROP_BACKNAME, "Previous Page");
  1142. menu_setprop(menu, MPROP_NEXTNAME, "Next Page");
  1143. menu_display(id, menu);
  1144.  
  1145. client_cmd(id, "spk MW/select");
  1146. }
  1147.  
  1148. public DescriptionKlasy_Handle(id, menu, item)
  1149. {
  1150. client_cmd(id, "spk MW/select");
  1151.  
  1152. if(item == MENU_EXIT)
  1153. {
  1154. menu_destroy(menu);
  1155. return PLUGIN_CONTINUE;
  1156. }
  1157. client_print(id, print_chat, "[COD:MW] %s: %s", names_klas[item+1], descriptions_klas[item+1]);
  1158. menu_display(id, menu);
  1159.  
  1160. return PLUGIN_CONTINUE;
  1161. }
  1162.  
  1163. public WybierzKlase(id)
  1164. {
  1165. new menu = menu_create("Select Class:", "WybierzKlase_Handle");
  1166. new class[50];
  1167. for(new i=1; i<sizeof names_klas; i++)
  1168. {
  1169. WczytajDane(id, i);
  1170. format(class, 49, "%s \yLevel: %i", names_klas[i], level_player[id]);
  1171. menu_additem(menu, class);
  1172. }
  1173.  
  1174. WczytajDane(id, class_player[id]);
  1175.  
  1176. menu_setprop(menu, MPROP_EXITNAME, "Exit");
  1177. menu_setprop(menu, MPROP_BACKNAME, "Previous Page");
  1178. menu_setprop(menu, MPROP_NEXTNAME, "Next Page");
  1179. menu_display(id, menu);
  1180.  
  1181. client_cmd(id, "spk MW/select");
  1182. #if defined BOT
  1183. if(is_user_bot2(id))
  1184. WybierzKlase_Handle(id, menu, random(sizeof names_klas-1));
  1185. #endif
  1186. }
  1187.  
  1188. public WybierzKlase_Handle(id, menu, item)
  1189. {
  1190. client_cmd(id, "spk MW/select");
  1191.  
  1192. if(item == MENU_EXIT)
  1193. {
  1194. menu_destroy(menu);
  1195. return PLUGIN_CONTINUE;
  1196. }
  1197.  
  1198. item++;
  1199.  
  1200. if(item == class_player[id])
  1201. return PLUGIN_CONTINUE;
  1202.  
  1203. if(class_player[id])
  1204. {
  1205. nowa_class_player[id] = item;
  1206. client_print(id, print_chat, "[COD:MW] Votre classe sera change au prochain round.");
  1207. }
  1208. else
  1209. {
  1210. class_player[id] = item;
  1211. WczytajDane(id, class_player[id]);
  1212. Odrodzenie(id);
  1213. }
  1214. return PLUGIN_CONTINUE;
  1215. }
  1216.  
  1217. public PrzydzielPunkty(id)
  1218. {
  1219. new inteligencja[65];
  1220. new zdrowie[60];
  1221. new wytrzymalosc[60];
  1222. new kondycja[60];
  1223. new tytul[25];
  1224. format(inteligencja, 64, "Intelligence: \r%i \y(Augmente les dommages des Items)", inteligencja_player[id]);
  1225. format(zdrowie, 59, "Vie: \r%i \y(Augmente la vie)", zdrowie_player[id]);
  1226. format(wytrzymalosc, 59, "Dexterite: \r%i \y(Reduit les dommages sur vous)", wytrzymalosc_player[id]);
  1227. format(kondycja, 59, "Agilite: \r%i \y(Augmente la rapidite)", kondycja_player[id]);
  1228. format(tytul, 24, "Assign Points(%i):", punkty_player[id]);
  1229. new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
  1230. menu_additem(menu, inteligencja);
  1231. menu_additem(menu, zdrowie);
  1232. menu_additem(menu, wytrzymalosc);
  1233. menu_additem(menu, kondycja);
  1234. menu_display(id, menu);
  1235. #if defined BOT
  1236. if(is_user_bot2(id))
  1237. PrzydzielPunkty_Handler(id, menu, random(4));
  1238. #endif
  1239. }
  1240.  
  1241. public PrzydzielPunkty_Handler(id, menu, item)
  1242. {
  1243. client_cmd(id, "spk MW/select");
  1244.  
  1245. if(item == MENU_EXIT)
  1246. {
  1247. menu_destroy(menu);
  1248. return PLUGIN_CONTINUE;
  1249. }
  1250.  
  1251. switch(item)
  1252. {
  1253. case 0:
  1254. {
  1255. if(inteligencja_player[id]<100)
  1256. inteligencja_player[id]++;
  1257. else
  1258. client_print(id, print_chat, "[COD:MW] Maximum Intelligence Level");
  1259.  
  1260. }
  1261. case 1:
  1262. {
  1263. if(zdrowie_player[id]<100)
  1264. zdrowie_player[id]++;
  1265. else
  1266. client_print(id, print_chat, "[COD:MW] Maximum Vie Level");
  1267. }
  1268. case 2:
  1269. {
  1270. if(wytrzymalosc_player[id]<100)
  1271. wytrzymalosc_player[id]++;
  1272. else
  1273. client_print(id, print_chat, "[COD:MW] Maximum Dexterite Level");
  1274.  
  1275. }
  1276. case 3:
  1277. {
  1278. if(kondycja_player[id]<100)
  1279. kondycja_player[id]++;
  1280. else
  1281. client_print(id, print_chat, "[COD:MW] Maximum Agilite Level");
  1282. }
  1283. }
  1284.  
  1285. punkty_player[id]--;
  1286.  
  1287. if(punkty_player[id]>0)
  1288. PrzydzielPunkty(id);
  1289.  
  1290. return PLUGIN_CONTINUE;
  1291. }
  1292.  
  1293. public ResetujPunkty(id)
  1294. {
  1295. punkty_player[id] = level_player[id]*2-2;
  1296. inteligencja_player[id] = 0;
  1297. zdrowie_player[id] = 0;
  1298. kondycja_player[id] = 0;
  1299. wytrzymalosc_player[id] = 0;
  1300. }
  1301.  
  1302. public KomendaResetujPunkty(id)
  1303. {
  1304. client_print(id, print_chat, "[COD:MW] Vos points seront remis a zero au prochain round.");
  1305. client_cmd(id, "spk MW/select");
  1306. gracz_resetuje[id] = true;
  1307. }
  1308.  
  1309. public TrainingSanitary(id)
  1310. {
  1311. id -= TASK_TRAINING_SANITARY;
  1312. if(information_item_player[id][0] != 16)
  1313. return PLUGIN_CONTINUE;
  1314. set_task(3.0, "TrainingSanitary", id+TASK_TRAINING_SANITARY);
  1315. if(!is_user_alive(id))
  1316. return PLUGIN_CONTINUE;
  1317. new health = get_user_health(id);
  1318. new new_health = (health+10<maksymalne_zdrowie_player[id])?health+10:maksymalne_zdrowie_player[id];
  1319. set_user_health(id, new_health);
  1320. return PLUGIN_CONTINUE;
  1321. }
  1322.  
  1323. public StworzApteczke(id)
  1324. {
  1325. if (!ilosc_apteczek_player[id])
  1326. {
  1327. client_print(id, print_center, "Vous avez seulement 2 kits par round!");
  1328. return PLUGIN_CONTINUE;
  1329. }
  1330.  
  1331. if(inteligencja_player[id] < 1)
  1332. client_print(id, print_center, "Pour ameliorer votre Kit de survie, augmentez votre Intelligence!");
  1333.  
  1334. ilosc_apteczek_player[id]--;
  1335.  
  1336. new Float:origin[3];
  1337. entity_get_vector(id, EV_VEC_origin, origin);
  1338.  
  1339. new ent = create_entity("info_target");
  1340. entity_set_string(ent, EV_SZ_classname, "FirstAidKit");
  1341. entity_set_edict(ent, EV_ENT_owner, id);
  1342. entity_set_int(ent, EV_INT_solid, SOLID_NOT);
  1343. entity_set_vector(ent, EV_VEC_origin, origin);
  1344. entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);
  1345.  
  1346.  
  1347. entity_set_model(ent, "models/w_medkit.mdl");
  1348. set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) ;
  1349. drop_to_floor(ent);
  1350.  
  1351. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);
  1352.  
  1353. return PLUGIN_CONTINUE;
  1354. }
  1355.  
  1356. public FirstAirKitThink(ent)
  1357. {
  1358. new id = entity_get_edict(ent, EV_ENT_owner);
  1359. new totem_dist = 300;
  1360. new totem_heal = 5+floatround(inteligencja_player[id]*0.5);
  1361. if (entity_get_edict(ent, EV_ENT_euser2) == 1)
  1362. {
  1363. new Float:forigin[3], origin[3];
  1364. entity_get_vector(ent, EV_VEC_origin, forigin);
  1365. FVecIVec(forigin,origin);
  1366.  
  1367. new entlist[33];
  1368. new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist, 32,forigin);
  1369.  
  1370. for (new i=0; i < numfound; i++)
  1371. {
  1372. new pid = entlist[i];
  1373.  
  1374. if (get_user_team(pid) != get_user_team(id))
  1375. continue;
  1376.  
  1377. new zdrowie = get_user_health(pid);
  1378. new nowe_zdrowie = (zdrowie+totem_heal<maksymalne_zdrowie_player[pid])?zdrowie+totem_heal:maksymalne_zdrowie_player[pid];
  1379. if (is_user_alive(pid)) set_user_health(pid, nowe_zdrowie);
  1380. }
  1381.  
  1382. entity_set_edict(ent, EV_ENT_euser2, 0);
  1383. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 1.5);
  1384.  
  1385. return PLUGIN_CONTINUE;
  1386. }
  1387.  
  1388. if (entity_get_float(ent, EV_FL_ltime) < halflife_time() || !is_user_alive(id))
  1389. {
  1390. remove_entity(ent);
  1391. return PLUGIN_CONTINUE;
  1392. }
  1393.  
  1394. if (entity_get_float(ent, EV_FL_ltime)-2.0 < halflife_time())
  1395. set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 ) ;
  1396.  
  1397. new Float:forigin[3], origin[3];
  1398. entity_get_vector(ent, EV_VEC_origin, forigin);
  1399. FVecIVec(forigin,origin);
  1400.  
  1401. //Find people near and give them health
  1402. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
  1403. write_byte( TE_BEAMCYLINDER );
  1404. write_coord( origin[0] );
  1405. write_coord( origin[1] );
  1406. write_coord( origin[2] );
  1407. write_coord( origin[0] );
  1408. write_coord( origin[1] + totem_dist );
  1409. write_coord( origin[2] + totem_dist );
  1410. write_short( sprite_white );
  1411. write_byte( 0 ); // startframe
  1412. write_byte( 0 ); // framerate
  1413. write_byte( 10 ); // life
  1414. write_byte( 10 ); // width
  1415. write_byte( 255 ); // noise
  1416. write_byte( 255 ); // r, g, b
  1417. write_byte( 100 );// r, g, b
  1418. write_byte( 100 ); // r, g, b
  1419. write_byte( 128 ); // brightness
  1420. write_byte( 5 ); // speed
  1421. message_end();
  1422.  
  1423. entity_set_edict(ent, EV_ENT_euser2 ,1);
  1424. entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.5);
  1425.  
  1426.  
  1427. return PLUGIN_CONTINUE;
  1428.  
  1429. }
  1430.  
  1431. public StworzRakiete(id)
  1432. {
  1433. if (!ilosc_rakiet_player[id])
  1434. {
  1435. client_print(id, print_center, "Vous avez utilise toutes vos rockets!");
  1436. return PLUGIN_CONTINUE;
  1437. }
  1438.  
  1439. if(poprzednia_rakieta_player[id] + 2.0 > get_gametime())
  1440. {
  1441. client_print(id, print_center, "Vous pouvez utiliser le rocket toutes les 2 secondes!");
  1442. return PLUGIN_CONTINUE;
  1443. }
  1444.  
  1445. if (is_user_alive(id))
  1446. {
  1447. if(inteligencja_player[id] < 1)
  1448. client_print(id, print_center, "Pour ameliorer vos Rockets, augmentez votreIntelligence!");
  1449.  
  1450. poprzednia_rakieta_player[id] = get_gametime();
  1451. ilosc_rakiet_player[id]--;
  1452.  
  1453. new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
  1454.  
  1455. entity_get_vector(id, EV_VEC_v_angle, vAngle);
  1456. entity_get_vector(id, EV_VEC_origin , Origin);
  1457.  
  1458. new Ent = create_entity("info_target");
  1459.  
  1460. entity_set_string(Ent, EV_SZ_classname, "Rocket");
  1461. entity_set_model(Ent, "models/rpgrocket.mdl");
  1462.  
  1463. vAngle[0] *= -1.0;
  1464.  
  1465. entity_set_origin(Ent, Origin);
  1466. entity_set_vector(Ent, EV_VEC_angles, vAngle);
  1467.  
  1468. entity_set_int(Ent, EV_INT_effects, 2);
  1469. entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
  1470. entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
  1471. entity_set_edict(Ent, EV_ENT_owner, id);
  1472.  
  1473. VelocityByAim(id, 1000 , Velocity);
  1474. entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
  1475. }
  1476. return PLUGIN_CONTINUE;
  1477. }
  1478.  
  1479. public PolozDynamit(id)
  1480. {
  1481. if(!ilosc_dynamitow_player[id])
  1482. {
  1483. client_print(id, print_center, "Vous avez deja utilise votre dynamite!");
  1484. return PLUGIN_CONTINUE;
  1485. }
  1486.  
  1487. if(inteligencja_player[id] < 1)
  1488. client_print(id, print_center, "Pour ameliorer votre dynamite, augmentez votre intelligence!");
  1489.  
  1490. ilosc_dynamitow_player[id]--;
  1491. new Float:fOrigin[3], iOrigin[3];
  1492. entity_get_vector( id, EV_VEC_origin, fOrigin);
  1493. iOrigin[0] = floatround(fOrigin[0]);
  1494. iOrigin[1] = floatround(fOrigin[1]);
  1495. iOrigin[2] = floatround(fOrigin[2]);
  1496.  
  1497. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1498. write_byte(TE_EXPLOSION);
  1499. write_coord(iOrigin[0]);
  1500. write_coord(iOrigin[1]);
  1501. write_coord(iOrigin[2]);
  1502. write_short(sprite_blast);
  1503. write_byte(32);
  1504. write_byte(20);
  1505. write_byte(0);
  1506. message_end();
  1507.  
  1508. message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
  1509. write_byte( TE_BEAMCYLINDER );
  1510. write_coord( iOrigin[0] );
  1511. write_coord( iOrigin[1] );
  1512. write_coord( iOrigin[2] );
  1513. write_coord( iOrigin[0] );
  1514. write_coord( iOrigin[1] + 300 );
  1515. write_coord( iOrigin[2] + 300 );
  1516. write_short( sprite_white );
  1517. write_byte( 0 ); // startframe
  1518. write_byte( 0 ); // framerate
  1519. write_byte( 10 ); // life
  1520. write_byte( 10 ); // width
  1521. write_byte( 255 ); // noise
  1522. write_byte( 255 ); // r, g, b
  1523. write_byte( 100 );// r, g, b
  1524. write_byte( 100 ); // r, g, b
  1525. write_byte( 128 ); // brightness
  1526. write_byte( 8 ); // speed
  1527. message_end();
  1528.  
  1529. new entlist[33];
  1530. new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32);
  1531.  
  1532. for (new i=0; i < numfound; i++)
  1533. {
  1534. new pid = entlist[i];
  1535.  
  1536. if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid) || information_item_player[pid][0] == 24)
  1537. continue;
  1538. ExecuteHam(Ham_TakeDamage, pid, 0, id, 90.0+float(inteligencja_player[id]) , 1);
  1539. }
  1540. return PLUGIN_CONTINUE;
  1541. }
  1542.  
  1543. public PostawMine(id)
  1544. {
  1545. if (!ilosc_min_player[id])
  1546. {
  1547. client_print(id, print_center, "Vous avez utilise toutes vos mines!");
  1548. return PLUGIN_CONTINUE;
  1549. }
  1550.  
  1551. if(inteligencja_player[id] < 1)
  1552. client_print(id, print_center, "Pour ameliorer vos mines, augmentez votre intelligence!");
  1553.  
  1554. ilosc_min_player[id]--;
  1555.  
  1556. new Float:origin[3];
  1557. entity_get_vector(id, EV_VEC_origin, origin);
  1558.  
  1559. new ent = create_entity("info_target");
  1560. entity_set_string(ent ,EV_SZ_classname, "Mine");
  1561. entity_set_edict(ent ,EV_ENT_owner, id);
  1562. entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
  1563. entity_set_origin(ent, origin);
  1564. entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
  1565.  
  1566. entity_set_model(ent, "models/mine.mdl");
  1567. entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
  1568.  
  1569. drop_to_floor(ent);
  1570.  
  1571. entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
  1572.  
  1573. set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,20) ;
  1574.  
  1575.  
  1576. return PLUGIN_CONTINUE;
  1577. }
  1578.  
  1579. public DotykMiny(ent, id)
  1580. {
  1581. new attacker = entity_get_edict(ent, EV_ENT_owner);
  1582. if (get_user_team(attacker) != get_user_team(id))
  1583. {
  1584. new Float:fOrigin[3], iOrigin[3];
  1585. entity_get_vector( ent, EV_VEC_origin, fOrigin);
  1586. iOrigin[0] = floatround(fOrigin[0]);
  1587. iOrigin[1] = floatround(fOrigin[1]);
  1588. iOrigin[2] = floatround(fOrigin[2]);
  1589.  
  1590. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1591. write_byte(TE_EXPLOSION);
  1592. write_coord(iOrigin[0]);
  1593. write_coord(iOrigin[1]);
  1594. write_coord(iOrigin[2]);
  1595. write_short(sprite_blast);
  1596. write_byte(32); // scale
  1597. write_byte(20); // framerate
  1598. write_byte(0);// flags
  1599. message_end();
  1600. new entlist[33];
  1601. new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
  1602.  
  1603. for (new i=0; i < numfound; i++)
  1604. {
  1605. new pid = entlist[i];
  1606.  
  1607. if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || information_item_player[pid][0] == 24 || class_player[id] == Protector)
  1608. continue;
  1609.  
  1610. ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencja_player[attacker]) , 1);
  1611. }
  1612. remove_entity(ent);
  1613. }
  1614. }
  1615.  
  1616. public DotykRakiety(ent)
  1617. {
  1618. if ( !is_valid_ent(ent))
  1619. return;
  1620.  
  1621. new attacker = entity_get_edict(ent, EV_ENT_owner);
  1622.  
  1623. new Float:fOrigin[3], iOrigin[3];
  1624. entity_get_vector( ent, EV_VEC_origin, fOrigin);
  1625. iOrigin[0] = floatround(fOrigin[0]);
  1626. iOrigin[1] = floatround(fOrigin[1]);
  1627. iOrigin[2] = floatround(fOrigin[2]);
  1628.  
  1629. message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
  1630. write_byte(TE_EXPLOSION);
  1631. write_coord(iOrigin[0]);
  1632. write_coord(iOrigin[1]);
  1633. write_coord(iOrigin[2]);
  1634. write_short(sprite_blast);
  1635. write_byte(32); // scale
  1636. write_byte(20); // framerate
  1637. write_byte(0);// flags
  1638. message_end();
  1639.  
  1640. new entlist[33];
  1641. new numfound = find_sphere_class(ent, "player", 230.0, entlist, 32);
  1642.  
  1643. for (new i=0; i < numfound; i++)
  1644. {
  1645. new pid = entlist[i];
  1646.  
  1647. if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || information_item_player[pid][0] == 24)
  1648. continue;
  1649. ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 55.0+float(inteligencja_player[attacker]) , 1);
  1650. }
  1651. remove_entity(ent);
  1652. }
  1653.  
  1654. public CurWeapon(id)
  1655. {
  1656. if(class_player[id]==Rusher){
  1657. new iWeapon = read_data(2)
  1658. if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) )
  1659. {
  1660. fm_cs_set_weapon_ammo( get_pdata_cbase(id, m_pActivation) , g_MaxAmmoClip[ iWeapon ] )
  1661. }
  1662. }
  1663.  
  1664. if(freezetime || !class_player[id])
  1665. return PLUGIN_CONTINUE;
  1666.  
  1667. new weapon = read_data(2);
  1668.  
  1669. SetFast(id);
  1670.  
  1671. if(weapon == CSW_C4)
  1672. podkladajacy = id;
  1673. return PLUGIN_CONTINUE;
  1674. }
  1675.  
  1676. public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
  1677. {
  1678. if(equal(szSound, "common/wpn_denyselect.wav"))
  1679. {
  1680. UzyjItem(id);
  1681. return FMRES_SUPERCEDE;
  1682. }
  1683.  
  1684. return FMRES_IGNORED;
  1685. }
  1686.  
  1687. public UzyjItem(id)
  1688. {
  1689. if(information_item_player[id][0] == 19 && information_item_player[id][1]>0)
  1690. {
  1691. set_user_health(id, maksymalne_zdrowie_player[id]);
  1692. information_item_player[id][1]--;
  1693. }
  1694.  
  1695. if(ilosc_apteczek_player[id]>0)
  1696. StworzApteczke(id);
  1697. if(ilosc_rakiet_player[id]>0)
  1698. StworzRakiete(id);
  1699. if(ilosc_min_player[id]>0)
  1700. PostawMine(id);
  1701. if(ilosc_dynamitow_player[id]>0)
  1702. PolozDynamit(id);
  1703.  
  1704. return PLUGIN_HANDLED;
  1705. }
  1706.  
  1707. public ZapiszDane(id)
  1708. {
  1709. new vaultkey[64],vaultdata[256];
  1710. format(vaultkey,63,"%s-%i-cod", g_szAuthID[id], class_player[id]);
  1711. format(vaultdata,255,"%i#%i#%i#%i#%i#%i", experience_player[id], level_player[id], inteligencja_player[id], zdrowie_player[id], wytrzymalosc_player[id], kondycja_player[id]);
  1712. nvault_set(g_vault,vaultkey,vaultdata);
  1713. }
  1714.  
  1715. public WczytajDane(id, class)
  1716. {
  1717. new vaultkey[64],vaultdata[256];
  1718. format(vaultkey,63,"%s-%i-cod", g_szAuthID[id], class);
  1719. format(vaultdata,255,"%i#%i#%i#%i#%i#%i", experience_player[id], level_player[id], inteligencja_player[id], zdrowie_player[id], wytrzymalosc_player[id], kondycja_player[id]);
  1720. nvault_get(g_vault,vaultkey,vaultdata,255);
  1721.  
  1722. replace_all(vaultdata, 255, "#", " ");
  1723.  
  1724. new experienceplayer[32], levelplayer[32], inteligencjaplayer[32], silaplayer[32], zrecznoscplayer[32], zwinnoscplayer[32];
  1725.  
  1726. parse(vaultdata, experienceplayer, 31, levelplayer, 31, inteligencjaplayer, 31, silaplayer, 31, zrecznoscplayer, 31, zwinnoscplayer, 31);
  1727.  
  1728. experience_player[id] = str_to_num(experienceplayer);
  1729. level_player[id] = str_to_num(levelplayer)>0?str_to_num(levelplayer):1;
  1730. inteligencja_player[id] = str_to_num(inteligencjaplayer);
  1731. zdrowie_player[id] = str_to_num(silaplayer);
  1732. wytrzymalosc_player[id] = str_to_num(zrecznoscplayer);
  1733. kondycja_player[id] = str_to_num(zwinnoscplayer);
  1734. punkty_player[id] = (level_player[id]-1)*2-inteligencja_player[id]-zdrowie_player[id]-wytrzymalosc_player[id]-kondycja_player[id];
  1735. }
  1736.  
  1737. public WyrzucPrzedmiot(id)
  1738. {
  1739. if(information_item_player[id][0])
  1740. {
  1741. client_print(id, print_chat, "[COD:MW] Item jete %s.", names_objects[information_item_player[id][0]]);
  1742. UsunPrzedmiot(id);
  1743. }
  1744. else
  1745. client_print(id, print_chat, "[COD:MW] Vous navez pas d'Item a jeter.", names_objects[information_item_player[id][0]]);
  1746. }
  1747.  
  1748. public UsunPrzedmiot(id)
  1749. {
  1750. information_item_player[id][0] = 0;
  1751. information_item_player[id][1] = 0;
  1752. if(is_user_alive(id))
  1753. set_user_footsteps(id, 0);
  1754. set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
  1755. ZmienUbranie(id, 1);
  1756. }
  1757.  
  1758. public DajPrzedmiot(id, przedmiot)
  1759. {
  1760. UsunPrzedmiot(id);
  1761. information_item_player[id][0] = przedmiot;
  1762. client_print(id, print_chat, "[COD:MW] Recu : %s.", names_objects[information_item_player[id][0]]);
  1763.  
  1764. switch(przedmiot)
  1765. {
  1766. case 1:
  1767. {
  1768. set_user_footsteps(id, 1);
  1769. }
  1770. case 2:
  1771. {
  1772. information_item_player[id][1] = random_num(3,6);
  1773. }
  1774. case 3:
  1775. {
  1776. information_item_player[id][1] = random_num(6, 11);
  1777. }
  1778. case 5:
  1779. {
  1780. information_item_player[id][1] = random_num(6, 9);
  1781. }
  1782. case 6:
  1783. {
  1784. information_item_player[id][1] = random_num(100, 150);
  1785. set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 40);
  1786. }
  1787. case 7:
  1788. {
  1789. information_item_player[id][1] = random_num(2, 4);
  1790. }
  1791. case 8:
  1792. {
  1793. if(class_player[id] == Commando)
  1794. DajPrzedmiot(id, random_num(1, sizeof names_objects-1));
  1795. }
  1796. case 9:
  1797. {
  1798. information_item_player[id][1] = random_num(1, 3);
  1799. ZmienUbranie(id, 0);
  1800. give_item(id, "weapon_hegrenade");
  1801. }
  1802. case 10:
  1803. {
  1804. information_item_player[id][1] = random_num(4, 98);
  1805. give_item(id, "weapon_hegrenade");
  1806. }
  1807. case 12:
  1808. {
  1809. information_item_player[id][1] = random_num(1, 99);
  1810. }
  1811. case 13:
  1812. {
  1813. give_item(id, "weapon_awp");
  1814. }
  1815. case 15:
  1816. {
  1817. if(class_player[id] == Rambo)
  1818. DajPrzedmiot(id, random_num(1, sizeof names_objects-1));
  1819. }
  1820. case 16:
  1821. {
  1822. set_task(5.0, "TrainingSanitary", id+TASK_TRAINING_SANITARY);
  1823. }
  1824. case 19:
  1825. {
  1826. information_item_player[id][1] = 1;
  1827. }
  1828. case 26:
  1829. {
  1830. information_item_player[id][1] = random_num(3, 6);
  1831. }
  1832. case 27:
  1833. {
  1834. information_item_player[id][1] = 3;
  1835. }
  1836. }
  1837. }
  1838.  
  1839. public DescriptionItem(id)
  1840. {
  1841. new description_item[128];
  1842. new losowa_wartosc[3];
  1843. num_to_str(information_item_player[id][1], losowa_wartosc, 2);
  1844. format(description_item, 127, descriptions_objects[information_item_player[id][0]]);
  1845. replace_all(description_item, 127, "LW", losowa_wartosc);
  1846.  
  1847. client_print(id, print_chat, "Item: %s.", names_objects[information_item_player[id][0]]);
  1848. client_print(id, print_chat, "Description: %s.", description_item);
  1849. }
  1850.  
  1851. public Raise(id)
  1852. {
  1853. id-=TASK_RAISE;
  1854. ExecuteHamB(Ham_CS_RoundRespawn, id);
  1855. }
  1856.  
  1857. public SprawdzLevel(id)
  1858. {
  1859. if(level_player[id] < 201)
  1860. {
  1861. while(experience_player[id] >= experience_level[level_player[id]])
  1862. {
  1863. level_player[id]++;
  1864. set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
  1865. ShowSyncHudMsg(id, SyncHudObj3, "Felicitations, vous avez gagne un level!");
  1866. client_cmd(id, "spk MW/levelup");
  1867. }
  1868.  
  1869. punkty_player[id] = (level_player[id]-1)*2-inteligencja_player[id]-zdrowie_player[id]-wytrzymalosc_player[id]-kondycja_player[id];
  1870. }
  1871. ZapiszDane(id);
  1872. }
  1873.  
  1874. public ShowInformation(id)
  1875. {
  1876. id -= TASK_SHOW_INFORMATION;
  1877.  
  1878. set_task(0.1, "ShowInformation", id+TASK_SHOW_INFORMATION);
  1879.  
  1880. if(!is_user_alive(id))
  1881. {
  1882. new target = entity_get_int(id, EV_INT_iuser2);
  1883.  
  1884. if(target == 0)
  1885. return PLUGIN_CONTINUE;
  1886.  
  1887. set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
  1888. ShowSyncHudMsg(id, SyncHudObj, "Class : %s^nExp : %i / %i^nLevel : %i^nItem : %s", names_klas[class_player[target]], experience_player[target], experience_level[level_player[target]], level_player[target], names_objects[information_item_player[target][0]]);
  1889.  
  1890. return PLUGIN_CONTINUE;
  1891. }
  1892. set_hudmessage(255, 0, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
  1893. ShowSyncHudMsg(id, SyncHudObj, "[Class : %s]^n[Exp : %i / %i]^n[Level : %i]^n[Item : %s]^n[Vie : %i]", names_klas[class_player[id]], experience_player[id], experience_level[level_player[id]], level_player[id], names_objects[information_item_player[id][0]],get_user_health(id));
  1894. return PLUGIN_CONTINUE;
  1895. }
  1896.  
  1897.  
  1898. public ShowAdvertisement(id)
  1899. {
  1900. id-=TASK_SHOW_ADVERTISEMENT;
  1901. client_print(id, print_chat, "[COD:MW] Bienvenue sur le server des .:|SFF|:.");
  1902. client_print(id, print_chat, "Tapez /help pour afficher la liste des commandes du mode CMD MW");
  1903. }
  1904.  
  1905. public SetFast(id)
  1906. {
  1907. id -= id>32? TASK_SET_FAST: 0;
  1908.  
  1909. if(class_player[id])
  1910. set_user_maxspeed(id, fast_player[id]);
  1911. }
  1912.  
  1913. public ZmienUbranie(id,reset)
  1914. {
  1915. if (id<1 || id>32 || !is_user_connected(id))
  1916. return PLUGIN_CONTINUE;
  1917.  
  1918. if (reset)
  1919. cs_reset_user_model(id);
  1920. else
  1921. {
  1922. new num = random_num(0,3);
  1923. switch(get_user_team(id))
  1924. {
  1925. case 1: cs_set_user_model(id, Clothing_CT[num]);
  1926. case 2:cs_set_user_model(id, Clothing_Terro[num]);
  1927. }
  1928. }
  1929.  
  1930. return PLUGIN_CONTINUE;
  1931. }
  1932.  
  1933. public Pomoc()
  1934. {
  1935. switch(random(3))
  1936. {
  1937.  
  1938. case 0: client_print(0, print_chat, "[COD:MW] Ceci est une version modifiee, si vous rencontrez des bugs merci de nous les signaler");
  1939. case 1: client_print(0, print_chat, "[COD:MW] Nous recrutons des admins actifs http://sff.servfr.net");
  1940. case 2: client_print(0, print_chat, "[COD:MW] Tapez /help pour obtenir l'aide");
  1941. }
  1942. set_task(60.0, "Pomoc");
  1943. }
  1944.  
  1945. public cmd_setlvl(id, level, cid)
  1946. {
  1947. if(!cmd_access(id,level,cid,3))
  1948. return PLUGIN_HANDLED;
  1949. new arg1[33];
  1950. new arg2[6];
  1951. read_argv(1, arg1, 32);
  1952. read_argv(2, arg2, 5);
  1953. new player = cmd_target(id, arg1);
  1954. new value = str_to_num(arg2)-1;
  1955.  
  1956. experience_player[player] = experience_level[value];
  1957. level_player[player] = 0;
  1958. SprawdzLevel(player);
  1959. return PLUGIN_HANDLED;
  1960. }
  1961.  
  1962. public CommandBlock()
  1963. return PLUGIN_HANDLED;
  1964.  
  1965. stock bool:UTIL_In_FOV(id,target)
  1966. {
  1967. if (Find_Angle(id,target,9999.9) > 0.0)
  1968. return true;
  1969.  
  1970. return false;
  1971. }
  1972. #if defined BOT
  1973. public is_user_bot2(id)
  1974. {
  1975. new ping, loss
  1976. get_user_ping(id, ping, loss)
  1977. if(ping > 0 && loss > 0)
  1978. return false
  1979. return true
  1980. }
  1981. #endif
  1982.  
  1983. stock Float:Find_Angle(Core,Target,Float:dist)
  1984. {
  1985. new Float:vec2LOS[2];
  1986. new Float:flDot;
  1987. new Float:CoreOrigin[3];
  1988. new Float:TargetOrigin[3];
  1989. new Float:CoreAngles[3];
  1990.  
  1991. pev(Core,pev_origin,CoreOrigin);
  1992. pev(Target,pev_origin,TargetOrigin);
  1993.  
  1994. if (get_distance_f(CoreOrigin,TargetOrigin) > dist)
  1995. return 0.0;
  1996.  
  1997. pev(Core,pev_angles, CoreAngles);
  1998.  
  1999. for ( new i = 0; i < 2; i++ )
  2000. vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i];
  2001.  
  2002. new Float:veclength = Vec2DLength(vec2LOS);
  2003.  
  2004. //Normalize V2LOS
  2005. if (veclength <= 0.0)
  2006. {
  2007. vec2LOS[0] = 0.0;
  2008. vec2LOS[1] = 0.0;
  2009. }
  2010. else
  2011. {
  2012. new Float:flLen = 1.0 / veclength;
  2013. vec2LOS[0] = vec2LOS[0]*flLen;
  2014. vec2LOS[1] = vec2LOS[1]*flLen;
  2015. }
  2016.  
  2017. //Do a makevector to make v_forward right
  2018. engfunc(EngFunc_MakeVectors,CoreAngles);
  2019.  
  2020. new Float:v_forward[3];
  2021. new Float:v_forward2D[2];
  2022. get_global_vector(GL_v_forward, v_forward);
  2023.  
  2024. v_forward2D[0] = v_forward[0];
  2025. v_forward2D[1] = v_forward[1];
  2026.  
  2027. flDot = vec2LOS[0]*v_forward2D[0]+vec2LOS[1]*v_forward2D[1];
  2028.  
  2029. if ( flDot > 0.5 )
  2030. {
  2031. return flDot;
  2032. }
  2033.  
  2034. return 0.0;
  2035. }
  2036.  
  2037. stock Float:Vec2DLength( Float:Vec[2] )
  2038. {
  2039. return floatsqroot(Vec[0]*Vec[0] + Vec[1]*Vec[1] );
  2040. }
  2041.  
  2042. stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
  2043. {
  2044. message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id );
  2045. write_short( duration ); // Duration of fadeout
  2046. write_short( holdtime ); // Hold time of color
  2047. write_short( fadetype ); // Fade type
  2048. write_byte ( red ); // Red
  2049. write_byte ( green ); // Green
  2050. write_byte ( blue ); // Blue
  2051. write_byte ( alpha ); // Alpha
  2052. message_end();
  2053. }
  2054.  
  2055. stock set_user_clip(id, ammo)
  2056. {
  2057. new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
  2058. get_weaponname(weapon, weaponname, 31);
  2059. while ((weaponid = find_ent_by_class(weaponid, weaponname)) != 0)
  2060. if(entity_get_edict(weaponid, EV_ENT_owner) == id)
  2061. {
  2062. set_pdata_int(weaponid, 51, ammo, 4);
  2063. return weaponid;
  2064. }
  2065. return 0;
  2066. }
  2067. public userhelp(id)
  2068. {
  2069. //create info/help.txt in your mod folder and put your info there as you add in motd
  2070. show_motd(id, "help.txt", "Help Motd")
  2071. }
  2072. public message_Health(msgid, dest, id)
  2073. {
  2074. if(!is_user_alive(id))
  2075. return PLUGIN_CONTINUE;
  2076.  
  2077. static hp;
  2078. hp = get_msg_arg_int(1);
  2079.  
  2080. if(hp > 255 && (hp % 256) == 0)
  2081. set_msg_arg_int(1, ARG_BYTE, ++hp);
  2082.  
  2083. return PLUGIN_CONTINUE;}
  2084.  
  2085.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement