Advertisement
Guest User

Untitled

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