Advertisement
Guest User

Untitled

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