Advertisement
iFenomenal

Untitled

Jul 24th, 2019
426
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.94 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <cstrike>
  3. #include <engine>
  4. #include <fakemeta>
  5. #include <fakemeta_util>
  6. #include <hamsandwich>
  7. #include <fun>
  8.  
  9. #define PLUGIN "Pomohaci"
  10. #define VERSION "2.1"
  11. #define AUTHOR "MATA"
  12. #define DMG_HEGRENADE (1<<24)
  13.  
  14. #define FURIEN_GRAVITY 0.4
  15. #define FURIEN_SPEED 800.0
  16. #define TEAM_FURIEN 1
  17. #define TEAM_ANTIFURIEN 2
  18.  
  19. #if cellbits == 32
  20. #define OFFSET_BZ 235
  21. #else
  22. #define OFFSET_BZ 268
  23. #endif
  24.  
  25. //Shop
  26. new SuperKnifeModel_V[] = "models/v_ifenomenal_new.mdl"
  27. new bool: HaveSuperKnife[33]
  28.  
  29. //Settings
  30. new bool:MakeVisible[33], Float:Wallorigin[33][3]
  31.  
  32. new Menu;
  33. new cvar_gamedescription, furienspawnhp, antifurienspawnhp, removebuyzone, superknife_damage_multiplier, cvar_autojoin_class, cvar_autojoin_team, cvar_aim_info,
  34. MSGID_SayText, MSGID_StatusIcon, MSGID_TextMsg, MSGID_SendAudio, MSGID_ShowMenu, MSGID_VGUIMenu, MSGID_Health
  35.  
  36. public plugin_cfg() {
  37. server_cmd("amx_cvar mp_playerid 2")
  38. server_cmd("amx_cvar sv_maxspeed 900")
  39. server_cmd("amx_cvar sv_restart 5")
  40. }
  41.  
  42.  
  43. //===========================================================================================//
  44. //===============================[Weapons Settings]=========================================//
  45. //=========================================================================================//
  46. new bool:HavePrimaryWeapon[33], bool:HaveSecondaryWeapon[33], PrimaryWeapon[33], SecondaryWeapon[33];
  47.  
  48. //---|| Primary
  49. #define M4A1_KEY 100
  50. #define AK47_KEY 101
  51. #define M3_KEY 102
  52. #define AWP_KEY 103
  53. #define FAMAS_KEY 104
  54. #define MP5_KEY 105
  55. #define XM1014_KEY 106
  56.  
  57. //---|| Secondary
  58. #define USP_KEY 107
  59. #define DEAGLE_KEY 108
  60. #define ELITE_KEY 109
  61. #define FIVESEVEN_KEY 110
  62.  
  63. public plugin_init() {
  64. register_plugin(PLUGIN, VERSION, AUTHOR)
  65.  
  66. cvar_gamedescription = register_cvar("furien_gamename", "Furien [2.1]")
  67. antifurienspawnhp = register_cvar("antifurien_spawnhp", "105")
  68. furienspawnhp = register_cvar("furien_spawnhp", "105")
  69. superknife_damage_multiplier = register_cvar("superknife_damage_multiplier", "2.0")
  70. cvar_autojoin_team = register_cvar("furien_team", "5")
  71. cvar_autojoin_class = register_cvar("furien_class", "5")
  72. cvar_aim_info = register_cvar("furien_enable_aiminfo", "1")
  73.  
  74. MSGID_SayText = get_user_msgid("SayText")
  75. MSGID_StatusIcon = get_user_msgid("StatusIcon")
  76. MSGID_TextMsg = get_user_msgid("TextMsg")
  77. MSGID_SendAudio = get_user_msgid("SendAudio")
  78. MSGID_ShowMenu = get_user_msgid("ShowMenu")
  79. MSGID_VGUIMenu = get_user_msgid("VGUIMenu")
  80.  
  81. register_clcmd("say shop", "CmdShopMenu")
  82. register_clcmd("shop", "CmdShopMenu")
  83. register_clcmd("say /shop", "CmdShopMenu")
  84. register_clcmd("say_team shop", "CmdShopMenu")
  85. register_clcmd("say_team /shop", "CmdShopMenu")
  86. //register_clcmd("say weapons", "CmdWeaponsMenu")
  87. //register_clcmd("say /weapons", "CmdWeaponsMenu")
  88. register_clcmd("jointeam", "CMD_BlockJoinTeam")
  89. register_clcmd("jointeam 1", "CMD_BlockJoinTeam")
  90. register_clcmd("jointeam 2", "CMD_BlockJoinTeam")
  91. register_clcmd("jointeam 3", "CMD_BlockJoinTeam")
  92. register_clcmd("chooseteam", "CMD_BlockChooseTeam")
  93. register_clcmd("say /beneficii", "CmdShowMotd")
  94. register_clcmd("say /rs", "CmdResetScore")
  95. register_clcmd("say_team /rs", "CmdResetScore")
  96. register_clcmd("say /resetscore", "CmdResetScore")
  97. register_clcmd("say_team /resetscore", "CmdResetScore")
  98.  
  99. RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1)
  100. RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch_Weapon")
  101. RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch_Weapon")
  102. RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch_Weapon")
  103. RegisterHam(Ham_TakeDamage, "player", "SuperKnife_TakeDamage")
  104.  
  105. register_forward(FM_PlayerPreThink, "Player_PreThink");
  106. register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1);
  107. register_forward(FM_GetGameDescription, "FWD_GameDescription")
  108.  
  109. register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1")
  110. register_event("DeathMsg", "EVENT_Death", "a");
  111. register_event("SendAudio", "EVENT_SwitchTeam", "a", "1=0", "2=%!MRAD_ctwin");
  112. register_event("TextMsg", "EVENT_FireINTheHole", "b", "2&#Game_radio", "4&#Fire_in_the_hole")
  113. register_event("TextMsg", "EVENT_FireINTheHole", "b", "3&#Game_radio", "5&#Fire_in_the_hole")
  114.  
  115.  
  116. register_message(MSGID_StatusIcon, "MSG_StatusIcon");
  117. register_message(MSGID_TextMsg, "MSG_TextMessage");
  118. register_message(MSGID_ShowMenu, "MSG_ShowMenu");
  119. register_message(MSGID_VGUIMenu, "MSG_VGUIMenu");
  120. register_message(MSGID_SendAudio, "MSG_SendAudio");
  121. register_message(MSGID_Health, "MSG_Health")
  122. }
  123.  
  124.  
  125. public plugin_precache() {
  126. removebuyzone = register_cvar("furien_removebuyzone", "1")
  127.  
  128. if(get_pcvar_num(removebuyzone)) {
  129.  
  130. remove_entity_name("info_map_parameters");
  131. remove_entity_name("func_buyzone");
  132.  
  133. new Entity = create_entity("info_map_parameters");
  134.  
  135. DispatchKeyValue(Entity, "buying", "3");
  136. DispatchSpawn(Entity);
  137. }
  138. precache_model(SuperKnifeModel_V)
  139. }
  140.  
  141. public client_connect(id) {
  142. client_cmd(id, "cl_forwardspeed 999.0")
  143. client_cmd(id, "cl_sidespeed 999.0")
  144. client_cmd(id, "cl_backspeed 999.0")
  145. }
  146.  
  147. public client_putinserver(id) {
  148. client_cmd(id, "cl_forwardspeed 999.0")
  149. client_cmd(id, "cl_sidespeed 999.0")
  150. client_cmd(id, "cl_backspeed 999.0")
  151. PrimaryWeapon[id] = 0
  152. SecondaryWeapon[id] = 0
  153. }
  154.  
  155.  
  156. public Ham_Spawn_Post(id) {
  157. if(is_user_connected(id) && is_user_alive(id)) {
  158. strip_user_weapons(id)
  159. HavePrimaryWeapon[id] = false
  160. HaveSecondaryWeapon[id] = false
  161. switch(get_user_team(id)) {
  162. case TEAM_FURIEN: {
  163. fm_give_item(id, "weapon_hegrenade")
  164. fm_give_item(id, "weapon_knife")
  165. fm_give_item(id, "weapon_flashbang")
  166. set_user_footsteps(id, 1)
  167. fm_set_user_health(id, get_pcvar_num(furienspawnhp))
  168. }
  169. case TEAM_ANTIFURIEN: {
  170. fm_give_item(id, "weapon_flashbang")
  171. fm_give_item(id, "weapon_hegrenade")
  172. fm_give_item(id, "weapon_knife")
  173. set_user_footsteps(id, 0)
  174. fm_set_user_health(id, get_pcvar_num(antifurienspawnhp))
  175. HaveSuperKnife[id] = false;
  176. Equipment(id)
  177. }
  178. }
  179. }
  180. }
  181.  
  182. public EVENT_FireINTheHole()
  183. return PLUGIN_HANDLED
  184.  
  185. public HAM_Touch_Weapon(ent, id) {
  186. if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN && !(get_pdata_cbase(ent, 39, 4) > 0))
  187. return HAM_SUPERCEDE
  188.  
  189. return HAM_IGNORED
  190. }
  191.  
  192. public SuperKnife_TakeDamage(Victim, Inflictor, Attacker, Float:Damage, DamageType) {
  193. if(is_user_connected(Attacker) && is_user_alive(Attacker) && is_user_connected(Victim)) {
  194. if(get_user_weapon(Attacker) == CSW_KNIFE) {
  195. if(HaveSuperKnife[Attacker])
  196. SetHamParamFloat(4, Damage * get_pcvar_float(superknife_damage_multiplier))
  197. }
  198. }
  199. return HAM_IGNORED
  200. }
  201.  
  202. ///////////////////////////////////////////////////////////////////////////////////////////////
  203.  
  204. public CmdResetScore(id) {
  205. if(get_user_frags(id) == 0 && get_user_deaths(id) == 0)
  206. ColorChat(id, "!gScorul tau este deja!t 0-0!g !")
  207. else {
  208. for(new i = 0; i < 2; i++) {
  209. cs_set_user_deaths(id, 0);
  210. set_user_frags(id, 0);
  211. }
  212. ColorChat(id, "!gTi-ai resetat scorul cu succes !")
  213. }
  214. }
  215.  
  216. public CmdShopMenu(id) {
  217. if(!is_user_alive(id))
  218. return PLUGIN_HANDLED
  219. switch(get_user_team(id)) {
  220. case TEAM_FURIEN: CmdFurienShop(id)
  221. case TEAM_ANTIFURIEN: CmdAntiFurienShop(id)
  222. }
  223. return PLUGIN_HANDLED
  224. }
  225.  
  226. public CmdFurienShop(id) {
  227. if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN) {
  228. Menu = menu_create("yFurien Shop", "CmdFurienHandler")
  229.  
  230. new SuperKnife[256];
  231. formatex(SuperKnife, sizeof(SuperKnife)-1, "Super knife - y10000$")
  232. menu_additem(Menu, SuperKnife, "1", 0)
  233.  
  234. new Health[256];
  235. formatex(Health, sizeof(Health)-1, "50 HP - y3000$")
  236. menu_additem(Menu, Health, "2", 0)
  237.  
  238. new Armor[256];
  239. formatex(Armor, sizeof(Armor)-1, "50 AP + Helmet - y500$")
  240. menu_additem(Menu, Armor, "3", 0)
  241.  
  242. new Grenade[256];
  243. formatex(Grenade, sizeof(Grenade)-1, "He grenade - y4000$")
  244. menu_additem(Menu, Grenade, "4", 0)
  245.  
  246. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
  247. menu_display(id, Menu, 0);
  248. }
  249. }
  250.  
  251. public CmdAntiFurienShop(id) {
  252. if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
  253. Menu = menu_create("yAnti-Furien Shop", "CmdAntiFurienHandler")
  254.  
  255. new Defuse[256];
  256. formatex(Defuse, sizeof(Defuse)-1, "Defuse kit - y500$")
  257. menu_additem(Menu, Defuse, "1", 0)
  258.  
  259. new Health[256];
  260. formatex(Health, sizeof(Health)-1, "50 HP - y3000$")
  261. menu_additem(Menu, Health, "2", 0)
  262.  
  263. new Armor[256];
  264. formatex(Armor, sizeof(Armor)-1, "50 AP + Helmet - y500$")
  265. menu_additem(Menu, Armor, "3", 0)
  266.  
  267. new Grenade[256];
  268. formatex(Grenade, sizeof(Grenade)-1, "He grenade - y4000$")
  269. menu_additem(Menu, Grenade, "4", 0)
  270.  
  271. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
  272. menu_display(id, Menu, 0);
  273. }
  274. }
  275.  
  276. public CmdFurienHandler(id, menu, item) {
  277. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 1) {
  278. menu_destroy(menu);
  279. return PLUGIN_HANDLED;
  280. }
  281. new Data[6], Name[64];
  282. new Access, CallBack;
  283. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  284. new Key = str_to_num(Data);
  285. switch(Key) {
  286. case 1: {
  287. if(HaveSuperKnife[id])
  288. client_print(id, print_center, "You already have SuperKnife!")
  289. else {
  290. new Money = cs_get_user_money(id) - 10000
  291. if(Money < 0)
  292. client_print(id, print_center, "You have insufficient founds!")
  293. else {
  294. HaveSuperKnife[id] = true;
  295. EVENT_CurWeapon(id)
  296. cs_set_user_money(id, Money)
  297. }
  298. }
  299. }
  300. case 2: {
  301. if(get_user_health(id) >= 250)
  302. client_print(id, print_center, "You already have 250 HP!")
  303. else {
  304. new Money = cs_get_user_money(id) - 3000
  305. if(Money < 0)
  306. client_print(id, print_center, "You have insufficient founds!")
  307. else {
  308. if(get_user_health(id) + 50 > 250)
  309. fm_set_user_health(id, 250)
  310. else
  311. fm_set_user_health(id, get_user_health(id) + 50)
  312. cs_set_user_money(id, Money)
  313. }
  314. }
  315. }
  316. case 3: {
  317. if(get_user_armor(id) >= 250)
  318. client_print(id, print_center, "You already have 250 AP!")
  319. else {
  320. new Money = cs_get_user_money(id) - 500
  321. if(Money < 0)
  322. client_print(id, print_center, "You have insufficient founds!")
  323. else {
  324. if(get_user_armor(id) + 50 > 250)
  325. fm_set_user_armor(id, 250)
  326. else
  327. fm_set_user_armor(id, get_user_armor(id) + 50)
  328. cs_set_user_money(id, Money)
  329. }
  330. }
  331. }
  332. case 4: {
  333. if(user_has_weapon(id, CSW_HEGRENADE))
  334. client_print(id, print_center, "You already have HE GRENADE!")
  335. else {
  336. new Money = cs_get_user_money(id) - 4000
  337. if(Money < 0)
  338. client_print(id, print_center, "You have insufficient founds!")
  339. else {
  340. fm_give_item(id, "weapon_hegrenade")
  341. cs_set_user_money(id, Money)
  342. }
  343. }
  344. }
  345. }
  346. menu_destroy(menu)
  347. return PLUGIN_HANDLED
  348. }
  349.  
  350. public CmdAntiFurienHandler(id, menu, item) {
  351. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
  352. menu_destroy(menu);
  353. return PLUGIN_HANDLED;
  354. }
  355. new Data[6], Name[64];
  356. new Access, CallBack;
  357. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  358. new Key = str_to_num(Data);
  359. switch(Key) {
  360. case 1: {
  361. if(cs_get_user_defuse(id))
  362. client_print(id, print_center, "You already have Defuse KIT!")
  363. else {
  364. new Money = cs_get_user_money(id) - 500
  365. if(Money < 0)
  366. client_print(id, print_center, "You have insufficient founds!")
  367. else {
  368. cs_set_user_defuse(id, 1)
  369. cs_set_user_money(id, Money)
  370. }
  371. }
  372. }
  373. case 2: {
  374. if(get_user_health(id) >= 250)
  375. client_print(id, print_center, "You already have 250 HP!")
  376. else {
  377. new Money = cs_get_user_money(id) - 3000
  378. if(Money < 0)
  379. client_print(id, print_center, "You have insufficient founds!")
  380. else {
  381. if(get_user_health(id) + 50 > 250)
  382. fm_set_user_health(id, 250)
  383. else
  384. fm_set_user_health(id, get_user_health(id) + 50)
  385. cs_set_user_money(id, Money)
  386. }
  387. }
  388. }
  389. case 3: {
  390. if(get_user_armor(id) >= 250)
  391. client_print(id, print_center, "You already have 250 AP!")
  392. else {
  393. new Money = cs_get_user_money(id) - 500
  394. if(Money < 0)
  395. client_print(id, print_center, "You have insufficient founds!")
  396. else {
  397. if(get_user_armor(id) + 50 > 250)
  398. fm_set_user_armor(id, 250)
  399. else
  400. fm_set_user_armor(id, get_user_armor(id) + 50)
  401. cs_set_user_money(id, Money)
  402. }
  403. }
  404. }
  405. case 4: {
  406. if(user_has_weapon(id, CSW_HEGRENADE))
  407. client_print(id, print_center, "You already have HE GRENADE!")
  408. else {
  409. new Money = cs_get_user_money(id) - 4000
  410. if(Money < 0)
  411. client_print(id, print_center, "You have insufficient founds!")
  412. else {
  413. fm_give_item(id, "weapon_hegrenade")
  414. cs_set_user_money(id, Money)
  415. }
  416. }
  417. }
  418. }
  419. menu_destroy(menu)
  420. return PLUGIN_HANDLED
  421. }
  422.  
  423. //=========================================================================//
  424. //=======================[Weapons Settings]===============================//
  425. //=======================================================================//
  426.  
  427. public Equipment(id) {
  428. if(is_user_alive(id) && get_user_team(id) == 2) {
  429. Menu = menu_create("rWeapons Menu", "EquipmentCmd");
  430. menu_additem(Menu, "wNew Weapons", "1", 0);
  431. if(PrimaryWeapon[id] && SecondaryWeapon[id])
  432. menu_additem(Menu, "wPrevious Setup", "2", 0);
  433. else
  434. menu_additem(Menu, "dPrevious Setup", "2", 0);
  435. menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER)
  436. menu_display(id, Menu, 0);
  437. }
  438. }
  439.  
  440. public EquipmentCmd(id, menu, item) {
  441. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
  442. menu_destroy(menu);
  443. return PLUGIN_HANDLED;
  444. }
  445. new Data[6], Name[64];
  446. new Access, CallBack;
  447. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  448. new Key = str_to_num(Data);
  449. switch(Key) {
  450. case 1: {
  451. if(!HavePrimaryWeapon[id])
  452. Primary(id)
  453. else if(!HaveSecondaryWeapon[id])
  454. Secondary(id)
  455. }
  456. case 2: {
  457. if(PrimaryWeapon[id] && SecondaryWeapon[id])
  458. GiveLastWeapons(id)
  459. else Equipment(id)
  460. }
  461. default: return PLUGIN_HANDLED;
  462. }
  463. menu_destroy(menu);
  464. return PLUGIN_HANDLED;
  465. }
  466.  
  467. public Primary(id) {
  468. if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
  469. Menu = menu_create("yAnti-Furien Weapons^nrPrimary:", "CmdWeaponsHandler")
  470.  
  471. menu_additem(Menu, "M4A1", "1", 0)
  472. menu_additem(Menu, "AK47", "2", 0)
  473. menu_additem(Menu, "M3", "3", 0)
  474. menu_additem(Menu, "Awp", "4", 0)
  475. menu_additem(Menu, "Famas", "5", 0)
  476. menu_additem(Menu, "MP5 Navy", "6", 0)
  477. menu_additem(Menu, "XM1014", "7", 0)
  478.  
  479. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
  480. menu_display(id, Menu, 0);
  481. }
  482. }
  483.  
  484. public CmdWeaponsHandler(id, menu, item) {
  485. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
  486. menu_destroy(menu);
  487. return PLUGIN_HANDLED;
  488. }
  489. new Data[6], Name[64];
  490. new Access, CallBack;
  491. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  492. new Key = str_to_num(Data);
  493. switch(Key) {
  494. case 1: {
  495. fm_give_item(id, "weapon_m4a1")
  496. cs_set_user_bpammo(id, CSW_M4A1, 254)
  497. PrimaryWeapon[id] = M4A1_KEY
  498. HavePrimaryWeapon[id] = true;
  499. Secondary(id)
  500. }
  501. case 2: {
  502. fm_give_item(id, "weapon_ak47")
  503. cs_set_user_bpammo(id, CSW_AK47, 254)
  504. PrimaryWeapon[id] = AK47_KEY
  505. HavePrimaryWeapon[id] = true;
  506. Secondary(id)
  507. }
  508. case 3: {
  509. fm_give_item(id, "weapon_m3")
  510. cs_set_user_bpammo(id, CSW_M3, 254)
  511. PrimaryWeapon[id] = M3_KEY
  512. HavePrimaryWeapon[id] = true;
  513. Secondary(id)
  514. }
  515. case 4: {
  516. fm_give_item(id, "weapon_awp")
  517. cs_set_user_bpammo(id, CSW_AWP, 254)
  518. PrimaryWeapon[id] = AWP_KEY
  519. HavePrimaryWeapon[id] = true;
  520. Secondary(id)
  521. }
  522. case 5: {
  523. fm_give_item(id, "weapon_famas")
  524. cs_set_user_bpammo(id, CSW_FAMAS, 254)
  525. PrimaryWeapon[id] = FAMAS_KEY
  526. HavePrimaryWeapon[id] = true;
  527. Secondary(id)
  528. }
  529. case 6: {
  530. fm_give_item(id, "weapon_mp5navy")
  531. cs_set_user_bpammo(id, CSW_MP5NAVY, 254)
  532. PrimaryWeapon[id] = MP5_KEY
  533. HavePrimaryWeapon[id] = true;
  534. Secondary(id)
  535. }
  536. case 7: {
  537. fm_give_item(id, "weapon_xm1014")
  538. cs_set_user_bpammo(id, CSW_XM1014, 254)
  539. PrimaryWeapon[id] = XM1014_KEY
  540. HavePrimaryWeapon[id] = true;
  541. Secondary(id)
  542. }
  543. }
  544. menu_destroy(menu)
  545. return PLUGIN_HANDLED
  546. }
  547.  
  548. public Secondary(id) {
  549. if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
  550. Menu = menu_create("yAnti-Furien Weapons^nrSecondary:", "CmdSecondaryHandler")
  551.  
  552. menu_additem(Menu, "USP", "1", 0)
  553. menu_additem(Menu, "Deagle", "2", 0)
  554. menu_additem(Menu, "Elite", "3", 0)
  555. menu_additem(Menu, "Five Seven", "4", 0)
  556.  
  557. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
  558. menu_display(id, Menu, 0);
  559. }
  560. }
  561.  
  562. public CmdSecondaryHandler(id, menu, item) {
  563. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
  564. menu_destroy(menu);
  565. return PLUGIN_HANDLED;
  566. }
  567. new Data[6], Name[64];
  568. new Access, CallBack;
  569. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  570. new Key = str_to_num(Data);
  571. switch(Key) {
  572. case 1: {
  573. fm_give_item(id, "weapon_usp")
  574. cs_set_user_bpammo(id, CSW_USP, 256)
  575. SecondaryWeapon[id] = USP_KEY
  576. HaveSecondaryWeapon[id] = true;
  577. }
  578. case 2: {
  579. fm_give_item(id, "weapon_deagle")
  580. cs_set_user_bpammo(id, CSW_DEAGLE, 256)
  581. SecondaryWeapon[id] = DEAGLE_KEY
  582. HaveSecondaryWeapon[id] = true;
  583. }
  584. case 3: {
  585. fm_give_item(id, "weapon_elite")
  586. cs_set_user_bpammo(id, CSW_ELITE, 256)
  587. SecondaryWeapon[id] = ELITE_KEY
  588. HaveSecondaryWeapon[id] = true;
  589. }
  590. case 4: {
  591. fm_give_item(id, "weapon_fiveseven")
  592. cs_set_user_bpammo(id, CSW_FIVESEVEN, 256)
  593. SecondaryWeapon[id] = FIVESEVEN_KEY
  594. HaveSecondaryWeapon[id] = true;
  595. }
  596. }
  597. menu_destroy(menu)
  598. return PLUGIN_HANDLED
  599. }
  600.  
  601. public GiveLastWeapons(id) {
  602. if(!HavePrimaryWeapon[id]) {
  603. switch(PrimaryWeapon[id]) {
  604. case M4A1_KEY: {
  605. fm_give_item(id, "weapon_m4a1")
  606. cs_set_user_bpammo(id, CSW_M4A1, 256)
  607. HavePrimaryWeapon[id] = true;
  608. }
  609. case AK47_KEY: {
  610. fm_give_item(id, "weapon_ak47")
  611. cs_set_user_bpammo(id, CSW_AK47, 256)
  612. HavePrimaryWeapon[id] = true;
  613. }
  614. case M3_KEY: {
  615. fm_give_item(id, "weapon_m3")
  616. cs_set_user_bpammo(id, CSW_M3, 256)
  617. HavePrimaryWeapon[id] = true;
  618. }
  619. case AWP_KEY: {
  620. fm_give_item(id, "weapon_awp")
  621. cs_set_user_bpammo(id, CSW_AWP, 256)
  622. HavePrimaryWeapon[id] = true;
  623. }
  624. case FAMAS_KEY: {
  625. fm_give_item(id, "weapon_famas")
  626. cs_set_user_bpammo(id, CSW_FAMAS, 256)
  627. HavePrimaryWeapon[id] = true;
  628. }
  629. case MP5_KEY: {
  630. fm_give_item(id, "weapon_mp5navy")
  631. cs_set_user_bpammo(id, CSW_MP5NAVY, 256)
  632. HavePrimaryWeapon[id] = true;
  633. }
  634. case XM1014_KEY: {
  635. fm_give_item(id, "weapon_xm1014")
  636. cs_set_user_bpammo(id, CSW_XM1014, 256)
  637. HavePrimaryWeapon[id] = true;
  638. }
  639. }
  640. }
  641. if(!HaveSecondaryWeapon[id]) {
  642. switch(SecondaryWeapon[id]) {
  643. case USP_KEY: {
  644. fm_give_item(id, "weapon_usp")
  645. cs_set_user_bpammo(id, CSW_USP, 256)
  646. HaveSecondaryWeapon[id] = true;
  647. }
  648. case DEAGLE_KEY: {
  649. fm_give_item(id, "weapon_deagle")
  650. cs_set_user_bpammo(id, CSW_DEAGLE, 256)
  651. HaveSecondaryWeapon[id] = true;
  652. }
  653. case ELITE_KEY: {
  654. fm_give_item(id, "weapon_elite")
  655. cs_set_user_bpammo(id, CSW_ELITE, 256)
  656. HaveSecondaryWeapon[id] = true;
  657. }
  658. case FIVESEVEN_KEY: {
  659. fm_give_item(id, "weapon_fiveseven")
  660. cs_set_user_bpammo(id, CSW_FIVESEVEN, 256)
  661. HaveSecondaryWeapon[id] = true;
  662. }
  663. }
  664. }
  665. }
  666. public CMD_BlockJoinTeam(id) {
  667. console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
  668. return 1;
  669. }
  670.  
  671. public CMD_BlockChooseTeam(id) {
  672. console_print(id, "*** Nu ai voie sa foloseti ChooseTeam ! ***")
  673. return 1;
  674. }
  675.  
  676. public CmdShowMotd(id)
  677. show_motd(id, "addons/amxmodx/configs/beneficii.html")
  678.  
  679. /////////////////////////////////////////////////////////////////////////
  680.  
  681. public EVENT_CurWeapon(id) {
  682. if(is_user_connected(id)) {
  683. if(get_user_weapon(id) == CSW_KNIFE) {
  684. if(HaveSuperKnife[id])
  685. set_pev(id, pev_viewmodel2, SuperKnifeModel_V)
  686. }
  687. new PlayerHealth;
  688. PlayerHealth = get_user_health(id)
  689. if(PlayerHealth == 256)
  690. fm_set_user_health(id, 255)
  691. }
  692.  
  693. }
  694.  
  695. public EVENT_Death() {
  696. HaveSuperKnife[read_data(2)] = false;
  697. }
  698.  
  699. public MSG_StatusIcon(msg_id, msg_dest, id) {
  700. static Attrib
  701. Attrib = get_msg_arg_int(2)
  702.  
  703. if(Attrib == (1<<1))
  704. set_msg_arg_int(2, ARG_BYTE, 0)
  705.  
  706. new Icon[8];
  707. get_msg_arg_string(2, Icon, 7);
  708. if(get_pcvar_num(removebuyzone)) {
  709. static const BuyZone[] = "buyzone";
  710.  
  711. if(equal(Icon, BuyZone)) {
  712. set_pdata_int(id, OFFSET_BZ, get_pdata_int(id, OFFSET_BZ, 5) & ~(1 << 0), 5);
  713.  
  714. return PLUGIN_HANDLED;
  715. }
  716. }
  717. return PLUGIN_CONTINUE;
  718. }
  719.  
  720. public MSG_TextMessage() {
  721. static TextMsg[22];
  722. get_msg_arg_string(2, TextMsg, charsmax(TextMsg))
  723. if(equal(TextMsg, "#Terrorists_Win")) {
  724. client_print(0, print_center, "The Furiens have won this round!")
  725. return PLUGIN_HANDLED;
  726. }
  727. else if(equal(TextMsg, "#CTs_Win")) {
  728. client_print(0, print_center, "The Anti-Furiens have won this round!")
  729. return PLUGIN_HANDLED;
  730. }
  731. else if(equal(TextMsg, "#Fire_in_the_hole"))
  732. return PLUGIN_HANDLED
  733. return PLUGIN_CONTINUE;
  734. }
  735.  
  736. public MSG_ShowMenu(msgid, dest, id) {
  737. if(!Should_AutoJoin(id))
  738. return PLUGIN_CONTINUE
  739.  
  740. static team_select[] = "#Team_Select"
  741. static menu_text_code[sizeof team_select]
  742. get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1)
  743. if(!equal(menu_text_code, team_select))
  744. return PLUGIN_CONTINUE
  745.  
  746. JoinTeam_Task(id, msgid)
  747.  
  748. return PLUGIN_HANDLED
  749. }
  750.  
  751. public MSG_VGUIMenu(msgid, dest, id) {
  752. if(get_msg_arg_int(1) != 2 || !Should_AutoJoin(id))
  753. return PLUGIN_CONTINUE
  754.  
  755. JoinTeam_Task(id, msgid)
  756.  
  757. return PLUGIN_HANDLED
  758. }
  759.  
  760. public MSG_SendAudio() {
  761. static Sound[17]
  762. get_msg_arg_string(2, Sound, sizeof Sound - 1)
  763.  
  764. if(equal(Sound, "terwin") || equal(Sound, "ctwin") || equal(Sound, "rounddraw"))
  765. return PLUGIN_HANDLED;
  766.  
  767. return PLUGIN_CONTINUE;
  768. }
  769.  
  770. public MSG_Health(msgid, dest, id) {
  771. static Health;
  772. Health = get_msg_arg_int(1)
  773. if(Health > 255)
  774. set_msg_arg_int(1, ARG_BYTE, 255);
  775. else if(Health == 256)
  776. set_msg_arg_int(1, ARG_BYTE, get_user_health(id) + 10)
  777. }
  778.  
  779. bool:Should_AutoJoin(id) {
  780. return(get_pcvar_num(cvar_autojoin_team) && !get_user_team(id) && !task_exists(id))
  781. }
  782.  
  783. JoinTeam_Task(id, menu_msgid) {
  784. static param_menu_msgid[2]
  785. param_menu_msgid[0] = menu_msgid
  786.  
  787. set_task(0.1, "Force_JoinTeam", id, param_menu_msgid, sizeof param_menu_msgid)
  788. }
  789.  
  790. public Force_JoinTeam(menu_msgid[], id) {
  791. if(get_user_team(id))
  792. return
  793.  
  794. static team[2], class[2]
  795. get_pcvar_string(cvar_autojoin_team, team, sizeof team - 1)
  796. get_pcvar_string(cvar_autojoin_class, class, sizeof class - 1)
  797. Force_Team_Join(id, menu_msgid[0], team, class)
  798. }
  799.  
  800. stock Force_Team_Join(id, menu_msgid, team[] = "5", class[] = "0") {
  801. static jointeam[] = "jointeam"
  802. if(class[0] == '0') {
  803. engclient_cmd(id, jointeam, team)
  804. return
  805. }
  806.  
  807. static msg_block, joinclass[] = "joinclass"
  808. msg_block = get_msg_block(menu_msgid)
  809. set_msg_block(menu_msgid, BLOCK_SET)
  810. engclient_cmd(id, jointeam, team)
  811. engclient_cmd(id, joinclass, class)
  812. set_msg_block(menu_msgid, msg_block)
  813. }
  814.  
  815. public EVENT_SwitchTeam() {
  816. new Players[32], PlayersNum, id;
  817. get_players(Players, PlayersNum)
  818. if(PlayersNum) {
  819. for(new i; i < PlayersNum; i++) {
  820. id = Players[i]
  821. BeginDelay(id)
  822. }
  823. }
  824. }
  825.  
  826. public BeginDelay(id) {
  827. if(is_user_connected(id)) {
  828. switch(id) {
  829. case 1..7: set_task(0.1, "BeginTeamSwap", id)
  830. case 8..15: set_task(0.2, "BeginTeamSwap", id)
  831. case 16..23: set_task(0.3, "BeginTeamSwap", id)
  832. case 24..32: set_task(0.4, "BeginTeamSwap", id)
  833. }
  834. }
  835. }
  836.  
  837. public BeginTeamSwap(id) {
  838. if(is_user_connected(id)) {
  839. switch(get_user_team(id)) {
  840. case TEAM_FURIEN: cs_set_user_team(id, CS_TEAM_CT)
  841. case TEAM_ANTIFURIEN: cs_set_user_team(id, CS_TEAM_T)
  842. }
  843. }
  844. }
  845.  
  846. ///////////////////////////////////////////////////////////////////////////////////////////////
  847.  
  848. public Player_PreThink(id) {
  849. if(is_user_connected(id)) {
  850. if(get_user_team(id) == TEAM_FURIEN) {
  851. if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1)
  852. set_pev(id, pev_gravity, FURIEN_GRAVITY)
  853.  
  854. if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) {
  855. set_pev(id, pev_maxspeed, FURIEN_SPEED)
  856. set_user_footsteps(id, 1)
  857. }
  858. }
  859. if(get_pcvar_num(cvar_aim_info)) {
  860. new Target, Body;
  861. get_user_aiming(id, Target, Body);
  862. if(is_user_alive(id) && is_user_connected(Target) && is_user_alive(Target)) {
  863. new TargetTeam, PlayerTeam, TargetName[32], Message[128], TargetHealth, TargetArmor, RED, GREEN, BLUE;
  864. TargetTeam = get_user_team(Target)
  865. PlayerTeam = get_user_team(id)
  866. get_user_name(Target, TargetName, 31)
  867. TargetHealth = get_user_health(Target)
  868. TargetArmor = get_user_armor(Target)
  869. if(PlayerTeam == TEAM_FURIEN && TargetTeam == TEAM_ANTIFURIEN) {
  870. formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor)
  871. RED = 20
  872. GREEN = 200
  873. BLUE = 50
  874. }
  875. else if(PlayerTeam == TEAM_FURIEN && TargetTeam == TEAM_FURIEN) {
  876. formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor)
  877. RED = 200
  878. GREEN = 20
  879. BLUE = 20
  880. }
  881. else if(PlayerTeam == TEAM_ANTIFURIEN && TargetTeam == TEAM_ANTIFURIEN) {
  882. formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor)
  883. RED = 200
  884. GREEN = 20
  885. BLUE = 20
  886. }
  887. else if(PlayerTeam == TEAM_ANTIFURIEN && TargetTeam == TEAM_FURIEN)
  888. return
  889. set_hudmessage(RED, GREEN, BLUE, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1);
  890. show_hudmessage(id, "%s", Message)
  891. }
  892. }
  893. }
  894. }
  895.  
  896. public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) {
  897. if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) {
  898. if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1
  899. || !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent
  900. || get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) {
  901. set_es(es, ES_RenderFx, kRenderFxNone);
  902. set_es(es, ES_RenderMode, kRenderTransTexture);
  903. set_es(es, ES_RenderAmt, 255);
  904. }
  905. else if(get_user_team(ent) == 1) {
  906. set_es(es, ES_RenderFx, kRenderFxNone);
  907. set_es(es, ES_RenderMode, kRenderTransTexture);
  908. static Float:Origin[3]
  909. pev(ent, pev_origin, Origin)
  910.  
  911. if(get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && fm_get_speed(ent) <= 5 || get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && Origin[0] == Wallorigin[ent][0] && Origin[1] == Wallorigin[ent][1] && Origin[2] == Wallorigin[ent][2])
  912. set_es(es, ES_RenderAmt, 0);
  913. else
  914. set_es(es, ES_RenderAmt, 255);
  915. }
  916. }
  917. }
  918.  
  919. public FWD_GameDescription() {
  920. static GameName[32]
  921. get_pcvar_string(cvar_gamedescription, GameName, 31)
  922.  
  923. forward_return(FMV_STRING, GameName)
  924.  
  925. return FMRES_SUPERCEDE
  926. }
  927.  
  928. stock ColorChat(const id, const input[], any:...) {
  929. new count = 1, players[32];
  930. static msg[191];
  931. vformat(msg, 190, input, 3);
  932.  
  933. replace_all(msg, 190, "!g", "^4");
  934. replace_all(msg, 190, "!y", "^1");
  935. replace_all(msg, 190, "!t", "^3");
  936.  
  937. if(id) players[0] = id;
  938. else get_players(players, count, "ch"); {
  939. for(new i = 0; i < count; i++) {
  940. if(is_user_connected(players[i])) {
  941. message_begin(MSG_ONE_UNRELIABLE, MSGID_SayText, _, players[i]);
  942. write_byte(players[i]);
  943. write_string(msg);
  944. message_end();
  945. }
  946. }
  947. }
  948. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement