Advertisement
Filiq_

Untitled

Dec 9th, 2018
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 256.84 KB | None | 0 0
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include < amxmodx >
  4. #include < amxmisc>
  5. #include < nvault >
  6. #include < engine >
  7. #include < cstrike >
  8. #include < hamsandwich >
  9. #include < fakemeta >
  10. #include < fakemeta_util >
  11. #include < fun >
  12. #include < csx >
  13. #include < xs >
  14. #include < colorchat >
  15. #include < dhudmessage >
  16.  
  17. #define PLUGIN "Furien XP Mod"
  18. #define VERSION "0.0.2"
  19. #define AUTHOR "hadesownage"
  20.  
  21. #define is_ent_flare(%1) (pev(%1, pev_iuser4) == 1337) ? 1 : 0
  22.  
  23. static const ServerLicensedIp[ ] = "188.213.212.143";
  24.  
  25. new const szPrefix [ ] = "[Furien XP Mod]^3 -";
  26. new Level [ 33 ], eXP [ 33 ];
  27. new KillXp, HsXp, HeXp, KnifeXp;
  28. new g_Menu [ 33 ];
  29. new g_iCount[ 33 ];
  30. new g_trail;
  31. new amx_gamename;
  32. #define TE_SPRITETRAIL 15
  33. new g_damage;
  34. new g_damages;
  35.  
  36. new gFurienXP, Vault;
  37.  
  38. new g_MaxPlayers;
  39.  
  40. new g_FuriensWin = 0;
  41. new g_AntiFuriensWin = 0;
  42.  
  43. new gMsgScreenShake;
  44.  
  45. new g_FurienHealth;
  46. new g_AntiFurienHealth;
  47.  
  48. #define VIP_ACCESS ADMIN_LEVEL_H
  49.  
  50. new bool:UserHaveHpAndAp [ 33 ];
  51. new bool:UserHaveHeGrenade [ 33 ];
  52. new bool:UserHaveGodMode [ 33 ];
  53. new bool:UserHaveNoClip [ 33 ];
  54. new bool:UserHaveTeleport [ 33 ];
  55. new bool:UserHaveSuperKnife [ 33 ];
  56. new bool:UserHaveDualMp5 [ 33 ];
  57.  
  58. new bool:UserHasChoosed [ 33 ];
  59. new bool:g_CanUseHe [ 33 ];
  60.  
  61. new const buy_FurienHealth[] = "exhealth/zm_buyhealth.wav"
  62. new const buy_AntiFurienHealth[] = "exhealth/hm_buyhealth.wav"
  63.  
  64. static const COLOR[] = "^x04"; //green
  65. static const CONTACT[] = "/vip pentru detalii";
  66.  
  67. new maxplayers;
  68. new gmsgSayText;
  69. new g_ScoreAttrib;
  70.  
  71. //======NICK CHANGE-----
  72. new const g_reason[] = "Nu este permisa schimbarea nickului pe server !";
  73.  
  74. new const g_name[] = "name";
  75. //-------END NICK=====
  76.  
  77. //======CREDITS-----
  78. new PlayerCredits[10000];
  79. new SymbolsName;
  80. //-------END CREDITS=====
  81.  
  82. //-------POWERS======
  83.  
  84. //--| Menu/Power |--//
  85. new HasPower[33], bool:HasChose[33];
  86. //--| HE Grenade |--//
  87. new HE_Cooldown[33] = 0;
  88. //--| GodMode |--//
  89. new GodMode_Cooldown[33] = 0;
  90. new GodMode_DurationCooldown[33] = 0;
  91. //--| Drop Enemy Weapon |--//
  92. new DropSprite, DropSprite2;
  93. new Drop_Cooldown[33] = 0;
  94. new const DROP_HIT_SND[] = "Furien/DropWpn_HIT.wav";
  95. const WPN_NOT_DROP = ((1<<2)|(1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4));
  96. //--| Freeze |--//
  97. new Freeze_Cooldown[33] = 0;
  98. new FreezeSprite, FreezeSprite3;
  99. new Frozen[33];
  100. new Float:TempSpeed[33], Float:TempGravity[33];
  101. new const FreezeSprite2[] = { "models/glassgibs.mdl" };
  102. new const FROSTBREAK_SND[][] = { "Furien/FrostBreak.wav" };
  103. new const FROSTPLAYER_SND[][] = { "Furien/FrostPlayer.wav" };
  104. const BREAK_GLASS = 0x01;
  105. const UNIT_SECOND = (1<<12);
  106. const FFADE_IN = 0x0000;
  107. //--| Drag |--//
  108. new DRAG_MISS_SND[] = "Furien/DragMiss.wav";
  109. new DRAG_HIT_SND[] = "Furien/DragHit.wav";
  110. new Hooked[33], Unable2move[33], OvrDmg[33];
  111. new Float:LastHook[33];
  112. new bool: BindUse[33] = false, bool: Drag_I[33] = false;
  113. new Drag_Cooldown[33] = 0;
  114. new bool:Not_Cooldown[33];
  115. new DragSprite;
  116. //--| Teleport |--//
  117. new TeleportSprite, TeleportSprite2, TeleportSprite3;
  118. new Teleport_Cooldown[33];
  119. new const SOUND_BLINK[] = { "weapons/flashbang-1.wav" };
  120. const UNIT_SEC = 0x1000;
  121. const FFADE = 0x0000;
  122. //--| NoRecoil |--//
  123. new Float: cl_pushangle[33][3];
  124. const WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4);
  125. //--| Cvars |--//
  126. new CvarDropDistance,
  127. CvarDropCooldown, CvarFreezeDuration, CvarFreezeCooldown, CvarFreezeDistance, CvarDragSpeed, CvarDragCooldown,
  128. CvarDragDmg2Stop, CvarDragUnb2Move, CvarTeleportCooldown, CvarTeleportRange;
  129.  
  130. //-------END POWERS=====
  131.  
  132. //-------SALAMANDER=====
  133. new const fire_classname[] = "fire_salamander";
  134. new const fire_spr_name[] = "sprites/fire_salamander.spr";
  135.  
  136. new const v_model[] = "models/furien/v_salamander.mdl";
  137. new const p_model[] = "models/furien/p_salamander.mdl";
  138. new const w_model[] = "models/furien/w_salamander.mdl";
  139.  
  140. new const fire_sound[] = "weapons/flamegun-2.wav";
  141.  
  142. #define CSW_SALAMANDER CSW_M249
  143. #define PEV_ENT_TIME pev_fuser1
  144. #define TASK_FIRE 3123123
  145. #define TASK_RELOAD 2342342
  146. new g_had_salamander[33], bool:is_firing[33], bool:is_reloading[33], Float:g_last_fire[33],
  147. bool:can_fire[33], g_reload_ammo[33], g_ammo[33];
  148.  
  149. enum {
  150. IDLE_ANIM = 0,
  151. DRAW_ANIM = 4,
  152. RELOAD_ANIM = 3,
  153. SHOOT_ANIM = 1,
  154. SHOOT_END_ANIM = 2
  155. }
  156.  
  157. new g_salamander;
  158. new cvar_dmgrd_start, cvar_dmgrd_end, cvar_fire_delay, cvar_max_clip;
  159.  
  160. //-------END SALAMANDER=======
  161.  
  162. //---------FURIEN BONUS BOX======
  163.  
  164. new CvarFurienSpeed, CvarAntiFurienSpeed;
  165. new bool:HasSpeed[33], bool:HasTeleport[33], bool:LowSpeed [ 33 ];
  166. new const ClassName[] = "BonusBox"
  167. new Model[2][] = {
  168. "models/furien/cadout_new.mdl",
  169. "models/furien/cadouct.mdl"
  170. }
  171.  
  172. new Model_Yellow[2][] = {
  173. "models/furien/cadout_galben.mdl",
  174. "models/furien/cadouct_galben.mdl"
  175. }
  176.  
  177. const UNIT_SEC = 0x1000
  178. const FFADE = 0x0000
  179.  
  180. #define FFADE_IN 0x0000 // Just here so we don't pass 0 into the function
  181. #define FFADE_OUT 0x0001 // Fade out (not in)
  182. #define FFADE_MODULATE 0x0002 // Modulate (don't blend)
  183. #define FFADE_STAYOUT 0x0004 // ignores the duration, stays faded out until new ScreenFade message received
  184. enum {
  185. Red,
  186. Green,
  187. Blue
  188. };
  189.  
  190. //---------END FURIEN BONUS BOX======
  191.  
  192. //---------K1ASUS WEAPON ( SCORPION )======
  193.  
  194. #define ENG_NULLENT -1
  195. #define EV_INT_WEAPONKEY EV_INT_impulse
  196. #define k1ases_WEAPONKEY 890
  197. #define MAX_PLAYERS 32
  198. #define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
  199. #define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
  200.  
  201. const USE_STOPPED = 0
  202. const OFFSET_ACTIVE_ITEM = 373
  203. const OFFSET_WEAPONOWNER = 41
  204. const OFFSET_LINUX = 4
  205. const OFFSET_LINUX_WEAPONS = 4
  206.  
  207. #define WEAP_LINUX_XTRA_OFF 4
  208. #define m_fKnown 44
  209. #define m_flNextPrimaryAttack 46
  210. #define m_flTimeWeaponIdle 48
  211. #define m_iClip 51
  212. #define m_fInReload 54
  213. #define PLAYER_LINUX_XTRA_OFF 4
  214. #define m_flNextAttack 83
  215.  
  216. #define k1ases_RELOAD_TIME 2.5
  217.  
  218. new bool:k1ases_weapon [ 33 ];
  219.  
  220. new const Fire_Sounds[][] = { "weapons/k1ar-1.wav" }
  221. new const sprites_exp[] = "sprites/deimosexp.spr"
  222. new const explode_sound[] = "cso/deimos_skill_start.wav"
  223.  
  224. new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
  225. new k1ases_V_MODEL[64] = "models/furien/v_k1ases.mdl"
  226. new k1ases_P_MODEL[64] = "models/furien/p_k1ases.mdl"
  227. new k1ases_W_MODEL[64] = "models/furien/w_k1ases.mdl"
  228.  
  229. new cvar_dmg_k1ases, cvar_recoil_k1ases, cvar_clip_k1ases, cvar_k1ases_ammo , cvar_k1asesammo , cvar_k1ases_delay , cvar_k1ases_claw , cvar_rad
  230. new g_orig_event_k1ases, g_clip_ammo[33] , cvar_k1ases_fire
  231. new Float:cl_pushangle_k1asus[MAX_PLAYERS + 1][3], m_iBlood[2]
  232. new g_k1ases_TmpClip[33] , oldweap[33] , g_has_k1ases[33] , g_ammoclaw[33] , g_delay[33]
  233.  
  234. new sprites_exp_index
  235.  
  236. const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
  237. new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
  238. "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
  239. "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
  240. "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
  241. "weapon_ak47", "weapon_knife", "weapon_p90" }
  242.  
  243. //---------END K1ASUS WEAPON ( SCORPION )======
  244.  
  245. //---------QUAD BARREL======
  246.  
  247. #define m_pPlayer 41
  248. #define m_flNextPrimaryAttack 46
  249. #define m_flNextSecondaryAttack 47
  250. #define m_flTimeWeaponIdle 48
  251. #define m_iClip 51
  252. #define m_fInReload 54
  253. #define m_fInSpecialReload 55
  254.  
  255. #define XTRA_OFS_WEAPON 4
  256. #define XTRA_OFS_PLAYER 5
  257. #define m_flNextAttack 83
  258. #define m_rgAmmo_player_Slot0 376
  259.  
  260. new const qb_v_model[] = "models/furien/v_qbarrel.mdl"
  261. new const qb_p_model[] = "models/furien/p_qbarrel.mdl"
  262. new const qb_w_model[] = "models/furien/w_qbarrel.mdl"
  263.  
  264. new const qb_sound[5][] = {
  265. "weapons/qbarrel_clipin1.wav",
  266. "weapons/qbarrel_clipin2.wav",
  267. "weapons/qbarrel_clipout1.wav",
  268. "weapons/qbarrel_draw.wav",
  269. "weapons/qbarrel_shoot.wav"
  270. }
  271.  
  272. #define CSW_QB CSW_XM1014
  273. new g_had_qb[33], Float:g_last_fire_qb[33], Float:g_last_fire2[33], g_bloodspray, g_blood
  274. new cvar_default_clip, cvar_delayattack, cvar_reloadtime, cvar_randmg_start, cvar_randmg_end
  275. new g_quad_barrel
  276.  
  277. //---------END QUAD BARREL======
  278.  
  279. //---------DRAGON CANNON======
  280.  
  281. #define CSW_CANNON CSW_UMP45
  282. #define weapon_cannon "weapon_ump45"
  283.  
  284. #define DEFAULT_W_MODEL "models/w_ump45.mdl"
  285. #define WEAPON_SECRET_CODE 4965
  286. #define CANNONFIRE_CLASSNAME "cannon_round"
  287.  
  288. // Fire Start
  289. #define WEAPON_ATTACH_F 30.0
  290. #define WEAPON_ATTACH_R 10.0
  291. #define WEAPON_ATTACH_U -10.0
  292.  
  293. #define TASK_RESET_AMMO 5434
  294.  
  295. const pev_ammo = pev_iuser4
  296.  
  297. new const WeaponModel[3][] = {
  298. "models/furien/v_cannon.mdl",
  299. "models/furien/p_cannon.mdl",
  300. "models/furien/w_cannon.mdl"
  301. }
  302.  
  303. new const WeaponSound[2][] = {
  304. "weapons/cannon-1.wav",
  305. "weapons/cannon_draw.wav"
  306. }
  307.  
  308. new const WeaponResource[5][] = {
  309. "sprites/fire_cannon.spr",
  310. "sprites/weapon_cannon.txt",
  311. "sprites/640hud69.spr",
  312. "sprites/640hud2_cso.spr",
  313. "sprites/smokepuff.spr"
  314. }
  315.  
  316. enum {
  317. MODEL_V = 0,
  318. MODEL_P,
  319. MODEL_W
  320. }
  321.  
  322. enum {
  323. CANNON_ANIM_IDLE = 0,
  324. CANNON_ANIM_SHOOT1,
  325. CANNON_ANIM_SHOOT2,
  326. CANNON_ANIM_DRAW
  327. }
  328.  
  329. new g_had_cannon[33], g_old_weapon[33], g_cannon_ammo[33], g_got_firsttime[33], Float:g_lastshot[33]
  330. new g_cvar_defaultammo, g_cvar_reloadtime, g_cvar_firespeed, g_cvar_radiusdamage, g_cvar_damage
  331. new Float:g_temp_reloadtime, g_smokepuff_id
  332.  
  333. //---------END DRAGON CANNON======
  334.  
  335. //---------M79 WEAPON======
  336.  
  337. #define HUD_HIDE_CROSS (1<<6)
  338.  
  339. // Weapon/Grenade models
  340. new const m79_P_MODEL[] = "models/furien/p_m79.mdl"
  341. new const m79_V_MODEL[] = "models/furien/v_m79fix2.mdl"
  342. new const m79_W_MODEL[] = "models/furien/w_m79.mdl"
  343. new const m79_GRENADE_MODEL[] = "models/grenade.mdl"
  344.  
  345. // Fire sound
  346. new const m79_GRENADE_SHOOT[] = "weapons/m79_fire1.wav"
  347. new const m79_GRENADE_CLIPIN[] = "weapons/m79_clipin.wav"
  348. new const m79_GRENADE_CLIPON[] = "weapons/m79_clipon.wav"
  349. new const m79_GRENADE_CLIPOUT[] = "weapons/m79_clipout.wav"
  350. new const m79_GRENADE_DRAW[] = "weapons/m79_draw.wav"
  351.  
  352. // Sprites
  353. new const m79_GRENADE_TRAIL[] = "sprites/laserbeam.spr"
  354. new const m79_GRENADE_EXPLOSION[] = "sprites/m79_exp.spr"
  355. new const m79_GRENADE_SMOKE[] = "sprites/black_smoke3.spr"
  356.  
  357. // Cached sprite indexes
  358. new sTrail, sExplo, sSmoke
  359.  
  360. // Sprites
  361. new gmsgWeaponList
  362.  
  363. // Bodyparts and blood
  364. new mdl_gib_flesh, mdl_gib_head, mdl_gib_lung, mdl_gib_spine,
  365. blood_drop, blood_spray
  366.  
  367. // Item ID
  368. new m79
  369.  
  370. // Player variables
  371. new g_hasM79[33] // whether player has M79
  372. new g_FireM79[33] // player is shooting
  373. new g_canShoot[33] // player can shoot
  374. new Float:g_last_shot_time[33] // last shot time
  375. new grenade_count[33] // current grenade count
  376. new bool:draw_wpn[33] //выбираем пукалку
  377. new bool:hasOnHandM79[33],bool:canfire[33],
  378. cvar_granade_damage_radius,
  379. cvar_granade_max_damage
  380. // Message ID's
  381. new g_msgScreenShake,g_msgStatusText
  382. new gmsgDeathMsg, gmsgScoreInfo
  383.  
  384. // Customization(CHANGE HERE)
  385. #define LAUNCHER_COST 20
  386. new Float:delayshot = 3.0
  387. // Tasks
  388. #define TASK_HUDAMMO 1337
  389. #define TASK_FRSTSHT 1437
  390. #define ID_HUDAMMO (taskid - TASK_HUDAMMO)
  391. #define ID_SHT (taskid - TASK_FRSTSHT)
  392.  
  393. enum {
  394. anim_idle,
  395. anim_shot1,
  396. anim_shot2,
  397. anim_draw,
  398. }
  399.  
  400. //---------END M79 WEAPON======
  401.  
  402. new dual_mp5_v_model [ 66 ] = "models/furien/weapons/v_dualmp5.mdl";
  403. new dual_mp5_p_model [ 66 ] = "models/furien/weapons/p_dualmp5.mdl";
  404.  
  405. new infinity_knife_v_model [ 66 ] = "models/furien/knifes/v_infinity_knife1.mdl";
  406. new infinity_knife_p_model [ 66 ] = "models/furien/knifes/p_infinity_knife1.mdl";
  407.  
  408. new katana_knife_v_model [ 66 ] = "models/furien/knifes/v_katana.mdl";
  409. new katana_knife_p_model [ 66 ] = "models/furien/knifes/p_katana.mdl";
  410.  
  411. new double_katana_v_knife_model [ 66 ] = "models/furien/knifes/v_double_katana.mdl";
  412. new double_katana_p_knife_model [ 66 ] = "models/furien/knifes/p_double_katana.mdl";
  413.  
  414. new super_knife_v_model [ 66 ] = "models/furien/knifes/v_natad.mdl";
  415. new super_knife_p_model [ 66 ] = "models/furien/knifes/p_natad.mdl";
  416.  
  417. new axe_knife_v_model [ 66 ] = "models/furien/knifes/v_vipaxe.mdl";
  418. new axe_knife_p_model [ 66 ] = "models/furien/knifes/p_vipaxe.mdl";
  419.  
  420. new trainer_v_model [ 66 ] = "models/furien/knifes/v_combatknife.mdl";
  421. new trainer_p_model [ 66 ] = "models/furien/knifes/p_combatknife.mdl";
  422.  
  423. new ignes_knife_model [ 66 ] = "models/furien/knifes/v_ignes.mdl";
  424. new elf_knife_model [ 66 ] = "models/furien/knifes/v_elf.mdl";
  425.  
  426. new super_knife_shop_v_model [ 66 ] = "models/furien/knifes/v_superknife_shop.mdl";
  427. // new super_knife_shop_p_model [ 66 ] = "models/furien/knifes/p_superknife_shop.mdl";
  428.  
  429. new super_knife_shop_v_model2 [ 66 ] = "models/furien/knifes/v_superknife_shop2.mdl";
  430. new super_knife_shop_p_model2 [ 66 ] = "models/furien/knifes/p_superknife_shop2.mdl";
  431.  
  432. new thompson_v_model [ 66 ] = "models/furien/weapons/v_thompson.mdl";
  433. new thompson_p_model [ 66 ] = "models/furien/weapons/p_thompson.mdl";
  434.  
  435. new uspx_v_model [ 66 ] = "models/furien/weapons/v_uspx.mdl";
  436. new uspx_p_model [ 66 ] = "models/furien/weapons/p_uspx.mdl";
  437.  
  438. new hunter_v_model [ 66 ] = "models/furien/weapons/v_f2000.mdl";
  439. new hunter_p_model [ 66 ] = "models/furien/weapons/p_f2000.mdl";
  440.  
  441. new mage_v_model [ 66 ] = "models/furien/weapons/v_fnc.mdl";
  442. new mage_p_model [ 66 ] = "models/furien/weapons/p_fnc.mdl";
  443.  
  444. new rogue_v_model [ 66 ] = "models/furien/weapons/v_svdex.mdl";
  445. new rogue_p_model [ 66 ] = "models/furien/weapons/p_svdex.mdl";
  446.  
  447. new shaman_v_model [ 66 ] = "models/furien/weapons/v_tar21.mdl";
  448. new shaman_p_model [ 66 ] = "models/furien/weapons/p_tar21.mdl";
  449.  
  450. new warrior_v_model [ 66 ] = "models/furien/weapons/v_kriss.mdl";
  451. new warrior_p_model [ 66 ] = "models/furien/weapons/p_kriss.mdl";
  452.  
  453. new deklowaz_v_model [ 66 ] = "models/furien/weapons/v_dualkriss.mdl";
  454. new deklowaz_p_model [ 66 ] = "models/furien/weapons/p_dualkriss.mdl";
  455.  
  456. new flare_v_model [ 66 ] = "models/furien/weapons/v_flare.mdl";
  457. new flare_w_model [ 66 ] = "models/furien/weapons/w_flare.mdl";
  458.  
  459. new strike_grenade_v_model [ 66 ] = "models/furien/weapons/v_hegrenade.mdl";
  460. new strike_grenade_p_model [ 66 ] = "models/furien/weapons/p_hegrenade.mdl";
  461.  
  462. new bool:dual_mp5 [ 33 ];
  463. new bool:salamander [ 33 ];
  464. new bool:SalamanderLimit [ 33 ];
  465. new bool:katana_knife [ 33 ];
  466. new bool:double_katana_knife [ 33 ];
  467. new bool:super_knife [ 33 ];
  468. new bool:infinity_knife [ 33 ];
  469. new bool:ignes_knife [ 33 ];
  470. new bool:elf_knife [ 33 ];
  471. new bool:trainer [ 33 ];
  472. new bool:vip_axe_knife [ 33 ];
  473. new bool:hunter [ 33 ];
  474. new bool:mage [ 33 ];
  475. new bool:rogue [ 33 ];
  476. new bool:shaman [ 33 ];
  477. new bool:warrior [ 33 ];
  478. new bool:deklowaz [ 33 ];
  479. new bool:thompson [ 33 ];
  480. new bool:uspx [ 33 ];
  481. new bool:flare [ 33 ];
  482. new bool:druid [ 33 ];
  483. new bool:strike_grenade [ 33 ];
  484. new bool:strike_grenade2 [ 33 ];
  485. new bool:strike_grenade3 [ 33 ];
  486. new bool:super_knife_shop [ 33 ];
  487. new bool:super_knife_shop2 [ 33 ];
  488. new bool:UserHaveQuad [ 33 ];
  489. new bool:UserHaveDragon [ 33 ];
  490. new bool:UserHaveM79 [ 33 ];
  491.  
  492. new const Levels [ 30 ] = {
  493.  
  494. 250, //1
  495. 500, //2
  496. 1000, //3
  497. 1500, //4
  498. 2000, //5
  499. 2500, //6
  500. 3000, //7
  501. 3500, //8
  502. 4000, //9
  503. 4500, //10
  504. 5000, //11
  505. 6000, //12
  506. 7000, //13
  507. 8000, //14
  508. 9000, //15
  509. 10000, //16
  510. 11000, //17
  511. 12000, //18
  512. 13000, //19
  513. 14000, //20
  514. 15000, //21
  515. 16000, //22
  516. 18000, //23
  517. 20000, //24
  518. 22000, //25
  519. 24000, //26
  520. 26000, //27
  521. 28000, //28
  522. 29000, //29
  523. 30000 //30
  524. };
  525.  
  526. new const Prefix [ 30 +2 ] [ ] = {
  527.  
  528. "0",
  529. "1",
  530. "2",
  531. "3",
  532. "4",
  533. "5",
  534. "6",
  535. "7",
  536. "8",
  537. "9",
  538. "10",
  539. "11",
  540. "12",
  541. "13",
  542. "14",
  543. "15",
  544. "16",
  545. "17",
  546. "18",
  547. "19",
  548. "20",
  549. "21",
  550. "22",
  551. "23",
  552. "24",
  553. "25",
  554. "26",
  555. "27",
  556. "28",
  557. "29",
  558. "30",
  559. ""
  560. };
  561.  
  562. public plugin_init ( ) {
  563.  
  564. new szIp[ 25 ];
  565. get_user_ip( 0, szIp, sizeof ( szIp ) -1, 1 );
  566. if( equal( szIp, ServerLicensedIp ) )
  567. {
  568. new szPluginName[ 32 ];
  569. formatex( szPluginName, sizeof( szPluginName ) -1, "[IP Licentiat] %s", PLUGIN );
  570.  
  571. register_plugin ( szPluginName, VERSION, "hadesownage" );
  572.  
  573. register_clcmd ( "say /xp", "cmdShowXp", -1 );
  574. register_clcmd ( "say /savexp", "cmdSaveXp", -1 );
  575. register_clcmd ( "say /level", "cmdShowLevel" );
  576. register_clcmd ( "say /levele", "cmdShowLevels", -1 );
  577. register_clcmd ( "say /topxp", "cmdXpTop15", -1 );
  578. register_clcmd ( "say /clearxp", "cmdClearXp", -1 );
  579. register_clcmd ( "say /xpmenu", "cmdXpMenu", -1 );
  580. register_clcmd ( "say /vipweapons", "cmdVipWeaponsMenu", -1 );
  581. register_clcmd ( "say /class", "cmdClassMenu", -1 );
  582. register_clcmd ( "say class", "cmdClassMenu", -1 );
  583. register_clcmd ( "say /refresh", "cmdRefreshXP", -1 );
  584. register_clcmd ( "say /shop", "cmdShop", -1 );
  585. register_clcmd ( "say shop", "cmdShop", -1 );
  586. register_clcmd ( "shop", "cmdShop", -1 );
  587. register_clcmd ( "say /help", "cmdHelp", -1 );
  588. register_clcmd ( "say /ajutor", "cmdHelp", -1 );
  589. register_clcmd ( "say /detalii", "cmdHelp", -1 );
  590. register_clcmd ( "say /despre", "cmdHelp", -1 );
  591. register_clcmd ( "say /vip", "cmdShowVipDetails", -1 );
  592. register_clcmd ( "say /depozit","Depozit", -1 );
  593. register_clcmd ( "say_team /depozit","Depozit", -1 );
  594. register_clcmd ( "say /retrage","Retrage", -1 );
  595. register_clcmd ( "say_team /retrage","Retrage", -1 );
  596. register_clcmd ( "say /credits","Show_Credits", -1 );
  597. register_clcmd ( "say /credite","Show_Credits", -1 );
  598. register_clcmd ( "say_team /credits","Show_Credits", -1 );
  599. register_clcmd ( "say_team /credite","Show_Credits", -1 );
  600. register_clcmd ( "+drag","DragStart" );
  601. register_clcmd ( "-drag","DragEnd" );
  602. register_clcmd ( "power", "Power" );
  603. register_clcmd ( "power2", "CmdTeleport" );
  604. register_clcmd ( "say /furienvip", "cmdCheckVIP", -1 );
  605. register_clcmd ( "say_team /furienvip", "cmdCheckVIP", -1 );
  606. register_clcmd ( "vippower", "VIPpower", VIP_ACCESS );
  607.  
  608. register_concmd ( "amx_givexp", "cmdGiveXp", ADMIN_IMMUNITY, "<target / all> <amount>" );
  609. register_concmd ( "amx_setxp", "cmdSetXp", ADMIN_IMMUNITY, "<target> <amount>" );
  610. register_concmd ( "amx_give_credits", "Give_Credits", ADMIN_IMMUNITY, "<target / ct / t / all> <amount>" );
  611. register_concmd ( "amx_reset_credits", "Reset_Credits", ADMIN_IMMUNITY, "<target / ct / t / all>" );
  612.  
  613. register_event ( "DeathMsg", "eDeath", "a" );
  614. register_event ( "DeathMsg", "Death", "a" );
  615. register_event ( "CurWeapon", "AntiFurienCurrentWeapon", "be", "1=1" );
  616. register_event ( "CurWeapon", "FurienCurrentWeapon", "be", "1=1" );
  617. register_event ( "HLTV", "GetRandomPlayer", "a", "1=0", "2=0" );
  618. //register_event ( "TextMsg", "Round_Restart", "a", "2&#Game_C", "2&#Game_w", "2&#Game_will_restart_in" );
  619.  
  620. register_forward ( FM_ClientUserInfoChanged, "fwClientUserInfoChanged" );
  621. register_forward ( FM_PlayerPreThink, "ShowSalamanderIcon" );
  622. register_forward ( FM_SetModel, "fwd_setmodel" );
  623. register_forward ( FM_Think, "fwd_think" );
  624. register_forward ( FM_PlayerPreThink, "ForcePlayerSpeed" );
  625. register_forward ( FM_CmdStart, "CmdStart" );
  626. register_forward ( FM_Touch, "Touch" );
  627. register_forward ( FM_Touch, "Touch_Yellow" );
  628. register_forward ( FM_GetGameDescription, "GameDesc" );
  629.  
  630. register_logevent ( "round_end", 2, "1=Round_End" );
  631. register_logevent ( "round_start", 2, "1=Round_Start" );
  632.  
  633. RegisterHam ( Ham_Spawn, "player", "cmdClassMenu", 1 );
  634. RegisterHam ( Ham_Spawn, "player", "RefreshWeapons", 1 );
  635. RegisterHam ( Ham_TakeDamage, "player", "FurienAndAntiFurienDamage" );
  636. RegisterHam ( Ham_Killed, "player", "ham_player_kill" );
  637. RegisterHam ( Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "ham_PrimaryAttack_He" );
  638.  
  639. KillXp = register_cvar ( "xm_xp_pr_kill", "25" );
  640. HsXp = register_cvar ( "xm_xp_pr_hs", "55" );
  641. HeXp = register_cvar ( "xm_xp_pr_nade", "80" );
  642. KnifeXp = register_cvar ( "xm_xp_pr_knife", "75" );
  643.  
  644. gFurienXP = nvault_open ( "FurienXPMod" );
  645.  
  646. g_MaxPlayers = get_maxplayers ( );
  647. g_ScoreAttrib = get_user_msgid("ScoreAttrib");
  648.  
  649. maxplayers = get_maxplayers()
  650. gmsgSayText = get_user_msgid("SayText")
  651. register_clcmd("say", "handle_say")
  652. register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
  653.  
  654. SymbolsName = register_cvar ( "fr_name_symbols", "~`" ); //| Symbols Name Restricted |//
  655.  
  656. CvarFurienSpeed = register_cvar("amx_bonusbox_furien_speed", "1000");
  657. CvarAntiFurienSpeed = register_cvar("amx_bonusbox_anitfurien_speed", "750");
  658.  
  659. gMsgScreenShake = get_user_msgid("ScreenShake");
  660.  
  661. amx_gamename = register_cvar( "amx_gamename", "XP Mod by Hades" );
  662.  
  663. set_task ( 30.0, "GiveBonus", 38427236, _, _, "b" );
  664. set_task( 1.0, "ShowHud", _, _, _, "b" );
  665. set_task( 120.0, "ShowMessages", _, _, _, "b" );
  666. //set_task( 10.0, "UpdateHudScore", _, _, _, "b" );
  667. //set_task( 60.0, "CheckTime", _, _, _, "b", 0 );
  668.  
  669. // POWERS ------------------------------------
  670. register_event("DeathMsg", "Death", "a");
  671. RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
  672. register_forward(FM_PlayerPreThink, "PlayerPreThink");
  673.  
  674. new weapon_name[24];
  675. for (new i = 1; i <= 30; i++) {
  676. if (!(WEAPONS_BITSUM & 1 << i) && get_weaponname(i, weapon_name, 23)) {
  677. RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "Weapon_PrimaryAttack_Pre");
  678. RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "Weapon_PrimaryAttack_Post", 1);
  679. }
  680. }
  681.  
  682. CvarDropDistance = register_cvar ("vip_drop_distance", "5000"); // Distanta maxima la care poate ajunge puterea
  683. CvarDropCooldown = register_cvar ("vip_drop_cooldown" , "30.0"); // Drop Enemy WPN Cooldown
  684. CvarFreezeDuration = register_cvar("vip_freeze_duration", "3.0"); // Freeze Duration
  685. CvarFreezeCooldown = register_cvar("vip_freeze_cooldown", "30.0"); // Freeze Cooldown
  686. CvarFreezeDistance = register_cvar ("vip_freeze_distance", "5000"); // Distanta maxima la care poate ajunge puterea
  687. CvarDragSpeed = register_cvar("vip_drag_speed", "500"); // Drag Speed
  688. CvarDragCooldown = register_cvar("vip_drag_cooldown", "15.0"); // Drag Cooldown
  689. CvarDragDmg2Stop = register_cvar("vip_drag_dmg2stop", "50"); // Drag Damage to stop
  690. CvarDragUnb2Move = register_cvar("vip_drag_unable_move", "1"); // Drag Unable to move
  691. CvarTeleportCooldown = register_cvar("vip_teleport_cooldown", "20.0"); // Teleport Cooldown
  692. CvarTeleportRange = register_cvar("vip_teleport_range", "12345"); // Teleport Range
  693. // POWERS ------------------------------------
  694.  
  695. // SALAMANDER ------------------------------------
  696.  
  697. register_event("CurWeapon", "event_curweapon", "be", "1=1");
  698. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1);
  699. RegisterHam(Ham_Spawn, "player", "fw_spawn", 1);
  700. RegisterHam(Ham_Weapon_Reload, "weapon_m249", "fw_weapon_reload", 1);
  701. RegisterHam(Ham_Item_Deploy, "weapon_m249", "fw_weapon_deploy", 1);
  702. RegisterHam(Ham_Item_PostFrame, "weapon_m249", "fw_item_postframe", 1);
  703. RegisterHam(Ham_Item_AddToPlayer, "weapon_m249", "fw_item_addtoplayer", 1);
  704. register_forward(FM_CmdStart, "fw_cmdstart");
  705. register_touch(fire_classname, "*", "fw_touch");
  706. register_think(fire_classname, "fw_think");
  707. register_forward(FM_SetModel, "fw_SetModel");
  708.  
  709. register_clcmd("lastinv", "check_lastinv");
  710.  
  711. cvar_dmgrd_start = register_cvar("zp_salamander_dmgrandom_start", "65.0");
  712. cvar_dmgrd_end = register_cvar("zp_salamander_dmgrandom_end", "90.0");
  713. cvar_fire_delay = register_cvar("zp_salamander_fire_delay", "0.1");
  714. cvar_max_clip = register_cvar("zp_salamander_max_clip", "100");
  715.  
  716. // SALAMANDER ------------------------------------
  717.  
  718. // K1ASUS ----------------------------------------------
  719. register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
  720. register_event("CurWeapon","CurrentWeapon","be","1=1")
  721. RegisterHam(Ham_Item_AddToPlayer, "weapon_mp5navy", "fw_k1ases_AddToPlayer")
  722. RegisterHam(Ham_Use, "func_tank", "fw_UseStationary_Post", 1)
  723. RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary_Post", 1)
  724. RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary_Post", 1)
  725. RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary_Post", 1)
  726. for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
  727. if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
  728. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mp5navy", "fw_k1ases_PrimaryAttack")
  729. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mp5navy", "fw_k1ases_PrimaryAttack_Post", 1)
  730. RegisterHam(Ham_Item_PostFrame, "weapon_mp5navy", "k1ases__ItemPostFrame");
  731. RegisterHam(Ham_Weapon_Reload, "weapon_mp5navy", "k1ases__Reload");
  732. RegisterHam(Ham_Weapon_Reload, "weapon_mp5navy", "k1ases__Reload_Post", 1);
  733. RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
  734. register_forward(FM_SetModel, "fw_SetModel_k1asus")
  735. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post_k1asus", 1)
  736. register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
  737. register_forward(FM_CmdStart, "fw_CmdStart")
  738.  
  739. RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack", 1)
  740. RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack", 1)
  741. RegisterHam(Ham_TraceAttack, "func_wall", "fw_TraceAttack", 1)
  742. RegisterHam(Ham_TraceAttack, "func_door", "fw_TraceAttack", 1)
  743. RegisterHam(Ham_TraceAttack, "func_door_rotating", "fw_TraceAttack", 1)
  744. RegisterHam(Ham_TraceAttack, "func_plat", "fw_TraceAttack", 1)
  745. RegisterHam(Ham_TraceAttack, "func_rotating", "fw_TraceAttack", 1)
  746.  
  747. cvar_dmg_k1ases = register_cvar("zp_k1ases_dmg", "1.5")
  748. cvar_recoil_k1ases = register_cvar("zp_k1ases_recoil", "0.5")
  749. cvar_clip_k1ases = register_cvar("zp_k1ases_clip", "30")
  750. cvar_k1ases_ammo = register_cvar("zp_k1ases_ammo", "50")
  751. cvar_k1asesammo = register_cvar("zp_k1ases_clawammo", "3")
  752. cvar_k1ases_delay = register_cvar("zp_k1ases_delay", "5")
  753. cvar_k1ases_claw = register_cvar("zp_k1ases_clawdmg", "500")
  754. cvar_rad = register_cvar("zp_k1ases_clawrad", "100.0")
  755. cvar_k1ases_fire = register_cvar("zp_k1ases_speedfire", "0.4")
  756.  
  757. // K1ASUS ----------------------------------------------
  758.  
  759. // QUAD BARREL ----------------------------------------------
  760.  
  761. register_forward(FM_CmdStart, "fm_cmdstart")
  762. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post_qb", 1)
  763. register_forward(FM_SetModel, "fw_SetModel_qb")
  764.  
  765. RegisterHam(Ham_TakeDamage, "player", "fw_takedmg")
  766. RegisterHam(Ham_TraceAttack, "worldspawn", "TraceAttack", 1)
  767. RegisterHam(Ham_TraceAttack, "player", "TraceAttack", 1)
  768.  
  769. RegisterHam(Ham_Weapon_Reload, "weapon_xm1014", "ham_reload", 1)
  770. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_xm1014", "ham_priattack", 1)
  771. RegisterHam(Ham_Item_PostFrame, "weapon_xm1014", "ham_postframe")
  772. RegisterHam(Ham_Item_AddToPlayer, "weapon_xm1014", "fw_item_addtoplayer_qb", 1)
  773.  
  774. register_clcmd("lastinv", "check_draw_weapon")
  775. register_clcmd("slot1", "check_draw_weapon")
  776.  
  777. cvar_default_clip = register_cvar("zp_qbarrel_default_clip", "4")
  778. cvar_delayattack = register_cvar("zp_qbarrel_delay_attack", "0.35")
  779. cvar_reloadtime = register_cvar("zp_qbarrel_reload_time", "3.0")
  780.  
  781. cvar_randmg_start = register_cvar("zp_qbarrel_randomdmg_start", "400.0")
  782. cvar_randmg_end = register_cvar("zp_qbarrel_randomdmg_end", "600.0")
  783.  
  784. register_event("CurWeapon", "event_curweapon_quad", "be", "1=1")
  785.  
  786. // QUAD BARREL ----------------------------------------------
  787.  
  788. // DRAGON CANNON ----------------------------------------------
  789.  
  790. register_event("CurWeapon", "event_CurWeapon_dragon", "be", "1=1")
  791.  
  792. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post_dc", 1)
  793. register_forward(FM_CmdStart, "fw_CmdStart_dc")
  794. register_forward(FM_SetModel, "fw_SetModel_dc")
  795.  
  796. register_think(CANNONFIRE_CLASSNAME, "fw_Cannon_Think")
  797. register_touch(CANNONFIRE_CLASSNAME, "*", "fw_Cannon_Touch")
  798.  
  799. RegisterHam(Ham_Spawn, "player", "fw_Spawn_Post", 1)
  800. RegisterHam(Ham_Item_AddToPlayer, weapon_cannon, "fw_AddToPlayer_Post", 1)
  801.  
  802. g_cvar_defaultammo = register_cvar("cannon_default_ammo", "5")
  803. g_cvar_reloadtime = register_cvar("cannon_reload_time", "4.0")
  804. g_cvar_firespeed = register_cvar("cannon_fire_speed", "200.0")
  805. g_cvar_radiusdamage = register_cvar("cannon_radius_damage", "200.0")
  806. g_cvar_damage = register_cvar("cannon_damage", "700.0")
  807.  
  808. register_clcmd("amx_get_dragoncannon", "get_dragoncannon", ADMIN_RCON)
  809. register_clcmd("weapon_cannon", "hook_weapon")
  810.  
  811. // DRAGON CANNON ----------------------------------------------
  812.  
  813. // M79 WEAPON ----------------------------------------------
  814.  
  815. // Register new extra item
  816. cvar_granade_damage_radius = register_cvar("granade_damage_radius","400",FCVAR_UNLOGGED)
  817. cvar_granade_max_damage = register_cvar("granade_max_damage","700",FCVAR_UNLOGGED)
  818.  
  819. // Events
  820. register_event("CurWeapon", "Event_CurrentWeapon_m79", "be", "1=1")
  821. register_logevent("event_start_m79", 2, "1=Round_Start")
  822.  
  823. // Forwards
  824. RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_m79")
  825. register_forward(FM_CmdStart, "fw_CmdStart_m79")
  826. register_forward(FM_PlayerPostThink, "fw_PlayerPostThink_m79")
  827. register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post_m79", 1)
  828. register_clcmd("drop","dropcmd")
  829. // Messages
  830. g_msgScreenShake = get_user_msgid("ScreenShake")
  831. g_msgStatusText = get_user_msgid("StatusText")
  832. gmsgDeathMsg = get_user_msgid("DeathMsg")
  833. gmsgScoreInfo = get_user_msgid("ScoreInfo")
  834. // Sprites
  835. RegisterHam( Ham_Item_AddToPlayer, "weapon_p228", "fw_AddToPlayer_m79" );
  836. gmsgWeaponList = get_user_msgid("WeaponList")
  837.  
  838. // M79 WEAPON ----------------------------------------------
  839.  
  840.  
  841.  
  842. server_print( "[%s] Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN );
  843. server_print( "[%s] Pentru mai multe detalii y/m: acs.jocker@yahoo.com !", PLUGIN );
  844. server_print( "[%s] Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN, szIp, ServerLicensedIp );
  845. set_task( 0.1, "SqlInit" )
  846. }
  847. else
  848. {
  849. new szPluginName[ 32 ];
  850. formatex( szPluginName, sizeof( szPluginName ) -1, "[IP Nelicentiat] %s", PLUGIN );
  851. register_plugin( szPluginName, VERSION, "hadesownage" );
  852. server_print( "[%s] Nu detii o licenta valabila ! Plugin-ul nu va functiona corespunzator !", PLUGIN );
  853. server_print( "[%s] Pentru mai multe detalii y/m: acs.jocker@yahoo.com !", PLUGIN );
  854. server_print( "[%s] Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN, szIp, ServerLicensedIp );
  855. pause( "ade" );
  856. }
  857. }
  858.  
  859.  
  860.  
  861. public plugin_end( )
  862. nvault_close ( gFurienXP );
  863.  
  864. stock fm_set_rendering2(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
  865. {
  866. static Float:color[3]; color[2] = float(b), color[0] = float(r), color[1] = float(g);
  867.  
  868. set_pev(entity, pev_renderfx, fx);
  869. set_pev(entity, pev_rendercolor, color);
  870. set_pev(entity, pev_rendermode, render);
  871. set_pev(entity, pev_renderamt, float(amount));
  872.  
  873. return true;
  874. }
  875.  
  876. stock set_user_scoreattrib(id,
  877. attrib = 0)
  878. {
  879. message_begin(MSG_BROADCAST, g_ScoreAttrib, _, 0);
  880. write_byte(id);
  881. write_byte(attrib);
  882. message_end( );
  883. }
  884.  
  885. stock Drop(id) {
  886. new wpn, wpnname[32];
  887. wpn = get_user_weapon(id);
  888. if(!(WPN_NOT_DROP & (1<<wpn)) && get_weaponname(wpn, wpnname, charsmax(wpnname))) {
  889. engclient_cmd(id, "drop", wpnname);
  890. }
  891. }
  892.  
  893. stock set_weapon_anim(id, anim)
  894. {
  895. set_pev(id, pev_weaponanim, anim)
  896.  
  897. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id)
  898. write_byte(anim)
  899. write_byte(pev(id, pev_body))
  900. message_end()
  901. }
  902.  
  903. stock drop_weapons(id, dropwhat)
  904. {
  905. static weapons[32], num, i, weaponid
  906. num = 0
  907. get_user_weapons(id, weapons, num)
  908.  
  909. const PRIMARY_WEAPONS_BIT_SUM2 = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
  910.  
  911. for (i = 0; i < num; i++)
  912. {
  913. weaponid = weapons[i]
  914.  
  915. if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM2))
  916. {
  917. static wname[32]
  918. get_weaponname(weaponid, wname, sizeof wname - 1)
  919. engclient_cmd(id, "drop", wname)
  920. }
  921. }
  922. }
  923.  
  924. stock get_position(id,Float:forw, Float:right, Float:up, Float:vStart[])
  925. {
  926. new Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
  927.  
  928. pev(id, pev_origin, vOrigin)
  929. pev(id, pev_view_ofs,vUp) //for player
  930. xs_vec_add(vOrigin,vUp,vOrigin)
  931. pev(id, pev_v_angle, vAngle) // if normal entity ,use pev_angles
  932.  
  933. angle_vector(vAngle,ANGLEVECTOR_FORWARD,vForward) //or use EngFunc_AngleVectors
  934. angle_vector(vAngle,ANGLEVECTOR_RIGHT,vRight)
  935. angle_vector(vAngle,ANGLEVECTOR_UP,vUp)
  936.  
  937. vStart[0] = vOrigin[0] + vForward[0] * forw + vRight[0] * right + vUp[0] * up
  938. vStart[1] = vOrigin[1] + vForward[1] * forw + vRight[1] * right + vUp[1] * up
  939. vStart[2] = vOrigin[2] + vForward[2] * forw + vRight[2] * right + vUp[2] * up
  940. }
  941.  
  942. stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3])
  943. {
  944. new_velocity[0] = origin2[0] - origin1[0]
  945. new_velocity[1] = origin2[1] - origin1[1]
  946. new_velocity[2] = origin2[2] - origin1[2]
  947. new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
  948. new_velocity[0] *= num
  949. new_velocity[1] *= num
  950. new_velocity[2] *= num
  951.  
  952. return 1;
  953. }
  954.  
  955. stock is_player_stuck(id, Float:originF[3]) {
  956. engfunc(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0);
  957.  
  958. if (get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
  959. return true;
  960.  
  961. return false;
  962. }
  963.  
  964. stock tele_effect(const Float:torigin[3]) {
  965. new origin[3];
  966. origin[0] = floatround(torigin[0]);
  967. origin[1] = floatround(torigin[1]);
  968. origin[2] = floatround(torigin[2]);
  969.  
  970. message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
  971. write_byte(TE_BEAMCYLINDER);
  972. write_coord(origin[0]);
  973. write_coord(origin[1]);
  974. write_coord(origin[2]+10);
  975. write_coord(origin[0]);
  976. write_coord(origin[1]);
  977. write_coord(origin[2]+60);
  978. write_short(TeleportSprite);
  979. write_byte(0);
  980. write_byte(0);
  981. write_byte(3);
  982. write_byte(60);
  983. write_byte(0);
  984. write_byte(255);
  985. write_byte(255);
  986. write_byte(255);
  987. write_byte(255);
  988. write_byte(0);
  989. message_end();
  990. }
  991.  
  992. stock tele_effect2(const Float:torigin[3]) {
  993. new origin[3];
  994. origin[0] = floatround(torigin[0]);
  995. origin[1] = floatround(torigin[1]);
  996. origin[2] = floatround(torigin[2]);
  997.  
  998. message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
  999. write_byte(TE_BEAMCYLINDER);
  1000. write_coord(origin[0]);
  1001. write_coord(origin[1]);
  1002. write_coord(origin[2]+10);
  1003. write_coord(origin[0]);
  1004. write_coord(origin[1]);
  1005. write_coord(origin[2]+60);
  1006. write_short(TeleportSprite);
  1007. write_byte(0);
  1008. write_byte(0);
  1009. write_byte(3);
  1010. write_byte(60);
  1011. write_byte(0);
  1012. write_byte(255);
  1013. write_byte(255);
  1014. write_byte(255);
  1015. write_byte(255);
  1016. write_byte(0);
  1017. message_end();
  1018.  
  1019. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  1020. write_byte(TE_SPRITETRAIL);
  1021. write_coord(origin[0]);
  1022. write_coord(origin[1]);
  1023. write_coord(origin[2]+40);
  1024. write_coord(origin[0]);
  1025. write_coord(origin[1]);
  1026. write_coord(origin[2]);
  1027. write_short(TeleportSprite2);
  1028. write_byte(30);
  1029. write_byte(10);
  1030. write_byte(1);
  1031. write_byte(50);
  1032. write_byte(10);
  1033. message_end();
  1034. }
  1035.  
  1036. stock UTIL_CreateBeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
  1037. {
  1038. message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
  1039. write_byte( TE_BEAMCYLINDER );
  1040. write_coord( origin[ 0 ] );
  1041. write_coord( origin[ 1 ] );
  1042. write_coord( origin[ 2 ] );
  1043. write_coord( origin[ 0 ] );
  1044. write_coord( origin[ 1 ] );
  1045. write_coord( origin[ 2 ] + addrad );
  1046. write_short( sprite );
  1047. write_byte( startfrate );
  1048. write_byte( framerate );
  1049. write_byte(life );
  1050. write_byte( width );
  1051. write_byte( amplitude );
  1052. write_byte( red );
  1053. write_byte( green );
  1054. write_byte( blue );
  1055. write_byte( brightness );
  1056. write_byte( speed );
  1057. message_end();
  1058. }
  1059.  
  1060. stock Create_TE_SPRITETRAIL3(start[3], end[3], iSprite, count, life, scale, velocity, random ){
  1061.  
  1062. message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
  1063. write_byte( TE_SPRITETRAIL )
  1064. write_coord( start[0] ) // start position (X)
  1065. write_coord( start[1] ) // start position (Y)
  1066. write_coord( start[2] + 40 ) // start position (Z)
  1067. write_coord( end[0] ) // end position (X)
  1068. write_coord( end[1] ) // end position (Y)
  1069. write_coord( end[2] ) // end position (Z)
  1070. write_short( iSprite ) // sprite index
  1071. write_byte( count ) // count
  1072. write_byte( life) // life in 0.1's
  1073. write_byte( scale) // scale in 0.1's
  1074. write_byte( velocity ) // velocity along vector in 10's
  1075. write_byte( random ) // randomness of velocity in 10's
  1076. message_end()
  1077. }
  1078.  
  1079. stock fm_cs_get_current_weapon_ent(id)
  1080. {
  1081. return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX);
  1082. }
  1083.  
  1084. stock fm_cs_get_weapon_ent_owner(ent)
  1085. {
  1086. return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS);
  1087. }
  1088.  
  1089. stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
  1090. {
  1091. set_pev(Player, pev_weaponanim, Sequence)
  1092.  
  1093. message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
  1094. write_byte(Sequence)
  1095. write_byte(pev(Player, pev_body))
  1096. message_end()
  1097. }
  1098.  
  1099. stock play_weapon_anim(player, anim)
  1100. {
  1101. set_pev(player, pev_weaponanim, anim)
  1102. message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, player)
  1103. write_byte(anim)
  1104. write_byte(pev(player, pev_body))
  1105. message_end()
  1106. }
  1107.  
  1108. stock get_weapon_attackment(id, Float:output[3], Float:fDis = 40.0)
  1109. {
  1110. new Float:vfEnd[3], viEnd[3]
  1111. get_user_origin(id, viEnd, 3)
  1112. IVecFVec(viEnd, vfEnd)
  1113.  
  1114. new Float:fOrigin[3], Float:fAngle[3]
  1115.  
  1116. pev(id, pev_origin, fOrigin)
  1117. pev(id, pev_view_ofs, fAngle)
  1118.  
  1119. xs_vec_add(fOrigin, fAngle, fOrigin)
  1120.  
  1121. new Float:fAttack[3]
  1122.  
  1123. xs_vec_sub(vfEnd, fOrigin, fAttack)
  1124. xs_vec_sub(vfEnd, fOrigin, fAttack)
  1125.  
  1126. new Float:fRate
  1127.  
  1128. fRate = fDis / vector_length(fAttack)
  1129. xs_vec_mul_scalar(fAttack, fRate, fAttack)
  1130.  
  1131. xs_vec_add(fOrigin, fAttack, output)
  1132. }
  1133.  
  1134.  
  1135. //------| Save Credits |------//
  1136. public SaveCredits(id) {
  1137. Vault = nvault_open("DepozitCredits");
  1138. new data_credits[256], key_credits[64];
  1139.  
  1140. new name[33];
  1141. get_user_name(id,name,32);
  1142. format(key_credits, 63, "%s-/", name);
  1143.  
  1144. format(data_credits, 255, "%i#", PlayerCredits[id]);
  1145. nvault_set(Vault, key_credits, data_credits);
  1146. return PLUGIN_CONTINUE;
  1147. }
  1148. //------| Loading Credits |------//
  1149. public LoadCredits(id) {
  1150. Vault = nvault_open("DepozitCredits");
  1151. new data_credits[256], key_credits[64];
  1152.  
  1153. new name[33];
  1154. get_user_name(id,name,32);
  1155. format(key_credits, 63, "%s-/", name);
  1156.  
  1157. format(data_credits, 255, "%i#", PlayerCredits[id]);
  1158. nvault_get(Vault, key_credits, data_credits, 255);
  1159. replace_all(data_credits, 255, "#", " ");
  1160.  
  1161. new Credits[32];
  1162. parse(data_credits, Credits, 31);
  1163. PlayerCredits[id] = str_to_num(Credits);
  1164. return PLUGIN_CONTINUE;
  1165. }
  1166.  
  1167. public SaveData ( id ) {
  1168.  
  1169. new szName [ 32 ];
  1170. get_user_name ( id, szName, charsmax ( szName ) );
  1171. new vaultkey [ 64 ], vaultdata [ 256 ];
  1172.  
  1173. format ( vaultkey, 63,"%s-Mod", szName );
  1174. format ( vaultdata, 255,"%i#%i#",eXP [ id ],Level [ id ] );
  1175.  
  1176. nvault_set ( gFurienXP, vaultkey, vaultdata );
  1177. return 1;
  1178. }
  1179.  
  1180. public LoadData ( id ) {
  1181.  
  1182. new szName [ 32 ];
  1183. get_user_name ( id, szName, charsmax ( szName ) );
  1184. new vaultkey [ 64 ],vaultdata [ 256 ];
  1185.  
  1186. format ( vaultkey,63,"%s-Mod", szName );
  1187. format ( vaultdata,255,"%i#%i#", eXP [ id ], Level [ id ] );
  1188. nvault_get ( gFurienXP, vaultkey, vaultdata, 255 );
  1189.  
  1190. replace_all ( vaultdata, 255, "#", " " );
  1191.  
  1192. new playerxp [ 32 ], playerlevel [ 32 ];
  1193.  
  1194. parse ( vaultdata, playerxp, 31, playerlevel, 31 );
  1195.  
  1196. eXP [ id ] = str_to_num ( playerxp );
  1197.  
  1198. Level [ id ] = str_to_num ( playerlevel );
  1199.  
  1200. return 1;
  1201. }
  1202.  
  1203.  
  1204.  
  1205. public ShowHud ( id ) {
  1206.  
  1207. if ( is_user_alive ( id ) && get_user_team ( id ) == 1 ) {
  1208.  
  1209. if ( trainer [ id ] ) {
  1210.  
  1211. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
  1212.  
  1213. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Trainer", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1214.  
  1215. }
  1216.  
  1217. if ( infinity_knife [ id ] ) {
  1218.  
  1219. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
  1220. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Agnos", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1221.  
  1222. }
  1223.  
  1224. if ( super_knife [ id ] ) {
  1225.  
  1226. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
  1227. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: XFother", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1228.  
  1229. }
  1230.  
  1231.  
  1232. if ( katana_knife [ id ] && HasPower [ id ] == 4 ) {
  1233.  
  1234. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
  1235. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Samurai | Putere: Drop Enemy Weapon", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1236.  
  1237. }
  1238.  
  1239. if ( double_katana_knife [ id ] && HasPower [ id ] == 4 ) {
  1240.  
  1241. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
  1242. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Extra Samurai | Putere: Drop Enemy Weapon", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1243.  
  1244. }
  1245.  
  1246.  
  1247. if ( ignes_knife [ id ] && HasPower [ id ] == 5 ) {
  1248.  
  1249. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
  1250. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Ignes | Putere: Freeze Enemy", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1251.  
  1252. }
  1253.  
  1254.  
  1255.  
  1256. if ( elf_knife [ id ] && HasPower [ id ] == 5 ) {
  1257.  
  1258. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
  1259. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Elf | Putere: Freeze Enemy", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1260.  
  1261. }
  1262.  
  1263. if ( vip_axe_knife [ id ] && HasPower [ id ] == 7 ) {
  1264.  
  1265. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
  1266. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Alcadeias | Putere: Teleport", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1267.  
  1268. }
  1269. }
  1270.  
  1271. else if ( is_user_alive ( id ) && get_user_team ( id ) == 2 ) {
  1272.  
  1273. if ( druid [ id ] ) {
  1274.  
  1275. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
  1276. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Druid", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1277.  
  1278. }
  1279.  
  1280. if ( hunter [ id ] ) {
  1281.  
  1282. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
  1283. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Hunter", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1284.  
  1285. }
  1286.  
  1287. if ( mage [ id ] ) {
  1288.  
  1289. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
  1290. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Mage", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1291.  
  1292. }
  1293.  
  1294.  
  1295. if ( rogue [ id ] && HasPower [ id ] == 6 ) {
  1296.  
  1297. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
  1298. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Rogue | Putere: Drag Enemy", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1299.  
  1300. }
  1301.  
  1302. if ( shaman [ id ] && HasPower [ id ] == 6 ) {
  1303.  
  1304. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
  1305. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Shaman | Putere: Drag Enemy", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1306.  
  1307. }
  1308.  
  1309.  
  1310. if ( thompson [ id ] && HasPower [ id ] == 8 ) {
  1311.  
  1312. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
  1313. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Warlock | Putere: Norecoil", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1314.  
  1315. }
  1316.  
  1317.  
  1318.  
  1319. if ( warrior [ id ] && HasPower [ id ] == 8 ) {
  1320.  
  1321. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
  1322. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Warrior | Putere: Norecoil", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1323.  
  1324. }
  1325.  
  1326. if ( deklowaz [ id ] && HasPower [ id ] == 7 ) {
  1327.  
  1328. set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
  1329. show_hudmessage ( id, "Viata: %d | Armura: %d | Level: %s | XP: %d | Clasa: Deklowaz | Putere: Teleport", get_user_health ( id ), get_user_armor ( id ), Prefix [ Level [ id ] ], eXP [ id ] );
  1330.  
  1331. }
  1332. }
  1333. }
  1334.  
  1335. public RemoveStuff ( id ) {
  1336.  
  1337. remove_dragoncannon ( id );
  1338. g_had_qb [ id ] = 0;
  1339. dual_mp5 [ id ] = false;
  1340. k1ases_weapon [ id ] = false;
  1341. salamander [ id ] = false;
  1342. SalamanderLimit [ id ] = false;
  1343. katana_knife [ id ] = false;
  1344. double_katana_knife [ id ] = false;
  1345. super_knife [ id ] = false;
  1346. infinity_knife [ id ] = false;
  1347. elf_knife [ id ] = false;
  1348. ignes_knife [ id ] = false;
  1349. trainer [ id ] = false;
  1350. thompson [ id ] = false;
  1351. uspx [ id ] = false;
  1352. hunter [ id ] = false;
  1353. shaman [ id ] = false;
  1354. UserHaveM79 [ id ] = false;
  1355. mage [ id ] = false;
  1356. rogue [ id ] = false;
  1357. warrior [ id ] = false;
  1358. deklowaz [ id ] = false;
  1359. flare [ id ] = true;
  1360. druid [ id ] = false;
  1361. strike_grenade [ id ] = false;
  1362. strike_grenade2 [ id ] = false;
  1363. strike_grenade3 [ id ] = false;
  1364. super_knife_shop [ id ] = false;
  1365. super_knife_shop2 [ id ] = false;
  1366. UserHaveQuad [ id ] = false;
  1367. UserHaveDragon [ id ] = false;
  1368.  
  1369. HasChose[id] = false;
  1370. HasPower[id] = 0;
  1371. HE_Cooldown[id] = 0;
  1372. GodMode_Cooldown[id] = 0;
  1373. GodMode_DurationCooldown[id] = 0;
  1374. Drop_Cooldown[id] = 0;
  1375. Freeze_Cooldown[id] = 0;
  1376. Drag_Cooldown[id] = 0;
  1377. Not_Cooldown[id] = false;
  1378. Teleport_Cooldown[id] = 0;
  1379.  
  1380. UserHaveHeGrenade [ id ] = false;
  1381. UserHaveGodMode [ id ] = false;
  1382. UserHaveSuperKnife [ id ] = false;
  1383. UserHaveNoClip [ id ] = false;
  1384. UserHaveHpAndAp [ id ] = false;
  1385. UserHaveDualMp5 [ id ] = false;
  1386. UserHasChoosed [ id ] = false;
  1387.  
  1388. }
  1389.  
  1390. public client_putinserver ( id ) {
  1391.  
  1392. LoadData ( id );
  1393. LoadCredits ( id );
  1394. RemoveStuff ( id );
  1395. set_task ( 3.0, "ShowHud", id, _, _, "b" );
  1396.  
  1397. client_cmd ( id, "cl_forwardspeed 9999" );
  1398. client_cmd ( id, "cl_backspeed 9999" );
  1399. client_cmd ( id, "cl_sidespeed 9999" );
  1400. }
  1401.  
  1402. public client_disconnect ( id ) {
  1403.  
  1404. SaveData ( id );
  1405. SaveCredits ( id );
  1406. RemoveStuff ( id );
  1407.  
  1408. g_has_k1ases[id] = false
  1409. g_delay[id] = 0
  1410. g_ammoclaw[id] = 0
  1411.  
  1412. }
  1413.  
  1414.  
  1415. public client_connect(id) {
  1416.  
  1417. g_has_k1ases[id] = false
  1418. g_delay[id] = 0
  1419. g_ammoclaw[id] = 0
  1420.  
  1421. static sName[32];
  1422. get_user_name(id, sName, sizeof sName - 1);
  1423. static sChars[32];
  1424. get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1);
  1425. for(new i = 0 ; i < strlen(sName) ; i++) {
  1426. for(new j = 0 ; j < strlen(sChars) ; j++) {
  1427. if(sName[i] == sChars[j]) {
  1428. server_cmd("kick #%d ^"Numele tau contine caractere nepermise.^"", get_user_userid(id));
  1429. break;
  1430. }
  1431. else {
  1432. LoadData ( id );
  1433. }
  1434. }
  1435. }
  1436.  
  1437. g_hasM79[id] = false
  1438. g_canShoot[id] = false
  1439. g_last_shot_time[id] = 0.0
  1440. grenade_count[id] = 0
  1441. hasOnHandM79[id] = false
  1442. remove_icon(id)
  1443. }
  1444.  
  1445. public plugin_cfg ( ) {
  1446.  
  1447. server_cmd("sv_maxspeed 99999999.0");
  1448. server_cmd("sv_airaccelerate 99999999.0");
  1449.  
  1450. }
  1451.  
  1452. public plugin_natives ( ) {
  1453.  
  1454. register_native ( "set_user_credits", "set_user_credits", 1 );
  1455. register_native ( "get_user_credits", "get_user_credits", 1 );
  1456. register_native ( "set_user_xp", "set_user_xp", 1 );
  1457. register_native ( "set_user_level", "set_user_level", 1 );
  1458. register_native ( "get_user_xp", "get_user_xp", 1 );
  1459. register_native ( "set_user_xp", "get_user_xp", 1 );
  1460.  
  1461. register_native("give_weapon_k1ases", "native_give_weapon_add", 1)
  1462. }
  1463.  
  1464. public plugin_precache ( ) {
  1465.  
  1466. precache_model(v_model); // salamander
  1467. precache_model(p_model); // salamander
  1468. precache_model(w_model); // salamander
  1469. precache_model(fire_spr_name); // salamander
  1470.  
  1471. precache_sound(fire_sound); // salamander
  1472.  
  1473. precache_sound("weapons/flamegun-1.wav"); // salamander
  1474. precache_sound("weapons/flamegun_clipin1.wav"); // salamander
  1475. precache_sound("weapons/flamegun_clipout1.wav"); // salamander
  1476. precache_sound("weapons/flamegun_clipout2.wav"); // salamander
  1477. precache_sound("weapons/flamegun_draw.wav"); // salamander
  1478.  
  1479. precache_model ( katana_knife_v_model );
  1480. precache_model ( double_katana_v_knife_model );
  1481. precache_model ( super_knife_v_model );
  1482. precache_model ( infinity_knife_v_model );
  1483. precache_model ( axe_knife_v_model );
  1484. precache_model ( ignes_knife_model );
  1485. precache_model ( elf_knife_model );
  1486. precache_model ( thompson_v_model );
  1487. precache_model ( uspx_v_model );
  1488. precache_model ( hunter_v_model );
  1489. precache_model ( mage_v_model );
  1490. precache_model ( rogue_v_model );
  1491. precache_model ( shaman_v_model );
  1492. precache_model ( warrior_v_model );
  1493. precache_model ( deklowaz_v_model );
  1494. precache_model ( trainer_v_model );
  1495. precache_model ( flare_v_model );
  1496. precache_model ( strike_grenade_v_model );
  1497. precache_model ( super_knife_shop_v_model );
  1498. precache_model ( super_knife_shop_v_model2 );
  1499.  
  1500. precache_model ( katana_knife_p_model );
  1501. precache_model ( double_katana_p_knife_model );
  1502. precache_model ( super_knife_p_model );
  1503. precache_model ( infinity_knife_p_model );
  1504. precache_model ( axe_knife_p_model );
  1505. precache_model ( strike_grenade_p_model );
  1506. precache_model ( super_knife_shop_p_model2 );
  1507.  
  1508. precache_model ( thompson_p_model );
  1509. precache_model ( uspx_p_model );
  1510. precache_model ( hunter_p_model );
  1511. precache_model ( mage_p_model );
  1512. precache_model ( rogue_p_model );
  1513. precache_model ( shaman_p_model );
  1514. precache_model ( warrior_p_model );
  1515. precache_model ( deklowaz_p_model );
  1516. precache_model ( trainer_p_model );
  1517.  
  1518. precache_model ( flare_w_model );
  1519.  
  1520. precache_model ( "models/player/furienxp/furienxp.mdl" );
  1521. precache_model ( "models/player/furienxp2/furienxp2.mdl" );
  1522.  
  1523. g_trail = precache_model ( "sprites/smoke.spr" );
  1524.  
  1525. g_FurienHealth = precache_model("sprites/exhealth/health_zombie.spr")
  1526. g_AntiFurienHealth = precache_model("sprites/exhealth/health_human.spr")
  1527. precache_sound(buy_FurienHealth)
  1528. precache_sound(buy_AntiFurienHealth)
  1529.  
  1530. // POWERS
  1531.  
  1532. precache_sound(DROP_HIT_SND);
  1533.  
  1534. DropSprite = precache_model("sprites/lgtning.spr");
  1535. DropSprite2 = precache_model("sprites/dropwpnexp.spr");
  1536.  
  1537. precache_sound(DRAG_HIT_SND);
  1538. precache_sound(DRAG_MISS_SND);
  1539. DragSprite = precache_model("sprites/zbeam4.spr");
  1540.  
  1541.  
  1542. new i;
  1543. for (i = 0; i < sizeof FROSTBREAK_SND; i++)
  1544. engfunc(EngFunc_PrecacheSound, FROSTBREAK_SND[i]);
  1545. for (i = 0; i < sizeof FROSTPLAYER_SND; i++)
  1546. engfunc(EngFunc_PrecacheSound, FROSTPLAYER_SND[i]);
  1547. FreezeSprite = engfunc(EngFunc_PrecacheModel, FreezeSprite2);
  1548. FreezeSprite3 = precache_model("sprites/laserbeam.spr");
  1549.  
  1550. TeleportSprite = precache_model( "sprites/shockwave.spr");
  1551. TeleportSprite2 = precache_model( "sprites/blueflare2.spr");
  1552. TeleportSprite3 = precache_model( "sprites/teleport_start.spr");
  1553.  
  1554. for (new i = 0; i < sizeof Model; i++)
  1555. precache_model(Model[i])
  1556.  
  1557. for (new i = 0; i < sizeof Model_Yellow; i++)
  1558. precache_model(Model_Yellow[i])
  1559.  
  1560. precache_model ( dual_mp5_v_model );
  1561. precache_model ( dual_mp5_p_model );
  1562.  
  1563. precache_model(k1ases_V_MODEL)
  1564. precache_model(k1ases_P_MODEL)
  1565. precache_model(k1ases_W_MODEL)
  1566. precache_sound("weapons/k1ar-1.wav")
  1567. precache_sound("weapons/k1a_clipin.wav")
  1568. precache_sound("weapons/k1a_clipout.wav")
  1569. precache_sound("weapons/k1a_draw.wav")
  1570. precache_sound(explode_sound)
  1571. m_iBlood[0] = precache_model("sprites/blood.spr")
  1572. m_iBlood[1] = precache_model("sprites/bloodspray.spr")
  1573. sprites_exp_index = precache_model(sprites_exp)
  1574. precache_model("sprites/640hud5.spr")
  1575. register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
  1576.  
  1577. g_damage = precache_model("sprites/furien/icon_supplybox2.spr")
  1578. g_damages = precache_model("sprites/furien/zp_zbrespawn.spr")
  1579.  
  1580. g_blood = precache_model("sprites/blood.spr")
  1581. g_bloodspray = precache_model("sprites/bloodspray.spr")
  1582.  
  1583. precache_model(qb_v_model)
  1584. precache_model(qb_p_model)
  1585. precache_model(qb_w_model)
  1586.  
  1587. for(new i = 0; i < sizeof(qb_sound); i++)
  1588. precache_sound(qb_sound[i])
  1589.  
  1590.  
  1591. new hades
  1592. for(hades = 0; hades < sizeof(WeaponModel); hades++)
  1593. engfunc(EngFunc_PrecacheModel, WeaponModel[hades])
  1594. new ownage
  1595. for(ownage = 0; ownage < sizeof(WeaponSound); ownage++)
  1596. engfunc(EngFunc_PrecacheSound, WeaponSound[ownage])
  1597.  
  1598. engfunc(EngFunc_PrecacheModel, WeaponResource[0])
  1599. engfunc(EngFunc_PrecacheGeneric, WeaponResource[1])
  1600. engfunc(EngFunc_PrecacheModel, WeaponResource[2])
  1601. engfunc(EngFunc_PrecacheModel, WeaponResource[3])
  1602. g_smokepuff_id = engfunc(EngFunc_PrecacheModel, WeaponResource[4])
  1603.  
  1604. // Models
  1605. precache_model(m79_P_MODEL)
  1606. precache_model(m79_V_MODEL)
  1607. precache_model(m79_W_MODEL)
  1608. precache_model(m79_GRENADE_MODEL)
  1609.  
  1610. // Sounds
  1611. precache_sound(m79_GRENADE_SHOOT)
  1612. precache_sound(m79_GRENADE_CLIPIN)
  1613. precache_sound(m79_GRENADE_CLIPOUT)
  1614. precache_sound(m79_GRENADE_CLIPON)
  1615. precache_sound(m79_GRENADE_DRAW)
  1616. precache_sound("weapons/357_cock1.wav")
  1617.  
  1618. // Sprites
  1619. sTrail = precache_model(m79_GRENADE_TRAIL)
  1620. sExplo = precache_model(m79_GRENADE_EXPLOSION)
  1621. sSmoke = precache_model(m79_GRENADE_SMOKE)
  1622.  
  1623. // Bodyparts and blood
  1624. blood_drop = precache_model("sprites/blood.spr")
  1625. blood_spray = precache_model("sprites/bloodspray.spr")
  1626. mdl_gib_flesh = precache_model("models/Fleshgibs.mdl")
  1627. mdl_gib_head = precache_model("models/GIB_Skull.mdl")
  1628. mdl_gib_lung = precache_model("models/GIB_Lung.mdl")
  1629. mdl_gib_spine = precache_model("models/GIB_B_Bone.mdl")
  1630.  
  1631. // Sprites
  1632. precache_generic( "sprites/weapon_m79_sisa.txt" );
  1633. precache_generic( "sprites/640hud42.spr" );
  1634. precache_generic( "sprites/640hud42.spr" );
  1635. precache_generic( "sprites/640hud7x.spr" );
  1636.  
  1637. register_clcmd("weapon_m79_sisa", "Hook_Select")
  1638.  
  1639. }
  1640.  
  1641. public GameDesc( ) {
  1642.  
  1643. static gamename[32];
  1644. get_pcvar_string( amx_gamename, gamename, 31 );
  1645. forward_return( FMV_STRING, gamename );
  1646. return FMRES_SUPERCEDE;
  1647. }
  1648.  
  1649. public cmdHelp ( id ) {
  1650.  
  1651. show_motd ( id, "/addons/amxmodx/configs/ajutor.html" );
  1652. }
  1653.  
  1654. public cmdShowVipDetails ( id ) {
  1655.  
  1656. show_motd ( id, "/addons/amxmodx/configs/vip.html" );
  1657. }
  1658.  
  1659. public ShowMessages ( ) {
  1660.  
  1661. switch (random_num(1,6))
  1662. {
  1663. case 1:
  1664. {
  1665. ColorChat ( 0, GREEN, "%s Pentru detalii despre joc, scrieti in chat^4 /detalii^3 .^4", szPrefix );
  1666. }
  1667.  
  1668. case 2:
  1669. {
  1670. ColorChat ( 0, GREEN, "%s Daca nu va functioneaza puterea, scrieti in consola^4 bind v power^3 .^4", szPrefix );
  1671. }
  1672.  
  1673. case 3:
  1674. {
  1675. ColorChat ( 0, GREEN, "%s Pentru detalii despre VIP, scrieti in chat^4 /vip^3 .^4", szPrefix );
  1676. }
  1677.  
  1678. case 4:
  1679. {
  1680. ColorChat ( 0, GREEN, "%s Pentru a vedea vipii online, scrieti in chat^4 /vips^3 .^4", szPrefix );
  1681. }
  1682.  
  1683. case 5:
  1684. {
  1685. ColorChat ( 0, GREEN, "%s Va asteptam si pe forumul nostru,^4 www.alphacs.ro^3 .^4", szPrefix );
  1686. }
  1687.  
  1688. case 6:
  1689. {
  1690. ColorChat ( 0, GREEN, "%s Daca descoperiti o eroare sau un bug, va rugam sa ne contactati .^4", szPrefix );
  1691. }
  1692. }
  1693. }
  1694.  
  1695. public set_user_credits ( id, credits ) {
  1696.  
  1697. PlayerCredits [ id ] = credits;
  1698.  
  1699. }
  1700.  
  1701. public get_user_credits ( id ) {
  1702.  
  1703. return PlayerCredits [ id ];
  1704. }
  1705.  
  1706. public set_user_level ( id, user_level ) {
  1707.  
  1708. Level [ id ] = user_level;
  1709. }
  1710.  
  1711. public get_user_level ( id ) {
  1712.  
  1713. return Level [ id ];
  1714. }
  1715.  
  1716. public set_user_xp ( id, xp ) {
  1717.  
  1718. eXP [ id ] = xp;
  1719.  
  1720. cmdRefreshXP2 ( id );
  1721. }
  1722.  
  1723. public get_user_xp ( id ) {
  1724.  
  1725. return eXP [ id ];
  1726.  
  1727. }
  1728.  
  1729. public round_end ( id ) {
  1730.  
  1731. remove_dragoncannon ( id );
  1732. dual_mp5 [ id ] = false;
  1733. k1ases_weapon [ id ] = false;
  1734. salamander [ id ] = false;
  1735. SalamanderLimit [ id ] = false;
  1736. katana_knife [ id ] = false;
  1737. double_katana_knife [ id ] = false;
  1738. super_knife [ id ] = false;
  1739. infinity_knife [ id ] = false;
  1740. vip_axe_knife [ id ] = false;
  1741. elf_knife [ id ] = false;
  1742. ignes_knife [ id ] = false;
  1743. trainer [ id ] = false;
  1744. thompson [ id ] = false;
  1745. uspx [ id ] = false;
  1746. hunter [ id ] = false;
  1747. shaman [ id ] = false;
  1748. mage [ id ] = false;
  1749. rogue [ id ] = false;
  1750. warrior [ id ] = false;
  1751. deklowaz [ id ] = false;
  1752. druid [ id ] = false;
  1753. strike_grenade [ id ] = false;
  1754. strike_grenade2 [ id ] = false;
  1755. strike_grenade3 [ id ] = false;
  1756. HasPower[id] = 0;
  1757. Drop_Cooldown[id] = 0;
  1758. super_knife_shop [ id ] = false;
  1759. super_knife_shop2 [ id ] = false;
  1760.  
  1761. new g_iMaxPlayers = get_maxplayers ( );
  1762.  
  1763. static Players;
  1764. for ( Players = 1 ; Players <= g_iMaxPlayers ; Players++ )
  1765. {
  1766. if (!is_user_alive ( Players ) )
  1767. continue;
  1768.  
  1769. strip_user_weapons ( Players );
  1770. set_pdata_int ( Players, 116, 0 );
  1771. give_item ( Players, "weapon_knife" );
  1772. }
  1773.  
  1774. }
  1775.  
  1776. public GiveBonus ( id ) {
  1777.  
  1778. new a [ 6 ];
  1779.  
  1780. get_time ( "%H:%M", a, 5 );
  1781.  
  1782. if ( equal ( a, "10:00" ) || equal ( a, "12:00" ) || equal ( a, "16:00" ) || equal ( a, "20:00" ) || equal ( a, "23:00" ) ) {
  1783.  
  1784. ColorChat ( 0, GREEN, "%s Este ora^4 bonusului^3, toti jucatorii au primit^4 5^5credite .", szPrefix );
  1785. set_user_credits ( id, get_user_credits ( id ) + 5 );
  1786. }
  1787. }
  1788.  
  1789. public round_start ( id ) {
  1790.  
  1791. new iPlayers [ 32 ];
  1792. new iNum;
  1793.  
  1794. get_players ( iPlayers, iNum );
  1795.  
  1796. for ( new i = 0; i < iNum; i++ )
  1797. {
  1798. g_iCount [ iPlayers [ i ] ] = 0;
  1799. g_Menu [ iPlayers [ i ] ] = 0;
  1800. g_had_qb [ iPlayers [ i ]] = 0;
  1801. g_CanUseHe[iPlayers[i]] = false;
  1802. }
  1803.  
  1804. dual_mp5 [ id ] = false;
  1805. k1ases_weapon [ id ] = false;
  1806. salamander [ id ] = false;
  1807. SalamanderLimit [ id ] = false;
  1808. katana_knife [ id ] = false;
  1809. double_katana_knife [ id ] = false;
  1810. super_knife [ id ] = false;
  1811. infinity_knife [ id ] = false;
  1812. elf_knife [ id ] = false;
  1813. ignes_knife [ id ] = false;
  1814. vip_axe_knife [ id ] = false;
  1815. trainer [ id ] = false;
  1816. thompson [ id ] = false;
  1817. uspx [ id ] = false;
  1818. hunter [ id ] = false;
  1819. shaman [ id ] = false;
  1820. mage [ id ] = false;
  1821. rogue [ id ] = false;
  1822. warrior [ id ] = false;
  1823. deklowaz [ id ] = false;
  1824. druid [ id ] = false;
  1825. strike_grenade [ id ] = false;
  1826. strike_grenade2 [ id ] = false;
  1827. strike_grenade3 [ id ] = false;
  1828. super_knife_shop [ id ] = false;
  1829. super_knife_shop2 [ id ] = false;
  1830. HasPower[id] = 0;
  1831. Drop_Cooldown[id] = 0;
  1832.  
  1833. if ( get_user_team ( id ) == 2 ) {
  1834. give_item ( id, "weapon_smokegrenade" );
  1835. cs_set_user_bpammo ( id, CSW_SMOKEGRENADE, 2 );
  1836. flare [ id ] = true;
  1837. }
  1838.  
  1839. new ent = FM_NULLENT
  1840. static string_class[] = "classname"
  1841. while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, ClassName)))
  1842. set_pev(ent, pev_flags, FL_KILLME)
  1843.  
  1844. for(new id = 1; id < get_maxplayers();id++) {
  1845. HasSpeed[id] = false
  1846. HasTeleport[id] = false
  1847. }
  1848. }
  1849.  
  1850. public ham_PrimaryAttack_He ( iEnt ) {
  1851.  
  1852. new id = pev( iEnt, pev_owner );
  1853.  
  1854. if( g_CanUseHe [ id ] )
  1855. {
  1856.  
  1857. set_hudmessage( 0, 100, 200, -1.0, 0.35, 1, 0.01, 3.0, 1.0, 1.0 );
  1858. show_hudmessage( id, "Bomba a fost plantata, nu mai poti folosi HE-urile" );
  1859.  
  1860. return HAM_SUPERCEDE;
  1861. }
  1862.  
  1863. return HAM_IGNORED;
  1864.  
  1865. }
  1866.  
  1867. public EventHLTV ( ) {
  1868.  
  1869. set_task ( 0.1, "GiveBonus" );
  1870. }
  1871.  
  1872. public native_give_weapon_add(id)
  1873. {
  1874. give_k1ases(id)
  1875. }
  1876.  
  1877. public fwPrecacheEvent_Post(type, const name[])
  1878. {
  1879. if (equal("events/mp5n.sc", name))
  1880. {
  1881. g_orig_event_k1ases = get_orig_retval()
  1882. return FMRES_HANDLED
  1883. }
  1884.  
  1885. return FMRES_IGNORED
  1886. }
  1887.  
  1888. public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
  1889. {
  1890. if(!is_user_alive(iAttacker))
  1891. return;
  1892.  
  1893. new g_currentweapon = get_user_weapon(iAttacker)
  1894. if(g_currentweapon != CSW_MP5NAVY) return
  1895.  
  1896. if((g_currentweapon == CSW_MP5NAVY && !g_has_k1ases[iAttacker])) return
  1897.  
  1898. static Float:flEnd[3]
  1899. get_tr2(ptr, TR_vecEndPos, flEnd)
  1900.  
  1901. if(iEnt)
  1902. {
  1903. // Put decal on an entity
  1904. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1905. write_byte(TE_DECAL)
  1906. write_coord_f(flEnd[0])
  1907. write_coord_f(flEnd[1])
  1908. write_coord_f(flEnd[2])
  1909. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  1910. write_short(iEnt)
  1911. message_end()
  1912. }
  1913. else
  1914. {
  1915. // Put decal on "world" (a wall)
  1916. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1917. write_byte(TE_WORLDDECAL)
  1918. write_coord_f(flEnd[0])
  1919. write_coord_f(flEnd[1])
  1920. write_coord_f(flEnd[2])
  1921. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  1922. message_end()
  1923. }
  1924.  
  1925. // Show sparcles
  1926. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  1927. write_byte(TE_GUNSHOTDECAL)
  1928. write_coord_f(flEnd[0])
  1929. write_coord_f(flEnd[1])
  1930. write_coord_f(flEnd[2])
  1931. write_short(iAttacker)
  1932. write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
  1933. message_end()
  1934. }
  1935.  
  1936. public fwClientUserInfoChanged(id, buffer)
  1937. {
  1938. if (!is_user_connected(id))
  1939. return FMRES_IGNORED;
  1940.  
  1941. static name[32], val[32]
  1942. get_user_name(id, name, sizeof name - 1)
  1943. engfunc(EngFunc_InfoKeyValue, buffer, g_name, val, sizeof val - 1)
  1944. if (equal(val, name))
  1945. return FMRES_IGNORED;
  1946.  
  1947. engfunc(EngFunc_SetClientKeyValue, id, buffer, g_name, name)
  1948. console_print ( id, "%s", g_reason );
  1949.  
  1950. return FMRES_SUPERCEDE;
  1951. }
  1952.  
  1953. public SalamanderGiveItem(id, itemid)
  1954. {
  1955. if(itemid == g_salamander)
  1956. {
  1957. g_had_salamander[id] = true
  1958. is_reloading[id] = false
  1959. is_firing[id] = false
  1960. can_fire[id] = true
  1961.  
  1962. fm_give_item(id, "weapon_m249")
  1963. g_ammo[id] = 30
  1964. cs_set_user_bpammo ( id, CSW_M249, 20 );
  1965. }
  1966. }
  1967.  
  1968. public get_dragoncannon(id)
  1969. {
  1970. if(!is_user_alive(id))
  1971. return
  1972.  
  1973. drop_weapons(id, 1)
  1974.  
  1975. g_had_cannon[id] = 1
  1976. g_cannon_ammo[id] = get_pcvar_num(g_cvar_defaultammo)
  1977. fm_give_item(id, weapon_cannon)
  1978. }
  1979.  
  1980. public remove_dragoncannon(id)
  1981. {
  1982. if(!is_user_connected(id))
  1983. return
  1984.  
  1985. g_had_cannon[id] = 0
  1986. g_got_firsttime[id] = 0
  1987. g_cannon_ammo[id] = 0
  1988.  
  1989. remove_task(id+TASK_RESET_AMMO)
  1990. }
  1991.  
  1992. public hook_weapon(id) engclient_cmd(id, weapon_cannon)
  1993.  
  1994. public event_CurWeapon_dragon(id)
  1995. {
  1996. if(!is_user_alive(id))
  1997. return
  1998.  
  1999. if(get_user_weapon(id) == CSW_CANNON && g_had_cannon[id])
  2000. {
  2001. if(!g_got_firsttime[id])
  2002. {
  2003. static cannon_weapon
  2004. cannon_weapon = fm_find_ent_by_owner(-1, weapon_cannon, id)
  2005.  
  2006. if(pev_valid(cannon_weapon)) cs_set_weapon_ammo(cannon_weapon, 25)
  2007. g_got_firsttime[id] = 1
  2008. }
  2009.  
  2010. set_pev(id, pev_viewmodel2, WeaponModel[MODEL_V])
  2011. set_pev(id, pev_weaponmodel2, WeaponModel[MODEL_P])
  2012.  
  2013. if(g_old_weapon[id] != CSW_CANNON)
  2014. {
  2015. g_temp_reloadtime = get_pcvar_float(g_cvar_reloadtime)
  2016. set_weapon_anim(id, CANNON_ANIM_DRAW)
  2017. }
  2018.  
  2019. update_ammo(id)
  2020. }
  2021.  
  2022. g_old_weapon[id] = get_user_weapon(id)
  2023. }
  2024.  
  2025.  
  2026. public dragoncannon_shoothandle(id)
  2027. {
  2028. if(pev(id, pev_weaponanim) != CANNON_ANIM_IDLE)
  2029. return
  2030.  
  2031. if(get_gametime() - g_temp_reloadtime > g_lastshot[id])
  2032. {
  2033. dragoncannon_shootnow(id)
  2034. g_lastshot[id] = get_gametime()
  2035. }
  2036. }
  2037.  
  2038. public dragoncannon_shootnow(id)
  2039. {
  2040. if(g_cannon_ammo[id] == 1)
  2041. {
  2042. set_task(0.5, "set_weapon_outofammo", id+TASK_RESET_AMMO)
  2043. }
  2044. if(g_cannon_ammo[id] <= 0)
  2045. {
  2046. return
  2047. }
  2048.  
  2049. create_fake_attack(id)
  2050.  
  2051. g_cannon_ammo[id]--
  2052.  
  2053. set_weapon_anim(id, random_num(CANNON_ANIM_SHOOT1, CANNON_ANIM_SHOOT2))
  2054. emit_sound(id, CHAN_WEAPON, WeaponSound[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
  2055.  
  2056. set_player_nextattack(id, CSW_CANNON, g_temp_reloadtime)
  2057. update_ammo(id)
  2058.  
  2059. make_fire_effect(id)
  2060. make_fire_smoke(id)
  2061. check_radius_damage(id)
  2062. }
  2063.  
  2064. public create_fake_attack(id)
  2065. {
  2066. static cannon_weapon
  2067. cannon_weapon = fm_find_ent_by_owner(-1, "weapon_knife", id)
  2068.  
  2069. if(pev_valid(cannon_weapon)) ExecuteHam(Ham_Weapon_PrimaryAttack, cannon_weapon)
  2070. }
  2071.  
  2072. public set_weapon_outofammo(id)
  2073. {
  2074. id -= TASK_RESET_AMMO
  2075. if(!is_user_alive(id))
  2076. return
  2077. if(get_user_weapon(id) != CSW_CANNON || !g_had_cannon[id])
  2078. return
  2079.  
  2080. set_weapon_anim(id, CANNON_ANIM_IDLE)
  2081. }
  2082.  
  2083. public make_fire_effect(id)
  2084. {
  2085. const MAX_FIRE = 10
  2086. static Float:Origin[MAX_FIRE][3]
  2087.  
  2088. // Stage 1
  2089. get_position(id, 30.0, 50.0, WEAPON_ATTACH_U, Origin[0])
  2090. get_position(id, 30.0, 40.0, WEAPON_ATTACH_U, Origin[1])
  2091. get_position(id, 30.0, -40.0, WEAPON_ATTACH_U, Origin[2])
  2092. get_position(id, 30.0, -50.0, WEAPON_ATTACH_U, Origin[2])
  2093.  
  2094. // Stage 2
  2095. get_position(id, 50.0, 30.0, WEAPON_ATTACH_U, Origin[3])
  2096. get_position(id, 50.0, 0.0, WEAPON_ATTACH_U, Origin[4])
  2097. get_position(id, 50.0, -30.0, WEAPON_ATTACH_U, Origin[5])
  2098.  
  2099. // Stage 3
  2100. get_position(id, 70.0, 20.0, WEAPON_ATTACH_U, Origin[3])
  2101. get_position(id, 70.0, -20.0, WEAPON_ATTACH_U, Origin[5])
  2102.  
  2103. // Stage 4
  2104. get_position(id, 90.0, 0.0, WEAPON_ATTACH_U, Origin[4])
  2105.  
  2106. for(new i = 0; i < MAX_FIRE; i++)
  2107. create_fire(id, Origin[i])
  2108. }
  2109.  
  2110. public create_fire(id, Float:Origin[3])
  2111. {
  2112. new iEnt = create_entity("env_sprite")
  2113. static Float:vfAngle[3], Float:MyOrigin[3], Float:TargetOrigin[3], Float:Velocity[3]
  2114.  
  2115. pev(id, pev_angles, vfAngle)
  2116. pev(id, pev_origin, MyOrigin)
  2117.  
  2118. vfAngle[2] = float(random(18) * 20)
  2119.  
  2120. // set info for ent
  2121. set_pev(iEnt, pev_movetype, MOVETYPE_PUSHSTEP)
  2122. set_pev(iEnt, pev_rendermode, kRenderTransAdd)
  2123. set_pev(iEnt, pev_renderamt, 250.0)
  2124. set_pev(iEnt, pev_fuser1, get_gametime() + 2.5) // time remove
  2125. set_pev(iEnt, pev_scale, 2.0)
  2126. set_pev(iEnt, pev_nextthink, halflife_time() + 0.05)
  2127.  
  2128. entity_set_string(iEnt, EV_SZ_classname, CANNONFIRE_CLASSNAME)
  2129. engfunc(EngFunc_SetModel, iEnt, WeaponResource[0])
  2130. set_pev(iEnt, pev_mins, Float:{-5.0, -5.0, -5.0})
  2131. set_pev(iEnt, pev_maxs, Float:{5.0, 5.0, 5.0})
  2132. set_pev(iEnt, pev_origin, Origin)
  2133. set_pev(iEnt, pev_gravity, 0.01)
  2134. set_pev(iEnt, pev_angles, vfAngle)
  2135. set_pev(iEnt, pev_solid, 1)
  2136. set_pev(iEnt, pev_owner, id)
  2137. set_pev(iEnt, pev_frame, 0.0)
  2138.  
  2139. // Set Velocity
  2140. get_position(id, 100.0, 0.0, -5.0, TargetOrigin)
  2141.  
  2142. get_speed_vector(MyOrigin, TargetOrigin, get_pcvar_float(g_cvar_firespeed), Velocity)
  2143. set_pev(iEnt, pev_velocity, Velocity)
  2144. }
  2145.  
  2146. public fw_Cannon_Think(iEnt)
  2147. {
  2148. if(!pev_valid(iEnt))
  2149. return
  2150.  
  2151. new Float:fFrame, Float:fNextThink
  2152. pev(iEnt, pev_frame, fFrame)
  2153.  
  2154. // effect exp
  2155. new iMoveType = pev(iEnt, pev_movetype)
  2156. if (iMoveType == MOVETYPE_NONE)
  2157. {
  2158. fNextThink = 0.0015
  2159. fFrame += 0.5
  2160.  
  2161. if (fFrame > 21.0)
  2162. {
  2163. engfunc(EngFunc_RemoveEntity, iEnt)
  2164. return
  2165. }
  2166. }
  2167.  
  2168. // effect normal
  2169. else
  2170. {
  2171. fNextThink = 0.045
  2172. fFrame += 0.5
  2173. fFrame = floatmin(21.0, fFrame)
  2174. }
  2175.  
  2176. set_pev(iEnt, pev_frame, fFrame)
  2177. set_pev(iEnt, pev_nextthink, halflife_time() + fNextThink)
  2178.  
  2179. // time remove
  2180. new Float:fTimeRemove
  2181. pev(iEnt, pev_fuser1, fTimeRemove)
  2182. if (get_gametime() >= fTimeRemove)
  2183. {
  2184. engfunc(EngFunc_RemoveEntity, iEnt)
  2185. return;
  2186. }
  2187. }
  2188.  
  2189. public fw_Cannon_Touch(ent, id)
  2190. {
  2191. if(!pev_valid(ent))
  2192. return
  2193.  
  2194. set_pev(ent, pev_movetype, MOVETYPE_NONE)
  2195. set_pev(ent, pev_solid, SOLID_NOT)
  2196. }
  2197.  
  2198. public make_fire_smoke(id)
  2199. {
  2200. static Float:Origin[3]
  2201. get_position(id, WEAPON_ATTACH_F, WEAPON_ATTACH_R, WEAPON_ATTACH_U, Origin)
  2202.  
  2203. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  2204. write_byte(TE_EXPLOSION)
  2205. engfunc(EngFunc_WriteCoord, Origin[0])
  2206. engfunc(EngFunc_WriteCoord, Origin[1])
  2207. engfunc(EngFunc_WriteCoord, Origin[2])
  2208. write_short(g_smokepuff_id)
  2209. write_byte(10)
  2210. write_byte(30)
  2211. write_byte(14)
  2212. message_end()
  2213. }
  2214.  
  2215. public update_ammo(id)
  2216. {
  2217. if(!is_user_alive(id))
  2218. return
  2219.  
  2220. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("CurWeapon"), _, id)
  2221. write_byte(1)
  2222. write_byte(CSW_CANNON)
  2223. write_byte(-1)
  2224. message_end()
  2225.  
  2226. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("AmmoX"), _, id)
  2227. write_byte(6)
  2228. write_byte(g_cannon_ammo[id])
  2229. message_end()
  2230. }
  2231.  
  2232. public check_radius_damage(id)
  2233. {
  2234. static Float:Origin[3]
  2235. for(new i = 0; i < get_maxplayers(); i++)
  2236. {
  2237. if(!is_user_alive(i))
  2238. continue
  2239. if(cs_get_user_team(id) == cs_get_user_team(i))
  2240. continue
  2241. if(id == i)
  2242. continue
  2243. pev(i, pev_origin, Origin)
  2244. if(!is_in_viewcone(id, Origin, 1))
  2245. continue
  2246. if(entity_range(id, i) >= get_pcvar_float(g_cvar_radiusdamage))
  2247. continue
  2248.  
  2249. ExecuteHamB(Ham_TakeDamage, i, 0, id, get_pcvar_float(g_cvar_damage), DMG_BURN)
  2250. }
  2251. }
  2252.  
  2253. public fw_UpdateClientData_Post_dc(id, sendweapons, cd_handle)
  2254. {
  2255. if(!is_user_alive(id) || !is_user_connected(id))
  2256. return FMRES_IGNORED
  2257. if(get_user_weapon(id) != CSW_CANNON || !g_had_cannon[id])
  2258. return FMRES_IGNORED
  2259.  
  2260. set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001)
  2261.  
  2262. return FMRES_HANDLED
  2263. }
  2264.  
  2265. public fw_CmdStart_dc(id, uc_handle, seed)
  2266. {
  2267. if(!is_user_alive(id) || !is_user_connected(id))
  2268. return FMRES_IGNORED
  2269. if(get_user_weapon(id) != CSW_CANNON || !g_had_cannon[id])
  2270. return FMRES_IGNORED
  2271.  
  2272. static CurButton
  2273. CurButton = get_uc(uc_handle, UC_Buttons)
  2274.  
  2275. if(CurButton & IN_ATTACK)
  2276. {
  2277. CurButton &= ~IN_ATTACK
  2278. set_uc(uc_handle, UC_Buttons, CurButton)
  2279.  
  2280. dragoncannon_shoothandle(id)
  2281. }
  2282.  
  2283. return FMRES_HANDLED
  2284. }
  2285.  
  2286. public fw_SetModel_dc(entity, model[])
  2287. {
  2288. if(!pev_valid(entity))
  2289. return FMRES_IGNORED
  2290.  
  2291. static szClassName[33]
  2292. pev(entity, pev_classname, szClassName, charsmax(szClassName))
  2293.  
  2294. if(!equal(szClassName, "weaponbox"))
  2295. return FMRES_IGNORED
  2296.  
  2297. static id
  2298. id = pev(entity, pev_owner)
  2299.  
  2300. if(equal(model, DEFAULT_W_MODEL))
  2301. {
  2302. static weapon
  2303. weapon = fm_find_ent_by_owner(-1, weapon_cannon, entity)
  2304.  
  2305. if(!pev_valid(weapon))
  2306. return FMRES_IGNORED
  2307.  
  2308. if(g_had_cannon[id])
  2309. {
  2310. set_pev(weapon, pev_impulse, WEAPON_SECRET_CODE)
  2311. set_pev(weapon, pev_ammo, g_cannon_ammo[id])
  2312.  
  2313. engfunc(EngFunc_SetModel, entity, WeaponModel[MODEL_W])
  2314. remove_dragoncannon(id)
  2315.  
  2316. return FMRES_SUPERCEDE
  2317. }
  2318. }
  2319.  
  2320. return FMRES_IGNORED
  2321. }
  2322.  
  2323. public fw_Spawn_Post(id)
  2324. {
  2325. remove_dragoncannon(id)
  2326. }
  2327.  
  2328. public fw_AddToPlayer_Post(ent, id)
  2329. {
  2330. if(!pev_valid(ent))
  2331. return HAM_IGNORED
  2332.  
  2333. if(pev(ent, pev_impulse) == WEAPON_SECRET_CODE)
  2334. {
  2335. remove_dragoncannon(id)
  2336.  
  2337. g_had_cannon[id] = 1
  2338. g_got_firsttime[id] = 0
  2339. g_cannon_ammo[id] = pev(ent, pev_ammo)
  2340. }
  2341.  
  2342. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("WeaponList"), _, id)
  2343. write_string(g_had_cannon[id] == 1 ? "weapon_cannon" : "weapon_ump45")
  2344. write_byte(6)
  2345. write_byte(20)
  2346. write_byte(-1)
  2347. write_byte(-1)
  2348. write_byte(0)
  2349. write_byte(15)
  2350. write_byte(CSW_CANNON)
  2351. write_byte(0)
  2352. message_end()
  2353.  
  2354. return HAM_HANDLED
  2355. }
  2356.  
  2357. public fw_item_postframe(ent)
  2358. {
  2359. if(!is_valid_ent(ent))
  2360. return HAM_IGNORED
  2361.  
  2362. static id
  2363. id = pev(ent, pev_owner)
  2364.  
  2365. if(!is_user_alive(id) || !is_user_connected(id))
  2366. return HAM_IGNORED
  2367.  
  2368. if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
  2369. return HAM_IGNORED
  2370.  
  2371. if(!is_reloading[id])
  2372. {
  2373. static iAnim
  2374. iAnim = pev(id, pev_weaponanim)
  2375.  
  2376. if(iAnim == RELOAD_ANIM)
  2377. play_weapon_anim(id, IDLE_ANIM)
  2378. }
  2379.  
  2380. static salamander
  2381. salamander = fm_find_ent_by_class(-1, "weapon_m249")
  2382.  
  2383. set_pdata_int(salamander, 54, 0, 4)
  2384.  
  2385. return HAM_HANDLED
  2386. }
  2387.  
  2388. public fw_item_addtoplayer(ent, id)
  2389. {
  2390. if(!is_valid_ent(ent))
  2391. return HAM_IGNORED
  2392.  
  2393. if(entity_get_int(ent, EV_INT_impulse) == 701)
  2394. {
  2395. g_had_salamander[id] = true
  2396. g_ammo[id] = pev(ent, pev_iuser3)
  2397. entity_set_int(id, EV_INT_impulse, 0)
  2398.  
  2399. play_weapon_anim(id, DRAW_ANIM)
  2400. set_task(1.0, "make_wpn_canfire", id)
  2401.  
  2402. return HAM_HANDLED
  2403. }
  2404.  
  2405. return HAM_HANDLED
  2406. }
  2407.  
  2408. public Round_Restart ( ) {
  2409.  
  2410. g_FuriensWin = 0;
  2411. g_AntiFuriensWin = 0;
  2412. }
  2413.  
  2414. public UpdateHudScore ( ) {
  2415.  
  2416. set_dhudmessage ( 0, 100, 200, -1.0, 0.04, 0, 6.0, 10.1 );
  2417. show_dhudmessage ( 0, "[ FR ] - vs - [ AF ]" );
  2418.  
  2419. set_hudmessage ( 213, 0, 0, -1.0, 0.07, 0, 6.0, 10.1 );
  2420. show_hudmessage ( 0, "%d - %d", g_FuriensWin, g_AntiFuriensWin );
  2421. }
  2422.  
  2423. public check_lastinv(id)
  2424. {
  2425. if(!is_user_alive(id) || !is_user_connected(id))
  2426. return PLUGIN_HANDLED
  2427.  
  2428. if(get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id])
  2429. {
  2430. set_task(0.5, "start_check_draw", id)
  2431. }
  2432.  
  2433. return PLUGIN_CONTINUE
  2434. }
  2435.  
  2436. public start_check_draw(id)
  2437. {
  2438. if(can_fire[id])
  2439. can_fire[id] = false
  2440. }
  2441.  
  2442. public event_curweapon(id)
  2443. {
  2444. if(is_user_alive(id) && get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id] )
  2445. {
  2446. set_pev(id, pev_viewmodel2, v_model)
  2447. set_pev(id, pev_weaponmodel2, p_model)
  2448. }
  2449. }
  2450.  
  2451. public fw_weapon_deploy(ent)
  2452. {
  2453. static id
  2454. id = pev(ent, pev_owner)
  2455.  
  2456. if(!is_user_alive(id) || !is_user_connected(id) )
  2457. return HAM_IGNORED
  2458.  
  2459. if(!g_had_salamander[id])
  2460. return HAM_IGNORED
  2461.  
  2462. can_fire[id] = false
  2463.  
  2464. play_weapon_anim(id, DRAW_ANIM)
  2465. set_task(1.0, "make_wpn_canfire", id)
  2466.  
  2467. return HAM_HANDLED
  2468. }
  2469.  
  2470. public make_wpn_canfire(id)
  2471. {
  2472. can_fire[id] = true
  2473. }
  2474.  
  2475. public fw_weapon_reload(ent)
  2476. {
  2477. static id
  2478. id = pev(ent, pev_owner)
  2479.  
  2480. if(!is_user_alive(id) || !is_user_connected(id) )
  2481. return HAM_IGNORED
  2482.  
  2483. if(get_user_weapon(id) != CSW_SALAMANDER && !g_had_salamander[id])
  2484. return HAM_IGNORED
  2485.  
  2486. return HAM_SUPERCEDE
  2487. }
  2488.  
  2489. public client_PostThink(id)
  2490. {
  2491. if(is_user_alive(id) && is_user_connected(id))
  2492. {
  2493. if(g_had_salamander[id] && get_user_weapon(id) != CSW_SALAMANDER)
  2494. {
  2495. if(can_fire[id])
  2496. can_fire[id] = false
  2497.  
  2498. if(is_reloading[id])
  2499. {
  2500. is_reloading[id] = false
  2501. if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
  2502. }
  2503. } else if(g_had_salamander[id] && get_user_weapon(id) == CSW_SALAMANDER) {
  2504. static salamander
  2505. salamander = fm_get_user_weapon_entity(id, CSW_M249)
  2506.  
  2507. cs_set_weapon_ammo(salamander, g_ammo[id])
  2508. }
  2509. }
  2510.  
  2511. }
  2512.  
  2513. public fw_SetModel(entity, model[])
  2514. {
  2515. if(!is_valid_ent(entity))
  2516. return FMRES_IGNORED;
  2517.  
  2518. static szClassName[33]
  2519. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  2520.  
  2521. if(!equal(szClassName, "weaponbox"))
  2522. return FMRES_IGNORED;
  2523.  
  2524. static iOwner
  2525. iOwner = entity_get_edict(entity, EV_ENT_owner)
  2526.  
  2527. if(equal(model, "models/w_m249.mdl"))
  2528. {
  2529. static iStoredAugID
  2530. iStoredAugID = find_ent_by_owner(-1, "weapon_m249", entity)
  2531.  
  2532. if(!is_valid_ent(iStoredAugID))
  2533. return FMRES_IGNORED;
  2534.  
  2535. if(g_had_salamander[iOwner])
  2536. {
  2537. entity_set_int(iStoredAugID, EV_INT_impulse, 701)
  2538. g_had_salamander[iOwner] = false
  2539. set_pev(iStoredAugID, pev_iuser3, g_ammo[iOwner])
  2540. entity_set_model(entity, w_model)
  2541.  
  2542. return FMRES_SUPERCEDE;
  2543. }
  2544. }
  2545.  
  2546. return FMRES_IGNORED;
  2547. }
  2548.  
  2549. public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
  2550. {
  2551. if(!is_user_alive(id) || !is_user_connected(id) )
  2552. return FMRES_IGNORED
  2553.  
  2554. if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
  2555. return FMRES_IGNORED
  2556.  
  2557. set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)
  2558.  
  2559. return FMRES_HANDLED
  2560. }
  2561.  
  2562. public fw_cmdstart(id, uc_handle, seed)
  2563. {
  2564. if(!is_user_alive(id) || !is_user_connected(id))
  2565. return FMRES_IGNORED
  2566.  
  2567. if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
  2568. return FMRES_IGNORED
  2569.  
  2570. static Button
  2571. Button = get_uc(uc_handle, UC_Buttons)
  2572.  
  2573. if(Button & IN_ATTACK)
  2574. {
  2575. if((get_gametime() - get_pcvar_float(cvar_fire_delay) > g_last_fire[id]))
  2576. {
  2577. if(can_fire[id] && !is_reloading[id])
  2578. {
  2579. if(g_ammo[id] > 0)
  2580. {
  2581. if(pev(id, pev_weaponanim) != SHOOT_ANIM)
  2582. play_weapon_anim(id, SHOOT_ANIM)
  2583.  
  2584. if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
  2585. is_firing[id] = true
  2586. throw_fire(id)
  2587. emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  2588. g_ammo[id]--
  2589. }
  2590.  
  2591. }
  2592. g_last_fire[id] = get_gametime()
  2593. }
  2594. } else {
  2595. if(is_firing[id])
  2596. {
  2597. if(!task_exists(id+TASK_FIRE))
  2598. {
  2599. set_task(0.1, "stop_fire", id+TASK_FIRE)
  2600. emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  2601. }
  2602. }
  2603.  
  2604. }
  2605.  
  2606. if(Button & IN_RELOAD)
  2607. {
  2608. if(!is_reloading[id] && !is_firing[id])
  2609. {
  2610. static curammo, require_ammo, bpammo
  2611.  
  2612. curammo = g_ammo[id]
  2613. bpammo = cs_get_user_bpammo(id, CSW_SALAMANDER)
  2614. require_ammo = get_pcvar_num(cvar_max_clip) - curammo
  2615.  
  2616. if(bpammo > require_ammo)
  2617. {
  2618. g_reload_ammo[id] = require_ammo
  2619. } else {
  2620. g_reload_ammo[id] = bpammo
  2621. }
  2622.  
  2623. if(g_ammo[id] < get_pcvar_num(cvar_max_clip) && bpammo > 0)
  2624. {
  2625. is_reloading[id] = true
  2626. play_weapon_anim(id, RELOAD_ANIM)
  2627.  
  2628. set_task(5.0, "finish_reload", id+TASK_RELOAD)
  2629. }
  2630. }
  2631. }
  2632.  
  2633. Button &= ~IN_ATTACK
  2634. set_uc(uc_handle, UC_Buttons, Button)
  2635.  
  2636. Button &= ~IN_RELOAD
  2637. set_uc(uc_handle, UC_Buttons, Button)
  2638.  
  2639. return FMRES_HANDLED
  2640. }
  2641.  
  2642. public ham_player_kill(victim, attacker, corpse, args[])
  2643. {
  2644.  
  2645.  
  2646.  
  2647. if ( get_user_team ( victim ) == 1 ) {
  2648.  
  2649. new vVictimOrigin[3], vAttackerorigin[3];
  2650. get_user_origin( victim, vVictimOrigin );
  2651. get_user_origin( attacker, vAttackerorigin );
  2652.  
  2653. switch (random_num(0, 2))
  2654. {
  2655. case 0:
  2656. {
  2657.  
  2658. message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},attacker)
  2659.  
  2660. write_byte(TE_SPRITETRAIL)
  2661. write_coord(vAttackerorigin[0])
  2662. write_coord(vAttackerorigin[1])
  2663. write_coord(vAttackerorigin[2])
  2664. write_coord(vVictimOrigin[0])
  2665. write_coord(vVictimOrigin[1])
  2666. write_coord(vVictimOrigin[2])
  2667. write_short(g_damage)
  2668. write_byte(5)
  2669. write_byte(15)
  2670. write_byte(3)
  2671. write_byte(2)
  2672. write_byte(6)
  2673. message_end()
  2674. }
  2675. case 1:
  2676. {
  2677. message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},attacker)
  2678.  
  2679. write_byte(TE_SPRITETRAIL)
  2680. write_coord(vAttackerorigin[0])
  2681. write_coord(vAttackerorigin[1])
  2682. write_coord(vAttackerorigin[2])
  2683. write_coord(vVictimOrigin[0])
  2684. write_coord(vVictimOrigin[1])
  2685. write_coord(vVictimOrigin[2])
  2686. write_short(g_damages)
  2687. write_byte(5)
  2688. write_byte(15)
  2689. write_byte(3)
  2690. write_byte(2)
  2691. write_byte(6)
  2692. message_end()
  2693. }
  2694. }
  2695. }
  2696. }
  2697.  
  2698. public fw_CmdStart(id, uc_handle, seed)
  2699. {
  2700. if(id > 32)
  2701. return PLUGIN_HANDLED
  2702.  
  2703. if(!is_user_alive(id) )
  2704. return PLUGIN_HANDLED
  2705.  
  2706. if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
  2707. {
  2708. new szClip, szAmmo
  2709. new szWeapID = get_user_weapon(id, szClip, szAmmo)
  2710. if(szWeapID == CSW_MP5NAVY && g_has_k1ases[id])
  2711. {
  2712. weapon_ability(id)
  2713. }
  2714.  
  2715. }
  2716.  
  2717. return PLUGIN_HANDLED
  2718. }
  2719.  
  2720. public weapon_ability(id)
  2721. {
  2722. if(!is_user_alive(id) || g_ammoclaw[id] <= 0 || g_delay[id])
  2723. return;
  2724.  
  2725. set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
  2726. UTIL_PlayWeaponAnimation(id, 6)
  2727.  
  2728. new aimOrigin[3]
  2729. get_user_origin(id, aimOrigin, 3)
  2730.  
  2731. message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  2732. write_byte(TE_EXPLOSION); // TE_EXPLOSION
  2733. write_coord(aimOrigin[0]); // origin x
  2734. write_coord(aimOrigin[1]); // origin y
  2735. write_coord(aimOrigin[2]); // origin z
  2736. write_short(sprites_exp_index); // sprites
  2737. write_byte(40); // scale in 0.1's
  2738. write_byte(30); // framerate
  2739. write_byte(14); // flags
  2740. message_end(); // message end
  2741.  
  2742.  
  2743. new Float:aimOrigin2[3]
  2744.  
  2745. static iVictim
  2746. iVictim = -1
  2747.  
  2748. aimOrigin2[0] = float(aimOrigin[0])
  2749. aimOrigin2[1] = float(aimOrigin[1])
  2750. aimOrigin2[2] = float(aimOrigin[2])
  2751.  
  2752. while((iVictim = find_ent_in_sphere(iVictim, aimOrigin2, get_pcvar_float(cvar_rad))) != 0)
  2753. {
  2754. // Non-player entity
  2755. if(is_user_connected(iVictim))
  2756. {
  2757. if(is_user_alive(iVictim)) radius_damage1(id,iVictim)
  2758. }
  2759. }
  2760.  
  2761. g_ammoclaw[id] -= 1
  2762. g_delay[id] = 1
  2763. set_task(float(get_pcvar_num(cvar_k1ases_delay)),"can_use",id)
  2764. client_print(id,print_center,"[Claw Ammo: %d]",g_ammoclaw[id])
  2765. emit_sound(id, CHAN_WEAPON,explode_sound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  2766.  
  2767. }
  2768. public radius_damage1(iAttacker, iVictim)
  2769. {
  2770. ExecuteHamB(Ham_TakeDamage, iVictim , iAttacker , iAttacker, get_pcvar_float(cvar_k1ases_claw), DMG_BULLET);
  2771. }
  2772. public can_use(id)
  2773. {
  2774. g_delay[id] = 0
  2775. }
  2776. public fw_SetModel_k1asus(entity, model[])
  2777. {
  2778. if(!is_valid_ent(entity))
  2779. return FMRES_IGNORED;
  2780.  
  2781. static szClassName[33]
  2782. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  2783.  
  2784. if(!equal(szClassName, "weaponbox"))
  2785. return FMRES_IGNORED;
  2786.  
  2787. static iOwner
  2788.  
  2789. iOwner = entity_get_edict(entity, EV_ENT_owner)
  2790.  
  2791. if(equal(model, "models/w_mp5.mdl"))
  2792. {
  2793. static iStoredSVDID
  2794.  
  2795. iStoredSVDID = find_ent_by_owner(ENG_NULLENT, "weapon_mp5navy", entity)
  2796.  
  2797. if(!is_valid_ent(iStoredSVDID))
  2798. return FMRES_IGNORED;
  2799.  
  2800. if(g_has_k1ases[iOwner])
  2801. {
  2802. entity_set_int(iStoredSVDID, EV_INT_WEAPONKEY, k1ases_WEAPONKEY)
  2803. g_has_k1ases[iOwner] = false
  2804. g_delay[iOwner] = 0
  2805.  
  2806. entity_set_model(entity, k1ases_W_MODEL)
  2807.  
  2808. return FMRES_SUPERCEDE;
  2809. }
  2810. }
  2811.  
  2812.  
  2813. return FMRES_IGNORED;
  2814. }
  2815.  
  2816. public give_k1ases(id)
  2817. {
  2818. drop_weapons(id, 1);
  2819. oldweap[id] = CSW_KNIFE
  2820. new iWep2 = give_item(id,"weapon_mp5navy")
  2821. if( iWep2 > 0 )
  2822. {
  2823. cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_k1ases))
  2824. cs_set_user_bpammo (id, CSW_MP5NAVY, get_pcvar_num(cvar_k1ases_ammo))
  2825. }
  2826. UTIL_PlayWeaponAnimation(id, 2)
  2827. set_pdata_float(id, m_flNextAttack, 1.5, PLAYER_LINUX_XTRA_OFF)
  2828. g_has_k1ases[id] = true;
  2829. g_ammoclaw[id] = get_pcvar_num(cvar_k1asesammo )
  2830. client_print(id,print_center,"[Claw Ammo: %d]",g_ammoclaw[id])
  2831.  
  2832. }
  2833.  
  2834. public fw_k1ases_AddToPlayer(k1ases, id)
  2835. {
  2836. if(!is_valid_ent(k1ases) || !is_user_connected(id))
  2837. return HAM_IGNORED;
  2838.  
  2839. if(entity_get_int(k1ases, EV_INT_WEAPONKEY) == k1ases_WEAPONKEY)
  2840. {
  2841. g_has_k1ases[id] = true
  2842.  
  2843. entity_set_int(k1ases, EV_INT_WEAPONKEY, 0)
  2844.  
  2845. return HAM_HANDLED;
  2846. }
  2847.  
  2848. return HAM_IGNORED;
  2849. }
  2850.  
  2851. public fw_UseStationary_Post(entity, caller, activator, use_type)
  2852. {
  2853. if (use_type == USE_STOPPED && is_user_connected(caller))
  2854. replace_weapon_models(caller, get_user_weapon(caller))
  2855. }
  2856.  
  2857. public fw_Item_Deploy_Post(weapon_ent)
  2858. {
  2859. static owner
  2860. owner = fm_cs_get_weapon_ent_owner(weapon_ent)
  2861.  
  2862. static weaponid
  2863. weaponid = cs_get_weapon_id(weapon_ent)
  2864.  
  2865. replace_weapon_models(owner, weaponid)
  2866. }
  2867.  
  2868. public CurrentWeapon(id)
  2869. {
  2870. replace_weapon_models(id, read_data(2))
  2871. }
  2872.  
  2873. replace_weapon_models(id, weaponid) {
  2874. switch (weaponid)
  2875. {
  2876. case CSW_MP5NAVY:
  2877. {
  2878.  
  2879. if(g_has_k1ases[id])
  2880. {
  2881. set_pev(id, pev_viewmodel2, k1ases_V_MODEL)
  2882. set_pev(id, pev_weaponmodel2, k1ases_P_MODEL)
  2883. if(oldweap[id] != CSW_MP5NAVY)
  2884. {
  2885. UTIL_PlayWeaponAnimation(id, 2)
  2886. set_pdata_float(id, m_flNextAttack, 1.5, PLAYER_LINUX_XTRA_OFF)
  2887. }
  2888.  
  2889. }
  2890. }
  2891. }
  2892. oldweap[id] = weaponid
  2893. }
  2894.  
  2895. public fw_UpdateClientData_Post_k1asus(Player, SendWeapons, CD_Handle) {
  2896. if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_MP5NAVY) || !g_has_k1ases[Player])
  2897. return FMRES_IGNORED
  2898.  
  2899. set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
  2900. return FMRES_HANDLED
  2901. }
  2902.  
  2903. public fw_k1ases_PrimaryAttack(Weapon)
  2904. {
  2905. new Player = get_pdata_cbase(Weapon, 41, 4)
  2906.  
  2907. if (!g_has_k1ases[Player])
  2908. return;
  2909.  
  2910. pev(Player,pev_punchangle,cl_pushangle_k1asus[Player])
  2911.  
  2912. g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
  2913. }
  2914.  
  2915. public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
  2916. {
  2917. if ((eventid != g_orig_event_k1ases))
  2918. return FMRES_IGNORED
  2919. if (!(1 <= invoker <= g_MaxPlayers))
  2920. return FMRES_IGNORED
  2921.  
  2922. playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
  2923. return FMRES_SUPERCEDE
  2924. }
  2925.  
  2926. public fw_k1ases_PrimaryAttack_Post(Weapon)
  2927. {
  2928. new Player = get_pdata_cbase(Weapon, 41, 4)
  2929.  
  2930. new szClip, szAmmo
  2931. get_user_weapon(Player, szClip, szAmmo)
  2932. if(Player > 0 && Player < 33)
  2933. {
  2934. //if(!g_has_k1ases[Player])
  2935. //{
  2936. //if(szClip > 0) emit_sound(Player, CHAN_WEAPON, "weapons/famas-1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  2937. //}
  2938. if(g_has_k1ases[Player])
  2939. {
  2940. new Float:push[3]
  2941. pev(Player,pev_punchangle,push)
  2942. xs_vec_sub(push,cl_pushangle_k1asus[Player],push)
  2943.  
  2944. xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_k1ases),push)
  2945. xs_vec_add(push,cl_pushangle_k1asus[Player],push)
  2946. set_pev(Player,pev_punchangle,push)
  2947.  
  2948. if (!g_clip_ammo[Player])
  2949. return
  2950.  
  2951. emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  2952. UTIL_PlayWeaponAnimation(Player, 3)
  2953. set_pdata_float(Player, m_flNextAttack, get_pcvar_float(cvar_k1ases_fire), PLAYER_LINUX_XTRA_OFF)
  2954. }
  2955. }
  2956. }
  2957.  
  2958. public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
  2959. {
  2960. if (victim != attacker && is_user_connected(attacker))
  2961. {
  2962. if(get_user_weapon(attacker) == CSW_MP5NAVY)
  2963. {
  2964. if(g_has_k1ases[attacker])
  2965. SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_k1ases))
  2966. }
  2967. }
  2968. }
  2969.  
  2970. public message_DeathMsg(msg_id, msg_dest, id)
  2971. {
  2972. static szTruncatedWeapon[33], iAttacker, iVictim
  2973.  
  2974. get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
  2975.  
  2976. iAttacker = get_msg_arg_int(1)
  2977. iVictim = get_msg_arg_int(2)
  2978.  
  2979. if(!is_user_connected(iAttacker) || iAttacker == iVictim)
  2980. return PLUGIN_CONTINUE
  2981.  
  2982. if(equal(szTruncatedWeapon, "famas") && get_user_weapon(iAttacker) == CSW_MP5NAVY)
  2983. {
  2984. if(g_has_k1ases[iAttacker])
  2985. set_msg_arg_string(4, "famas")
  2986. }
  2987.  
  2988. return PLUGIN_CONTINUE
  2989. }
  2990.  
  2991. public k1ases__ItemPostFrame(weapon_entity) {
  2992. new id = pev(weapon_entity, pev_owner)
  2993. if (!is_user_connected(id))
  2994. return HAM_IGNORED;
  2995.  
  2996. if (!g_has_k1ases[id])
  2997. return HAM_IGNORED;
  2998.  
  2999. new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
  3000.  
  3001. new iBpAmmo = cs_get_user_bpammo(id, CSW_MP5NAVY);
  3002. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  3003.  
  3004. new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
  3005.  
  3006. if( fInReload && flNextAttack <= 0.0 )
  3007. {
  3008. new j = min(get_pcvar_num(cvar_clip_k1ases) - iClip, iBpAmmo)
  3009.  
  3010. set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
  3011. cs_set_user_bpammo(id, CSW_MP5NAVY, iBpAmmo-j);
  3012.  
  3013. set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
  3014. fInReload = 0
  3015. }
  3016.  
  3017. return HAM_IGNORED;
  3018. }
  3019.  
  3020. public k1ases__Reload(weapon_entity) {
  3021. new id = pev(weapon_entity, pev_owner)
  3022. if (!is_user_connected(id))
  3023. return HAM_IGNORED;
  3024.  
  3025. if (!g_has_k1ases[id])
  3026. return HAM_IGNORED;
  3027.  
  3028. g_k1ases_TmpClip[id] = -1;
  3029.  
  3030. new iBpAmmo = cs_get_user_bpammo(id, CSW_MP5NAVY);
  3031. new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
  3032.  
  3033. if (iBpAmmo <= 0)
  3034. return HAM_SUPERCEDE;
  3035.  
  3036. if (iClip >= get_pcvar_num(cvar_clip_k1ases))
  3037. return HAM_SUPERCEDE;
  3038.  
  3039.  
  3040. g_k1ases_TmpClip[id] = iClip;
  3041.  
  3042. return HAM_IGNORED;
  3043. }
  3044.  
  3045. public k1ases__Reload_Post(weapon_entity) {
  3046. new id = pev(weapon_entity, pev_owner)
  3047. if (!is_user_connected(id))
  3048. return HAM_IGNORED;
  3049.  
  3050. if (!g_has_k1ases[id])
  3051. return HAM_IGNORED;
  3052.  
  3053. if (g_k1ases_TmpClip[id] == -1)
  3054. return HAM_IGNORED;
  3055.  
  3056. set_pdata_int(weapon_entity, m_iClip, g_k1ases_TmpClip[id], WEAP_LINUX_XTRA_OFF)
  3057.  
  3058. set_pdata_float(weapon_entity, m_flTimeWeaponIdle, k1ases_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
  3059.  
  3060. set_pdata_float(id, m_flNextAttack, k1ases_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
  3061.  
  3062. set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
  3063.  
  3064. // relaod animation
  3065. UTIL_PlayWeaponAnimation(id, 1)
  3066.  
  3067. return HAM_IGNORED;
  3068. }
  3069.  
  3070. public finish_reload(id)
  3071. {
  3072. id -= TASK_RELOAD
  3073.  
  3074. g_ammo[id] += g_reload_ammo[id]
  3075. cs_set_user_bpammo(id, CSW_SALAMANDER, cs_get_user_bpammo(id, CSW_SALAMANDER) - g_reload_ammo[id])
  3076. is_reloading[id] = false
  3077. }
  3078.  
  3079. public stop_fire(id)
  3080. {
  3081. id -= TASK_FIRE
  3082.  
  3083. is_firing[id] = false
  3084. if(pev(id, pev_weaponanim) != SHOOT_END_ANIM)
  3085. play_weapon_anim(id, SHOOT_END_ANIM)
  3086. }
  3087.  
  3088. public throw_fire(id)
  3089. {
  3090. new iEnt = create_entity("env_sprite")
  3091. new Float:vfVelocity[3]
  3092.  
  3093. velocity_by_aim(id, 500, vfVelocity)
  3094. xs_vec_mul_scalar(vfVelocity, 0.4, vfVelocity)
  3095.  
  3096. // add velocity of Owner for ent
  3097. new Float:fOwnerVel[3], Float:vfAttack[3], Float:vfAngle[3]
  3098. pev(id, pev_angles, vfAngle)
  3099. //pev(id, pev_origin, vfAttack)
  3100. get_weapon_attackment(id, vfAttack, 20.0)
  3101. vfAttack[2] -= 7.0
  3102. //vfAttack[1] += 7.0
  3103. pev(id, pev_velocity, fOwnerVel)
  3104. fOwnerVel[2] = 0.0
  3105. xs_vec_add(vfVelocity, fOwnerVel, vfVelocity)
  3106.  
  3107. // set info for ent
  3108. set_pev(iEnt, pev_movetype, MOVETYPE_FLY)
  3109. set_pev(iEnt, pev_rendermode, kRenderTransAdd)
  3110. set_pev(iEnt, pev_renderamt, 150.0)
  3111. set_pev(iEnt, PEV_ENT_TIME, get_gametime() + 1.5) // time remove
  3112. set_pev(iEnt, pev_scale, 0.2)
  3113. set_pev(iEnt, pev_nextthink, halflife_time() + 0.05)
  3114.  
  3115. set_pev(iEnt, pev_classname, fire_classname)
  3116. engfunc(EngFunc_SetModel, iEnt, fire_spr_name)
  3117. set_pev(iEnt, pev_mins, Float:{-1.0, -1.0, -1.0})
  3118. set_pev(iEnt, pev_maxs, Float:{1.0, 1.0, 1.0})
  3119. set_pev(iEnt, pev_origin, vfAttack)
  3120. set_pev(iEnt, pev_gravity, 0.01)
  3121. set_pev(iEnt, pev_velocity, vfVelocity)
  3122. vfAngle[1] += 30.0
  3123. set_pev(iEnt, pev_angles, vfAngle)
  3124. set_pev(iEnt, pev_solid, SOLID_BBOX)
  3125. set_pev(iEnt, pev_owner, id)
  3126. set_pev(iEnt, pev_iuser2, 1)
  3127. }
  3128.  
  3129. public fw_think(iEnt)
  3130. {
  3131. if ( !pev_valid(iEnt) ) return;
  3132.  
  3133. new Float:fFrame, Float:fScale, Float:fNextThink
  3134. pev(iEnt, pev_frame, fFrame)
  3135. pev(iEnt, pev_scale, fScale)
  3136.  
  3137. // effect exp
  3138. new iMoveType = pev(iEnt, pev_movetype)
  3139. if (iMoveType == MOVETYPE_NONE)
  3140. {
  3141. fNextThink = 0.015
  3142. fFrame += 1.0
  3143.  
  3144. if (fFrame > 21.0)
  3145. {
  3146. engfunc(EngFunc_RemoveEntity, iEnt)
  3147. return
  3148. }
  3149. }
  3150.  
  3151. // effect normal
  3152. else
  3153. {
  3154. fNextThink = 0.045
  3155. fFrame += 1.0
  3156. fFrame = floatmin(21.0, fFrame)
  3157. }
  3158.  
  3159. fScale = (entity_range(iEnt, pev(iEnt, pev_owner)) / 500) * 3.0
  3160.  
  3161. set_pev(iEnt, pev_frame, fFrame)
  3162. set_pev(iEnt, pev_scale, fScale)
  3163. set_pev(iEnt, pev_nextthink, halflife_time() + fNextThink)
  3164.  
  3165.  
  3166. // time remove
  3167. new Float:fTimeRemove
  3168. pev(iEnt, PEV_ENT_TIME, fTimeRemove)
  3169. if (get_gametime() >= fTimeRemove)
  3170. {
  3171. engfunc(EngFunc_RemoveEntity, iEnt)
  3172. return;
  3173. }
  3174. }
  3175.  
  3176. public fw_touch(ent, id)
  3177. {
  3178. set_pev(ent, pev_movetype, MOVETYPE_NONE)
  3179. set_pev(ent, pev_solid, SOLID_NOT)
  3180.  
  3181. if(!is_valid_ent(id))
  3182. return FMRES_IGNORED
  3183.  
  3184. if(!is_user_alive(id) || !is_user_connected(id))
  3185. return FMRES_IGNORED
  3186.  
  3187. if(pev(ent, pev_iuser2) == 1)
  3188. {
  3189. set_pev(ent, pev_iuser2, 0)
  3190.  
  3191. static attacker, ent_kill
  3192.  
  3193. attacker = pev(ent, pev_owner)
  3194. ent_kill = fm_get_user_weapon_entity(id, CSW_KNIFE)
  3195.  
  3196.  
  3197. ExecuteHam(Ham_TakeDamage, id, ent_kill, attacker, random_float(get_pcvar_float(cvar_dmgrd_start), get_pcvar_float(cvar_dmgrd_end)), DMG_BULLET)
  3198. }
  3199. return FMRES_HANDLED
  3200. }
  3201.  
  3202. public Hook_Select(id)
  3203. {
  3204. engclient_cmd(id, "weapon_p228")
  3205. return PLUGIN_HANDLED
  3206. }
  3207.  
  3208.  
  3209. public dropcmd(id) {
  3210. if(g_hasM79[id] && hasOnHandM79[id]) {
  3211. new Float:Aim[3],Float:origin[3]
  3212. VelocityByAim(id, 64, Aim)
  3213. entity_get_vector(id,EV_VEC_origin,origin)
  3214.  
  3215. origin[0] += Aim[0]
  3216. origin[1] += Aim[1]
  3217.  
  3218. new m79 = create_entity("info_target")
  3219. entity_set_string(m79,EV_SZ_classname,"m79")
  3220. entity_set_model(m79,m79_W_MODEL)
  3221.  
  3222. entity_set_size(m79,Float:{-2.0,-2.0,-2.0},Float:{5.0,5.0,5.0})
  3223. entity_set_int(m79,EV_INT_solid,1)
  3224.  
  3225. entity_set_int(m79,EV_INT_movetype,6)
  3226. entity_set_int(m79, EV_INT_iuser1, grenade_count[id])
  3227. entity_set_vector(m79,EV_VEC_origin,origin)
  3228. g_hasM79[id] = false
  3229. g_canShoot[id] = false
  3230. grenade_count[id] = false
  3231. hasOnHandM79[id] = false
  3232. remowegun(id)
  3233. remove_icon(id)
  3234. set_task(0.15,"hud_clear",id)
  3235. return PLUGIN_HANDLED
  3236. }
  3237. return PLUGIN_CONTINUE
  3238. }
  3239.  
  3240. // remove gun and save all guns
  3241. public remowegun(id) {
  3242. new wpnList[32]
  3243. new number
  3244. get_user_weapons(id,wpnList,number)
  3245. for (new i = 0;i < number ;i++) {
  3246. if (wpnList[i] == CSW_P228) {
  3247. fm_strip_user_gun(id, wpnList[i])
  3248. }
  3249. }
  3250. }
  3251.  
  3252. //play anim
  3253. public playanim(player,anim)
  3254. {
  3255. set_pev(player, pev_weaponanim, anim)
  3256. message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, player)
  3257. write_byte(anim)
  3258. write_byte(pev(player, pev_body))
  3259. message_end()
  3260. }
  3261.  
  3262.  
  3263. // Current weapon player is holding
  3264. public Event_CurrentWeapon_m79(id)
  3265. {
  3266.  
  3267. if(!is_user_connected(id))
  3268. return
  3269.  
  3270. // Read weapon ID
  3271. new weaponID = read_data(2)
  3272.  
  3273. if (weaponID == CSW_P228)
  3274. {
  3275. if (g_hasM79[id])
  3276. {
  3277. message_begin(MSG_ONE, get_user_msgid("CurWeapon"), {0,0,0}, id)
  3278. write_byte(1)
  3279. write_byte(CSW_KNIFE)
  3280. write_byte(0)
  3281. message_end()
  3282. hasOnHandM79[id] = true
  3283. remove_task(id+TASK_FRSTSHT)
  3284.  
  3285. message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id);
  3286. write_byte(1); // status (0=hide, 1=show, 2=flash)
  3287. write_string("item_battery"); // sprite name
  3288. write_byte(210)
  3289. write_byte(105)
  3290. write_byte(30)
  3291. message_end()
  3292.  
  3293. set_task(0.1, "hud_init", id+TASK_HUDAMMO)
  3294.  
  3295. if(!draw_wpn[id])
  3296. {
  3297. playanim(id, anim_draw)
  3298. emit_sound(id, CHAN_WEAPON, m79_GRENADE_DRAW, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  3299. // View model
  3300. entity_set_string(id, EV_SZ_viewmodel, m79_V_MODEL)
  3301.  
  3302. // Player model
  3303. entity_set_string(id, EV_SZ_weaponmodel, m79_P_MODEL)
  3304. canfire[id] = false
  3305. draw_wpn[id] = true
  3306. set_task(1.6,"delayshottsk", id+TASK_FRSTSHT)
  3307. }
  3308. else if(get_gametime() - g_last_shot_time[id] > delayshot) playanim(id, anim_idle)
  3309. }
  3310. else
  3311. {
  3312. // View model
  3313. entity_set_string(id, EV_SZ_viewmodel, "models/v_p228.mdl")
  3314.  
  3315. // Player model
  3316. entity_set_string(id, EV_SZ_weaponmodel, "models/p_p228.mdl")
  3317. hasOnHandM79[id] = false
  3318. remove_icon(id)
  3319. set_task(0.15,"hud_clear",id)
  3320. }
  3321. }
  3322. else
  3323. {
  3324. draw_wpn[id] = false
  3325. hasOnHandM79[id] = false
  3326. remove_icon(id)
  3327. set_task(0.15,"hud_clear",id)
  3328. }
  3329. }
  3330.  
  3331. public fw_AddToPlayer_m79( iEnt, Player )
  3332. {
  3333. if( pev_valid( iEnt ) && is_user_connected( Player ) )
  3334. {
  3335. if(g_hasM79[Player])
  3336. Sprite(Player)
  3337. }
  3338. }
  3339.  
  3340.  
  3341. public remove_icon(id)
  3342. {
  3343. if(!is_user_connected(id))
  3344. return
  3345.  
  3346. message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
  3347. write_byte(0)
  3348. write_string("item_battery") // sprite name
  3349. message_end()
  3350. return
  3351. }
  3352.  
  3353. public delayshottsk(taskid){
  3354. canfire[ID_SHT] = true
  3355. }
  3356.  
  3357. // New round started
  3358. public Event_NewRound(id) {
  3359. for (new i = 0; i < get_maxplayers(); i++) {
  3360. g_hasM79[i] = false
  3361. }
  3362. m79 = 0
  3363. draw_wpn[id] = false
  3364. Event_CurrentWeapon_m79(id)
  3365. }
  3366.  
  3367. public Sprite(id) {
  3368.  
  3369. message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
  3370.  
  3371. write_string("weapon_m79_sisa")
  3372.  
  3373. write_byte(9)
  3374. write_byte(52)
  3375. write_byte(-1)
  3376. write_byte(-1)
  3377. write_byte(1)
  3378. write_byte(3)
  3379. write_byte(1)
  3380. write_byte(0)
  3381. message_end()
  3382.  
  3383. }
  3384.  
  3385.  
  3386.  
  3387. public event_start_m79()
  3388. {
  3389. m79 = 0
  3390. remove_m79()
  3391. }
  3392.  
  3393. public remove_m79() {
  3394. new nextitem = find_ent_by_class(-1, "m79")
  3395. while ((nextitem = find_ent_by_class(-1, "m79")) != 0) {
  3396. remove_entity(nextitem)
  3397. }
  3398. return PLUGIN_CONTINUE
  3399. }
  3400.  
  3401. // Player killed
  3402. public fw_PlayerKilled_m79(victim, attacker, shouldgib) {
  3403. if (g_hasM79[victim])
  3404. {
  3405. // Reset all
  3406. g_hasM79[victim] = false
  3407. g_canShoot[victim] = false
  3408. g_FireM79[victim] = false
  3409. grenade_count[victim] = 0
  3410.  
  3411. // Remove HUD
  3412. remove_task(victim+TASK_HUDAMMO)
  3413. remowegun(victim)
  3414. remove_icon(victim)
  3415. }
  3416. }
  3417.  
  3418.  
  3419.  
  3420.  
  3421. //give wpn
  3422. public give_weapon(id, ammo){
  3423. g_hasM79[id] = true
  3424. g_canShoot[id] = true
  3425. g_FireM79[id] = false
  3426. give_item(id,"weapon_p228")
  3427. if(ammo == -1) grenade_count[id] = 10
  3428. else grenade_count[id] = ammo
  3429. set_task(0.1, "hud_init", id+TASK_HUDAMMO)
  3430. }
  3431.  
  3432.  
  3433. // Command start
  3434. public fw_CmdStart_m79(id, uc_handle, seed) {
  3435. // Don't have our weapon
  3436. if (!hasOnHandM79[id] || !is_user_alive(id)){
  3437. g_FireM79[id] = false
  3438. return FMRES_IGNORED
  3439. }
  3440. // Get buttons
  3441. new buttons = get_uc(uc_handle, UC_Buttons)
  3442.  
  3443. // Attack1 button pressed
  3444. if(buttons & IN_ATTACK)
  3445. {
  3446. g_FireM79[id] = true
  3447.  
  3448. // Remove attack button from their button mask
  3449. buttons &= ~IN_ATTACK
  3450. set_uc(uc_handle, UC_Buttons, buttons)
  3451. }
  3452. else
  3453. g_FireM79[id] = false
  3454.  
  3455. return FMRES_HANDLED
  3456. }
  3457.  
  3458. // Player think after
  3459. public fw_PlayerPostThink_m79(id)
  3460. {
  3461. // Don't have our weapon
  3462. if (!g_hasM79[id])
  3463. return FMRES_IGNORED
  3464.  
  3465. // ignore dead
  3466. if (!is_user_alive(id))
  3467. return FMRES_IGNORED
  3468.  
  3469. // Ignore zombies/nemesis
  3470. // If player is firing
  3471. if (g_FireM79[id] && hasOnHandM79[id])
  3472. {
  3473. // Grenades are more or equal to 1
  3474. if (grenade_count[id] >= 1)
  3475. {
  3476. // Player can shoot
  3477. if (get_gametime() - g_last_shot_time[id] > delayshot && canfire[id])
  3478. {
  3479. // Fire!!!
  3480. FireGrenade(id)
  3481.  
  3482. // Decrease nade count
  3483. grenade_count[id]--
  3484.  
  3485. // Without this HUD is not updating correctly
  3486. set_task(0.1, "hud_init", id+TASK_HUDAMMO)
  3487.  
  3488. // Remember last shot time
  3489. g_last_shot_time[id] = get_gametime()
  3490. }
  3491. }
  3492. else
  3493. {
  3494. // Don't have nades
  3495. client_print(id, print_center, "У вас больше нет гранат!")
  3496. }
  3497. }
  3498.  
  3499. return FMRES_IGNORED
  3500. }
  3501.  
  3502.  
  3503. //block anim standart wpn
  3504. public fw_UpdateClientData_Post_m79(id, sendweapons, cd_handle) {
  3505. // Don't have our weapon
  3506. if (!hasOnHandM79[id] || !is_user_alive(id)) return FMRES_IGNORED
  3507. // Block default sounds
  3508. if (hasOnHandM79[id] && g_hasM79[id] && g_canShoot[id]) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001 );
  3509. return FMRES_HANDLED
  3510. }
  3511.  
  3512. // Fire gremade
  3513. public FireGrenade(id) {
  3514. // Set animation
  3515. if(grenade_count[id]>1){
  3516. playanim(id, anim_shot1)
  3517. set_task(0.4,"reloadsnd",id)
  3518. set_task(1.6,"reloadin",id)
  3519. set_task(2.3,"reloadon",id)
  3520. } else {
  3521. playanim(id, anim_shot2)
  3522. }
  3523. // Get origin. angle and velocity
  3524. new Float:fAngle[3], Float:fVelocity[3]
  3525. pev(id, pev_v_angle, fAngle)
  3526.  
  3527. // Create ent
  3528. new grenade = create_entity("info_target")
  3529.  
  3530. // Not grenade
  3531. if (!grenade) return PLUGIN_HANDLED
  3532.  
  3533. // Classname
  3534. entity_set_string(grenade, EV_SZ_classname, "m79_grenade")
  3535.  
  3536. // Model
  3537. entity_set_model(grenade, m79_GRENADE_MODEL)
  3538.  
  3539. new Float:vOrigin[3],Float:vUp[3]
  3540. pev(id, pev_origin, vOrigin)
  3541.  
  3542. global_get(glb_v_up, vUp)
  3543. new up = 17
  3544. vOrigin[0] = vOrigin[0] + vUp[0] * up
  3545. vOrigin[1] = vOrigin[1] + vUp[1] * up
  3546. vOrigin[2] = vOrigin[2] + vUp[2] * up
  3547.  
  3548. // Origin
  3549. entity_set_origin(grenade, vOrigin)
  3550.  
  3551. // Angles
  3552. entity_set_vector(grenade, EV_VEC_angles, fAngle)
  3553.  
  3554. // Size
  3555. new Float:MinBox[3] = {-1.0, -1.0, -1.0}
  3556. new Float:MaxBox[3] = {1.0, 1.0, 1.0}
  3557. entity_set_vector(grenade, EV_VEC_mins, MinBox)
  3558. entity_set_vector(grenade, EV_VEC_maxs, MaxBox)
  3559.  
  3560. // Interaction
  3561. entity_set_int(grenade, EV_INT_solid, SOLID_SLIDEBOX)
  3562.  
  3563. // Movetype
  3564. entity_set_int(grenade, EV_INT_movetype, MOVETYPE_TOSS)
  3565.  
  3566. // Owner
  3567. entity_set_edict(grenade, EV_ENT_owner, id)
  3568.  
  3569. // Effects
  3570. entity_set_int(grenade, EV_INT_effects, EF_BRIGHTLIGHT)
  3571.  
  3572. // Velocity
  3573. VelocityByAim(id, 1500, fVelocity)
  3574.  
  3575.  
  3576. entity_set_vector(grenade, EV_VEC_velocity, fVelocity)
  3577.  
  3578. // Launch sound
  3579. emit_sound(grenade, CHAN_WEAPON, m79_GRENADE_SHOOT, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  3580.  
  3581. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  3582. write_byte(TE_BEAMFOLLOW) // Temporary entity ID
  3583. write_short(grenade) // Entity
  3584. write_short(sTrail) // Sprite index
  3585. write_byte(3) // Life
  3586. write_byte(1) // Line width
  3587. write_byte(255) // Red
  3588. write_byte(255) // Green
  3589. write_byte(255) // Blue
  3590. write_byte(255) // Alpha
  3591. message_end()
  3592. return PLUGIN_CONTINUE
  3593. }
  3594.  
  3595. public reloadsnd(id){
  3596. emit_sound(id, CHAN_WEAPON, m79_GRENADE_CLIPOUT, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  3597. }
  3598. public reloadin(id){
  3599. emit_sound(id, CHAN_WEAPON, m79_GRENADE_CLIPIN, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  3600. }
  3601. public reloadon(id){
  3602. emit_sound(id, CHAN_WEAPON, m79_GRENADE_CLIPON, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
  3603. }
  3604.  
  3605. // We hit something!!!
  3606. public pfn_touch(ptr, ptd) {
  3607. // If ent is valid
  3608. if (pev_valid(ptr))
  3609. {
  3610. // Get classnames
  3611. static classname[32], classnameptd[32]
  3612. pev(ptr, pev_classname, classname, 31)
  3613.  
  3614.  
  3615. // Our ent
  3616. if(equal(classname, "m79_grenade"))
  3617. {
  3618. // Get it's origin
  3619. new Float:originF[3]
  3620. pev(ptr, pev_origin, originF)
  3621.  
  3622. // Draw explosion
  3623. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  3624. write_byte(TE_EXPLOSION) // Temporary entity ID
  3625. engfunc(EngFunc_WriteCoord, originF[0]) // engfunc because float
  3626. engfunc(EngFunc_WriteCoord, originF[1])
  3627. engfunc(EngFunc_WriteCoord, originF[2])
  3628. write_short(sExplo) // Sprite index
  3629. write_byte(50) // Scale
  3630. write_byte(15) // Framerate
  3631. write_byte(0) // Flags
  3632. message_end()
  3633.  
  3634. // Draw smoke
  3635. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  3636. write_byte(TE_SMOKE) // Temporary entity IF
  3637. engfunc(EngFunc_WriteCoord, originF[0]) // Pos X
  3638. engfunc(EngFunc_WriteCoord, originF[1]) // Pos Y
  3639. engfunc(EngFunc_WriteCoord, originF[2]) // Pos Z
  3640. write_short(sSmoke) // Sprite index
  3641. write_byte(75) // Scale
  3642. write_byte(15) // Framerate
  3643. message_end()
  3644.  
  3645. // Get owner
  3646. new owner = pev(ptr, pev_owner)
  3647.  
  3648. new Max_Damage = get_pcvar_num(cvar_granade_max_damage)
  3649. new Damage_Radius = get_pcvar_num(cvar_granade_damage_radius)
  3650.  
  3651. // Loop through all players
  3652. for(new i = 1; i < get_maxplayers(); i++)
  3653. {
  3654. // Alive...
  3655. if (is_user_alive(i) == 1 && is_user_connected(owner))
  3656. {
  3657.  
  3658. // A zombie/nemesis
  3659. if (get_user_team ( i ) == 1)
  3660. {
  3661. // Get victims origin and distance
  3662. new VictimOrigin[3], Distance , origin[3]
  3663. get_user_origin(i, VictimOrigin)
  3664. // Get distance between victim and epicenter
  3665.  
  3666. origin[0] = floatround(originF[0])
  3667. origin[1] = floatround(originF[1])
  3668. origin[2] = floatround(originF[2])
  3669.  
  3670. Distance = get_distance(VictimOrigin, origin)
  3671.  
  3672. if (Distance <= Damage_Radius)
  3673. {
  3674. // Start screen shake
  3675. message_begin(MSG_ONE, g_msgScreenShake, {0,0,0}, i)
  3676. write_short(1<<14) // Amount
  3677. write_short(1<<14) // Duration
  3678. write_short(1<<14) // Frequency
  3679. message_end()
  3680. new Damage
  3681. Damage = Max_Damage - floatround(floatmul(float(Max_Damage), floatdiv(float(Distance), float(Damage_Radius))))
  3682. make_knockback(i, originF, 1.5*float(Damage))
  3683. do_victim(i,owner,Damage)
  3684. }
  3685. }
  3686. }
  3687. // Destroy ent
  3688. set_pev(ptr, pev_flags, FL_KILLME)
  3689. }
  3690. // We hit breakable
  3691. if(pev_valid(ptd)){
  3692. pev(ptd, pev_classname, classnameptd, 31)
  3693. if (equali(classnameptd, "func_breakable"))
  3694. {
  3695. // Destroy it
  3696. force_use(ptr,ptd)
  3697. }
  3698. } }
  3699. }
  3700. if(is_valid_ent(ptr)) {
  3701. new classname[32]
  3702. entity_get_string(ptr,EV_SZ_classname,classname,31)
  3703.  
  3704. if(equal(classname, "m79")) {
  3705. if(is_valid_ent(ptd)) {
  3706. new id = ptd
  3707. if(id > 0 && id < 34) {
  3708.  
  3709. // Pick up weapon
  3710. give_weapon(id,entity_get_int(ptr, EV_INT_iuser1))
  3711. remove_entity(ptr)
  3712.  
  3713. }
  3714. }
  3715. }
  3716. }
  3717. }
  3718.  
  3719. public do_victim (victim,attacker,Damage) {
  3720.  
  3721. new namek[32],namev[32],authida[35],authidv[35],teama[32],teamv[32]
  3722.  
  3723. get_user_name(victim,namev,31)
  3724. get_user_name(attacker,namek,31)
  3725. get_user_authid(victim,authidv,34)
  3726. get_user_authid(attacker,authida,34)
  3727. get_user_team(victim,teamv,31)
  3728. get_user_team(attacker,teama,31)
  3729. static DamageTake[33]
  3730. if(Damage >= get_user_health(victim)) {
  3731.  
  3732. if(get_cvar_num("mp_logdetail") == 3) {
  3733.  
  3734. log_message("^"%s<%d><%s><%s>^" attacked ^"%s<%d><%s><%s>^" with ^"grenade^" (hit ^"chest^") (Damage ^"%d^") (health ^"0^")",
  3735. namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv,Damage)
  3736.  
  3737. }
  3738.  
  3739. set_user_frags(attacker,get_user_frags(attacker) + 1 )
  3740.  
  3741. set_msg_block(gmsgDeathMsg,BLOCK_ONCE)
  3742. set_msg_block(gmsgScoreInfo,BLOCK_ONCE)
  3743.  
  3744. ExecuteHamB(Ham_Killed, victim, attacker, 0)
  3745.  
  3746. replace_dm(attacker,victim,0)
  3747.  
  3748. log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"grenade^"",
  3749. namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv)
  3750.  
  3751. }
  3752.  
  3753. else {
  3754. set_user_health(victim,get_user_health(victim) - Damage )
  3755.  
  3756. if(get_cvar_num("mp_logdetail") == 3) {
  3757.  
  3758. log_message("^"%s<%d><%s><%s>^" attacked ^"%s<%d><%s><%s>^" with ^"missile^" (hit ^"chest^") (Damage ^"%d^") (health ^"%d^")",
  3759. namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv,Damage,get_user_health(victim))
  3760.  
  3761. }
  3762.  
  3763. }
  3764. if(DamageTake[attacker] >= 5000){
  3765. DamageTake[attacker] -= 5000
  3766. } else DamageTake[attacker] += Damage
  3767.  
  3768. }
  3769.  
  3770. public replace_dm (id,tid,tbody) {
  3771.  
  3772. //Update killers scorboard with new info
  3773. message_begin(MSG_ALL,gmsgScoreInfo)
  3774. write_byte(id)
  3775. write_short(get_user_frags(id))
  3776. write_short(get_user_deaths(id))
  3777. write_short(0)
  3778. write_short(get_user_team(id))
  3779. message_end()
  3780.  
  3781. //Update victims scoreboard with correct info
  3782. message_begin(MSG_ALL,gmsgScoreInfo)
  3783. write_byte(tid)
  3784. write_short(get_user_frags(tid))
  3785. write_short(get_user_deaths(tid))
  3786. write_short(0)
  3787. write_short(get_user_team(tid))
  3788. message_end()
  3789.  
  3790. //Headshot Kill
  3791. if (tbody == 1) {
  3792.  
  3793. message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
  3794. write_byte(id)
  3795. write_byte(tid)
  3796. write_string("grenade")
  3797. message_end()
  3798.  
  3799. }
  3800.  
  3801. //Normal Kill
  3802. else {
  3803.  
  3804. message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
  3805. write_byte(id)
  3806. write_byte(tid)
  3807. write_byte(0)
  3808. write_string("grenade")
  3809. message_end()
  3810.  
  3811. }
  3812.  
  3813. return PLUGIN_CONTINUE
  3814.  
  3815. }
  3816.  
  3817. // HUD init
  3818. public hud_init(taskid) {
  3819. new HudAmmo[65]
  3820.  
  3821. format(HudAmmo, 64, "Grenades Left: [%d]", grenade_count[ID_HUDAMMO])
  3822.  
  3823. message_begin(MSG_ONE, g_msgStatusText, {0,0,0}, ID_HUDAMMO)
  3824. write_byte(0)
  3825. write_string(HudAmmo) // Text
  3826. message_end()
  3827.  
  3828. }
  3829. public hud_clear(id) {
  3830.  
  3831. message_begin(MSG_ONE, g_msgStatusText, {0,0,0}, id)
  3832. write_byte(0)
  3833. write_string("") // Text
  3834. message_end()
  3835. }
  3836.  
  3837. public FurienCurrentWeapon ( id ) {
  3838.  
  3839. new szKnife = get_user_weapon ( id );
  3840. if ( szKnife == CSW_KNIFE ) {
  3841. if ( katana_knife [ id ] && szKnife == CSW_KNIFE ) {
  3842.  
  3843. set_pev ( id, pev_viewmodel2, katana_knife_v_model );
  3844. set_pev ( id, pev_weaponmodel2, katana_knife_p_model );
  3845. //set_task ( 0.1, "Katana_Damage", id );
  3846.  
  3847. }
  3848.  
  3849. if ( double_katana_knife [ id ] && szKnife == CSW_KNIFE ) {
  3850.  
  3851. set_pev ( id, pev_viewmodel2, double_katana_v_knife_model );
  3852. set_pev ( id, pev_weaponmodel2, double_katana_p_knife_model );
  3853. //set_task ( 0.1, "Double_Katana_Damage", id );
  3854.  
  3855. }
  3856.  
  3857. if ( super_knife [ id ] && szKnife == CSW_KNIFE ) {
  3858.  
  3859. set_pev ( id, pev_viewmodel2, super_knife_v_model );
  3860. set_pev ( id, pev_weaponmodel2, super_knife_p_model );
  3861. //set_task ( 0.1, "Super_Knife_Damage", id );
  3862.  
  3863. }
  3864.  
  3865. if ( infinity_knife [ id ] && szKnife == CSW_KNIFE ) {
  3866.  
  3867. set_pev ( id, pev_viewmodel2, infinity_knife_v_model );
  3868. set_pev ( id, pev_weaponmodel2, infinity_knife_p_model );
  3869. //set_task ( 0.1, "Infinity_Knife_Damage", id );
  3870.  
  3871. }
  3872.  
  3873. if ( vip_axe_knife [ id ] && szKnife == CSW_KNIFE ) {
  3874.  
  3875. set_pev ( id, pev_viewmodel2, axe_knife_v_model );
  3876. set_pev ( id, pev_weaponmodel2, axe_knife_p_model );
  3877. //set_task ( 0.1, "VIP_Axe_Knife_Damage", id );
  3878.  
  3879. }
  3880.  
  3881. if ( elf_knife [ id ] && szKnife == CSW_KNIFE ) {
  3882.  
  3883. set_pev ( id, pev_viewmodel2, elf_knife_model );
  3884. //set_task ( 0.1, "Elf_Knife_Damage", id );
  3885.  
  3886. }
  3887.  
  3888. if ( ignes_knife [ id ] && szKnife == CSW_KNIFE ) {
  3889.  
  3890. set_pev ( id, pev_viewmodel2, ignes_knife_model );
  3891. //set_task ( 0.1, "Ignes_Knife_Damage", id );
  3892.  
  3893. }
  3894.  
  3895. if ( trainer [ id ] && szKnife == CSW_KNIFE ) {
  3896.  
  3897. set_pev ( id, pev_viewmodel2, trainer_v_model );
  3898. set_pev ( id, pev_weaponmodel2, trainer_p_model );
  3899. //set_task ( 0.1, "Trainer_Knife_Damage", id );
  3900.  
  3901. }
  3902.  
  3903. if ( super_knife_shop [ id ] && szKnife == CSW_KNIFE ) {
  3904. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
  3905. //set_task ( 0.1, "SK_Knife_Damage", id );
  3906. }
  3907.  
  3908. if ( super_knife_shop2 [ id ] && szKnife == CSW_KNIFE ) {
  3909. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
  3910. set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
  3911. //set_task ( 0.1, "SK2_Knife_Damage", id );
  3912. }
  3913. }
  3914.  
  3915. if ( strike_grenade [ id ] && szKnife == CSW_HEGRENADE && get_user_team ( id ) == 1 ) {
  3916.  
  3917. set_pev ( id, pev_viewmodel2, strike_grenade_v_model );
  3918. set_pev ( id, pev_weaponmodel2, strike_grenade_p_model );
  3919.  
  3920. }
  3921.  
  3922. if ( strike_grenade2 [ id ] && szKnife == CSW_HEGRENADE && get_user_team ( id ) == 1 ) {
  3923.  
  3924. set_pev ( id, pev_viewmodel2, strike_grenade_v_model );
  3925. set_pev ( id, pev_weaponmodel2, strike_grenade_p_model );
  3926.  
  3927. }
  3928.  
  3929. if ( strike_grenade3 [ id ] && szKnife == CSW_HEGRENADE && get_user_team ( id ) == 1 ) {
  3930.  
  3931. set_pev ( id, pev_viewmodel2, strike_grenade_v_model );
  3932. set_pev ( id, pev_weaponmodel2, strike_grenade_p_model );
  3933.  
  3934. }
  3935.  
  3936. else if ( !user_has_weapon ( id, CSW_KNIFE ) || ( !katana_knife [ id ] || !double_katana_knife || !super_knife || !infinity_knife || !vip_axe_knife || !ignes_knife || !elf_knife || !trainer ) )
  3937. {
  3938. give_item ( id, "weapon_knife" );
  3939. return 1;
  3940. }
  3941. return 1;
  3942. }
  3943.  
  3944. public AntiFurienCurrentWeapon ( id ) {
  3945.  
  3946. new szWeapon = get_user_weapon ( id );
  3947.  
  3948. if ( szWeapon == CSW_MP5NAVY ) {
  3949. if ( dual_mp5 [ id ] && szWeapon == CSW_MP5NAVY ) {
  3950.  
  3951. set_pev ( id, pev_viewmodel2, dual_mp5_v_model );
  3952. set_pev ( id, pev_weaponmodel2, dual_mp5_p_model );
  3953.  
  3954. }
  3955. }
  3956.  
  3957.  
  3958. if ( szWeapon == CSW_P90 ) {
  3959. if ( hunter [ id ] && szWeapon == CSW_P90 ) {
  3960.  
  3961. set_pev ( id, pev_viewmodel2, hunter_v_model );
  3962. set_pev ( id, pev_weaponmodel2, hunter_p_model );
  3963. //set_task ( 0.1, "Hunter_Damage", id );
  3964.  
  3965. }
  3966.  
  3967. if ( thompson [ id ] && szWeapon == CSW_P90 ) {
  3968.  
  3969. set_pev ( id, pev_viewmodel2, thompson_v_model );
  3970. set_pev ( id, pev_weaponmodel2, thompson_p_model );
  3971. //set_task ( 0.1, "Thompson_Damage", id );
  3972.  
  3973. }
  3974.  
  3975. if ( warrior [ id ] && szWeapon == CSW_P90 ) {
  3976.  
  3977. set_pev ( id, pev_viewmodel2, warrior_v_model );
  3978. set_pev ( id, pev_weaponmodel2, warrior_p_model );
  3979. //set_task ( 0.1, "Warrior_Damage", id );
  3980.  
  3981. }
  3982.  
  3983. if ( deklowaz [ id ] && szWeapon == CSW_P90 ) {
  3984.  
  3985. set_pev ( id, pev_viewmodel2, deklowaz_v_model );
  3986. set_pev ( id, pev_weaponmodel2, deklowaz_p_model );
  3987. //set_task ( 0.1, "Deklowaz_Damage", id );
  3988.  
  3989. }
  3990. }
  3991.  
  3992. if ( szWeapon == CSW_GALIL ) {
  3993. if ( mage [ id ] && szWeapon == CSW_GALIL ) {
  3994.  
  3995. set_pev ( id, pev_viewmodel2, mage_v_model );
  3996. set_pev ( id, pev_weaponmodel2, mage_p_model );
  3997. //set_task ( 0.1, "Mage_Damage", id );
  3998.  
  3999. }
  4000. }
  4001.  
  4002. if ( szWeapon == CSW_FAMAS ) {
  4003. if ( rogue [ id ] && szWeapon == CSW_FAMAS ) {
  4004.  
  4005. set_pev ( id, pev_viewmodel2, rogue_v_model );
  4006. set_pev ( id, pev_weaponmodel2, rogue_p_model );
  4007. //set_task ( 0.1, "Rogue_Damage", id );
  4008.  
  4009. }
  4010. }
  4011.  
  4012. if ( szWeapon == CSW_SG552 ) {
  4013. if ( shaman [ id ] && szWeapon == CSW_SG552 ) {
  4014.  
  4015. set_pev ( id, pev_viewmodel2, shaman_v_model );
  4016. set_pev ( id, pev_weaponmodel2, shaman_p_model );
  4017. //set_task ( 0.1, "Shaman_Damage", id );
  4018.  
  4019. }
  4020. }
  4021.  
  4022. if ( szWeapon == CSW_USP ) {
  4023. if ( uspx [ id ] && szWeapon == CSW_USP ) {
  4024.  
  4025. set_pev ( id, pev_viewmodel2, uspx_v_model );
  4026. set_pev ( id, pev_weaponmodel2, uspx_p_model );
  4027.  
  4028. }
  4029. }
  4030.  
  4031. if ( szWeapon == CSW_SMOKEGRENADE ) {
  4032. if ( flare [ id ] && szWeapon == CSW_SMOKEGRENADE && get_user_team ( id ) == 2 ) {
  4033.  
  4034. set_pev ( id, pev_viewmodel2, flare_v_model );
  4035.  
  4036. }
  4037. }
  4038.  
  4039. return 1;
  4040. }
  4041.  
  4042. public Spawn(id) {
  4043. remove_task(id);
  4044. HasChose[id] = false;
  4045. HE_Cooldown[id] = 0;
  4046. GodMode_Cooldown[id] = 0;
  4047. GodMode_DurationCooldown[id] = 0;
  4048. Drop_Cooldown[id] = 0;
  4049. Freeze_Cooldown[id] = 0;
  4050. remove_freeze ( id );
  4051. DragEnd ( id );
  4052. Drag_Cooldown[id] = 0;
  4053. Not_Cooldown[id] = false;
  4054. Teleport_Cooldown[id] = 0;
  4055. }
  4056.  
  4057. public remove_freeze(id) {
  4058. if (!Frozen[id] || !is_user_alive(id)) return;
  4059.  
  4060. Frozen[id] = false;
  4061. set_task(0.2, "set_normal", id);
  4062. engfunc(EngFunc_EmitSound, id, CHAN_BODY, FROSTBREAK_SND[random_num(0, sizeof FROSTBREAK_SND - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM);
  4063. fm_set_rendering(id);
  4064. static Float:origin2F[3];
  4065. pev(id, pev_origin, origin2F);
  4066. engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin2F, 0);
  4067. write_byte(TE_BREAKMODEL);
  4068. engfunc(EngFunc_WriteCoord, origin2F[0]);
  4069. engfunc(EngFunc_WriteCoord, origin2F[1]);
  4070. engfunc(EngFunc_WriteCoord, origin2F[2]+24.0);
  4071. write_coord(16);
  4072. write_coord(16);
  4073. write_coord(16);
  4074. write_coord(random_num(-50, 50));
  4075. write_coord(random_num(-50, 50));
  4076. write_coord(25);
  4077. write_byte(10);
  4078. write_short(FreezeSprite);
  4079. write_byte(10);
  4080. write_byte(25);
  4081. write_byte(BREAK_GLASS);
  4082. message_end();
  4083. }
  4084.  
  4085. public DragEnd(id) { // drags end function
  4086. LastHook[id] = get_gametime();
  4087. Hooked[id] = 0;
  4088. BeamRemove(id);
  4089. Drag_I[id] = false;
  4090. Unable2move[id] = false;
  4091. if(!Not_Cooldown[id] && HasPower[id] == 6) {
  4092. Drag_Cooldown[id] = get_pcvar_num(CvarDragCooldown);
  4093. set_task(1.0, "DragShowHUD", id, _, _, "b");
  4094. Not_Cooldown[id] = true;
  4095. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  4096. if(get_pcvar_num(CvarDragCooldown) != 1) {
  4097. show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarDragCooldown));
  4098. }
  4099. if(get_pcvar_num(CvarDragCooldown) == 1) {
  4100. show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarDragCooldown));
  4101. }
  4102. }
  4103. }
  4104.  
  4105. public BeamRemove(id) { // remove beam
  4106. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  4107. write_byte(99); //TE_KILLBEAM
  4108. write_short(id); //entity
  4109. message_end();
  4110. }
  4111.  
  4112. //------| Client Death |------//
  4113. public Death() {
  4114. new i = read_data ( 2 )
  4115. remove_task(read_data(2));
  4116. HE_Cooldown[read_data(2)] = 0;
  4117. GodMode_Cooldown[read_data(2)] = 0;
  4118. GodMode_DurationCooldown[read_data(2)] = 0;
  4119. Drop_Cooldown[read_data(2)] = 0;
  4120. Freeze_Cooldown[read_data(2)] = 0;
  4121. Freeze_Cooldown[read_data(2)] = 0;
  4122. remove_freeze ( i );
  4123. BeamRemove ( i );
  4124. Drag_Cooldown[read_data(2)] = 0;
  4125. if (Hooked[read_data(2)])
  4126. DragEnd ( i );
  4127.  
  4128. Not_Cooldown[read_data(2)] = false;
  4129. Teleport_Cooldown[read_data(2)] = 0;
  4130. }
  4131.  
  4132. //------| Client Power |------//
  4133. public Power(id) {
  4134. new target, body;
  4135. static Float:start[3];
  4136. static Float:aim[3];
  4137.  
  4138. pev(id, pev_origin, start);
  4139. fm_get_aim_origin(id, aim);
  4140.  
  4141. start[2] += 16.0; // raise
  4142. aim[2] += 16.0; // raise
  4143.  
  4144. if ( is_user_alive(id) && HasPower[id] == 4) {
  4145.  
  4146. if (Drop_Cooldown[id]) {
  4147. ColorChat(id, GREEN, "%s Puterea iti va reveni in^4 %d^3 secunde .^4", szPrefix, Drop_Cooldown[id]);
  4148. return PLUGIN_CONTINUE;
  4149. }
  4150. get_user_aiming (id, target, body, CvarDropDistance);
  4151. if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {
  4152. message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
  4153. write_byte(TE_EXPLOSION);
  4154. engfunc(EngFunc_WriteCoord, aim[0]);
  4155. engfunc(EngFunc_WriteCoord, aim[1]);
  4156. engfunc(EngFunc_WriteCoord, aim[2]);
  4157. write_short(DropSprite2);
  4158. write_byte(10);
  4159. write_byte(30);
  4160. write_byte(4);
  4161. message_end();
  4162.  
  4163. emit_sound(id, CHAN_WEAPON, DROP_HIT_SND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
  4164. set_task ( 0.1, "Drop", target );
  4165. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id);
  4166. write_short(1<<10);
  4167. write_short(1<<10);
  4168. write_short(0x0000);
  4169. write_byte(230);
  4170. write_byte(0);
  4171. write_byte(0);
  4172. write_byte(50);
  4173. message_end();
  4174. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, target);
  4175. write_short(1<<10);
  4176. write_short(1<<10);
  4177. write_short(0x0000);
  4178. write_byte(230);
  4179. write_byte(0);
  4180. write_byte(0);
  4181. write_byte(50);
  4182. message_end();
  4183. }
  4184. message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  4185. write_byte(0);
  4186. engfunc(EngFunc_WriteCoord,start[0]);
  4187. engfunc(EngFunc_WriteCoord,start[1]);
  4188. engfunc(EngFunc_WriteCoord,start[2]);
  4189. engfunc(EngFunc_WriteCoord,aim[0]);
  4190. engfunc(EngFunc_WriteCoord,aim[1]);
  4191. engfunc(EngFunc_WriteCoord,aim[2]);
  4192. write_short(DropSprite); // sprite index
  4193. write_byte(0); // start frame
  4194. write_byte(30); // frame rate in 0.1's
  4195. write_byte(20); // life in 0.1's
  4196. write_byte(50); // line width in 0.1's
  4197. write_byte(50); // noise amplititude in 0.01's
  4198. write_byte(0); // red
  4199. write_byte(100); // green
  4200. write_byte(0); // blue
  4201. write_byte(100); // brightness
  4202. write_byte(50); // scroll speed in 0.1's
  4203. message_end();
  4204. Drop_Cooldown[id] = get_pcvar_num(CvarDropCooldown);
  4205. set_task(1.0, "DropShowHUD", id, _, _, "b");
  4206. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  4207. if(get_pcvar_num(CvarDropCooldown) != 1) {
  4208. show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarDropCooldown));
  4209. }
  4210. if(get_pcvar_num(CvarDropCooldown) == 1) {
  4211. show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarDropCooldown));
  4212. }
  4213. return PLUGIN_HANDLED;
  4214. }
  4215.  
  4216. else if (is_user_alive(id) && HasPower[id] == 5) {
  4217. if (Freeze_Cooldown[id]) {
  4218. ColorChat(id, GREEN, "%s Puterea iti va reveni in^4 %d^3 secunde .^4", szPrefix,Freeze_Cooldown[id]);
  4219. return PLUGIN_CONTINUE;
  4220. }
  4221. get_user_aiming (id, target, body, CvarFreezeDistance);
  4222. if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {
  4223. set_task ( 0.1, "Freeze", target );
  4224.  
  4225. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id);
  4226. write_short(1<<10);
  4227. write_short(1<<10);
  4228. write_short(0x0000);
  4229. write_byte(0);
  4230. write_byte(100);
  4231. write_byte(200);
  4232. write_byte(50);
  4233. message_end();
  4234. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, target);
  4235. write_short(1<<10);
  4236. write_short(1<<10);
  4237. write_short(0x0000);
  4238. write_byte(0);
  4239. write_byte(100);
  4240. write_byte(200);
  4241. write_byte(50);
  4242. message_end();
  4243. }
  4244. message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
  4245. write_byte(0);
  4246. engfunc(EngFunc_WriteCoord,start[0]);
  4247. engfunc(EngFunc_WriteCoord,start[1]);
  4248. engfunc(EngFunc_WriteCoord,start[2]);
  4249. engfunc(EngFunc_WriteCoord,aim[0]);
  4250. engfunc(EngFunc_WriteCoord,aim[1]);
  4251. engfunc(EngFunc_WriteCoord,aim[2]);
  4252. write_short(FreezeSprite3); // sprite index
  4253. write_byte(0); // start frame
  4254. write_byte(30); // frame rate in 0.1's
  4255. write_byte(20); // life in 0.1's
  4256. write_byte(50); // line width in 0.1's
  4257. write_byte(50); // noise amplititude in 0.01's
  4258. write_byte(0); // red
  4259. write_byte(100); // green
  4260. write_byte(200); // blue
  4261. write_byte(100); // brightness
  4262. write_byte(50); // scroll speed in 0.1's
  4263. message_end();
  4264. set_user_health ( target, get_user_health ( target ) - 5 );
  4265. set_dhudmessage ( 255, 0, 0, 0.02, 0.90, 0, 6.0, 1.0 );
  4266. show_dhudmessage ( id, "-5 HP" );
  4267. Freeze_Cooldown[id] = get_pcvar_num(CvarFreezeCooldown);
  4268. set_task(1.0, "FreezeShowHUD", id, _, _, "b");
  4269. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  4270. if(get_pcvar_num(CvarFreezeCooldown) != 1) {
  4271. show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarFreezeCooldown));
  4272. }
  4273. if(get_pcvar_num(CvarFreezeCooldown) == 1) {
  4274. show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarFreezeCooldown));
  4275. }
  4276. return PLUGIN_HANDLED;
  4277. }
  4278. else if (is_user_alive(id) && HasPower[id] == 7) {
  4279. if (Teleport_Cooldown[id]) {
  4280. ColorChat(id, GREEN, "%s Puterea iti va reveni in^4 %d^3 secunde .^4", szPrefix, Teleport_Cooldown[id]);
  4281. return PLUGIN_CONTINUE;
  4282. }
  4283. if (teleport(id)) {
  4284. emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM);
  4285. remove_task(id);
  4286. Teleport_Cooldown[id] = get_pcvar_num(CvarTeleportCooldown);
  4287. set_task(1.0, "TeleportShowHUD", id, _, _, "b");
  4288. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  4289. if(get_pcvar_num(CvarTeleportCooldown) != 1) {
  4290. show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarTeleportCooldown));
  4291. }
  4292. if(get_pcvar_num(CvarTeleportCooldown) == 1) {
  4293. show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarTeleportCooldown));
  4294. }
  4295. return PLUGIN_HANDLED;
  4296. }
  4297. else {
  4298. Teleport_Cooldown[id] = 0;
  4299. ColorChat(id, GREEN, "%s Pozitia de teleportare este invalida .", szPrefix);
  4300. return PLUGIN_HANDLED;
  4301. }
  4302. return PLUGIN_HANDLED;
  4303. }
  4304. return PLUGIN_CONTINUE;
  4305. }
  4306.  
  4307. bool:teleport(id) {
  4308. new Float:vOrigin[3], Float:vNewOrigin[3],
  4309. Float:vNormal[3], Float:vTraceDirection[3],
  4310. Float:vTraceEnd[3];
  4311.  
  4312. pev(id, pev_origin, vOrigin);
  4313.  
  4314. velocity_by_aim(id, get_pcvar_num(CvarTeleportRange), vTraceDirection);
  4315. xs_vec_add(vTraceDirection, vOrigin, vTraceEnd);
  4316.  
  4317. engfunc(EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0);
  4318.  
  4319. new Float:flFraction;
  4320. get_tr2(0, TR_flFraction, flFraction);
  4321. if (flFraction < 1.0) {
  4322. get_tr2(0, TR_vecEndPos, vTraceEnd);
  4323. get_tr2(0, TR_vecPlaneNormal, vNormal);
  4324. }
  4325.  
  4326. xs_vec_mul_scalar(vNormal, 40.0, vNormal); // do not decrease the 40.0
  4327. xs_vec_add(vTraceEnd, vNormal, vNewOrigin);
  4328.  
  4329. if (is_player_stuck(id, vNewOrigin))
  4330. return false;
  4331.  
  4332. emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM);
  4333. tele_effect(vOrigin);
  4334.  
  4335. engfunc(EngFunc_SetOrigin, id, vNewOrigin);
  4336.  
  4337. tele_effect2(vNewOrigin);
  4338.  
  4339. return true;
  4340. }
  4341.  
  4342. public cmdShowXp ( id ) {
  4343.  
  4344. ColorChat ( id, GREEN, "%s Ai ^4%d^3 XP, iar levelul tau este ^4%s^3 .", szPrefix, eXP [ id ], Prefix [ Level [ id ] ] );
  4345. ShowHud ( id );
  4346.  
  4347. }
  4348.  
  4349. public cmdSaveXp ( id ) {
  4350.  
  4351. ColorChat ( id, GREEN, "%s Ti-ai salvat XP-ul cu succes .", szPrefix );
  4352. ShowHud ( id );
  4353.  
  4354. }
  4355.  
  4356. public cmdShowLevel ( id ) {
  4357.  
  4358. ColorChat ( id, GREEN, "%s Levelul tau este ^4%s^3 .", szPrefix, Prefix [ Level [ id ] ] );
  4359.  
  4360. }
  4361.  
  4362. public cmdShowLevels ( id ) {
  4363.  
  4364. ColorChat ( id, GREEN, "%s In total sunt^4 30^3 levele .", szPrefix );
  4365.  
  4366. }
  4367.  
  4368. public cmdClearXp ( id ) {
  4369.  
  4370. ColorChat ( id, GREEN, "%s Ti-ai sters XP-ul cu succes .", szPrefix );
  4371. eXP [ id ] -= eXP [ id ];
  4372. Level [ id ] -= Level [ id ];
  4373. }
  4374.  
  4375. public cmdRefreshXP ( id ) {
  4376.  
  4377. Level [ id ] -= Level [ id ];
  4378. ColorChat ( id, GREEN, "%s Ti-ai reimprospatat Xp-ul cu succes !", szPrefix );
  4379.  
  4380. if ( !is_user_bot ( id ) && ( Level [ id ] < 30) && ( eXP [ id ] >= Levels [ Level [ id ] ] ) )
  4381. {
  4382. while ( eXP [ id ] >= Levels [ Level [ id ] ] )
  4383. {
  4384. Level [ id ] += 1;
  4385. }
  4386. }
  4387. }
  4388.  
  4389. public cmdRefreshXP2 ( id ) {
  4390.  
  4391. Level [ id ] -= Level [ id ];
  4392. // ColorChat ( id, GREEN, "%s Ti-ai reimprospatat Xp-ul cu succes !", szPrefix );
  4393.  
  4394. if ( !is_user_bot ( id ) && ( Level [ id ] < 30) && ( eXP [ id ] >= Levels [ Level [ id ] ] ) )
  4395. {
  4396. while ( eXP [ id ] >= Levels [ Level [ id ] ] )
  4397. {
  4398. Level [ id ] += 1;
  4399. }
  4400. }
  4401. }
  4402.  
  4403. public cmdXpTop15 ( id ) {
  4404.  
  4405. new i, count;
  4406. static sort [ 33 ] [ 2 ], maxPlayers;
  4407.  
  4408. if ( !maxPlayers ) maxPlayers = get_maxplayers ( );
  4409.  
  4410. for ( i= 1; i <= maxPlayers; i++ )
  4411. {
  4412. sort [ count ][ 0 ] = i;
  4413. sort [ count ][ 1 ] = Level [ i ];
  4414. count++;
  4415. }
  4416.  
  4417. SortCustom2D ( sort,count, "stats_custom_compare" );
  4418.  
  4419. new motd [ 1024 ], len;
  4420.  
  4421. len = format ( motd, 1023, "<body bgcolor=#000000><center><font color=#FFB000><pre>" );
  4422. len += format ( motd [ len ], 1023-len,"%s %-22.22s %3s^n", "#", "Name", "Level" );
  4423.  
  4424. new players [ 32 ], num;
  4425. get_players ( players, num );
  4426.  
  4427. new b = clamp ( count,0,15 );
  4428.  
  4429. new name [ 32 ], player;
  4430.  
  4431. for ( new a = 0; a < b; a++ )
  4432. {
  4433. player = sort [ a ] [ 0 ];
  4434.  
  4435. get_user_name ( player, name, 31 );
  4436. len += format ( motd [ len ], 1023-len,"%d %-22.22s %d^n", a+1, name, sort [ a ] [ 1 ] );
  4437. }
  4438.  
  4439. len += format ( motd [ len ], 1023-len,"</body></font></pre></center>" );
  4440. show_motd( id, motd, "Level Top 15" );
  4441.  
  4442. return PLUGIN_CONTINUE;
  4443. }
  4444.  
  4445. public stats_custom_compare ( elem1 [ ], elem2 [ ] ) {
  4446.  
  4447. if ( elem1 [ 1 ] > elem2 [ 1 ] ) return -1;
  4448. else if ( elem1 [ 1 ] < elem2 [ 1 ] ) return 1;
  4449.  
  4450. return 0;
  4451. }
  4452.  
  4453. public cmdGiveXp ( id, level, cid ) {
  4454.  
  4455. if(!cmd_access(id, level, cid, 3))
  4456. return PLUGIN_HANDLED;
  4457.  
  4458. new target[32], amount[21], reason[21], gplayers[32], players, num, i;
  4459.  
  4460. read_argv(1, target, 31);
  4461. read_argv(2, amount, 20);
  4462. read_argv(3, reason, 20);
  4463.  
  4464. new player = cmd_target(id, target, 8);
  4465.  
  4466. if(!player)
  4467. return PLUGIN_HANDLED;
  4468.  
  4469. new admin_name[32], player_name[32];
  4470. get_user_name(id, admin_name, 31);
  4471. get_user_name(player, player_name, 31);
  4472. new expnum = str_to_num(amount);
  4473.  
  4474. ColorChat ( 0, GREEN, "^4ADMIN ^3%s^1: ^1give ^4%s ^1xp to ^3%s ^1%s", admin_name, amount, player_name, reason );
  4475.  
  4476. eXP [ player ] += expnum;
  4477. cmdRefreshXP2 ( player );
  4478. SaveData ( player );
  4479.  
  4480. if(equali(target, "@All") || equali ( target, "all" ) ) {
  4481.  
  4482. get_players(gplayers, num, "a");
  4483. for(i = 0; i < num; i++) {
  4484. players = gplayers[i];
  4485. if(!is_user_connected(players))
  4486. continue;
  4487. eXP [ players ] += expnum;
  4488. SaveData(players);
  4489. ColorChat ( 0, GREEN, "^4ADMIN ^3%s^1: ^1give ^4%s ^1xp to ^3All Players ^1%s", admin_name, amount, reason );
  4490. }
  4491. }
  4492.  
  4493. return PLUGIN_CONTINUE;
  4494. }
  4495.  
  4496. public cmdSetXp ( id, level, cid ) {
  4497.  
  4498. if(!cmd_access(id, level, cid, 3))
  4499. return PLUGIN_HANDLED;
  4500.  
  4501. new target[32], amount[21], reason[21];
  4502.  
  4503. read_argv(1, target, 31);
  4504. read_argv(2, amount, 20);
  4505. read_argv(3, reason, 20);
  4506.  
  4507. new player = cmd_target(id, target, 8);
  4508.  
  4509. if(!player)
  4510. return PLUGIN_HANDLED;
  4511.  
  4512. new admin_name[32], player_name[32];
  4513. get_user_name(id, admin_name, 31);
  4514. get_user_name(player, player_name, 31);
  4515.  
  4516. new expnum = str_to_num(amount);
  4517. ColorChat ( 0, GREEN, "^4ADMIN ^3%s^1: ^1set ^4%s ^1xp to ^3%s ^1%s", admin_name, amount, player_name, reason );
  4518.  
  4519. eXP [ player ] = expnum;
  4520. cmdRefreshXP2 ( player );
  4521. SaveData ( player );
  4522.  
  4523. return PLUGIN_CONTINUE;
  4524. }
  4525.  
  4526. public fwd_setmodel(ent, const model[]) {
  4527. if(!pev_valid(ent) || !equal(model[9], "smokegrenade.mdl"))
  4528. return FMRES_IGNORED;
  4529.  
  4530. static classname[32]; pev(ent, pev_classname, classname, 31);
  4531. if(equal(classname, "grenade") && 1)
  4532. {
  4533. engfunc(EngFunc_SetModel, ent, flare_w_model);
  4534. set_pev(ent, pev_effects, EF_BRIGHTLIGHT);
  4535. set_pev(ent, pev_iuser4, 1337);
  4536. set_pev(ent, pev_nextthink, get_gametime() + 999.9);
  4537. fm_set_rendering2(ent, kRenderFxGlowShell, 150, 150, 250, kRenderNormal, 16);
  4538.  
  4539. return FMRES_SUPERCEDE;
  4540. }
  4541. return FMRES_IGNORED;
  4542. }
  4543.  
  4544. public fwd_think(ent) if(pev_valid(ent) && is_ent_flare(ent))
  4545. engfunc(EngFunc_RemoveEntity, ent);
  4546.  
  4547. public GetRandomPlayer ( ) {
  4548.  
  4549. new players[32], count;
  4550. get_players(players, count, "a");
  4551.  
  4552. if(count)
  4553. {
  4554. new iPlayer = players[random(count)];
  4555.  
  4556. new Name[32];
  4557. get_user_name(iPlayer, Name, charsmax(Name));
  4558. set_user_credits ( iPlayer, get_user_credits ( iPlayer ) + 1 );
  4559.  
  4560. ColorChat ( iPlayer, GREEN, "%s Felicitari ! Ai primit^4 1^3 credit .^4", szPrefix );
  4561. ColorChat ( 0, GREEN, "%s^4 %s^3 a primit^4 1^3 credit .^4", szPrefix, Name );
  4562. }
  4563. }
  4564.  
  4565. public GiveQuadBarrel(id, itemid)
  4566. {
  4567. if(itemid != g_quad_barrel)
  4568. return PLUGIN_HANDLED
  4569.  
  4570. g_had_qb[id] = 1
  4571. new ent = give_item(id, "weapon_xm1014")
  4572.  
  4573. cs_set_weapon_ammo(ent, get_pcvar_num(cvar_default_clip))
  4574. cs_set_user_bpammo(id, CSW_QB, 10)
  4575.  
  4576. set_pdata_float(id, 83, 1.0, 4)
  4577. set_weapon_anim(id, 4)
  4578.  
  4579. return PLUGIN_CONTINUE
  4580. }
  4581.  
  4582. public check_draw_weapon(id)
  4583. {
  4584. set_task(0.001, "do_check", id)
  4585. }
  4586.  
  4587. public do_check(id)
  4588. {
  4589. if(get_user_weapon(id) == CSW_QB && g_had_qb[id])
  4590. {
  4591. set_weapon_anim(id, 4)
  4592. }
  4593. }
  4594.  
  4595. public event_curweapon_quad(id)
  4596. {
  4597. if(!is_user_alive(id) || !is_user_connected(id))
  4598. return
  4599. if(get_user_weapon(id) != CSW_QB || !g_had_qb[id])
  4600. return
  4601.  
  4602. set_pev(id, pev_viewmodel2, qb_v_model)
  4603. set_pev(id, pev_weaponmodel2, qb_p_model)
  4604.  
  4605. return
  4606. }
  4607.  
  4608. public fw_UpdateClientData_Post_qb(id, sendweapons, cd_handle)
  4609. {
  4610. if(!is_user_alive(id) || !is_user_connected(id))
  4611. return FMRES_IGNORED
  4612. if(get_user_weapon(id) != CSW_QB || !g_had_qb[id])
  4613. return FMRES_IGNORED
  4614.  
  4615. set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)
  4616.  
  4617. return FMRES_HANDLED
  4618. }
  4619.  
  4620. public TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], ptr, iDamageType)
  4621. {
  4622. if(!is_user_alive(iAttacker) || !is_user_connected(iAttacker))
  4623. return HAM_IGNORED
  4624. if(get_user_weapon(iAttacker) != CSW_QB || !g_had_qb[iAttacker])
  4625. return HAM_IGNORED
  4626.  
  4627. static Float:flEnd[3]
  4628. get_tr2(ptr, TR_vecEndPos, flEnd)
  4629.  
  4630. make_bullet(iAttacker, flEnd)
  4631.  
  4632. return HAM_HANDLED
  4633. }
  4634.  
  4635. public fw_takedmg(victim, inflictor, attacker, Float:damage, damagebits)
  4636. {
  4637. if(!is_user_alive(victim) || !is_user_alive(attacker))
  4638. return HAM_IGNORED
  4639.  
  4640.  
  4641. if(get_user_weapon(attacker) == CSW_QB && g_had_qb[attacker])
  4642. {
  4643. static Float:random_start, Float:random_end
  4644.  
  4645. random_start = get_pcvar_float(cvar_randmg_start)
  4646. random_end = get_pcvar_float(cvar_randmg_end)
  4647.  
  4648. SetHamParamFloat(4, random_float(random_start, random_end))
  4649. }
  4650.  
  4651. return HAM_HANDLED
  4652. }
  4653.  
  4654. public make_bullet(id, Float:Origin[3])
  4655. {
  4656. // Find target
  4657. new target, body
  4658. get_user_aiming(id, target, body, 999999)
  4659.  
  4660. if(target > 0 && target <= get_maxplayers())
  4661. {
  4662. new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
  4663. pev(id, pev_origin, fStart)
  4664.  
  4665. // Get ids view direction
  4666. velocity_by_aim(id, 64, fVel)
  4667.  
  4668. // Calculate position where blood should be displayed
  4669. fStart[0] = Origin[0]
  4670. fStart[1] = Origin[1]
  4671. fStart[2] = Origin[2]
  4672. fEnd[0] = fStart[0]+fVel[0]
  4673. fEnd[1] = fStart[1]+fVel[1]
  4674. fEnd[2] = fStart[2]+fVel[2]
  4675.  
  4676. // Draw traceline from victims origin into ids view direction to find
  4677. // the location on the wall to put some blood on there
  4678. new res
  4679. engfunc(EngFunc_TraceLine, fStart, fEnd, 0, target, res)
  4680. get_tr2(res, TR_vecEndPos, fRes)
  4681.  
  4682. // Show some blood :)
  4683. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  4684. write_byte(TE_BLOODSPRITE)
  4685. write_coord(floatround(fStart[0]))
  4686. write_coord(floatround(fStart[1]))
  4687. write_coord(floatround(fStart[2]))
  4688. write_short(g_bloodspray)
  4689. write_short(g_blood)
  4690. write_byte(70)
  4691. write_byte(random_num(1,2))
  4692. message_end()
  4693.  
  4694.  
  4695. } else {
  4696. new decal = 41
  4697.  
  4698. // Check if the wall hit is an entity
  4699. if(target)
  4700. {
  4701. // Put decal on an entity
  4702. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  4703. write_byte(TE_DECAL)
  4704. write_coord(floatround(Origin[0]))
  4705. write_coord(floatround(Origin[1]))
  4706. write_coord(floatround(Origin[2]))
  4707. write_byte(decal)
  4708. write_short(target)
  4709. message_end()
  4710. } else {
  4711. // Put decal on "world" (a wall)
  4712. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  4713. write_byte(TE_WORLDDECAL)
  4714. write_coord(floatround(Origin[0]))
  4715. write_coord(floatround(Origin[1]))
  4716. write_coord(floatround(Origin[2]))
  4717. write_byte(decal)
  4718. message_end()
  4719. }
  4720.  
  4721. // Show sparcles
  4722. message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  4723. write_byte(TE_GUNSHOTDECAL)
  4724. write_coord(floatround(Origin[0]))
  4725. write_coord(floatround(Origin[1]))
  4726. write_coord(floatround(Origin[2]))
  4727. write_short(id)
  4728. write_byte(decal)
  4729. message_end()
  4730. }
  4731. }
  4732.  
  4733. public fm_cmdstart(id, uc_handle, seed)
  4734. {
  4735. if(!is_user_alive(id) || !is_user_connected(id))
  4736. return
  4737.  
  4738. if(get_user_weapon(id) != CSW_QB || !g_had_qb[id])
  4739. return
  4740.  
  4741. new CurButton
  4742. CurButton = get_uc(uc_handle, UC_Buttons)
  4743.  
  4744. if(CurButton & IN_RELOAD)
  4745. {
  4746. CurButton &= ~IN_RELOAD
  4747. set_uc(uc_handle, UC_Buttons, CurButton)
  4748. new ent = find_ent_by_owner(-1, "weapon_xm1014", id)
  4749.  
  4750. if (!ent)
  4751. return
  4752.  
  4753. new fInReload = get_pdata_int(ent, m_fInReload, 4)
  4754.  
  4755. new Float:flNextAttack ; flNextAttack = get_pdata_float(id, m_flNextAttack, 5)
  4756.  
  4757. if (flNextAttack > 0.0)
  4758. return
  4759.  
  4760. if (fInReload)
  4761. {
  4762. set_weapon_anim(id, 0)
  4763. return
  4764. }
  4765. if(cs_get_weapon_ammo(ent) >= get_pcvar_num(cvar_default_clip))
  4766. {
  4767. set_weapon_anim(id, 0)
  4768. return
  4769. }
  4770.  
  4771. ham_reload(ent)
  4772. }
  4773.  
  4774. if(CurButton & IN_ATTACK2)
  4775. {
  4776. static Float:CurTime
  4777. CurTime = get_gametime()
  4778.  
  4779. if(CurTime - 4.0 > g_last_fire_qb[id])
  4780. {
  4781. static ent, ammo
  4782. ent = find_ent_by_owner(-1, "weapon_xm1014", id)
  4783. ammo = cs_get_weapon_ammo(ent)
  4784.  
  4785. if(cs_get_weapon_ammo(ent) <= 0)
  4786. return
  4787.  
  4788. for(new i = 0; i < ammo; i++)
  4789. {
  4790. ExecuteHamB(Ham_Weapon_PrimaryAttack, ent)
  4791. }
  4792.  
  4793. emit_sound(id, CHAN_WEAPON, qb_sound[4], 1.0, ATTN_NORM, 0, PITCH_NORM)
  4794. set_weapon_anim(id, random_num(1, 2))
  4795.  
  4796. g_last_fire_qb[id] = CurTime
  4797. }
  4798. }
  4799.  
  4800. if(CurButton & IN_ATTACK)
  4801. {
  4802. static Float:CurTime
  4803. CurTime = get_gametime()
  4804.  
  4805. CurButton &= ~IN_ATTACK
  4806. set_uc(uc_handle, UC_Buttons, CurButton)
  4807.  
  4808. static ent
  4809. ent = find_ent_by_owner(-1, "weapon_xm1014", id)
  4810.  
  4811. if(cs_get_weapon_ammo(ent) <= 0 || get_pdata_int(ent, m_fInReload, XTRA_OFS_WEAPON))
  4812. return
  4813.  
  4814. if(CurTime - get_pcvar_float(cvar_delayattack) > g_last_fire2[id])
  4815. {
  4816. emit_sound(id, CHAN_WEAPON, qb_sound[4], 1.0, ATTN_NORM, 0, PITCH_NORM)
  4817.  
  4818. ExecuteHamB(Ham_Weapon_PrimaryAttack, ent)
  4819. set_weapon_anim(id, random_num(1, 2))
  4820.  
  4821. g_last_fire2[id] = CurTime
  4822. }
  4823.  
  4824. }
  4825.  
  4826. return
  4827. }
  4828.  
  4829. public ham_reload(iEnt)
  4830. {
  4831. new id = pev(iEnt, pev_owner)
  4832.  
  4833. if( g_had_qb[id])
  4834. {
  4835. static Cur_BpAmmo
  4836. Cur_BpAmmo = cs_get_user_bpammo(id, CSW_QB)
  4837.  
  4838. if(Cur_BpAmmo > 0)
  4839. {
  4840. set_pdata_int(iEnt, 55, 0, 4)
  4841. set_pdata_float(id, 83, get_pcvar_float(cvar_reloadtime), 4)
  4842. set_pdata_float(iEnt, 48, get_pcvar_float(cvar_reloadtime) + 0.5, 4)
  4843. set_pdata_float(iEnt, 46, get_pcvar_float(cvar_reloadtime) + 0.25, 4)
  4844. set_pdata_float(iEnt, 47, get_pcvar_float(cvar_reloadtime) + 0.25, 4)
  4845. set_pdata_int(iEnt, 54, 1, 4)
  4846.  
  4847. set_weapon_anim(id, 3)
  4848. }
  4849.  
  4850. return HAM_HANDLED
  4851. }
  4852. return HAM_IGNORED
  4853.  
  4854. }
  4855.  
  4856. public fw_SetModel_qb(entity, model[])
  4857. {
  4858. if(!is_valid_ent(entity))
  4859. return FMRES_IGNORED;
  4860.  
  4861. static szClassName[33]
  4862. entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
  4863.  
  4864. if(!equal(szClassName, "weaponbox"))
  4865. return FMRES_IGNORED;
  4866.  
  4867. static iOwner
  4868. iOwner = entity_get_edict(entity, EV_ENT_owner)
  4869.  
  4870. if(equal(model, "models/w_xm1014.mdl"))
  4871. {
  4872. static weapon
  4873. weapon = find_ent_by_owner(-1, "weapon_xm1014", entity)
  4874.  
  4875. if(!is_valid_ent(weapon))
  4876. return FMRES_IGNORED;
  4877.  
  4878. if(g_had_qb[iOwner])
  4879. {
  4880. entity_set_int(weapon, EV_INT_impulse, 120)
  4881. g_had_qb[iOwner] = 0
  4882. set_pev(weapon, pev_iuser3, cs_get_weapon_ammo(weapon))
  4883. entity_set_model(entity, qb_w_model)
  4884.  
  4885. return FMRES_SUPERCEDE
  4886. }
  4887. }
  4888.  
  4889. return FMRES_IGNORED;
  4890. }
  4891.  
  4892. public fw_item_addtoplayer_qb(ent, id)
  4893. {
  4894. if(!is_valid_ent(ent))
  4895. return HAM_IGNORED
  4896.  
  4897.  
  4898. if(entity_get_int(ent, EV_INT_impulse) == 120)
  4899. {
  4900. g_had_qb[id] = 1
  4901. cs_set_weapon_ammo(ent, pev(ent, pev_iuser3))
  4902.  
  4903. entity_set_int(id, EV_INT_impulse, 0)
  4904. check_draw_weapon(id)
  4905.  
  4906. return HAM_HANDLED
  4907. }
  4908.  
  4909. return HAM_HANDLED
  4910. }
  4911.  
  4912. public ham_priattack(ent)
  4913. {
  4914. static id
  4915. id = pev(ent, pev_owner)
  4916.  
  4917. if(g_had_qb[id])
  4918. {
  4919. if(cs_get_weapon_ammo(ent) > 0)
  4920. {
  4921. emit_sound(id, CHAN_WEAPON, qb_sound[4], 1.0, ATTN_NORM, 0, PITCH_NORM)
  4922. }
  4923.  
  4924. set_pdata_float(id, 83, 0.3, 4)
  4925. }
  4926. }
  4927.  
  4928. public ham_postframe(iEnt)
  4929. {
  4930. new id = pev(iEnt, pev_owner)
  4931.  
  4932. if(g_had_qb[id])
  4933. {
  4934. static iBpAmmo ; iBpAmmo = get_pdata_int(id, 381, XTRA_OFS_PLAYER)
  4935. static iClip ; iClip = get_pdata_int(iEnt, m_iClip, XTRA_OFS_WEAPON)
  4936. static iMaxClip ; iMaxClip = get_pcvar_num(cvar_default_clip)
  4937.  
  4938. if(get_pdata_int(iEnt, m_fInReload, XTRA_OFS_WEAPON) && get_pdata_float(id, m_flNextAttack, 5) <= 0.0 )
  4939. {
  4940. new j = min(iMaxClip - iClip, iBpAmmo)
  4941. set_pdata_int(iEnt, m_iClip, iClip + j, XTRA_OFS_WEAPON)
  4942. set_pdata_int(id, 381, iBpAmmo-j, XTRA_OFS_PLAYER)
  4943.  
  4944. set_pdata_int(iEnt, m_fInReload, 0, XTRA_OFS_WEAPON)
  4945. cs_set_weapon_ammo(iEnt, get_pcvar_num(cvar_default_clip))
  4946.  
  4947. return
  4948. }
  4949. }
  4950. }
  4951.  
  4952. public ShowSalamanderIcon ( id ) {
  4953.  
  4954. if ( user_has_weapon ( id, CSW_M249 ) && ( salamander [ id ] ) ) {
  4955.  
  4956. new iconstatus;
  4957. iconstatus = get_user_msgid ( "StatusIcon" );
  4958.  
  4959. if ( ! ( pev ( id,pev_button ) & FL_ONGROUND ) )
  4960. {
  4961. message_begin ( MSG_ONE,iconstatus,{ 0,0,0 },id );
  4962. write_byte ( 1 ); // status (0=hide, 1=show, 2=flash)
  4963. write_string ( "dmg_heat" ); // sprite name
  4964. write_byte ( 255 ); // red
  4965. write_byte ( 0 ); // green
  4966. write_byte ( 0 ); // blue
  4967. message_end ( );
  4968. }
  4969.  
  4970. }
  4971.  
  4972. if ( get_user_weapon ( id ) == CSW_M249 && ( salamander [ id ] ) ) {
  4973.  
  4974. new iconstatus;
  4975. iconstatus = get_user_msgid ( "StatusIcon" );
  4976.  
  4977. if ( ! ( pev ( id,pev_button ) & FL_ONGROUND ) )
  4978. {
  4979. message_begin ( MSG_ONE,iconstatus,{ 0,0,0 },id );
  4980. write_byte ( 2 ); // status (0=hide, 1=show, 2=flash)
  4981. write_string ( "dmg_heat" ); // sprite name
  4982. write_byte ( 255 ); // red
  4983. write_byte ( 0 ); // green
  4984. write_byte ( 0 ); // blue
  4985. message_end ( );
  4986. }
  4987. }
  4988.  
  4989. if ( !salamander [ id ] || !user_has_weapon ( id, CSW_M249 ) ) {
  4990.  
  4991. new iconstatus;
  4992. iconstatus = get_user_msgid ( "StatusIcon" );
  4993.  
  4994. if ( ! ( pev ( id,pev_button ) & FL_ONGROUND ) )
  4995. {
  4996. message_begin ( MSG_ONE,iconstatus,{ 0,0,0 },id );
  4997. write_byte ( 0 ); // status (0=hide, 1=show, 2=flash)
  4998. write_string ( "dmg_heat" ); // sprite name
  4999. write_byte ( 255 ); // red
  5000. write_byte ( 0 ); // green
  5001. write_byte ( 0 ); // blue
  5002. message_end ( );
  5003. }
  5004. }
  5005.  
  5006. }
  5007.  
  5008. public fw_spawn ( id ) {
  5009. if(g_had_salamander[id])
  5010. g_had_salamander[id] = false
  5011.  
  5012. if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
  5013. if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
  5014.  
  5015. remove_entity_name(fire_classname)
  5016. }
  5017.  
  5018. stock make_blood(const Float:vTraceEnd[3], Float:Damage, hitEnt) {
  5019. new bloodColor = ExecuteHam(Ham_BloodColor, hitEnt);
  5020. if(bloodColor == -1)
  5021. return;
  5022.  
  5023. new amount = floatround(Damage);
  5024.  
  5025. amount *= 2; //according to HLSDK
  5026.  
  5027. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  5028. write_byte(TE_BLOODSPRITE);
  5029. write_coord(floatround(vTraceEnd[0]));
  5030. write_coord(floatround(vTraceEnd[1]));
  5031. write_coord(floatround(vTraceEnd[2]));
  5032. write_short(BloodSpray);
  5033. write_short(BloodDrop);
  5034. write_byte(bloodColor);
  5035. write_byte(min(max(3, amount/10), 16));
  5036. message_end();
  5037. }
  5038.  
  5039. // Make knockback
  5040. public make_knockback(Victim, Float:origin[3], Float:maxspeed) {
  5041. // Get and set velocity
  5042. new Float:fVelocity[3];
  5043. kickback(Victim, origin, maxspeed, fVelocity);
  5044. entity_set_vector(Victim, EV_VEC_velocity, fVelocity);
  5045.  
  5046. return(1);
  5047. }
  5048.  
  5049. // Extra calulation for knockback
  5050. stock kickback(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3]) {
  5051. // Find origin
  5052. new Float:fEntOrigin[3];
  5053. entity_get_vector(ent, EV_VEC_origin, fEntOrigin);
  5054.  
  5055. // Do some calculations
  5056. new Float:fDistance[3];
  5057. fDistance[0] = fEntOrigin[0] - fOrigin[0];
  5058. fDistance[1] = fEntOrigin[1] - fOrigin[1];
  5059. fDistance[2] = fEntOrigin[2] - fOrigin[2];
  5060. new Float:fTime =(vector_distance(fEntOrigin,fOrigin) / fSpeed);
  5061. fVelocity[0] = fDistance[0] / fTime;
  5062. fVelocity[1] = fDistance[1] / fTime;
  5063. fVelocity[2] = fDistance[2] / fTime;
  5064.  
  5065. return(fVelocity[0] && fVelocity[1] && fVelocity[2]);
  5066. }
  5067.  
  5068. stock death_message(Killer, Victim, ScoreBoard, const Weapon[]) {
  5069. // Block death msg
  5070. set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET);
  5071. ExecuteHamB(Ham_Killed, Victim, Killer, 2);
  5072. set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT);
  5073.  
  5074. // Death
  5075. make_deathmsg(Killer, Victim, 0, Weapon);
  5076. cs_set_user_money(Killer, cs_get_user_money(Killer) + 300);
  5077.  
  5078. // Update score board
  5079. if(ScoreBoard) {
  5080. message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"));
  5081. write_byte(Killer); // id
  5082. write_short(pev(Killer, pev_frags)); // frags
  5083. write_short(cs_get_user_deaths(Killer)); // deaths
  5084. write_short(0); // class?
  5085. write_short(get_user_team(Killer)); // team
  5086. message_end();
  5087.  
  5088. message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"));
  5089. write_byte(Victim); // id
  5090. write_short(pev(Victim, pev_frags)); // frags
  5091. write_short(cs_get_user_deaths(Victim)); // deaths
  5092. write_short(0); // class?
  5093. write_short(get_user_team(Victim)); // team
  5094. message_end();
  5095. }
  5096. }
  5097.  
  5098. stock get_damage_body(body, Float:damage) {
  5099. switch(body) {
  5100. case HIT_HEAD: damage *= 4.0;
  5101. case HIT_STOMACH: damage *= 1.1;
  5102. case HIT_CHEST: damage *= 1.5;
  5103. case HIT_LEFTARM: damage *= 0.77;
  5104. case HIT_RIGHTARM: damage *= 0.77;
  5105. case HIT_LEFTLEG: damage *= 0.75;
  5106. case HIT_RIGHTLEG: damage *= 0.75;
  5107. default: damage *= 1.0;
  5108. }
  5109.  
  5110. return floatround(damage);
  5111. }
  5112.  
  5113. stock fm_get_user_bpammo(index, weapon) {
  5114. static offset
  5115. switch(weapon) {
  5116. case CSW_AWP: offset = OFFSET_AMMO_338MAGNUM
  5117. case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = OFFSET_AMMO_762NATO
  5118. case CSW_M249: offset = OFFSET_AMMO_556NATOBOX
  5119. case CSW_FAMAS, CSW_M4A1, CSW_AUG,
  5120. CSW_SG550, CSW_GALI, CSW_SG552: offset = OFFSET_AMMO_556NATO
  5121. case CSW_M3, CSW_XM1014: offset = OFFSET_AMMO_BUCKSHOT
  5122. case CSW_USP, CSW_UMP45, CSW_MAC10: offset = OFFSET_AMMO_45ACP
  5123. case CSW_FIVESEVEN, CSW_P90: offset = OFFSET_AMMO_57MM
  5124. case CSW_DEAGLE: offset = OFFSET_AMMO_50AE
  5125. case CSW_P228: offset = OFFSET_AMMO_357SIG
  5126. case CSW_GLOCK18, CSW_TMP, CSW_ELITE,
  5127. CSW_MP5NAVY: offset = OFFSET_AMMO_9MM
  5128. default: offset = 0
  5129. }
  5130. return offset ? get_pdata_int(index, offset) : 0
  5131. }
  5132.  
  5133. stock fm_set_user_bpammo(index, weapon, amount) {
  5134. static offset
  5135. switch(weapon) {
  5136. case CSW_AWP: offset = OFFSET_AMMO_338MAGNUM
  5137. case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = OFFSET_AMMO_762NATO
  5138. case CSW_M249: offset = OFFSET_AMMO_556NATOBOX
  5139. case CSW_FAMAS, CSW_M4A1, CSW_AUG,
  5140. CSW_SG550, CSW_GALI, CSW_SG552: offset = OFFSET_AMMO_556NATO
  5141. case CSW_M3, CSW_XM1014: offset = OFFSET_AMMO_BUCKSHOT
  5142. case CSW_USP, CSW_UMP45, CSW_MAC10: offset = OFFSET_AMMO_45ACP
  5143. case CSW_FIVESEVEN, CSW_P90: offset = OFFSET_AMMO_57MM
  5144. case CSW_DEAGLE: offset = OFFSET_AMMO_50AE
  5145. case CSW_P228: offset = OFFSET_AMMO_357SIG
  5146. case CSW_GLOCK18, CSW_TMP, CSW_ELITE,
  5147. CSW_MP5NAVY: offset = OFFSET_AMMO_9MM
  5148. default: offset = 0
  5149. }
  5150.  
  5151. if(offset)
  5152. set_pdata_int(index, offset, amount)
  5153.  
  5154. return 1
  5155. }
  5156.  
  5157. // Get Weapon Entity's CSW_ ID
  5158. stock fm_get_weapon_ent_id(ent) {
  5159. return get_pdata_int(ent, OFFSET_WEAPONID, 4);
  5160. }
  5161.  
  5162. // Get Weapon Entity's Owner
  5163. stock fm_get_weapon_ent_owner(ent) {
  5164. return get_pdata_cbase(ent, 41, 4);
  5165. }
  5166.  
  5167. // Drop all primary guns
  5168. stock drop_primary_weapons(Player) {
  5169. // Get user weapons
  5170. static weapons[32], num, i, weaponid;
  5171. num = 0; // reset passed weapons count(bugfix)
  5172. get_user_weapons(Player, weapons, num);
  5173.  
  5174. // Loop through them and drop primaries
  5175. for(i = 0; i < num; i++) {
  5176. // Prevent re-indexing the array
  5177. weaponid = weapons [i];
  5178.  
  5179. // We definetely are holding primary gun
  5180. if(((1<<weaponid) & PRIMARY_WEAPONS_BITSUM)) {
  5181. // Get weapon entity
  5182. static wname[32];
  5183. get_weaponname(weaponid, wname, charsmax(wname));
  5184.  
  5185. // Player drops the weapon and looses his bpammo
  5186. engclient_cmd(Player, "drop", wname);
  5187. }
  5188. }
  5189. }
  5190.  
  5191. public RefreshWeapons ( id ) {
  5192.  
  5193. strip_user_weapons ( id );
  5194. give_item ( id, "weapon_knife" );
  5195. remove_dragoncannon ( id );
  5196.  
  5197. g_had_qb [ id ] = 0;
  5198. dual_mp5 [ id ] = false;
  5199. k1ases_weapon [ id ] = false;
  5200. salamander [ id ] = false;
  5201. SalamanderLimit [ id ] = false;
  5202. katana_knife [ id ] = false;
  5203. double_katana_knife [ id ] = false;
  5204. super_knife [ id ] = false;
  5205. infinity_knife [ id ] = false;
  5206. elf_knife [ id ] = false;
  5207. ignes_knife [ id ] = false;
  5208. vip_axe_knife [ id ] = false;
  5209. trainer [ id ] = false;
  5210. thompson [ id ] = false;
  5211. uspx [ id ] = false;
  5212. hunter [ id ] = false;
  5213. shaman [ id ] = false;
  5214. mage [ id ] = false;
  5215. rogue [ id ] = false;
  5216. warrior [ id ] = false;
  5217. druid [ id ] = false;
  5218. deklowaz [ id ] = false;
  5219. strike_grenade [ id ] = false;
  5220. HasPower[id] = 0;
  5221. Drop_Cooldown[id] = 0;
  5222. UserHaveQuad [ id ] = false;
  5223. UserHaveDragon [ id ] = false;
  5224. g_hasM79[id] = false
  5225. g_canShoot[id] = false
  5226. g_last_shot_time[id] = 0.0
  5227. grenade_count[id] = 0
  5228. hasOnHandM79[id] = false
  5229. remove_icon(id );
  5230. UserHaveM79 [ id ] = false;
  5231.  
  5232. HasSpeed[id] = false;
  5233. HasTeleport[id] = false;
  5234.  
  5235. UserHasChoosed [ id ] = false;
  5236. UserHaveHeGrenade [ id ] = false;
  5237. UserHaveGodMode [ id ] = false;
  5238. UserHaveSuperKnife [ id ] = false;
  5239. UserHaveNoClip [ id ] = false;
  5240. UserHaveHpAndAp [ id ] = false;
  5241. UserHaveDualMp5 [ id ] = false;
  5242.  
  5243. if( get_user_flags(id) & VIP_ACCESS )
  5244. {
  5245. set_user_scoreattrib(id, 4);
  5246. }
  5247.  
  5248. VipBonus ( id );
  5249.  
  5250. if ( get_user_team ( id ) == 2 ) {
  5251. give_item ( id, "weapon_smokegrenade" );
  5252. flare [ id ] = true;
  5253. }
  5254.  
  5255. ShowHud ( id );
  5256.  
  5257. remove_task(id);
  5258. HE_Cooldown[id] = 0;
  5259. GodMode_Cooldown[id] = 0;
  5260. GodMode_DurationCooldown[id] = 0;
  5261. Drop_Cooldown[id] = 0;
  5262. Freeze_Cooldown[id] = 0;
  5263. Freeze_Cooldown[id] = 0;
  5264. remove_freeze ( id );
  5265. BeamRemove ( id );
  5266. Drag_Cooldown[id] = 0;
  5267. if (Hooked[id]) {
  5268. DragEnd ( id );
  5269. }
  5270.  
  5271. Not_Cooldown[id] = false;
  5272. Teleport_Cooldown[id] = 0;
  5273. }
  5274.  
  5275.  
  5276. public cmdCheckVIP ( id ) {
  5277.  
  5278. if ( get_user_team ( id ) == 1 && is_user_alive ( id ) ) {
  5279.  
  5280. if ( UserHasChoosed [ id ] ) {
  5281.  
  5282. ColorChat ( id, GREEN, "%s Ti-ai ales runda aceasta puterea .", szPrefix );
  5283. return 1;
  5284. }
  5285.  
  5286. else if ( !UserHasChoosed [ id ] ) {
  5287.  
  5288. set_task ( 0.1, "cmdShowTVIPMenu", id );
  5289.  
  5290. }
  5291. }
  5292.  
  5293. if ( get_user_team ( id ) == 2 && is_user_alive ( id ) ) {
  5294.  
  5295. if ( UserHasChoosed [ id ] ) {
  5296.  
  5297. ColorChat ( id, GREEN, "%s Ti-ai ales runda aceasta puterea .", szPrefix );
  5298. return 1;
  5299. }
  5300.  
  5301. else if ( !UserHasChoosed [ id ] ) {
  5302.  
  5303. set_task ( 0.1, "cmdShowCTVIPMenu", id );
  5304.  
  5305. }
  5306. }
  5307.  
  5308. return 1
  5309.  
  5310. }
  5311.  
  5312. public cmdClassMenu ( id, level, cid ) {
  5313.  
  5314. ShowHud ( id );
  5315.  
  5316. if ( get_user_team ( id ) == 1 ) {
  5317.  
  5318.  
  5319. new menu = menu_create ( "\rFurien Class \yMenu", "Class_Giver" );
  5320.  
  5321. if ( Level [ id ] >= 0 || Level [ id ] >= 1 || Level [ id ] >= 2 || Level [ id ] >= 3 || Level [ id ] >= 4 ) {
  5322. menu_additem ( menu, "\yTrainer", "1", 0 );
  5323. }
  5324.  
  5325. else if ( Level [ id ] <= 0 || Level [ id ] <= 1 || Level [ id ] <= 2 || Level [ id ] <= 3 || Level [ id ] <= 4 ) {
  5326. menu_additem ( menu, "\yTrainer \y[ \rLOCKED \y]", "1", ADMIN_RCON );
  5327. }
  5328.  
  5329. if ( Level [ id ] >= 5 || Level [ id ] >= 6 || Level [ id ] >= 7 || Level [ id ] >= 8 ) {
  5330. menu_additem ( menu, "\yAgnos", "2", 0 );
  5331. }
  5332.  
  5333. else if ( Level [ id ] <= 5 || Level [ id ] <= 6 || Level [ id ] <= 7 || Level [ id ] <= 8 ) {
  5334. menu_additem ( menu, "\yAgnos \y[ \rLOCKED \y]", "2", ADMIN_RCON );
  5335. }
  5336.  
  5337. if ( Level [ id ] >= 9 || Level [ id ] >= 10 || Level [ id ] >= 11 || Level [ id ] >= 12 ) {
  5338. menu_additem ( menu, "\yXFother", "3", 0 );
  5339. }
  5340.  
  5341. else if ( Level [ id ] <= 9 || Level [ id ] <= 10 || Level [ id ] <= 11 || Level [ id ] <= 12 ) {
  5342. menu_additem ( menu, "\yXFother \y[ \rLOCKED \y]", "3", ADMIN_RCON );
  5343. }
  5344.  
  5345. if ( Level [ id ] >= 13 || Level [ id ] >= 14 || Level [ id ] >= 15 || Level [ id ] >= 16 ) {
  5346. menu_additem ( menu, "\ySamurai", "4", 0 );
  5347. }
  5348.  
  5349. else if ( Level [ id ] <= 13 || Level [ id ] <= 14 || Level [ id ] <= 15 || Level [ id ] <= 16 ) {
  5350. menu_additem ( menu, "\ySamurai \y[ \rLOCKED \y]", "4", ADMIN_RCON );
  5351. }
  5352.  
  5353. if ( Level [ id ] >= 17 || Level [ id ] >= 18 || Level [ id ] >= 19 || Level [ id ] >= 20 ) {
  5354. menu_additem ( menu, "\yExtra Samurai", "5", 0 );
  5355. }
  5356.  
  5357. else if ( Level [ id ] <= 17 || Level [ id ] <= 18 || Level [ id ] <= 19 || Level [ id ] <= 20 ) {
  5358. menu_additem ( menu, "\yExtra Samurai \y[ \rLOCKED \y]", "5", ADMIN_RCON );
  5359. }
  5360.  
  5361. if ( Level [ id ] >= 21 || Level [ id ] >= 22 || Level [ id ] >= 23 || Level [ id ] >= 24 ) {
  5362. menu_additem ( menu, "\yIgnes", "6", 0 );
  5363. }
  5364.  
  5365. else if ( Level [ id ] <= 21 || Level [ id ] <= 22 || Level [ id ] <= 23 || Level [ id ] <= 24 ) {
  5366. menu_additem ( menu, "\yIgnes \y[ \rLOCKED \y]", "6", ADMIN_RCON );
  5367. }
  5368.  
  5369. if ( Level [ id ] >= 25 || Level [ id ] >= 26 || Level [ id ] >= 27 || Level [ id ] >= 28 ) {
  5370. menu_additem ( menu, "\yElf", "7", 0 );
  5371. }
  5372.  
  5373. else if ( Level [ id ] <= 25 || Level [ id ] <= 26 || Level [ id ] <= 27 || Level [ id ] <= 28 ) {
  5374. menu_additem ( menu, "\yElf \y[ \rLOCKED \y]", "7", ADMIN_RCON );
  5375. }
  5376.  
  5377. if ( Level [ id ] >= 29 || Level [ id ] >= 30 ) {
  5378. menu_additem ( menu, "\yAlcadeias", "8", 0 );
  5379. }
  5380.  
  5381. else if ( Level [ id ] <= 29 || Level [ id ] <= 30 ) {
  5382. menu_additem ( menu, "\yAlcadeias \y[ \rLOCKED \y]", "8", ADMIN_RCON );
  5383. }
  5384.  
  5385. menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
  5386. menu_display ( id, menu, 0 );
  5387.  
  5388.  
  5389. return 1;
  5390. }
  5391.  
  5392. else if ( get_user_team ( id ) == 2 ) {
  5393.  
  5394.  
  5395. new menu = menu_create ( "\rAntiFurien Class \yMenu", "Class_Giver" );
  5396.  
  5397. if ( Level [ id ] >= 0 || Level [ id ] >= 1 || Level [ id ] >= 2 || Level [ id ] >= 3 || Level [ id ] >= 4 ) {
  5398. menu_additem ( menu, "\yDruid", "1", 0 );
  5399. }
  5400.  
  5401. else if ( Level [ id ] <= 0 || Level [ id ] <= 1 || Level [ id ] <= 2 || Level [ id ] <= 3 || Level [ id ] <= 4 ) {
  5402. menu_additem ( menu, "\yDruid \y[ \rLOCKED \y]", "1", ADMIN_RCON );
  5403.  
  5404. }
  5405.  
  5406. if ( Level [ id ] >= 5 || Level [ id ] >= 6 || Level [ id ] >= 7 || Level [ id ] >= 8 ) {
  5407. menu_additem ( menu, "\yHunter", "2", 0 );
  5408. }
  5409.  
  5410. else if ( Level [ id ] <= 5 || Level [ id ] <= 6 || Level [ id ] <= 7 || Level [ id ] <= 8 ) {
  5411. menu_additem ( menu, "\yHunter \y[ \rLOCKED \y]", "2", ADMIN_RCON );
  5412. }
  5413.  
  5414. if ( Level [ id ] >= 9 || Level [ id ] >= 10 || Level [ id ] >= 11 || Level [ id ] >= 12 ) {
  5415. menu_additem ( menu, "\yMage", "3", 0 );
  5416. }
  5417.  
  5418. else if ( Level [ id ] <= 9 || Level [ id ] <= 10 || Level [ id ] <= 11 || Level [ id ] <= 12 ) {
  5419. menu_additem ( menu, "\yMage \y[ \rLOCKED \y]", "3", ADMIN_RCON );
  5420. }
  5421.  
  5422. if ( Level [ id ] >= 13 || Level [ id ] >= 14 || Level [ id ] >= 15 || Level [ id ] >= 16 ) {
  5423. menu_additem ( menu, "\yRogue", "4", 0 );
  5424. }
  5425.  
  5426. else if ( Level [ id ] <= 13 || Level [ id ] <= 14 || Level [ id ] <= 15 || Level [ id ] <= 16 ) {
  5427. menu_additem ( menu, "\yRogue \y[ \rLOCKED \y]", "4", ADMIN_RCON );
  5428. }
  5429.  
  5430. if ( Level [ id ] >= 17 || Level [ id ] >= 18 || Level [ id ] >= 19 || Level [ id ] >= 20 ) {
  5431. menu_additem ( menu, "\yShaman", "5", 0 );
  5432. }
  5433.  
  5434. else if ( Level [ id ] <= 17 || Level [ id ] <= 18 || Level [ id ] <= 19 || Level [ id ] <= 20 ) {
  5435. menu_additem ( menu, "\yShaman \y[ \rLOCKED \y]", "5", ADMIN_RCON );
  5436. }
  5437.  
  5438. if ( Level [ id ] >= 21 || Level [ id ] >= 22 || Level [ id ] >= 23 || Level [ id ] >= 24 ) {
  5439. menu_additem ( menu, "\yWarlock", "6", 0 );
  5440. }
  5441.  
  5442. else if ( Level [ id ] <= 21 || Level [ id ] <= 22 || Level [ id ] <= 23 || Level [ id ] <= 24 ) {
  5443. menu_additem ( menu, "\yWarlock \y[ \rLOCKED \y]", "6", ADMIN_RCON );
  5444. }
  5445.  
  5446. if ( Level [ id ] >= 25 || Level [ id ] >= 26 || Level [ id ] >= 27 || Level [ id ] >= 28 ) {
  5447. menu_additem ( menu, "\yWarrior", "7", 0 );
  5448. }
  5449.  
  5450. else if ( Level [ id ] <= 25 || Level [ id ] <= 26 || Level [ id ] <= 27 || Level [ id ] <= 28 ) {
  5451. menu_additem ( menu, "\yWarrior \y[ \rLOCKED \y]", "7", ADMIN_RCON );
  5452. }
  5453.  
  5454. if ( Level [ id ] >= 29 || Level [ id ] >= 30 ) {
  5455. menu_additem ( menu, "\yDeklowaz", "8", 0 );
  5456. }
  5457.  
  5458. else if ( Level [ id ] <= 29 || Level [ id ] <= 30 ) {
  5459. menu_additem ( menu, "yDeklowaz \y[ \rLOCKED \y]", "8", ADMIN_RCON );
  5460. }
  5461.  
  5462. menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
  5463. menu_display ( id, menu, 0 );
  5464.  
  5465.  
  5466. return 1;
  5467. }
  5468.  
  5469. return 1;
  5470. }
  5471.  
  5472. public Class_Giver ( id, menu, item ) {
  5473.  
  5474. if( item == MENU_EXIT )
  5475. {
  5476. return 1;
  5477. }
  5478.  
  5479. new data [ 6 ], szName [ 64 ];
  5480. new access, callback;
  5481. menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
  5482. new key = str_to_num ( data );
  5483.  
  5484. switch(key)
  5485. {
  5486.  
  5487. case 1:
  5488. {
  5489. if ( get_user_team ( id ) == 1 ) {
  5490. if ( g_Menu [ id ] >= 3 ) {
  5491. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5492. }
  5493.  
  5494. else {
  5495.  
  5496. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Trainer^3 .", szPrefix );
  5497.  
  5498. trainer [ id ] = true;
  5499. katana_knife [ id ] = false;
  5500. double_katana_knife [ id ] = false;
  5501. super_knife [ id ] = false;
  5502. infinity_knife [ id ] = false;
  5503. ignes_knife [ id ] = false;
  5504. elf_knife [ id ] = false;
  5505. thompson [ id ] = false;
  5506. uspx [ id ] = false;
  5507. hunter [ id ] = false;
  5508. shaman [ id ] = false;
  5509. mage [ id ] = false;
  5510. rogue [ id ] = false;
  5511. warrior [ id ] = false;
  5512. deklowaz [ id ] = false;
  5513. druid [ id ] = false;
  5514. strike_grenade [ id ] = false;
  5515. strike_grenade2 [ id ] = false;
  5516. strike_grenade3 [ id ] = false;
  5517. super_knife_shop [ id ] = false;
  5518. super_knife_shop2 [ id ] = false;
  5519. set_user_gravity ( id, 0.7 );
  5520. give_item ( id, "weapon_flashbang" );
  5521. //set_pev ( id, pev_viewmodel2, trainer_v_model );
  5522. //set_pev ( id, pev_weaponmodel2, trainer_p_model );
  5523. ++g_Menu [ id ];
  5524. ++g_Menu [ id ];
  5525. }
  5526.  
  5527.  
  5528. }
  5529.  
  5530.  
  5531. if ( get_user_team ( id ) == 2 ) {
  5532. if ( g_Menu [ id ] >= 3 ) {
  5533. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5534. }
  5535.  
  5536. else {
  5537.  
  5538. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Druid^3 .", szPrefix );
  5539. give_item ( id, "weapon_xm1014" );
  5540. give_item ( id, "weapon_usp" );
  5541. set_user_health ( id, 105 );
  5542. set_user_armor ( id, 30 );
  5543. cs_set_user_bpammo ( id, CSW_USP, 100 );
  5544. cs_set_user_bpammo ( id, CSW_XM1014, 100 );
  5545. trainer [ id ] = false;
  5546. katana_knife [ id ] = false;
  5547. double_katana_knife [ id ] = false;
  5548. super_knife [ id ] = false;
  5549. infinity_knife [ id ] = false;
  5550. ignes_knife [ id ] = false;
  5551. elf_knife [ id ] = false;
  5552. thompson [ id ] = false;
  5553. uspx [ id ] = true;
  5554. hunter [ id ] = false;
  5555. shaman [ id ] = false;
  5556. mage [ id ] = false;
  5557. rogue [ id ] = false;
  5558. warrior [ id ] = false;
  5559. deklowaz [ id ] = false;
  5560. druid [ id ] = true;
  5561. super_knife_shop [ id ] = false;
  5562. super_knife_shop2 [ id ] = false;
  5563. ++g_Menu [ id ];
  5564. ++g_Menu [ id ];
  5565.  
  5566. }
  5567. }
  5568. }
  5569.  
  5570. case 2:
  5571. {
  5572. if ( get_user_team ( id ) == 1 ) {
  5573. if ( g_Menu [ id ] >= 3 ) {
  5574. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5575. }
  5576.  
  5577. else {
  5578.  
  5579. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Agnos^3 .", szPrefix );
  5580.  
  5581.  
  5582.  
  5583.  
  5584.  
  5585. katana_knife [ id ] = false;
  5586. trainer [ id ] = false;
  5587. double_katana_knife [ id ] = false;
  5588. super_knife [ id ] = false;
  5589.  
  5590. infinity_knife [ id ] = true;
  5591. ignes_knife [ id ] = false;
  5592. elf_knife [ id ] = false;
  5593. thompson [ id ] = false;
  5594. uspx [ id ] = false;
  5595. hunter [ id ] = false;
  5596. shaman [ id ] = false;
  5597. mage [ id ] = false;
  5598. rogue [ id ] = false;
  5599. warrior [ id ] = false;
  5600. deklowaz [ id ] = false;
  5601. strike_grenade [ id ] = false;
  5602. strike_grenade2 [ id ] = false;
  5603. strike_grenade3 [ id ] = false;
  5604. druid [ id ] = false;
  5605. super_knife_shop [ id ] = false;
  5606. super_knife_shop2 [ id ] = false;
  5607. set_user_gravity ( id, 0.6 );
  5608. set_user_health ( id, 120 );
  5609. set_user_armor ( id, 60 );
  5610. give_item ( id, "weapon_flashbang" );
  5611. //set_pev ( id, pev_viewmodel2, infinity_knife_v_model );
  5612. //set_pev ( id, pev_weaponmodel2, infinity_knife_p_model );
  5613. ++g_Menu [ id ];
  5614. ++g_Menu [ id ];
  5615.  
  5616. }
  5617. }
  5618.  
  5619. if ( get_user_team ( id ) == 2 ) {
  5620. if ( g_Menu [ id ] >= 3 ) {
  5621. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5622. }
  5623.  
  5624. else {
  5625.  
  5626. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Hunter^3 .", szPrefix );
  5627. give_item ( id, "weapon_p90" );
  5628. give_item ( id, "weapon_usp" );
  5629. set_user_health ( id, 120 );
  5630. set_user_armor ( id, 60 );
  5631. cs_set_user_bpammo ( id, CSW_USP, 100 );
  5632. cs_set_user_bpammo ( id, CSW_P90, 200 );
  5633. trainer [ id ] = false;
  5634. katana_knife [ id ] = false;
  5635. double_katana_knife [ id ] = false;
  5636. super_knife [ id ] = false;
  5637. infinity_knife [ id ] = false;
  5638. ignes_knife [ id ] = false;
  5639. elf_knife [ id ] = false;
  5640. thompson [ id ] = false;
  5641. uspx [ id ] = true;
  5642. hunter [ id ] = true;
  5643. shaman [ id ] = false;
  5644. mage [ id ] = false;
  5645. rogue [ id ] = false;
  5646. warrior [ id ] = false;
  5647. deklowaz [ id ] = false;
  5648. druid [ id ] = false;
  5649. super_knife_shop [ id ] = false;
  5650. super_knife_shop2 [ id ] = false;
  5651. ++g_Menu [ id ];
  5652. ++g_Menu [ id ];
  5653.  
  5654. }
  5655. }
  5656. }
  5657.  
  5658. case 3:
  5659. {
  5660. if ( get_user_team ( id ) == 1 ) {
  5661. if ( g_Menu [ id ] >= 3 ) {
  5662. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5663. }
  5664.  
  5665. else {
  5666.  
  5667. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 XFother^3.^4", szPrefix );
  5668.  
  5669. super_knife [ id ] = true;
  5670. katana_knife [ id ] = false;
  5671. trainer [ id ] = false;
  5672. double_katana_knife [ id ] = false;
  5673. infinity_knife [ id ] = false;
  5674. ignes_knife [ id ] = false;
  5675. thompson [ id ] = false;
  5676. uspx [ id ] = false;
  5677. hunter [ id ] = false;
  5678. shaman [ id ] = false;
  5679. mage [ id ] = false;
  5680. rogue [ id ] = false;
  5681. warrior [ id ] = false;
  5682. deklowaz [ id ] = false;
  5683. elf_knife [ id ] = false;
  5684. druid [ id ] = false;
  5685. strike_grenade [ id ] = true;
  5686. super_knife_shop [ id ] = false;
  5687. super_knife_shop2 [ id ] = false;
  5688. set_user_gravity ( id, 0.6 );
  5689. set_user_health ( id, 120 );
  5690. set_user_armor ( id, 60 );
  5691. give_item ( id, "weapon_hegrenade" );
  5692. give_item ( id, "weapon_flashbang" );
  5693. //set_pev ( id, pev_viewmodel2, super_knife_v_model );
  5694. //set_pev ( id, pev_weaponmodel2, super_knife_p_model );
  5695. ++g_Menu [ id ];
  5696. ++g_Menu [ id ];
  5697.  
  5698. }
  5699. }
  5700.  
  5701. if ( get_user_team ( id ) == 2 ) {
  5702. if ( g_Menu [ id ] >= 3 ) {
  5703. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5704. }
  5705.  
  5706. else {
  5707.  
  5708. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Mage^3 .", szPrefix );
  5709. give_item ( id, "weapon_galil" );
  5710. give_item ( id, "weapon_usp" );
  5711. set_user_gravity ( id, 0.7 );
  5712. set_user_health ( id, 120 );
  5713. set_user_armor ( id, 60 );
  5714. cs_set_user_bpammo ( id, CSW_USP, 100 );
  5715. cs_set_user_bpammo ( id, CSW_GALIL, 200 );
  5716. trainer [ id ] = false;
  5717. katana_knife [ id ] = false;
  5718. double_katana_knife [ id ] = false;
  5719. super_knife [ id ] = false;
  5720. infinity_knife [ id ] = false;
  5721. ignes_knife [ id ] = false;
  5722. elf_knife [ id ] = false;
  5723. thompson [ id ] = false;
  5724. druid [ id ] = false;
  5725. uspx [ id ] = true;
  5726. hunter [ id ] = false;
  5727. shaman [ id ] = false;
  5728. mage [ id ] = true;
  5729. rogue [ id ] = false;
  5730. warrior [ id ] = false;
  5731. deklowaz [ id ] = false;
  5732. super_knife_shop [ id ] = false;
  5733. super_knife_shop2 [ id ] = false;
  5734. ++g_Menu [ id ];
  5735. ++g_Menu [ id ];
  5736.  
  5737. }
  5738. }
  5739. }
  5740.  
  5741. case 4:
  5742. {
  5743. if ( get_user_team ( id ) == 1 ) {
  5744. if ( g_Menu [ id ] >= 3 ) {
  5745. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5746. }
  5747.  
  5748. else {
  5749.  
  5750. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Samurai^3 + puterea de a arunca armele inamicului .^4", szPrefix );
  5751. ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757. katana_knife [ id ] = true;
  5758. double_katana_knife [ id ] = false;
  5759. super_knife [ id ] = false;
  5760. trainer [ id ] = false;
  5761. infinity_knife [ id ] = false;
  5762. ignes_knife [ id ] = false;
  5763. elf_knife [ id ] = false;
  5764. thompson [ id ] = false;
  5765. uspx [ id ] = false;
  5766. hunter [ id ] = false;
  5767. shaman [ id ] = false;
  5768. druid [ id ] = false;
  5769. mage [ id ] = false;
  5770. rogue [ id ] = false;
  5771. warrior [ id ] = false;
  5772. strike_grenade2 [ id ] = true;
  5773. deklowaz [ id ] = false;
  5774. super_knife_shop [ id ] = false;
  5775. super_knife_shop2 [ id ] = false;
  5776. set_user_gravity ( id, 0.6 );
  5777. set_user_health ( id, 135 );
  5778. set_user_armor ( id, 90 );
  5779. give_item ( id, "weapon_hegrenade" );
  5780. give_item ( id, "weapon_flashbang" );
  5781. client_cmd(id, "bind v power");
  5782. remove_task(id);
  5783. if ( Drop_Cooldown [ id ] ) {
  5784. set_task ( 0.1, "DropShowHUD", id );
  5785. }
  5786. HasPower [ id ] = 4;
  5787. //set_pev ( id, pev_viewmodel2, katana_knife_v_model );
  5788. //set_pev ( id, pev_weaponmodel2, katana_knife_p_model );
  5789. ++g_Menu [ id ];
  5790. ++g_Menu [ id ];
  5791.  
  5792.  
  5793.  
  5794.  
  5795. }
  5796. }
  5797.  
  5798. if ( get_user_team ( id ) == 2 ) {
  5799. if ( g_Menu [ id ] >= 3 ) {
  5800. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5801. }
  5802.  
  5803. else {
  5804.  
  5805. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Rogue^3 + puterea de a trage inamicul^4 [ drag ]^3 .^4", szPrefix );
  5806. ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
  5807. give_item ( id, "weapon_famas" );
  5808. give_item ( id, "weapon_usp" );
  5809. set_user_gravity ( id, 0.7 );
  5810. set_user_health ( id, 130 );
  5811. set_user_armor ( id, 80 );
  5812. cs_set_user_bpammo ( id, CSW_USP, 100 );
  5813. cs_set_user_bpammo ( id, CSW_FAMAS, 200 );
  5814. trainer [ id ] = false;
  5815. katana_knife [ id ] = false;
  5816. double_katana_knife [ id ] = false;
  5817. super_knife [ id ] = false;
  5818. infinity_knife [ id ] = false;
  5819. ignes_knife [ id ] = false;
  5820. elf_knife [ id ] = false;
  5821. thompson [ id ] = false;
  5822. uspx [ id ] = true;
  5823. hunter [ id ] = false;
  5824. shaman [ id ] = false;
  5825. mage [ id ] = false;
  5826. rogue [ id ] = true;
  5827. druid [ id ] = false;
  5828. warrior [ id ] = false;
  5829. deklowaz [ id ] = false;
  5830. super_knife_shop [ id ] = false;
  5831. super_knife_shop2 [ id ] = false;
  5832. ++g_Menu [ id ];
  5833. ++g_Menu [ id ];
  5834. client_cmd(id, "bind v +drag");
  5835. remove_task(id);
  5836. if(Drag_Cooldown[id]) {
  5837. set_task ( 0.1, "DragShowHUD", id );
  5838. }
  5839. HasPower[id] = 6;
  5840. }
  5841. }
  5842. }
  5843.  
  5844. case 5:
  5845. {
  5846. if ( get_user_team ( id ) == 1 ) {
  5847. if ( g_Menu [ id ] >= 3 ) {
  5848. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5849. }
  5850.  
  5851. else {
  5852.  
  5853. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Extra Samurai^3 + puterea de a arunca armele inamicului .^4", szPrefix );
  5854. ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
  5855.  
  5856.  
  5857. double_katana_knife [ id ] = true;
  5858. katana_knife [ id ] = false;
  5859. trainer [ id ] = false;
  5860. super_knife [ id ] = false;
  5861. infinity_knife [ id ] = false;
  5862. ignes_knife [ id ] = false;
  5863. elf_knife [ id ] = false;
  5864. thompson [ id ] = false;
  5865. uspx [ id ] = false;
  5866. hunter [ id ] = false;
  5867. shaman [ id ] = false;
  5868. mage [ id ] = false;
  5869. druid [ id ] = false;
  5870. rogue [ id ] = false;
  5871. warrior [ id ] = false;
  5872. deklowaz [ id ] = false;
  5873. strike_grenade2 [ id ] = true;
  5874. super_knife_shop [ id ] = false;
  5875. super_knife_shop2 [ id ] = false;
  5876. set_user_gravity ( id, 0.5 );
  5877. set_user_health ( id, 145 );
  5878. set_user_armor ( id, 105 );
  5879. give_item ( id, "weapon_hegrenade" );
  5880. give_item ( id, "weapon_flashbang" );
  5881. give_item ( id, "weapon_flashbang" );
  5882. client_cmd(id, "bind v power");
  5883. remove_task(id);
  5884. if ( Drop_Cooldown [ id ] ) {
  5885. set_task ( 0.1, "DropShowHUD", id );
  5886. }
  5887. HasPower [ id ] = 4;
  5888. //set_pev ( id, pev_viewmodel2, double_katana_v_knife_model );
  5889. //set_pev ( id, pev_weaponmodel2, double_katana_p_knife_model );
  5890. ++g_Menu [ id ];
  5891. ++g_Menu [ id ];
  5892.  
  5893. }
  5894. }
  5895.  
  5896. if ( get_user_team ( id ) == 2 ) {
  5897. if ( g_Menu [ id ] >= 3 ) {
  5898. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5899. }
  5900.  
  5901. else {
  5902.  
  5903. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Shaman^3 + puterea de a trage inamicul^4 [ drag ]^3 .^4", szPrefix );
  5904. ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
  5905. give_item ( id, "weapon_sg552" );
  5906. give_item ( id, "weapon_usp" );
  5907. set_user_gravity ( id, 0.7 );
  5908. set_user_health ( id, 145 );
  5909. set_user_armor ( id, 90 );
  5910. cs_set_user_bpammo ( id, CSW_USP, 100 );
  5911. cs_set_user_bpammo ( id, CSW_SG552, 200 );
  5912. trainer [ id ] = false;
  5913. katana_knife [ id ] = false;
  5914. double_katana_knife [ id ] = false;
  5915. super_knife [ id ] = false;
  5916. infinity_knife [ id ] = false;
  5917. ignes_knife [ id ] = false;
  5918. elf_knife [ id ] = false;
  5919. thompson [ id ] = false;
  5920. uspx [ id ] = true;
  5921. hunter [ id ] = false;
  5922. shaman [ id ] = true;
  5923. mage [ id ] = false;
  5924. rogue [ id ] = false;
  5925. druid [ id ] = false;
  5926. warrior [ id ] = false;
  5927. deklowaz [ id ] = false;
  5928. super_knife_shop [ id ] = false;
  5929. super_knife_shop2 [ id ] = false;
  5930. ++g_Menu [ id ];
  5931. ++g_Menu [ id ];
  5932. client_cmd(id, "bind v +drag");
  5933. remove_task(id);
  5934. if(Drag_Cooldown[id]) {
  5935. set_task ( 0.1, "DragShowHUD", id );
  5936. }
  5937. HasPower[id] = 6;
  5938.  
  5939. }
  5940. }
  5941. }
  5942.  
  5943. case 6:
  5944. {
  5945. if ( get_user_team ( id ) == 1 ) {
  5946. if ( g_Menu [ id ] >= 3 ) {
  5947. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5948. }
  5949.  
  5950. else {
  5951.  
  5952. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Ignes^3 + puterea de a ingheta inamicul .^4", szPrefix );
  5953. ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
  5954.  
  5955.  
  5956. katana_knife [ id ] = false;
  5957. double_katana_knife [ id ] = false;
  5958. super_knife [ id ] = false;
  5959. trainer [ id ] = false;
  5960. thompson [ id ] = false;
  5961. uspx [ id ] = false;
  5962. hunter [ id ] = false;
  5963. shaman [ id ] = false;
  5964. mage [ id ] = false;
  5965. rogue [ id ] = false;
  5966. warrior [ id ] = false;
  5967. deklowaz [ id ] = false;
  5968.  
  5969. ignes_knife [ id ] = true;
  5970. elf_knife [ id ] = false;
  5971. vip_axe_knife [ id ] = false;
  5972. druid [ id ] = false;
  5973. strike_grenade2 [ id ] = true;
  5974. super_knife_shop [ id ] = false;
  5975. super_knife_shop2 [ id ] = false;
  5976. set_user_gravity ( id, 0.5 );
  5977. set_user_health ( id, 185 );
  5978. set_user_armor ( id, 150 );
  5979. give_item ( id, "weapon_hegrenade" );
  5980. give_item ( id, "weapon_flashbang" );
  5981. give_item ( id, "weapon_flashbang" );
  5982. client_cmd(id, "bind v power");
  5983. remove_task(id);
  5984. if(Freeze_Cooldown[id]) {
  5985. set_task ( 0.1, "FreezeShowHUD", id );
  5986. }
  5987. HasPower[id] = 5;
  5988. //set_pev ( id, pev_viewmodel2, ignes_knife_model );
  5989. ++g_Menu [ id ];
  5990. ++g_Menu [ id ];
  5991. }
  5992. }
  5993.  
  5994. if ( get_user_team ( id ) == 2 ) {
  5995. if ( g_Menu [ id ] >= 3 ) {
  5996. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  5997. }
  5998.  
  5999. else {
  6000.  
  6001. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Warlock^3 + puterea de a trage perfect^4 [ norecoil ]^3 .^4", szPrefix );
  6002. ColorChat ( id, GREEN, "%s Puterea se activeaza automat .^4", szPrefix );
  6003. give_item ( id, "weapon_p90" );
  6004. give_item ( id, "weapon_usp" );
  6005. set_user_gravity ( id, 0.6 );
  6006. set_user_health ( id, 165 );
  6007. set_user_armor ( id, 105 );
  6008. cs_set_user_bpammo ( id, CSW_USP, 100 );
  6009. cs_set_user_bpammo ( id, CSW_P90, 200 );
  6010. trainer [ id ] = false;
  6011. katana_knife [ id ] = false;
  6012. double_katana_knife [ id ] = false;
  6013. super_knife [ id ] = false;
  6014. infinity_knife [ id ] = false;
  6015. ignes_knife [ id ] = false;
  6016. elf_knife [ id ] = false;
  6017. thompson [ id ] = true;
  6018. uspx [ id ] = true;
  6019. hunter [ id ] = false;
  6020. shaman [ id ] = false;
  6021. mage [ id ] = false;
  6022. druid [ id ] = false;
  6023. rogue [ id ] = false;
  6024. warrior [ id ] = false;
  6025. deklowaz [ id ] = false;
  6026. vip_axe_knife [ id ] = false;
  6027. super_knife_shop [ id ] = false;
  6028. super_knife_shop2 [ id ] = false;
  6029. ++g_Menu [ id ];
  6030. ++g_Menu [ id ];
  6031. remove_task(id);
  6032. HasPower[id] = 8;
  6033.  
  6034. }
  6035. }
  6036. }
  6037.  
  6038. case 7:
  6039. {
  6040. if ( get_user_team ( id ) == 1 ) {
  6041. if ( g_Menu [ id ] >= 3 ) {
  6042. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  6043. }
  6044.  
  6045. else {
  6046.  
  6047. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Elf^3 + puterea de a ingheta inamicul .^4", szPrefix );
  6048. ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
  6049.  
  6050.  
  6051.  
  6052.  
  6053.  
  6054. katana_knife [ id ] = false;
  6055. double_katana_knife [ id ] = false;
  6056. super_knife [ id ] = false;
  6057. trainer [ id ] = false;
  6058. ignes_knife [ id ] = false;
  6059.  
  6060. elf_knife [ id ] = true;
  6061. thompson [ id ] = false;
  6062. uspx [ id ] = false;
  6063. hunter [ id ] = false;
  6064. druid [ id ] = false;
  6065. shaman [ id ] = false;
  6066. mage [ id ] = false;
  6067. rogue [ id ] = false;
  6068. warrior [ id ] = false;
  6069. deklowaz [ id ] = false;
  6070. strike_grenade3 [ id ] = true;
  6071. super_knife_shop [ id ] = false;
  6072. super_knife_shop2 [ id ] = false;
  6073. ++g_Menu [ id ];
  6074. ++g_Menu [ id ];
  6075. set_user_gravity ( id, 0.4 );
  6076. set_user_health ( id, 185 );
  6077. set_user_armor ( id, 160 );
  6078. give_item ( id, "weapon_hegrenade" );
  6079. give_item ( id, "weapon_flashbang" );
  6080. give_item ( id, "weapon_flashbang" );
  6081. client_cmd(id, "bind v power");
  6082. remove_task(id);
  6083. if(Freeze_Cooldown[id]) {
  6084. set_task ( 0.1, "FreezeShowHUD", id );
  6085. }
  6086. HasPower[id] = 5;
  6087. //set_pev ( id, pev_viewmodel2, elf_knife_model );
  6088.  
  6089. }
  6090. }
  6091.  
  6092. if ( get_user_team ( id ) == 2 ) {
  6093. if ( g_Menu [ id ] >= 3 ) {
  6094. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  6095. }
  6096.  
  6097. else {
  6098.  
  6099. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Warrior^3 + puterea de a trage perfect^4 [ norecoil ]^3 .^4", szPrefix );
  6100. ColorChat ( id, GREEN, "%s Puterea se activeaza automat .^4", szPrefix );
  6101. give_item ( id, "weapon_p90" );
  6102. give_item ( id, "weapon_usp" );
  6103. set_user_gravity ( id, 0.6 );
  6104. set_user_health ( id, 180 );
  6105. set_user_armor ( id, 115 );
  6106. cs_set_user_bpammo ( id, CSW_USP, 100 );
  6107. cs_set_user_bpammo ( id, CSW_P90, 200 );
  6108. trainer [ id ] = false;
  6109. katana_knife [ id ] = false;
  6110. double_katana_knife [ id ] = false;
  6111. super_knife [ id ] = false;
  6112. infinity_knife [ id ] = false;
  6113. ignes_knife [ id ] = false;
  6114. elf_knife [ id ] = false;
  6115. thompson [ id ] = false;
  6116. uspx [ id ] = true;
  6117. hunter [ id ] = false;
  6118. shaman [ id ] = false;
  6119. druid [ id ] = false;
  6120. mage [ id ] = false;
  6121. rogue [ id ] = false;
  6122. warrior [ id ] = true;
  6123. vip_axe_knife [ id ] = false;
  6124. deklowaz [ id ] = false;
  6125. super_knife_shop [ id ] = false;
  6126. super_knife_shop2 [ id ] = false;
  6127. ++g_Menu [ id ];
  6128. ++g_Menu [ id ];
  6129. remove_task(id);
  6130. HasPower[id] = 8;
  6131.  
  6132. }
  6133. }
  6134. }
  6135.  
  6136. case 8:
  6137. {
  6138. if ( get_user_team ( id ) == 1 ) {
  6139. if ( g_Menu [ id ] >= 3 ) {
  6140. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  6141. }
  6142.  
  6143. else {
  6144.  
  6145. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Alcadeias^3 + puterea de a te teleporta .^4", szPrefix );
  6146. ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
  6147.  
  6148. vip_axe_knife [ id ] = true;
  6149. katana_knife [ id ] = false;
  6150. double_katana_knife [ id ] = false;
  6151. super_knife [ id ] = false;
  6152. thompson [ id ] = false;
  6153. uspx [ id ] = false;
  6154. hunter [ id ] = false;
  6155. shaman [ id ] = false;
  6156. mage [ id ] = false;
  6157. rogue [ id ] = false;
  6158. druid [ id ] = false;
  6159. warrior [ id ] = false;
  6160. deklowaz [ id ] = false;
  6161. infinity_knife [ id ] = false;
  6162. ignes_knife [ id ] = false;
  6163. trainer [ id ] = false;
  6164. elf_knife [ id ] = false;
  6165. strike_grenade3 [ id ] = true;
  6166. super_knife_shop [ id ] = false;
  6167. super_knife_shop2 [ id ] = false;
  6168. set_user_gravity ( id, 0.4 );
  6169. set_user_health ( id, 200 );
  6170. set_user_armor ( id, 200 );
  6171. give_item ( id, "weapon_hegrenade" );
  6172. give_item ( id, "weapon_flashbang" );
  6173. give_item ( id, "weapon_flashbang" );
  6174. ++g_Menu [ id ];
  6175. ++g_Menu [ id ];
  6176. client_cmd(id, "bind v power");
  6177. remove_task(id);
  6178. if(Teleport_Cooldown[id]) {
  6179. set_task ( 0.1, "TeleportShowHUD", id );
  6180. }
  6181. HasPower[id] = 7;
  6182.  
  6183. }
  6184. }
  6185.  
  6186. if ( get_user_team ( id ) == 2 ) {
  6187. if ( g_Menu [ id ] >= 3 ) {
  6188. ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
  6189. }
  6190.  
  6191. else {
  6192. ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Deklowaz^3 + puterea de a te teleporta .^4", szPrefix );
  6193. ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
  6194. give_item ( id, "weapon_p90" );
  6195. give_item ( id, "weapon_usp" );
  6196. set_user_gravity ( id, 0.6 );
  6197. set_user_health ( id, 200 );
  6198. set_user_armor ( id, 130 );
  6199. cs_set_user_bpammo ( id, CSW_USP, 100 );
  6200. cs_set_user_bpammo ( id, CSW_P90, 200 );
  6201. trainer [ id ] = false;
  6202. katana_knife [ id ] = false;
  6203. double_katana_knife [ id ] = false;
  6204. super_knife [ id ] = false;
  6205. infinity_knife [ id ] = false;
  6206. ignes_knife [ id ] = false;
  6207. elf_knife [ id ] = false;
  6208. thompson [ id ] = false;
  6209. druid [ id ] = false;
  6210. uspx [ id ] = true;
  6211. hunter [ id ] = false;
  6212. shaman [ id ] = false;
  6213. mage [ id ] = false;
  6214. rogue [ id ] = false;
  6215. warrior [ id ] = false;
  6216. deklowaz [ id ] = true;
  6217. super_knife_shop [ id ] = false;
  6218. super_knife_shop2 [ id ] = false;
  6219. ++g_Menu [ id ];
  6220. ++g_Menu [ id ];
  6221. client_cmd(id, "bind v power");
  6222. remove_task(id);
  6223. if(Teleport_Cooldown[id]) {
  6224. set_task ( 0.1, "TeleportShowHUD", id );
  6225. }
  6226. HasPower[id] = 7;
  6227.  
  6228. }
  6229. }
  6230. }
  6231.  
  6232. }
  6233.  
  6234. ShowHud ( id );
  6235. if ( get_user_team ( id ) == 1 ) {
  6236. cs_set_user_model(id, "furienxp")
  6237. }
  6238.  
  6239. if ( get_user_team ( id ) == 2 ) {
  6240. cs_set_user_model(id, "furienxp2")
  6241. }
  6242.  
  6243. menu_destroy ( menu );
  6244. return 1;
  6245. }
  6246.  
  6247. public cmdShop ( id, level, cid ) {
  6248.  
  6249. if ( is_user_alive ( id ) ) {
  6250.  
  6251. new menu = menu_create( "Shop Menu", "MenuShopGiver");
  6252.  
  6253. if ( get_user_team ( id ) == 1 ) {
  6254. menu_additem ( menu, "\ySuper Knife \y[ \r8000 $\y ]", "1", 0 );
  6255. }
  6256.  
  6257. menu_additem ( menu, "\yHE Grenade \y[ \r2500 $\y ]", "2", 0 );
  6258.  
  6259. if ( get_user_team ( id ) == 2 ) {
  6260. menu_additem ( menu, "\yDefuse Kit \y[ \r300 $\y ]", "3", 0 );
  6261. }
  6262.  
  6263. menu_additem ( menu, "\r+\y50 HP \y[ \r3000 $\y ]", "4", 0 );
  6264. menu_additem ( menu, "\r+\y50 AP\r + \yHelmet \y[ \r2000 $\y ]", "5", 0 );
  6265.  
  6266.  
  6267. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  6268. menu_display(id, menu, 0);
  6269.  
  6270.  
  6271. return 1;
  6272. }
  6273.  
  6274. else {
  6275. ColorChat ( id, GREEN, "%s Nu poti folosi shop-ul cand esti mort.^4", szPrefix );
  6276. }
  6277.  
  6278. return 1;
  6279. }
  6280.  
  6281. public MenuShopGiver ( id, menu, item ) {
  6282.  
  6283. if( item == MENU_EXIT )
  6284. {
  6285. return 1;
  6286. }
  6287.  
  6288. new data[6], szName[64];
  6289. new access, callback;
  6290. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  6291. new key = str_to_num(data);
  6292.  
  6293. switch(key)
  6294. {
  6295. case 1:
  6296. {
  6297. new iPret = cs_get_user_money ( id ) - 8000;
  6298. if( iPret < 0 )
  6299. {
  6300. client_print( id, print_center, "Nu ai destui bani !" );
  6301. return 1;
  6302. }
  6303. else
  6304. {
  6305. if ( Level [ id ] < 15 ) {
  6306. super_knife_shop [ id ] = true;
  6307. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
  6308. cs_set_user_money ( id, iPret );
  6309. }
  6310.  
  6311. else if ( Level [ id ] >= 15 ) {
  6312. super_knife_shop2 [ id ] = true;
  6313. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
  6314. set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
  6315. cs_set_user_money ( id, iPret );
  6316. }
  6317.  
  6318.  
  6319. return 1;
  6320. }
  6321. return 1
  6322. }
  6323.  
  6324. case 2:
  6325. {
  6326. new iPret = cs_get_user_money ( id ) - 2500;
  6327. if( iPret < 0 )
  6328. {
  6329. client_print( id, print_center, "Nu ai destui bani !" );
  6330. return 1;
  6331. }
  6332. else
  6333. {
  6334. give_item ( id, "weapon_hegrenade" );
  6335. cs_set_user_money ( id, iPret );
  6336. return 1;
  6337. }
  6338. return 1
  6339. }
  6340.  
  6341. case 3:
  6342. {
  6343. new iPret = cs_get_user_money ( id ) - 300;
  6344. if( iPret < 0 )
  6345. {
  6346. client_print( id, print_center, "Nu ai destui bani !" );
  6347. return 1;
  6348. }
  6349. else
  6350. {
  6351. give_item ( id, "item_thighpack" );
  6352. cs_set_user_money ( id, iPret );
  6353. return 1;
  6354. }
  6355. return 1
  6356. }
  6357.  
  6358. case 4:
  6359. {
  6360. new iPret = cs_get_user_money ( id ) - 3000;
  6361. if( iPret < 0 )
  6362. {
  6363. client_print( id, print_center, "Nu ai destui bani !" );
  6364. return 1;
  6365. }
  6366. else
  6367. {
  6368. set_dhudmessage ( 31, 201, 31, 0.02, 0.90, 0, 6.0, 1.0 );
  6369. show_dhudmessage ( id, "+50 HP" );
  6370. set_user_health ( id, get_user_health ( id ) + 50 );
  6371. cs_set_user_money ( id, iPret );
  6372.  
  6373. if ( get_user_team ( id ) == 2 && Level [ id ] < 20 ) {
  6374. emit_sound(id, CHAN_ITEM, buy_AntiFurienHealth, 0.6, ATTN_NORM, 0, PITCH_NORM)
  6375. af ( id );
  6376. }
  6377.  
  6378. if ( get_user_team ( id ) == 2 && Level [ id ] >= 20 ) {
  6379. emit_sound(id, CHAN_ITEM, buy_FurienHealth, 0.6, ATTN_NORM, 0, PITCH_NORM)
  6380. fr ( id );
  6381. }
  6382.  
  6383. return 1;
  6384. }
  6385. return 1
  6386. }
  6387.  
  6388. case 5:
  6389. {
  6390. new iPret = cs_get_user_money ( id ) - 2000;
  6391. if( iPret < 0 )
  6392. {
  6393. client_print( id, print_center, "Nu ai destui bani !" );
  6394. return 1;
  6395. }
  6396. else
  6397. {
  6398. set_dhudmessage ( 31, 201, 31, 0.20, 0.90, 0, 6.0, 1.0 );
  6399. show_dhudmessage ( id, "+50 AP" );
  6400. set_user_armor ( id, get_user_armor ( id ) + 50 );
  6401. cs_set_user_money ( id, iPret );
  6402. return 1;
  6403. }
  6404. return 1
  6405. }
  6406.  
  6407. }
  6408.  
  6409. menu_destroy(menu);
  6410. return 1
  6411.  
  6412. }
  6413.  
  6414. furien(origin[3]) {
  6415. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  6416. write_byte(TE_SPRITE)
  6417. write_coord(origin[0])
  6418. write_coord(origin[1])
  6419. write_coord(origin[2]+=30)
  6420. write_short(g_FurienHealth)
  6421. write_byte(8)
  6422. write_byte(255)
  6423. message_end()
  6424. }
  6425.  
  6426. antifurien(origin[3]) {
  6427. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  6428. write_byte(TE_SPRITE)
  6429. write_coord(origin[0])
  6430. write_coord(origin[1])
  6431. write_coord(origin[2]+=30)
  6432. write_short(g_AntiFurienHealth)
  6433. write_byte(8)
  6434. write_byte(255)
  6435. message_end()
  6436. }
  6437.  
  6438. public fr(victim)
  6439. {
  6440. new origin[3]
  6441. get_user_origin(victim,origin)
  6442.  
  6443. furien(origin)
  6444. }
  6445.  
  6446. public af(victim)
  6447. {
  6448. new origin[3]
  6449. get_user_origin(victim,origin)
  6450.  
  6451. antifurien(origin)
  6452. }
  6453.  
  6454.  
  6455. public cmdShowTVIPMenu ( id, level, cid ) {
  6456.  
  6457. new menu = menu_create ( "FurienVIP Menu", "MenuTVIPGiver" )
  6458.  
  6459. if ( !UserHaveHpAndAp [ id ] ) {
  6460.  
  6461. menu_additem ( menu, "\y225 HP\w &\y 225 AP", "1", VIP_ACCESS );
  6462. }
  6463.  
  6464. else if ( UserHaveHpAndAp [ id ] ) {
  6465.  
  6466. menu_additem ( menu, "\w225 HP\y &\w 225 AP", "1", VIP_ACCESS );
  6467. }
  6468.  
  6469. if ( !UserHaveHeGrenade [ id ] ) {
  6470.  
  6471. menu_additem ( menu, "\yHE GRENADE", "2", VIP_ACCESS );
  6472. }
  6473.  
  6474. else if ( UserHaveHeGrenade [ id ] ) {
  6475. menu_additem ( menu, "\wHE GRENADE", "2", VIP_ACCESS );
  6476. }
  6477.  
  6478. if ( !UserHaveGodMode [ id ] ) {
  6479.  
  6480. menu_additem ( menu, "\yGOD MODE", "3", VIP_ACCESS );
  6481. }
  6482.  
  6483. else if ( UserHaveGodMode [ id ] ) {
  6484.  
  6485. menu_additem ( menu, "\wGOD MODE", "3", VIP_ACCESS );
  6486. }
  6487.  
  6488. if ( !UserHaveNoClip [ id ] ) {
  6489.  
  6490. menu_additem ( menu, "\yNOCLIP", "4", VIP_ACCESS );
  6491. }
  6492.  
  6493. else if ( UserHaveNoClip [ id ] ) {
  6494.  
  6495. menu_additem ( menu, "\wNOCLIP", "4", VIP_ACCESS );
  6496. }
  6497.  
  6498. if ( !UserHaveTeleport [ id ] ) {
  6499.  
  6500. menu_additem ( menu, "\yTELEPORT", "5", VIP_ACCESS );
  6501. }
  6502.  
  6503. else if ( UserHaveTeleport [ id ] ) {
  6504.  
  6505. menu_additem ( menu, "\wTELEPORT", "5", VIP_ACCESS );
  6506. }
  6507.  
  6508. if ( !UserHaveSuperKnife [ id ] ) {
  6509.  
  6510. menu_additem ( menu, "\ySUPER KNIFE", "6", VIP_ACCESS );
  6511. }
  6512.  
  6513. else if ( UserHaveSuperKnife [ id ] ) {
  6514.  
  6515. menu_additem ( menu, "\wSUPER KNIFE", "6", VIP_ACCESS );
  6516. }
  6517.  
  6518. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  6519. menu_display(id, menu, 0);
  6520.  
  6521.  
  6522. return 1
  6523. }
  6524.  
  6525. public cmdShowCTVIPMenu ( id, level, cid ) {
  6526.  
  6527. new menu = menu_create ( "FurienVIP Menu", "MenuCTVIPGiver" )
  6528.  
  6529. if ( !UserHaveHpAndAp [ id ] ) {
  6530.  
  6531. menu_additem ( menu, "\y225 HP\w &\y 225 AP", "1", VIP_ACCESS );
  6532. }
  6533.  
  6534. else if ( UserHaveHpAndAp [ id ] ) {
  6535.  
  6536. menu_additem ( menu, "\w225 HP\y &\w 225 AP", "1", VIP_ACCESS );
  6537. }
  6538.  
  6539. if ( !UserHaveHeGrenade [ id ] ) {
  6540.  
  6541. menu_additem ( menu, "\yHE GRENADE", "2", VIP_ACCESS );
  6542. }
  6543.  
  6544. else if ( UserHaveHeGrenade [ id ] ) {
  6545. menu_additem ( menu, "\wHE GRENADE", "2", VIP_ACCESS );
  6546. }
  6547.  
  6548. if ( !UserHaveGodMode [ id ] ) {
  6549.  
  6550. menu_additem ( menu, "\yGOD MODE", "3", VIP_ACCESS );
  6551. }
  6552.  
  6553. else if ( UserHaveGodMode [ id ] ) {
  6554.  
  6555. menu_additem ( menu, "\wGOD MODE", "3", VIP_ACCESS );
  6556. }
  6557.  
  6558. if ( !UserHaveNoClip [ id ] ) {
  6559.  
  6560. menu_additem ( menu, "\yNOCLIP", "4", VIP_ACCESS );
  6561. }
  6562.  
  6563. else if ( UserHaveNoClip [ id ] ) {
  6564.  
  6565. menu_additem ( menu, "\wNOCLIP", "4", VIP_ACCESS );
  6566. }
  6567.  
  6568. if ( !UserHaveTeleport [ id ] ) {
  6569.  
  6570. menu_additem ( menu, "\yTELEPORT", "5", VIP_ACCESS );
  6571. }
  6572.  
  6573. else if ( UserHaveTeleport [ id ] ) {
  6574.  
  6575. menu_additem ( menu, "\wTELEPORT", "5", VIP_ACCESS );
  6576. }
  6577.  
  6578. if ( !UserHaveSuperKnife [ id ] ) {
  6579.  
  6580. menu_additem ( menu, "\yDUAL MP5", "6", VIP_ACCESS );
  6581. }
  6582.  
  6583. else if ( UserHaveSuperKnife [ id ] ) {
  6584.  
  6585. menu_additem ( menu, "\wDUAL MP5", "6", VIP_ACCESS );
  6586. }
  6587.  
  6588. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
  6589. menu_display(id, menu, 0);
  6590.  
  6591.  
  6592. return 1
  6593. }
  6594.  
  6595. public MenuCTVIPGiver ( id, menu, item )
  6596. {
  6597. if( item == MENU_EXIT )
  6598. {
  6599. return 1
  6600. }
  6601.  
  6602. new data[6], szName[64];
  6603. new access, callback;
  6604. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  6605. new key = str_to_num(data);
  6606.  
  6607. switch(key)
  6608. {
  6609. case 1:
  6610. {
  6611. if ( UserHaveHpAndAp [ id ] ) {
  6612.  
  6613. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .^4", szPrefix );
  6614. return 1;
  6615. }
  6616.  
  6617. else if ( !UserHaveHpAndAp [ id ] ) {
  6618.  
  6619. set_user_health ( id, 225 );
  6620. set_user_armor ( id, 225 );
  6621. ColorChat ( id, GREEN, "%s Ai primit^4 225 HP^3 &^4 225 AP^3 .^4", szPrefix );
  6622. UserHaveHpAndAp [ id ] = true;
  6623.  
  6624. UserHaveHeGrenade [ id ] = false;
  6625. UserHaveGodMode [ id ] = false;
  6626. UserHaveNoClip [ id ] = false;
  6627. UserHaveSuperKnife [ id ] = false;
  6628. UserHaveTeleport [ id ] = false;
  6629. UserHasChoosed [ id ] = true;
  6630. }
  6631. }
  6632.  
  6633. case 2:
  6634. {
  6635. if ( UserHaveHeGrenade [ id ] ) {
  6636.  
  6637. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6638. return 1;
  6639. }
  6640.  
  6641. else if ( !UserHaveHeGrenade [ id ] ) {
  6642.  
  6643. give_item ( id, "weapon_hegrenade" );
  6644. ColorChat ( id, GREEN, "%s Vei primi o grenada^4 HE^3 odata la^4 15^3 secunde .^4", szPrefix );
  6645. UserHaveHeGrenade [ id ] = true;
  6646. set_task(15.0, "GiveMeAHeGrenade", id, _, _, "b");
  6647.  
  6648. UserHaveGodMode [ id ] = false;
  6649. UserHaveNoClip [ id ] = false;
  6650. UserHaveSuperKnife [ id ] = false;
  6651. UserHaveTeleport [ id ] = false;
  6652. UserHaveHpAndAp [ id ] = false;
  6653. UserHasChoosed [ id ] = true;
  6654. }
  6655. }
  6656.  
  6657. case 3:
  6658. {
  6659. if ( UserHaveGodMode [ id ] ) {
  6660.  
  6661. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6662. return 1;
  6663. }
  6664.  
  6665. else if ( !UserHaveGodMode [ id ] ) {
  6666.  
  6667. ColorChat ( id, GREEN, "%s Ai primit^4 GodMode^3, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
  6668. UserHaveGodMode [ id ] = true;
  6669. client_cmd ( id, "bind z vippower" );
  6670.  
  6671. UserHaveHeGrenade [ id ] = false;
  6672. UserHaveNoClip [ id ] = false;
  6673. UserHaveSuperKnife [ id ] = false;
  6674. UserHaveTeleport [ id ] = false;
  6675. UserHaveHpAndAp [ id ] = false;
  6676. UserHasChoosed [ id ] = true;
  6677. }
  6678. }
  6679.  
  6680. case 4:
  6681. {
  6682. if ( UserHaveNoClip [ id ] ) {
  6683.  
  6684. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6685. return 1;
  6686. }
  6687.  
  6688. else if ( !UserHaveNoClip [ id ] ) {
  6689.  
  6690. ColorChat ( id, GREEN, "%s Ai primit^4 NoClip^3, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
  6691. UserHaveNoClip [ id ] = true;
  6692. client_cmd ( id, "bind z vippower" );
  6693.  
  6694. UserHaveHeGrenade [ id ] = false;
  6695. UserHaveGodMode [ id ] = false;
  6696. UserHaveSuperKnife [ id ] = false;
  6697. UserHaveTeleport [ id ] = false;
  6698. UserHaveHpAndAp [ id ] = false;
  6699. UserHasChoosed [ id ] = true;
  6700. }
  6701. }
  6702.  
  6703. case 5:
  6704. {
  6705. if ( UserHaveTeleport [ id ] ) {
  6706.  
  6707. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6708. return 1;
  6709. }
  6710.  
  6711. else if ( !UserHaveTeleport [ id ] ) {
  6712.  
  6713. ColorChat ( id, GREEN, "%s Ai primit puterea de a te^4 Teleporta^3, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
  6714. UserHaveTeleport [ id ] = true;
  6715. client_cmd ( id, "bind z power" );
  6716. remove_task(id);
  6717. if(Teleport_Cooldown[id]) {
  6718. set_task ( 0.1, "TeleportShowHUD", id );
  6719. }
  6720.  
  6721. HasPower[id] = 7;
  6722.  
  6723. UserHaveHeGrenade [ id ] = false;
  6724. UserHaveGodMode [ id ] = false;
  6725. UserHaveSuperKnife [ id ] = false;
  6726. UserHaveNoClip [ id ] = false;
  6727. UserHaveHpAndAp [ id ] = false;
  6728. UserHasChoosed [ id ] = true;
  6729. }
  6730. }
  6731.  
  6732. case 6:
  6733. {
  6734. if ( UserHaveDualMp5 [ id ] ) {
  6735.  
  6736. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6737. return 1;
  6738. }
  6739.  
  6740. else if ( !UserHaveDualMp5 [ id ] ) {
  6741.  
  6742. ColorChat ( id, GREEN, "%s Ai primit^4 Dual Mp5^3 . ^4", szPrefix );
  6743. strip_user_weapons ( id );
  6744. give_item ( id, "weapon_knife" );
  6745. give_item ( id, "weapon_mp5navy" );
  6746. give_item ( id, "weapon_hegrenade" );
  6747. give_item ( id, "weapon_flashbang" );
  6748. give_item ( id, "weapon_smokegrenade" );
  6749. give_item ( id, "weapon_usp" );
  6750. cs_set_user_bpammo ( id, CSW_MP5NAVY, 200 );
  6751. cs_set_user_bpammo ( id, CSW_USP, 100 );
  6752. dual_mp5 [ id ] = true;
  6753. uspx [ id ] = true;
  6754. flare [ id ] = true;
  6755.  
  6756. UserHaveDualMp5 [ id ] = true;
  6757.  
  6758. g_has_k1ases[id] = false
  6759. g_delay[id] = 0
  6760. g_ammoclaw[id] = 0
  6761. UserHaveTeleport [ id ] = false;
  6762. UserHaveHeGrenade [ id ] = false;
  6763. UserHaveGodMode [ id ] = false;
  6764. UserHaveSuperKnife [ id ] = false;
  6765. UserHaveNoClip [ id ] = false;
  6766. UserHaveHpAndAp [ id ] = false;
  6767. UserHasChoosed [ id ] = true;
  6768. }
  6769. }
  6770.  
  6771. }
  6772.  
  6773. menu_destroy(menu);
  6774. return 1
  6775.  
  6776. }
  6777.  
  6778. public MenuTVIPGiver ( id, menu, item )
  6779. {
  6780. if( item == MENU_EXIT )
  6781. {
  6782. return 1
  6783. }
  6784.  
  6785. new data[6], szName[64];
  6786. new access, callback;
  6787. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  6788. new key = str_to_num(data);
  6789.  
  6790. switch(key)
  6791. {
  6792. case 1:
  6793. {
  6794. if ( UserHaveHpAndAp [ id ] ) {
  6795.  
  6796. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .^4", szPrefix );
  6797. return 1;
  6798. }
  6799.  
  6800. else if ( !UserHaveHpAndAp [ id ] ) {
  6801.  
  6802. set_user_health ( id, 225 );
  6803. set_user_armor ( id, 225 );
  6804. ColorChat ( id, GREEN, "%s Vei primi^4 225 HP^3 &^4 225 AP^3 in fiecare runda .^4", szPrefix );
  6805. UserHaveHpAndAp [ id ] = true;
  6806.  
  6807. UserHaveHeGrenade [ id ] = false;
  6808. UserHaveGodMode [ id ] = false;
  6809. UserHaveNoClip [ id ] = false;
  6810. UserHaveSuperKnife [ id ] = false;
  6811. UserHaveTeleport [ id ] = false;
  6812. UserHasChoosed [ id ] = true;
  6813. }
  6814. }
  6815.  
  6816. case 2:
  6817. {
  6818. if ( UserHaveHeGrenade [ id ] ) {
  6819.  
  6820. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6821. return 1;
  6822. }
  6823.  
  6824. else if ( !UserHaveHeGrenade [ id ] ) {
  6825.  
  6826. give_item ( id, "weapon_hegrenade" );
  6827. ColorChat ( id, GREEN, "%s Vei primi o grenada^4 HE^3 odata la^4 15^3 secunde .^4", szPrefix );
  6828. UserHaveHeGrenade [ id ] = true;
  6829. set_task(15.0, "GiveMeAHeGrenade", id, _, _, "b");
  6830.  
  6831. UserHaveGodMode [ id ] = false;
  6832. UserHaveNoClip [ id ] = false;
  6833. UserHaveSuperKnife [ id ] = false;
  6834. UserHaveTeleport [ id ] = false;
  6835. UserHaveHpAndAp [ id ] = false;
  6836. UserHasChoosed [ id ] = true;
  6837. }
  6838. }
  6839.  
  6840. case 3:
  6841. {
  6842. if ( UserHaveGodMode [ id ] ) {
  6843.  
  6844. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6845. return 1;
  6846. }
  6847.  
  6848. else if ( !UserHaveGodMode [ id ] ) {
  6849.  
  6850. ColorChat ( id, GREEN, "%s Vei primi^4 GodMode^3 in fiecare runda, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
  6851. UserHaveGodMode [ id ] = true;
  6852. client_cmd ( id, "bind z vippower" );
  6853.  
  6854. UserHaveHeGrenade [ id ] = false;
  6855. UserHaveNoClip [ id ] = false;
  6856. UserHaveSuperKnife [ id ] = false;
  6857. UserHaveTeleport [ id ] = false;
  6858. UserHaveHpAndAp [ id ] = false;
  6859. UserHasChoosed [ id ] = true;
  6860. }
  6861. }
  6862.  
  6863. case 4:
  6864. {
  6865. if ( UserHaveNoClip [ id ] ) {
  6866.  
  6867. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6868. return 1;
  6869. }
  6870.  
  6871. else if ( !UserHaveNoClip [ id ] ) {
  6872.  
  6873. ColorChat ( id, GREEN, "%s Vei primi^4 NoClip^3 in fiecare runda, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
  6874. UserHaveNoClip [ id ] = true;
  6875. client_cmd ( id, "bind z vippower" );
  6876.  
  6877. UserHaveHeGrenade [ id ] = false;
  6878. UserHaveGodMode [ id ] = false;
  6879. UserHaveSuperKnife [ id ] = false;
  6880. UserHaveTeleport [ id ] = false;
  6881. UserHaveHpAndAp [ id ] = false;
  6882. UserHasChoosed [ id ] = true;
  6883. }
  6884. }
  6885.  
  6886. case 5:
  6887. {
  6888. if ( UserHaveTeleport [ id ] ) {
  6889.  
  6890. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6891. return 1;
  6892. }
  6893.  
  6894. else if ( !UserHaveTeleport [ id ] ) {
  6895.  
  6896. ColorChat ( id, GREEN, "%s Vei primi puterea de a te^4 Teleporta^3 in fiecare runda, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
  6897. UserHaveTeleport [ id ] = true;
  6898. client_cmd ( id, "bind z power" );
  6899. remove_task(id);
  6900. if(Teleport_Cooldown[id]) {
  6901. set_task ( 0.1, "TeleportShowHUD", id );
  6902. }
  6903.  
  6904. HasPower[id] = 7;
  6905.  
  6906. UserHaveHeGrenade [ id ] = false;
  6907. UserHaveGodMode [ id ] = false;
  6908. UserHaveSuperKnife [ id ] = false;
  6909. UserHaveNoClip [ id ] = false;
  6910. UserHaveHpAndAp [ id ] = false;
  6911. UserHasChoosed [ id ] = true;
  6912. }
  6913. }
  6914.  
  6915. case 6:
  6916. {
  6917. if ( UserHaveSuperKnife [ id ] ) {
  6918.  
  6919. ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
  6920. return 1;
  6921. }
  6922.  
  6923. else if ( !UserHaveSuperKnife [ id ] ) {
  6924.  
  6925. ColorChat ( id, GREEN, "%s Vei primi^4 SuperKnife^3 in fiecare runda. ^4", szPrefix );
  6926. if ( Level [ id ] < 15 ) {
  6927. super_knife_shop [ id ] = true;
  6928. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
  6929. }
  6930.  
  6931. else if ( Level [ id ] >= 15 ) {
  6932. super_knife_shop2 [ id ] = true;
  6933. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
  6934. set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
  6935. }
  6936.  
  6937. UserHaveSuperKnife [ id ] = true;
  6938.  
  6939. UserHaveTeleport [ id ] = false;
  6940. UserHaveHeGrenade [ id ] = false;
  6941. UserHaveGodMode [ id ] = false;
  6942. UserHaveSuperKnife [ id ] = false;
  6943. UserHaveNoClip [ id ] = false;
  6944. UserHaveHpAndAp [ id ] = false;
  6945. UserHasChoosed [ id ] = true;
  6946. }
  6947. }
  6948.  
  6949. }
  6950.  
  6951. menu_destroy(menu);
  6952. return 1
  6953.  
  6954. }
  6955.  
  6956. public GiveMeAHeGrenade ( id ) {
  6957.  
  6958. if ( UserHaveHeGrenade [ id ] ) {
  6959.  
  6960. give_item ( id, "weapon_hegrenade" );
  6961. set_hudmessage(0, 100, 225, 0.05, 0.60, 0, 6.0, 1.0)
  6962. show_hudmessage ( id, "Ai primit o grenada HE" );
  6963. }
  6964. }
  6965.  
  6966. public StopGodMode ( id ) {
  6967.  
  6968. if ( UserHaveGodMode [ id ] ) {
  6969. set_user_godmode ( id, 0 );
  6970. }
  6971. }
  6972.  
  6973. public StopNoClip ( id ) {
  6974.  
  6975. if ( UserHaveNoClip [ id ] ) {
  6976. set_user_noclip ( id, 0 );
  6977. }
  6978.  
  6979. }
  6980.  
  6981. public VIPpower ( id ) {
  6982.  
  6983. if ( UserHaveGodMode [ id ] ) {
  6984.  
  6985. set_user_godmode ( id, 1 );
  6986. set_task(3.0, "StopGodMode", id );
  6987. client_print ( id, print_center, "Ai GodMode penbtru 3 secunde" );
  6988. }
  6989.  
  6990. if ( UserHaveNoClip [ id ] ) {
  6991.  
  6992. set_user_noclip ( id, 1 );
  6993. set_task ( 4.0, "StopNoClip", id );
  6994. client_print ( id, print_center, "Ai NoClip penbtru 4 secunde" );
  6995. }
  6996.  
  6997. }
  6998.  
  6999. public VipBonus ( id ) {
  7000.  
  7001. if ( UserHaveHpAndAp [ id ] ) {
  7002.  
  7003. set_user_health ( id, 225 );
  7004. set_user_armor ( id, 225 );
  7005. }
  7006.  
  7007. if ( UserHaveHeGrenade [ id ] ) {
  7008.  
  7009. give_item ( id, "weapon_hegrenade" );
  7010. set_task(15.0, "GiveMeAHeGrenade", id, _, _, "b");
  7011. }
  7012.  
  7013. if ( UserHaveGodMode [ id ] ) {
  7014.  
  7015. client_cmd ( id, "bind z vippower" );
  7016. }
  7017.  
  7018. if ( UserHaveNoClip [ id ] ) {
  7019.  
  7020. client_cmd ( id, "bind z vippower" );
  7021.  
  7022. }
  7023.  
  7024. if ( UserHaveTeleport [ id ] ) {
  7025.  
  7026. client_cmd ( id, "bind z power" );
  7027. }
  7028.  
  7029. if ( UserHaveSuperKnife [ id ] ) {
  7030.  
  7031. if ( Level [ id ] < 15 ) {
  7032. super_knife_shop [ id ] = true;
  7033. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
  7034. }
  7035.  
  7036. else if ( Level [ id ] >= 15 ) {
  7037. super_knife_shop2 [ id ] = true;
  7038. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
  7039. set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
  7040. }
  7041.  
  7042. }
  7043.  
  7044. }
  7045.  
  7046. public ForcePlayerSpeed ( id ) {
  7047.  
  7048. if ( get_user_team ( id ) == 1 ) {
  7049.  
  7050. if ( trainer [ id ] )
  7051. {
  7052. set_pev ( id, pev_maxspeed, 900.0 );
  7053. }
  7054.  
  7055. if ( infinity_knife [ id ] )
  7056. {
  7057. set_pev ( id, pev_maxspeed, 930.0 );
  7058. }
  7059.  
  7060. if ( super_knife [ id ] )
  7061. {
  7062. set_pev ( id, pev_maxspeed, 950.0 );
  7063. }
  7064.  
  7065. if ( katana_knife [ id ] )
  7066. {
  7067. set_pev ( id, pev_maxspeed, 1000.0 );
  7068. }
  7069.  
  7070. if ( double_katana_knife [ id ] )
  7071. {
  7072. set_pev ( id, pev_maxspeed, 1050.0 );
  7073. }
  7074.  
  7075. if ( ignes_knife [ id ] )
  7076. {
  7077. set_pev ( id, pev_maxspeed, 1100.0 );
  7078. }
  7079.  
  7080. if ( elf_knife [ id ] )
  7081. {
  7082. set_pev ( id, pev_maxspeed, 1150.0 );
  7083. }
  7084.  
  7085. if ( vip_axe_knife [ id ] )
  7086. {
  7087. set_pev ( id, pev_maxspeed, 1200.0 );
  7088. }
  7089.  
  7090. }
  7091. }
  7092.  
  7093. public bomb_planted ( planter ) {
  7094.  
  7095. eXP [ planter ] += 35;
  7096. ColorChat ( planter, GREEN, "%s Ai primit^4 35^3 XP pentru plantarea bombei .^4", szPrefix );
  7097.  
  7098. new originnn[3];
  7099. get_user_origin ( planter, originnn, 0 );
  7100.  
  7101. message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
  7102. write_byte(TE_BEAMCYLINDER);
  7103. write_coord(originnn[0]);
  7104. write_coord(originnn[1]);
  7105. write_coord(originnn[2]+10);
  7106. write_coord(originnn[0]);
  7107. write_coord(originnn[1]);
  7108. write_coord(originnn[2]+60);
  7109. write_short(TeleportSprite);
  7110. write_byte(0);
  7111. write_byte(0);
  7112. write_byte(3);
  7113. write_byte(60);
  7114. write_byte(0);
  7115. write_byte(255); //255
  7116. write_byte(0); //255
  7117. write_byte(0); //255
  7118. write_byte(255); //255 //RED
  7119. write_byte(0);
  7120. message_end();
  7121.  
  7122. UTIL_CreateBeamCylinder( originnn, 120, TeleportSprite, 0, 0, 6, 16, 0, 255, 0, 0, 255, 0 );
  7123. UTIL_CreateBeamCylinder( originnn, 320, TeleportSprite, 0, 0, 6, 16, 0, 255, 51, 51, 255, 0 );
  7124. UTIL_CreateBeamCylinder( originnn, 500, TeleportSprite, 0, 0, 6, 16, 0, 255, 102, 102, 255, 0 );
  7125.  
  7126. new iPlayers[32]
  7127. new iNum
  7128.  
  7129. get_players( iPlayers, iNum, "e", "TERRORIST" )
  7130.  
  7131. for( new i = 0; i < iNum; i++ )
  7132. {
  7133. g_CanUseHe[iPlayers[i]] = true;
  7134. }
  7135. }
  7136.  
  7137. public bomb_defused ( defuser ) {
  7138. eXP [ defuser ] += 35;
  7139. ColorChat ( defuser, GREEN, "%s Ai primit^4 35^3 XP pentru defusarea bombei .^4", szPrefix );
  7140. new originnn[3];
  7141. get_user_origin ( defuser, originnn, 0 );
  7142. message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
  7143. write_byte(TE_BEAMCYLINDER);
  7144. write_coord(originnn[0]);
  7145. write_coord(originnn[1]);
  7146. write_coord(originnn[2]+10);
  7147. write_coord(originnn[0]);
  7148. write_coord(originnn[1]);
  7149. write_coord(originnn[2]+60);
  7150. write_short(TeleportSprite);
  7151. write_byte(0);
  7152. write_byte(0);
  7153. write_byte(3);
  7154. write_byte(60);
  7155. write_byte(0);
  7156. write_byte(0); //255
  7157. write_byte(0); //255
  7158. write_byte(255); //255 //BLUE
  7159. write_byte(255); //255
  7160. write_byte(0);
  7161. message_end();
  7162.  
  7163. Create_TE_SPRITETRAIL3( originnn, originnn, TeleportSprite3, 50, 10, 2, 50, 10 );
  7164.  
  7165. /*---ScreenShake---*/
  7166. message_begin(MSG_ONE , gMsgScreenShake , {0,0,0} ,defuser)
  7167. write_short( 1<<14 );
  7168. write_short( 1<<14 );
  7169. write_short( 1<<14 );
  7170. message_end();
  7171. }
  7172.  
  7173. public bomb_explode ( planter ) {
  7174. eXP [ planter ] += 25;
  7175. ColorChat ( planter, GREEN, "%s Ai primit^4 25^3 XP pentru explodarea bombei .^4", szPrefix );
  7176. }
  7177.  
  7178. public handle_say(id) {
  7179. new said[192]
  7180. read_args(said,192)
  7181. if( ( containi(said, "who") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
  7182. set_task(0.1,"print_adminlist",id)
  7183. return PLUGIN_CONTINUE
  7184. }
  7185.  
  7186. public print_adminlist(user)
  7187. {
  7188. new adminnames[33][32]
  7189. new message[256]
  7190. new contactinfo[256], contact[112]
  7191. new id, count, x, len
  7192.  
  7193. for(id = 1 ; id <= maxplayers ; id++)
  7194. if(is_user_connected(id))
  7195. if( get_user_flags(id) & VIP_ACCESS )
  7196. get_user_name(id, adminnames[count++], 31)
  7197.  
  7198. len = format(message, 255, "%s VIPS ONLINE: ",COLOR)
  7199. if(count > 0) {
  7200. for(x = 0 ; x < count ; x++) {
  7201. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
  7202. if(len > 96 ) {
  7203. print_message(user, message)
  7204. len = format(message, 255, "%s ",COLOR)
  7205. }
  7206. }
  7207. print_message(user, message)
  7208. }
  7209. else {
  7210. len += format(message[len], 255-len, "Nici un VIP online.")
  7211. print_message(user, message)
  7212. }
  7213.  
  7214. get_cvar_string("amx_contactinfo", contact, 63)
  7215. if(contact[0]) {
  7216. format(contactinfo, 111, "%s Cumpara VIP -- %s", COLOR, contact)
  7217. print_message(user, contactinfo)
  7218. }
  7219. }
  7220.  
  7221. print_message(id, msg[]) {
  7222. message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  7223. write_byte(id)
  7224. write_string(msg)
  7225. message_end()
  7226. }
  7227.  
  7228. public eDeath ( ) {
  7229.  
  7230. new iKiller = read_data ( 1 );
  7231. new iVictim = read_data ( 2 );
  7232. new Headshot = read_data ( 3 );
  7233.  
  7234. new weapon [ 32 ];
  7235. read_data ( 4, weapon, sizeof ( weapon ) -1 );
  7236. if ( iKiller == iVictim )
  7237. {
  7238. return 1;
  7239. }
  7240. new name [ 32 ];
  7241.  
  7242. get_user_name ( iVictim, name, sizeof ( name ) -1 );
  7243.  
  7244. if ( Headshot && get_user_team ( iKiller ) == 2 )
  7245. {
  7246.  
  7247. eXP [ iKiller ] += get_pcvar_num ( HsXp );
  7248. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ HeadShot ]^3", szPrefix, get_pcvar_num ( HsXp ) + get_pcvar_num ( KillXp ) );
  7249. }
  7250.  
  7251. else if ( Headshot && get_user_team ( iKiller ) == 2 && get_user_flags ( iKiller ) & VIP_ACCESS )
  7252. {
  7253.  
  7254. eXP [ iKiller ] += get_pcvar_num ( HsXp ) + 10;
  7255. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ HeadShot ]^3", szPrefix, get_pcvar_num ( HsXp ) + get_pcvar_num ( KillXp ) );
  7256. }
  7257.  
  7258. else if ( Headshot && get_user_team ( iKiller ) == 1 && get_user_weapon ( iKiller ) == CSW_KNIFE && get_user_flags ( iKiller ) & VIP_ACCESS )
  7259. {
  7260.  
  7261. eXP [ iKiller ] += get_pcvar_num ( HsXp ) + 10;
  7262. set_user_health ( iKiller, get_user_health ( iKiller ) + 35 );
  7263. set_dhudmessage ( 31, 201, 31, 0.02, 0.90, 0, 6.0, 1.0 );
  7264. show_dhudmessage ( iKiller, "+35 HP" );
  7265. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP +^4 35^3 HP^4 [ HeadShot ]^3", szPrefix, get_pcvar_num ( HsXp ) + get_pcvar_num ( KillXp ) + 10 );
  7266.  
  7267. }
  7268.  
  7269. else if ( Headshot && get_user_team ( iKiller ) == 1 && get_user_weapon ( iKiller ) == CSW_KNIFE )
  7270. {
  7271.  
  7272. eXP [ iKiller ] += get_pcvar_num ( HsXp );
  7273. set_user_health ( iKiller, get_user_health ( iKiller ) + 25 );
  7274. set_dhudmessage ( 31, 201, 31, 0.02, 0.90, 0, 6.0, 1.0 );
  7275. show_dhudmessage ( iKiller, "+25 HP" );
  7276. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP +^4 25^3 HP^4 [ HeadShot ]^3", szPrefix, get_pcvar_num ( HsXp ) + get_pcvar_num ( KillXp ) );
  7277.  
  7278. }
  7279.  
  7280. else if ( equali ( weapon, "grenade" ) && Level [ iKiller ] == 0 || Level [ iKiller ] == 1 || Level [ iKiller ] == 2 || Level [ iKiller ] == 3 || Level [ iKiller ] == 4 || Level [ iKiller ] == 5 && get_user_flags ( iKiller ) & VIP_ACCESS )
  7281. {
  7282. eXP [ iKiller ] += get_pcvar_num ( HeXp ) + 5;
  7283. set_user_credits ( iKiller, get_user_credits ( iKiller ) + 2 );
  7284. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP +^4 2^3 credite^4 [ He Grenade ]^3", szPrefix, get_pcvar_num(HeXp) + get_pcvar_num(KillXp) + 5);
  7285. }
  7286.  
  7287. else if ( equali ( weapon, "grenade" ) && Level [ iKiller ] == 0 || Level [ iKiller ] == 1 || Level [ iKiller ] == 2 || Level [ iKiller ] == 3 || Level [ iKiller ] == 4 || Level [ iKiller ] == 5 )
  7288. {
  7289. eXP [ iKiller ] += get_pcvar_num ( HeXp );
  7290. set_user_credits ( iKiller, get_user_credits ( iKiller ) + 1 );
  7291. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP +^4 1^3 credit^4 [ He Grenade ]^3", szPrefix, get_pcvar_num(HeXp) + get_pcvar_num(KillXp) );
  7292. }
  7293.  
  7294. else if ( equali ( weapon, "grenade" ) && get_user_flags ( iKiller ) & VIP_ACCESS )
  7295. {
  7296. eXP [ iKiller ] += get_pcvar_num ( HeXp ) + 10;
  7297. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ He Grenade ]^3", szPrefix, get_pcvar_num(HeXp) + get_pcvar_num(KillXp) + 10 );
  7298.  
  7299. }
  7300.  
  7301. else if ( equali ( weapon, "grenade" ) )
  7302. {
  7303. eXP [ iKiller ] += get_pcvar_num ( HeXp );
  7304. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ He Grenade ]^3", szPrefix, get_pcvar_num(HeXp) + get_pcvar_num(KillXp) );
  7305.  
  7306. }
  7307.  
  7308. else if ( equali ( weapon, "knife" ) && get_user_team ( iKiller ) == 2 && !salamander [ iKiller ] && get_user_flags ( iKiller ) & VIP_ACCESS )
  7309. {
  7310. eXP [ iKiller ] += get_pcvar_num ( KnifeXp ) + 10;
  7311. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ Knife ]^3", szPrefix, get_pcvar_num(KnifeXp) + get_pcvar_num(KillXp) + 10 );
  7312.  
  7313. }
  7314.  
  7315. else if ( equali ( weapon, "knife" ) && get_user_team ( iKiller ) == 2 && !salamander [ iKiller ] )
  7316. {
  7317. eXP [ iKiller ] += get_pcvar_num ( HeXp );
  7318. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ Knife ]^3", szPrefix, get_pcvar_num(KnifeXp) + get_pcvar_num(KillXp) );
  7319.  
  7320. }
  7321.  
  7322. else
  7323. {
  7324. ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ Kill ]^3", szPrefix, get_pcvar_num ( KillXp ) );
  7325.  
  7326. }
  7327.  
  7328. if ( Level [ iVictim ] >= 25 ) {
  7329. AddYellowBonusBox ( iVictim );
  7330. }
  7331.  
  7332. else if ( Level [ iVictim ] < 25 ) {
  7333. AddBonusBox ( iVictim );
  7334. }
  7335.  
  7336. if ( get_user_team ( iKiller ) == 2 && get_user_team ( iVictim ) == 1 ) {
  7337. cs_set_user_money ( iKiller, cs_get_user_money ( iKiller ) + 600 );
  7338. eXP [ iKiller ] += get_pcvar_num ( KillXp );
  7339. }
  7340.  
  7341. if ( get_user_team ( iKiller ) == 1 && get_user_team ( iVictim ) == 2 ) {
  7342. cs_set_user_money ( iKiller, cs_get_user_money ( iKiller ) + 500 );
  7343. eXP [ iKiller ] += get_pcvar_num ( KillXp );
  7344. }
  7345.  
  7346. if ( Level [ iKiller ] <= 30 ) {
  7347. ShowHud ( iKiller );
  7348. return 1;
  7349. }
  7350.  
  7351. while ( eXP [ iKiller ] >= Levels [ Level [ iKiller ] ] ) {
  7352. ColorChat ( iKiller, GREEN, "%s Felicitari ! Acum ai levelul ^4%s^3, cu ^4%i^3 XP.", szPrefix, Prefix [ Level [ iKiller ] ], eXP [ iKiller ] );
  7353. Level [ iKiller ] ++;
  7354.  
  7355. }
  7356.  
  7357. SaveData ( iKiller );
  7358.  
  7359. if ( !is_user_alive ( iVictim ) && get_user_team ( iVictim ) == 1 ) {
  7360. new gMsgScreenFade = get_user_msgid ( "ScreenFade" );
  7361. message_begin ( MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , iVictim );
  7362. write_short ( (6<<10) ); // duration
  7363. write_short ( (5<<10) ); // hold time
  7364. write_short ( (1<<12) ); // fade type
  7365. write_byte ( 255 );
  7366. write_byte ( 0 );
  7367. write_byte ( 0 );
  7368. write_byte ( 170 );
  7369. message_end ( );
  7370. }
  7371.  
  7372. else if ( !is_user_alive ( iVictim ) && get_user_team ( iVictim ) == 2 ) {
  7373. new gMsgScreenFade = get_user_msgid ( "ScreenFade" );
  7374. message_begin ( MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , iVictim );
  7375. write_short ( (6<<10) ); // duration
  7376. write_short ( (5<<10) ); // hold time
  7377. write_short ( (1<<12) ); // fade type
  7378. write_byte ( 0 );
  7379. write_byte ( 0 );
  7380. write_byte ( 255 );
  7381. write_byte ( 170 );
  7382. message_end ( );
  7383. }
  7384.  
  7385. return 1;
  7386. }
  7387.  
  7388. public CmdStart(id, uc_handle, seed) {
  7389. new ent = fm_find_ent_by_class(id, ClassName)
  7390. if(is_valid_ent(ent)) {
  7391. new classname[32]
  7392. pev(ent, pev_classname, classname, 31)
  7393. if (equal(classname, ClassName)) {
  7394.  
  7395. if (pev(ent, pev_frame) >= 120)
  7396. set_pev(ent, pev_frame, 0.0)
  7397. else
  7398. set_pev(ent, pev_frame, pev(ent, pev_frame) + 1.0)
  7399.  
  7400. switch(pev(ent, pev_team))
  7401. {
  7402. case 1:
  7403. {
  7404. }
  7405. case 2:
  7406. {
  7407. }
  7408. }
  7409. }
  7410. }
  7411. }
  7412.  
  7413. public AddBonusBox(id) {
  7414.  
  7415. if(is_user_connected(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR) {
  7416. new ent = fm_create_entity("info_target")
  7417. new origin[3]
  7418. get_user_origin(id, origin, 0)
  7419. set_pev(ent,pev_classname, ClassName)
  7420. switch(cs_get_user_team(id))
  7421. {
  7422. case CS_TEAM_T: {
  7423. engfunc(EngFunc_SetModel,ent, Model[1])
  7424. set_pev(ent,pev_team, 2)
  7425. }
  7426.  
  7427. case CS_TEAM_CT: {
  7428. engfunc(EngFunc_SetModel,ent, Model[0])
  7429. set_pev(ent,pev_team, 1)
  7430. }
  7431. }
  7432. set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0})
  7433. set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0})
  7434. set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0})
  7435. engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0})
  7436.  
  7437. set_pev(ent,pev_solid,SOLID_BBOX)
  7438. set_pev(ent,pev_movetype,MOVETYPE_TOSS)
  7439.  
  7440. new Float:fOrigin[3]
  7441. IVecFVec(origin, fOrigin)
  7442. set_pev(ent, pev_origin, fOrigin)
  7443. }
  7444. }
  7445.  
  7446. public AddYellowBonusBox(id)
  7447. {
  7448. if(is_user_connected(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR) {
  7449. new ent = fm_create_entity("info_target")
  7450. new origin[3]
  7451. get_user_origin(id, origin, 0)
  7452. set_pev(ent,pev_classname, ClassName)
  7453. switch(cs_get_user_team(id))
  7454. {
  7455. case CS_TEAM_T: {
  7456. engfunc(EngFunc_SetModel,ent, Model_Yellow[1])
  7457. set_pev(ent,pev_team, 2)
  7458. }
  7459.  
  7460. case CS_TEAM_CT: {
  7461. engfunc(EngFunc_SetModel,ent, Model_Yellow[0])
  7462. set_pev(ent,pev_team, 1)
  7463. }
  7464. }
  7465. set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0})
  7466. set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0})
  7467. set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0})
  7468. engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0})
  7469.  
  7470. set_pev(ent,pev_solid,SOLID_BBOX)
  7471. set_pev(ent,pev_movetype,MOVETYPE_TOSS)
  7472.  
  7473. new Float:fOrigin[3]
  7474. IVecFVec(origin, fOrigin)
  7475. set_pev(ent, pev_origin, fOrigin)
  7476. }
  7477. }
  7478.  
  7479. public Touch(toucher, touched)
  7480. {
  7481. if (!is_user_alive(toucher) || !pev_valid(touched))
  7482. return FMRES_IGNORED
  7483.  
  7484. new classname[32]
  7485. pev(touched, pev_classname, classname, 31)
  7486. if (!equal(classname, ClassName))
  7487. return FMRES_IGNORED
  7488.  
  7489. if(get_user_team(toucher) == pev(touched, pev_team) )
  7490. {
  7491. GiveBonusBox(toucher)
  7492. set_pev(touched, pev_effects, EF_NODRAW)
  7493. set_pev(touched, pev_solid, SOLID_NOT)
  7494. remove_entity(touched);
  7495. }
  7496.  
  7497. return FMRES_IGNORED
  7498. }
  7499.  
  7500. public Touch_Yellow ( toucher, touched ) {
  7501.  
  7502. if (!is_user_alive(toucher) || !pev_valid(touched))
  7503. return FMRES_IGNORED
  7504.  
  7505. new classname[32]
  7506. pev(touched, pev_classname, classname, 31)
  7507. if (!equal(classname, ClassName))
  7508. return FMRES_IGNORED
  7509.  
  7510. if(get_user_team(toucher) == pev(touched, pev_team) )
  7511. {
  7512. GiveYellowBonusBox(toucher)
  7513. set_pev(touched, pev_effects, EF_NODRAW)
  7514. set_pev(touched, pev_solid, SOLID_NOT)
  7515. remove_entity(touched);
  7516. }
  7517.  
  7518. return FMRES_IGNORED
  7519. }
  7520.  
  7521. public event_cur_weapon(id) {
  7522. if(HasSpeed[id] && cs_get_user_team(id) == CS_TEAM_T && get_user_maxspeed(id) < get_pcvar_float(CvarFurienSpeed)) {
  7523. set_user_maxspeed(id, get_pcvar_float(CvarFurienSpeed));
  7524. }
  7525. if(HasSpeed[id] && cs_get_user_team(id) == CS_TEAM_CT && get_user_maxspeed(id) < get_pcvar_float(CvarAntiFurienSpeed)) {
  7526. set_user_maxspeed(id, get_pcvar_float(CvarAntiFurienSpeed));
  7527. }
  7528.  
  7529. if ( LowSpeed [ id ] && cs_get_user_team ( id ) == CS_TEAM_T ) {
  7530. set_user_maxspeed ( id, get_user_maxspeed ( id ) - 250 );
  7531. }
  7532.  
  7533. if ( LowSpeed [ id ] && cs_get_user_team ( id ) == CS_TEAM_CT ) {
  7534. set_user_maxspeed ( id, get_user_maxspeed ( id ) - 70 );
  7535. }
  7536. }
  7537.  
  7538. public wrongeffect ( id ) {
  7539. new gMsgScreenFade = get_user_msgid ( "ScreenFade" );
  7540. message_begin ( MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , id );
  7541. write_short ( (6<<10) ); // duration
  7542. write_short ( (5<<10) ); // hold time
  7543. write_short ( (1<<12) ); // fade type
  7544. write_byte ( 255 );
  7545. write_byte ( 0 );
  7546. write_byte ( 0 );
  7547. write_byte ( 170 );
  7548. message_end ( );
  7549. }
  7550.  
  7551. public goodeffect ( id ) {
  7552. new gMsgScreenFade = get_user_msgid ( "ScreenFade" );
  7553. message_begin ( MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , id );
  7554. write_short ( (6<<10) ); // duration
  7555. write_short ( (5<<10) ); // hold time
  7556. write_short ( (1<<12) ); // fade type
  7557. write_byte ( 0 );
  7558. write_byte ( 0 );
  7559. write_byte ( 255 );
  7560. write_byte ( 170 );
  7561. message_end ( );
  7562. }
  7563.  
  7564. public GiveYellowBonusBox ( id ) {
  7565.  
  7566. switch (random_num(1,5))
  7567. {
  7568. case 1:
  7569. {
  7570. goodeffect ( id );
  7571. set_user_health ( id, get_user_health ( id ) + 150 );
  7572. ColorChat ( id, GREEN, "%s Ai primit^4 150^3 HP .^4", szPrefix );
  7573. }
  7574.  
  7575. case 2:
  7576. {
  7577. goodeffect ( id );
  7578. set_user_armor ( id, get_user_armor ( id ) + 200 );
  7579. ColorChat ( id, GREEN, "%s Ai Primit^4 200^3 AP .^4", szPrefix );
  7580. }
  7581.  
  7582. case 3:
  7583. {
  7584. if ( get_user_team ( id ) == 2 ) {
  7585.  
  7586. dual_mp5 [ id ] = true;
  7587. k1ases_weapon [ id ] = false;
  7588. remove_dragoncannon ( id );
  7589. give_item ( id, "weapon_mp5navy" );
  7590. cs_set_user_bpammo ( id, CSW_MP5NAVY, 200 );
  7591. ColorChat ( id, GREEN, "%s Ai primit^4 Dual Mp5^3 .^4", szPrefix );
  7592.  
  7593. }
  7594.  
  7595. else if ( get_user_team ( id ) == 1 ) {
  7596.  
  7597. give_item ( id, "weapon_flashbang" );
  7598. cs_set_user_bpammo ( id, CSW_FLASHBANG, 5 );
  7599. ColorChat ( id, GREEN, "%s Ai primit^4 5^3 grenazi^4 FLASH^3 .^4", szPrefix );
  7600.  
  7601. }
  7602.  
  7603. }
  7604.  
  7605. case 4:
  7606. {
  7607. give_item ( id, "weapon_hegrenade" );
  7608. cs_set_user_bpammo ( id, CSW_HEGRENADE, 3 );
  7609. ColorChat ( id, GREEN, "%s Ai primit^4 3^3 grenazi^4 HE^3 .^4", szPrefix );
  7610. }
  7611.  
  7612. case 5:
  7613. {
  7614. set_user_credits ( id, get_user_credits ( id ) + 5 );
  7615. ColorChat ( id, GREEN, "%s Ai primit^4 5^3 credite .^4", szPrefix );
  7616. }
  7617. }
  7618. }
  7619.  
  7620. public GiveBonusBox(id) {
  7621.  
  7622. if ( get_user_team ( id ) == 1 ) {
  7623.  
  7624. switch (random_num(1,20))
  7625. {
  7626. case 1:
  7627. {
  7628. goodeffect ( id );
  7629. set_user_health ( id, get_user_health ( id ) + 50 );
  7630. ColorChat ( id, GREEN, "%s Ai primit^4 50^3 HP .^4", szPrefix );
  7631. }
  7632.  
  7633. case 2:
  7634. {
  7635. goodeffect ( id );
  7636. set_user_armor ( id, get_user_armor ( id ) + 100 );
  7637. ColorChat ( id, GREEN, "%s Ai primit^4 100^3 AP .^4", szPrefix );
  7638. }
  7639.  
  7640. case 3:
  7641. {
  7642. goodeffect ( id );
  7643. set_user_health ( id, get_user_health ( id ) - 20 );
  7644. wrongeffect ( id );
  7645. ColorChat ( id, GREEN, "%s Ai pierdut^4 20^3 HP .^4", szPrefix );
  7646. }
  7647.  
  7648. case 4:
  7649. {
  7650. goodeffect ( id );
  7651. set_user_armor ( id, get_user_armor ( id ) - 50 );
  7652. wrongeffect ( id );
  7653. ColorChat ( id, GREEN, "%s Ai pierdut^4 50^3 AP .^4", szPrefix );
  7654. }
  7655.  
  7656. case 5:
  7657. {
  7658. goodeffect ( id );
  7659. cs_set_user_money ( id, cs_get_user_money ( id ) + 3000 );
  7660. ColorChat ( id, GREEN, "%s Ai primit^4 3000^3 $ .^4", szPrefix );
  7661. }
  7662.  
  7663. case 6:
  7664. {
  7665. cs_set_user_money ( id, cs_get_user_money ( id ) - 2000 );
  7666. wrongeffect ( id );
  7667. ColorChat ( id, GREEN, "%s Ai pierdut^4 2000^3 $ .^4", szPrefix );
  7668. }
  7669.  
  7670. case 7:
  7671. {
  7672. goodeffect ( id );
  7673. set_user_gravity ( id, 0.4 );
  7674. ColorChat ( id, GREEN, "%s Ai primit^4 400^3 Gravity .^4", szPrefix );
  7675. }
  7676.  
  7677. case 8:
  7678. {
  7679. goodeffect ( id );
  7680. HasSpeed[id] = true;
  7681. ColorChat ( id, GREEN, "%s Ai primit^4 1000^3 Speed .^4", szPrefix );
  7682. }
  7683.  
  7684. case 9:
  7685. {
  7686. LowSpeed [ id ] = true;
  7687. wrongeffect ( id );
  7688. ColorChat ( id, GREEN, "%s Ai pierdut din viteza .^4", szPrefix );
  7689. }
  7690.  
  7691. case 10:
  7692. {
  7693. set_user_health ( id, 225 );
  7694. set_user_armor ( id, 225 );
  7695. goodeffect ( id );
  7696. ColorChat ( id, GREEN, "%s Acum ai^4 225^3 HP si^4 225^3 AP^4 .^4", szPrefix );
  7697. }
  7698.  
  7699. case 11:
  7700. {
  7701. cs_set_user_money ( id, 0 );
  7702. wrongeffect ( id );
  7703. ColorChat ( id, GREEN, "%s Ai pierdut toti banii !^4", szPrefix );
  7704. }
  7705.  
  7706. case 12:
  7707. {
  7708.  
  7709. if ( !super_knife_shop [ id ] || !super_knife_shop2 [ id ] ) {
  7710.  
  7711. goodeffect ( id );
  7712. if ( Level [ id ] < 15 ) {
  7713. super_knife_shop [ id ] = true;
  7714. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
  7715. }
  7716.  
  7717. else if ( Level [ id ] >= 15 ) {
  7718. super_knife_shop2 [ id ] = true;
  7719. set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
  7720. set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
  7721. }
  7722.  
  7723. ColorChat ( id, GREEN, "%s Ai primit^4 Super Knife^4 .^4", szPrefix );
  7724.  
  7725. }
  7726.  
  7727. else if ( super_knife_shop [ id ] || super_knife_shop2 [ id ] ) {
  7728. goodeffect ( id );
  7729. fm_set_user_health ( id, get_user_health ( id ) + 70 );
  7730. ColorChat ( id, GREEN, "%s Ai primit^4 70^3 HP .^4", szPrefix );
  7731. }
  7732. }
  7733.  
  7734. case 13:
  7735. {
  7736. goodeffect ( id );
  7737. set_user_xp ( id, get_user_xp ( id ) + 100 );
  7738. ColorChat ( id, GREEN, "%s Ai primit^4 100^3 XP .^4", szPrefix );
  7739. }
  7740.  
  7741. case 14:
  7742. {
  7743. wrongeffect ( id );
  7744. set_user_xp ( id, get_user_xp ( id ) - 50 );
  7745. ColorChat ( id, GREEN, "%s Ai pierdut^4 50^3 XP .^4", szPrefix );
  7746. }
  7747.  
  7748. case 15:
  7749. {
  7750. ColorChat ( id, GREEN, "%s A trecut mosul pe la tine, ai primit^4 16000^3 $ .^4", szPrefix );
  7751. goodeffect ( id );
  7752. }
  7753.  
  7754. case 16:
  7755. {
  7756. if ( !vip_axe_knife [ id ] || !deklowaz [ id ] ) {
  7757. HasTeleport[id] = true;
  7758. client_cmd(id, "bind x power2");
  7759. goodeffect ( id );
  7760. ColorChat ( id, GREEN, "%s Ai primit puterea de a te teleporta, apasa tasta^4 X^3 pentru a te teleporta .^4", szPrefix );
  7761. }
  7762.  
  7763. else {
  7764. set_user_credits ( id, get_user_credits ( id ) + 2 );
  7765. ColorChat ( id, GREEN, "%s Ai primit^4 2^3 credite .", szPrefix );
  7766. }
  7767.  
  7768.  
  7769. }
  7770.  
  7771. case 17:
  7772. {
  7773.  
  7774. HasSpeed[id] = true;
  7775. client_cmd(id, "cl_sidespeed %d",get_pcvar_float(CvarFurienSpeed))
  7776. client_cmd(id, "cl_forwardspeed %d",get_pcvar_float(CvarFurienSpeed))
  7777. client_cmd(id, "cl_backspeed %d",get_pcvar_float(CvarFurienSpeed))
  7778. set_user_maxspeed(id, get_pcvar_float(CvarFurienSpeed));
  7779. }
  7780.  
  7781. case 18:
  7782. {
  7783.  
  7784.  
  7785. fm_set_user_health ( id, get_user_health ( id ) + 80 );
  7786. ColorChat ( id, GREEN, "%s Ai primit^4 80^3 HP .^4", szPrefix );
  7787. }
  7788.  
  7789. case 19:
  7790. {
  7791. give_item ( id, "weapon_hegrenade" );
  7792. ColorChat ( id, GREEN, "%s Ai primit o grenada^4 HE^3 .", szPrefix );
  7793. }
  7794.  
  7795. case 20:
  7796. {
  7797. give_item ( id, "weapon_flashbang" );
  7798. ColorChat ( id, GREEN, "%s Ai primit o grenada^4 FLASH^3 .", szPrefix );
  7799. }
  7800. }
  7801. }
  7802.  
  7803. else if ( get_user_team ( id ) == 2 ) {
  7804.  
  7805. switch (random_num(1,23))
  7806. {
  7807. case 1:
  7808. {
  7809. goodeffect ( id );
  7810. set_user_health ( id, get_user_health ( id ) + 50 );
  7811. ColorChat ( id, GREEN, "%s Ai primit^4 50^3 HP .^4", szPrefix );
  7812. }
  7813.  
  7814. case 2:
  7815. {
  7816. goodeffect ( id );
  7817. set_user_armor ( id, get_user_armor ( id ) + 100 );
  7818. ColorChat ( id, GREEN, "%s Ai primit^4 100^3 AP .^4", szPrefix );
  7819. }
  7820.  
  7821. case 3:
  7822. {
  7823. goodeffect ( id );
  7824. set_user_health ( id, get_user_health ( id ) - 20 );
  7825. wrongeffect ( id );
  7826. ColorChat ( id, GREEN, "%s Ai pierdut^4 20^3 HP .^4", szPrefix );
  7827. }
  7828.  
  7829. case 4:
  7830. {
  7831. goodeffect ( id );
  7832. set_user_armor ( id, get_user_armor ( id ) - 50 );
  7833. wrongeffect ( id );
  7834. ColorChat ( id, GREEN, "%s Ai pierdut^4 50^3 AP .^4", szPrefix );
  7835. }
  7836.  
  7837. case 5:
  7838. {
  7839. goodeffect ( id );
  7840. cs_set_user_money ( id, cs_get_user_money ( id ) + 3000 );
  7841. ColorChat ( id, GREEN, "%s Ai primit^4 3000^3 $ .^4", szPrefix );
  7842. }
  7843.  
  7844. case 6:
  7845. {
  7846. cs_set_user_money ( id, cs_get_user_money ( id ) - 2000 );
  7847. wrongeffect ( id );
  7848. ColorChat ( id, GREEN, "%s Ai pierdut^4 2000^3 $ .^4", szPrefix );
  7849. }
  7850.  
  7851. case 7:
  7852. {
  7853. goodeffect ( id );
  7854. set_user_gravity ( id, 0.4 );
  7855. ColorChat ( id, GREEN, "%s Ai primit^4 400^3 Gravity .^4", szPrefix );
  7856. }
  7857.  
  7858. case 8:
  7859. {
  7860. goodeffect ( id );
  7861. HasSpeed[id] = true;
  7862. ColorChat ( id, GREEN, "%s Ai primit^4 750^3 Speed .^4", szPrefix );
  7863. }
  7864.  
  7865. case 9:
  7866. {
  7867. entity_set_float ( id, EV_FL_maxspeed, 250.0 );
  7868. wrongeffect ( id );
  7869. ColorChat ( id, GREEN, "%s Ai pierdut din viteza .^4", szPrefix );
  7870. }
  7871.  
  7872. case 10:
  7873. {
  7874. set_user_health ( id, 10 );
  7875. set_user_armor ( id, 20 );
  7876. wrongeffect ( id );
  7877. ColorChat ( id, GREEN, "%s Acum ai^4 10^3 HP si^4 20^3 AP^4 .^4", szPrefix );
  7878. }
  7879.  
  7880. case 11:
  7881. {
  7882. cs_set_user_money ( id, 0 );
  7883. wrongeffect ( id );
  7884. ColorChat ( id, GREEN, "%s Ai pierdut toti banii !^4", szPrefix );
  7885. }
  7886.  
  7887. case 12:
  7888. {
  7889.  
  7890. if ( !salamander [ id ] ) {
  7891.  
  7892. goodeffect ( id );
  7893. salamander [ id ] = true;
  7894. set_task ( 0.1, "SalamanderGiveItem", id );
  7895. set_task ( 30.0, "reverse_salamander", id );
  7896. ColorChat ( id, GREEN, "%s Ai primit^4 Salamander^3 pentru^4 30^3 secunde .", szPrefix );
  7897. }
  7898.  
  7899. else if ( salamander [ id ] ) {
  7900. goodeffect ( id );
  7901. fm_set_user_health ( id, get_user_health ( id ) + 100 );
  7902. ColorChat ( id, GREEN, "%s Ai primit^4 100^3 HP .^4", szPrefix );
  7903. }
  7904.  
  7905. }
  7906.  
  7907. case 13:
  7908. {
  7909. goodeffect ( id );
  7910. set_user_xp ( id, get_user_xp ( id ) + 100 );
  7911. ColorChat ( id, GREEN, "%s Ai primit^4 100^3 XP .^4", szPrefix );
  7912. }
  7913.  
  7914. case 14:
  7915. {
  7916. wrongeffect ( id );
  7917. set_user_xp ( id, get_user_xp ( id ) - 20 );
  7918. ColorChat ( id, GREEN, "%s Ai pierdut^4 20^3 XP .^4", szPrefix );
  7919. }
  7920.  
  7921. case 15:
  7922. {
  7923. ColorChat ( id, GREEN, "%s A trecut mosul pe la tine, ai primit^4 16000^3 $ .^4", szPrefix );
  7924. goodeffect ( id );
  7925. }
  7926.  
  7927. case 16:
  7928. {
  7929. if ( !vip_axe_knife [ id ] || !deklowaz [ id ] ) {
  7930. HasTeleport[id] = true;
  7931. client_cmd(id, "bind x power2");
  7932. goodeffect ( id );
  7933. ColorChat ( id, GREEN, "%s Ai primit puterea de a te teleporta, apasa tasta^4 X^3 pentru a te teleporta .^4", szPrefix );
  7934. }
  7935.  
  7936. else {
  7937. goodeffect ( id );
  7938. set_user_credits ( id, get_user_credits ( id ) + 2 );
  7939. ColorChat ( id, GREEN, "%s Ai primit^4 2^3 credite .", szPrefix );
  7940. }
  7941.  
  7942.  
  7943. }
  7944.  
  7945. case 17:
  7946. {
  7947. goodeffect ( id );
  7948. HasSpeed[id] = true;
  7949. client_cmd(id, "cl_sidespeed %d",get_pcvar_float(CvarAntiFurienSpeed))
  7950. client_cmd(id, "cl_forwardspeed %d",get_pcvar_float(CvarAntiFurienSpeed))
  7951. client_cmd(id, "cl_backspeed %d",get_pcvar_float(CvarAntiFurienSpeed))
  7952. set_user_maxspeed(id, get_pcvar_float(CvarAntiFurienSpeed));
  7953. }
  7954.  
  7955.  
  7956. case 18:
  7957. {
  7958.  
  7959. if ( !k1ases_weapon [ id ] ) {
  7960. goodeffect ( id );
  7961. k1ases_weapon [ id ] = true;
  7962. dual_mp5 [ id ] = false;
  7963. remove_dragoncannon ( id );
  7964. give_k1ases ( id );
  7965. ColorChat ( id, GREEN, "%s Ai primit^4 K1ASUS^3 .^4", szPrefix );
  7966. }
  7967.  
  7968. else if ( k1ases_weapon [ id ] ) {
  7969. goodeffect ( id );
  7970. fm_set_user_health ( id, get_user_health ( id ) + 70 );
  7971. ColorChat ( id, GREEN, "%s Ai primit^4 70^3 HP .^4", szPrefix );
  7972. }
  7973.  
  7974.  
  7975. }
  7976.  
  7977. case 19:
  7978. {
  7979. goodeffect ( id );
  7980. give_item ( id, "weapon_hegrenade" );
  7981. ColorChat ( id, GREEN, "%s Ai primit o grenada^4 HE^3 .", szPrefix );
  7982. }
  7983.  
  7984. case 20:
  7985. {
  7986. goodeffect ( id );
  7987. give_item ( id, "weapon_flashbang" );
  7988. ColorChat ( id, GREEN, "%s Ai primit o grenada^4 FLASH^3 .", szPrefix );
  7989. }
  7990.  
  7991. case 21:
  7992. {
  7993. if ( UserHaveQuad [ id ] ) {
  7994. goodeffect ( id );
  7995. ColorChat ( id, GREEN, "%s Ai primit^4 5^3 gloante pentru^4 Quad-Barrel^3 .^4", szPrefix );
  7996. cs_set_user_bpammo ( id, CSW_QB, cs_get_user_bpammo ( id, CSW_QB ) + 5 );
  7997. }
  7998.  
  7999. else {
  8000. goodeffect ( id );
  8001. set_task ( 0.1, "GiveQuadBarrel", id );
  8002. ColorChat ( id, GREEN, "%s Ai primit^4 Quad-Barrel^3 .", szPrefix );
  8003. UserHaveQuad [ id ] = true;
  8004. }
  8005. }
  8006.  
  8007. case 22:
  8008. {
  8009. if ( UserHaveDragon [ id ] ) {
  8010. goodeffect ( id );
  8011. g_cannon_ammo [ id ] += 3;
  8012. ColorChat ( id, GREEN, "%s Ai primit^4 3^3 gloante pentru^4 Dragon Cannon^3 .^4", szPrefix );
  8013. }
  8014. else {
  8015. goodeffect ( id );
  8016. ColorChat ( id, GREEN, "%s Ai primit^4 Dragon Cannon^3 .", szPrefix );
  8017. set_task ( 0.1, "get_dragoncannon", id );
  8018. UserHaveDragon [ id ] = true;
  8019. }
  8020. }
  8021.  
  8022. case 23:
  8023. {
  8024. if ( UserHaveM79 [ id ] ) {
  8025. goodeffect ( id );
  8026. ColorChat ( id, GREEN, "%s Ai primit^4 2^3 grenazi pentru lansator. ^4", szPrefix );
  8027. grenade_count [ id ] += 2;
  8028. }
  8029.  
  8030. else {
  8031. goodeffect ( id );
  8032. ColorChat ( id, GREEN, "%s Ai primit un^4 Lansator de Grenazi^3 .^4", szPrefix );
  8033. give_weapon ( id, 2 );
  8034. m79++;
  8035. UserHaveM79 [ id ] = true;
  8036. }
  8037. }
  8038.  
  8039.  
  8040. }
  8041. }
  8042. }
  8043.  
  8044. public CmdTeleport(id) {
  8045. if (!is_user_alive(id) || !HasTeleport[id]) return PLUGIN_CONTINUE
  8046.  
  8047. if (Teleport_Cooldown[id]) {
  8048. ColorChat ( id, GREEN, "%s Puterea iti va reveni in^4 %d^3 secunde .", Teleport_Cooldown [ id ] );
  8049. return PLUGIN_CONTINUE
  8050. }
  8051. else if (teleport(id)) {
  8052. emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM)
  8053. remove_task(id)
  8054. Teleport_Cooldown[id] = get_pcvar_num(CvarTeleportCooldown);
  8055. set_task(1.0, "TeleportShowHUD", id, _, _, "b");
  8056. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  8057. if(get_pcvar_num(CvarTeleportCooldown) != 1) {
  8058. show_hudmessage(id, "Puterea iti va reveni in^4 %d^3 secunde",get_pcvar_num(CvarTeleportCooldown));
  8059. }
  8060. if(get_pcvar_num(CvarTeleportCooldown) == 1) {
  8061. show_hudmessage(id, "Puterea iti va reveni in^4 %d^3 secunda",get_pcvar_num(CvarTeleportCooldown));
  8062. }
  8063. }
  8064. else {
  8065. ColorChat ( id, GREEN, "%s Pozitia de teleportare este invalida .^4", szPrefix );
  8066. }
  8067. return PLUGIN_CONTINUE
  8068. }
  8069.  
  8070. public Light(entity, red, green, blue)
  8071. {
  8072. if(is_valid_ent(entity)) {
  8073. static Float:origin[3]
  8074. pev(entity, pev_origin, origin)
  8075.  
  8076. message_begin(MSG_BROADCAST, SVC_TEMPENTITY, _, entity);
  8077. write_byte(TE_DLIGHT) // TE id
  8078. engfunc(EngFunc_WriteCoord, origin[0])
  8079. engfunc(EngFunc_WriteCoord, origin[1])
  8080. engfunc(EngFunc_WriteCoord, origin[2])
  8081. write_byte(7)
  8082. write_byte(red)
  8083. write_byte(green)
  8084. write_byte(blue)
  8085. write_byte(2)
  8086. write_byte(0)
  8087. message_end();
  8088. }
  8089. }
  8090.  
  8091. public cmdVipWeaponsMenu ( id, level, cid ) {
  8092.  
  8093. new menu = menu_create ( "\rFurien XP \yMenu", "VIPWeapons_Giver" );
  8094.  
  8095. if ( get_user_team ( id ) == 2 ) {
  8096.  
  8097. menu_additem ( menu, "\ySCORPION MP5 [ \r3 CREDITE \y]", "1", VIP_ACCESS );
  8098. menu_additem ( menu, "\yQUAD BARREL [ \r3 CREDITE \y]", "2", VIP_ACCESS );
  8099. menu_additem ( menu, "\yDRAGON CANNON [ \r4 CREDITE \y]", "3", VIP_ACCESS );
  8100. menu_additem ( menu, "\yM79 LAUNCHER [ \r4 CREDITE \y]", "4", VIP_ACCESS );
  8101.  
  8102.  
  8103. menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
  8104. menu_display ( id, menu, 0 );
  8105.  
  8106. }
  8107.  
  8108. return 1;
  8109. }
  8110.  
  8111. public VIPWeapons_Giver ( id, menu, item ) {
  8112.  
  8113. if( item == MENU_EXIT )
  8114. {
  8115. return 1;
  8116. }
  8117.  
  8118. new data [ 6 ], szName [ 64 ];
  8119. new access, callback;
  8120. menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
  8121. new key = str_to_num ( data );
  8122.  
  8123. switch(key)
  8124. {
  8125. case 1:
  8126. {
  8127. new iCredits = get_user_credits(id) - 3;
  8128. if( iCredits < 0 )
  8129. {
  8130. ColorChat ( id, GREEN, "%s Nu ai destule credite !", szPrefix );
  8131. return 1;
  8132. }
  8133. else
  8134. {
  8135. ColorChat ( id, GREEN, "%s Ai cumparat^4 Scorpion Mp5^3 .^4", szPrefix );
  8136. give_k1ases ( id );
  8137. set_user_credits ( id, iCredits );
  8138. return 1;
  8139. }
  8140. }
  8141.  
  8142. case 2:
  8143. {
  8144. new iCredits = get_user_credits(id) - 3;
  8145. if( iCredits < 0 )
  8146. {
  8147. ColorChat ( id, GREEN, "%s Nu ai destule credite !", szPrefix );
  8148. return 1;
  8149. }
  8150. else
  8151. {
  8152. ColorChat ( id, GREEN, "%s Ai cumparat^4 Quad-Barrel^3 .^4", szPrefix );
  8153. set_task ( 0.1, "GiveQuadBarrel", id );
  8154. set_user_credits ( id, iCredits );
  8155. return 1;
  8156. }
  8157. }
  8158.  
  8159. case 3:
  8160. {
  8161. new iCredits = get_user_credits(id) - 4;
  8162. if( iCredits < 0 )
  8163. {
  8164. ColorChat ( id, GREEN, "%s Nu ai destule credite !", szPrefix );
  8165. return 1;
  8166. }
  8167. else
  8168. {
  8169. ColorChat ( id, GREEN, "%s Ai cumparat^4 Dragon Cannon^3 .^4", szPrefix );
  8170. set_task ( 0.1, "get_dragoncannon", id );
  8171. set_user_credits ( id, iCredits );
  8172. return 1;
  8173. }
  8174. }
  8175.  
  8176. case 4:
  8177. {
  8178. new iCredits = get_user_credits(id) - 4;
  8179. if( iCredits < 0 )
  8180. {
  8181. ColorChat ( id, GREEN, "%s Nu ai destule credite !", szPrefix );
  8182. return 1;
  8183. }
  8184. else
  8185. {
  8186. ColorChat ( id, GREEN, "%s Ai cumparat^4 M79 Launcher^3 .^4", szPrefix );
  8187. give_weapon ( id, 2 );
  8188. m79++;
  8189. UserHaveM79 [ id ] = true;
  8190. set_user_credits ( id, iCredits );
  8191. return 1;
  8192. }
  8193. }
  8194.  
  8195. }
  8196.  
  8197. menu_destroy ( menu );
  8198. return 1;
  8199.  
  8200. }
  8201.  
  8202. public cmdXpMenu ( id, level, cid ) {
  8203.  
  8204. new menu = menu_create ( "\rFurien XP \yMenu", "Menu_Giver" );
  8205. menu_additem ( menu, "\y3 HE \y[ \rLvL. 3 - 1 Credit\y ]", "1", 0 );
  8206. menu_additem ( menu, "\y5 FB & 2 SMK \y[ \rLvL. 5 - 1 Credit \y ]", "2", 0 );
  8207. menu_additem ( menu, "\y6 HE \y[ \rLvL. 8 - 2 Credite\y ]", "3", 0 );
  8208. menu_additem ( menu, "\ySPEED \y[ \rLvL. 10 - 2 Credite \y ]", "4", 0 );
  8209. menu_additem ( menu, "\yGRAVITY \y[ \rLvL. 13 - 2 Credite\y ]", "5", 0 );
  8210. menu_additem ( menu, "\yGODMODE \y[ \rLvL. 16 - 3 Credite\y ]", "6", 0 );
  8211. menu_additem ( menu, "\yNOCLIP \y[ \rLvL. 18 - 3 Credite\y ]", "7", 0 );
  8212. menu_additem ( menu, "\yCHAMELEON \y[ \rLvL. 22 - 4 Credite \y ]", "8", 0 );
  8213. menu_additem ( menu, "\yRESPAWN \y[ \rLvL. 25 - 5 Credite \y ]", "9", 0 );
  8214.  
  8215. if ( get_user_team ( id ) == 2 ) {
  8216. menu_additem ( menu, "\ySALAMANDER \y[ \rLvL. 28 - 5 Credite \y ]", "10", 0 );
  8217. }
  8218.  
  8219. menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
  8220. menu_display ( id, menu, 0 );
  8221.  
  8222.  
  8223. return 1;
  8224. }
  8225.  
  8226. public Menu_Giver ( id, menu, item ) {
  8227.  
  8228. if( item == MENU_EXIT )
  8229. {
  8230. return 1;
  8231. }
  8232.  
  8233. if ( g_iCount [ id ] >= 1 ) {
  8234. ColorChat ( id, GREEN, "%s Ai folosit odata aceasta optiune .", szPrefix );
  8235. }
  8236.  
  8237. new data [ 6 ], szName [ 64 ];
  8238. new access, callback;
  8239. menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
  8240. new key = str_to_num ( data );
  8241.  
  8242. switch(key)
  8243. {
  8244. case 1:
  8245. {
  8246. if ( g_Menu [ id ] >= 3 ) {
  8247.  
  8248. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8249. return 1;
  8250. }
  8251.  
  8252. else {
  8253.  
  8254. if ( Level [ id ] >= 3 ) {
  8255. give_item ( id, "weapon_hegrenade" );
  8256. cs_set_user_bpammo ( id, CSW_HEGRENADE, 3 );
  8257. ++g_Menu [ id ];
  8258. set_user_credits ( id, get_user_credits ( id ) - 1 );
  8259. return 1;
  8260. }
  8261.  
  8262. else {
  8263. ColorChat ( id, GREEN, "%s Nu ai level 3 .", szPrefix );
  8264. return 1;
  8265. }
  8266. }
  8267. }
  8268.  
  8269. case 2:
  8270. {
  8271.  
  8272. if ( g_Menu [ id ] >= 3 ) {
  8273. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8274. return 1;
  8275. }
  8276.  
  8277. else {
  8278. if ( Level [ id ] >= 5 ) {
  8279. give_item ( id, "weapon_flashbang" );
  8280. give_item ( id, "weapon_smokegrenade" );
  8281. cs_set_user_bpammo ( id, CSW_FLASHBANG, 5 );
  8282. cs_set_user_bpammo ( id, CSW_SMOKEGRENADE, 2 );
  8283. set_user_credits ( id, get_user_credits ( id ) - 1 );
  8284. ++g_Menu [ id ];
  8285. return 1;
  8286. }
  8287.  
  8288. else {
  8289. ColorChat ( id, GREEN, "%s Nu ai level 5 .", szPrefix );
  8290. return 1;
  8291. }
  8292. }
  8293. }
  8294.  
  8295. case 3:
  8296. {
  8297.  
  8298. if ( g_Menu [ id ] >= 3 ) {
  8299. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8300. return 1;
  8301. }
  8302.  
  8303. else {
  8304. if ( Level [ id ] >= 8 ) {
  8305. give_item ( id, "weapon_hegrenade" );
  8306. cs_set_user_bpammo ( id, CSW_HEGRENADE, 6 );
  8307. ++g_Menu [ id ];
  8308. set_user_credits ( id, get_user_credits ( id ) - 2 );
  8309. return 1;
  8310. }
  8311.  
  8312. else {
  8313. ColorChat ( id, GREEN, "%s Nu ai level 8 .", szPrefix );
  8314. return 1;
  8315. }
  8316. }
  8317. }
  8318.  
  8319. case 4:
  8320. {
  8321.  
  8322. if ( g_Menu [ id ] >= 3 ) {
  8323. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8324. return 1;
  8325. }
  8326.  
  8327. else {
  8328. if ( Level [ id ] >= 10 ) {
  8329. entity_set_float ( id, EV_FL_maxspeed, 450.0 );
  8330. ++g_Menu [ id ];
  8331. set_user_credits ( id, get_user_credits ( id ) - 2 );
  8332. return 1;
  8333. }
  8334.  
  8335. else {
  8336. ColorChat ( id, GREEN, "%s Nu ai level 10 .", szPrefix );
  8337. return 1;
  8338. }
  8339. }
  8340. }
  8341.  
  8342. case 5:
  8343. {
  8344.  
  8345. if ( g_Menu [ id ] >= 3 ) {
  8346. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8347. return 1;
  8348. }
  8349.  
  8350. else {
  8351. if ( Level [ id ] >= 13 ) {
  8352. set_user_gravity ( id, 0.5 );
  8353. ++g_Menu [ id ];
  8354. set_user_credits ( id, get_user_credits ( id ) - 2 );
  8355. return 1;
  8356. }
  8357.  
  8358. else {
  8359. ColorChat ( id, GREEN, "%s Nu ai level 13 .", szPrefix );
  8360. return 1;
  8361. }
  8362. }
  8363. }
  8364.  
  8365. case 6:
  8366. {
  8367. if ( g_Menu [ id ] >= 3 ) {
  8368. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8369. return 1;
  8370. }
  8371.  
  8372. else {
  8373. if ( Level [ id ] >= 16 ) {
  8374. set_user_godmode ( id, 1 );
  8375. ColorChat ( id, GREEN, "%s Ai primit God pentru^4 8^4 secunde .", szPrefix );
  8376. set_task ( 8.0, "reverse_godmode", id );
  8377. ++g_Menu [ id ];
  8378. set_user_credits ( id, get_user_credits ( id ) - 3 );
  8379. return 1;
  8380. }
  8381.  
  8382. else {
  8383. ColorChat ( id, GREEN, "%s Nu ai level 16 .", szPrefix );
  8384. return 1;
  8385. }
  8386. }
  8387. }
  8388.  
  8389. case 7:
  8390. {
  8391. if ( g_Menu [ id ] >= 3 ) {
  8392. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8393. return 1;
  8394. }
  8395.  
  8396. else {
  8397. if ( Level [ id ] >= 18 ) {
  8398. set_user_noclip ( id, 1 );
  8399. ColorChat ( id, GREEN, "%s Ai primit Noclip pentru^4 5^4 secunde .", szPrefix );
  8400. set_task ( 5.0, "reverse_noclip", id );
  8401. ++g_Menu [ id ];
  8402. set_user_credits ( id, get_user_credits ( id ) - 3 );
  8403. return 1;
  8404. }
  8405.  
  8406. else {
  8407. ColorChat ( id, GREEN, "%s Nu ai level 18 .", szPrefix );
  8408. return 1;
  8409. }
  8410. }
  8411. }
  8412.  
  8413. case 8:
  8414. {
  8415. if ( g_Menu [ id ] >= 3 ) {
  8416. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8417. return 1;
  8418. }
  8419.  
  8420. else {
  8421. if ( Level [ id ] >= 22 ) {
  8422. chameleon ( id );
  8423. ++g_Menu [ id ];
  8424. set_user_credits ( id, get_user_credits ( id ) - 4 );
  8425. return 1;
  8426. }
  8427.  
  8428. else {
  8429. ColorChat ( id, GREEN, "%s Nu ai level 22 .", szPrefix );
  8430. return 1;
  8431. }
  8432. }
  8433. }
  8434.  
  8435. case 9:
  8436. {
  8437. if ( g_Menu [ id ] >= 3 ) {
  8438. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8439. }
  8440.  
  8441. else {
  8442. if ( Level [ id ] >= 25 ) {
  8443.  
  8444. if(is_user_alive(id))
  8445. {
  8446. ColorChat ( id, GREEN, "%s Esti deja in viata .", szPrefix );
  8447. return 1;
  8448. }
  8449.  
  8450. if ( get_user_team ( id ) == 3) {
  8451.  
  8452. ColorChat ( id, GREEN, "%s Esti spectator .", szPrefix );
  8453.  
  8454. if(!is_user_alive(id))
  8455. {
  8456.  
  8457. ExecuteHamB ( Ham_CS_RoundRespawn, id );
  8458. set_task(0.5, "SetUserWeapons", id + 12345);
  8459. ++g_Menu [ id ];
  8460. set_user_credits ( id, get_user_credits ( id ) - 5 );
  8461. return 1;
  8462. }
  8463.  
  8464. return 1;
  8465. }
  8466.  
  8467. else {
  8468. ColorChat ( id, GREEN, "%s Nu ai level 25 .", szPrefix );
  8469. return 1;
  8470. }
  8471. }
  8472. }
  8473. }
  8474.  
  8475. case 10:
  8476. {
  8477. if ( get_user_team ( id ) == 2 ) {
  8478.  
  8479. if ( g_Menu [ id ] >= 3 ) {
  8480. ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
  8481. return 1;
  8482. }
  8483.  
  8484. else {
  8485. if ( Level [ id ] >= 28 && !SalamanderLimit [ id ] ) {
  8486.  
  8487. salamander [ id ] = true;
  8488. ColorChat ( id, GREEN, "%s Ai primit aceasta arma pentru^4 1^4 minut .", szPrefix );
  8489. set_task ( 0.1, "SalamanderGiveItem", id );
  8490. set_task ( 60.0, "reverse_salamander", id );
  8491. ++g_Menu [ id ];
  8492. SalamanderLimit [ id ] = true;
  8493. set_user_credits ( id, get_user_credits ( id ) - 5 );
  8494. return 1;
  8495.  
  8496.  
  8497. }
  8498. else if ( SalamanderLimit [ id ] ) {
  8499. ColorChat ( id, GREEN, "%s Ai mai folosit odata aceasta optiune .", szPrefix );
  8500. return 1;
  8501. }
  8502.  
  8503. else if ( Level [ id ] < 28 ) {
  8504. ColorChat ( id, GREEN, "%s Nu ai level 30 .", szPrefix );
  8505. return 1;
  8506. }
  8507. }
  8508. }
  8509.  
  8510. }
  8511. }
  8512.  
  8513. menu_destroy ( menu );
  8514. return 1;
  8515.  
  8516. }
  8517.  
  8518. public SetUserWeapons(id) {
  8519. id -= 12345;
  8520.  
  8521. if( !is_user_connected(id) ) return PLUGIN_HANDLED;
  8522.  
  8523. strip_user_weapons(id);
  8524. give_item(id, "weapon_knife");
  8525. set_task ( 0.1, "cmdClassMenu", id );
  8526.  
  8527. return PLUGIN_CONTINUE;
  8528. }
  8529.  
  8530. public reverse_godmode ( id ) {
  8531.  
  8532. set_user_godmode ( id , 0 );
  8533. }
  8534.  
  8535. public reverse_noclip ( id ) {
  8536.  
  8537. set_user_noclip ( id, 0 );
  8538. }
  8539.  
  8540. public reverse_invis ( id ) {
  8541.  
  8542. set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255 );
  8543. ColorChat ( id, GREEN, "%s Timpul a expirat ! Acum esti din nou^4 vizibil^3 .", szPrefix );
  8544. }
  8545.  
  8546. public reverse_salamander ( id ) {
  8547.  
  8548. strip_user_weapons ( id );
  8549. give_item ( id, "weapon_knife" );
  8550. salamander [ id ] = false;
  8551. set_task ( 0.1, "cmdClassMenu", id );
  8552.  
  8553. ColorChat ( id, GREEN, "%s Timpul a expirat ! Nu mai ai arma^4 salamander^3 .", szPrefix );
  8554. }
  8555.  
  8556. public show_salamander_icon ( id ) {
  8557. if ( salamander [ id ] ) {
  8558. if (!(pev(id,pev_button) & FL_ONGROUND))
  8559. {
  8560. new iconstatus;
  8561. iconstatus = get_user_msgid("StatusIcon");
  8562. message_begin(MSG_ONE,iconstatus,{0,0,0},id);
  8563. write_byte(1); // status (0=hide, 1=show, 2=flash)
  8564. write_string("dmg_heat"); // sprite name
  8565. write_byte(255); // red
  8566. write_byte(0); // green
  8567. write_byte(0); // blue
  8568. message_end();
  8569. }
  8570.  
  8571. }
  8572.  
  8573. else {
  8574. if (!(pev(id,pev_button) & FL_ONGROUND))
  8575. {
  8576. new iconstatus;
  8577. iconstatus = get_user_msgid("StatusIcon");
  8578. message_begin(MSG_ONE,iconstatus,{0,0,0},id);
  8579. write_byte(0); // status (0=hide, 1=show, 2=flash)
  8580. write_string("dmg_heat"); // sprite name
  8581. write_byte(255); // red
  8582. write_byte(0); // green
  8583. write_byte(0); // blue
  8584. message_end();
  8585. }
  8586. }
  8587. }
  8588.  
  8589. public reverse_model ( id ) {
  8590.  
  8591. if ( get_user_team ( id ) == 1 ) {
  8592. cs_set_user_model ( id, "guerilla" );
  8593. ColorChat ( id, GREEN, "%s Timpul a expirat ! Acum arati din nou ca un^4 Furien^3 .", szPrefix );
  8594. }
  8595.  
  8596. else if ( get_user_team ( id ) == 2 ) {
  8597. cs_set_user_model ( id, "gign" );
  8598. ColorChat ( id, GREEN, "%s Timpul a expirat ! Acum arati din nou ca un^4 AntiFurien^3 .", szPrefix );
  8599. }
  8600. }
  8601.  
  8602. public chameleon ( id ) {
  8603.  
  8604. if ( get_user_team ( id ) == 1 ) {
  8605. cs_set_user_model ( id, "gign" );
  8606. ColorChat ( id, GREEN, "%s Acum arati ca un^4 AntiFurien^3 pentru^4 60^3 secunde .", szPrefix );
  8607. set_task ( 60.0, "reverse_model", id );
  8608. }
  8609.  
  8610. else if ( get_user_team ( id ) == 2 ) {
  8611. cs_set_user_model ( id, "guerilla" );
  8612. ColorChat ( id, GREEN, "%s Acum arati ca un^4 Furien^3 pentru^4 60^3 secunde .", szPrefix );
  8613. set_task ( 60.0, "reverse_model", id );
  8614. }
  8615. }
  8616.  
  8617. public grenade_throw ( id, gid, wid ) {
  8618.  
  8619. if ( strike_grenade [ id ] || strike_grenade2 [ id ] || strike_grenade3 [ id ] && get_user_weapon ( id ) == CSW_HEGRENADE && get_user_team ( id ) == 1 ) {
  8620. new gtm = 1;
  8621. if(!gtm) return;
  8622. new r, g, b;
  8623. switch(gtm)
  8624. {
  8625. case 1:
  8626. {
  8627. r = 255;
  8628. g = 0;
  8629. b = 0;
  8630. }
  8631. }
  8632. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  8633. write_byte(TE_BEAMFOLLOW);
  8634. write_short(gid);
  8635. write_short(g_trail);
  8636. write_byte(10);
  8637. write_byte(5);
  8638. write_byte(r);
  8639. write_byte(g);
  8640. write_byte(b);
  8641. write_byte(192);
  8642. message_end();
  8643. }
  8644. }
  8645.  
  8646. // POWERS -------------------------------------
  8647.  
  8648. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8649. // Drop Enemy Weapon |
  8650. //==========================================================================================================
  8651. public DropShowHUD(id) {
  8652. if (!is_user_alive(id) || HasPower[id] != 4) {
  8653. remove_task(id);
  8654. Drop_Cooldown[id] = 0;
  8655. return PLUGIN_HANDLED;
  8656. }
  8657. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  8658. if(is_user_alive(id) && Drop_Cooldown[id] == 1) {
  8659. Drop_Cooldown[id] --;
  8660. show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Drop_Cooldown[id]);
  8661. }
  8662. if(is_user_alive(id) && Drop_Cooldown[id] > 1) {
  8663. Drop_Cooldown[id] --;
  8664. show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Drop_Cooldown[id]);
  8665. }
  8666. if(Drop_Cooldown[id] <= 0) {
  8667. show_hudmessage(id, "Ti-a revenit puterea");
  8668. ColorChat(id, GREEN,"%s Iti poti folosi din nou puterea .", szPrefix);
  8669. remove_task(id);
  8670. Drop_Cooldown[id] = 0;
  8671. }
  8672. return PLUGIN_HANDLED;
  8673. }
  8674.  
  8675.  
  8676. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8677. // Freeze |
  8678. //==========================================================================================================
  8679. public Freeze(id) {
  8680. if (!is_user_alive(id) || Frozen[id]) return;
  8681.  
  8682. pev(id, pev_maxspeed, TempSpeed[id]); //get temp speed
  8683. pev(id, pev_gravity, TempGravity[id]); //get temp speed
  8684. fm_set_rendering(id, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25);
  8685. engfunc(EngFunc_EmitSound, id, CHAN_BODY, FROSTPLAYER_SND[random_num(0, sizeof FROSTPLAYER_SND - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM);
  8686. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), _, id);
  8687. write_short(UNIT_SECOND*1);
  8688. write_short(floatround(UNIT_SECOND*get_pcvar_float(CvarFreezeDuration)));
  8689. write_short(FFADE_IN);
  8690. write_byte(0);
  8691. write_byte(50);
  8692. write_byte(200);
  8693. write_byte(100);
  8694. message_end();
  8695. if (pev(id, pev_flags) & FL_ONGROUND)
  8696. set_pev(id, pev_gravity, 999999.9);
  8697. else
  8698. set_pev(id, pev_gravity, 0.000001);
  8699.  
  8700. Frozen[id] = true;
  8701. set_task(get_pcvar_float(CvarFreezeDuration), "remove_freeze", id);
  8702. }
  8703.  
  8704. public set_normal(id) {
  8705. set_pev(id, pev_gravity, TempGravity[id]);
  8706. set_pev(id, pev_maxspeed, TempSpeed[id]);
  8707. }
  8708.  
  8709. public FreezeShowHUD(id) {
  8710. if (!is_user_alive(id) || HasPower[id] != 5) {
  8711. remove_task(id);
  8712. Freeze_Cooldown[id] = 0;
  8713. return PLUGIN_HANDLED;
  8714. }
  8715. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  8716. if(is_user_alive(id) && Freeze_Cooldown[id] == 1) {
  8717. Freeze_Cooldown[id] --;
  8718. show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Freeze_Cooldown[id]);
  8719. }
  8720. if(is_user_alive(id) && Freeze_Cooldown[id] > 1) {
  8721. Freeze_Cooldown[id] --;
  8722. show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Freeze_Cooldown[id]);
  8723. }
  8724. if(Freeze_Cooldown[id] <= 0) {
  8725. show_hudmessage(id, "Ti-a revenit puterea");
  8726. ColorChat(id, GREEN, "%s Iti poti folosi din nou puterea .", szPrefix);
  8727. remove_task(id);
  8728. Freeze_Cooldown[id] = 0;
  8729. }
  8730. return PLUGIN_HANDLED;
  8731. }
  8732.  
  8733. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8734. // Drag |
  8735. //==========================================================================================================
  8736. public DragStart(id) {
  8737. if (HasPower[id] == 6 && !Drag_I[id]) {
  8738.  
  8739. if (!is_user_alive(id)) {
  8740. return PLUGIN_HANDLED;
  8741. }
  8742. if (Drag_Cooldown[id]) {
  8743. ColorChat(id, GREEN,"%s Puterea iti va reveni in^4 %d^3 secunde .^4", szPrefix, Drag_Cooldown[id]);
  8744. return PLUGIN_HANDLED;
  8745. }
  8746. new hooktarget, body;
  8747. get_user_aiming(id, hooktarget, body);
  8748.  
  8749. if (is_user_alive(hooktarget)) {
  8750. if (get_user_team(id) != get_user_team(hooktarget)) {
  8751. Hooked[id] = hooktarget;
  8752. emit_sound(hooktarget, CHAN_BODY, DRAG_HIT_SND, 1.0, ATTN_NORM, 0, PITCH_HIGH);
  8753. }
  8754. else {
  8755. return PLUGIN_HANDLED;
  8756. }
  8757.  
  8758. if (get_pcvar_float(CvarDragSpeed) <= 0.0)
  8759. CvarDragSpeed = 1;
  8760.  
  8761. new parm[2];
  8762. parm[0] = id;
  8763. parm[1] = hooktarget;
  8764.  
  8765. set_task(0.1, "DragReelin", id, parm, 2, "b");
  8766. HarpoonTarget(parm);
  8767. Drag_I[id] = true;
  8768. Not_Cooldown[id] = false;
  8769. if(get_pcvar_num(CvarDragUnb2Move) == 1)
  8770. Unable2move[hooktarget] = true;
  8771.  
  8772. if(get_pcvar_num(CvarDragUnb2Move) == 2)
  8773. Unable2move[id] = true;
  8774.  
  8775. if(get_pcvar_num(CvarDragUnb2Move) == 3) {
  8776. Unable2move[hooktarget] = true;
  8777. Unable2move[id] = true;
  8778. }
  8779. }
  8780. else {
  8781. Hooked[id] = 33;
  8782. NoTarget(id);
  8783. Not_Cooldown[id] = false;
  8784. set_task(1.0,"DragEnd",id);
  8785. emit_sound(id, CHAN_BODY, DRAG_MISS_SND, 1.0, ATTN_NORM, 0, PITCH_HIGH);
  8786. Drag_I[id] = true;
  8787. }
  8788. }
  8789. else
  8790. return PLUGIN_HANDLED;
  8791.  
  8792. return PLUGIN_CONTINUE;
  8793. }
  8794.  
  8795. public DragShowHUD(id) {
  8796. if (!is_user_alive(id) || HasPower[id] != 6) {
  8797. remove_task(id);
  8798. Drag_Cooldown[id] = 0;
  8799. Not_Cooldown[id] = true;
  8800. return PLUGIN_HANDLED;
  8801. }
  8802. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  8803. if(is_user_alive(id) && Drag_Cooldown[id] == 1) {
  8804. Drag_Cooldown[id] --;
  8805. show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Drag_Cooldown[id]);
  8806. }
  8807. if(is_user_alive(id) && Drag_Cooldown[id] > 1) {
  8808. Drag_Cooldown[id] --;
  8809. show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Drag_Cooldown[id]);
  8810. }
  8811. if(Drag_Cooldown[id] <= 0) {
  8812. show_hudmessage(id, "Ti-a revenit puterea");
  8813. ColorChat(id, GREEN, "%s Iti poti folosi din nou puterea .", szPrefix);
  8814. remove_task(id);
  8815. Drag_Cooldown[id] = 0;
  8816. Not_Cooldown[id] = true;
  8817. }
  8818. return PLUGIN_HANDLED;
  8819. }
  8820.  
  8821. public DragReelin(parm[]) {
  8822. new id = parm[0];
  8823. new victim = parm[1];
  8824.  
  8825. if (!Hooked[id] || !is_user_alive(victim)) {
  8826. DragEnd(id);
  8827. return;
  8828. }
  8829.  
  8830. new Float:fl_Velocity[3];
  8831. new idOrigin[3], vicOrigin[3];
  8832.  
  8833. get_user_origin(victim, vicOrigin);
  8834. get_user_origin(id, idOrigin);
  8835.  
  8836. new distance = get_distance(idOrigin, vicOrigin);
  8837.  
  8838. if (distance > 1) {
  8839. new Float:fl_Time = distance / get_pcvar_float(CvarDragSpeed);
  8840.  
  8841. fl_Velocity[0] = (idOrigin[0] - vicOrigin[0]) / fl_Time;
  8842. fl_Velocity[1] = (idOrigin[1] - vicOrigin[1]) / fl_Time;
  8843. fl_Velocity[2] = (idOrigin[2] - vicOrigin[2]) / fl_Time;
  8844. }
  8845. else {
  8846. fl_Velocity[0] = 0.0;
  8847. fl_Velocity[1] = 0.0;
  8848. fl_Velocity[2] = 0.0;
  8849. }
  8850.  
  8851. entity_set_vector(victim, EV_VEC_velocity, fl_Velocity); //<- rewritten. now uses engine
  8852. }
  8853.  
  8854. public TakeDamage(victim, inflictor, attacker, Float:damage) { // if take damage drag off
  8855. if (is_user_alive(attacker) && (get_pcvar_num(CvarDragDmg2Stop) > 0)) {
  8856. OvrDmg[victim] = OvrDmg[victim] + floatround(damage);
  8857. if (OvrDmg[victim] >= get_pcvar_num(CvarDragDmg2Stop)) {
  8858. OvrDmg[victim] = 0;
  8859. DragEnd(victim);
  8860. return HAM_IGNORED;
  8861. }
  8862. }
  8863.  
  8864. return HAM_IGNORED;
  8865. }
  8866.  
  8867. public HarpoonTarget(parm[]) { // set beam (ex. tongue:) if target is player
  8868.  
  8869. new id = parm[0];
  8870. new hooktarget = parm[1];
  8871.  
  8872. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  8873. write_byte(8); // TE_BEAMENTS
  8874. write_short(id);
  8875. write_short(hooktarget);
  8876. write_short(DragSprite); // sprite index
  8877. write_byte(0); // start frame
  8878. write_byte(0); // framerate
  8879. write_byte(200); // life
  8880. write_byte(8); // width
  8881. write_byte(1); // noise
  8882. write_byte(155); // r, g, b
  8883. write_byte(155); // r, g, b
  8884. write_byte(55); // r, g, b
  8885. write_byte(90); // brightness
  8886. write_byte(10); // speed
  8887. message_end();
  8888. }
  8889.  
  8890. public NoTarget(id) { // set beam if target isn't player
  8891. new endorigin[3];
  8892.  
  8893. get_user_origin(id, endorigin, 3);
  8894.  
  8895. message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
  8896. write_byte(TE_BEAMENTPOINT); // TE_BEAMENTPOINT
  8897. write_short(id);
  8898. write_coord(endorigin[0]);
  8899. write_coord(endorigin[1]);
  8900. write_coord(endorigin[2]);
  8901. write_short(DragSprite); // sprite index
  8902. write_byte(0); // start frame
  8903. write_byte(0); // framerate
  8904. write_byte(200); // life
  8905. write_byte(8); // width
  8906. write_byte(1); // noise
  8907. write_byte(155); // r, g, b
  8908. write_byte(155); // r, g, b
  8909. write_byte(55); // r, g, b
  8910. write_byte(75); // brightness
  8911. write_byte(0); // speed
  8912. message_end();
  8913. }
  8914.  
  8915. public PlayerPreThink(id) {
  8916. new button = get_user_button(id);
  8917. new oldbutton = get_user_oldbutton(id);
  8918.  
  8919. if (!is_user_alive(id)) {
  8920. return FMRES_IGNORED;
  8921. }
  8922.  
  8923. if (Frozen[id]) {
  8924. set_pev(id, pev_velocity, Float:{0.0,0.0,0.0});
  8925. set_pev(id, pev_maxspeed, 1.0) ;
  8926. }
  8927.  
  8928. if(HasPower[id] == 6 ) {
  8929. if (BindUse[id]) {
  8930. if (!(oldbutton & IN_USE) && (button & IN_USE))
  8931. DragStart(id);
  8932.  
  8933. if ((oldbutton & IN_USE) && !(button & IN_USE))
  8934. DragEnd(id);
  8935. }
  8936.  
  8937. if (!Drag_I[id]) {
  8938. Unable2move[id] = false;
  8939. }
  8940.  
  8941. if (Unable2move[id] && get_pcvar_num(CvarDragUnb2Move) > 0) {
  8942. set_pev(id, pev_maxspeed, 1.0);
  8943. }
  8944. }
  8945. return PLUGIN_CONTINUE;
  8946. }
  8947.  
  8948. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8949. // Teleport |
  8950. //==========================================================================================================
  8951. public TeleportShowHUD(id) {
  8952. if (!is_user_alive(id) || HasPower[id] != 7) {
  8953. remove_task(id);
  8954. Teleport_Cooldown[id] = 0;
  8955. return PLUGIN_HANDLED;
  8956. }
  8957. set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
  8958. if(is_user_alive(id) && Teleport_Cooldown[id] == 1) {
  8959. Teleport_Cooldown[id] --;
  8960. show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Teleport_Cooldown[id]);
  8961. }
  8962. if(is_user_alive(id) && Teleport_Cooldown[id] > 1) {
  8963. Teleport_Cooldown[id] --;
  8964. show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Teleport_Cooldown[id]);
  8965. }
  8966. if(Teleport_Cooldown[id] <= 0) {
  8967. show_hudmessage(id, "Ti-a revenit puterea");
  8968. ColorChat(id, GREEN, "%s Iti poti folosi din nou puterea. ", szPrefix);
  8969. remove_task(id);
  8970. Teleport_Cooldown[id] = 0;
  8971. }
  8972. return PLUGIN_HANDLED;
  8973. }
  8974.  
  8975.  
  8976.  
  8977.  
  8978.  
  8979. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  8980. // NoRecoil |
  8981. //==========================================================================================================
  8982. public Weapon_PrimaryAttack_Pre(entity) {
  8983. new id = pev(entity, pev_owner);
  8984.  
  8985. if (HasPower[id] == 8) {
  8986. pev(id, pev_punchangle, cl_pushangle[id]);
  8987. return HAM_IGNORED;
  8988. }
  8989. return HAM_IGNORED;
  8990. }
  8991.  
  8992. public Weapon_PrimaryAttack_Post(entity) {
  8993. new id = pev(entity, pev_owner);
  8994.  
  8995. if ( HasPower[id] == 8) {
  8996. new Float: push[3];
  8997. pev(id, pev_punchangle, push);
  8998. xs_vec_sub(push, cl_pushangle[id], push);
  8999. xs_vec_mul_scalar(push, 0.0, push);
  9000. xs_vec_add(push, cl_pushangle[id], push);
  9001. set_pev(id, pev_punchangle, push);
  9002. return HAM_IGNORED;
  9003. }
  9004. return HAM_IGNORED;
  9005. }
  9006.  
  9007. // POWERS -------------------------------------------------
  9008.  
  9009. public FurienAndAntiFurienDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits )
  9010. {
  9011. if( iInflictor == iAttacker && vip_axe_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9012. {
  9013. SetHamParamFloat( 4, fDamage * 5.3);
  9014. return HAM_HANDLED;
  9015. }
  9016.  
  9017. if( iInflictor == iAttacker && katana_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9018. {
  9019. SetHamParamFloat( 4, fDamage * 2.8);
  9020. return HAM_HANDLED;
  9021. }
  9022.  
  9023. if( iInflictor == iAttacker && double_katana_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9024. {
  9025. SetHamParamFloat( 4, fDamage * 3.3);
  9026. return HAM_HANDLED;
  9027. }
  9028.  
  9029. if( iInflictor == iAttacker && super_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9030. {
  9031. SetHamParamFloat( 4, fDamage * 2.0);
  9032. return HAM_HANDLED;
  9033. }
  9034.  
  9035. if( iInflictor == iAttacker && infinity_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9036. {
  9037. SetHamParamFloat( 4, fDamage * 1.5 );
  9038. return HAM_HANDLED;
  9039. }
  9040.  
  9041. if( iInflictor == iAttacker && super_knife_shop [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9042. {
  9043. SetHamParamFloat( 4, fDamage * 6.0 );
  9044. return HAM_HANDLED;
  9045. }
  9046.  
  9047. if( iInflictor == iAttacker && super_knife_shop2 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9048. {
  9049. SetHamParamFloat( 4, fDamage * 10.0 );
  9050. return HAM_HANDLED;
  9051. }
  9052.  
  9053. if( iInflictor == iAttacker && ignes_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9054. {
  9055. SetHamParamFloat( 4, fDamage * 4.0 );
  9056. return HAM_HANDLED;
  9057. }
  9058.  
  9059. if( iInflictor == iAttacker && elf_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9060. {
  9061. SetHamParamFloat( 4, fDamage * 4.5 );
  9062. return HAM_HANDLED;
  9063. }
  9064.  
  9065. if( iInflictor == iAttacker && hunter [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_P90 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  9066. {
  9067. SetHamParamFloat( 4, fDamage * 1.5 );
  9068. return HAM_HANDLED;
  9069. }
  9070.  
  9071. if( iInflictor == iAttacker && mage [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_GALIL && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  9072. {
  9073. SetHamParamFloat( 4, fDamage * 2.0 );
  9074. return HAM_HANDLED;
  9075. }
  9076.  
  9077. if( iInflictor == iAttacker && rogue [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_FAMAS && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  9078. {
  9079. SetHamParamFloat( 4, fDamage * 2.5 );
  9080. return HAM_HANDLED;
  9081. }
  9082.  
  9083. if( iInflictor == iAttacker && shaman [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_SG552 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  9084. {
  9085. SetHamParamFloat( 4, fDamage * 2.5 );
  9086. return HAM_HANDLED;
  9087. }
  9088.  
  9089. if( iInflictor == iAttacker && thompson [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_P90 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  9090. {
  9091. SetHamParamFloat( 4, fDamage * 3.0 );
  9092. return HAM_HANDLED;
  9093. }
  9094.  
  9095. if( iInflictor == iAttacker && warrior [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_P90 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  9096. {
  9097. SetHamParamFloat( 4, fDamage * 2.0 );
  9098. return HAM_HANDLED;
  9099. }
  9100.  
  9101. if( iInflictor == iAttacker && deklowaz [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_P90 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  9102. {
  9103. SetHamParamFloat( 4, fDamage * 3.0 );
  9104. return HAM_HANDLED;
  9105. }
  9106.  
  9107. if( iInflictor == iAttacker && dual_mp5 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_MP5NAVY && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  9108. {
  9109. SetHamParamFloat( 4, fDamage * 2.0 );
  9110. return HAM_HANDLED;
  9111. }
  9112.  
  9113. if( iInflictor == iAttacker && strike_grenade [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_HEGRENADE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9114. {
  9115. SetHamParamFloat( 4, fDamage * 4.0 );
  9116. return HAM_HANDLED;
  9117. }
  9118.  
  9119. if( iInflictor == iAttacker && strike_grenade2 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_HEGRENADE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9120. {
  9121. SetHamParamFloat( 4, fDamage * 5.0 );
  9122. return HAM_HANDLED;
  9123. }
  9124.  
  9125. if( iInflictor == iAttacker && strike_grenade3 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_HEGRENADE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  9126. {
  9127. SetHamParamFloat( 4, fDamage * 6.0 );
  9128. return HAM_HANDLED;
  9129. }
  9130.  
  9131. return HAM_IGNORED;
  9132. }
  9133.  
  9134. public Depozit(id) {
  9135. if(cs_get_user_money(id) >= 16000) {
  9136. ColorChat ( id, GREEN, "%s Ai depozitat^4 16000^3 si ai primit^4 1^3 credit .^4", szPrefix );
  9137. set_user_credits(id, get_user_credits(id) + 1);
  9138. cs_set_user_money(id, cs_get_user_money(id) - 16000);
  9139. }
  9140. else {
  9141. ColorChat ( id, GREEN, "%s Ai nevoie de ^4 16000 $^3 pentru a depozita .^4", szPrefix );
  9142. }
  9143. return PLUGIN_HANDLED;
  9144. }
  9145.  
  9146. public Retrage(id) {
  9147. if(cs_get_user_money(id) >= 16000) {
  9148. ColorChat ( id, GREEN, "%s Detii deja^4 16000 $^3", szPrefix );
  9149. }
  9150. else if(PlayerCredits[id]) {
  9151. ColorChat ( id, GREEN, "%s Ai retras^4 1^3 credit, mai ai^4 %d^3 credite .", szPrefix, PlayerCredits [ id ] - 1 );
  9152. set_user_credits(id, get_user_credits(id) - 1);
  9153. cs_set_user_money(id, cs_get_user_money(id) + 16000);
  9154. }
  9155. else {
  9156. ColorChat ( id, GREEN, "%s Ai nevoie de^4 1^3 credti pentru a putea retrage .^4", szPrefix );
  9157. }
  9158. return PLUGIN_HANDLED;
  9159. }
  9160.  
  9161. public Show_Credits(id) {
  9162. set_hudmessage(0, 128, 0, 0.03, 0.86, 2, 6.0, 5.0);
  9163. show_hudmessage(id, "Ai %d Credite.", PlayerCredits[id]);
  9164. ColorChat ( id, GREEN, "%s Detii^4 %d^3 credite .^4", szPrefix, PlayerCredits [ id ] );
  9165. return PLUGIN_HANDLED;
  9166. }
  9167.  
  9168. public Give_Credits(id, level, cid) {
  9169. if(!cmd_access(id, level, cid, 2)) {
  9170. return PLUGIN_HANDLED;
  9171. }
  9172. new arg[23], gplayers[32], num, i, players, name[32];
  9173. get_user_name(id, name, 31);
  9174. read_argv(1, arg, 23);
  9175. new give_credits[5];
  9176. read_argv(2, give_credits, charsmax(give_credits));
  9177. new Credits = str_to_num(give_credits);
  9178. if(equali(arg, "@T") || equali ( arg, "t" ) ) {
  9179. get_players(gplayers, num, "e", "TERRORIST");
  9180. for(i = 0; i < num; i++) {
  9181. players = gplayers[i];
  9182. if(!is_user_connected(players))
  9183. continue;
  9184. set_user_credits(players, get_user_credits(players) + Credits);
  9185. SaveData(id);
  9186. }
  9187. switch(get_cvar_num("amx_show_activity")) {
  9188. case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 Ts.", Credits);
  9189. case 2: ColorChat(0, GREEN, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 Ts.", name, Credits);
  9190. }
  9191. }
  9192. else if(equali(arg, "@CT") || equali ( arg, "ct" ) ) {
  9193. get_players(gplayers, num, "e", "CT");
  9194. for(i = 0; i < num; i++) {
  9195. players = gplayers[i];
  9196. if(!is_user_connected(players))
  9197. continue;
  9198. set_user_credits(players, get_user_credits(players) + Credits);
  9199. SaveData(id);
  9200. }
  9201. switch(get_cvar_num("amx_show_activity")) {
  9202. case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 CTs.", Credits);
  9203. case 2: ColorChat(0, GREEN, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 CTs.", name, Credits);
  9204. }
  9205. }
  9206. if(equali(arg, "@All") || equali ( arg, "all" ) ) {
  9207. get_players(gplayers, num, "a");
  9208. for(i = 0; i < num; i++) {
  9209. players = gplayers[i];
  9210. if(!is_user_connected(players))
  9211. continue;
  9212. set_user_credits(players, get_user_credits(players) + Credits);
  9213. SaveData(id);
  9214. }
  9215. switch(get_cvar_num("amx_show_activity")) {
  9216. case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 Players.", Credits);
  9217. case 2: ColorChat(0, GREEN, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 Players.", name, Credits);
  9218. }
  9219. }
  9220. new player = cmd_target(id, arg, 11);
  9221. if(!player) {
  9222. return PLUGIN_HANDLED;
  9223. }
  9224. set_user_credits(player, get_user_credits(player) + Credits);
  9225. SaveData(id);
  9226. switch(get_cvar_num("amx_show_activity")) {
  9227. case 1: ColorChat(player, GREEN, "^x03ADMIN^x04 give your^x03 %i Credits.", Credits);
  9228. case 2: ColorChat(player, GREEN, "^x03%s^x04 give your^x03 %i Credits.", name, Credits);
  9229. }
  9230. return PLUGIN_HANDLED;
  9231. }
  9232.  
  9233. public Reset_Credits(id, level, cid) {
  9234. if(!cmd_access(id, level, cid, 2)) {
  9235. return PLUGIN_HANDLED;
  9236. }
  9237. new arg[23], gplayers[32], num, i, players, name[32];
  9238. get_user_name(id, name, 31);
  9239. read_argv(1, arg, 23);
  9240. if(equali(arg, "@T")) {
  9241. get_players(gplayers, num, "e", "TERRORIST");
  9242. for(i = 0; i < num; i++) {
  9243. players = gplayers[i];
  9244. if(!is_user_connected(players))
  9245. continue;
  9246. PlayerCredits [ players ] = 0;
  9247. }
  9248. switch(get_cvar_num("amx_show_activity")) {
  9249. case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 reset^x03 Credits^x04 to all^x03 Ts.");
  9250. case 2: ColorChat(0, GREEN, "^x03%s^x04 reset^x03 Credits^x04 to all^x03 Ts.", name);
  9251. }
  9252. }
  9253.  
  9254. else if(equali(arg, "@CT")) {
  9255. get_players(gplayers, num, "e", "CT");
  9256. for(i = 0; i < num; i++) {
  9257. players = gplayers[i];
  9258. if(!is_user_connected(players))
  9259. continue;
  9260. PlayerCredits [ players ] = 0;
  9261. }
  9262. switch(get_cvar_num("amx_show_activity")) {
  9263. case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 reset^x03 %i Credits^x04 to all^x03 CTs.");
  9264. case 2: ColorChat(0, GREEN, "^x03%s^x04 reset^x03 %i Credits^x04 to all^x03 CTs.", name);
  9265. }
  9266. }
  9267. if(equali(arg, "@All")) {
  9268. get_players(gplayers, num, "a");
  9269. for(i = 0; i < num; i++) {
  9270. players = gplayers[i];
  9271. if(!is_user_connected(players))
  9272. continue;
  9273. PlayerCredits [ players ] = 0;
  9274. }
  9275. switch(get_cvar_num("amx_show_activity")) {
  9276. case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 reset^x03 Credits^x04 to all^x03 Players.");
  9277. case 2: ColorChat(0, GREEN, "^x03%s^x04 resetx03 Credits^x04 to all^x03 Players.", name);
  9278. }
  9279. }
  9280. new player = cmd_target(id, arg, 11);
  9281. if(!player) {
  9282. return PLUGIN_HANDLED;
  9283. }
  9284. PlayerCredits [ player ] = 0;
  9285. switch(get_cvar_num("amx_show_activity")) {
  9286. case 1: ColorChat(player, GREEN, "^x03ADMIN^x04 reset your^x03 Credits.");
  9287. case 2: ColorChat(player, GREEN, "^x03%s^x04 reset your^x03 Credits.", name);
  9288. }
  9289. return PLUGIN_HANDLED;
  9290. }
  9291.  
  9292. stock set_player_nextattack(player, weapon_id, Float:NextTime)
  9293. {
  9294. const m_flNextPrimaryAttack_dc = 46
  9295. const m_flNextSecondaryAttack_dc = 47
  9296. const m_flTimeWeaponIdle_dc = 48
  9297. const m_flNextAttack_dc = 83
  9298.  
  9299. static weapon
  9300. weapon = fm_get_user_weapon_entity(player, weapon_id)
  9301.  
  9302. set_pdata_float(player, m_flNextAttack_dc, NextTime, 5)
  9303. if(pev_valid(weapon))
  9304. {
  9305. set_pdata_float(weapon, m_flNextPrimaryAttack_dc , NextTime, 4)
  9306. set_pdata_float(weapon, m_flNextSecondaryAttack_dc, NextTime, 4)
  9307. set_pdata_float(weapon, m_flTimeWeaponIdle_dc, NextTime, 4)
  9308. }
  9309. }
  9310.  
  9311. //get weapon id
  9312. stock get_weapon_ent(id,wpnid=0,wpnName[]="") {
  9313. // who knows what wpnName will be
  9314. static newName[24];
  9315.  
  9316. // need to find the name
  9317. if(wpnid) get_weaponname(wpnid,newName,23);
  9318.  
  9319. // go with what we were told
  9320. else formatex(newName,23,"%s",wpnName);
  9321.  
  9322. // prefix it if we need to
  9323. if(!equal(newName,"weapon_",7))
  9324. format(newName,23,"weapon_%s",newName);
  9325.  
  9326. return fm_find_ent_by_owner(get_maxplayers(),newName,id);
  9327. }
  9328.  
  9329. // Blood and bodyparts
  9330. stock create_blood(const Float:origin[3]) {
  9331. // Head
  9332. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  9333. write_byte(TE_MODEL)
  9334. engfunc(EngFunc_WriteCoord, origin[0])
  9335. engfunc(EngFunc_WriteCoord, origin[1])
  9336. engfunc(EngFunc_WriteCoord, origin[2])
  9337. write_coord(random_num(-100,100))
  9338. write_coord(random_num(-100,100))
  9339. write_coord(random_num(100,200))
  9340. write_angle(random_num(0,360))
  9341. write_short(mdl_gib_head) // Sprite index
  9342. write_byte(0) // bounce
  9343. write_byte(500) // life
  9344. message_end()
  9345.  
  9346. // Spine
  9347. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  9348. write_byte(TE_MODEL)
  9349. engfunc(EngFunc_WriteCoord, origin[0])
  9350. engfunc(EngFunc_WriteCoord, origin[1])
  9351. engfunc(EngFunc_WriteCoord, origin[2])
  9352. write_coord(random_num(-100,100))
  9353. write_coord(random_num(-100,100))
  9354. write_coord(random_num(100,200))
  9355. write_angle(random_num(0,360))
  9356. write_short(mdl_gib_spine)
  9357. write_byte(0) // bounce
  9358. write_byte(500) // life
  9359. message_end()
  9360.  
  9361. // Lung
  9362. for(new i = 0; i < random_num(1,2); i++)
  9363. {
  9364. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  9365. write_byte(TE_MODEL)
  9366. engfunc(EngFunc_WriteCoord, origin[0])
  9367. engfunc(EngFunc_WriteCoord, origin[1])
  9368. engfunc(EngFunc_WriteCoord, origin[2])
  9369. write_coord(random_num(-100,100))
  9370. write_coord(random_num(-100,100))
  9371. write_coord(random_num(100,200))
  9372. write_angle(random_num(0,360))
  9373. write_short(mdl_gib_lung)
  9374. write_byte(0) // bounce
  9375. write_byte(500) // life
  9376. message_end()
  9377. }
  9378.  
  9379. // Parts, 10 times
  9380. for(new i = 0; i < 10; i++)
  9381. {
  9382. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  9383. write_byte(TE_MODEL)
  9384. engfunc(EngFunc_WriteCoord, origin[0])
  9385. engfunc(EngFunc_WriteCoord, origin[1])
  9386. engfunc(EngFunc_WriteCoord, origin[2])
  9387. write_coord(random_num(-100,100))
  9388. write_coord(random_num(-100,100))
  9389. write_coord(random_num(100,200))
  9390. write_angle(random_num(0,360))
  9391. write_short(mdl_gib_flesh)
  9392. write_byte(0) // bounce
  9393. write_byte(500) // life
  9394. message_end()
  9395. }
  9396.  
  9397. // Blood
  9398. for(new i = 0; i < 3; i++)
  9399. {
  9400. new x,y,z
  9401. x = random_num(-100,100)
  9402. y = random_num(-100,100)
  9403. z = random_num(0,100)
  9404. for(new j = 0; j < 3; j++)
  9405. {
  9406. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  9407. write_byte(TE_BLOODSPRITE)
  9408. engfunc(EngFunc_WriteCoord, origin[0]+(x*j))
  9409. engfunc(EngFunc_WriteCoord, origin[1]+(y*j))
  9410. engfunc(EngFunc_WriteCoord, origin[2]+(z*j))
  9411. write_short(blood_spray)
  9412. write_short(blood_drop)
  9413. write_byte(229) // color index
  9414. write_byte(15) // size
  9415. message_end()
  9416. }
  9417. }
  9418. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement