Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 35.04 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 "Furien Clasic"
  10. #define VERSION "2.0"
  11. #define AUTHOR "Aragon*/DaNNe."
  12.  
  13. #define DMG_HEGRENADE (1<<24)
  14.  
  15. #define FURIEN_GRAVITY 0.4
  16. #define FURIEN_SPEED 800.0
  17. #define TEAM_FURIEN 1
  18. #define TEAM_ANTIFURIEN 2
  19.  
  20. #define TASKID_CANPLANT 10001
  21. #define TASKID_C4COUNTDOWN 453
  22.  
  23. #if cellbits == 32
  24. #define OFFSET_BZ 235
  25. #else
  26. #define OFFSET_BZ 268
  27. #endif
  28.  
  29. #define KILL_MONEY 1200
  30. #define TASKID_HEALTH 12201
  31.  
  32. //Shop
  33. new SuperKnifeModel_V[] = "models/v_sk.mdl"
  34. new bool: HaveSuperKnife[33]
  35.  
  36. //Settings
  37. new bool:MakeVisible[33], Float:Wallorigin[33][3]
  38.  
  39. //Parachute
  40. #define PARACHUTE_CLASS "Parachute"
  41. new ParaENT[33];
  42.  
  43. new Menu;
  44. new cvar_gamedescription, furienspawnhp, antifurienspawnhp, removebuyzone, superknife_damage_multiplier, cvar_autojoin_class, cvar_autojoin_team, cvar_aim_info,
  45. MSGID_SayText, MSGID_StatusIcon, MSGID_TextMsg, MSGID_SendAudio, MSGID_ShowMenu, MSGID_VGUIMenu, MSGID_Health,
  46. bool:CanPlant, C4_CountDownDelay;
  47.  
  48.  
  49. public plugin_cfg() {
  50. server_cmd("amx_cvar mp_playerid 2")
  51. server_cmd("amx_cvar sv_maxspeed 900")
  52. server_cmd("amx_cvar sv_restart 5")
  53. }
  54.  
  55.  
  56. //===========================================================================================//
  57. //===============================[Weapons Settings]=========================================//
  58. //=========================================================================================//
  59. new bool:HavePrimaryWeapon[33], bool:HaveSecondaryWeapon[33], PrimaryWeapon[33], SecondaryWeapon[33];
  60.  
  61. //---|| Primary
  62. #define M4A1_KEY 100
  63. #define AK47_KEY 101
  64. #define M3_KEY 102
  65. #define AUG_KEY 103
  66. #define FAMAS_KEY 104
  67. #define MP5_KEY 105
  68. #define XM1014_KEY 106
  69.  
  70. //---|| Secondary
  71. #define USP_KEY 107
  72. #define DEAGLE_KEY 108
  73. #define ELITE_KEY 109
  74. #define FIVESEVEN_KEY 110
  75.  
  76. new g_iJumpNum[33];
  77. new bool:g_bDoJump[33];
  78.  
  79. public plugin_init() {
  80. register_plugin(PLUGIN, VERSION, AUTHOR)
  81.  
  82. cvar_gamedescription = register_cvar("furien_gamename", "Furien Classic")
  83. antifurienspawnhp = register_cvar("antifurien_spawnhp", "100")
  84. furienspawnhp = register_cvar("furien_spawnhp", "100")
  85. superknife_damage_multiplier = register_cvar("superknife_damage_multiplier", "2.0")
  86. cvar_autojoin_team = register_cvar("furien_team", "5")
  87. cvar_autojoin_class = register_cvar("furien_class", "5")
  88. cvar_aim_info = register_cvar("furien_enable_aiminfo", "1")
  89. MSGID_SayText = get_user_msgid("SayText")
  90. MSGID_StatusIcon = get_user_msgid("StatusIcon")
  91. MSGID_TextMsg = get_user_msgid("TextMsg")
  92. MSGID_SendAudio = get_user_msgid("SendAudio")
  93. MSGID_ShowMenu = get_user_msgid("ShowMenu")
  94. MSGID_VGUIMenu = get_user_msgid("VGUIMenu")
  95. register_clcmd("say shop", "CmdShopMenu")
  96. register_clcmd("say /shop", "CmdShopMenu")
  97. register_clcmd("say_team shop", "CmdShopMenu")
  98. register_clcmd("say_team /shop", "CmdShopMenu")
  99. //register_clcmd("say weapons", "CmdWeaponsMenu")
  100. //register_clcmd("say /weapons", "CmdWeaponsMenu")
  101. register_clcmd("jointeam", "CMD_BlockJoinTeam")
  102. register_clcmd("jointeam 1", "CMD_BlockJoinTeam")
  103. register_clcmd("jointeam 2", "CMD_BlockJoinTeam")
  104. register_clcmd("jointeam 3", "CMD_BlockJoinTeam")
  105. register_clcmd("chooseteam", "CMD_BlockChooseTeam")
  106. register_clcmd("say /rs", "CmdResetScore")
  107. register_clcmd("say_team /rs", "CmdResetScore")
  108. register_clcmd("say /resetscore", "CmdResetScore")
  109. register_clcmd("say_team /resetscore", "CmdResetScore")
  110.  
  111. RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1)
  112. RegisterHam(Ham_Touch, "weaponbox", "HAM_Touch_Weapon")
  113. RegisterHam(Ham_Touch, "armoury_entity", "HAM_Touch_Weapon")
  114. RegisterHam(Ham_Touch, "weapon_shield", "HAM_Touch_Weapon")
  115. RegisterHam(Ham_TakeDamage, "player", "SuperKnife_TakeDamage")
  116. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_c4", "C4_PrimaryAttack");
  117.  
  118. register_forward(FM_PlayerPreThink, "Player_PreThink");
  119. register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1);
  120. register_forward(FM_PlayerPreThink, "FWD_ParachutePreThink");
  121. register_forward(FM_GetGameDescription, "FWD_GameDescription")
  122.  
  123. register_event("CurWeapon", "EVENT_CurWeapon", "be", "1=1")
  124. register_event("DeathMsg", "EVENT_Death", "a");
  125. register_event("SendAudio", "EVENT_SwitchTeam", "a", "1=0", "2=%!MRAD_ctwin");
  126. register_event("HLTV", "EVENT_NewRound", "a", "1=0", "2=0");
  127. register_event("TextMsg", "EVENT_FireINTheHole", "b", "2&#Game_radio", "4&#Fire_in_the_hole")
  128. register_event("TextMsg", "EVENT_FireINTheHole", "b", "3&#Game_radio", "5&#Fire_in_the_hole")
  129.  
  130.  
  131. register_message(MSGID_StatusIcon, "MSG_StatusIcon");
  132. register_message(MSGID_TextMsg, "MSG_TextMessage");
  133. register_message(MSGID_ShowMenu, "MSG_ShowMenu");
  134. register_message(MSGID_VGUIMenu, "MSG_VGUIMenu");
  135. register_message(MSGID_SendAudio, "MSG_SendAudio");
  136. register_message(MSGID_Health, "MSG_Health")
  137. }
  138.  
  139.  
  140. public plugin_precache() {
  141. removebuyzone = register_cvar("furien_removebuyzone", "1")
  142.  
  143. if(get_pcvar_num(removebuyzone)) {
  144.  
  145. remove_entity_name("info_map_parameters");
  146. remove_entity_name("func_buyzone");
  147.  
  148. new Entity = create_entity("info_map_parameters");
  149.  
  150. DispatchKeyValue(Entity, "buying", "3");
  151. DispatchSpawn(Entity);
  152. }
  153. precache_model(SuperKnifeModel_V)
  154. }
  155.  
  156. public client_connect(id) {
  157. client_cmd(id, "cl_forwardspeed 999.0")
  158. client_cmd(id, "cl_sidespeed 999.0")
  159. client_cmd(id, "cl_backspeed 999.0")
  160. remove_task(id+TASKID_HEALTH);
  161. }
  162.  
  163. public client_putinserver(id) {
  164. client_cmd(id, "cl_forwardspeed 999.0")
  165. client_cmd(id, "cl_sidespeed 999.0")
  166. client_cmd(id, "cl_backspeed 999.0")
  167. PrimaryWeapon[id] = 0
  168. SecondaryWeapon[id] = 0
  169. set_task(1.0, "taskShowHealth", id+TASKID_HEALTH, _, _, "b");
  170. }
  171. public taskShowHealth(id)
  172. {
  173. id -= TASKID_HEALTH;
  174.  
  175. if(is_user_alive(id))
  176. {
  177. set_hudmessage(0, 255, 0, -1.0, 0.90, 0, 6.0, 12.0)
  178. show_hudmessage(id, "Health: %d", get_user_health(id));
  179. }
  180.  
  181. }
  182. public Ham_Spawn_Post(id) {
  183. if(is_user_connected(id) && is_user_alive(id)) {
  184. strip_user_weapons(id)
  185. HavePrimaryWeapon[id] = false
  186. HaveSecondaryWeapon[id] = false
  187. switch(get_user_team(id)) {
  188. case TEAM_FURIEN: {
  189. fm_give_item(id, "weapon_hegrenade")
  190. fm_give_item(id, "weapon_knife")
  191. set_user_footsteps(id, 1)
  192. fm_set_user_health(id, get_pcvar_num(furienspawnhp))
  193. }
  194. case TEAM_ANTIFURIEN: {
  195. fm_give_item(id, "weapon_hegrenade")
  196. fm_give_item(id, "weapon_knife")
  197. set_user_footsteps(id, 0)
  198. fm_set_user_health(id, get_pcvar_num(antifurienspawnhp))
  199. HaveSuperKnife[id] = false;
  200. Equipment(id)
  201. }
  202. }
  203. }
  204. }
  205.  
  206. public EVENT_NewRound() {
  207. CanPlant = false;
  208. remove_task(TASKID_CANPLANT);
  209. new Float:FloatTime = get_cvar_num("mp_freezetime") + (get_cvar_num("mp_roundtime") * 60) - 60.0
  210. set_task(FloatTime, "TASK_CanPlant", TASKID_CANPLANT)
  211. remove_task(TASKID_C4COUNTDOWN)
  212. }
  213.  
  214. public EVENT_FireINTheHole()
  215. return PLUGIN_HANDLED
  216.  
  217. public HAM_Touch_Weapon(ent, id) {
  218. if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN && !(get_pdata_cbase(ent, 39, 4) > 0))
  219. return HAM_SUPERCEDE
  220.  
  221. return HAM_IGNORED
  222. }
  223.  
  224. public SuperKnife_TakeDamage(Victim, Inflictor, Attacker, Float:Damage, DamageType) {
  225. if( DamageType & DMG_BLAST )
  226. return HAM_SUPERCEDE;
  227.  
  228. if(is_user_connected(Attacker) && is_user_alive(Attacker) && is_user_connected(Victim)) {
  229. if(get_user_weapon(Attacker) == CSW_KNIFE) {
  230. if(HaveSuperKnife[Attacker])
  231. SetHamParamFloat(4, Damage * get_pcvar_float(superknife_damage_multiplier))
  232. }
  233. }
  234. return HAM_IGNORED
  235. }
  236.  
  237.  
  238.  
  239. /** ----------------------- **/
  240. public client_PreThink(id)
  241. {
  242. if(!is_user_alive(id))
  243. return;
  244.  
  245. new nbut = get_user_button(id)
  246. new obut = get_user_oldbutton(id)
  247.  
  248. if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
  249. {
  250. if(g_iJumpNum[id] < 1)
  251. {
  252. g_bDoJump[id] = true
  253. g_iJumpNum[id]++
  254. }
  255. }
  256. if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
  257. {
  258. g_iJumpNum[id] = 0
  259. }
  260. }
  261. public client_PostThink(id)
  262. {
  263. if(!is_user_alive(id))
  264. return;
  265.  
  266. if(g_bDoJump[id])
  267. {
  268. new Float:velocity[3]
  269. entity_get_vector(id,EV_VEC_velocity,velocity)
  270.  
  271. velocity[2] = random_float(265.0,285.0)
  272. entity_set_vector(id,EV_VEC_velocity,velocity)
  273.  
  274. g_bDoJump[id] = false
  275. }
  276. }
  277.  
  278. ///////////////////////////////////////////////////////////////////////////////////////////////
  279.  
  280. public C4_PrimaryAttack(Ent) {
  281. new id = pev( Ent, pev_owner );
  282. if(!CanPlant)
  283. {
  284. client_print(id, print_center, "Bomba poate fi plantata doar in ultimele 60 de secunde");
  285. return HAM_SUPERCEDE
  286. }
  287.  
  288. return HAM_IGNORED
  289. }
  290.  
  291. public CmdResetScore(id) {
  292. if(get_user_frags(id) == 0 && get_user_deaths(id) == 0)
  293. ColorChat(id, "!gScorul tau este deja!t 0-0!g !")
  294. else {
  295. for(new i = 0; i < 2; i++) {
  296. cs_set_user_deaths(id, 0);
  297. set_user_frags(id, 0);
  298. }
  299. ColorChat(id, "!gTi-ai resetat scorul cu succes !")
  300. }
  301. }
  302.  
  303. public CmdShopMenu(id) {
  304. if(!is_user_alive(id))
  305. return PLUGIN_HANDLED
  306. switch(get_user_team(id)) {
  307. case TEAM_FURIEN: CmdFurienShop(id)
  308. case TEAM_ANTIFURIEN: CmdAntiFurienShop(id)
  309. }
  310. return PLUGIN_HANDLED
  311. }
  312.  
  313. public CmdFurienShop(id) {
  314. if(is_user_alive(id) && get_user_team(id) == TEAM_FURIEN) {
  315. Menu = menu_create("Furien Shop", "CmdFurienHandler")
  316.  
  317. new SuperKnife[256];
  318. formatex(SuperKnife, sizeof(SuperKnife)-1, "Super knife - 10000$")
  319. menu_additem(Menu, SuperKnife, "1", 0)
  320.  
  321. new Health[256];
  322. formatex(Health, sizeof(Health)-1, "50 HP - 3000$")
  323. menu_additem(Menu, Health, "2", 0)
  324.  
  325. new Armor[256];
  326. formatex(Armor, sizeof(Armor)-1, "50 AP + Helmet - 500$")
  327. menu_additem(Menu, Armor, "3", 0)
  328.  
  329. new Grenade[256];
  330. formatex(Grenade, sizeof(Grenade)-1, "He grenade - 4000$")
  331. menu_additem(Menu, Grenade, "4", 0)
  332.  
  333. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
  334. menu_display(id, Menu, 0);
  335. }
  336. }
  337.  
  338. public CmdAntiFurienShop(id) {
  339. if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
  340. Menu = menu_create("Anti-Furien Shop", "CmdAntiFurienHandler")
  341.  
  342. new Defuse[256];
  343. formatex(Defuse, sizeof(Defuse)-1, "Defuse kit - 500$")
  344. menu_additem(Menu, Defuse, "1", 0)
  345.  
  346. new Health[256];
  347. formatex(Health, sizeof(Health)-1, "50 HP - 3000$")
  348. menu_additem(Menu, Health, "2", 0)
  349.  
  350. new Armor[256];
  351. formatex(Armor, sizeof(Armor)-1, "50 AP + Helmet - 500$")
  352. menu_additem(Menu, Armor, "3", 0)
  353.  
  354. new Grenade[256];
  355. formatex(Grenade, sizeof(Grenade)-1, "He grenade - 4000$")
  356. menu_additem(Menu, Grenade, "4", 0)
  357.  
  358. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
  359. menu_display(id, Menu, 0);
  360. }
  361. }
  362.  
  363. public CmdFurienHandler(id, menu, item) {
  364. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 1) {
  365. menu_destroy(menu);
  366. return PLUGIN_HANDLED;
  367. }
  368. new Data[6], Name[64];
  369. new Access, CallBack;
  370. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  371. new Key = str_to_num(Data);
  372. switch(Key) {
  373. case 1: {
  374. if(HaveSuperKnife[id])
  375. client_print(id, print_center, "You already have SuperKnife!")
  376. else {
  377. new Money = cs_get_user_money(id) - 10000
  378. if(Money < 0)
  379. client_print(id, print_center, "You have insufficient founds!")
  380. else {
  381. HaveSuperKnife[id] = true;
  382. EVENT_CurWeapon(id)
  383. cs_set_user_money(id, Money)
  384. }
  385. }
  386. }
  387. case 2: {
  388. if(get_user_health(id) >= 250)
  389. client_print(id, print_center, "You already have 250 HP!")
  390. else {
  391. new Money = cs_get_user_money(id) - 3000
  392. if(Money < 0)
  393. client_print(id, print_center, "You have insufficient founds!")
  394. else {
  395. if(get_user_health(id) + 50 > 250)
  396. fm_set_user_health(id, 250)
  397. else
  398. fm_set_user_health(id, get_user_health(id) + 50)
  399. cs_set_user_money(id, Money)
  400. }
  401. }
  402. }
  403. case 3: {
  404. if(get_user_armor(id) >= 250)
  405. client_print(id, print_center, "You already have 250 AP!")
  406. else {
  407. new Money = cs_get_user_money(id) - 500
  408. if(Money < 0)
  409. client_print(id, print_center, "You have insufficient founds!")
  410. else {
  411. if(get_user_armor(id) + 50 > 250)
  412. fm_set_user_armor(id, 250)
  413. else
  414. fm_set_user_armor(id, get_user_armor(id) + 50)
  415. cs_set_user_money(id, Money)
  416. }
  417. }
  418. }
  419. case 4: {
  420. if(user_has_weapon(id, CSW_HEGRENADE))
  421. client_print(id, print_center, "You already have HE GRENADE!")
  422. else {
  423. new Money = cs_get_user_money(id) - 4000
  424. if(Money < 0)
  425. client_print(id, print_center, "You have insufficient founds!")
  426. else {
  427. fm_give_item(id, "weapon_hegrenade")
  428. cs_set_user_money(id, Money)
  429. }
  430. }
  431. }
  432. }
  433. menu_destroy(menu)
  434. return PLUGIN_HANDLED
  435. }
  436.  
  437. public CmdAntiFurienHandler(id, menu, item) {
  438. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
  439. menu_destroy(menu);
  440. return PLUGIN_HANDLED;
  441. }
  442. new Data[6], Name[64];
  443. new Access, CallBack;
  444. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  445. new Key = str_to_num(Data);
  446. switch(Key) {
  447. case 1: {
  448. if(cs_get_user_defuse(id))
  449. client_print(id, print_center, "You already have Defuse KIT!")
  450. else {
  451. new Money = cs_get_user_money(id) - 500
  452. if(Money < 0)
  453. client_print(id, print_center, "You have insufficient founds!")
  454. else {
  455. cs_set_user_defuse(id, 1)
  456. cs_set_user_money(id, Money)
  457. }
  458. }
  459. }
  460. case 2: {
  461. if(get_user_health(id) >= 250)
  462. client_print(id, print_center, "You already have 250 HP!")
  463. else {
  464. new Money = cs_get_user_money(id) - 3000
  465. if(Money < 0)
  466. client_print(id, print_center, "You have insufficient founds!")
  467. else {
  468. if(get_user_health(id) + 50 > 250)
  469. fm_set_user_health(id, 250)
  470. else
  471. fm_set_user_health(id, get_user_health(id) + 50)
  472. cs_set_user_money(id, Money)
  473. }
  474. }
  475. }
  476. case 3: {
  477. if(get_user_armor(id) >= 250)
  478. client_print(id, print_center, "You already have 250 AP!")
  479. else {
  480. new Money = cs_get_user_money(id) - 500
  481. if(Money < 0)
  482. client_print(id, print_center, "You have insufficient founds!")
  483. else {
  484. if(get_user_armor(id) + 50 > 250)
  485. fm_set_user_armor(id, 250)
  486. else
  487. fm_set_user_armor(id, get_user_armor(id) + 50)
  488. cs_set_user_money(id, Money)
  489. }
  490. }
  491. }
  492. case 4: {
  493. if(user_has_weapon(id, CSW_HEGRENADE))
  494. client_print(id, print_center, "You already have HE GRENADE!")
  495. else {
  496. new Money = cs_get_user_money(id) - 4000
  497. if(Money < 0)
  498. client_print(id, print_center, "You have insufficient founds!")
  499. else {
  500. fm_give_item(id, "weapon_hegrenade")
  501. cs_set_user_money(id, Money)
  502. }
  503. }
  504. }
  505. }
  506. menu_destroy(menu)
  507. return PLUGIN_HANDLED
  508. }
  509.  
  510. //=========================================================================//
  511. //=======================[Weapons Settings]===============================//
  512. //=======================================================================//
  513.  
  514. public Equipment(id) {
  515. if(is_user_alive(id) && get_user_team(id) == 2) {
  516. Menu = menu_create("Weapons Menu", "EquipmentCmd");
  517. menu_additem(Menu, "New Weapons", "1", 0);
  518. if(PrimaryWeapon[id] && SecondaryWeapon[id])
  519. menu_additem(Menu, "Previous Setup", "2", 0);
  520. else
  521. menu_additem(Menu, "Previous Setup", "2", 0);
  522. menu_setprop(Menu, MPROP_EXIT, MEXIT_NEVER)
  523. menu_display(id, Menu, 0);
  524. }
  525. }
  526.  
  527. public EquipmentCmd(id, menu, item) {
  528. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
  529. menu_destroy(menu);
  530. return PLUGIN_HANDLED;
  531. }
  532. new Data[6], Name[64];
  533. new Access, CallBack;
  534. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  535. new Key = str_to_num(Data);
  536. switch(Key) {
  537. case 1: {
  538. if(!HavePrimaryWeapon[id])
  539. Primary(id)
  540. else if(!HaveSecondaryWeapon[id])
  541. Secondary(id)
  542. }
  543. case 2: {
  544. if(PrimaryWeapon[id] && SecondaryWeapon[id])
  545. GiveLastWeapons(id)
  546. else Equipment(id)
  547. }
  548. default: return PLUGIN_HANDLED;
  549. }
  550. menu_destroy(menu);
  551. return PLUGIN_HANDLED;
  552. }
  553.  
  554. public Primary(id) {
  555. if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
  556. Menu = menu_create("\yAnti-Furien Weapons^n\rPrimary:", "CmdWeaponsHandler")
  557.  
  558. menu_additem(Menu, "M4A1", "1", 0)
  559. menu_additem(Menu, "AK47", "2", 0)
  560. menu_additem(Menu, "M3", "3", 0)
  561. menu_additem(Menu, "Aug", "4", 0)
  562. menu_additem(Menu, "Famas", "5", 0)
  563. menu_additem(Menu, "MP5 Navy", "6", 0)
  564. menu_additem(Menu, "XM1014", "7", 0)
  565.  
  566. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
  567. menu_display(id, Menu, 0);
  568. }
  569. }
  570.  
  571. public CmdWeaponsHandler(id, menu, item) {
  572. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
  573. menu_destroy(menu);
  574. return PLUGIN_HANDLED;
  575. }
  576. new Data[6], Name[64];
  577. new Access, CallBack;
  578. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  579. new Key = str_to_num(Data);
  580. switch(Key) {
  581. case 1: {
  582. fm_give_item(id, "weapon_m4a1")
  583. cs_set_user_bpammo(id, CSW_M4A1, 254)
  584. PrimaryWeapon[id] = M4A1_KEY
  585. HavePrimaryWeapon[id] = true;
  586. Secondary(id)
  587. }
  588. case 2: {
  589. fm_give_item(id, "weapon_ak47")
  590. cs_set_user_bpammo(id, CSW_AK47, 254)
  591. PrimaryWeapon[id] = AK47_KEY
  592. HavePrimaryWeapon[id] = true;
  593. Secondary(id)
  594. }
  595. case 3: {
  596. fm_give_item(id, "weapon_m3")
  597. cs_set_user_bpammo(id, CSW_M3, 254)
  598. PrimaryWeapon[id] = M3_KEY
  599. HavePrimaryWeapon[id] = true;
  600. Secondary(id)
  601. }
  602. case 4: {
  603. fm_give_item(id, "weapon_aug")
  604. cs_set_user_bpammo(id, CSW_AUG, 254)
  605. PrimaryWeapon[id] = AUG_KEY
  606. HavePrimaryWeapon[id] = true;
  607. Secondary(id)
  608. }
  609. case 5: {
  610. fm_give_item(id, "weapon_famas")
  611. cs_set_user_bpammo(id, CSW_FAMAS, 254)
  612. PrimaryWeapon[id] = FAMAS_KEY
  613. HavePrimaryWeapon[id] = true;
  614. Secondary(id)
  615. }
  616. case 6: {
  617. fm_give_item(id, "weapon_mp5navy")
  618. cs_set_user_bpammo(id, CSW_MP5NAVY, 254)
  619. PrimaryWeapon[id] = MP5_KEY
  620. HavePrimaryWeapon[id] = true;
  621. Secondary(id)
  622. }
  623. case 7: {
  624. fm_give_item(id, "weapon_xm1014")
  625. cs_set_user_bpammo(id, CSW_XM1014, 254)
  626. PrimaryWeapon[id] = XM1014_KEY
  627. HavePrimaryWeapon[id] = true;
  628. Secondary(id)
  629. }
  630. }
  631. menu_destroy(menu)
  632. return PLUGIN_HANDLED
  633. }
  634.  
  635. public Secondary(id) {
  636. if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
  637. Menu = menu_create("\yAnti-Furien Weapons^n\rSecondary:", "CmdSecondaryHandler")
  638.  
  639. menu_additem(Menu, "USP", "1", 0)
  640. menu_additem(Menu, "Deagle", "2", 0)
  641. menu_additem(Menu, "Elite", "3", 0)
  642. menu_additem(Menu, "Five Seven", "4", 0)
  643.  
  644. menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL);
  645. menu_display(id, Menu, 0);
  646. }
  647. }
  648.  
  649. public CmdSecondaryHandler(id, menu, item) {
  650. if(item == MENU_EXIT || !is_user_alive(id) || get_user_team(id) != 2) {
  651. menu_destroy(menu);
  652. return PLUGIN_HANDLED;
  653. }
  654. new Data[6], Name[64];
  655. new Access, CallBack;
  656. menu_item_getinfo(menu, item, Access, Data,5, Name, 63, CallBack);
  657. new Key = str_to_num(Data);
  658. switch(Key) {
  659. case 1: {
  660. fm_give_item(id, "weapon_usp")
  661. cs_set_user_bpammo(id, CSW_USP, 256)
  662. SecondaryWeapon[id] = USP_KEY
  663. HaveSecondaryWeapon[id] = true;
  664. }
  665. case 2: {
  666. fm_give_item(id, "weapon_deagle")
  667. cs_set_user_bpammo(id, CSW_DEAGLE, 256)
  668. SecondaryWeapon[id] = DEAGLE_KEY
  669. HaveSecondaryWeapon[id] = true;
  670. }
  671. case 3: {
  672. fm_give_item(id, "weapon_elite")
  673. cs_set_user_bpammo(id, CSW_ELITE, 256)
  674. SecondaryWeapon[id] = ELITE_KEY
  675. HaveSecondaryWeapon[id] = true;
  676. }
  677. case 4: {
  678. fm_give_item(id, "weapon_fiveseven")
  679. cs_set_user_bpammo(id, CSW_FIVESEVEN, 256)
  680. SecondaryWeapon[id] = FIVESEVEN_KEY
  681. HaveSecondaryWeapon[id] = true;
  682. }
  683. }
  684. menu_destroy(menu)
  685. return PLUGIN_HANDLED
  686. }
  687.  
  688. public GiveLastWeapons(id) {
  689. if(!HavePrimaryWeapon[id]) {
  690. switch(PrimaryWeapon[id]) {
  691. case M4A1_KEY: {
  692. fm_give_item(id, "weapon_m4a1")
  693. cs_set_user_bpammo(id, CSW_M4A1, 256)
  694. HavePrimaryWeapon[id] = true;
  695. }
  696. case AK47_KEY: {
  697. fm_give_item(id, "weapon_ak47")
  698. cs_set_user_bpammo(id, CSW_AK47, 256)
  699. HavePrimaryWeapon[id] = true;
  700. }
  701. case M3_KEY: {
  702. fm_give_item(id, "weapon_m3")
  703. cs_set_user_bpammo(id, CSW_M3, 256)
  704. HavePrimaryWeapon[id] = true;
  705. }
  706. case AUG_KEY: {
  707. fm_give_item(id, "weapon_aug")
  708. cs_set_user_bpammo(id, CSW_AUG, 256)
  709. HavePrimaryWeapon[id] = true;
  710. }
  711. case FAMAS_KEY: {
  712. fm_give_item(id, "weapon_famas")
  713. cs_set_user_bpammo(id, CSW_FAMAS, 256)
  714. HavePrimaryWeapon[id] = true;
  715. }
  716. case MP5_KEY: {
  717. fm_give_item(id, "weapon_mp5navy")
  718. cs_set_user_bpammo(id, CSW_MP5NAVY, 256)
  719. HavePrimaryWeapon[id] = true;
  720. }
  721. case XM1014_KEY: {
  722. fm_give_item(id, "weapon_xm1014")
  723. cs_set_user_bpammo(id, CSW_XM1014, 256)
  724. HavePrimaryWeapon[id] = true;
  725. }
  726. }
  727. }
  728. if(!HaveSecondaryWeapon[id]) {
  729. switch(SecondaryWeapon[id]) {
  730. case USP_KEY: {
  731. fm_give_item(id, "weapon_usp")
  732. cs_set_user_bpammo(id, CSW_USP, 256)
  733. HaveSecondaryWeapon[id] = true;
  734. }
  735. case DEAGLE_KEY: {
  736. fm_give_item(id, "weapon_deagle")
  737. cs_set_user_bpammo(id, CSW_DEAGLE, 256)
  738. HaveSecondaryWeapon[id] = true;
  739. }
  740. case ELITE_KEY: {
  741. fm_give_item(id, "weapon_elite")
  742. cs_set_user_bpammo(id, CSW_ELITE, 256)
  743. HaveSecondaryWeapon[id] = true;
  744. }
  745. case FIVESEVEN_KEY: {
  746. fm_give_item(id, "weapon_fiveseven")
  747. cs_set_user_bpammo(id, CSW_FIVESEVEN, 256)
  748. HaveSecondaryWeapon[id] = true;
  749. }
  750. }
  751. }
  752. }
  753. public CMD_BlockJoinTeam(id) {
  754. console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
  755. return 1;
  756. }
  757.  
  758. public CMD_BlockChooseTeam(id) {
  759. console_print(id, "*** Nu ai voie sa foloseti ChooseTeam ! ***")
  760. return 1;
  761. }
  762.  
  763.  
  764.  
  765. /////////////////////////////////////////////////////////////////////////
  766.  
  767. public EVENT_CurWeapon(id) {
  768. if(is_user_connected(id)) {
  769. if(get_user_weapon(id) == CSW_KNIFE) {
  770. if(HaveSuperKnife[id])
  771. set_pev(id, pev_viewmodel2, SuperKnifeModel_V)
  772. }
  773. new PlayerHealth;
  774. PlayerHealth = get_user_health(id)
  775. if(PlayerHealth == 256)
  776. fm_set_user_health(id, 255)
  777. }
  778.  
  779. }
  780.  
  781. public EVENT_Death() {
  782.  
  783. static Attacker, Victim;
  784. Attacker = read_data(1)
  785. Victim = read_data(2)
  786.  
  787. HaveSuperKnife[Victim] = false;
  788.  
  789. if(Victim == Attacker || !is_user_alive(Attacker))
  790. return;
  791.  
  792. cs_set_user_money(Attacker, cs_get_user_money(Attacker) + KILL_MONEY);
  793. }
  794.  
  795. public MSG_StatusIcon(msg_id, msg_dest, id) {
  796. static Attrib
  797. Attrib = get_msg_arg_int(2)
  798.  
  799. if(Attrib == (1<<1))
  800. set_msg_arg_int(2, ARG_BYTE, 0)
  801.  
  802. new Icon[8];
  803. get_msg_arg_string(2, Icon, 7);
  804. if(get_pcvar_num(removebuyzone)) {
  805. static const BuyZone[] = "buyzone";
  806.  
  807. if(equal(Icon, BuyZone)) {
  808. set_pdata_int(id, OFFSET_BZ, get_pdata_int(id, OFFSET_BZ, 5) & ~(1 << 0), 5);
  809.  
  810. return PLUGIN_HANDLED;
  811. }
  812. }
  813. return PLUGIN_CONTINUE;
  814. }
  815.  
  816. public MSG_TextMessage() {
  817. static TextMsg[22];
  818. get_msg_arg_string(2, TextMsg, charsmax(TextMsg))
  819. if(equal(TextMsg, "#Terrorists_Win")) {
  820. client_print(0, print_center, "The Furiens have won this round!")
  821. return PLUGIN_HANDLED;
  822. }
  823. else if(equal(TextMsg, "#CTs_Win")) {
  824. client_print(0, print_center, "The Anti-Furiens have won this round!")
  825. return PLUGIN_HANDLED;
  826. }
  827. else if(equal(TextMsg, "#Bomb_Defused")) {
  828. client_print(0, print_center, "The Anti-Furiens have won this round!")
  829. return PLUGIN_HANDLED;
  830. }
  831. else if(equal(TextMsg, "#Target_Bombed")) {
  832. client_print(0, print_center, "The Furiens have won this round!")
  833. return PLUGIN_HANDLED;
  834. }
  835. else if(equal(TextMsg, "#Target_Saved")) {
  836. client_print(0, print_center, "The Anti-Furiens have won this round!")
  837. return PLUGIN_HANDLED;
  838. }
  839. else if(equal(TextMsg, "#Fire_in_the_hole"))
  840. return PLUGIN_HANDLED
  841. else if(equal(TextMsg, "#C4_Plant_At_Bomb_Spot")) {
  842. if(!CanPlant)
  843. return PLUGIN_HANDLED
  844. }
  845. return PLUGIN_CONTINUE;
  846. }
  847.  
  848. public MSG_ShowMenu(msgid, dest, id) {
  849. if(!Should_AutoJoin(id))
  850. return PLUGIN_CONTINUE
  851.  
  852. static team_select[] = "#Team_Select"
  853. static menu_text_code[sizeof team_select]
  854. get_msg_arg_string(4, menu_text_code, sizeof menu_text_code - 1)
  855. if(!equal(menu_text_code, team_select))
  856. return PLUGIN_CONTINUE
  857.  
  858. JoinTeam_Task(id, msgid)
  859.  
  860. return PLUGIN_HANDLED
  861. }
  862.  
  863. public MSG_VGUIMenu(msgid, dest, id) {
  864. if(get_msg_arg_int(1) != 2 || !Should_AutoJoin(id))
  865. return PLUGIN_CONTINUE
  866.  
  867. JoinTeam_Task(id, msgid)
  868.  
  869. return PLUGIN_HANDLED
  870. }
  871.  
  872. public MSG_SendAudio() {
  873. static Sound[17]
  874. get_msg_arg_string(2, Sound, sizeof Sound - 1)
  875.  
  876. if(equal(Sound, "terwin") || equal(Sound, "ctwin") || equal(Sound, "rounddraw") || equal(Sound, "bombpl") || equal(Sound, "bombdef"))
  877. return PLUGIN_HANDLED;
  878.  
  879. return PLUGIN_CONTINUE;
  880. }
  881.  
  882. public MSG_Health(msgid, dest, id) {
  883. static Health;
  884. Health = get_msg_arg_int(1)
  885. if(Health > 255)
  886. set_msg_arg_int(1, ARG_BYTE, 255);
  887. else if(Health == 256)
  888. set_msg_arg_int(1, ARG_BYTE, get_user_health(id) + 10)
  889. }
  890.  
  891.  
  892.  
  893. bool:Should_AutoJoin(id) {
  894. return(get_pcvar_num(cvar_autojoin_team) && !get_user_team(id) && !task_exists(id))
  895. }
  896.  
  897. JoinTeam_Task(id, menu_msgid) {
  898. static param_menu_msgid[2]
  899. param_menu_msgid[0] = menu_msgid
  900.  
  901. set_task(0.1, "Force_JoinTeam", id, param_menu_msgid, sizeof param_menu_msgid)
  902. }
  903.  
  904. public Force_JoinTeam(menu_msgid[], id) {
  905. if(get_user_team(id))
  906. return
  907.  
  908. static team[2], class[2]
  909. get_pcvar_string(cvar_autojoin_team, team, sizeof team - 1)
  910. get_pcvar_string(cvar_autojoin_class, class, sizeof class - 1)
  911. Force_Team_Join(id, menu_msgid[0], team, class)
  912. }
  913.  
  914. stock Force_Team_Join(id, menu_msgid, team[] = "5", class[] = "0") {
  915. static jointeam[] = "jointeam"
  916. if(class[0] == '0') {
  917. engclient_cmd(id, jointeam, team)
  918. return
  919. }
  920.  
  921. static msg_block, joinclass[] = "joinclass"
  922. msg_block = get_msg_block(menu_msgid)
  923. set_msg_block(menu_msgid, BLOCK_SET)
  924. engclient_cmd(id, jointeam, team)
  925. engclient_cmd(id, joinclass, class)
  926. set_msg_block(menu_msgid, msg_block)
  927. }
  928.  
  929. public bomb_planted(planter) {
  930. C4_CountDownDelay = get_cvar_num("mp_c4timer") - 1
  931. TASK_C4_CountDown();
  932. set_hudmessage(random(255), random(255), random(255), -1.0, -1.0, 1, 3.1, 3.0)
  933. show_hudmessage(0, "Furienii au plantat bomba!")
  934. }
  935.  
  936. public EVENT_SwitchTeam() {
  937. new Players[32], PlayersNum, id;
  938. get_players(Players, PlayersNum)
  939. if(PlayersNum) {
  940. for(new i; i < PlayersNum; i++) {
  941. id = Players[i]
  942. BeginDelay(id)
  943. }
  944. }
  945. }
  946.  
  947. public BeginDelay(id) {
  948. if(is_user_connected(id)) {
  949. switch(id) {
  950. case 1..7: set_task(0.1, "BeginTeamSwap", id)
  951. case 8..15: set_task(0.2, "BeginTeamSwap", id)
  952. case 16..23: set_task(0.3, "BeginTeamSwap", id)
  953. case 24..32: set_task(0.4, "BeginTeamSwap", id)
  954. }
  955. }
  956. }
  957.  
  958. public BeginTeamSwap(id) {
  959. if(is_user_connected(id)) {
  960. switch(get_user_team(id)) {
  961. case TEAM_FURIEN: cs_set_user_team(id, CS_TEAM_CT)
  962. case TEAM_ANTIFURIEN: cs_set_user_team(id, CS_TEAM_T)
  963. }
  964. }
  965. }
  966.  
  967. ///////////////////////////////////////////////////////////////////////////////////////////////
  968.  
  969. public Player_PreThink(id) {
  970. if(is_user_connected(id)) {
  971. if(get_user_team(id) == TEAM_FURIEN) {
  972. if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1)
  973. set_pev(id, pev_gravity, FURIEN_GRAVITY)
  974.  
  975. if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) {
  976. set_pev(id, pev_maxspeed, FURIEN_SPEED)
  977. set_user_footsteps(id, 1)
  978. }
  979. }
  980. if(get_pcvar_num(cvar_aim_info)) {
  981. new Target, Body;
  982. get_user_aiming(id, Target, Body);
  983. if(is_user_alive(id) && is_user_connected(Target) && is_user_alive(Target)) {
  984. new TargetTeam, PlayerTeam, TargetName[32], Message[128], TargetHealth, TargetArmor, RED, GREEN, BLUE;
  985. TargetTeam = get_user_team(Target)
  986. PlayerTeam = get_user_team(id)
  987. get_user_name(Target, TargetName, 31)
  988. TargetHealth = get_user_health(Target)
  989. TargetArmor = get_user_armor(Target)
  990. if(PlayerTeam == TEAM_FURIEN && TargetTeam == TEAM_ANTIFURIEN) {
  991. formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor)
  992. RED = 20
  993. GREEN = 200
  994. BLUE = 50
  995. }
  996. else if(PlayerTeam == TEAM_FURIEN && TargetTeam == TEAM_FURIEN) {
  997. formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor)
  998. RED = 200
  999. GREEN = 20
  1000. BLUE = 20
  1001. }
  1002. else if(PlayerTeam == TEAM_ANTIFURIEN && TargetTeam == TEAM_ANTIFURIEN) {
  1003. formatex(Message, sizeof(Message)-1, "%s^nHP: %i | AP: %i", TargetName, TargetHealth, TargetArmor)
  1004. RED = 200
  1005. GREEN = 20
  1006. BLUE = 20
  1007. }
  1008. else if(PlayerTeam == TEAM_ANTIFURIEN && TargetTeam == TEAM_FURIEN)
  1009. return
  1010. set_hudmessage(RED, GREEN, BLUE, -1.0, -1.0, 0, 0.0, 0.1, 0.0, 0.0, -1);
  1011. show_hudmessage(id, "%s", Message)
  1012. }
  1013. }
  1014. }
  1015. }
  1016.  
  1017. public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) {
  1018. if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) {
  1019. if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1
  1020. || !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent
  1021. || get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) {
  1022. set_es(es, ES_RenderFx, kRenderFxNone);
  1023. set_es(es, ES_RenderMode, kRenderTransTexture);
  1024. set_es(es, ES_RenderAmt, 255);
  1025. }
  1026. else if(get_user_team(ent) == 1) {
  1027. set_es(es, ES_RenderFx, kRenderFxNone);
  1028. set_es(es, ES_RenderMode, kRenderTransTexture);
  1029. static Float:Origin[3]
  1030. pev(ent, pev_origin, Origin)
  1031.  
  1032. 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])
  1033. set_es(es, ES_RenderAmt, 0);
  1034. else
  1035. set_es(es, ES_RenderAmt, 255);
  1036. }
  1037. }
  1038. }
  1039.  
  1040. public FWD_ParachutePreThink(id) {
  1041. if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
  1042. new Float:FallSpeed = -80.0;
  1043. new Float:Frame;
  1044.  
  1045. new Button = pev(id, pev_button);
  1046. new OldButton = pev(id, pev_oldbuttons);
  1047. new Flags = pev(id, pev_flags);
  1048.  
  1049. if(ParaENT[id] > 0 &&(Flags & FL_ONGROUND)) {
  1050.  
  1051. if(pev(ParaENT[id],pev_sequence) != 2) {
  1052. set_pev(ParaENT[id], pev_sequence, 2);
  1053. set_pev(ParaENT[id], pev_gaitsequence, 1);
  1054. set_pev(ParaENT[id], pev_frame, 0.0);
  1055. set_pev(ParaENT[id], pev_fuser1, 0.0);
  1056. set_pev(ParaENT[id], pev_animtime, 0.0);
  1057. return;
  1058. }
  1059.  
  1060. pev(ParaENT[id],pev_fuser1, Frame);
  1061. Frame += 2.0;
  1062. set_pev(ParaENT[id],pev_fuser1,Frame);
  1063. set_pev(ParaENT[id],pev_frame,Frame);
  1064.  
  1065. if(Frame > 254.0) {
  1066. engfunc(EngFunc_RemoveEntity, ParaENT[id]);
  1067. ParaENT[id] = 0;
  1068. }
  1069. else {
  1070. engfunc(EngFunc_RemoveEntity, ParaENT[id]);
  1071. ParaENT[id] = 0;
  1072. }
  1073. return;
  1074. }
  1075.  
  1076. if(Button & IN_USE) {
  1077. new Float:Velocity[3];
  1078. pev(id, pev_velocity, Velocity);
  1079.  
  1080. if(Velocity[2] < 0.0) {
  1081. if(ParaENT[id] <= 0) {
  1082. ParaENT[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
  1083.  
  1084. if(ParaENT[id] > 0) {
  1085. set_pev(ParaENT[id],pev_classname, PARACHUTE_CLASS);
  1086. set_pev(ParaENT[id], pev_aiment, id);
  1087. set_pev(ParaENT[id], pev_owner, id);
  1088. set_pev(ParaENT[id], pev_movetype, MOVETYPE_FLY);
  1089. set_pev(ParaENT[id], pev_sequence, 0);
  1090. set_pev(ParaENT[id], pev_gaitsequence, 1);
  1091. set_pev(ParaENT[id], pev_frame, 0.0);
  1092. set_pev(ParaENT[id], pev_fuser1, 0.0);
  1093. }
  1094. }
  1095. if(ParaENT[id] > 0) {
  1096. set_pev(id, pev_sequence, 3);
  1097. set_pev(id, pev_gaitsequence, 1);
  1098. set_pev(id, pev_frame, 1.0);
  1099. set_pev(id, pev_framerate, 1.0);
  1100.  
  1101. Velocity[2] = (Velocity[2] + 40.0 < FallSpeed) ? Velocity[2] + 40.0 : FallSpeed;
  1102. set_pev(id, pev_velocity, Velocity);
  1103.  
  1104. if(pev(ParaENT[id],pev_sequence) == 0) {
  1105. pev(ParaENT[id],pev_fuser1, Frame);
  1106. Frame += 1.0;
  1107. set_pev(ParaENT[id],pev_fuser1,Frame);
  1108. set_pev(ParaENT[id],pev_frame,Frame);
  1109.  
  1110. if(Frame > 100.0) {
  1111. set_pev(ParaENT[id], pev_animtime, 0.0);
  1112. set_pev(ParaENT[id], pev_framerate, 0.4);
  1113. set_pev(ParaENT[id], pev_sequence, 1);
  1114. set_pev(ParaENT[id], pev_gaitsequence, 1);
  1115. set_pev(ParaENT[id], pev_frame, 0.0);
  1116. set_pev(ParaENT[id], pev_fuser1, 0.0);
  1117. }
  1118. }
  1119. }
  1120. }
  1121.  
  1122. else if(ParaENT[id] > 0) {
  1123. engfunc(EngFunc_RemoveEntity, ParaENT[id]);
  1124. ParaENT[id] = 0;
  1125. }
  1126. }
  1127.  
  1128. else if((OldButton & IN_USE) && ParaENT[id] > 0) {
  1129. engfunc(EngFunc_RemoveEntity, ParaENT[id]);
  1130. ParaENT[id] = 0;
  1131. }
  1132. }
  1133. }
  1134.  
  1135. public FWD_GameDescription() {
  1136. static GameName[32]
  1137. get_pcvar_string(cvar_gamedescription, GameName, 31)
  1138.  
  1139. forward_return(FMV_STRING, GameName)
  1140.  
  1141. return FMRES_SUPERCEDE
  1142. }
  1143.  
  1144. public TASK_CanPlant() {
  1145. CanPlant = true;
  1146. set_hudmessage(random(255), random(255), random(255), -1.0, -1.0, 1, 3.1, 3.0)
  1147. show_hudmessage(0, "Furienii pot planta bomba!")
  1148. }
  1149.  
  1150. public TASK_C4_CountDown() {
  1151. new Red, Green, Blue
  1152. if(C4_CountDownDelay > 10)
  1153. Red = 0, Green = 255, Blue = 0;
  1154. else if(C4_CountDownDelay > 5)
  1155. Red = 255, Green = 200, Blue = 0;
  1156. else if(C4_CountDownDelay <= 5)
  1157. Red = 255, Green = 0, Blue = 0;
  1158.  
  1159. if(C4_CountDownDelay) {
  1160. new Message[256];
  1161. formatex(Message,sizeof(Message)-1,"----------^n| C4: %d |^n----------", C4_CountDownDelay);
  1162.  
  1163. set_hudmessage(Red, Green, Blue, -1.0, 0.78, 0, 6.0, 1.0)
  1164. show_hudmessage(0, "%s", Message)
  1165. set_task(1.0, "TASK_C4_CountDown", TASKID_C4COUNTDOWN);
  1166. C4_CountDownDelay--;
  1167. }
  1168. else if(!C4_CountDownDelay)
  1169. C4_CountDownDelay = 0;
  1170. }
  1171.  
  1172. stock ColorChat(const id, const input[], any:...) {
  1173. new count = 1, players[32];
  1174. static msg[191];
  1175. vformat(msg, 190, input, 3);
  1176.  
  1177. replace_all(msg, 190, "!g", "^4");
  1178. replace_all(msg, 190, "!y", "^1");
  1179. replace_all(msg, 190, "!t", "^3");
  1180.  
  1181. if(id) players[0] = id;
  1182. else get_players(players, count, "ch"); {
  1183. for(new i = 0; i < count; i++) {
  1184. if(is_user_connected(players[i])) {
  1185. message_begin(MSG_ONE_UNRELIABLE, MSGID_SayText, _, players[i]);
  1186. write_byte(players[i]);
  1187. write_string(msg);
  1188. message_end();
  1189. }
  1190. }
  1191. }
  1192. }
  1193. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  1194. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1048\\ f0\\ fs16 \n\\ par }
  1195. */
  1196. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  1197. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  1198. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement