Advertisement
Guest User

Untitled

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