Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.89 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <engine>
  5. #include <fakemeta>
  6. #include <hamsandwich>
  7. #include <nvault>
  8. #include <fun>
  9. #include <csgo_remake>
  10.  
  11. #define PLUGIN "EFFx's VIP"
  12. #define VERSION "2.0"
  13. #define AUTHOR "EFFx"
  14.  
  15. #define nvault_clear(%1) nvault_prune(%1, 0, get_systime() + 1) // Thx OciXCrom
  16. #define LOGFILE "vip_log.log"
  17.  
  18. new const szCfgFile[] = "VIP_Config.cfg"
  19.  
  20. enum(+= 1000)
  21. {
  22. TASK_HPREGEN,
  23. TASK_SHOWEXPERIENCE,
  24. TASK_SHOWVMONEY,
  25. TASK_GODMOD
  26. }
  27.  
  28. static timer[33]
  29.  
  30. enum _:Weapons
  31. {
  32. WeapName[200],
  33. WeaponID[32],
  34. BpAmmo
  35. }
  36. new const VipWeapons[][Weapons] =
  37. {
  38. { "AK47 \d+ \wDeagle \d+ \wAll Grenades", "weapon_ak47",250 },
  39. { "M4A1 \d+ \wDeagle \d+ \wAll Grenades","weapon_m4a1",250 },
  40. { "AWP \d+ \wDeagle \d+ \wAll Grenades", "weapon_awp",250 }
  41. }
  42.  
  43. new bool:WeaponSelected[33]
  44.  
  45. native get_user_vip(user_id)
  46. native set_user_vip(user_id,vip_mode)
  47.  
  48. new CVAR_color_Kill[3]
  49.  
  50. new g_iJumpCount[ 33 ]
  51.  
  52. new PcvarVIPMoneyKillBonus, PcvarVIPMoneyGive,
  53. PcvarMaxRegenHP,PcvarHpRegenAdd,PcvarShowVMoney,
  54. PcvarMaxExperience,PcvarPrefixChat
  55.  
  56. new VIP[33],VIPMoney[33],Experience[33]
  57.  
  58. new VIPMj[33],VIPBh[33],VIPRegen[33],VIPNoDmg[33],VIPImm[33]
  59. new bool:g_bActived_Mj[33],bool:g_bActived_Bhop[33],bool:g_bActived_Imm[33],
  60. bool:g_bActived_Regen[33],bool:g_bActived_NoDmg[33]
  61.  
  62. new HudsSync[6]
  63.  
  64. new maxplayers
  65.  
  66. new g_nVault
  67.  
  68. public plugin_init()
  69. {
  70. register_plugin(PLUGIN, VERSION, AUTHOR)
  71.  
  72. PcvarPrefixChat = register_cvar("vip_prefixchat","[VIP System]")
  73. PcvarShowVMoney = register_cvar("vip_showmoney","1")
  74. PcvarVIPMoneyKillBonus = register_cvar("vip_vipmoneybonus","15")
  75. PcvarVIPMoneyGive = register_cvar("vip_vipmoneygive","30000")
  76. PcvarMaxRegenHP = register_cvar("vip_hpregenmax","100")
  77. PcvarHpRegenAdd = register_cvar("vip_hpregenadd","2")
  78. PcvarMaxExperience= register_cvar("vip_maxexperience","1000000")
  79.  
  80. maxplayers = get_maxplayers()
  81.  
  82. for(new i;i < sizeof HudsSync;i++)
  83. HudsSync[i] = CreateHudSyncObj()
  84.  
  85. register_forward( FM_CmdStart, "CmdStart" )
  86.  
  87. register_clcmd("say /vips","ShowVIPs")
  88. register_clcmd("say /vmenu","ShowVIPMenu")
  89.  
  90. register_concmd("amx_give_vmoney", "give_points", ADMIN_IMMUNITY, "<nume> <puncte>");
  91. register_concmd("amx_resetdata","cmdReset",ADMIN_BAN,"- Reset all vip data")
  92. register_concmd("amx_vip", "cmdVIP", ADMIN_KICK, "<name or @ALL> [1|0]")
  93.  
  94. RegisterHam(Ham_TakeDamage, "player", "ham_Player_TakeDamage_Post", 0)
  95. RegisterHam(Ham_Player_PostThink, "player", "ham_Player_PostThink_Post", 1 )
  96. RegisterHam(Ham_Killed,"player","fw_Ham_Player_Killed",1)
  97. RegisterHam(Ham_Spawn,"player","fwSpawn",1)
  98.  
  99. LoadCfg()
  100. }
  101. LoadCfg()
  102. {
  103. new text[128], fp
  104. formatex(text,charsmax(text),"addons/amxmodx/configs/VIPCfgs/%s",szCfgFile)
  105. fp = fopen(text,"rt")
  106. if(!fp)
  107. {
  108. formatex(text,charsmax(text),"Archive ^"addons/amxmodx/configs/VIPCfgs/%s^" not found",szCfgFile)
  109. log_to_file(LOGFILE,text)
  110. set_fail_state(text)
  111. }
  112. new szDir[32];
  113. get_localinfo("amxx_configsdir",szDir,charsmax(szDir));
  114.  
  115. server_cmd("exec %s/VIPCfgs/%s",szDir,szCfgFile)
  116. }
  117. public plugin_natives()
  118. {
  119. register_native("get_user_vip","_get_user_vip")
  120. register_native("set_user_vip","_set_user_vip")
  121. }
  122. public _get_user_vip(user_id)
  123. {
  124. new id = get_param(1)
  125. if(!is_user_connected(id) || !id)
  126. return 0
  127.  
  128. return VIP[id]
  129. }
  130.  
  131. public _set_user_vip(user_id,vip_mode)
  132. {
  133. new id = get_param(1)
  134. new MODE = get_param(2)
  135.  
  136. if(!is_user_connected(id) || !id)
  137. return 0
  138.  
  139. VIP[id] = MODE
  140. return 1
  141. }
  142.  
  143. public cmdReset(id,level,cid)
  144. {
  145. if (!cmd_access(id, level, cid, 1))
  146. return PLUGIN_HANDLED
  147.  
  148. new name[32]
  149. get_user_name(id, name, 31)
  150.  
  151. new Buffer[85]
  152. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  153.  
  154. color_chat(0,"!g%s!y: ADMIN!t %s!y has reseted all vip data from this server!,",equal(Buffer,"0" ) ? "" : Buffer,name)
  155.  
  156. new players[32],inum
  157. get_players(players,inum)
  158. for(new i = 0 ;i < inum; i++)
  159. {
  160. if(get_user_vip(players[i]) == 1)
  161. {
  162. VIPMoney[players[i]] = 0
  163.  
  164. VIPBh[players[i]] = 0
  165. VIPMj[players[i]] = 0
  166. VIPImm[players[i]] = 0
  167. VIPNoDmg[players[i]] = 0
  168. VIPRegen[players[i]] = 0
  169.  
  170. g_bActived_Bhop[players[i]] = false
  171. g_bActived_Imm[players[i]] = false
  172. g_bActived_Mj[players[i]] = false
  173. g_bActived_Regen[players[i]] = false
  174. g_bActived_NoDmg[players[i]] = false
  175. }
  176. }
  177.  
  178. return PLUGIN_HANDLED
  179. }
  180.  
  181. public give_points(id, PointsNum)
  182. {
  183. new arg[32];
  184. read_argv(1, arg, 31);
  185.  
  186. new player = cmd_target(id, arg, 31);
  187.  
  188. if(is_user_connected(player))
  189. {
  190. if(get_user_flags(id) & ADMIN_IMMUNITY)
  191. {
  192. VIPMoney[player] += get_pcvar_num(PcvarVIPMoneyGive);
  193. }
  194. else
  195. {
  196. console_print(id, "Nu ai acces la aceasta comanda");
  197. }
  198. }
  199. return PLUGIN_HANDLED;
  200. }
  201.  
  202. public cmdVIP(id, level, cid)
  203. {
  204. if (!cmd_access(id, level, cid, 2))
  205. return PLUGIN_HANDLED
  206.  
  207. new arg[32]
  208. read_argv(1, arg, 31)
  209.  
  210. new arg2[7]
  211. read_argv(2, arg2, 6)
  212.  
  213. new Buffer[85]
  214. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  215.  
  216. new name2[32], name[32]
  217. get_user_name(id, name, 31)
  218.  
  219. if(equal(arg,"@ALL"))
  220. {
  221. if(arg2[0] == '0')
  222. {
  223. new players[32],inum
  224. get_players(players,inum)
  225. for(new i = 0;i<inum;i++)
  226. {
  227. if(get_user_vip(players[i]) == 1)
  228. {
  229. if(task_exists(players[i]+TASK_HPREGEN))
  230. remove_task(players[i]+TASK_HPREGEN)
  231.  
  232. if(task_exists(players[i]+TASK_SHOWVMONEY))
  233. remove_task(players[i]+TASK_SHOWVMONEY)
  234.  
  235. if(task_exists(players[i]+TASK_GODMOD))
  236. remove_task(players[i]+TASK_GODMOD)
  237.  
  238. if(is_user_alive(players[i]))
  239. set_task(1.0,"ShowExperience",players[i]+TASK_SHOWEXPERIENCE,_,_,"b")
  240.  
  241. VIPBh[players[i]] = 0
  242. VIPMj[players[i]] = 0
  243. VIPImm[players[i]] = 0
  244. VIPNoDmg[players[i]] = 0
  245. VIPRegen[players[i]] = 0
  246.  
  247. g_bActived_Bhop[players[i]] = false
  248. g_bActived_Imm[players[i]] = false
  249. g_bActived_Mj[players[i]] = false
  250. g_bActived_Regen[players[i]] = false
  251. g_bActived_NoDmg[players[i]] = false
  252.  
  253. set_user_vip(players[i],0)
  254. VIPMoney[players[i]] = 0
  255. }
  256. }
  257. color_chat(0,"!g%s!y: ADMIN!t %s!y has !gremoved!y VIP from!t All Players",equal(Buffer,"0" ) ? "" : Buffer,name)
  258. }
  259. else if(arg2[0] == '1')
  260. {
  261. new players[32],inum
  262. get_players(players,inum)
  263. for(new i = 0;i<inum;i++)
  264. {
  265. if(get_user_vip(players[i]) == 0)
  266. {
  267. if(get_pcvar_num(PcvarShowVMoney) == 1)
  268. if(is_user_alive(players[i]))
  269. set_task(1.0,"ShowVIPMoney",players[i]+TASK_SHOWVMONEY,_,_,"b")
  270.  
  271. if(task_exists(players[i]+TASK_SHOWEXPERIENCE))
  272. remove_task(players[i]+TASK_SHOWEXPERIENCE)
  273.  
  274. set_user_vip(players[i],1)
  275. Experience[players[i]] = 0
  276. }
  277. }
  278. color_chat(0,"!g%s!y: ADMIN!t %s!y has!g given!y VIP for!t All Players",equal(Buffer,"0" ) ? "" : Buffer,name)
  279. }
  280. else
  281. {
  282. console_print(id,"[AMXX]: Use '1' or '0' to active/deactive the VIP from player!")
  283. return PLUGIN_HANDLED
  284. }
  285. }
  286. else
  287. {
  288. new player = cmd_target(id, arg, CMDTARGET_NO_BOTS)
  289.  
  290. if (!player)
  291. return PLUGIN_HANDLED
  292.  
  293. get_user_name(player, name2, 31)
  294.  
  295. if(arg2[0] == '0')
  296. {
  297. if(get_user_vip(player) == 1)
  298. {
  299. color_chat(0,"!g%s!y: ADMIN!t %s!y has !gremoved!y VIP from!t %s",equal(Buffer,"0" ) ? "" : Buffer,name,name2)
  300.  
  301. if(task_exists(player+TASK_HPREGEN))
  302. remove_task(player+TASK_HPREGEN)
  303.  
  304. if(task_exists(player+TASK_SHOWVMONEY))
  305. remove_task(player+TASK_SHOWVMONEY)
  306.  
  307. if(task_exists(player+TASK_GODMOD))
  308. remove_task(player+TASK_GODMOD)
  309.  
  310. if(is_user_alive(player))
  311. set_task(1.0,"ShowExperience",player+TASK_SHOWEXPERIENCE,_,_,"b")
  312.  
  313. if(get_user_team(player) == 1)
  314. cs_set_user_model(player,"guerilla")
  315.  
  316. if(get_user_team(player) == 2)
  317. cs_set_user_model(player,"gign")
  318.  
  319. VIPBh[player] = 0
  320. VIPMj[player] = 0
  321. VIPImm[player] = 0
  322. VIPNoDmg[player] = 0
  323. VIPRegen[player] = 0
  324.  
  325. g_bActived_Bhop[player] = false
  326. g_bActived_Imm[player] = false
  327. g_bActived_Mj[player] = false
  328. g_bActived_Regen[player] = false
  329. g_bActived_NoDmg[player] = false
  330.  
  331. set_user_vip(player,0)
  332. VIPMoney[player] = 0
  333. }
  334. else
  335. console_print(id,"[AMXX]: This player already have not VIP!")
  336. }
  337. else if(arg2[0] == '1')
  338. {
  339. if(get_user_vip(player) == 0)
  340. {
  341. color_chat(0,"!g%s!y: ADMIN!t %s!y has!g given!y VIP for!t %s",equal(Buffer,"0" ) ? "" : Buffer,name,name2)
  342.  
  343. if(get_pcvar_num(PcvarShowVMoney) == 1)
  344. if(is_user_alive(player))
  345. set_task(1.0,"ShowVIPMoney",player+TASK_SHOWVMONEY,_,_,"b")
  346.  
  347. if(task_exists(player+TASK_SHOWEXPERIENCE))
  348. remove_task(player+TASK_SHOWEXPERIENCE)
  349.  
  350. set_user_vip(player,1)
  351. Experience[player] = 0
  352. }
  353. else
  354. console_print(id,"[AMXX]: This player already have VIP!")
  355. }
  356. else
  357. {
  358. console_print(id,"[AMXX]: Use '1' or '0' to active/deactive the VIP from player!")
  359. return PLUGIN_HANDLED
  360. }
  361. }
  362. return PLUGIN_HANDLED
  363. }
  364. public client_putinserver(id)
  365. {
  366. if(is_user_bot(id))
  367. return
  368.  
  369. set_task( 0.2 , "HUD" , id + 672 );
  370.  
  371. LoadVIP(id)
  372. if(get_user_vip(id) == 1)
  373. {
  374. if(get_pcvar_num(PcvarShowVMoney) == 1)
  375. set_task(1.0,"ShowVIPMoney",id+TASK_SHOWVMONEY,_,_,"b")
  376.  
  377. set_task(3.0,"HelloVIP",id+200210)
  378. }
  379. }
  380. public HelloVIP(id)
  381. {
  382. id -= 200210
  383.  
  384. new szName[32]
  385. get_user_name(id,szName,31)
  386. set_hudmessage(0,100,255,0.15,0.35,2,1.0,5.0)
  387. ShowSyncHudMsg(id,HudsSync[4],"Hello %s, how are you today?^nType /vmenu for show your menu!",szName)
  388.  
  389. client_cmd(id,"spk ^"scientist/hellothere letsgo^"")
  390. }
  391. public client_disconnect(id)
  392. {
  393. SaveVIP(id)
  394. }
  395.  
  396. public ShowVIPs(user)
  397. {
  398. new adminnames[33][32]
  399. new message[256]
  400. new id, count, x, len
  401.  
  402. for(id = 1 ; id <= maxplayers ; id++)
  403. if(is_user_connected(id))
  404. if(get_user_vip(id) == 1)
  405. get_user_name(id, adminnames[count++], 31)
  406.  
  407. len = format(message, 255, "^x04---------------------------")
  408. len = format(message, 255, "^x04 VIP's ONLINE:^x01 ")
  409. if(count > 0)
  410. {
  411. for(x = 0 ; x < count ; x++)
  412. {
  413. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ",":"")
  414. if(len > 96 )
  415. {
  416. color_chat(user, message)
  417. }
  418. }
  419. }
  420. else
  421. {
  422. len += format(message[len], 255-len, "NO VIP's")
  423. color_chat(user, message)
  424. }
  425. len = format(message, 255, "^x04---------------------------")
  426. }
  427. public ShowVIPMoney(id)
  428. {
  429. id -= TASK_SHOWVMONEY
  430.  
  431. if(is_user_alive(id))
  432. {
  433. set_hudmessage(0,200,0,0.83,0.80,0,1.0,1.0)
  434. ShowSyncHudMsg(id,HudsSync[0],"VIPMoney: %d",VIPMoney[id])
  435. }
  436. else
  437. remove_task(id+TASK_SHOWVMONEY)
  438. }
  439. public ShowExperience(id)
  440. {
  441. id -= TASK_SHOWEXPERIENCE
  442.  
  443. if(is_user_alive(id))
  444. {
  445. set_hudmessage(0,200,0,0.83,0.80,0,1.0,1.0)
  446. ShowSyncHudMsg(id,HudsSync[2],"Experience: %d",Experience[id])
  447. }
  448. else
  449. remove_task(id+TASK_SHOWVMONEY)
  450. }
  451. public ShowVIPMenu(id)
  452. {
  453. new Buffer[85]
  454. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  455.  
  456. if(get_user_vip(id) == 1)
  457. {
  458. new szMenu = menu_create("VIP Menu^n\d- Choose what you want do!","vip_menu_handler")
  459. menu_additem(szMenu,"Weapons^n\d- Your first weapons!")
  460. menu_additem(szMenu,"\rSpecial Items^n\d- Amazing powers for VIP!")
  461. menu_additem(szMenu,"\rSpecial Market^n\d- Amazing market for VIP!")
  462.  
  463. menu_display(id,szMenu)
  464. }
  465. else
  466. {
  467. color_chat(id,"!g%s!y: You cant access this menu!",equal(Buffer,"0" ) ? "" : Buffer)
  468. }
  469. return PLUGIN_HANDLED
  470. }
  471. public vip_menu_handler(id,menu,item)
  472. {
  473. if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  474. {
  475. menu_destroy(menu)
  476. return PLUGIN_HANDLED
  477. }
  478. new Buffer[85]
  479. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  480. switch(item)
  481. {
  482. case 0:
  483. {
  484. if(!WeaponSelected[id])
  485. {
  486. VipWeaponsMenu(id)
  487. }
  488. else
  489. {
  490. color_chat(id,"!g%s!y: You already have selected your equipament!",equal(Buffer,"0" ) ? "" : Buffer)
  491. ShowVIPMenu(id)
  492. }
  493. }
  494. case 1:
  495. {
  496. VipItemsMenu(id)
  497. }
  498. case 2:
  499. {
  500. VipMarketMenu(id)
  501. }
  502. }
  503. return PLUGIN_HANDLED
  504. }
  505. public VipMarketMenu(id)
  506. {
  507. new szMenuM = menu_create("Special Market", "vip_market_handler")
  508.  
  509. menu_additem(szMenuM,"Case Market^n\d- A special Case Market!")
  510. menu_additem(szMenuM,"Key Market^n\d- A special Key Market!")
  511. menu_additem(szMenuM,"Scraps Market^n\d- A special Scraps Market!")
  512.  
  513. menu_display(id, szMenuM)
  514. }
  515. public vip_market_handler(id, menu, item)
  516. {
  517. if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  518. {
  519. menu_destroy(menu)
  520. return PLUGIN_HANDLED
  521. }
  522. switch(item)
  523. {
  524. case 0:
  525. {
  526. ShowCaseMarket(id);
  527. }
  528. case 1:
  529. {
  530. ShowKeysMarket(id);
  531. }
  532. case 2:
  533. {
  534. ShowScrapsMarket(id);
  535. }
  536. }
  537. return PLUGIN_HANDLED;
  538. }
  539.  
  540. public ShowCaseMarket(id)
  541. {
  542. new szMenuPP = menu_create("Case Market", "case_market_handler")
  543.  
  544. menu_additem(szMenuPP,"1 Case^n\d- Costs 30 VIPMoney!")
  545. menu_additem(szMenuPP,"5 Cases^n\d- Cost 150 VIPMoney!")
  546. menu_additem(szMenuPP,"10 Cases^n\d- Cost 300 VIPMoney!")
  547.  
  548. menu_display(id, szMenuPP)
  549. }
  550. public case_market_handler(id, menu, item)
  551. {
  552. if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  553. {
  554. menu_destroy(menu)
  555. return PLUGIN_HANDLED
  556. }
  557. new Buffer[85]
  558. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  559. switch(item)
  560. {
  561. case 0:
  562. {
  563. if(VIPMoney[id] >= 30)
  564. {
  565. VIPMoney[id] -= 30
  566. csgor_set_user_cases( id, csgor_get_user_cases( id ) + 1);
  567. color_chat(id,"!g%s!y: You've buyed 1 case!",equal(Buffer,"0" ) ? "" : Buffer)
  568. ShowCaseMarket(id);
  569. }
  570. else
  571. {
  572. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,30 - VIPMoney[id])
  573. }
  574. }
  575. case 1:
  576. {
  577. if(VIPMoney[id] >= 150)
  578. {
  579. VIPMoney[id] -= 150
  580. csgor_set_user_cases( id, csgor_get_user_cases( id ) + 5);
  581. color_chat(id,"!g%s!y: You've buyed 5 cases!",equal(Buffer,"0" ) ? "" : Buffer)
  582. ShowCaseMarket(id);
  583. }
  584. else
  585. {
  586. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,150 - VIPMoney[id])
  587. }
  588. }
  589. case 2:
  590. {
  591. if(VIPMoney[id] >= 300)
  592. {
  593. VIPMoney[id] -= 300
  594. csgor_set_user_cases( id, csgor_get_user_cases( id ) + 10);
  595. color_chat(id,"!g%s!y: You've buyed 10 cases!",equal(Buffer,"0" ) ? "" : Buffer)
  596. ShowCaseMarket(id);
  597. }
  598. else
  599. {
  600. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,300 - VIPMoney[id])
  601. }
  602. }
  603. }
  604. return PLUGIN_HANDLED;
  605. }
  606.  
  607. public ShowKeysMarket(id)
  608. {
  609. new szMenuPP2 = menu_create("Key Market", "key_market_handler")
  610.  
  611. menu_additem(szMenuPP2,"1 Key^n\d- Costs 30 VIPMoney!")
  612. menu_additem(szMenuPP2,"5 Keys^n\d- Cost 150 VIPMoney!")
  613. menu_additem(szMenuPP2,"10 Keys^n\d- Cost 300 VIPMoney!")
  614.  
  615. menu_display(id, szMenuPP2)
  616. }
  617. public key_market_handler(id, menu, item)
  618. {
  619. if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  620. {
  621. menu_destroy(menu)
  622. return PLUGIN_HANDLED
  623. }
  624. new Buffer[85]
  625. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  626. switch(item)
  627. {
  628. case 0:
  629. {
  630. if(VIPMoney[id] >= 30)
  631. {
  632. VIPMoney[id] -= 30
  633. csgor_set_user_keys( id, csgor_get_user_keys( id ) + 1);
  634. color_chat(id,"!g%s!y: You've buyed 1 key!",equal(Buffer,"0" ) ? "" : Buffer)
  635. ShowKeysMarket(id);
  636. }
  637. else
  638. {
  639. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,30 - VIPMoney[id])
  640. }
  641. }
  642. case 1:
  643. {
  644. if(VIPMoney[id] >= 150)
  645. {
  646. VIPMoney[id] -= 150
  647. csgor_set_user_keys( id, csgor_get_user_keys( id ) + 5);
  648. color_chat(id,"!g%s!y: You've buyed 5 keys!",equal(Buffer,"0" ) ? "" : Buffer)
  649. ShowKeysMarket(id);
  650. }
  651. else
  652. {
  653. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,150 - VIPMoney[id])
  654. }
  655. }
  656. case 2:
  657. {
  658. if(VIPMoney[id] >= 300)
  659. {
  660. VIPMoney[id] -= 300
  661. csgor_set_user_keys( id, csgor_get_user_keys( id ) + 10);
  662. color_chat(id,"!g%s!y: You've buyed 10 keys!",equal(Buffer,"0" ) ? "" : Buffer)
  663. ShowKeysMarket(id);
  664. }
  665. else
  666. {
  667. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,300 - VIPMoney[id])
  668. }
  669. }
  670. }
  671. return PLUGIN_HANDLED;
  672. }
  673.  
  674. public ShowScrapsMarket(id)
  675. {
  676. new szMenuPP23 = menu_create("Key Market", "scrap_market_handler")
  677.  
  678. menu_additem(szMenuPP23,"1 Scrap^n\d- Costs 30 VIPMoney!")
  679. menu_additem(szMenuPP23,"5 Scraps^n\d- Cost 150 VIPMoney!")
  680. menu_additem(szMenuPP23,"10 Scraps^n\d- Cost 300 VIPMoney!")
  681.  
  682. menu_display(id, szMenuPP23)
  683. }
  684. public scrap_market_handler(id, menu, item)
  685. {
  686. if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  687. {
  688. menu_destroy(menu)
  689. return PLUGIN_HANDLED
  690. }
  691. new Buffer[85]
  692. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  693. switch(item)
  694. {
  695. case 0:
  696. {
  697. if(VIPMoney[id] >= 30)
  698. {
  699. VIPMoney[id] -= 30
  700. csgor_set_user_dusts( id, csgor_get_user_dusts( id ) + 1);
  701. color_chat(id,"!g%s!y: You've buyed 1 scrap!",equal(Buffer,"0" ) ? "" : Buffer)
  702. ShowScrapsMarket(id);
  703. }
  704. else
  705. {
  706. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,30 - VIPMoney[id])
  707. }
  708. }
  709. case 1:
  710. {
  711. if(VIPMoney[id] >= 150)
  712. {
  713. VIPMoney[id] -= 150
  714. csgor_set_user_dusts( id, csgor_get_user_dusts( id ) + 5);
  715. color_chat(id,"!g%s!y: You've buyed 5 scraps!",equal(Buffer,"0" ) ? "" : Buffer)
  716. ShowScrapsMarket(id);
  717. }
  718. else
  719. {
  720. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,150 - VIPMoney[id])
  721. }
  722. }
  723. case 2:
  724. {
  725. if(VIPMoney[id] >= 300)
  726. {
  727. VIPMoney[id] -= 300
  728. csgor_set_user_dusts( id, csgor_get_user_dusts( id ) + 10);
  729. color_chat(id,"!g%s!y: You've buyed 10 scraps!",equal(Buffer,"0" ) ? "" : Buffer)
  730. ShowScrapsMarket(id);
  731. }
  732. else
  733. {
  734. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,300 - VIPMoney[id])
  735. }
  736. }
  737. }
  738. return PLUGIN_HANDLED;
  739. }
  740.  
  741. public VipWeaponsMenu(id)
  742. {
  743. new szMenuW = menu_create("Choose your weapon:","vip_weapons_handler")
  744.  
  745. for ( new i; i < sizeof VipWeapons; i++ )
  746. menu_additem( szMenuW, VipWeapons[ i ][ WeapName ] )
  747.  
  748. menu_display(id,szMenuW)
  749. }
  750. public vip_weapons_handler(id,menu,item)
  751. {
  752. if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  753. {
  754. menu_destroy(menu)
  755. return PLUGIN_HANDLED
  756. }
  757.  
  758. strip_user_weapons(id)
  759.  
  760. give_item(id,"weapon_knife")
  761.  
  762. give_item(id,"weapon_hegrenade")
  763. give_item(id,"weapon_flashbang")
  764.  
  765. cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
  766.  
  767. WeaponSelected[id] = true
  768.  
  769. give_item( id, VipWeapons[ item ][ WeaponID ] )
  770. cs_set_user_bpammo( id, get_weaponid( VipWeapons[ item ][ WeaponID ] ), VipWeapons[ item ][ BpAmmo ] )
  771.  
  772. give_item(id,"weapon_deagle")
  773. cs_set_user_bpammo(id,CSW_DEAGLE,250)
  774.  
  775. ShowVIPMenu(id)
  776. return PLUGIN_HANDLED
  777. }
  778. public VipItemsMenu(id)
  779. {
  780. new szTittle = menu_create("VIP Items Menu^n\d- Your items will be permenently.","vip_items_handler")
  781.  
  782. if(VIPMj[id] == 0)
  783. menu_additem(szTittle,"Multi-Jump \r1000VM^n\d- Add for you 2 more jumps!")
  784.  
  785. else
  786. menu_additem(szTittle,!g_bActived_Mj[id] ? "Multi-Jump \r[OFF]^n\d- Add for you 2 more jumps!"
  787. : "Multi-Jump \y[ON]^n\d- Add for you 2 more jumps!")
  788.  
  789. if(VIPRegen[id] == 0)
  790. menu_additem(szTittle,"HP Regenerate \r1500VM^n\d- Add 2HP per second.")
  791.  
  792. else
  793. menu_additem(szTittle,!g_bActived_Regen[id] ? "HP Regenerate \r[OFF]^n\d- Add 2HP per second." :
  794. "HP Regenerate \y[ON]^n\d- Add 2HP per second.")
  795.  
  796. if(VIPImm[id] == 0)
  797. menu_additem(szTittle,"Freeze \r2500VM^n\d- Chance for immobilize with a shot!")
  798.  
  799. else
  800. menu_additem(szTittle,!g_bActived_Imm[id] ? "Freeze \r[OFF]^n\d- Chance for immobilize with a shot!" :
  801. "Immobilize \y[ON]^n\d- Chance for immobilize with a shot!")
  802.  
  803. if(VIPBh[id] == 0)
  804. menu_additem(szTittle,"BunnyHop \r5000VM^n\d- Add for you automatic bhop!")
  805.  
  806. else
  807. menu_additem(szTittle,!g_bActived_Bhop[id] ? "BunnyHop \r[OFF]^n\d- Add for you automatic bhop!" :
  808. "BunnyHop \y[ON]^n\d- Add for you automatic bhop!")
  809.  
  810. if(VIPNoDmg[id] == 0)
  811. menu_additem(szTittle,"GodMode \r10000VM^n\d- You dont lose hp per 3 seconds!")
  812.  
  813. else
  814. menu_additem(szTittle,!g_bActived_NoDmg[id] ? "GodMode \r[OFF]^n\d- You dont lose hp per 3 seconds!" :
  815. "No Damage \y[ON]^n\d- You dont lose hp per 3 seconds!")
  816.  
  817. menu_additem(szTittle,"Back")
  818.  
  819. menu_display(id,szTittle)
  820.  
  821. }
  822. public vip_items_handler(id,menu,item)
  823. {
  824. if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
  825. {
  826. menu_destroy(menu)
  827. return PLUGIN_HANDLED
  828. }
  829. new Buffer[85]
  830. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  831. switch(item)
  832. {
  833. case 0:
  834. {
  835. if(VIPMj[id] == 0)
  836. {
  837. if(VIPMoney[id] >= 1000)
  838. {
  839. VIPMj[id] = 1
  840. VIPMoney[id] -= 1000
  841. color_chat(id,"!g%s!y: You've buyed !gMulti Jump!",equal(Buffer,"0" ) ? "" : Buffer)
  842.  
  843. client_cmd(id,"spk items/gunpickup2.wav")
  844.  
  845. VipItemsMenu(id)
  846. }
  847. else
  848. {
  849. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,1000 - VIPMoney[id])
  850. VipItemsMenu(id)
  851. }
  852. }
  853. else
  854. {
  855. if(!g_bActived_NoDmg[id])
  856. {
  857. if(!g_bActived_Mj[id])
  858. {
  859. g_bActived_Mj[id] = true
  860.  
  861. if(task_exists(id+TASK_GODMOD))
  862. remove_task(id+TASK_GODMOD)
  863.  
  864. if(task_exists(id+TASK_HPREGEN))
  865. remove_task(id+TASK_HPREGEN)
  866.  
  867. g_bActived_Bhop[id] = false
  868. g_bActived_Imm[id] = false
  869. g_bActived_Regen[id] = false
  870. VipItemsMenu(id)
  871. }
  872. else
  873. {
  874. g_bActived_Mj[id] = false
  875. VipItemsMenu(id)
  876. }
  877. }
  878. else
  879. {
  880. color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
  881. VipItemsMenu(id)
  882. }
  883. }
  884. }
  885. case 1:
  886. {
  887. if(VIPRegen[id] == 0)
  888. {
  889. if(VIPMoney[id] >= 1500)
  890. {
  891. VIPRegen[id] = 1
  892. VIPMoney[id] -= 1500
  893.  
  894. client_cmd(id,"spk items/gunpickup2.wav")
  895.  
  896. color_chat(id,"!g%s!y: You've buyed !gHP Regenerate!",equal(Buffer,"0" ) ? "" : Buffer)
  897. VipItemsMenu(id)
  898. }
  899. else
  900. {
  901. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,1500 - VIPMoney[id])
  902. VipItemsMenu(id)
  903. }
  904. }
  905. else
  906. {
  907. if(!g_bActived_NoDmg[id])
  908. {
  909. if(!g_bActived_Regen[id])
  910. {
  911. g_bActived_Regen[id] = true
  912.  
  913. g_bActived_Bhop[id] = false
  914. g_bActived_Imm[id] = false
  915. g_bActived_Mj[id] = false
  916.  
  917. if(task_exists(id+TASK_GODMOD))
  918. remove_task(id+TASK_GODMOD)
  919.  
  920. set_task(1.0,"HPRegen",id+TASK_HPREGEN,_,_,"b")
  921. VipItemsMenu(id)
  922. }
  923. else
  924. {
  925. g_bActived_Regen[id] = false
  926. VipItemsMenu(id)
  927. }
  928. }
  929. else
  930. {
  931. color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
  932. VipItemsMenu(id)
  933. }
  934. }
  935. }
  936. case 2:
  937. {
  938. if(VIPImm[id] == 0)
  939. {
  940. if(VIPMoney[id] >= 2500)
  941. {
  942. VIPImm[id] = 1
  943. VIPMoney[id] -= 2500
  944.  
  945. client_cmd(id,"spk items/gunpickup2.wav")
  946.  
  947. color_chat(id,"!g%s!y: You've buyed !gFreeze!",equal(Buffer,"0" ) ? "" : Buffer)
  948. VipItemsMenu(id)
  949. }
  950. else
  951. {
  952. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,2500 - VIPMoney[id])
  953. VipItemsMenu(id)
  954. }
  955. }
  956. else
  957. {
  958. if(!g_bActived_NoDmg[id])
  959. {
  960. if(!g_bActived_Imm[id])
  961. {
  962. g_bActived_Imm[id] = true
  963.  
  964. if(task_exists(id+TASK_GODMOD))
  965. remove_task(id+TASK_GODMOD)
  966.  
  967. if(task_exists(id+TASK_HPREGEN))
  968. remove_task(id+TASK_HPREGEN)
  969.  
  970. g_bActived_Bhop[id] = false
  971. g_bActived_Mj[id] = false
  972. g_bActived_Regen[id] = false
  973.  
  974. VipItemsMenu(id)
  975. }
  976. else
  977. {
  978. g_bActived_Imm[id] = false
  979. VipItemsMenu(id)
  980. }
  981. }
  982. else
  983. {
  984. color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
  985. VipItemsMenu(id)
  986. }
  987. }
  988. }
  989. case 3:
  990. {
  991. if(VIPBh[id] == 0)
  992. {
  993. if(VIPMoney[id] >= 5000)
  994. {
  995. VIPBh[id] = 1
  996. VIPMoney[id] -= 5000
  997. color_chat(id,"!g%s!y: You've buyed !gBunnyHop!",equal(Buffer,"0" ) ? "" : Buffer)
  998.  
  999. client_cmd(id,"spk items/gunpickup2.wav")
  1000.  
  1001. VipItemsMenu(id)
  1002. }
  1003. else
  1004. {
  1005. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,5000 - VIPMoney[id])
  1006. VipItemsMenu(id)
  1007. }
  1008. }
  1009. else
  1010. {
  1011. if(!g_bActived_NoDmg[id])
  1012. {
  1013. if(!g_bActived_Bhop[id])
  1014. {
  1015. g_bActived_Bhop[id] = true
  1016.  
  1017. if(task_exists(id+TASK_GODMOD))
  1018. remove_task(id+TASK_GODMOD)
  1019.  
  1020. if(task_exists(id+TASK_HPREGEN))
  1021. remove_task(id+TASK_HPREGEN)
  1022.  
  1023. g_bActived_Imm[id] = false
  1024. g_bActived_Mj[id] = false
  1025. g_bActived_Regen[id] = false
  1026. VipItemsMenu(id)
  1027. }
  1028. else
  1029. {
  1030. g_bActived_Bhop[id] = false
  1031. VipItemsMenu(id)
  1032. }
  1033. }
  1034. else
  1035. {
  1036. color_chat(id,"!g%s!y: You cant use this item now. Wait your GodMode finish!",equal(Buffer,"0" ) ? "" : Buffer)
  1037. VipItemsMenu(id)
  1038. }
  1039. }
  1040. }
  1041. case 4:
  1042. {
  1043. if(VIPNoDmg[id] == 0)
  1044. {
  1045. if(VIPMoney[id] >= 10000)
  1046. {
  1047. VIPNoDmg[id] = 1
  1048. VIPMoney[id] -= 10000
  1049. color_chat(id,"!g%s!y: You've buyed !gGodMode!",equal(Buffer,"0" ) ? "" : Buffer)
  1050.  
  1051. client_cmd(id,"spk items/gunpickup2.wav")
  1052.  
  1053. set_pev(id,pev_takedamage,DAMAGE_NO)
  1054. set_task(1.0,"GodMod_CountDown",id+TASK_GODMOD,_,_,"a",15)
  1055.  
  1056. VipItemsMenu(id)
  1057. }
  1058. else
  1059. {
  1060. color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,10000 - VIPMoney[id])
  1061. VipItemsMenu(id)
  1062. }
  1063. }
  1064. else
  1065. {
  1066. if(!g_bActived_NoDmg[id])
  1067. {
  1068. g_bActived_NoDmg[id] = true
  1069.  
  1070. if(task_exists(id+TASK_GODMOD))
  1071. remove_task(id+TASK_GODMOD)
  1072.  
  1073. if(task_exists(id+TASK_HPREGEN))
  1074. remove_task(id+TASK_HPREGEN)
  1075.  
  1076. g_bActived_Bhop[id] = false
  1077. g_bActived_Imm[id] = false
  1078. g_bActived_Mj[id] = false
  1079. g_bActived_Regen[id] = false
  1080.  
  1081. set_pev(id,pev_takedamage,DAMAGE_NO)
  1082. set_task(1.0,"GodMod_CountDown",id+TASK_GODMOD,_,_,"a",15)
  1083.  
  1084. VipItemsMenu(id)
  1085. }
  1086. else
  1087. {
  1088. color_chat(id,"!g%s!y: You cant use this item right now! Wait the round restart!",equal(Buffer,"0" ) ? "" : Buffer)
  1089. VipItemsMenu(id)
  1090. }
  1091. }
  1092. }
  1093. case 5: ShowVIPMenu(id)
  1094. }
  1095. return PLUGIN_HANDLED
  1096. }
  1097. public fwSpawn(id)
  1098. {
  1099. if(!is_user_alive(id))
  1100. return HAM_IGNORED
  1101.  
  1102. if(get_user_vip(id) == 1)
  1103. {
  1104. WeaponSelected[id] = false
  1105.  
  1106. g_bActived_NoDmg[id] = false
  1107.  
  1108. ShowVIPMenu(id)
  1109.  
  1110. set_pev(id,pev_takedamage,DAMAGE_AIM)
  1111.  
  1112. timer[id] = 3
  1113.  
  1114. if(get_pcvar_num(PcvarShowVMoney) == 1)
  1115. if(!task_exists(id+TASK_SHOWVMONEY))
  1116. set_task(1.0,"ShowVIPMoney",id+TASK_SHOWVMONEY,_,_,"b")
  1117.  
  1118. if(g_bActived_Regen[id])
  1119. set_task(1.0,"HPRegen",id+TASK_HPREGEN,_,_,"b")
  1120.  
  1121. if(task_exists(id+TASK_GODMOD))
  1122. remove_task(id+TASK_GODMOD)
  1123.  
  1124. cs_set_user_armor(id,100,CsArmorType:2)
  1125.  
  1126. if(get_user_team(id) == 2)
  1127. give_item(id, "item_thighpack")
  1128. }
  1129. else
  1130. {
  1131. if(!task_exists(id+TASK_SHOWEXPERIENCE))
  1132. set_task(1.0,"ShowExperience",id+TASK_SHOWEXPERIENCE,_,_,"b")
  1133. }
  1134. return HAM_IGNORED
  1135. }
  1136. public fw_Ham_Player_Killed(iVictim,iAttacker)
  1137. {
  1138. if(!iVictim || !iAttacker && !is_user_alive(iVictim) || !is_user_alive(iAttacker))
  1139. return HAM_IGNORED
  1140.  
  1141. if(task_exists(iVictim+TASK_HPREGEN))
  1142. remove_task(iVictim+TASK_HPREGEN)
  1143.  
  1144. if(task_exists(iVictim+TASK_SHOWVMONEY))
  1145. remove_task(iVictim+TASK_SHOWVMONEY)
  1146.  
  1147. if(task_exists(iVictim+TASK_SHOWEXPERIENCE))
  1148. remove_task(iVictim+TASK_SHOWEXPERIENCE)
  1149.  
  1150. if(task_exists(iVictim+TASK_GODMOD))
  1151. remove_task(iVictim+TASK_GODMOD)
  1152.  
  1153. if(get_user_vip(iAttacker) == 1)
  1154. {
  1155.  
  1156. VIPMoney[iAttacker] += get_pcvar_num(PcvarVIPMoneyKillBonus)
  1157.  
  1158. static color[12],parts[3][4];
  1159.  
  1160. switch( CsTeams:cs_get_user_team( iAttacker ) )
  1161. {
  1162. case CS_TEAM_CT:
  1163. {
  1164. CVAR_color_Kill[0] = 000;
  1165. CVAR_color_Kill[1] = 100;
  1166. CVAR_color_Kill[2] = 200;
  1167.  
  1168. message_begin(MSG_ONE,get_user_msgid("ScreenFade"),_,iAttacker);
  1169. write_short(400 * 14);
  1170. write_short(0);
  1171. write_short(0);
  1172. write_byte(CVAR_color_Kill[0]);
  1173. write_byte(CVAR_color_Kill[1]);
  1174. write_byte(CVAR_color_Kill[2]);
  1175. write_byte(75) ;
  1176. message_end();
  1177.  
  1178. parse(color,parts[0],3,parts[1],3,parts[2],3);
  1179. CVAR_color_Kill[0] = str_to_num(parts[0]);
  1180. CVAR_color_Kill[1] = str_to_num(parts[1]);
  1181. CVAR_color_Kill[2] = str_to_num(parts[2]);
  1182. }
  1183. case CS_TEAM_T:
  1184. {
  1185. CVAR_color_Kill[0] = 200;
  1186. CVAR_color_Kill[1] = 000;
  1187. CVAR_color_Kill[2] = 000;
  1188.  
  1189. message_begin(MSG_ONE,get_user_msgid("ScreenFade"),_,iAttacker);
  1190. write_short(400 * 14);
  1191. write_short(0);
  1192. write_short(0);
  1193. write_byte(CVAR_color_Kill[0]);
  1194. write_byte(CVAR_color_Kill[1]);
  1195. write_byte(CVAR_color_Kill[2]);
  1196. write_byte(75) ;
  1197. message_end();
  1198.  
  1199. parse(color,parts[0],3,parts[1],3,parts[2],3);
  1200. CVAR_color_Kill[0] = str_to_num(parts[0]);
  1201. CVAR_color_Kill[1] = str_to_num(parts[1]);
  1202. CVAR_color_Kill[2] = str_to_num(parts[2]);
  1203. }
  1204. }
  1205. }
  1206. else
  1207. {
  1208. Experience[iAttacker] += random_num(25,80)
  1209. if(Experience[iAttacker] >= get_pcvar_num(PcvarMaxExperience))
  1210. {
  1211. set_user_vip(iAttacker,1)
  1212. if(get_pcvar_num(PcvarShowVMoney) == 1)
  1213. set_task(1.0,"ShowVIPMoney",iAttacker+TASK_SHOWVMONEY,_,_,"b")
  1214.  
  1215. set_hudmessage(0,255,0,-1.0,0.25,1,1.0,5.0)
  1216. ShowSyncHudMsg(iAttacker,HudsSync[3],"CONGRATULATIONS!^nYou got VIP!")
  1217.  
  1218. remove_task(iAttacker+TASK_SHOWEXPERIENCE)
  1219.  
  1220. new Buffer[85]
  1221. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  1222.  
  1223. new Name[32]
  1224. get_user_name(iAttacker,Name,31)
  1225. color_chat(0,"!g%s!y: Player!t %s!y got vip with!g %d!y of !g%d!y experience!",equal(Buffer,"0" ) ? "" : Buffer,Name,Experience[iAttacker],get_pcvar_num(PcvarMaxExperience))
  1226.  
  1227. client_cmd(0,"spk buttons/bell1")
  1228. }
  1229. }
  1230. return HAM_IGNORED
  1231. }
  1232. public GodMod_CountDown(id)
  1233. {
  1234. id -= TASK_GODMOD
  1235.  
  1236. if(task_exists(id+TASK_GODMOD))
  1237. {
  1238. set_hudmessage(255,255,255,-1.0,0.70,0,1.0,1.0)
  1239. ShowSyncHudMsg(id,HudsSync[1],"GodMode will be off in %d second%s",timer[id],( timer[id] >= 2 ) ? "s" : "")
  1240.  
  1241. timer[id]--
  1242.  
  1243. if(timer[id] == 0)
  1244. {
  1245. remove_task(id+TASK_GODMOD)
  1246.  
  1247. new Buffer[85]
  1248. get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
  1249.  
  1250. set_pev(id,pev_takedamage,DAMAGE_AIM)
  1251.  
  1252. color_chat(id,"!g%s!y: !yGodMode deactived!",equal(Buffer,"0" ) ? "" : Buffer)
  1253. ShowVIPMenu(id)
  1254.  
  1255. timer[id] = 3
  1256. }
  1257. }
  1258. }
  1259. public HPRegen(id)
  1260. {
  1261. id -= TASK_HPREGEN
  1262.  
  1263. if(get_user_health(id) >= get_pcvar_num(PcvarMaxRegenHP))
  1264. {
  1265. set_user_health(id,get_pcvar_num(PcvarMaxRegenHP))
  1266. return PLUGIN_HANDLED
  1267. }
  1268.  
  1269. else
  1270. {
  1271. set_user_health(id,get_user_health(id) + get_pcvar_num(PcvarHpRegenAdd))
  1272. }
  1273. return PLUGIN_CONTINUE
  1274. }
  1275. public ham_Player_TakeDamage_Post( iVictim, iInfictor, iAttacker, Float:fDamage, iDmgBits )
  1276. {
  1277. if( !is_user_connected( iVictim ) || !is_user_connected( iAttacker ) || iVictim == iAttacker )
  1278. return HAM_IGNORED
  1279.  
  1280. if( g_bActived_Imm[iAttacker] )
  1281. {
  1282. if(cs_get_user_team(iAttacker) != cs_get_user_team(iVictim))
  1283. {
  1284. if( iDmgBits & DMG_BULLET || iDmgBits & (1<<24) || iDmgBits & DMG_SLASH )
  1285. {
  1286. new random = random_num( 1,4 )
  1287. if( random == 2 )
  1288. {
  1289. set_pev( iVictim, pev_flags, pev( iVictim, pev_flags ) | FL_FROZEN )
  1290. if( !task_exists( iVictim ) )
  1291. set_task( 2.0, "remove_frozen", iVictim )
  1292. }
  1293. }
  1294. }
  1295. }
  1296. return HAM_IGNORED
  1297. }
  1298.  
  1299. public remove_frozen( iVictim )
  1300. set_pev( iVictim, pev_flags, pev( iVictim, pev_flags ) & ~FL_FROZEN )
  1301.  
  1302. SaveVIP( id )
  1303. {
  1304. new szAuthid[ 32 ]
  1305. get_user_authid( id, szAuthid, charsmax( szAuthid ) )
  1306.  
  1307. new szVaultKey[ 128 ], szVaultData[ 512 ]
  1308.  
  1309. formatex( szVaultKey, 127, "VIP_%s", szAuthid )
  1310. formatex( szVaultData, 511, "%i %i %i %i %i %i %i %i", VIP[id],VIPMoney[id],VIPBh[id],VIPMj[id],VIPNoDmg[id],VIPRegen[id],VIPImm[id], Experience[id])
  1311. nvault_set( g_nVault, szVaultKey, szVaultData )
  1312. }
  1313.  
  1314. LoadVIP( id )
  1315. {
  1316. new szAuthid[ 32 ]
  1317. get_user_authid( id, szAuthid, charsmax( szAuthid ) )
  1318.  
  1319. new szVaultKey[ 128 ], szVaultData[ 512 ]
  1320.  
  1321. formatex( szVaultKey, 127, "VIP_%s", szAuthid )
  1322. formatex( szVaultData, 511, "%i %i %i %i %i %i %i %i", VIP[id],VIPMoney[id],VIPBh[id],VIPMj[id],VIPNoDmg[id],VIPRegen[id],VIPImm[id], Experience[id])
  1323.  
  1324. nvault_get( g_nVault, szVaultKey, szVaultData, 511 )
  1325.  
  1326. new vp[32],vpm[32],vpmj[32],vpbhop[32],vpnodmg[32],vpregen[32],vpimm[32],exp[32]
  1327.  
  1328. parse( szVaultData, vp, 31,vpm, 31,vpmj, 31, vpbhop, 31, vpnodmg, 31, vpregen, 31 ,vpimm, 31, exp, 31)
  1329.  
  1330. VIP[ id ] = str_to_num( vp )
  1331. VIPMoney[ id ] = str_to_num( vpm )
  1332. VIPBh[id] = str_to_num( vpbhop )
  1333. VIPMj[id] = str_to_num( vpmj )
  1334. VIPNoDmg[id] = str_to_num( vpnodmg )
  1335. VIPRegen[id] = str_to_num( vpregen )
  1336. VIPImm[id] = str_to_num( vpimm )
  1337. Experience[id] = str_to_num( exp )
  1338.  
  1339. }
  1340. public HUD( id )
  1341. {
  1342. id -= 672;
  1343.  
  1344. set_task( 0.2, "HUD", id+672 );
  1345. if(!is_user_alive( id ) )
  1346. {
  1347. new szHud[64];
  1348.  
  1349. new target = entity_get_int( id, EV_INT_iuser2 );
  1350. if( target == 0 )
  1351. return PLUGIN_HANDLED
  1352.  
  1353. if(get_user_vip(target) == 1)
  1354. {
  1355. if(g_bActived_Bhop[target])
  1356. formatex(szHud,63,"[VIPMoney: %d | VIP Item: BunnyHop]", VIPMoney[target])
  1357.  
  1358. else if(g_bActived_Imm[target])
  1359. formatex(szHud,63,"[VIPMoney: %d | VIP Item: Immobilize]", VIPMoney[target])
  1360.  
  1361. else if(g_bActived_Mj[target])
  1362. formatex(szHud,63,"[VIPMoney: %d | VIP Item: MultiJump]", VIPMoney[target])
  1363.  
  1364. else if(g_bActived_NoDmg[target])
  1365. formatex(szHud,63,"[VIPMoney: %d | VIP Item: No Damage]", VIPMoney[target])
  1366.  
  1367. else if(g_bActived_Regen[target])
  1368. formatex(szHud,63,"[VIPMoney: %d | VIP Item: HP Regenerate]", VIPMoney[target])
  1369.  
  1370. else
  1371. formatex(szHud,63,"[VIPMoney: %d | VIP Item: None]", VIPMoney[target])
  1372. }
  1373.  
  1374. else
  1375. formatex(szHud,63,"[Experience: %d]", Experience[target])
  1376.  
  1377. set_hudmessage(150, 50, 35, -1.0, 0.95, 0, 1.0, 0.1);
  1378. ShowSyncHudMsg(id,HudsSync[5],szHud);
  1379. }
  1380. return PLUGIN_CONTINUE;
  1381. }
  1382. public plugin_end( )
  1383. {
  1384. nvault_close( g_nVault )
  1385. return PLUGIN_CONTINUE
  1386. }
  1387.  
  1388. public plugin_cfg( )
  1389. {
  1390. g_nVault = nvault_open( "VIP_Player" )
  1391.  
  1392. if( g_nVault == INVALID_HANDLE )
  1393. set_fail_state( "Error opening VIP nVault, file does not exist!" )
  1394. }
  1395. public CmdStart( id, uc_handle )
  1396. {
  1397. if( !is_user_alive( id ))
  1398. return FMRES_IGNORED
  1399.  
  1400. new flags = pev( id, pev_flags )
  1401.  
  1402. if( ( get_uc( uc_handle, UC_Buttons ) & IN_JUMP ) && !( flags & FL_ONGROUND ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) && g_iJumpCount[ id ] )
  1403. {
  1404. g_iJumpCount[ id ]--
  1405. new Float:velocity[ 3 ]
  1406. pev( id, pev_velocity, velocity )
  1407. velocity[ 2 ] = random_float( 265.0,285.0 )
  1408. set_pev( id, pev_velocity, velocity )
  1409. }
  1410. else if( flags & FL_ONGROUND )
  1411. {
  1412. g_iJumpCount[ id ] = g_bActived_Mj[id] ? 2 : 0
  1413. }
  1414. return FMRES_IGNORED
  1415. }
  1416. public ham_Player_PostThink_Post( id )
  1417. {
  1418. if( !is_user_alive( id ) )
  1419. return HAM_IGNORED
  1420.  
  1421. if( g_bActived_Bhop[id])
  1422. {
  1423. if( pev( id, pev_button) & IN_JUMP )
  1424. {
  1425. new flags = pev( id, pev_flags )
  1426.  
  1427. if( flags & FL_WATERJUMP )
  1428. return HAM_IGNORED
  1429.  
  1430. if( pev( id, pev_waterlevel ) >= 2 )
  1431. return HAM_IGNORED
  1432.  
  1433. if( !( flags & FL_ONGROUND ) )
  1434. return HAM_IGNORED
  1435.  
  1436. static Float:velocity[ 3 ]
  1437. pev( id, pev_velocity, velocity )
  1438. velocity[ 2 ] += 250.0
  1439. set_pev( id, pev_velocity, velocity )
  1440.  
  1441. set_pev( id, pev_gaitsequence, 6 )
  1442. }
  1443. }
  1444. return HAM_IGNORED
  1445. }
  1446. stock color_chat( id, const szStr[], any:... )
  1447. {
  1448. new szMsg[ 191 ], iPlayers[ 32 ], iCount = 1
  1449.  
  1450. vformat( szMsg, sizeof szMsg - 1, szStr, 3 )
  1451.  
  1452. replace_all( szMsg, 190, "!g", "^4" )
  1453. replace_all( szMsg, 190, "!y", "^1" )
  1454. replace_all( szMsg, 190, "!t", "^3" )
  1455.  
  1456. if( id )
  1457. iPlayers[ 0 ] = id
  1458.  
  1459. else
  1460. get_players( iPlayers, iCount, "ch" )
  1461.  
  1462. for( new i = 0 ; i < iCount ; i++ )
  1463. {
  1464. if(is_user_connected( iPlayers[ i ] ) )
  1465. {
  1466. message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers[ i ] )
  1467. write_byte( iPlayers[ i ] )
  1468. write_string( szMsg )
  1469. message_end( )
  1470. }
  1471. }
  1472. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement