MegastoRM

Pmod_sr

Jul 19th, 2012
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.01 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <engine>
  4. #include <zombieplague>
  5. #include <fun>
  6.  
  7. #define PLUGIN "Purchase Mod"
  8. #define VERSION "1.4.1"
  9. #define AUTHOR "Dizzy"
  10.  
  11. #define FL_WATERJUMP (1<<11)
  12. #define FL_ONGROUND (1<<9)
  13.  
  14. #define CVAR_PLUGIN "zp_pmod"
  15. #define CVAR_MULTI "zp_pmod_multi"
  16. #define CVAR_STAYOPEN "zp_pmod_menu"
  17. #define CVAR_ROUNDS "zp_pmod_rounds"
  18. #define CVAR_DROPALLOW "zp_pmod_dropallow"
  19. #define CVAR_DROPRATE "zp_pmod_droprate"
  20.  
  21. #define CVAR_GRAVITY "zp_pmod_gravity"
  22. #define CVAR_SPEED "zp_pmod_speed"
  23. #define CVAR_STEALTH "zp_pmod_stealth"
  24. #define CVAR_GLASSES "zp_pmod_glasses"
  25. #define CVAR_MULTIJUMP "zp_pmod_multijump"
  26. #define CVAR_BUNNYHOP "zp_pmod_bunnyhop"
  27. #define CVAR_HEALTH "zp_pmod_health"
  28.  
  29. #define GRAVITYCOST "zp_pmod_gravityCost"
  30. #define SPEEDCOST "zp_pmod_speedCost"
  31. #define STEALTHCOST "zp_pmod_stealthCost"
  32. #define GLASSESCOST "zp_pmod_glassesCost"
  33. #define MULTIJUMPCOST "zp_pmod_multijumpCost"
  34. #define BUNNYHOPCOST "zp_pmod_bunnyhopCost"
  35. #define HEALTHCOST "zp_pmod_healthCost"
  36.  
  37. #define PLAYERSPEED "zp_pmod_playerspeed"
  38. #define PLAYERGRAVITY "zp_pmod_playergravity"
  39. #define PLAYERHEALTH "zp_pmod_playerhealth"
  40. #define PLAYERARMOR "zp_pmod_playerarmor"
  41.  
  42.  
  43. #define MULTIJUMPNUMBER "zp_pmod_multijumpnumber"
  44.  
  45. new const g_szAbilities[][] =
  46. {
  47. "Gravitacija",
  48. "Brzina",
  49. "Nevidljivost",
  50. "Anti-flash naocare",
  51. "Multijump",
  52. "Auto Bhop",
  53. "Helti i armor"
  54. }
  55.  
  56. new imasposobnost[33] = 0;
  57.  
  58. new imagravity[33] = 0;
  59. new imaspeed[33] = 0;
  60. new imanevidljivost[33] = 0;
  61. new imanaocare[33] = 0;
  62. new imamulti[33] = 0;
  63. new imabhop[33] = 0;
  64. new imahp[33] = 0;
  65.  
  66. new g_roundsgravity[33];
  67. new g_roundsspeed[33];
  68. new g_roundsstealth[33];
  69. new g_roundsglasses[33];
  70. new g_roundsmultijump[33];
  71. new g_roundsbunnyhop[33];
  72. new g_roundshealth[33];
  73.  
  74. new brojskokova[33]
  75. new bool:g_dojump[33];
  76.  
  77.  
  78. new g_msgscreenfade;
  79.  
  80. public client_connect(id)
  81. {
  82. imasposobnost[id] = 0;
  83.  
  84. imagravity[id] = 0;
  85. imaspeed[id] = 0;
  86. imanevidljivost[id] = 0;
  87. imanaocare[id] = 0;
  88. imamulti[id] = 0;
  89. imabhop[id] = 0;
  90. imahp[id] = 0;
  91. }
  92.  
  93. public client_disconnect(id)
  94. {
  95. imasposobnost[id] = 0;
  96.  
  97. imagravity[id] = 0;
  98. imaspeed[id] = 0;
  99. imanevidljivost[id] = 0;
  100. imanaocare[id] = 0;
  101. imamulti[id] = 0;
  102. imabhop[id] = 0;
  103. imahp[id] = 0;
  104. }
  105.  
  106. public plugin_init()
  107. {
  108. register_plugin(PLUGIN, VERSION, AUTHOR);
  109.  
  110. register_cvar(CVAR_PLUGIN, "1");
  111. register_cvar(CVAR_MULTI, "0");
  112. register_cvar(CVAR_STAYOPEN, "0");
  113. register_cvar(CVAR_ROUNDS, "1");
  114. register_cvar(CVAR_DROPALLOW, "1");
  115.  
  116. register_cvar(GRAVITYCOST, "7");
  117. register_cvar(SPEEDCOST, "7");
  118. register_cvar(STEALTHCOST, "7");
  119. register_cvar(GLASSESCOST, "10");
  120. register_cvar(MULTIJUMPCOST, "10");
  121. register_cvar(BUNNYHOPCOST, "12");
  122. register_cvar(HEALTHCOST, "7");
  123.  
  124. register_cvar(CVAR_GRAVITY, "1");
  125. register_cvar(CVAR_SPEED, "1");
  126. register_cvar(CVAR_STEALTH, "1");
  127. register_cvar(CVAR_GLASSES, "1");
  128. register_cvar(CVAR_MULTIJUMP, "1");
  129. register_cvar(CVAR_BUNNYHOP, "1");
  130. register_cvar(CVAR_HEALTH, "1");
  131.  
  132. register_cvar(PLAYERSPEED, "320");
  133. register_cvar(PLAYERGRAVITY, "200");
  134. register_cvar(PLAYERHEALTH, "200");
  135. register_cvar(PLAYERARMOR, "200");
  136. register_cvar(CVAR_DROPRATE, "25");
  137.  
  138. register_cvar(MULTIJUMPNUMBER, "3");
  139.  
  140. register_clcmd("say pmodmenu","startpage");
  141.  
  142. register_clcmd("say_team pmodmenu","startpage");
  143.  
  144. register_clcmd("pmodmenu","startpage");
  145.  
  146. register_concmd("pmodmenu","startpage");
  147.  
  148. register_event("ResetHUD","roundchange","b");
  149. register_event("CurWeapon","speedb","be","1=1");
  150. register_event("ScreenFade","event_blinded","be","4=255","5=255","6=255","7>199");
  151. register_event("DeathMsg","death_event","a");
  152.  
  153. g_msgscreenfade = get_user_msgid("ScreenFade");
  154. }
  155.  
  156. public plugin_precache()
  157. {
  158. precache_sound("purchasemod/buy.wav");
  159. precache_sound("purchasemod/drain.wav");
  160. precache_sound("purchasemod/sorry.wav");
  161. }
  162.  
  163. public client_putinserver(id)
  164. {
  165. if (is_user_bot(id))
  166. return;
  167.  
  168. set_task(25.0, "inform", id);
  169. }
  170.  
  171. public inform(id)
  172. {
  173. new gMsgSayText;
  174.  
  175. gMsgSayText = get_user_msgid("SayText");
  176. new printMsg[191];
  177.  
  178. client_print(id, print_chat, "[Purchase Mod]: Ovaj server pokrece Purchasemod v%s", VERSION);
  179. format(printMsg,191, "^x01[Purchase Mod]: Da kupis neku sposobnost kucaj ^x03pmodmenu");
  180.  
  181. message_begin(MSG_ONE,gMsgSayText,{0,0,0},id);
  182. write_byte(id);
  183. write_string(printMsg);
  184. message_end();
  185.  
  186. return PLUGIN_HANDLED;
  187. }
  188.  
  189. public startpage(id)
  190. {
  191. new menu = menu_create("\yPurchase Mod: \rGlavni meni", "start_handler")
  192.  
  193. if (!get_cvar_num(CVAR_PLUGIN) || !is_user_alive(id))
  194. menu_additem(menu, "\rKupi sposobnost", "1", 0);
  195. else
  196. menu_additem(menu, "\yKupi sposobnost", "1", 0);
  197. if (!get_cvar_num(CVAR_PLUGIN) || !is_user_alive(id) || !get_cvar_num(CVAR_DROPALLOW))
  198. menu_additem(menu, "\rBaci sposobnost", "2", 0);
  199. else
  200. menu_additem(menu, "\yBaci sposobnost", "2", 0);
  201.  
  202. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  203. menu_display(id, menu, 0);
  204. }
  205.  
  206. public start_handler(id, menu, item)
  207. {
  208. if (item == MENU_EXIT)
  209. {
  210. menu_destroy(menu);
  211. return PLUGIN_HANDLED;
  212. }
  213.  
  214. new data[6], iName[64];
  215. new access, callback;
  216. menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback);
  217.  
  218. new key = str_to_num(data);
  219.  
  220. switch(key)
  221. {
  222. case 1:
  223. {
  224. if (!get_cvar_num(CVAR_PLUGIN))
  225. {
  226. client_print(id, print_chat, "[Purchase Mod]: Plugin je iskljucen!");
  227. client_cmd(id,"spk purchasemod/sorry");
  228. if (get_cvar_num(CVAR_STAYOPEN))
  229. startpage(id);
  230. }
  231. if (!is_user_alive(id))
  232. {
  233. client_print(id, print_chat, "[Purchase Mod]: Moras biti ziv da bi kupovao!");
  234. client_cmd(id,"spk purchasemod/sorry");
  235. if (get_cvar_num(CVAR_STAYOPEN))
  236. startpage(id);
  237. }
  238. else if (get_cvar_num(CVAR_PLUGIN) && is_user_alive(id))
  239. {
  240. buypage(id);
  241. }
  242. }
  243. case 2:
  244. {
  245. if (!get_cvar_num(CVAR_PLUGIN))
  246. {
  247. client_print(id, print_chat, "[Purchase Mod]: Plugin je iskljucen!");
  248. client_cmd(id,"spk purchasemod/sorry");
  249. if (get_cvar_num(CVAR_STAYOPEN))
  250. startpage(id);
  251. }
  252. if (!is_user_alive(id))
  253. {
  254. client_print(id, print_chat, "[Purchase Mod]: Moras biti ziv da bi kupovao!");
  255. client_cmd(id,"spk purchasemod/sorry");
  256. if (get_cvar_num(CVAR_STAYOPEN))
  257. startpage(id);
  258. }
  259. if (!get_cvar_num(CVAR_DROPALLOW))
  260. {
  261. client_print(id, print_chat, "[Purchase Mod]: Bacanje sposobnosti nije dozvoljeno!");
  262. client_cmd(id,"spk purchasemod/sorry");
  263. if (get_cvar_num(CVAR_STAYOPEN))
  264. startpage(id);
  265. }
  266. else if (get_cvar_num(CVAR_PLUGIN) && is_user_alive(id) && get_cvar_num(CVAR_DROPALLOW))
  267. {
  268. droppage(id);
  269. }
  270. }
  271. }
  272. menu_destroy(menu);
  273.  
  274. return PLUGIN_HANDLED;
  275. }
  276.  
  277. public buypage(id)
  278. {
  279. new menu = menu_create("\yPurchase Mod: \rBuy Menu", "buy_handler")
  280. new userMoney = zp_get_user_ammo_packs(id)
  281.  
  282. if (!get_cvar_num(CVAR_GRAVITY) || (get_cvar_num(GRAVITYCOST) > userMoney) || (!get_cvar_num(CVAR_MULTI) && imasposobnost[id]))
  283. menu_additem(menu, "\rGravitacija", "1", 0);
  284. else
  285. menu_additem(menu, "\yGravitacija", "1", 0);
  286. if (!get_cvar_num(CVAR_SPEED) || (get_cvar_num(SPEEDCOST) > userMoney) || (!get_cvar_num(CVAR_MULTI) && imasposobnost[id]))
  287. menu_additem(menu, "\rBrzina", "2", 0);
  288. else
  289. menu_additem(menu, "\yBrzina", "2", 0);
  290. if (!get_cvar_num(CVAR_STEALTH) || (get_cvar_num(STEALTHCOST) > userMoney) || (!get_cvar_num(CVAR_MULTI) && imasposobnost[id]))
  291. menu_additem(menu, "\rNevidljivost", "3", 0);
  292. else
  293. menu_additem(menu, "\yNevidljivost", "3", 0);
  294. if (!get_cvar_num(CVAR_GLASSES) || (get_cvar_num(GLASSESCOST) > userMoney) || (!get_cvar_num(CVAR_MULTI) && imasposobnost[id]))
  295. menu_additem(menu, "\rAnti-Flash naocare", "4", 0);
  296. else
  297. menu_additem(menu, "\yAnti-Flash naocare", "4", 0);
  298. if (!get_cvar_num(CVAR_MULTIJUMP) || (get_cvar_num(MULTIJUMPCOST) > userMoney) || (!get_cvar_num(CVAR_MULTI) && imasposobnost[id]))
  299. menu_additem(menu, "\rMultijump", "5", 0);
  300. else
  301. menu_additem(menu, "\yMultijump", "5", 0);
  302. if (!get_cvar_num(CVAR_BUNNYHOP) || (get_cvar_num(BUNNYHOPCOST) > userMoney) || (!get_cvar_num(CVAR_MULTI) && imasposobnost[id]))
  303. menu_additem(menu, "\rAuto Bhop", "6", 0);
  304. else
  305. menu_additem(menu, "\yAuto Bhop", "6", 0);
  306. if (!get_cvar_num(CVAR_HEALTH) || (get_cvar_num(HEALTHCOST) > userMoney) || (!get_cvar_num(CVAR_MULTI) && imasposobnost[id]))
  307. menu_additem(menu, "\rHelti i armor", "7", 0);
  308. else
  309. menu_additem(menu, "\yHelti i armor", "7", 0);
  310.  
  311. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  312. menu_display(id, menu, 0);
  313. }
  314.  
  315. public buy_handler(id, menu, item)
  316. {
  317. if (item == MENU_EXIT)
  318. {
  319. menu_destroy(menu);
  320. startpage(id);
  321.  
  322. return PLUGIN_HANDLED;
  323. }
  324.  
  325. new data[6], iName[64];
  326. new access, callback;
  327. menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback);
  328.  
  329. new key = str_to_num(data);
  330.  
  331. switch(key)
  332. {
  333. case 1:
  334. {
  335. if (!get_cvar_num(CVAR_GRAVITY))
  336. {
  337. client_print(id, print_chat, "[Purchase Mod]: %s item nije dozvoljen!", g_szAbilities[0]);
  338. client_cmd(id,"spk purchasemod/sorry");
  339. if (get_cvar_num(CVAR_STAYOPEN))
  340. buypage(id);
  341. return PLUGIN_CONTINUE;
  342. }
  343. if (imagravity[id])
  344. {
  345. client_print(id, print_chat, "[Purchase Mod]: Vec imas %s!", g_szAbilities[0]);
  346. client_cmd(id,"spk purchasemod/sorry");
  347. if (get_cvar_num(CVAR_STAYOPEN))
  348. buypage(id);
  349. return PLUGIN_CONTINUE;
  350. }
  351. if (!get_cvar_num(CVAR_MULTI) && imasposobnost[id])
  352. {
  353. client_print(id, print_chat, "[Purchase Mod]: Vec imas jednu sposobnost!");
  354. client_cmd(id,"spk purchasemod/sorry");
  355. if (get_cvar_num(CVAR_STAYOPEN))
  356. buypage(id);
  357. return PLUGIN_CONTINUE;
  358. }
  359. new userMoney = zp_get_user_ammo_packs(id);
  360. if(get_cvar_num(GRAVITYCOST) > userMoney)
  361. {
  362. client_print(id, print_chat, "[Purchase Mod]: Nemas dovoljno ammo packova");
  363. client_cmd(id,"spk purchasemod/sorry");
  364. if (get_cvar_num(CVAR_STAYOPEN))
  365. buypage(id);
  366. return PLUGIN_CONTINUE;
  367. }
  368. else
  369. {
  370. zp_set_user_ammo_packs(id, (userMoney - get_cvar_num(GRAVITYCOST)));
  371. client_cmd(id,"spk purchasemod/buy");
  372. client_print(id, print_chat, "[Purchase Mod]: Kupio si %s za %d ammo packova!", g_szAbilities[0], get_cvar_num(GRAVITYCOST));
  373. imagravity[id] = 1;
  374. imasposobnost[id] = 1;
  375. g_roundsgravity[id] = get_cvar_num(CVAR_ROUNDS) - 1;
  376. set_user_gravity(id, get_cvar_float(PLAYERGRAVITY)/800);
  377. if (get_cvar_num(CVAR_STAYOPEN))
  378. buypage(id);
  379. }
  380. }
  381. case 2:
  382. {
  383. if (!get_cvar_num(CVAR_SPEED))
  384. {
  385. client_print(id, print_chat, "[Purchase Mod]: %s item nije dozvoljen!", g_szAbilities[1]);
  386. client_cmd(id,"spk purchasemod/sorry");
  387. if (get_cvar_num(CVAR_STAYOPEN))
  388. buypage(id);
  389. return PLUGIN_CONTINUE;
  390. }
  391. if (imaspeed[id])
  392. {
  393. client_print(id, print_chat, "[Purchase Mod]: Vec imas %s!", g_szAbilities[1]);
  394. client_cmd(id,"spk purchasemod/sorry");
  395. if (get_cvar_num(CVAR_STAYOPEN))
  396. buypage(id);
  397. return PLUGIN_CONTINUE;
  398. }
  399. if (!get_cvar_num(CVAR_MULTI) && imasposobnost[id])
  400. {
  401. client_print(id, print_chat, "[Purchase Mod]: Vec imas jednu sposobnost!");
  402. client_cmd(id,"spk purchasemod/sorry");
  403. if (get_cvar_num(CVAR_STAYOPEN))
  404. buypage(id);
  405. return PLUGIN_CONTINUE;
  406. }
  407. new userMoney = zp_get_user_ammo_packs(id);
  408. if(get_cvar_num(SPEEDCOST) > userMoney)
  409. {
  410. client_print(id, print_chat, "[Purchase Mod]: Nemas dovoljno ammo packova");
  411. client_cmd(id,"spk purchasemod/sorry");
  412. if (get_cvar_num(CVAR_STAYOPEN))
  413. buypage(id);
  414. return PLUGIN_CONTINUE;
  415. }
  416. else
  417. {
  418. zp_set_user_ammo_packs(id, (userMoney - get_cvar_num(SPEEDCOST)));
  419. client_cmd(id,"spk purchasemod/buy");
  420. client_print(id, print_chat, "[Purchase Mod]: Kupio si %s za %d ammo packova!", g_szAbilities[1], get_cvar_num(SPEEDCOST));
  421. imaspeed[id] = 1;
  422. imasposobnost[id] = 1;
  423. g_roundsspeed[id] = get_cvar_num(CVAR_ROUNDS) - 1;
  424. set_user_maxspeed(id, get_cvar_float(PLAYERSPEED));
  425. if (get_cvar_num(CVAR_STAYOPEN))
  426. buypage(id);
  427. }
  428. }
  429. case 3:
  430. {
  431. if (!get_cvar_num(CVAR_STEALTH))
  432. {
  433. client_print(id, print_chat, "[Purchase Mod]: %s item nije dozvoljen!", g_szAbilities[2]);
  434. client_cmd(id,"spk purchasemod/sorry");
  435. if (get_cvar_num(CVAR_STAYOPEN))
  436. buypage(id);
  437. return PLUGIN_CONTINUE;
  438. }
  439. if (imanevidljivost[id])
  440. {
  441. client_print(id, print_chat, "[Purchase Mod]: Vec imas %s!", g_szAbilities[2]);
  442. client_cmd(id,"spk purchasemod/sorry");
  443. if (get_cvar_num(CVAR_STAYOPEN))
  444. buypage(id);
  445. return PLUGIN_CONTINUE;
  446. }
  447. if (!get_cvar_num(CVAR_MULTI) && imasposobnost[id])
  448. {
  449. client_print(id, print_chat, "[Purchase Mod]: Vec imas jednu sposobnost!");
  450. client_cmd(id,"spk purchasemod/sorry");
  451. if (get_cvar_num(CVAR_STAYOPEN))
  452. buypage(id);
  453. return PLUGIN_CONTINUE;
  454. }
  455. new userMoney = zp_get_user_ammo_packs(id);
  456. if(get_cvar_num(STEALTHCOST) > userMoney)
  457. {
  458. client_print(id, print_chat, "[Purchase Mod]: Nemas dovoljno ammo packova");
  459. client_cmd(id,"spk purchasemod/sorry");
  460. if (get_cvar_num(CVAR_STAYOPEN))
  461. buypage(id);
  462. return PLUGIN_CONTINUE;
  463. }
  464. else
  465. {
  466. zp_set_user_ammo_packs(id, (userMoney - get_cvar_num(STEALTHCOST)));
  467. client_cmd(id,"spk purchasemod/buy");
  468. client_print(id, print_chat, "[Purchase Mod]: Kupio si %s za %d ammo packova!", g_szAbilities[2], get_cvar_num(STEALTHCOST));
  469. imanevidljivost[id] = 1;
  470. imasposobnost[id] = 1;
  471. g_roundsstealth[id] = get_cvar_num(CVAR_ROUNDS) - 1;
  472. set_user_rendering(id, kRenderFxNone, 50, 50, 50, kRenderTransAdd, 50);
  473. set_user_footsteps(id, 1);
  474. if (get_cvar_num(CVAR_STAYOPEN))
  475. buypage(id);
  476. }
  477. }
  478. case 4:
  479. {
  480. if (!get_cvar_num(CVAR_GLASSES))
  481. {
  482. client_print(id, print_chat, "[Purchase Mod]: %s item nije dozvoljen!", g_szAbilities[3]);
  483. client_cmd(id,"spk purchasemod/sorry");
  484. if (get_cvar_num(CVAR_STAYOPEN))
  485. buypage(id);
  486. return PLUGIN_CONTINUE;
  487. }
  488. if (imanaocare[id])
  489. {
  490. client_print(id, print_chat, "[Purchase Mod]: Vec imas %s!", g_szAbilities[3]);
  491. client_cmd(id,"spk purchasemod/sorry");
  492. if (get_cvar_num(CVAR_STAYOPEN))
  493. buypage(id);
  494. return PLUGIN_CONTINUE;
  495. }
  496. if (!get_cvar_num(CVAR_MULTI) && imasposobnost[id])
  497. {
  498. client_print(id, print_chat, "[Purchase Mod]: Vec imas jednu sposobnost!");
  499. client_cmd(id,"spk purchasemod/sorry");
  500. if (get_cvar_num(CVAR_STAYOPEN))
  501. buypage(id);
  502. return PLUGIN_CONTINUE;
  503. }
  504. new userMoney = zp_get_user_ammo_packs(id);
  505. if(get_cvar_num(GLASSESCOST) > userMoney)
  506. {
  507. client_print(id, print_chat, "[Purchase Mod]: Nemas dovoljno ammo packova");
  508. client_cmd(id,"spk purchasemod/sorry");
  509. if (get_cvar_num(CVAR_STAYOPEN))
  510. buypage(id);
  511. return PLUGIN_CONTINUE;
  512. }
  513. else
  514. {
  515. zp_set_user_ammo_packs(id, (userMoney - get_cvar_num(GLASSESCOST)));
  516. client_cmd(id,"spk purchasemod/buy");
  517. client_print(id, print_chat, "[Purchase Mod]: Kupio si %s za %d ammo packova!", g_szAbilities[3], get_cvar_num(GLASSESCOST));
  518. imanaocare[id] = 1;
  519. imasposobnost[id] = 1;
  520. g_roundsglasses[id] = get_cvar_num(CVAR_ROUNDS) - 1;
  521. event_blinded(id);
  522. if (get_cvar_num(CVAR_STAYOPEN))
  523. buypage(id);
  524. }
  525. }
  526. case 5:
  527. {
  528. if (!get_cvar_num(CVAR_MULTIJUMP))
  529. {
  530. client_print(id, print_chat, "[Purchase Mod]: %s item nije dozvoljen!", g_szAbilities[4]);
  531. client_cmd(id,"spk purchasemod/sorry");
  532. if (get_cvar_num(CVAR_STAYOPEN))
  533. buypage(id);
  534. return PLUGIN_CONTINUE;
  535. }
  536. if (imamulti[id])
  537. {
  538. client_print(id, print_chat, "[Purchase Mod]: Vec imas %s!", g_szAbilities[4]);
  539. client_cmd(id,"spk purchasemod/sorry");
  540. if (get_cvar_num(CVAR_STAYOPEN))
  541. buypage(id);
  542. return PLUGIN_CONTINUE;
  543. }
  544. if (!get_cvar_num(CVAR_MULTI) && imasposobnost[id])
  545. {
  546. client_print(id, print_chat, "[Purchase Mod]: Vec imas jednu sposobnost!");
  547. client_cmd(id,"spk purchasemod/sorry");
  548. if (get_cvar_num(CVAR_STAYOPEN))
  549. buypage(id);
  550. return PLUGIN_CONTINUE;
  551. }
  552. new userMoney = zp_get_user_ammo_packs(id);
  553. if(get_cvar_num(MULTIJUMPCOST) > userMoney)
  554. {
  555. client_print(id, print_chat, "[Purchase Mod]: Nemas dovoljno ammo packova");
  556. client_cmd(id,"spk purchasemod/sorry");
  557. if (get_cvar_num(CVAR_STAYOPEN))
  558. buypage(id);
  559. return PLUGIN_CONTINUE;
  560. }
  561. else
  562. {
  563. zp_set_user_ammo_packs(id, (userMoney - get_cvar_num(MULTIJUMPCOST)));
  564. client_cmd(id,"spk purchasemod/buy");
  565. client_print(id, print_chat, "[Purchase Mod]: Kupio si %s za %d ammo packova!", g_szAbilities[4], get_cvar_num(MULTIJUMPCOST));
  566. imamulti[id] = 1;
  567. imasposobnost[id] = 1;
  568. g_roundsmultijump[id] = get_cvar_num(CVAR_ROUNDS) - 1;
  569. if (get_cvar_num(CVAR_STAYOPEN))
  570. buypage(id);
  571. }
  572. }
  573. case 6:
  574. {
  575. if (!get_cvar_num(CVAR_BUNNYHOP))
  576. {
  577. client_print(id, print_chat, "[Purchase Mod]: %s item nije dozvoljen!", g_szAbilities[5]);
  578. client_cmd(id,"spk purchasemod/sorry");
  579. if (get_cvar_num(CVAR_STAYOPEN))
  580. buypage(id);
  581. return PLUGIN_CONTINUE;
  582. }
  583. if (imabhop[id])
  584. {
  585. client_print(id, print_chat, "[Purchase Mod]: Vec imas %s!", g_szAbilities[5]);
  586. client_cmd(id,"spk purchasemod/sorry");
  587. if (get_cvar_num(CVAR_STAYOPEN))
  588. buypage(id);
  589. return PLUGIN_CONTINUE;
  590. }
  591. if (!get_cvar_num(CVAR_MULTI) && imasposobnost[id])
  592. {
  593. client_print(id, print_chat, "[Purchase Mod]: Vec imas jednu sposobnost!");
  594. client_cmd(id,"spk purchasemod/sorry");
  595. if (get_cvar_num(CVAR_STAYOPEN))
  596. buypage(id);
  597. return PLUGIN_CONTINUE;
  598. }
  599. new userMoney = zp_get_user_ammo_packs(id);
  600. if(get_cvar_num(BUNNYHOPCOST) > userMoney)
  601. {
  602. client_print(id, print_chat, "[Purchase Mod]: Nemas dovoljno ammo packova");
  603. client_cmd(id,"spk purchasemod/sorry");
  604. if (get_cvar_num(CVAR_STAYOPEN))
  605. buypage(id);
  606. return PLUGIN_CONTINUE;
  607. }
  608. else
  609. {
  610. zp_set_user_ammo_packs(id, (userMoney - get_cvar_num(BUNNYHOPCOST)));
  611. client_cmd(id,"spk purchasemod/buy");
  612. client_print(id, print_chat, "[Purchase Mod]: Kupio si %s za %d ammo packova!", g_szAbilities[5], get_cvar_num(BUNNYHOPCOST));
  613. imabhop[id] = 1;
  614. imasposobnost[id] = 1;
  615. g_roundsbunnyhop[id] = get_cvar_num(CVAR_ROUNDS) - 1;
  616. if (get_cvar_num(CVAR_STAYOPEN))
  617. buypage(id);
  618. }
  619. }
  620. case 7:
  621. {
  622. if (!get_cvar_num(CVAR_HEALTH))
  623. {
  624. client_print(id, print_chat, "[Purchase Mod]: %s item nije dozvoljen!", g_szAbilities[6]);
  625. client_cmd(id,"spk purchasemod/sorry");
  626. if (get_cvar_num(CVAR_STAYOPEN))
  627. buypage(id);
  628. return PLUGIN_CONTINUE;
  629. }
  630. if (imahp[id])
  631. {
  632. client_print(id, print_chat, "[Purchase Mod]: Vec imas %s!", g_szAbilities[6]);
  633. client_cmd(id,"spk purchasemod/sorry");
  634. if (get_cvar_num(CVAR_STAYOPEN))
  635. buypage(id);
  636. return PLUGIN_CONTINUE;
  637. }
  638. if (!get_cvar_num(CVAR_MULTI) && imasposobnost[id])
  639. {
  640. client_print(id, print_chat, "[Purchase Mod]: Vec imas jednu sposobnost!");
  641. client_cmd(id,"spk purchasemod/sorry");
  642. if (get_cvar_num(CVAR_STAYOPEN))
  643. buypage(id);
  644. return PLUGIN_CONTINUE;
  645. }
  646. new userMoney = zp_get_user_ammo_packs(id);
  647. if(get_cvar_num(HEALTHCOST) > userMoney)
  648. {
  649. client_print(id, print_chat, "[Purchase Mod]: Nemas dovoljno ammo packova");
  650. client_cmd(id,"spk purchasemod/sorry");
  651. if (get_cvar_num(CVAR_STAYOPEN))
  652. buypage(id);
  653. return PLUGIN_CONTINUE;
  654. }
  655. else
  656. {
  657. zp_set_user_ammo_packs(id, (userMoney - get_cvar_num(HEALTHCOST)));
  658. client_cmd(id,"spk purchasemod/buy");
  659. client_print(id, print_chat, "[Purchase Mod]: Kupio si %s za %d ammo packova!", g_szAbilities[6], get_cvar_num(HEALTHCOST));
  660. imahp[id] = 1;
  661. imasposobnost[id] = 1;
  662. g_roundshealth[id] = get_cvar_num(CVAR_ROUNDS) - 1;
  663. new health = get_cvar_num(PLAYERHEALTH);
  664. set_user_health(id, get_user_health(id) + health);
  665. set_user_armor(id, get_cvar_num(PLAYERARMOR));
  666. if (get_cvar_num(CVAR_STAYOPEN))
  667. buypage(id);
  668. }
  669. }
  670. }
  671. menu_destroy(menu);
  672.  
  673. return PLUGIN_HANDLED;
  674. }
  675.  
  676. public droppage(id)
  677. {
  678. new ratephrase[60]
  679. format(ratephrase, 59, "\yPurchase Mod: \rDrop Menu (%d percent)", get_cvar_num(CVAR_DROPRATE))
  680. new menu = menu_create(ratephrase, "drop_handler")
  681.  
  682. if (!imagravity[id])
  683. menu_additem(menu, "\rGravity", "1", 0);
  684. else
  685. menu_additem(menu, "\yGravity", "1", 0);
  686. if (!imaspeed[id])
  687. menu_additem(menu, "\rSpeed", "2", 0);
  688. else
  689. menu_additem(menu, "\ySpeed", "2", 0);
  690. if (!imanevidljivost[id])
  691. menu_additem(menu, "\rStealth", "3", 0);
  692. else
  693. menu_additem(menu, "\yStealth", "3", 0);
  694. if (!imanaocare[id])
  695. menu_additem(menu, "\rAnti-flash glasses", "4", 0);
  696. else
  697. menu_additem(menu, "\yAnti-flash glasses", "4", 0);
  698. if (!imamulti[id])
  699. menu_additem(menu, "\rMulti jump", "5", 0);
  700. else
  701. menu_additem(menu, "\yMulti jump", "5", 0);
  702. if (!imabhop[id])
  703. menu_additem(menu, "\rBunny hop", "6", 0);
  704. else
  705. menu_additem(menu, "\yBunny hop", "6", 0);
  706. if (!imahp[id])
  707. menu_additem(menu, "\rHealth and Armor", "7", 0);
  708. else
  709. menu_additem(menu, "\yHealth and Armor", "7", 0);
  710.  
  711. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  712. menu_display(id, menu, 0);
  713. }
  714.  
  715. public drop_handler(id, menu, item)
  716. {
  717. new gravity_drop = (get_cvar_num(GRAVITYCOST) * get_cvar_num(CVAR_DROPRATE) / 100);
  718. new speed_drop = (get_cvar_num(SPEEDCOST) * get_cvar_num(CVAR_DROPRATE) / 100);
  719. new stealth_drop = (get_cvar_num(STEALTHCOST) * get_cvar_num(CVAR_DROPRATE) / 100);
  720. new glasses_drop = (get_cvar_num(GLASSESCOST) * get_cvar_num(CVAR_DROPRATE) / 100);
  721. new multijump_drop = (get_cvar_num(MULTIJUMPCOST) * get_cvar_num(CVAR_DROPRATE) / 100);
  722. new bunnyhop_drop = (get_cvar_num(BUNNYHOPCOST) * get_cvar_num(CVAR_DROPRATE) / 100);
  723. new health_drop = (get_cvar_num(HEALTHCOST) * get_cvar_num(CVAR_DROPRATE) / 100);
  724.  
  725. if (item == MENU_EXIT)
  726. {
  727. menu_destroy(menu);
  728. startpage(id);
  729.  
  730. return PLUGIN_HANDLED;
  731. }
  732.  
  733. new data[6], iName[64];
  734. new access, callback;
  735. menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback);
  736.  
  737. new key = str_to_num(data);
  738.  
  739. switch(key)
  740. {
  741. case 1:
  742. {
  743. if (!imagravity[id])
  744. {
  745. client_print(id, print_chat, "[Purchase Mod]: You don't have %s!", g_szAbilities[0]);
  746. client_cmd(id,"spk purchasemod/sorry");
  747. }
  748. else
  749. {
  750. new userMoney = zp_get_user_ammo_packs(id);
  751. zp_set_user_ammo_packs(id, (userMoney + gravity_drop));
  752. client_cmd(id,"spk purchasemod/drain");
  753. client_print(id, print_chat, "[Purchase Mod]: You dropped %s for $%d!", g_szAbilities[0], gravity_drop);
  754. imagravity[id] = 0;
  755. g_roundsgravity[id] = 0;
  756. set_user_gravity(id, 1.0);
  757. abilitycheck(id);
  758. }
  759. }
  760. case 2:
  761. {
  762. if (!imaspeed[id])
  763. {
  764. client_print(id, print_chat, "[Purchase Mod]: You don't have %s!", g_szAbilities[1]);
  765. client_cmd(id,"spk purchasemod/sorry");
  766. }
  767. else
  768. {
  769. new userMoney = zp_get_user_ammo_packs(id);
  770. zp_set_user_ammo_packs(id, (userMoney + speed_drop));
  771. client_cmd(id,"spk purchasemod/drain");
  772. client_print(id, print_chat, "[Purchase Mod]: You dropped %s for $%d!", g_szAbilities[1], speed_drop);
  773. imaspeed[id] = 0;
  774. g_roundsspeed[id] = 0;
  775. set_user_maxspeed(id, 250.0);
  776. abilitycheck(id);
  777. }
  778. }
  779. case 3:
  780. {
  781. if(!imanevidljivost[id])
  782. {
  783. client_print(id, print_chat, "[Purchase Mod]: You don't have %s!", g_szAbilities[2]);
  784. client_cmd(id,"spk purchasemod/sorry");
  785. }
  786. else
  787. {
  788. new userMoney = zp_get_user_ammo_packs(id);
  789. zp_set_user_ammo_packs(id, (userMoney + stealth_drop));
  790. client_cmd(id,"spk purchasemod/drain");
  791. client_print(id, print_chat, "[Purchase Mod]: You dropped %s for $%d!", g_szAbilities[2], stealth_drop);
  792. imanevidljivost[id] = 0;
  793. g_roundsstealth[id] = 0;
  794. set_user_rendering(id,kRenderFxNone,255,255,255, kRenderNormal,16);
  795. set_user_footsteps(id,0);
  796. abilitycheck(id);
  797. }
  798. }
  799. case 4:
  800. {
  801. if(!imanaocare[id])
  802. {
  803. client_print(id, print_chat, "[Purchase Mod]: You don't have %s!", g_szAbilities[3]);
  804. client_cmd(id,"spk purchasemod/sorry");
  805. }
  806. else
  807. {
  808. new userMoney = zp_get_user_ammo_packs(id);
  809. zp_set_user_ammo_packs(id, (userMoney + glasses_drop));
  810. client_cmd(id,"spk purchasemod/drain");
  811. client_print(id, print_chat, "[Purchase Mod]: You dropped %s for $%d!", g_szAbilities[3], glasses_drop);
  812. imanaocare[id] = 0;
  813. g_roundsglasses[id] = 0;
  814. event_blinded(id);
  815. abilitycheck(id);
  816. }
  817. }
  818. case 5:
  819. {
  820. if(!imamulti[id])
  821. {
  822. client_print(id, print_chat, "[Purchase Mod]: You don't have %s!", g_szAbilities[4]);
  823. client_cmd(id,"spk purchasemod/sorry");
  824. }
  825. else
  826. {
  827. new userMoney = zp_get_user_ammo_packs(id);
  828. zp_set_user_ammo_packs(id, (userMoney + multijump_drop));
  829. client_cmd(id,"spk purchasemod/drain");
  830. client_print(id, print_chat, "[Purchase Mod]: You dropped %s for $%d!", g_szAbilities[4], multijump_drop);
  831. imamulti[id] = 0;
  832. g_roundsmultijump[id] = 0;
  833. abilitycheck(id);
  834. }
  835. }
  836. case 6:
  837. {
  838. if(!imabhop[id])
  839. {
  840. client_print(id, print_chat, "[Purchase Mod]: You don't have %s!", g_szAbilities[5]);
  841. client_cmd(id,"spk purchasemod/sorry");
  842. }
  843. else
  844. {
  845. new userMoney = zp_get_user_ammo_packs(id);
  846. zp_set_user_ammo_packs(id, (userMoney + bunnyhop_drop));
  847. client_cmd(id,"spk purchasemod/drain");
  848. client_print(id, print_chat, "[Purchase Mod]: You dropped %s for $%d!", g_szAbilities[5], bunnyhop_drop);
  849. imabhop[id] = 0;
  850. g_roundsbunnyhop[id] = 0;
  851. abilitycheck(id);
  852. }
  853. }
  854. case 7:
  855. {
  856. if(!imahp[id])
  857. {
  858. client_print(id, print_chat, "[Purchase Mod]: You don't have %s!", g_szAbilities[6]);
  859. client_cmd(id,"spk purchasemod/sorry");
  860. }
  861. else
  862. {
  863. new userMoney = zp_get_user_ammo_packs(id);
  864. zp_set_user_ammo_packs(id, (userMoney + health_drop));
  865. client_cmd(id,"spk purchasemod/drain");
  866. client_print(id, print_chat, "[Purchase Mod]: You dropped %s for $%d!", g_szAbilities[6], health_drop);
  867. imahp[id] = 0;
  868. g_roundshealth[id] = 0;
  869. if (get_user_health(id) > 100)
  870. set_user_health(id, 100);
  871. if (get_user_armor(id) > 100)
  872. set_user_armor(id, 100);
  873. abilitycheck(id);
  874. }
  875. }
  876. }
  877. menu_destroy(menu);
  878.  
  879. if (get_cvar_num(CVAR_STAYOPEN))
  880. droppage(id);
  881. return PLUGIN_HANDLED;
  882. }
  883.  
  884. public client_PreThink(id)
  885. {
  886. if(imamulti[id])
  887. {
  888. new nbut = get_user_button(id);
  889. new obut = get_user_oldbutton(id);
  890. if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
  891. {
  892. if(brojskokova[id] < get_cvar_num(MULTIJUMPNUMBER))
  893. {
  894. g_dojump[id] = true;
  895. brojskokova[id]++;
  896. return PLUGIN_CONTINUE;
  897. }
  898. }
  899. if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
  900. brojskokova[id] = 0;
  901.  
  902. return PLUGIN_CONTINUE;
  903. }
  904. if(imabhop[id])
  905. {
  906. entity_set_float(id, EV_FL_fuser2, 0.0);
  907.  
  908. if (entity_get_int(id, EV_INT_button) & 2)
  909. {
  910. new flags = entity_get_int(id, EV_INT_flags);
  911.  
  912. if (flags & FL_WATERJUMP)
  913. {
  914. return PLUGIN_CONTINUE;
  915. }
  916. if (entity_get_int(id, EV_INT_waterlevel) >= 2)
  917. {
  918. return PLUGIN_CONTINUE;
  919. }
  920. if(!(flags & FL_ONGROUND))
  921. {
  922. return PLUGIN_CONTINUE;
  923. }
  924.  
  925. new Float:velocity[3];
  926. entity_get_vector(id, EV_VEC_velocity, velocity);
  927. velocity[2] += 250.0;
  928. entity_set_vector(id, EV_VEC_velocity, velocity);
  929.  
  930. entity_set_int(id, EV_INT_gaitsequence, 6);
  931. }
  932. return PLUGIN_CONTINUE;
  933. }
  934. return PLUGIN_HANDLED;
  935. }
  936.  
  937. public client_PostThink(id)
  938. {
  939. if(g_dojump[id] == true && imamulti[id])
  940. {
  941. new Float:velocity[3];
  942. entity_get_vector(id,EV_VEC_velocity,velocity);
  943. velocity[2] = random_float(265.0,285.0);
  944. entity_set_vector(id,EV_VEC_velocity,velocity);
  945. g_dojump[id] = false;
  946. return PLUGIN_CONTINUE;
  947. }
  948. return PLUGIN_CONTINUE;
  949. }
  950.  
  951. public speedb(id)
  952. {
  953. if(imaspeed[id])
  954. set_user_maxspeed(id, get_cvar_float(PLAYERSPEED));
  955. return PLUGIN_HANDLED;
  956. }
  957.  
  958. public event_blinded(id)
  959. {
  960. if(imanaocare[id])
  961. {
  962. message_begin(MSG_ONE,g_msgscreenfade,{0,0,0},id);
  963. write_short(~0);
  964. write_short(0);
  965. write_short(1<<12);
  966. write_byte(0);
  967. write_byte(0);
  968. write_byte(0);
  969. write_byte(100);
  970. message_end();
  971. set_task(0.0,"event_blinded",id)
  972. }
  973. return PLUGIN_HANDLED;
  974. }
  975.  
  976. public roundchange(id)
  977. {
  978. if(imasposobnost[id])
  979. strip(id);
  980.  
  981. return PLUGIN_HANDLED;
  982. }
  983.  
  984. public abilitycheck(id)
  985. {
  986. if(!imagravity[id] && !imaspeed[id] && !imanevidljivost[id] && !imanaocare[id] && !imamulti[id] && !imabhop[id] && !imahp[id])
  987. imasposobnost[id] = 0;
  988.  
  989. return PLUGIN_CONTINUE;
  990. }
  991. public strip(id)
  992. {
  993. new arg[32], name[32];
  994. read_argv(1, arg,31);
  995. new player = cmd_target(id,arg,4);
  996. get_user_name(player,name,31);
  997. if(imagravity[id])
  998. {
  999. if (!g_roundsgravity[id])
  1000. {
  1001. set_user_gravity(id, 1.0);
  1002. client_cmd(id,"spk purchasemod/drain");
  1003. client_print(id, print_chat, "[Purchase Mod]: Gravity set back to normal!");
  1004. imagravity[id] = 0;
  1005. }
  1006. if (g_roundsgravity[id] > 0)
  1007. {
  1008. client_print(id, print_chat, "[Purchase Mod]: %d round(s) left with %s", g_roundsgravity[id], g_szAbilities[0]);
  1009. g_roundsgravity[id]--;
  1010. set_user_gravity(id, get_cvar_float(PLAYERGRAVITY)/800);
  1011. }
  1012. }
  1013. if(imaspeed[id])
  1014. {
  1015. if (!g_roundsspeed[id])
  1016. {
  1017. set_user_maxspeed(id, 250.0);
  1018. client_cmd(id,"spk purchasemod/drain");
  1019. client_print(id, print_chat, "[Purchase Mod]: Speed set back to normal!");
  1020. imaspeed[id] = 0;
  1021. }
  1022. if (g_roundsspeed[id] > 0)
  1023. {
  1024. client_print(id, print_chat, "[Purchase Mod]: %d round(s) left with %s", g_roundsspeed[id], g_szAbilities[1]);
  1025. g_roundsspeed[id]--;
  1026. }
  1027. }
  1028. if(imanevidljivost[id])
  1029. {
  1030. if (!g_roundsstealth[id])
  1031. {
  1032. set_user_rendering(id,kRenderFxNone,255,255,255, kRenderNormal,16);
  1033. set_user_footsteps(id,0);
  1034. client_cmd(id,"spk purchasemod/drain");
  1035. client_print(id, print_chat, "[Purchase Mod]: Stealth set to normal!");
  1036. imanevidljivost[id] = 0;
  1037. }
  1038. if (g_roundsstealth[id] > 0)
  1039. {
  1040. client_print(id, print_chat, "[Purchase Mod]: %d round(s) left with %s", g_roundsstealth[id], g_szAbilities[2]);
  1041. g_roundsstealth[id]--;
  1042. }
  1043. }
  1044. if(imanaocare[id])
  1045. {
  1046. if (!g_roundsglasses[id])
  1047. {
  1048. client_print(id, print_chat, "[Purchase Mod]: Flash glasses broke!");
  1049. client_cmd(id,"spk purchasemod/drain");
  1050. imanaocare[id] = 0;
  1051. }
  1052. if (g_roundsglasses[id] > 0)
  1053. {
  1054. client_print(id, print_chat, "[Purchase Mod]: %d round(s) left with %s", g_roundsglasses[id], g_szAbilities[3]);
  1055. g_roundsglasses[id]--;
  1056. }
  1057. }
  1058. if(imamulti[id])
  1059. {
  1060. if (!g_roundsmultijump[id])
  1061. {
  1062. client_print(id, print_chat, "[Purchase Mod]: Multi-Jump ran out!");
  1063. client_cmd(id,"spk purchasemod/drain");
  1064. imamulti[id] = 0;
  1065. }
  1066. if (g_roundsmultijump[id] > 0)
  1067. {
  1068. client_print(id, print_chat, "[Purchase Mod]: %d round(s) left with %s", g_roundsmultijump[id], g_szAbilities[4]);
  1069. g_roundsmultijump[id]--;
  1070. }
  1071. }
  1072. if(imabhop[id])
  1073. {
  1074. if (!g_roundsbunnyhop[id])
  1075. {
  1076. client_print(id, print_chat, "[Purchase Mod]: Bunny Hop ran out!");
  1077. client_cmd(id,"spk purchasemod/drain");
  1078. imabhop[id] = 0;
  1079. }
  1080. if (g_roundsbunnyhop[id] > 0)
  1081. {
  1082. client_print(id, print_chat, "[Purchase Mod]: %d round(s) left with %s", g_roundsbunnyhop[id], g_szAbilities[5]);
  1083. g_roundsbunnyhop[id]--;
  1084. }
  1085. }
  1086. if(imahp[id])
  1087. {
  1088. if (!g_roundshealth[id])
  1089. {
  1090. client_cmd(id,"spk purchasemod/drain");
  1091. set_user_health(id, 100);
  1092. if (get_user_armor(id) <= 100)
  1093. return PLUGIN_CONTINUE;
  1094. set_user_armor(id, 100);
  1095. imahp[id] = 0;
  1096. }
  1097. if (g_roundshealth[id] > 0)
  1098. {
  1099. new health = get_cvar_num(PLAYERHEALTH);
  1100. client_print(id, print_chat, "[Purchase Mod]: %d round(s) left with extra %s", g_roundshealth[id], g_szAbilities[6]);
  1101. set_user_health(id, get_user_health(id) + health);
  1102. set_user_armor(id, get_cvar_num(PLAYERARMOR));
  1103. g_roundshealth[id]--;
  1104. }
  1105. }
  1106. abilitycheck(id);
  1107.  
  1108. return PLUGIN_HANDLED;
  1109. }
Advertisement
Add Comment
Please, Sign In to add comment