#include < amxmodx >
#include < amxmisc>
#include < nvault >
#include < engine >
#include <
cstrike >
#include < hamsandwich >
#include < fakemeta >
#include < fakemeta_util >
#include < fun >
#include < csx >
#include < xs >
#include < colorchat >
#include < dhudmessage >
#define PLUGIN "Furien XP Mod"
#define VERSION "0.0.1"
#define AUTHOR "hadesownage"
#define is_ent_flare(%1) (pev(%1, pev_iuser4) == 1337) ? 1 : 0
new const szPrefix [ ] = "[Furien XP Mod]^3 -";
new Level [ 33 ], eXP [ 33 ];
new KillXp, HsXp, HeXp, KnifeXp;
new g_Menu [ 33 ];
new g_iCount[ 33 ];
new g_trail;
new amx_gamename;
#define TE_SPRITETRAIL 15
new g_damage;
new g_damages;
new gFurienXP, Vault;
new g_MaxPlayers;
new g_FuriensWin = 0;
new g_AntiFuriensWin = 0;
new gMsgScreenShake;
new g_FurienHealth;
new g_AntiFurienHealth;
#define VIP_ACCESS ADMIN_LEVEL_H
new bool:UserHaveHpAndAp [ 33 ];
new bool:UserHaveHeGrenade [ 33 ];
new bool:UserHaveGodMode [ 33 ];
new bool:UserHaveNoClip [ 33 ];
new bool:UserHaveTeleport [ 33 ];
new bool:UserHaveSuperKnife [ 33 ];
new bool:UserHaveDualMp5 [ 33 ];
new bool:UserHasChoosed [ 33 ];
new bool:g_CanUseHe [ 33 ];
new const buy_FurienHealth[] = "exhealth/zm_buyhealth.wav"
new const buy_AntiFurienHealth[] = "exhealth/hm_buyhealth.wav"
static const COLOR[] = "^x04"; //green
static const CONTACT[] = "/vip pentru detalii";
new maxplayers;
new gmsgSayText;
new g_ScoreAttrib;
//======NICK CHANGE-----
new const g_reason[] = "Nu este permisa schimbarea nickului pe server !";
new const g_name[] = "name";
//-------END NICK=====
//======CREDITS-----
new PlayerCredits[10000];
new SymbolsName;
//-------END CREDITS=====
//-------POWERS======
//--| Menu/Power |--//
new HasPower[33], bool:HasChose[33];
//--| HE Grenade |--//
new HE_Cooldown[33] = 0;
//--| GodMode |--//
new GodMode_Cooldown[33] = 0;
new GodMode_DurationCooldown[33] = 0;
//--| Drop Enemy Weapon |--//
new DropSprite, DropSprite2;
new Drop_Cooldown[33] = 0;
new const DROP_HIT_SND[] = "Furien/DropWpn_HIT.wav";
const WPN_NOT_DROP = ((1<<2)|(1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4));
//--| Freeze |--//
new Freeze_Cooldown[33] = 0;
new FreezeSprite, FreezeSprite3;
new Frozen[33];
new Float:TempSpeed[33], Float:TempGravity[33];
new const FreezeSprite2[] = { "models/glassgibs.mdl" };
new const FROSTBREAK_SND[][] = { "Furien/FrostBreak.wav" };
new const FROSTPLAYER_SND[][] = { "Furien/FrostPlayer.wav" };
const BREAK_GLASS = 0x01;
const UNIT_SECOND = (1<<12);
const FFADE_IN = 0x0000;
//--| Drag |--//
new DRAG_MISS_SND[] = "Furien/DragMiss.wav";
new DRAG_HIT_SND[] = "Furien/DragHit.wav";
new Hooked[33], Unable2move[33], OvrDmg[33];
new Float:LastHook[33];
new bool: BindUse[33] = false, bool: Drag_I[33] = false;
new Drag_Cooldown[33] = 0;
new bool:Not_Cooldown[33];
new DragSprite;
//--| Teleport |--//
new TeleportSprite, TeleportSprite2, TeleportSprite3;
new Teleport_Cooldown[33];
new const SOUND_BLINK[] = { "weapons/flashbang-1.wav" };
const UNIT_SEC = 0x1000;
const FFADE = 0x0000;
//--| NoRecoil |--//
new Float: cl_pushangle[33][3];
const WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4);
//--| Cvars |--//
new CvarDropDistance,
CvarDropCooldown, CvarFreezeDuration, CvarFreezeCooldown, CvarFreezeDistance, CvarDragSpeed, CvarDragCooldown,
CvarDragDmg2Stop, CvarDragUnb2Move, CvarTeleportCooldown, CvarTeleportRange;
//-------END POWERS=====
//-------SALAMANDER=====
new const fire_classname[] = "fire_salamander";
new const fire_spr_name[] = "sprites/fire_salamander.spr";
new const v_model[] = "models/furien/v_salamander.mdl";
new const p_model[] = "models/furien/p_salamander.mdl";
new const w_model[] = "models/furien/w_salamander.mdl";
new const fire_sound[] = "weapons/flamegun-2.wav";
#define CSW_SALAMANDER CSW_M249
#define PEV_ENT_TIME pev_fuser1
#define TASK_FIRE 3123123
#define TASK_RELOAD 2342342
new g_had_salamander[33], bool:is_firing[33], bool:is_reloading[33], Float:g_last_fire[33],
bool:can_fire[33], g_reload_ammo[33], g_ammo[33];
enum {
IDLE_ANIM = 0,
DRAW_ANIM = 4,
RELOAD_ANIM = 3,
SHOOT_ANIM = 1,
SHOOT_END_ANIM = 2
}
new g_salamander;
new cvar_dmgrd_start, cvar_dmgrd_end, cvar_fire_delay, cvar_max_clip;
//-------END SALAMANDER=======
//---------FURIEN BONUS BOX======
new CvarFurienSpeed, CvarAntiFurienSpeed;
new bool:HasSpeed[33], bool:HasTeleport[33], bool:LowSpeed [ 33 ];
new const ClassName[] = "BonusBox"
new Model[2][] = {
"models/furien/cadout_new.mdl",
"models/furien/cadouct.mdl"
}
new Model_Yellow[2][] = {
"models/furien/cadout_galben.mdl",
"models/furien/cadouct_galben.mdl"
}
const UNIT_SEC = 0x1000
const FFADE = 0x0000
#define FFADE_IN 0x0000 // Just here so we don't pass 0 into the function
#define FFADE_OUT 0x0001 // Fade out (not in)
#define FFADE_MODULATE 0x0002 // Modulate (don't blend)
#define FFADE_STAYOUT 0x0004 // ignores the duration, stays faded out until new ScreenFade message received
enum {
Red,
Green,
Blue
};
//---------END FURIEN BONUS BOX======
//---------K1ASUS WEAPON ( SCORPION )======
#define ENG_NULLENT -1
#define EV_INT_WEAPONKEY EV_INT_impulse
#define k1ases_WEAPONKEY 890
#define MAX_PLAYERS 32
#define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)
const USE_STOPPED = 0
const OFFSET_ACTIVE_ITEM = 373
const OFFSET_WEAPONOWNER = 41
const OFFSET_LINUX = 4
const OFFSET_LINUX_WEAPONS = 4
#define WEAP_LINUX_XTRA_OFF 4
#define m_fKnown 44
#define m_flNextPrimaryAttack 46
#define m_flTimeWeaponIdle 48
#define m_iClip 51
#define m_fInReload 54
#define PLAYER_LINUX_XTRA_OFF 4
#define m_flNextAttack 83
#define k1ases_RELOAD_TIME 2.5
new bool:k1ases_weapon [ 33 ];
new const Fire_Sounds[][] = { "weapons/k1ar-1.wav" }
new const sprites_exp[] = "sprites/deimosexp.spr"
new const explode_sound[] = "cso/deimos_skill_start.wav"
new const GUNSHOT_DECALS[] = { 41, 42, 43, 44, 45 }
new k1ases_V_MODEL[64] = "models/furien/v_k1ases.mdl"
new k1ases_P_MODEL[64] = "models/furien/p_k1ases.mdl"
new k1ases_W_MODEL[64] = "models/furien/w_k1ases.mdl"
new cvar_dmg_k1ases, cvar_recoil_k1ases, cvar_clip_k1ases, cvar_k1ases_ammo , cvar_k1asesammo , cvar_k1ases_delay , cvar_k1ases_claw , cvar_rad
new g_orig_event_k1ases, g_clip_ammo[33] , cvar_k1ases_fire
new Float:cl_pushangle_k1asus[MAX_PLAYERS + 1][3], m_iBlood[2]
new g_k1ases_TmpClip[33] , oldweap[33] , g_has_k1ases[33] , g_ammoclaw[33] , g_delay[33]
new sprites_exp_index
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)
new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90" }
//---------END K1ASUS WEAPON ( SCORPION )======
//---------QUAD BARREL======
#define m_pPlayer 41
#define m_flNextPrimaryAttack 46
#define m_flNextSecondaryAttack 47
#define m_flTimeWeaponIdle 48
#define m_iClip 51
#define m_fInReload 54
#define m_fInSpecialReload 55
#define XTRA_OFS_WEAPON 4
#define XTRA_OFS_PLAYER 5
#define m_flNextAttack 83
#define m_rgAmmo_player_Slot0 376
new const qb_v_model[] = "models/furien/v_qbarrel.mdl"
new const qb_p_model[] = "models/furien/p_qbarrel.mdl"
new const qb_w_model[] = "models/furien/w_qbarrel.mdl"
new const qb_sound[5][] = {
"weapons/qbarrel_clipin1.wav",
"weapons/qbarrel_clipin2.wav",
"weapons/qbarrel_clipout1.wav",
"weapons/qbarrel_draw.wav",
"weapons/qbarrel_shoot.wav"
}
#define CSW_QB CSW_XM1014
new g_had_qb[33], Float:g_last_fire_qb[33], Float:g_last_fire2[33], g_bloodspray, g_blood
new cvar_default_clip, cvar_delayattack, cvar_reloadtime, cvar_randmg_start, cvar_randmg_end
new g_quad_barrel
//---------END QUAD BARREL======
//---------DRAGON CANNON======
#define CSW_CANNON CSW_UMP45
#define weapon_cannon "weapon_ump45"
#define DEFAULT_W_MODEL "models/w_ump45.mdl"
#define WEAPON_SECRET_CODE 4965
#define CANNONFIRE_CLASSNAME "cannon_round"
// Fire Start
#define WEAPON_ATTACH_F 30.0
#define WEAPON_ATTACH_R 10.0
#define WEAPON_ATTACH_U -10.0
#define TASK_RESET_AMMO 5434
const pev_ammo = pev_iuser4
new const WeaponModel[3][] = {
"models/furien/v_cannon.mdl",
"models/furien/p_cannon.mdl",
"models/furien/w_cannon.mdl"
}
new const WeaponSound[2][] = {
"weapons/cannon-1.wav",
"weapons/cannon_draw.wav"
}
new const WeaponResource[5][] = {
"sprites/fire_cannon.spr",
"sprites/weapon_cannon.txt",
"sprites/640hud69.spr",
"sprites/640hud2_cso.spr",
"sprites/smokepuff.spr"
}
enum {
MODEL_V = 0,
MODEL_P,
MODEL_W
}
enum {
CANNON_ANIM_IDLE = 0,
CANNON_ANIM_SHOOT1,
CANNON_ANIM_SHOOT2,
CANNON_ANIM_DRAW
}
new g_had_cannon[33], g_old_weapon[33], g_cannon_ammo[33], g_got_firsttime[33], Float:g_lastshot[33]
new g_cvar_defaultammo, g_cvar_reloadtime, g_cvar_firespeed, g_cvar_radiusdamage, g_cvar_damage
new Float:g_temp_reloadtime, g_smokepuff_id
//---------END DRAGON CANNON======
//---------M79 WEAPON======
#define HUD_HIDE_CROSS (1<<6)
// Weapon/Grenade models
new const m79_P_MODEL[] = "models/furien/p_m79.mdl"
new const m79_V_MODEL[] = "models/furien/v_m79fix2.mdl"
new const m79_W_MODEL[] = "models/furien/w_m79.mdl"
new const m79_GRENADE_MODEL[] = "models/grenade.mdl"
// Fire sound
new const m79_GRENADE_SHOOT[] = "weapons/m79_fire1.wav"
new const m79_GRENADE_CLIPIN[] = "weapons/m79_clipin.wav"
new const m79_GRENADE_CLIPON[] = "weapons/m79_clipon.wav"
new const m79_GRENADE_CLIPOUT[] = "weapons/m79_clipout.wav"
new const m79_GRENADE_DRAW[] = "weapons/m79_draw.wav"
// Sprites
new const m79_GRENADE_TRAIL[] = "sprites/laserbeam.spr"
new const m79_GRENADE_EXPLOSION[] = "sprites/m79_exp.spr"
new const m79_GRENADE_SMOKE[] = "sprites/black_smoke3.spr"
// Cached sprite indexes
new sTrail, sExplo, sSmoke
// Sprites
new gmsgWeaponList
// Bodyparts and blood
new mdl_gib_flesh, mdl_gib_head, mdl_gib_lung, mdl_gib_spine,
blood_drop, blood_spray
// Item ID
new m79
// Player variables
new g_hasM79[33] // whether player has M79
new g_FireM79[33] // player is shooting
new g_canShoot[33] // player can shoot
new Float:g_last_shot_time[33] // last shot time
new grenade_count[33] // current grenade count
new bool:draw_wpn[33] //выбираем пукалку
new bool:hasOnHandM79[33],bool:canfire[33],
cvar_granade_damage_radius,
cvar_granade_max_damage
// Message ID's
new g_msgScreenShake,g_msgStatusText
new gmsgDeathMsg, gmsgScoreInfo
// Customization(CHANGE HERE)
#define LAUNCHER_COST 20
new Float:delayshot = 3.0
// Tasks
#define TASK_HUDAMMO 1337
#define TASK_FRSTSHT 1437
#define ID_HUDAMMO (taskid - TASK_HUDAMMO)
#define ID_SHT (taskid - TASK_FRSTSHT)
enum {
anim_idle,
anim_shot1,
anim_shot2,
anim_draw,
}
//---------END M79 WEAPON======
new dual_mp5_v_model [ 66 ] = "models/furien/weapons/v_dualmp5.mdl";
new dual_mp5_p_model [ 66 ] = "models/furien/weapons/p_dualmp5.mdl";
new infinity_knife_v_model [ 66 ] = "models/furien/knifes/v_infinity_knife1.mdl";
new infinity_knife_p_model [ 66 ] = "models/furien/knifes/p_infinity_knife1.mdl";
new katana_knife_v_model [ 66 ] = "models/furien/knifes/v_katana.mdl";
new katana_knife_p_model [ 66 ] = "models/furien/knifes/p_katana.mdl";
new double_katana_v_knife_model [ 66 ] = "models/furien/knifes/v_double_katana.mdl";
new double_katana_p_knife_model [ 66 ] = "models/furien/knifes/p_double_katana.mdl";
new super_knife_v_model [ 66 ] = "models/furien/knifes/v_natad.mdl";
new super_knife_p_model [ 66 ] = "models/furien/knifes/p_natad.mdl";
new axe_knife_v_model [ 66 ] = "models/furien/knifes/v_vipaxe.mdl";
new axe_knife_p_model [ 66 ] = "models/furien/knifes/p_vipaxe.mdl";
new trainer_v_model [ 66 ] = "models/furien/knifes/v_combatknife.mdl";
new trainer_p_model [ 66 ] = "models/furien/knifes/p_combatknife.mdl";
new ignes_knife_model [ 66 ] = "models/furien/knifes/v_ignes.mdl";
new elf_knife_model [ 66 ] = "models/furien/knifes/v_elf.mdl";
new super_knife_shop_v_model [ 66 ] = "models/furien/knifes/v_superknife_shop.mdl";
// new super_knife_shop_p_model [ 66 ] = "models/furien/knifes/p_superknife_shop.mdl";
new super_knife_shop_v_model2 [ 66 ] = "models/furien/knifes/v_superknife_shop2.mdl";
new super_knife_shop_p_model2 [ 66 ] = "models/furien/knifes/p_superknife_shop2.mdl";
new thompson_v_model [ 66 ] = "models/furien/weapons/v_thompson.mdl";
new thompson_p_model [ 66 ] = "models/furien/weapons/p_thompson.mdl";
new uspx_v_model [ 66 ] = "models/furien/weapons/v_uspx.mdl";
new uspx_p_model [ 66 ] = "models/furien/weapons/p_uspx.mdl";
new hunter_v_model [ 66 ] = "models/furien/weapons/v_f2000.mdl";
new hunter_p_model [ 66 ] = "models/furien/weapons/p_f2000.mdl";
new mage_v_model [ 66 ] = "models/furien/weapons/v_fnc.mdl";
new mage_p_model [ 66 ] = "models/furien/weapons/p_fnc.mdl";
new rogue_v_model [ 66 ] = "models/furien/weapons/v_svdex.mdl";
new rogue_p_model [ 66 ] = "models/furien/weapons/p_svdex.mdl";
new shaman_v_model [ 66 ] = "models/furien/weapons/v_tar21.mdl";
new shaman_p_model [ 66 ] = "models/furien/weapons/p_tar21.mdl";
new warrior_v_model [ 66 ] = "models/furien/weapons/v_kriss.mdl";
new warrior_p_model [ 66 ] = "models/furien/weapons/p_kriss.mdl";
new deklowaz_v_model [ 66 ] = "models/furien/weapons/v_dualkriss.mdl";
new deklowaz_p_model [ 66 ] = "models/furien/weapons/p_dualkriss.mdl";
new flare_v_model [ 66 ] = "models/furien/weapons/v_flare.mdl";
new flare_w_model [ 66 ] = "models/furien/weapons/w_flare.mdl";
new strike_grenade_v_model [ 66 ] = "models/furien/weapons/v_hegrenade.mdl";
new strike_grenade_p_model [ 66 ] = "models/furien/weapons/p_hegrenade.mdl";
new bool:dual_mp5 [ 33 ];
new bool:salamander [ 33 ];
new bool:SalamanderLimit [ 33 ];
new bool:katana_knife [ 33 ];
new bool:double_katana_knife [ 33 ];
new bool:super_knife [ 33 ];
new bool:infinity_knife [ 33 ];
new bool:ignes_knife [ 33 ];
new bool:elf_knife [ 33 ];
new bool:trainer [ 33 ];
new bool:vip_axe_knife [ 33 ];
new bool:hunter [ 33 ];
new bool:mage [ 33 ];
new bool:rogue [ 33 ];
new bool:shaman [ 33 ];
new bool:warrior [ 33 ];
new bool:deklowaz [ 33 ];
new bool:thompson [ 33 ];
new bool:uspx [ 33 ];
new bool:flare [ 33 ];
new bool:druid [ 33 ];
new bool:strike_grenade [ 33 ];
new bool:strike_grenade2 [ 33 ];
new bool:strike_grenade3 [ 33 ];
new bool:super_knife_shop [ 33 ];
new bool:super_knife_shop2 [ 33 ];
new bool:UserHaveQuad [ 33 ];
new bool:UserHaveDragon [ 33 ];
new bool:UserHaveM79 [ 33 ];
new const Levels [ 30 ] = {
70, //1
150, //2
200, //3
300, //4
380, //5
500, //6
550, //7
650, //8
800, //9
900, //10
1000, //11
1200, //12
1400, //13
1650, //14
1800, //15
2000, //16
2300, //17
2600, //18
3000, //19
3300, //20
3600, //21
4000, //22
4300, //23
4900, //24
5400, //25
6000, //26
6500, //27
7000, //28
7700, //29
8000 //30
};
new const Prefix [ 30 +2 ] [ ] = {
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15",
"16",
"17",
"18",
"19",
"20",
"21",
"22",
"23",
"24",
"25",
"26",
"27",
"28",
"29",
"30",
""
};
public plugin_init ( ) {
register_plugin ( PLUGIN, VERSION, "hadesownage" );
register_clcmd ( "say /xp", "cmdShowXp", -1 );
register_clcmd ( "say /savexp", "cmdSaveXp", -1 );
register_clcmd ( "say /level", "cmdShowLevel" );
register_clcmd ( "say /levele", "cmdShowLevels", -1 );
register_clcmd ( "say /topxp", "cmdXpTop15", -1 );
register_clcmd ( "say /clearxp", "cmdClearXp", -1 );
register_clcmd ( "say /xpmenu", "cmdXpMenu", -1 );
register_clcmd ( "say /vipweapons", "cmdVipWeaponsMenu", -1 );
register_clcmd ( "say /class", "cmdClassMenu", -1 );
register_clcmd ( "say class", "cmdClassMenu", -1 );
register_clcmd ( "say /refresh", "cmdRefreshXP", -1 );
register_clcmd ( "say /shop", "cmdShop", -1 );
register_clcmd ( "say shop", "cmdShop", -1 );
register_clcmd ( "shop", "cmdShop", -1 );
register_clcmd ( "say /help", "cmdHelp", -1 );
register_clcmd ( "say /ajutor", "cmdHelp", -1 );
register_clcmd ( "say /detalii", "cmdHelp", -1 );
register_clcmd ( "say /despre", "cmdHelp", -1 );
register_clcmd ( "say /vip", "cmdShowVipDetails", -1 );
register_clcmd ( "say /depozit","Depozit", -1 );
register_clcmd ( "say_team /depozit","Depozit", -1 );
register_clcmd ( "say /retrage","Retrage", -1 );
register_clcmd ( "say_team /retrage","Retrage", -1 );
register_clcmd ( "say /credits","Show_Credits", -1 );
register_clcmd ( "say /credite","Show_Credits", -1 );
register_clcmd ( "say_team /credits","Show_Credits", -1 );
register_clcmd ( "say_team /credite","Show_Credits", -1 );
register_clcmd ( "+drag","DragStart" );
register_clcmd ( "-drag","DragEnd" );
register_clcmd ( "power", "Power" );
register_clcmd ( "power2", "CmdTeleport" );
register_clcmd ( "say /furienvip", "cmdCheckVIP", -1 );
register_clcmd ( "say_team /furienvip", "cmdCheckVIP", -1 );
register_clcmd ( "vippower", "VIPpower", VIP_ACCESS );
register_concmd ( "amx_givexp", "cmdGiveXp", ADMIN_IMMUNITY, "<target / all> <amount>" );
register_concmd ( "amx_setxp", "cmdSetXp", ADMIN_IMMUNITY, "<target> <amount>" );
register_concmd ( "amx_give_credits", "Give_Credits", ADMIN_IMMUNITY, "<target / ct / t / all> <amount>" );
register_concmd ( "amx_reset_credits", "Reset_Credits", ADMIN_IMMUNITY, "<target / ct / t / all>" );
register_event ( "DeathMsg", "eDeath", "a" );
register_event ( "DeathMsg", "Death", "a" );
register_event ( "CurWeapon", "AntiFurienCurrentWeapon", "be", "1=1" );
register_event ( "CurWeapon", "FurienCurrentWeapon", "be", "1=1" );
register_event ( "HLTV", "GetRandomPlayer", "a", "1=0", "2=0" );
//register_event ( "TextMsg", "Round_Restart", "a", "2&#Game_C", "2&#Game_w", "2&#Game_will_restart_in" );
register_forward ( FM_ClientUserInfoChanged, "fwClientUserInfoChanged" );
register_forward ( FM_PlayerPreThink, "ShowSalamanderIcon" );
register_forward ( FM_SetModel, "fwd_setmodel" );
register_forward ( FM_Think, "fwd_think" );
register_forward ( FM_PlayerPreThink, "ForcePlayerSpeed" );
register_forward ( FM_CmdStart, "CmdStart" );
register_forward ( FM_Touch, "Touch" );
register_forward ( FM_Touch, "Touch_Yellow" );
register_forward ( FM_GetGameDescription, "GameDesc" );
register_logevent ( "round_end", 2, "1=Round_End" );
register_logevent ( "round_start", 2, "1=Round_Start" );
RegisterHam ( Ham_Spawn, "player", "cmdClassMenu", 1 );
RegisterHam ( Ham_Spawn, "player", "RefreshWeapons", 1 );
RegisterHam ( Ham_TakeDamage, "player", "FurienAndAntiFurienDamage" );
RegisterHam ( Ham_Killed, "player", "ham_player_kill" );
RegisterHam ( Ham_Weapon_PrimaryAttack, "weapon_hegrenade", "ham_PrimaryAttack_He" );
KillXp = register_cvar ( "xm_xp_pr_kill", "10" );
HsXp = register_cvar ( "xm_xp_pr_hs", "10" );
HeXp = register_cvar ( "xm_xp_pr_nade", "20" );
KnifeXp = register_cvar ( "xm_xp_pr_knife", "25" );
gFurienXP = nvault_open ( "FurienXPMod" );
g_MaxPlayers = get_maxplayers ( );
g_ScoreAttrib = get_user_msgid("ScoreAttrib");
maxplayers = get_maxplayers()
gmsgSayText = get_user_msgid("SayText")
register_clcmd("say", "handle_say")
register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
SymbolsName = register_cvar ( "fr_name_symbols", "~`" ); //| Symbols Name Restricted |//
CvarFurienSpeed = register_cvar("amx_bonusbox_furien_speed", "1000");
CvarAntiFurienSpeed = register_cvar("amx_bonusbox_anitfurien_speed", "750");
gMsgScreenShake = get_user_msgid("ScreenShake");
amx_gamename = register_cvar( "amx_gamename", "XP Mod by Hades" );
set_task ( 30.0, "GiveBonus", 38427236, _, _, "b" );
set_task( 1.0, "ShowHud", _, _, _, "b" );
set_task( 120.0, "ShowMessages", _, _, _, "b" );
//set_task( 10.0, "UpdateHudScore", _, _, _, "b" );
//set_task( 60.0, "CheckTime", _, _, _, "b", 0 );
// POWERS ------------------------------------
register_event("DeathMsg", "Death", "a");
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
register_forward(FM_PlayerPreThink, "PlayerPreThink");
new weapon_name[24];
for (new i = 1; i <= 30; i++) {
if (!(WEAPONS_BITSUM & 1 << i) && get_weaponname(i, weapon_name, 23)) {
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "Weapon_PrimaryAttack_Pre");
RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "Weapon_PrimaryAttack_Post", 1);
}
}
CvarDropDistance = register_cvar ("vip_drop_distance", "5000"); // Distanta maxima la care poate ajunge puterea
CvarDropCooldown = register_cvar ("vip_drop_cooldown" , "30.0"); // Drop Enemy WPN Cooldown
CvarFreezeDuration = register_cvar("vip_freeze_duration", "3.0"); // Freeze Duration
CvarFreezeCooldown = register_cvar("vip_freeze_cooldown", "30.0"); // Freeze Cooldown
CvarFreezeDistance = register_cvar ("vip_freeze_distance", "5000"); // Distanta maxima la care poate ajunge puterea
CvarDragSpeed = register_cvar("vip_drag_speed", "500"); // Drag Speed
CvarDragCooldown = register_cvar("vip_drag_cooldown", "15.0"); // Drag Cooldown
CvarDragDmg2Stop = register_cvar("vip_drag_dmg2stop", "50"); // Drag Damage to stop
CvarDragUnb2Move = register_cvar("vip_drag_unable_move", "1"); // Drag Unable to move
CvarTeleportCooldown = register_cvar("vip_teleport_cooldown", "20.0"); // Teleport Cooldown
CvarTeleportRange = register_cvar("vip_teleport_range", "12345"); // Teleport Range
// POWERS ------------------------------------
// SALAMANDER ------------------------------------
register_event("CurWeapon", "event_curweapon", "be", "1=1");
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1);
RegisterHam(Ham_Spawn, "player", "fw_spawn", 1);
RegisterHam(Ham_Weapon_Reload, "weapon_m249", "fw_weapon_reload", 1);
RegisterHam(Ham_Item_Deploy, "weapon_m249", "fw_weapon_deploy", 1);
RegisterHam(Ham_Item_PostFrame, "weapon_m249", "fw_item_postframe", 1);
RegisterHam(Ham_Item_AddToPlayer, "weapon_m249", "fw_item_addtoplayer", 1);
register_forward(FM_CmdStart, "fw_cmdstart");
register_touch(fire_classname, "*", "fw_touch");
register_think(fire_classname, "fw_think");
register_forward(FM_SetModel, "fw_SetModel");
register_clcmd("lastinv", "check_lastinv");
cvar_dmgrd_start = register_cvar("zp_salamander_dmgrandom_start", "65.0");
cvar_dmgrd_end = register_cvar("zp_salamander_dmgrandom_end", "90.0");
cvar_fire_delay = register_cvar("zp_salamander_fire_delay", "0.1");
cvar_max_clip = register_cvar("zp_salamander_max_clip", "100");
// SALAMANDER ------------------------------------
// K1ASUS ----------------------------------------------
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
register_event("CurWeapon","CurrentWeapon","be","1=1")
RegisterHam(Ham_Item_AddToPlayer, "weapon_mp5navy", "fw_k1ases_AddToPlayer")
RegisterHam(Ham_Use, "func_tank", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tankmortar", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tankrocket", "fw_UseStationary_Post", 1)
RegisterHam(Ham_Use, "func_tanklaser", "fw_UseStationary_Post", 1)
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mp5navy", "fw_k1ases_PrimaryAttack")
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_mp5navy", "fw_k1ases_PrimaryAttack_Post", 1)
RegisterHam(Ham_Item_PostFrame, "weapon_mp5navy", "k1ases__ItemPostFrame");
RegisterHam(Ham_Weapon_Reload, "weapon_mp5navy", "k1ases__Reload");
RegisterHam(Ham_Weapon_Reload, "weapon_mp5navy", "k1ases__Reload_Post", 1);
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
register_forward(FM_SetModel, "fw_SetModel_k1asus")
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post_k1asus", 1)
register_forward(FM_PlaybackEvent, "fwPlaybackEvent")
register_forward(FM_CmdStart, "fw_CmdStart")
RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_wall", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_door", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_door_rotating", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_plat", "fw_TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "func_rotating", "fw_TraceAttack", 1)
cvar_dmg_k1ases = register_cvar("zp_k1ases_dmg", "1.5")
cvar_recoil_k1ases = register_cvar("zp_k1ases_recoil", "0.5")
cvar_clip_k1ases = register_cvar("zp_k1ases_clip", "30")
cvar_k1ases_ammo = register_cvar("zp_k1ases_ammo", "50")
cvar_k1asesammo = register_cvar("zp_k1ases_clawammo", "3")
cvar_k1ases_delay = register_cvar("zp_k1ases_delay", "5")
cvar_k1ases_claw = register_cvar("zp_k1ases_clawdmg", "500")
cvar_rad = register_cvar("zp_k1ases_clawrad", "100.0")
cvar_k1ases_fire = register_cvar("zp_k1ases_speedfire", "0.4")
// K1ASUS ----------------------------------------------
// QUAD BARREL ----------------------------------------------
register_forward(FM_CmdStart, "fm_cmdstart")
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post_qb", 1)
register_forward(FM_SetModel, "fw_SetModel_qb")
RegisterHam(Ham_TakeDamage, "player", "fw_takedmg")
RegisterHam(Ham_TraceAttack, "worldspawn", "TraceAttack", 1)
RegisterHam(Ham_TraceAttack, "player", "TraceAttack", 1)
RegisterHam(Ham_Weapon_Reload, "weapon_xm1014", "ham_reload", 1)
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_xm1014", "ham_priattack", 1)
RegisterHam(Ham_Item_PostFrame, "weapon_xm1014", "ham_postframe")
RegisterHam(Ham_Item_AddToPlayer, "weapon_xm1014", "fw_item_addtoplayer_qb", 1)
register_clcmd("lastinv", "check_draw_weapon")
register_clcmd("slot1", "check_draw_weapon")
cvar_default_clip = register_cvar("zp_qbarrel_default_clip", "4")
cvar_delayattack = register_cvar("zp_qbarrel_delay_attack", "0.35")
cvar_reloadtime = register_cvar("zp_qbarrel_reload_time", "3.0")
cvar_randmg_start = register_cvar("zp_qbarrel_randomdmg_start", "400.0")
cvar_randmg_end = register_cvar("zp_qbarrel_randomdmg_end", "600.0")
register_event("CurWeapon", "event_curweapon_quad", "be", "1=1")
// QUAD BARREL ----------------------------------------------
// DRAGON CANNON ----------------------------------------------
register_event("CurWeapon", "event_CurWeapon_dragon", "be", "1=1")
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post_dc", 1)
register_forward(FM_CmdStart, "fw_CmdStart_dc")
register_forward(FM_SetModel, "fw_SetModel_dc")
register_think(CANNONFIRE_CLASSNAME, "fw_Cannon_Think")
register_touch(CANNONFIRE_CLASSNAME, "*", "fw_Cannon_Touch")
RegisterHam(Ham_Spawn, "player", "fw_Spawn_Post", 1)
RegisterHam(Ham_Item_AddToPlayer, weapon_cannon, "fw_AddToPlayer_Post", 1)
g_cvar_defaultammo = register_cvar("cannon_default_ammo", "5")
g_cvar_reloadtime = register_cvar("cannon_reload_time", "4.0")
g_cvar_firespeed = register_cvar("cannon_fire_speed", "200.0")
g_cvar_radiusdamage = register_cvar("cannon_radius_damage", "200.0")
g_cvar_damage = register_cvar("cannon_damage", "700.0")
register_clcmd("amx_get_dragoncannon", "get_dragoncannon", ADMIN_RCON)
register_clcmd("weapon_cannon", "hook_weapon")
// DRAGON CANNON ----------------------------------------------
// M79 WEAPON ----------------------------------------------
// Register new extra item
cvar_granade_damage_radius = register_cvar("granade_damage_radius","400",FCVAR_UNLOGGED)
cvar_granade_max_damage = register_cvar("granade_max_damage","700",FCVAR_UNLOGGED)
// Events
register_event("CurWeapon", "Event_CurrentWeapon_m79", "be", "1=1")
register_logevent("event_start_m79", 2, "1=Round_Start")
// Forwards
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_m79")
register_forward(FM_CmdStart, "fw_CmdStart_m79")
register_forward(FM_PlayerPostThink, "fw_PlayerPostThink_m79")
register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post_m79", 1)
register_clcmd("drop","dropcmd")
// Messages
g_msgScreenShake = get_user_msgid("ScreenShake")
g_msgStatusText = get_user_msgid("StatusText")
gmsgDeathMsg = get_user_msgid("DeathMsg")
gmsgScoreInfo = get_user_msgid("ScoreInfo")
// Sprites
RegisterHam( Ham_Item_AddToPlayer, "weapon_p228", "fw_AddToPlayer_m79" );
gmsgWeaponList = get_user_msgid("WeaponList")
// M79 WEAPON ----------------------------------------------
server_print( "[%s] Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN );
server_print( "[%s] Pentru mai multe detalii y/m: hades.hostpixel !", PLUGIN );
server_print( "[%s] Ip-ul Licentiat: %s, Ip-ul Serverului: %s", PLUGIN, szIp, ServerLicensedIp );
set_task( 0.1, "SqlInit" )
}
public plugin_end( )
nvault_close ( gFurienXP );
stock fm_set_rendering2(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
static Float:color[3]; color[2] = float(b), color[0] = float(r), color[1] = float(g);
set_pev(entity, pev_renderfx, fx);
set_pev(entity, pev_rendercolor, color);
set_pev(entity, pev_rendermode, render);
set_pev(entity, pev_renderamt, float(amount));
return true;
}
stock set_user_scoreattrib(id, attrib = 0)
{
message_begin(MSG_BROADCAST, g_ScoreAttrib, _, 0);
write_byte(id);
write_byte(attrib);
message_end( );
}
stock Drop(id) {
new wpn, wpnname[32];
wpn = get_user_weapon(id);
if(!(WPN_NOT_DROP & (1<<wpn)) && get_weaponname(wpn, wpnname, charsmax(wpnname))) {
engclient_cmd(id, "drop", wpnname);
}
}
stock set_weapon_anim(id, anim)
{
set_pev(id, pev_weaponanim, anim)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id)
write_byte(anim)
write_byte(pev(id, pev_body))
message_end()
}
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)
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)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM2))
{
static wname[32]
get_weaponname(weaponid, wname, sizeof wname - 1)
engclient_cmd(id, "drop", wname)
}
}
}
stock get_position(id,Float:forw, Float:right, Float:up, Float:vStart[])
{
new Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
pev(id, pev_origin, vOrigin)
pev(id, pev_view_ofs,vUp) //for player
xs_vec_add(vOrigin,vUp,vOrigin)
pev(id, pev_v_angle, vAngle) // if normal entity ,use pev_angles
angle_vector(vAngle,ANGLEVECTOR_FORWARD,vForward) //or use EngFunc_AngleVectors
angle_vector(vAngle,ANGLEVECTOR_RIGHT,vRight)
angle_vector(vAngle,ANGLEVECTOR_UP,vUp)
vStart[0] = vOrigin[0] + vForward[0] * forw + vRight[0] * right + vUp[0] * up
vStart[1] = vOrigin[1] + vForward[1] * forw + vRight[1] * right + vUp[1] * up
vStart[2] = vOrigin[2] + vForward[2] * forw + vRight[2] * right + vUp[2] * up
}
stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3])
{
new_velocity[0] = origin2[0] - origin1[0]
new_velocity[1] = origin2[1] - origin1[1]
new_velocity[2] = origin2[2] - origin1[2]
new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
new_velocity[0] *= num
new_velocity[1] *= num
new_velocity[2] *= num
return 1;
}
stock is_player_stuck(id, Float:originF[3]) {
engfunc(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0);
if (get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
return true;
return false;
}
stock tele_effect(const Float:torigin[3]) {
new origin[3];
origin[0] = floatround(torigin[0]);
origin[1] = floatround(torigin[1]);
origin[2] = floatround(torigin[2]);
message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
write_byte(TE_BEAMCYLINDER);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]+10);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]+60);
write_short(TeleportSprite);
write_byte(0);
write_byte(0);
write_byte(3);
write_byte(60);
write_byte(0);
write_byte(255);
write_byte(255);
write_byte(255);
write_byte(255);
write_byte(0);
message_end();
}
stock tele_effect2(const Float:torigin[3]) {
new origin[3];
origin[0] = floatround(torigin[0]);
origin[1] = floatround(torigin[1]);
origin[2] = floatround(torigin[2]);
message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
write_byte(TE_BEAMCYLINDER);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]+10);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]+60);
write_short(TeleportSprite);
write_byte(0);
write_byte(0);
write_byte(3);
write_byte(60);
write_byte(0);
write_byte(255);
write_byte(255);
write_byte(255);
write_byte(255);
write_byte(0);
message_end();
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_SPRITETRAIL);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]+40);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2]);
write_short(TeleportSprite2);
write_byte(30);
write_byte(10);
write_byte(1);
write_byte(50);
write_byte(10);
message_end();
}
stock UTIL_CreateBeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
{
message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[ 0 ] );
write_coord( origin[ 1 ] );
write_coord( origin[ 2 ] );
write_coord( origin[ 0 ] );
write_coord( origin[ 1 ] );
write_coord( origin[ 2 ] + addrad );
write_short( sprite );
write_byte( startfrate );
write_byte( framerate );
write_byte(life );
write_byte( width );
write_byte( amplitude );
write_byte( red );
write_byte( green );
write_byte( blue );
write_byte( brightness );
write_byte( speed );
message_end();
}
stock Create_TE_SPRITETRAIL3(start[3], end[3], iSprite, count, life, scale, velocity, random ){
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( TE_SPRITETRAIL )
write_coord( start[0] ) // start position (X)
write_coord( start[1] ) // start position (Y)
write_coord( start[2] + 40 ) // start position (Z)
write_coord( end[0] ) // end position (X)
write_coord( end[1] ) // end position (Y)
write_coord( end[2] ) // end position (Z)
write_short( iSprite ) // sprite index
write_byte( count ) // count
write_byte( life) // life in 0.1's
write_byte( scale) // scale in 0.1's
write_byte( velocity ) // velocity along vector in 10's
write_byte( random ) // randomness of velocity in 10's
message_end()
}
stock fm_cs_get_current_weapon_ent(id)
{
return get_pdata_cbase(id, OFFSET_ACTIVE_ITEM, OFFSET_LINUX);
}
stock fm_cs_get_weapon_ent_owner(ent)
{
return get_pdata_cbase(ent, OFFSET_WEAPONOWNER, OFFSET_LINUX_WEAPONS);
}
stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player)
write_byte(Sequence)
write_byte(pev(Player, pev_body))
message_end()
}
stock play_weapon_anim(player, anim)
{
set_pev(player, pev_weaponanim, anim)
message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, player)
write_byte(anim)
write_byte(pev(player, pev_body))
message_end()
}
stock get_weapon_attackment(id, Float:output[3], Float:fDis = 40.0)
{
new Float:vfEnd[3], viEnd[3]
get_user_origin(id, viEnd, 3)
IVecFVec(viEnd, vfEnd)
new Float:fOrigin[3], Float:fAngle[3]
pev(id, pev_origin, fOrigin)
pev(id, pev_view_ofs, fAngle)
xs_vec_add(fOrigin, fAngle, fOrigin)
new Float:fAttack[3]
xs_vec_sub(vfEnd, fOrigin, fAttack)
xs_vec_sub(vfEnd, fOrigin, fAttack)
new Float:fRate
fRate = fDis / vector_length(fAttack)
xs_vec_mul_scalar(fAttack, fRate, fAttack)
xs_vec_add(fOrigin, fAttack, output)
}
//------| Save Credits |------//
public SaveCredits(id) {
Vault = nvault_open("DepozitCredits");
new data_credits[256], key_credits[64];
new name[33];
get_user_name(id,name,32);
format(key_credits, 63, "%s-/", name);
format(data_credits, 255, "%i#", PlayerCredits[id]);
nvault_set(Vault, key_credits, data_credits);
return PLUGIN_CONTINUE;
}
//------| Loading Credits |------//
public LoadCredits(id) {
Vault = nvault_open("DepozitCredits");
new data_credits[256], key_credits[64];
new name[33];
get_user_name(id,name,32);
format(key_credits, 63, "%s-/", name);
format(data_credits, 255, "%i#", PlayerCredits[id]);
nvault_get(Vault, key_credits, data_credits, 255);
replace_all(data_credits, 255, "#", " ");
new Credits[32];
parse(data_credits, Credits, 31);
PlayerCredits[id] = str_to_num(Credits);
return PLUGIN_CONTINUE;
}
public SaveData ( id ) {
new szName [ 32 ];
get_user_name ( id, szName, charsmax ( szName ) );
new vaultkey [ 64 ], vaultdata [ 256 ];
format ( vaultkey, 63,"%s-Mod", szName );
format ( vaultdata, 255,"%i#%i#",eXP [ id ],Level [ id ] );
nvault_set ( gFurienXP, vaultkey, vaultdata );
return 1;
}
public LoadData ( id ) {
new szName [ 32 ];
get_user_name ( id, szName, charsmax ( szName ) );
new vaultkey [ 64 ],vaultdata [ 256 ];
format ( vaultkey,63,"%s-Mod", szName );
format ( vaultdata,255,"%i#%i#", eXP [ id ], Level [ id ] );
nvault_get ( gFurienXP, vaultkey, vaultdata, 255 );
replace_all ( vaultdata, 255, "#", " " );
new playerxp [ 32 ], playerlevel [ 32 ];
parse ( vaultdata, playerxp, 31, playerlevel, 31 );
eXP [ id ] = str_to_num ( playerxp );
Level [ id ] = str_to_num ( playerlevel );
return 1;
}
public ShowHud ( id ) {
if ( is_user_alive ( id ) && get_user_team ( id ) == 1 ) {
if ( trainer [ id ] ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
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 ] );
}
if ( infinity_knife [ id ] ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
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 ] );
}
if ( super_knife [ id ] ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
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 ] );
}
if ( katana_knife [ id ] && HasPower [ id ] == 4 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
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 ] );
}
if ( double_katana_knife [ id ] && HasPower [ id ] == 4 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
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 ] );
}
if ( ignes_knife [ id ] && HasPower [ id ] == 5 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
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 ] );
}
if ( elf_knife [ id ] && HasPower [ id ] == 5 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
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 ] );
}
if ( vip_axe_knife [ id ] && HasPower [ id ] == 7 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.1 );
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 ] );
}
}
else if ( is_user_alive ( id ) && get_user_team ( id ) == 2 ) {
if ( druid [ id ] ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
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 ] );
}
if ( hunter [ id ] ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
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 ] );
}
if ( mage [ id ] ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
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 ] );
}
if ( rogue [ id ] && HasPower [ id ] == 6 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
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 ] );
}
if ( shaman [ id ] && HasPower [ id ] == 6 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
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 ] );
}
if ( thompson [ id ] && HasPower [ id ] == 8 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
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 ] );
}
if ( warrior [ id ] && HasPower [ id ] == 8 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
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 ] );
}
if ( deklowaz [ id ] && HasPower [ id ] == 7 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.80, 0, 6.0, 1.0 );
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 ] );
}
}
}
public RemoveStuff ( id ) {
remove_dragoncannon ( id );
g_had_qb [ id ] = 0;
dual_mp5 [ id ] = false;
k1ases_weapon [ id ] = false;
salamander [ id ] = false;
SalamanderLimit [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
elf_knife [ id ] = false;
ignes_knife [ id ] = false;
trainer [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
UserHaveM79 [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
flare [ id ] = true;
druid [ id ] = false;
strike_grenade [ id ] = false;
strike_grenade2 [ id ] = false;
strike_grenade3 [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
UserHaveQuad [ id ] = false;
UserHaveDragon [ id ] = false;
HasChose[id] = false;
HasPower[id] = 0;
HE_Cooldown[id] = 0;
GodMode_Cooldown[id] = 0;
GodMode_DurationCooldown[id] = 0;
Drop_Cooldown[id] = 0;
Freeze_Cooldown[id] = 0;
Drag_Cooldown[id] = 0;
Not_Cooldown[id] = false;
Teleport_Cooldown[id] = 0;
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHaveDualMp5 [ id ] = false;
UserHasChoosed [ id ] = false;
}
public client_putinserver ( id ) {
LoadData ( id );
LoadCredits ( id );
RemoveStuff ( id );
set_task ( 3.0, "ShowHud", id, _, _, "b" );
client_cmd ( id, "cl_forwardspeed 9999" );
client_cmd ( id, "cl_backspeed 9999" );
client_cmd ( id, "cl_sidespeed 9999" );
}
public client_disconnect ( id ) {
SaveData ( id );
SaveCredits ( id );
RemoveStuff ( id );
g_has_k1ases[id] = false
g_delay[id] = 0
g_ammoclaw[id] = 0
}
public client_connect(id) {
g_has_k1ases[id] = false
g_delay[id] = 0
g_ammoclaw[id] = 0
static sName[32];
get_user_name(id, sName, sizeof sName - 1);
static sChars[32];
get_pcvar_string(SymbolsName, sChars, sizeof sChars - 1);
for(new i = 0 ; i < strlen(sName) ; i++) {
for(new j = 0 ; j < strlen(sChars) ; j++) {
if(sName[i] == sChars[j]) {
server_cmd("kick #%d ^"Numele tau contine caractere nepermise.^"", get_user_userid(id));
break;
}
else {
LoadData ( id );
}
}
}
g_hasM79[id] = false
g_canShoot[id] = false
g_last_shot_time[id] = 0.0
grenade_count[id] = 0
hasOnHandM79[id] = false
remove_icon(id)
}
public plugin_cfg ( ) {
server_cmd("sv_maxspeed 99999999.0");
server_cmd("sv_airaccelerate 99999999.0");
}
public plugin_natives ( ) {
register_native ( "set_user_credits", "set_user_credits", 1 );
register_native ( "get_user_credits", "get_user_credits", 1 );
register_native ( "set_user_xp", "set_user_xp", 1 );
register_native ( "set_user_level", "set_user_level", 1 );
register_native ( "get_user_xp", "get_user_xp", 1 );
register_native ( "set_user_xp", "get_user_xp", 1 );
register_native("give_weapon_k1ases", "native_give_weapon_add", 1)
}
public plugin_precache ( ) {
precache_model(v_model); // salamander
precache_model(p_model); // salamander
precache_model(w_model); // salamander
precache_model(fire_spr_name); // salamander
precache_sound(fire_sound); // salamander
precache_sound("weapons/flamegun-1.wav"); // salamander
precache_sound("weapons/flamegun_clipin1.wav"); // salamander
precache_sound("weapons/flamegun_clipout1.wav"); // salamander
precache_sound("weapons/flamegun_clipout2.wav"); // salamander
precache_sound("weapons/flamegun_draw.wav"); // salamander
precache_model ( katana_knife_v_model );
precache_model ( double_katana_v_knife_model );
precache_model ( super_knife_v_model );
precache_model ( infinity_knife_v_model );
precache_model ( axe_knife_v_model );
precache_model ( ignes_knife_model );
precache_model ( elf_knife_model );
precache_model ( thompson_v_model );
precache_model ( uspx_v_model );
precache_model ( hunter_v_model );
precache_model ( mage_v_model );
precache_model ( rogue_v_model );
precache_model ( shaman_v_model );
precache_model ( warrior_v_model );
precache_model ( deklowaz_v_model );
precache_model ( trainer_v_model );
precache_model ( flare_v_model );
precache_model ( strike_grenade_v_model );
precache_model ( super_knife_shop_v_model );
precache_model ( super_knife_shop_v_model2 );
precache_model ( katana_knife_p_model );
precache_model ( double_katana_p_knife_model );
precache_model ( super_knife_p_model );
precache_model ( infinity_knife_p_model );
precache_model ( axe_knife_p_model );
precache_model ( strike_grenade_p_model );
precache_model ( super_knife_shop_p_model2 );
precache_model ( thompson_p_model );
precache_model ( uspx_p_model );
precache_model ( hunter_p_model );
precache_model ( mage_p_model );
precache_model ( rogue_p_model );
precache_model ( shaman_p_model );
precache_model ( warrior_p_model );
precache_model ( deklowaz_p_model );
precache_model ( trainer_p_model );
precache_model ( flare_w_model );
precache_model ( "models/player/furienxp/furienxp.mdl" );
precache_model ( "models/player/furienxp2/furienxp2.mdl" );
g_trail = precache_model ( "sprites/smoke.spr" );
g_FurienHealth = precache_model("sprites/exhealth/health_zombie.spr")
g_AntiFurienHealth = precache_model("sprites/exhealth/health_human.spr")
precache_sound(buy_FurienHealth)
precache_sound(buy_AntiFurienHealth)
// POWERS
precache_sound(DROP_HIT_SND);
DropSprite = precache_model("sprites/lgtning.spr");
DropSprite2 = precache_model("sprites/dropwpnexp.spr");
precache_sound(DRAG_HIT_SND);
precache_sound(DRAG_MISS_SND);
DragSprite = precache_model("sprites/zbeam4.spr");
new i;
for (i = 0; i < sizeof FROSTBREAK_SND; i++)
engfunc(EngFunc_PrecacheSound, FROSTBREAK_SND[i]);
for (i = 0; i < sizeof FROSTPLAYER_SND; i++)
engfunc(EngFunc_PrecacheSound, FROSTPLAYER_SND[i]);
FreezeSprite = engfunc(EngFunc_PrecacheModel, FreezeSprite2);
FreezeSprite3 = precache_model("sprites/laserbeam.spr");
TeleportSprite = precache_model( "sprites/shockwave.spr");
TeleportSprite2 = precache_model( "sprites/blueflare2.spr");
TeleportSprite3 = precache_model( "sprites/teleport_start.spr");
for (new i = 0; i < sizeof Model; i++)
precache_model(Model[i])
for (new i = 0; i < sizeof Model_Yellow; i++)
precache_model(Model_Yellow[i])
precache_model ( dual_mp5_v_model );
precache_model ( dual_mp5_p_model );
precache_model(k1ases_V_MODEL)
precache_model(k1ases_P_MODEL)
precache_model(k1ases_W_MODEL)
precache_sound("weapons/k1ar-1.wav")
precache_sound("weapons/k1a_clipin.wav")
precache_sound("weapons/k1a_clipout.wav")
precache_sound("weapons/k1a_draw.wav")
precache_sound(explode_sound)
m_iBlood[0] = precache_model("sprites/blood.spr")
m_iBlood[1] = precache_model("sprites/bloodspray.spr")
sprites_exp_index = precache_model(sprites_exp)
precache_model("sprites/640hud5.spr")
register_forward(FM_PrecacheEvent, "fwPrecacheEvent_Post", 1)
g_damage = precache_model("sprites/furien/icon_supplybox2.spr")
g_damages = precache_model("sprites/furien/zp_zbrespawn.spr")
g_blood = precache_model("sprites/blood.spr")
g_bloodspray = precache_model("sprites/bloodspray.spr")
precache_model(qb_v_model)
precache_model(qb_p_model)
precache_model(qb_w_model)
for(new i = 0; i < sizeof(qb_sound); i++)
precache_sound(qb_sound[i])
new hades
for(hades = 0; hades < sizeof(WeaponModel); hades++)
engfunc(EngFunc_PrecacheModel, WeaponModel[hades])
new ownage
for(ownage = 0; ownage < sizeof(WeaponSound); ownage++)
engfunc(EngFunc_PrecacheSound, WeaponSound[ownage])
engfunc(EngFunc_PrecacheModel, WeaponResource[0])
engfunc(EngFunc_PrecacheGeneric, WeaponResource[1])
engfunc(EngFunc_PrecacheModel, WeaponResource[2])
engfunc(EngFunc_PrecacheModel, WeaponResource[3])
g_smokepuff_id = engfunc(EngFunc_PrecacheModel, WeaponResource[4])
// Models
precache_model(m79_P_MODEL)
precache_model(m79_V_MODEL)
precache_model(m79_W_MODEL)
precache_model(m79_GRENADE_MODEL)
// Sounds
precache_sound(m79_GRENADE_SHOOT)
precache_sound(m79_GRENADE_CLIPIN)
precache_sound(m79_GRENADE_CLIPOUT)
precache_sound(m79_GRENADE_CLIPON)
precache_sound(m79_GRENADE_DRAW)
precache_sound("weapons/357_cock1.wav")
// Sprites
sTrail = precache_model(m79_GRENADE_TRAIL)
sExplo = precache_model(m79_GRENADE_EXPLOSION)
sSmoke = precache_model(m79_GRENADE_SMOKE)
// Bodyparts and blood
blood_drop = precache_model("sprites/blood.spr")
blood_spray = precache_model("sprites/bloodspray.spr")
mdl_gib_flesh = precache_model("models/Fleshgibs.mdl")
mdl_gib_head = precache_model("models/GIB_Skull.mdl")
mdl_gib_lung = precache_model("models/GIB_Lung.mdl")
mdl_gib_spine = precache_model("models/GIB_B_Bone.mdl")
// Sprites
precache_generic( "sprites/weapon_m79_sisa.txt" );
precache_generic( "sprites/640hud42.spr" );
precache_generic( "sprites/640hud42.spr" );
precache_generic( "sprites/640hud7x.spr" );
register_clcmd("weapon_m79_sisa", "Hook_Select")
}
public GameDesc( ) {
static gamename[32];
get_pcvar_string( amx_gamename, gamename, 31 );
forward_return( FMV_STRING, gamename );
return FMRES_SUPERCEDE;
}
public cmdHelp ( id ) {
show_motd ( id, "/addons/amxmodx/configs/ajutor.html" );
}
public cmdShowVipDetails ( id ) {
show_motd ( id, "/addons/amxmodx/configs/vip.html" );
}
public ShowMessages ( ) {
switch (random_num(1,6))
{
case 1:
{
ColorChat ( 0, GREEN, "%s Pentru detalii despre joc, scrieti in chat^4 /detalii^3 .^4", szPrefix );
}
case 2:
{
ColorChat ( 0, GREEN, "%s Daca nu va functioneaza puterea, scrieti in consola^4 bind v power^3 .^4", szPrefix );
}
case 3:
{
ColorChat ( 0, GREEN, "%s Pentru detalii despre VIP, scrieti in chat^4 /vip^3 .^4", szPrefix );
}
case 4:
{
ColorChat ( 0, GREEN, "%s Pentru a vedea vipii online, scrieti in chat^4 /vips^3 .^4", szPrefix );
}
case 5:
{
ColorChat ( 0, GREEN, "%s Va asteptam si pe forumul nostru,^4
http://www.kzh.ro^3 .^4", szPrefix );
}
case 6:
{
ColorChat ( 0, GREEN, "%s Daca descoperiti o eroare sau un bug, va rugam sa ne contactati .^4", szPrefix );
}
}
}
public set_user_credits ( id, credits ) {
PlayerCredits [ id ] = credits;
}
public get_user_credits ( id ) {
return PlayerCredits [ id ];
}
public set_user_level ( id, user_level ) {
Level [ id ] = user_level;
}
public get_user_level ( id ) {
return Level [ id ];
}
public set_user_xp ( id, xp ) {
eXP [ id ] = xp;
cmdRefreshXP2 ( id );
}
public get_user_xp ( id ) {
return eXP [ id ];
}
public round_end ( id ) {
remove_dragoncannon ( id );
dual_mp5 [ id ] = false;
k1ases_weapon [ id ] = false;
salamander [ id ] = false;
SalamanderLimit [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
vip_axe_knife [ id ] = false;
elf_knife [ id ] = false;
ignes_knife [ id ] = false;
trainer [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
druid [ id ] = false;
strike_grenade [ id ] = false;
strike_grenade2 [ id ] = false;
strike_grenade3 [ id ] = false;
HasPower[id] = 0;
Drop_Cooldown[id] = 0;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
new g_iMaxPlayers = get_maxplayers ( );
static Players;
for ( Players = 1 ; Players <= g_iMaxPlayers ; Players++ )
{
if (!is_user_alive ( Players ) )
continue;
strip_user_weapons ( Players );
set_pdata_int ( Players, 116, 0 );
give_item ( Players, "weapon_knife" );
}
}
public GiveBonus ( id ) {
new a [ 6 ];
get_time ( "%H:%M", a, 5 );
if ( equal ( a, "10:00" ) || equal ( a, "12:00" ) || equal ( a, "16:00" ) || equal ( a, "20:00" ) || equal ( a, "23:00" ) ) {
ColorChat ( 0, GREEN, "%s Este ora^4 bonusului^3, toti jucatorii au primit^4 5^5credite .", szPrefix );
set_user_credits ( id, get_user_credits ( id ) + 5 );
}
}
public round_start ( id ) {
new iPlayers [ 32 ];
new iNum;
get_players ( iPlayers, iNum );
for ( new i = 0; i < iNum; i++ )
{
g_iCount [ iPlayers [ i ] ] = 0;
g_Menu [ iPlayers [ i ] ] = 0;
g_had_qb [ iPlayers [ i ]] = 0;
g_CanUseHe[iPlayers[i]] = false;
}
dual_mp5 [ id ] = false;
k1ases_weapon [ id ] = false;
salamander [ id ] = false;
SalamanderLimit [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
elf_knife [ id ] = false;
ignes_knife [ id ] = false;
vip_axe_knife [ id ] = false;
trainer [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
druid [ id ] = false;
strike_grenade [ id ] = false;
strike_grenade2 [ id ] = false;
strike_grenade3 [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
HasPower[id] = 0;
Drop_Cooldown[id] = 0;
if ( get_user_team ( id ) == 2 ) {
give_item ( id, "weapon_smokegrenade" );
cs_set_user_bpammo ( id, CSW_SMOKEGRENADE, 2 );
flare [ id ] = true;
}
new ent = FM_NULLENT
static string_class[] = "classname"
while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, ClassName)))
set_pev(ent, pev_flags, FL_KILLME)
for(new id = 1; id < get_maxplayers();id++) {
HasSpeed[id] = false
HasTeleport[id] = false
}
}
public ham_PrimaryAttack_He ( iEnt ) {
new id = pev( iEnt, pev_owner );
if( g_CanUseHe [ id ] )
{
set_hudmessage( 0, 100, 200, -1.0, 0.35, 1, 0.01, 3.0, 1.0, 1.0 );
show_hudmessage( id, "Bomba a fost plantata, nu mai poti folosi HE-urile" );
return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}
public EventHLTV ( ) {
set_task ( 0.1, "GiveBonus" );
}
public native_give_weapon_add(id)
{
give_k1ases(id)
}
public fwPrecacheEvent_Post(type, const name[])
{
if (equal("events/mp5n.sc", name))
{
g_orig_event_k1ases = get_orig_retval()
return FMRES_HANDLED
}
return FMRES_IGNORED
}
public fw_TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], pentru, iDamageType)
{
if(!is_user_alive(iAttacker))
return;
new g_currentweapon = get_user_weapon(iAttacker)
if(g_currentweapon != CSW_MP5NAVY) return
if((g_currentweapon == CSW_MP5NAVY && !g_has_k1ases[iAttacker])) return
static Float:flEnd[3]
get_tr2(pentru, TR_vecEndPos, flEnd)
if(iEnt)
{
// Put decal on an entity
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_DECAL)
write_coord_f(flEnd[0])
write_coord_f(flEnd[1])
write_coord_f(flEnd[2])
write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
write_short(iEnt)
message_end()
}
else
{
// Put decal on "world" (a wall)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_WORLDDECAL)
write_coord_f(flEnd[0])
write_coord_f(flEnd[1])
write_coord_f(flEnd[2])
write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
message_end()
}
// Show sparcles
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_GUNSHOTDECAL)
write_coord_f(flEnd[0])
write_coord_f(flEnd[1])
write_coord_f(flEnd[2])
write_short(iAttacker)
write_byte(GUNSHOT_DECALS[random_num ( 0, sizeof GUNSHOT_DECALS -1 ) ] )
message_end()
}
public fwClientUserInfoChanged(id, buffer)
{
if (!is_user_connected(id))
return FMRES_IGNORED;
static name[32], val[32]
get_user_name(id, name, sizeof name - 1)
engfunc(EngFunc_InfoKeyValue, buffer, g_name, val, sizeof val - 1)
if (equal(val, name))
return FMRES_IGNORED;
engfunc(EngFunc_SetClientKeyValue, id, buffer, g_name, name)
console_print ( id, "%s", g_reason );
return FMRES_SUPERCEDE;
}
public SalamanderGiveItem(id, itemid)
{
if(itemid == g_salamander)
{
g_had_salamander[id] = true
is_reloading[id] = false
is_firing[id] = false
can_fire[id] = true
fm_give_item(id, "weapon_m249")
g_ammo[id] = 30
cs_set_user_bpammo ( id, CSW_M249, 20 );
}
}
public get_dragoncannon(id)
{
if(!is_user_alive(id))
return
drop_weapons(id, 1)
g_had_cannon[id] = 1
g_cannon_ammo[id] = get_pcvar_num(g_cvar_defaultammo)
fm_give_item(id, weapon_cannon)
}
public remove_dragoncannon(id)
{
if(!is_user_connected(id))
return
g_had_cannon[id] = 0
g_got_firsttime[id] = 0
g_cannon_ammo[id] = 0
remove_task(id+TASK_RESET_AMMO)
}
public hook_weapon(id) engclient_cmd(id, weapon_cannon)
public event_CurWeapon_dragon(id)
{
if(!is_user_alive(id))
return
if(get_user_weapon(id) == CSW_CANNON && g_had_cannon[id])
{
if(!g_got_firsttime[id])
{
static cannon_weapon
cannon_weapon = fm_find_ent_by_owner(-1, weapon_cannon, id)
if(pev_valid(cannon_weapon)) cs_set_weapon_ammo(cannon_weapon, 25)
g_got_firsttime[id] = 1
}
set_pev(id, pev_viewmodel2, WeaponModel[MODEL_V])
set_pev(id, pev_weaponmodel2, WeaponModel[MODEL_P])
if(g_old_weapon[id] != CSW_CANNON)
{
g_temp_reloadtime = get_pcvar_float(g_cvar_reloadtime)
set_weapon_anim(id, CANNON_ANIM_DRAW)
}
update_ammo(id)
}
g_old_weapon[id] = get_user_weapon(id)
}
public dragoncannon_shoothandle(id)
{
if(pev(id, pev_weaponanim) != CANNON_ANIM_IDLE)
return
if(get_gametime() - g_temp_reloadtime > g_lastshot[id])
{
dragoncannon_shootnow(id)
g_lastshot[id] = get_gametime()
}
}
public dragoncannon_shootnow(id)
{
if(g_cannon_ammo[id] == 1)
{
set_task(0.5, "set_weapon_outofammo", id+TASK_RESET_AMMO)
}
if(g_cannon_ammo[id] <= 0)
{
return
}
create_fake_attack(id)
g_cannon_ammo[id]--
set_weapon_anim(id, random_num(CANNON_ANIM_SHOOT1, CANNON_ANIM_SHOOT2))
emit_sound(id, CHAN_WEAPON, WeaponSound[0], 1.0, ATTN_NORM, 0, PITCH_NORM)
set_player_nextattack(id, CSW_CANNON, g_temp_reloadtime)
update_ammo(id)
make_fire_effect(id)
make_fire_smoke(id)
check_radius_damage(id)
}
public create_fake_attack(id)
{
static cannon_weapon
cannon_weapon = fm_find_ent_by_owner(-1, "weapon_knife", id)
if(pev_valid(cannon_weapon)) ExecuteHam(Ham_Weapon_PrimaryAttack, cannon_weapon)
}
public set_weapon_outofammo(id)
{
id -= TASK_RESET_AMMO
if(!is_user_alive(id))
return
if(get_user_weapon(id) != CSW_CANNON || !g_had_cannon[id])
return
set_weapon_anim(id, CANNON_ANIM_IDLE)
}
public make_fire_effect(id)
{
const MAX_FIRE = 10
static Float:Origin[MAX_FIRE][3]
// Stage 1
get_position(id, 30.0, 50.0, WEAPON_ATTACH_U, Origin[0])
get_position(id, 30.0, 40.0, WEAPON_ATTACH_U, Origin[1])
get_position(id, 30.0, -40.0, WEAPON_ATTACH_U, Origin[2])
get_position(id, 30.0, -50.0, WEAPON_ATTACH_U, Origin[2])
// Stage 2
get_position(id, 50.0, 30.0, WEAPON_ATTACH_U, Origin[3])
get_position(id, 50.0, 0.0, WEAPON_ATTACH_U, Origin[4])
get_position(id, 50.0, -30.0, WEAPON_ATTACH_U, Origin[5])
// Stage 3
get_position(id, 70.0, 20.0, WEAPON_ATTACH_U, Origin[3])
get_position(id, 70.0, -20.0, WEAPON_ATTACH_U, Origin[5])
// Stage 4
get_position(id, 90.0, 0.0, WEAPON_ATTACH_U, Origin[4])
for(new i = 0; i < MAX_FIRE; i++)
create_fire(id, Origin[i])
}
public create_fire(id, Float:Origin[3])
{
new iEnt = create_entity("env_sprite")
static Float:vfAngle[3], Float:MyOrigin[3], Float:TargetOrigin[3], Float:Velocity[3]
pev(id, pev_angles, vfAngle)
pev(id, pev_origin, MyOrigin)
vfAngle[2] = float(random(18) * 20)
// set info for ent
set_pev(iEnt, pev_movetype, MOVETYPE_PUSHSTEP)
set_pev(iEnt, pev_rendermode, kRenderTransAdd)
set_pev(iEnt, pev_renderamt, 250.0)
set_pev(iEnt, pev_fuser1, get_gametime() + 2.5) // time remove
set_pev(iEnt, pev_scale, 2.0)
set_pev(iEnt, pev_nextthink, halflife_time() + 0.05)
entity_set_string(iEnt, EV_SZ_classname, CANNONFIRE_CLASSNAME)
engfunc(EngFunc_SetModel, iEnt, WeaponResource[0])
set_pev(iEnt, pev_mins, Float:{-5.0, -5.0, -5.0})
set_pev(iEnt, pev_maxs, Float:{5.0, 5.0, 5.0})
set_pev(iEnt, pev_origin, Origin)
set_pev(iEnt, pev_gravity, 0.01)
set_pev(iEnt, pev_angles, vfAngle)
set_pev(iEnt, pev_solid, 1)
set_pev(iEnt, pev_owner, id)
set_pev(iEnt, pev_frame, 0.0)
// Set Velocity
get_position(id, 100.0, 0.0, -5.0, TargetOrigin)
get_speed_vector(MyOrigin, TargetOrigin, get_pcvar_float(g_cvar_firespeed), Velocity)
set_pev(iEnt, pev_velocity, Velocity)
}
public fw_Cannon_Think(iEnt)
{
if(!pev_valid(iEnt))
return
new Float:fFrame, Float:fNextThink
pev(iEnt, pev_frame, fFrame)
// effect exp
new iMoveType = pev(iEnt, pev_movetype)
if (iMoveType == MOVETYPE_NONE)
{
fNextThink = 0.0015
fFrame += 0.5
if (fFrame > 21.0)
{
engfunc(EngFunc_RemoveEntity, iEnt)
return
}
}
// effect normal
else
{
fNextThink = 0.045
fFrame += 0.5
fFrame = floatmin(21.0, fFrame)
}
set_pev(iEnt, pev_frame, fFrame)
set_pev(iEnt, pev_nextthink, halflife_time() + fNextThink)
// time remove
new Float:fTimeRemove
pev(iEnt, pev_fuser1, fTimeRemove)
if (get_gametime() >= fTimeRemove)
{
engfunc(EngFunc_RemoveEntity, iEnt)
return;
}
}
public fw_Cannon_Touch(ent, id)
{
if(!pev_valid(ent))
return
set_pev(ent, pev_movetype, MOVETYPE_NONE)
set_pev(ent, pev_solid, SOLID_NOT)
}
public make_fire_smoke(id)
{
static Float:Origin[3]
get_position(id, WEAPON_ATTACH_F, WEAPON_ATTACH_R, WEAPON_ATTACH_U, Origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_EXPLOSION)
engfunc(EngFunc_WriteCoord, Origin[0])
engfunc(EngFunc_WriteCoord, Origin[1])
engfunc(EngFunc_WriteCoord, Origin[2])
write_short(g_smokepuff_id)
write_byte(10)
write_byte(30)
write_byte(14)
message_end()
}
public update_ammo(id)
{
if(!is_user_alive(id))
return
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("CurWeapon"), _, id)
write_byte(1)
write_byte(CSW_CANNON)
write_byte(-1)
message_end()
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("AmmoX"), _, id)
write_byte(6)
write_byte(g_cannon_ammo[id])
message_end()
}
public check_radius_damage(id)
{
static Float:Origin[3]
for(new i = 0; i < get_maxplayers(); i++)
{
if(!is_user_alive(i))
continue
if(cs_get_user_team(id) == cs_get_user_team(i))
continue
if(id == i)
continue
pev(i, pev_origin, Origin)
if(!is_in_viewcone(id, Origin, 1))
continue
if(entity_range(id, i) >= get_pcvar_float(g_cvar_radiusdamage))
continue
ExecuteHamB(Ham_TakeDamage, i, 0, id, get_pcvar_float(g_cvar_damage), DMG_BURN)
}
}
public fw_UpdateClientData_Post_dc(id, sendweapons, cd_handle)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
if(get_user_weapon(id) != CSW_CANNON || !g_had_cannon[id])
return FMRES_IGNORED
set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001)
return FMRES_HANDLED
}
public fw_CmdStart_dc(id, uc_handle, seed)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
if(get_user_weapon(id) != CSW_CANNON || !g_had_cannon[id])
return FMRES_IGNORED
static CurButton
CurButton = get_uc(uc_handle, UC_Buttons)
if(CurButton & IN_ATTACK)
{
CurButton &= ~IN_ATTACK
set_uc(uc_handle, UC_Buttons, CurButton)
dragoncannon_shoothandle(id)
}
return FMRES_HANDLED
}
public fw_SetModel_dc(entity, model[])
{
if(!pev_valid(entity))
return FMRES_IGNORED
static szClassName[33]
pev(entity, pev_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED
static id
id = pev(entity, pev_owner)
if(equal(model, DEFAULT_W_MODEL))
{
static weapon
weapon = fm_find_ent_by_owner(-1, weapon_cannon, entity)
if(!pev_valid(weapon))
return FMRES_IGNORED
if(g_had_cannon[id])
{
set_pev(weapon, pev_impulse, WEAPON_SECRET_CODE)
set_pev(weapon, pev_ammo, g_cannon_ammo[id])
engfunc(EngFunc_SetModel, entity, WeaponModel[MODEL_W])
remove_dragoncannon(id)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public fw_Spawn_Post(id)
{
remove_dragoncannon(id)
}
public fw_AddToPlayer_Post(ent, id)
{
if(!pev_valid(ent))
return HAM_IGNORED
if(pev(ent, pev_impulse) == WEAPON_SECRET_CODE)
{
remove_dragoncannon(id)
g_had_cannon[id] = 1
g_got_firsttime[id] = 0
g_cannon_ammo[id] = pev(ent, pev_ammo)
}
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("WeaponList"), _, id)
write_string(g_had_cannon[id] == 1 ? "weapon_cannon" : "weapon_ump45")
write_byte(6)
write_byte(20)
write_byte(-1)
write_byte(-1)
write_byte(0)
write_byte(15)
write_byte(CSW_CANNON)
write_byte(0)
message_end()
return HAM_HANDLED
}
public fw_item_postframe(ent)
{
if(!is_valid_ent(ent))
return HAM_IGNORED
static id
id = pev(ent, pev_owner)
if(!is_user_alive(id) || !is_user_connected(id))
return HAM_IGNORED
if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
return HAM_IGNORED
if(!is_reloading[id])
{
static iAnim
iAnim = pev(id, pev_weaponanim)
if(iAnim == RELOAD_ANIM)
play_weapon_anim(id, IDLE_ANIM)
}
static salamander
salamander = fm_find_ent_by_class(-1, "weapon_m249")
set_pdata_int(salamander, 54, 0, 4)
return HAM_HANDLED
}
public fw_item_addtoplayer(ent, id)
{
if(!is_valid_ent(ent))
return HAM_IGNORED
if(entity_get_int(ent, EV_INT_impulse) == 701)
{
g_had_salamander[id] = true
g_ammo[id] = pev(ent, pev_iuser3)
entity_set_int(id, EV_INT_impulse, 0)
play_weapon_anim(id, DRAW_ANIM)
set_task(1.0, "make_wpn_canfire", id)
return HAM_HANDLED
}
return HAM_HANDLED
}
public Round_Restart ( ) {
g_FuriensWin = 0;
g_AntiFuriensWin = 0;
}
public UpdateHudScore ( ) {
set_dhudmessage ( 0, 100, 200, -1.0, 0.04, 0, 6.0, 10.1 );
show_dhudmessage ( 0, "[ FR ] - vs - [ AF ]" );
set_hudmessage ( 213, 0, 0, -1.0, 0.07, 0, 6.0, 10.1 );
show_hudmessage ( 0, "%d - %d", g_FuriensWin, g_AntiFuriensWin );
}
public check_lastinv(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_HANDLED
if(get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id])
{
set_task(0.5, "start_check_draw", id)
}
return PLUGIN_CONTINUE
}
public start_check_draw(id)
{
if(can_fire[id])
can_fire[id] = false
}
public event_curweapon(id)
{
if(is_user_alive(id) && get_user_weapon(id) == CSW_SALAMANDER && g_had_salamander[id] )
{
set_pev(id, pev_viewmodel2, v_model)
set_pev(id, pev_weaponmodel2, p_model)
}
}
public fw_weapon_deploy(ent)
{
static id
id = pev(ent, pev_owner)
if(!is_user_alive(id) || !is_user_connected(id) )
return HAM_IGNORED
if(!g_had_salamander[id])
return HAM_IGNORED
can_fire[id] = false
play_weapon_anim(id, DRAW_ANIM)
set_task(1.0, "make_wpn_canfire", id)
return HAM_HANDLED
}
public make_wpn_canfire(id)
{
can_fire[id] = true
}
public fw_weapon_reload(ent)
{
static id
id = pev(ent, pev_owner)
if(!is_user_alive(id) || !is_user_connected(id) )
return HAM_IGNORED
if(get_user_weapon(id) != CSW_SALAMANDER && !g_had_salamander[id])
return HAM_IGNORED
return HAM_SUPERCEDE
}
public client_PostThink(id)
{
if(is_user_alive(id) && is_user_connected(id))
{
if(g_had_salamander[id] && get_user_weapon(id) != CSW_SALAMANDER)
{
if(can_fire[id])
can_fire[id] = false
if(is_reloading[id])
{
is_reloading[id] = false
if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
}
} else if(g_had_salamander[id] && get_user_weapon(id) == CSW_SALAMANDER) {
static salamander
salamander = fm_get_user_weapon_entity(id, CSW_M249)
cs_set_weapon_ammo(salamander, g_ammo[id])
}
}
}
public fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED;
static szClassName[33]
entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED;
static iOwner
iOwner = entity_get_edict(entity, EV_ENT_owner)
if(equal(model, "models/w_m249.mdl"))
{
static iStoredAugID
iStoredAugID = find_ent_by_owner(-1, "weapon_m249", entity)
if(!is_valid_ent(iStoredAugID))
return FMRES_IGNORED;
if(g_had_salamander[iOwner])
{
entity_set_int(iStoredAugID, EV_INT_impulse, 701)
g_had_salamander[iOwner] = false
set_pev(iStoredAugID, pev_iuser3, g_ammo[iOwner])
entity_set_model(entity, w_model)
return FMRES_SUPERCEDE;
}
}
return FMRES_IGNORED;
}
public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
if(!is_user_alive(id) || !is_user_connected(id) )
return FMRES_IGNORED
if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
return FMRES_IGNORED
set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)
return FMRES_HANDLED
}
public fw_cmdstart(id, uc_handle, seed)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
if(get_user_weapon(id) != CSW_SALAMANDER || !g_had_salamander[id])
return FMRES_IGNORED
static Button
Button = get_uc(uc_handle, UC_Buttons)
if(Button & IN_ATTACK)
{
if((get_gametime() - get_pcvar_float(cvar_fire_delay) > g_last_fire[id]))
{
if(can_fire[id] && !is_reloading[id])
{
if(g_ammo[id] > 0)
{
if(pev(id, pev_weaponanim) != SHOOT_ANIM)
play_weapon_anim(id, SHOOT_ANIM)
if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
is_firing[id] = true
throw_fire(id)
emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
g_ammo[id]--
}
}
g_last_fire[id] = get_gametime()
}
} else {
if(is_firing[id])
{
if(!task_exists(id+TASK_FIRE))
{
set_task(0.1, "stop_fire", id+TASK_FIRE)
emit_sound(id, CHAN_WEAPON, "weapons/flamegun-2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
}
}
}
if(Button & IN_RELOAD)
{
if(!is_reloading[id] && !is_firing[id])
{
static curammo, require_ammo, bpammo
curammo = g_ammo[id]
bpammo = cs_get_user_bpammo(id, CSW_SALAMANDER)
require_ammo = get_pcvar_num(cvar_max_clip) - curammo
if(bpammo > require_ammo)
{
g_reload_ammo[id] = require_ammo
} else {
g_reload_ammo[id] = bpammo
}
if(g_ammo[id] < get_pcvar_num(cvar_max_clip) && bpammo > 0)
{
is_reloading[id] = true
play_weapon_anim(id, RELOAD_ANIM)
set_task(5.0, "finish_reload", id+TASK_RELOAD)
}
}
}
Button &= ~IN_ATTACK
set_uc(uc_handle, UC_Buttons, Button)
Button &= ~IN_RELOAD
set_uc(uc_handle, UC_Buttons, Button)
return FMRES_HANDLED
}
public ham_player_kill(victim, attacker, corpse, args[])
{
if ( get_user_team ( victim ) == 1 ) {
new vVictimOrigin[3], vAttackerorigin[3];
get_user_origin( victim, vVictimOrigin );
get_user_origin( attacker, vAttackerorigin );
switch (random_num(0, 2))
{
case 0:
{
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},attacker)
write_byte(TE_SPRITETRAIL)
write_coord(vAttackerorigin[0])
write_coord(vAttackerorigin[1])
write_coord(vAttackerorigin[2])
write_coord(vVictimOrigin[0])
write_coord(vVictimOrigin[1])
write_coord(vVictimOrigin[2])
write_short(g_damage)
write_byte(5)
write_byte(15)
write_byte(3)
write_byte(2)
write_byte(6)
message_end()
}
case 1:
{
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},attacker)
write_byte(TE_SPRITETRAIL)
write_coord(vAttackerorigin[0])
write_coord(vAttackerorigin[1])
write_coord(vAttackerorigin[2])
write_coord(vVictimOrigin[0])
write_coord(vVictimOrigin[1])
write_coord(vVictimOrigin[2])
write_short(g_damages)
write_byte(5)
write_byte(15)
write_byte(3)
write_byte(2)
write_byte(6)
message_end()
}
}
}
}
public fw_CmdStart(id, uc_handle, seed)
{
if(id > 32)
return PLUGIN_HANDLED
if(!is_user_alive(id) )
return PLUGIN_HANDLED
if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !(pev(id, pev_oldbuttons) & IN_ATTACK2))
{
new szClip, szAmmo
new szWeapID = get_user_weapon(id, szClip, szAmmo)
if(szWeapID == CSW_MP5NAVY && g_has_k1ases[id])
{
weapon_ability(id)
}
}
return PLUGIN_HANDLED
}
public weapon_ability(id)
{
if(!is_user_alive(id) || g_ammoclaw[id] <= 0 || g_delay[id])
return;
set_pdata_float(id, m_flNextAttack, 1.0, PLAYER_LINUX_XTRA_OFF)
UTIL_PlayWeaponAnimation(id, 6)
new aimOrigin[3]
get_user_origin(id, aimOrigin, 3)
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION); // TE_EXPLOSION
write_coord(aimOrigin[0]); // origin x
write_coord(aimOrigin[1]); // origin y
write_coord(aimOrigin[2]); // origin z
write_short(sprites_exp_index); // sprites
write_byte(40); // scale in 0.1's
write_byte(30); // framerate
write_byte(14); // flags
message_end(); // message end
new Float:aimOrigin2[3]
static iVictim
iVictim = -1
aimOrigin2[0] = float(aimOrigin[0])
aimOrigin2[1] = float(aimOrigin[1])
aimOrigin2[2] = float(aimOrigin[2])
while((iVictim = find_ent_in_sphere(iVictim, aimOrigin2, get_pcvar_float(cvar_rad))) != 0)
{
// Non-player entity
if(is_user_connected(iVictim))
{
if(is_user_alive(iVictim)) radius_damage1(id,iVictim)
}
}
g_ammoclaw[id] -= 1
g_delay[id] = 1
set_task(float(get_pcvar_num(cvar_k1ases_delay)),"can_use",id)
client_print(id,print_center,"[Claw Ammo: %d]",g_ammoclaw[id])
emit_sound(id, CHAN_WEAPON,explode_sound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
public radius_damage1(iAttacker, iVictim)
{
ExecuteHamB(Ham_TakeDamage, iVictim , iAttacker , iAttacker, get_pcvar_float(cvar_k1ases_claw), DMG_BULLET);
}
public can_use(id)
{
g_delay[id] = 0
}
public fw_SetModel_k1asus(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED;
static szClassName[33]
entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED;
static iOwner
iOwner = entity_get_edict(entity, EV_ENT_owner)
if(equal(model, "models/w_mp5.mdl"))
{
static iStoredSVDID
iStoredSVDID = find_ent_by_owner(ENG_NULLENT, "weapon_mp5navy", entity)
if(!is_valid_ent(iStoredSVDID))
return FMRES_IGNORED;
if(g_has_k1ases[iOwner])
{
entity_set_int(iStoredSVDID, EV_INT_WEAPONKEY, k1ases_WEAPONKEY)
g_has_k1ases[iOwner] = false
g_delay[iOwner] = 0
entity_set_model(entity, k1ases_W_MODEL)
return FMRES_SUPERCEDE;
}
}
return FMRES_IGNORED;
}
public give_k1ases(id)
{
drop_weapons(id, 1);
oldweap[id] = CSW_KNIFE
new iWep2 = give_item(id,"weapon_mp5navy")
if( iWep2 > 0 )
{
cs_set_weapon_ammo(iWep2, get_pcvar_num(cvar_clip_k1ases))
cs_set_user_bpammo (id, CSW_MP5NAVY, get_pcvar_num(cvar_k1ases_ammo))
}
UTIL_PlayWeaponAnimation(id, 2)
set_pdata_float(id, m_flNextAttack, 1.5, PLAYER_LINUX_XTRA_OFF)
g_has_k1ases[id] = true;
g_ammoclaw[id] = get_pcvar_num(cvar_k1asesammo )
client_print(id,print_center,"[Claw Ammo: %d]",g_ammoclaw[id])
}
public fw_k1ases_AddToPlayer(k1ases, id)
{
if(!is_valid_ent(k1ases) || !is_user_connected(id))
return HAM_IGNORED;
if(entity_get_int(k1ases, EV_INT_WEAPONKEY) == k1ases_WEAPONKEY)
{
g_has_k1ases[id] = true
entity_set_int(k1ases, EV_INT_WEAPONKEY, 0)
return HAM_HANDLED;
}
return HAM_IGNORED;
}
public fw_UseStationary_Post(entity, caller, activator, use_type)
{
if (use_type == USE_STOPPED && is_user_connected(caller))
replace_weapon_models(caller, get_user_weapon(caller))
}
public fw_Item_Deploy_Post(weapon_ent)
{
static owner
owner = fm_cs_get_weapon_ent_owner(weapon_ent)
static weaponid
weaponid = cs_get_weapon_id(weapon_ent)
replace_weapon_models(owner, weaponid)
}
public CurrentWeapon(id)
{
replace_weapon_models(id, read_data(2))
}
replace_weapon_models(id, weaponid) {
switch (weaponid)
{
case CSW_MP5NAVY:
{
if(g_has_k1ases[id])
{
set_pev(id, pev_viewmodel2, k1ases_V_MODEL)
set_pev(id, pev_weaponmodel2, k1ases_P_MODEL)
if(oldweap[id] != CSW_MP5NAVY)
{
UTIL_PlayWeaponAnimation(id, 2)
set_pdata_float(id, m_flNextAttack, 1.5, PLAYER_LINUX_XTRA_OFF)
}
}
}
}
oldweap[id] = weaponid
}
public fw_UpdateClientData_Post_k1asus(Player, SendWeapons, CD_Handle) {
if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_MP5NAVY) || !g_has_k1ases[Player])
return FMRES_IGNORED
set_cd(CD_Handle, CD_flNextAttack, halflife_time () + 0.001)
return FMRES_HANDLED
}
public fw_k1ases_PrimaryAttack(Weapon)
{
new Player = get_pdata_cbase(Weapon, 41, 4)
if (!g_has_k1ases[Player])
return;
pev(Player,pev_punchangle,cl_pushangle_k1asus[Player])
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}
public fwPlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:angles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2)
{
if ((eventid != g_orig_event_k1ases))
return FMRES_IGNORED
if (!(1 <= invoker <= g_MaxPlayers))
return FMRES_IGNORED
playback_event(flags | FEV_HOSTONLY, invoker, eventid, delay, origin, angles, fparam1, fparam2, iParam1, iParam2, bParam1, bParam2)
return FMRES_SUPERCEDE
}
public fw_k1ases_PrimaryAttack_Post(Weapon)
{
new Player = get_pdata_cbase(Weapon, 41, 4)
new szClip, szAmmo
get_user_weapon(Player, szClip, szAmmo)
if(Player > 0 && Player < 33)
{
//if(!g_has_k1ases[Player])
//{
//if(szClip > 0) emit_sound(Player, CHAN_WEAPON, "weapons/famas-1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
//}
if(g_has_k1ases[Player])
{
new Float:push[3]
pev(Player,pev_punchangle,push)
xs_vec_sub(push,cl_pushangle_k1asus[Player],push)
xs_vec_mul_scalar(push,get_pcvar_float(cvar_recoil_k1ases),push)
xs_vec_add(push,cl_pushangle_k1asus[Player],push)
set_pev(Player,pev_punchangle,push)
if (!g_clip_ammo[Player])
return
emit_sound(Player, CHAN_WEAPON, Fire_Sounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
UTIL_PlayWeaponAnimation(Player, 3)
set_pdata_float(Player, m_flNextAttack, get_pcvar_float(cvar_k1ases_fire), PLAYER_LINUX_XTRA_OFF)
}
}
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if (victim != attacker && is_user_connected(attacker))
{
if(get_user_weapon(attacker) == CSW_MP5NAVY)
{
if(g_has_k1ases[attacker])
SetHamParamFloat(4, damage * get_pcvar_float(cvar_dmg_k1ases))
}
}
}
public message_DeathMsg(msg_id, msg_dest, id)
{
static szTruncatedWeapon[33], iAttacker, iVictim
get_msg_arg_string(4, szTruncatedWeapon, charsmax(szTruncatedWeapon))
iAttacker = get_msg_arg_int(1)
iVictim = get_msg_arg_int(2)
if(!is_user_connected(iAttacker) || iAttacker == iVictim)
return PLUGIN_CONTINUE
if(equal(szTruncatedWeapon, "famas") && get_user_weapon(iAttacker) == CSW_MP5NAVY)
{
if(g_has_k1ases[iAttacker])
set_msg_arg_string(4, "famas")
}
return PLUGIN_CONTINUE
}
public k1ases__ItemPostFrame(weapon_entity) {
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED;
if (!g_has_k1ases[id])
return HAM_IGNORED;
new Float:flNextAttack = get_pdata_float(id, m_flNextAttack, PLAYER_LINUX_XTRA_OFF)
new iBpAmmo = cs_get_user_bpammo(id, CSW_MP5NAVY);
new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
new fInReload = get_pdata_int(weapon_entity, m_fInReload, WEAP_LINUX_XTRA_OFF)
if( fInReload && flNextAttack <= 0.0 )
{
new j = min(get_pcvar_num(cvar_clip_k1ases) - iClip, iBpAmmo)
set_pdata_int(weapon_entity, m_iClip, iClip + j, WEAP_LINUX_XTRA_OFF)
cs_set_user_bpammo(id, CSW_MP5NAVY, iBpAmmo-j);
set_pdata_int(weapon_entity, m_fInReload, 0, WEAP_LINUX_XTRA_OFF)
fInReload = 0
}
return HAM_IGNORED;
}
public k1ases__Reload(weapon_entity) {
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED;
if (!g_has_k1ases[id])
return HAM_IGNORED;
g_k1ases_TmpClip[id] = -1;
new iBpAmmo = cs_get_user_bpammo(id, CSW_MP5NAVY);
new iClip = get_pdata_int(weapon_entity, m_iClip, WEAP_LINUX_XTRA_OFF)
if (iBpAmmo <= 0)
return HAM_SUPERCEDE;
if (iClip >= get_pcvar_num(cvar_clip_k1ases))
return HAM_SUPERCEDE;
g_k1ases_TmpClip[id] = iClip;
return HAM_IGNORED;
}
public k1ases__Reload_Post(weapon_entity) {
new id = pev(weapon_entity, pev_owner)
if (!is_user_connected(id))
return HAM_IGNORED;
if (!g_has_k1ases[id])
return HAM_IGNORED;
if (g_k1ases_TmpClip[id] == -1)
return HAM_IGNORED;
set_pdata_int(weapon_entity, m_iClip, g_k1ases_TmpClip[id], WEAP_LINUX_XTRA_OFF)
set_pdata_float(weapon_entity, m_flTimeWeaponIdle, k1ases_RELOAD_TIME, WEAP_LINUX_XTRA_OFF)
set_pdata_float(id, m_flNextAttack, k1ases_RELOAD_TIME, PLAYER_LINUX_XTRA_OFF)
set_pdata_int(weapon_entity, m_fInReload, 1, WEAP_LINUX_XTRA_OFF)
// relaod animation
UTIL_PlayWeaponAnimation(id, 1)
return HAM_IGNORED;
}
public finish_reload(id)
{
id -= TASK_RELOAD
g_ammo[id] += g_reload_ammo[id]
cs_set_user_bpammo(id, CSW_SALAMANDER, cs_get_user_bpammo(id, CSW_SALAMANDER) - g_reload_ammo[id])
is_reloading[id] = false
}
public stop_fire(id)
{
id -= TASK_FIRE
is_firing[id] = false
if(pev(id, pev_weaponanim) != SHOOT_END_ANIM)
play_weapon_anim(id, SHOOT_END_ANIM)
}
public throw_fire(id)
{
new iEnt = create_entity("env_sprite")
new Float:vfVelocity[3]
velocity_by_aim(id, 500, vfVelocity)
xs_vec_mul_scalar(vfVelocity, 0.4, vfVelocity)
// add velocity of Owner for ent
new Float:fOwnerVel[3], Float:vfAttack[3], Float:vfAngle[3]
pev(id, pev_angles, vfAngle)
//pev(id, pev_origin, vfAttack)
get_weapon_attackment(id, vfAttack, 20.0)
vfAttack[2] -= 7.0
//vfAttack[1] += 7.0
pev(id, pev_velocity, fOwnerVel)
fOwnerVel[2] = 0.0
xs_vec_add(vfVelocity, fOwnerVel, vfVelocity)
// set info for ent
set_pev(iEnt, pev_movetype, MOVETYPE_FLY)
set_pev(iEnt, pev_rendermode, kRenderTransAdd)
set_pev(iEnt, pev_renderamt, 150.0)
set_pev(iEnt, PEV_ENT_TIME, get_gametime() + 1.5) // time remove
set_pev(iEnt, pev_scale, 0.2)
set_pev(iEnt, pev_nextthink, halflife_time() + 0.05)
set_pev(iEnt, pev_classname, fire_classname)
engfunc(EngFunc_SetModel, iEnt, fire_spr_name)
set_pev(iEnt, pev_mins, Float:{-1.0, -1.0, -1.0})
set_pev(iEnt, pev_maxs, Float:{1.0, 1.0, 1.0})
set_pev(iEnt, pev_origin, vfAttack)
set_pev(iEnt, pev_gravity, 0.01)
set_pev(iEnt, pev_velocity, vfVelocity)
vfAngle[1] += 30.0
set_pev(iEnt, pev_angles, vfAngle)
set_pev(iEnt, pev_solid, SOLID_BBOX)
set_pev(iEnt, pev_owner, id)
set_pev(iEnt, pev_iuser2, 1)
}
public fw_think(iEnt)
{
if ( !pev_valid(iEnt) ) return;
new Float:fFrame, Float:fScale, Float:fNextThink
pev(iEnt, pev_frame, fFrame)
pev(iEnt, pev_scale, fScale)
// effect exp
new iMoveType = pev(iEnt, pev_movetype)
if (iMoveType == MOVETYPE_NONE)
{
fNextThink = 0.015
fFrame += 1.0
if (fFrame > 21.0)
{
engfunc(EngFunc_RemoveEntity, iEnt)
return
}
}
// effect normal
else
{
fNextThink = 0.045
fFrame += 1.0
fFrame = floatmin(21.0, fFrame)
}
fScale = (entity_range(iEnt, pev(iEnt, pev_owner)) / 500) * 3.0
set_pev(iEnt, pev_frame, fFrame)
set_pev(iEnt, pev_scale, fScale)
set_pev(iEnt, pev_nextthink, halflife_time() + fNextThink)
// time remove
new Float:fTimeRemove
pev(iEnt, PEV_ENT_TIME, fTimeRemove)
if (get_gametime() >= fTimeRemove)
{
engfunc(EngFunc_RemoveEntity, iEnt)
return;
}
}
public fw_touch(ent, id)
{
set_pev(ent, pev_movetype, MOVETYPE_NONE)
set_pev(ent, pev_solid, SOLID_NOT)
if(!is_valid_ent(id))
return FMRES_IGNORED
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
if(pev(ent, pev_iuser2) == 1)
{
set_pev(ent, pev_iuser2, 0)
static attacker, ent_kill
attacker = pev(ent, pev_owner)
ent_kill = fm_get_user_weapon_entity(id, CSW_KNIFE)
ExecuteHam(Ham_TakeDamage, id, ent_kill, attacker, random_float(get_pcvar_float(cvar_dmgrd_start), get_pcvar_float(cvar_dmgrd_end)), DMG_BULLET)
}
return FMRES_HANDLED
}
public Hook_Select(id)
{
engclient_cmd(id, "weapon_p228")
return PLUGIN_HANDLED
}
public dropcmd(id) {
if(g_hasM79[id] && hasOnHandM79[id]) {
new Float:Aim[3],Float:origin[3]
VelocityByAim(id, 64, Aim)
entity_get_vector(id,EV_VEC_origin,origin)
origin[0] += Aim[0]
origin[1] += Aim[1]
new m79 = create_entity("info_target")
entity_set_string(m79,EV_SZ_classname,"m79")
entity_set_model(m79,m79_W_MODEL)
entity_set_size(m79,Float:{-2.0,-2.0,-2.0},Float:{5.0,5.0,5.0})
entity_set_int(m79,EV_INT_solid,1)
entity_set_int(m79,EV_INT_movetype,6)
entity_set_int(m79, EV_INT_iuser1, grenade_count[id])
entity_set_vector(m79,EV_VEC_origin,origin)
g_hasM79[id] = false
g_canShoot[id] = false
grenade_count[id] = false
hasOnHandM79[id] = false
remowegun(id)
remove_icon(id)
set_task(0.15,"hud_clear",id)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
// remove gun and save all guns
public remowegun(id) {
new wpnList[32]
new number
get_user_weapons(id,wpnList,number)
for (new i = 0;i < number ;i++) {
if (wpnList[i] == CSW_P228) {
fm_strip_user_gun(id, wpnList[i])
}
}
}
//play anim
public playanim(player,anim)
{
set_pev(player, pev_weaponanim, anim)
message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, player)
write_byte(anim)
write_byte(pev(player, pev_body))
message_end()
}
// Current weapon player is holding
public Event_CurrentWeapon_m79(id)
{
if(!is_user_connected(id))
return
// Read weapon ID
new weaponID = read_data(2)
if (weaponID == CSW_P228)
{
if (g_hasM79[id])
{
message_begin(MSG_ONE, get_user_msgid("CurWeapon"), {0,0,0}, id)
write_byte(1)
write_byte(CSW_KNIFE)
write_byte(0)
message_end()
hasOnHandM79[id] = true
remove_task(id+TASK_FRSTSHT)
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string("item_battery"); // sprite name
write_byte(210)
write_byte(105)
write_byte(30)
message_end()
set_task(0.1, "hud_init", id+TASK_HUDAMMO)
if(!draw_wpn[id])
{
playanim(id, anim_draw)
emit_sound(id, CHAN_WEAPON, m79_GRENADE_DRAW, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
// View model
entity_set_string(id, EV_SZ_viewmodel, m79_V_MODEL)
// Player model
entity_set_string(id, EV_SZ_weaponmodel, m79_P_MODEL)
canfire[id] = false
draw_wpn[id] = true
set_task(1.6,"delayshottsk", id+TASK_FRSTSHT)
}
else if(get_gametime() - g_last_shot_time[id] > delayshot) playanim(id, anim_idle)
}
else
{
// View model
entity_set_string(id, EV_SZ_viewmodel, "models/v_p228.mdl")
// Player model
entity_set_string(id, EV_SZ_weaponmodel, "models/p_p228.mdl")
hasOnHandM79[id] = false
remove_icon(id)
set_task(0.15,"hud_clear",id)
}
}
else
{
draw_wpn[id] = false
hasOnHandM79[id] = false
remove_icon(id)
set_task(0.15,"hud_clear",id)
}
}
public fw_AddToPlayer_m79( iEnt, Player )
{
if( pev_valid( iEnt ) && is_user_connected( Player ) )
{
if(g_hasM79[Player])
Sprite(Player)
}
}
public remove_icon(id)
{
if(!is_user_connected(id))
return
message_begin(MSG_ONE,get_user_msgid("StatusIcon"),{0,0,0},id)
write_byte(0)
write_string("item_battery") // sprite name
message_end()
return
}
public delayshottsk(taskid){
canfire[ID_SHT] = true
}
// New round started
public Event_NewRound(id) {
for (new i = 0; i < get_maxplayers(); i++) {
g_hasM79[i] = false
}
m79 = 0
draw_wpn[id] = false
Event_CurrentWeapon_m79(id)
}
public Sprite(id) {
message_begin(MSG_ONE, gmsgWeaponList, {0,0,0}, id)
write_string("weapon_m79_sisa")
write_byte(9)
write_byte(52)
write_byte(-1)
write_byte(-1)
write_byte(1)
write_byte(3)
write_byte(1)
write_byte(0)
message_end()
}
public event_start_m79()
{
m79 = 0
remove_m79()
}
public remove_m79() {
new nextitem = find_ent_by_class(-1, "m79")
while ((nextitem = find_ent_by_class(-1, "m79")) != 0) {
remove_entity(nextitem)
}
return PLUGIN_CONTINUE
}
// Player killed
public fw_PlayerKilled_m79(victim, attacker, shouldgib) {
if (g_hasM79[victim])
{
// Reset all
g_hasM79[victim] = false
g_canShoot[victim] = false
g_FireM79[victim] = false
grenade_count[victim] = 0
// Remove HUD
remove_task(victim+TASK_HUDAMMO)
remowegun(victim)
remove_icon(victim)
}
}
//give wpn
public give_weapon(id, ammo){
g_hasM79[id] = true
g_canShoot[id] = true
g_FireM79[id] = false
give_item(id,"weapon_p228")
if(ammo == -1) grenade_count[id] = 10
else grenade_count[id] = ammo
set_task(0.1, "hud_init", id+TASK_HUDAMMO)
}
// Command start
public fw_CmdStart_m79(id, uc_handle, seed) {
// Don't have our weapon
if (!hasOnHandM79[id] || !is_user_alive(id)){
g_FireM79[id] = false
return FMRES_IGNORED
}
// Get buttons
new buttons = get_uc(uc_handle, UC_Buttons)
// Attack1 button pressed
if(buttons & IN_ATTACK)
{
g_FireM79[id] = true
// Remove attack button from their button mask
buttons &= ~IN_ATTACK
set_uc(uc_handle, UC_Buttons, buttons)
}
else
g_FireM79[id] = false
return FMRES_HANDLED
}
// Player think after
public fw_PlayerPostThink_m79(id)
{
// Don't have our weapon
if (!g_hasM79[id])
return FMRES_IGNORED
// ignore dead
if (!is_user_alive(id))
return FMRES_IGNORED
// Ignore zombies/nemesis
// If player is firing
if (g_FireM79[id] && hasOnHandM79[id])
{
// Grenades are more or equal to 1
if (grenade_count[id] >= 1)
{
// Player can shoot
if (get_gametime() - g_last_shot_time[id] > delayshot && canfire[id])
{
// Fire!!!
FireGrenade(id)
// Decrease nade count
grenade_count[id]--
// Without this HUD is not updating correctly
set_task(0.1, "hud_init", id+TASK_HUDAMMO)
// Remember last shot time
g_last_shot_time[id] = get_gametime()
}
}
else
{
// Don't have nades
client_print(id, print_center, "У вас больше нет гранат!")
}
}
return FMRES_IGNORED
}
//block anim standart wpn
public fw_UpdateClientData_Post_m79(id, sendweapons, cd_handle) {
// Don't have our weapon
if (!hasOnHandM79[id] || !is_user_alive(id)) return FMRES_IGNORED
// Block default sounds
if (hasOnHandM79[id] && g_hasM79[id] && g_canShoot[id]) set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001 );
return FMRES_HANDLED
}
// Fire gremade
public FireGrenade(id) {
// Set animation
if(grenade_count[id]>1){
playanim(id, anim_shot1)
set_task(0.4,"reloadsnd",id)
set_task(1.6,"reloadin",id)
set_task(2.3,"reloadon",id)
} else {
playanim(id, anim_shot2)
}
// Get origin. angle and velocity
new Float:fAngle[3], Float:fVelocity[3]
pev(id, pev_v_angle, fAngle)
// Create ent
new grenade = create_entity("info_target")
// Not grenade
if (!grenade) return PLUGIN_HANDLED
// Classname
entity_set_string(grenade, EV_SZ_classname, "m79_grenade")
// Model
entity_set_model(grenade, m79_GRENADE_MODEL)
new Float:vOrigin[3],Float:vUp[3]
pev(id, pev_origin, vOrigin)
global_get(glb_v_up, vUp)
new up = 17
vOrigin[0] = vOrigin[0] + vUp[0] * up
vOrigin[1] = vOrigin[1] + vUp[1] * up
vOrigin[2] = vOrigin[2] + vUp[2] * up
// Origin
entity_set_origin(grenade, vOrigin)
// Angles
entity_set_vector(grenade, EV_VEC_angles, fAngle)
// Size
new Float:MinBox[3] = {-1.0, -1.0, -1.0}
new Float:MaxBox[3] = {1.0, 1.0, 1.0}
entity_set_vector(grenade, EV_VEC_mins, MinBox)
entity_set_vector(grenade, EV_VEC_maxs, MaxBox)
// Interaction
entity_set_int(grenade, EV_INT_solid, SOLID_SLIDEBOX)
// Movetype
entity_set_int(grenade, EV_INT_movetype, MOVETYPE_TOSS)
// Owner
entity_set_edict(grenade, EV_ENT_owner, id)
// Effects
entity_set_int(grenade, EV_INT_effects, EF_BRIGHTLIGHT)
// Velocity
VelocityByAim(id, 1500, fVelocity)
entity_set_vector(grenade, EV_VEC_velocity, fVelocity)
// Launch sound
emit_sound(grenade, CHAN_WEAPON, m79_GRENADE_SHOOT, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // Temporary entity ID
write_short(grenade) // Entity
write_short(sTrail) // Sprite index
write_byte(3) // Life
write_byte(1) // Line width
write_byte(255) // Red
write_byte(255) // Green
write_byte(255) // Blue
write_byte(255) // Alpha
message_end()
return PLUGIN_CONTINUE
}
public reloadsnd(id){
emit_sound(id, CHAN_WEAPON, m79_GRENADE_CLIPOUT, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
public reloadin(id){
emit_sound(id, CHAN_WEAPON, m79_GRENADE_CLIPIN, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
public reloadon(id){
emit_sound(id, CHAN_WEAPON, m79_GRENADE_CLIPON, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}
// We hit something!!!
public pfn_touch(pentru, ptd) {
// If ent is valid
if (pev_valid(pentru))
{
// Get classnames
static classname[32], classnameptd[32]
pev(pentru, pev_classname, classname, 31)
// Our ent
if(equal(classname, "m79_grenade"))
{
// Get it's origin
new Float:originF[3]
pev(pentru, pev_origin, originF)
// Draw explosion
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_EXPLOSION) // Temporary entity ID
engfunc(EngFunc_WriteCoord, originF[0]) // engfunc because float
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2])
write_short(sExplo) // Sprite index
write_byte(50) // Scale
write_byte(15) // Framerate
write_byte(0) // Flags
message_end()
// Draw smoke
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_SMOKE) // Temporary entity IF
engfunc(EngFunc_WriteCoord, originF[0]) // Pos X
engfunc(EngFunc_WriteCoord, originF[1]) // Pos Y
engfunc(EngFunc_WriteCoord, originF[2]) // Pos Z
write_short(sSmoke) // Sprite index
write_byte(75) // Scale
write_byte(15) // Framerate
message_end()
// Get owner
new owner = pev(pentru, pev_owner)
new Max_Damage = get_pcvar_num(cvar_granade_max_damage)
new Damage_Radius = get_pcvar_num(cvar_granade_damage_radius)
// Loop through all players
for(new i = 1; i < get_maxplayers(); i++)
{
// Alive...
if (is_user_alive(i) == 1 && is_user_connected(owner))
{
// A zombie/nemesis
if (get_user_team ( i ) == 1)
{
// Get victims origin and distance
new VictimOrigin[3], Distance , origin[3]
get_user_origin(i, VictimOrigin)
// Get distance between victim and epicenter
origin[0] = floatround(originF[0])
origin[1] = floatround(originF[1])
origin[2] = floatround(originF[2])
Distance = get_distance(VictimOrigin, origin)
if (Distance <= Damage_Radius)
{
// Start screen shake
message_begin(MSG_ONE, g_msgScreenShake, {0,0,0}, i)
write_short(1<<14) // Amount
write_short(1<<14) // Duration
write_short(1<<14) // Frequency
message_end()
new Damage
Damage = Max_Damage - floatround(floatmul(float(Max_Damage), floatdiv(float(Distance), float(Damage_Radius))))
make_knockback(i, originF, 1.5*float(Damage))
do_victim(i,owner,Damage)
}
}
}
// Destroy ent
set_pev(pentru, pev_flags, FL_KILLME)
}
// We hit breakable
if(pev_valid(ptd)){
pev(ptd, pev_classname, classnameptd, 31)
if (equali(classnameptd, "func_breakable"))
{
// Destroy it
force_use(pentru,ptd)
}
} }
}
if(is_valid_ent(pentru)) {
new classname[32]
entity_get_string(pentru,EV_SZ_classname,classname,31)
if(equal(classname, "m79")) {
if(is_valid_ent(ptd)) {
new id = ptd
if(id > 0 && id < 34) {
// Pick up weapon
give_weapon(id,entity_get_int(pentru, EV_INT_iuser1))
remove_entity(pentru)
}
}
}
}
}
public do_victim (victim,attacker,Damage) {
new namek[32],namev[32],authida[35],authidv[35],teama[32],teamv[32]
get_user_name(victim,namev,31)
get_user_name(attacker,namek,31)
get_user_authid(victim,authidv,34)
get_user_authid(attacker,authida,34)
get_user_team(victim,teamv,31)
get_user_team(attacker,teama,31)
static DamageTake[33]
if(Damage >= get_user_health(victim)) {
if(get_cvar_num("mp_logdetail") == 3) {
log_message("^"%s<%d><%s><%s>^" attacked ^"%s<%d><%s><%s>^" with ^"grenade^" (hit ^"chest^") (Damage ^"%d^") (health ^"0^")",
namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv,Damage)
}
set_user_frags(attacker,get_user_frags(attacker) + 1 )
set_msg_block(gmsgDeathMsg,BLOCK_ONCE)
set_msg_block(gmsgScoreInfo,BLOCK_ONCE)
ExecuteHamB(Ham_Killed, victim, attacker, 0)
replace_dm(attacker,victim,0)
log_message("^"%s<%d><%s><%s>^" killed ^"%s<%d><%s><%s>^" with ^"grenade^"",
namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv)
}
else {
set_user_health(victim,get_user_health(victim) - Damage )
if(get_cvar_num("mp_logdetail") == 3) {
log_message("^"%s<%d><%s><%s>^" attacked ^"%s<%d><%s><%s>^" with ^"missile^" (hit ^"chest^") (Damage ^"%d^") (health ^"%d^")",
namek,get_user_userid(attacker),authida,teama,namev,get_user_userid(victim),authidv,teamv,Damage,get_user_health(victim))
}
}
if(DamageTake[attacker] >= 5000){
DamageTake[attacker] -= 5000
} else DamageTake[attacker] += Damage
}
public replace_dm (id,tid,tbody) {
//Update killers scorboard with new info
message_begin(MSG_ALL,gmsgScoreInfo)
write_byte(id)
write_short(get_user_frags(id))
write_short(get_user_deaths(id))
write_short(0)
write_short(get_user_team(id))
message_end()
//Update victims scoreboard with correct info
message_begin(MSG_ALL,gmsgScoreInfo)
write_byte(tid)
write_short(get_user_frags(tid))
write_short(get_user_deaths(tid))
write_short(0)
write_short(get_user_team(tid))
message_end()
//Headshot Kill
if (tbody == 1) {
message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
write_byte(id)
write_byte(tid)
write_string("grenade")
message_end()
}
//Normal Kill
else {
message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0)
write_byte(id)
write_byte(tid)
write_byte(0)
write_string("grenade")
message_end()
}
return PLUGIN_CONTINUE
}
// HUD init
public hud_init(taskid) {
new HudAmmo[65]
format(HudAmmo, 64, "Grenades Left: [%d]", grenade_count[ID_HUDAMMO])
message_begin(MSG_ONE, g_msgStatusText, {0,0,0}, ID_HUDAMMO)
write_byte(0)
write_string(HudAmmo) // Text
message_end()
}
public hud_clear(id) {
message_begin(MSG_ONE, g_msgStatusText, {0,0,0}, id)
write_byte(0)
write_string("") // Text
message_end()
}
public FurienCurrentWeapon ( id ) {
new szKnife = get_user_weapon ( id );
if ( szKnife == CSW_KNIFE ) {
if ( katana_knife [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, katana_knife_v_model );
set_pev ( id, pev_weaponmodel2, katana_knife_p_model );
//set_task ( 0.1, "Katana_Damage", id );
}
if ( double_katana_knife [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, double_katana_v_knife_model );
set_pev ( id, pev_weaponmodel2, double_katana_p_knife_model );
//set_task ( 0.1, "Double_Katana_Damage", id );
}
if ( super_knife [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, super_knife_v_model );
set_pev ( id, pev_weaponmodel2, super_knife_p_model );
//set_task ( 0.1, "Super_Knife_Damage", id );
}
if ( infinity_knife [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, infinity_knife_v_model );
set_pev ( id, pev_weaponmodel2, infinity_knife_p_model );
//set_task ( 0.1, "Infinity_Knife_Damage", id );
}
if ( vip_axe_knife [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, axe_knife_v_model );
set_pev ( id, pev_weaponmodel2, axe_knife_p_model );
//set_task ( 0.1, "VIP_Axe_Knife_Damage", id );
}
if ( elf_knife [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, elf_knife_model );
//set_task ( 0.1, "Elf_Knife_Damage", id );
}
if ( ignes_knife [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, ignes_knife_model );
//set_task ( 0.1, "Ignes_Knife_Damage", id );
}
if ( trainer [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, trainer_v_model );
set_pev ( id, pev_weaponmodel2, trainer_p_model );
//set_task ( 0.1, "Trainer_Knife_Damage", id );
}
if ( super_knife_shop [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
//set_task ( 0.1, "SK_Knife_Damage", id );
}
if ( super_knife_shop2 [ id ] && szKnife == CSW_KNIFE ) {
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
//set_task ( 0.1, "SK2_Knife_Damage", id );
}
}
if ( strike_grenade [ id ] && szKnife == CSW_HEGRENADE && get_user_team ( id ) == 1 ) {
set_pev ( id, pev_viewmodel2, strike_grenade_v_model );
set_pev ( id, pev_weaponmodel2, strike_grenade_p_model );
}
if ( strike_grenade2 [ id ] && szKnife == CSW_HEGRENADE && get_user_team ( id ) == 1 ) {
set_pev ( id, pev_viewmodel2, strike_grenade_v_model );
set_pev ( id, pev_weaponmodel2, strike_grenade_p_model );
}
if ( strike_grenade3 [ id ] && szKnife == CSW_HEGRENADE && get_user_team ( id ) == 1 ) {
set_pev ( id, pev_viewmodel2, strike_grenade_v_model );
set_pev ( id, pev_weaponmodel2, strike_grenade_p_model );
}
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 ) )
{
give_item ( id, "weapon_knife" );
return 1;
}
return 1;
}
public AntiFurienCurrentWeapon ( id ) {
new szWeapon = get_user_weapon ( id );
if ( szWeapon == CSW_MP5NAVY ) {
if ( dual_mp5 [ id ] && szWeapon == CSW_MP5NAVY ) {
set_pev ( id, pev_viewmodel2, dual_mp5_v_model );
set_pev ( id, pev_weaponmodel2, dual_mp5_p_model );
}
}
if ( szWeapon == CSW_P90 ) {
if ( hunter [ id ] && szWeapon == CSW_P90 ) {
set_pev ( id, pev_viewmodel2, hunter_v_model );
set_pev ( id, pev_weaponmodel2, hunter_p_model );
//set_task ( 0.1, "Hunter_Damage", id );
}
if ( thompson [ id ] && szWeapon == CSW_P90 ) {
set_pev ( id, pev_viewmodel2, thompson_v_model );
set_pev ( id, pev_weaponmodel2, thompson_p_model );
//set_task ( 0.1, "Thompson_Damage", id );
}
if ( warrior [ id ] && szWeapon == CSW_P90 ) {
set_pev ( id, pev_viewmodel2, warrior_v_model );
set_pev ( id, pev_weaponmodel2, warrior_p_model );
//set_task ( 0.1, "Warrior_Damage", id );
}
if ( deklowaz [ id ] && szWeapon == CSW_P90 ) {
set_pev ( id, pev_viewmodel2, deklowaz_v_model );
set_pev ( id, pev_weaponmodel2, deklowaz_p_model );
//set_task ( 0.1, "Deklowaz_Damage", id );
}
}
if ( szWeapon == CSW_GALIL ) {
if ( mage [ id ] && szWeapon == CSW_GALIL ) {
set_pev ( id, pev_viewmodel2, mage_v_model );
set_pev ( id, pev_weaponmodel2, mage_p_model );
//set_task ( 0.1, "Mage_Damage", id );
}
}
if ( szWeapon == CSW_FAMAS ) {
if ( rogue [ id ] && szWeapon == CSW_FAMAS ) {
set_pev ( id, pev_viewmodel2, rogue_v_model );
set_pev ( id, pev_weaponmodel2, rogue_p_model );
//set_task ( 0.1, "Rogue_Damage", id );
}
}
if ( szWeapon == CSW_SG552 ) {
if ( shaman [ id ] && szWeapon == CSW_SG552 ) {
set_pev ( id, pev_viewmodel2, shaman_v_model );
set_pev ( id, pev_weaponmodel2, shaman_p_model );
//set_task ( 0.1, "Shaman_Damage", id );
}
}
if ( szWeapon == CSW_USP ) {
if ( uspx [ id ] && szWeapon == CSW_USP ) {
set_pev ( id, pev_viewmodel2, uspx_v_model );
set_pev ( id, pev_weaponmodel2, uspx_p_model );
}
}
if ( szWeapon == CSW_SMOKEGRENADE ) {
if ( flare [ id ] && szWeapon == CSW_SMOKEGRENADE && get_user_team ( id ) == 2 ) {
set_pev ( id, pev_viewmodel2, flare_v_model );
}
}
return 1;
}
public Spawn(id) {
remove_task(id);
HasChose[id] = false;
HE_Cooldown[id] = 0;
GodMode_Cooldown[id] = 0;
GodMode_DurationCooldown[id] = 0;
Drop_Cooldown[id] = 0;
Freeze_Cooldown[id] = 0;
remove_freeze ( id );
DragEnd ( id );
Drag_Cooldown[id] = 0;
Not_Cooldown[id] = false;
Teleport_Cooldown[id] = 0;
}
public remove_freeze(id) {
if (!Frozen[id] || !is_user_alive(id)) return;
Frozen[id] = false;
set_task(0.2, "set_normal", id);
engfunc(EngFunc_EmitSound, id, CHAN_BODY, FROSTBREAK_SND[random_num(0, sizeof FROSTBREAK_SND - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM);
fm_set_rendering(id);
static Float:origin2F[3];
pev(id, pev_origin, origin2F);
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin2F, 0);
write_byte(TE_BREAKMODEL);
engfunc(EngFunc_WriteCoord, origin2F[0]);
engfunc(EngFunc_WriteCoord, origin2F[1]);
engfunc(EngFunc_WriteCoord, origin2F[2]+24.0);
write_coord(16);
write_coord(16);
write_coord(16);
write_coord(random_num(-50, 50));
write_coord(random_num(-50, 50));
write_coord(25);
write_byte(10);
write_short(FreezeSprite);
write_byte(10);
write_byte(25);
write_byte(BREAK_GLASS);
message_end();
}
public DragEnd(id) { // drags end function
LastHook[id] = get_gametime();
Hooked[id] = 0;
BeamRemove(id);
Drag_I[id] = false;
Unable2move[id] = false;
if(!Not_Cooldown[id] && HasPower[id] == 6) {
Drag_Cooldown[id] = get_pcvar_num(CvarDragCooldown);
set_task(1.0, "DragShowHUD", id, _, _, "b");
Not_Cooldown[id] = true;
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(get_pcvar_num(CvarDragCooldown) != 1) {
show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarDragCooldown));
}
if(get_pcvar_num(CvarDragCooldown) == 1) {
show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarDragCooldown));
}
}
}
public BeamRemove(id) { // remove beam
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(99); //TE_KILLBEAM
write_short(id); //entity
message_end();
}
//------| Client Death |------//
public Death() {
new i = read_data ( 2 )
remove_task(read_data(2));
HE_Cooldown[read_data(2)] = 0;
GodMode_Cooldown[read_data(2)] = 0;
GodMode_DurationCooldown[read_data(2)] = 0;
Drop_Cooldown[read_data(2)] = 0;
Freeze_Cooldown[read_data(2)] = 0;
Freeze_Cooldown[read_data(2)] = 0;
remove_freeze ( i );
BeamRemove ( i );
Drag_Cooldown[read_data(2)] = 0;
if (Hooked[read_data(2)])
DragEnd ( i );
Not_Cooldown[read_data(2)] = false;
Teleport_Cooldown[read_data(2)] = 0;
}
//------| Client Power |------//
public Power(id) {
new target, body;
static Float:start[3];
static Float:aim[3];
pev(id, pev_origin, start);
fm_get_aim_origin(id, aim);
start[2] += 16.0; // raise
aim[2] += 16.0; // raise
if ( is_user_alive(id) && HasPower[id] == 4) {
if (Drop_Cooldown[id]) {
ColorChat(id, GREEN, "%s Puterea iti va reveni in^4 %d^3 secunde .^4", szPrefix, Drop_Cooldown[id]);
return PLUGIN_CONTINUE;
}
get_user_aiming (id, target, body, CvarDropDistance);
if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
write_byte(TE_EXPLOSION);
engfunc(EngFunc_WriteCoord, aim[0]);
engfunc(EngFunc_WriteCoord, aim[1]);
engfunc(EngFunc_WriteCoord, aim[2]);
write_short(DropSprite2);
write_byte(10);
write_byte(30);
write_byte(4);
message_end();
emit_sound(id, CHAN_WEAPON, DROP_HIT_SND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
set_task ( 0.1, "Drop", target );
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(230);
write_byte(0);
write_byte(0);
write_byte(50);
message_end();
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, target);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(230);
write_byte(0);
write_byte(0);
write_byte(50);
message_end();
}
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(0);
engfunc(EngFunc_WriteCoord,start[0]);
engfunc(EngFunc_WriteCoord,start[1]);
engfunc(EngFunc_WriteCoord,start[2]);
engfunc(EngFunc_WriteCoord,aim[0]);
engfunc(EngFunc_WriteCoord,aim[1]);
engfunc(EngFunc_WriteCoord,aim[2]);
write_short(DropSprite); // sprite index
write_byte(0); // start frame
write_byte(30); // frame rate in 0.1's
write_byte(20); // life in 0.1's
write_byte(50); // line width in 0.1's
write_byte(50); // noise amplititude in 0.01's
write_byte(0); // red
write_byte(100); // green
write_byte(0); // blue
write_byte(100); // brightness
write_byte(50); // scroll speed in 0.1's
message_end();
Drop_Cooldown[id] = get_pcvar_num(CvarDropCooldown);
set_task(1.0, "DropShowHUD", id, _, _, "b");
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(get_pcvar_num(CvarDropCooldown) != 1) {
show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarDropCooldown));
}
if(get_pcvar_num(CvarDropCooldown) == 1) {
show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarDropCooldown));
}
return PLUGIN_HANDLED;
}
else if (is_user_alive(id) && HasPower[id] == 5) {
if (Freeze_Cooldown[id]) {
ColorChat(id, GREEN, "%s Puterea iti va reveni in^4 %d^3 secunde .^4", szPrefix,Freeze_Cooldown[id]);
return PLUGIN_CONTINUE;
}
get_user_aiming (id, target, body, CvarFreezeDistance);
if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {
set_task ( 0.1, "Freeze", target );
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(100);
write_byte(200);
write_byte(50);
message_end();
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, target);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(100);
write_byte(200);
write_byte(50);
message_end();
}
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(0);
engfunc(EngFunc_WriteCoord,start[0]);
engfunc(EngFunc_WriteCoord,start[1]);
engfunc(EngFunc_WriteCoord,start[2]);
engfunc(EngFunc_WriteCoord,aim[0]);
engfunc(EngFunc_WriteCoord,aim[1]);
engfunc(EngFunc_WriteCoord,aim[2]);
write_short(FreezeSprite3); // sprite index
write_byte(0); // start frame
write_byte(30); // frame rate in 0.1's
write_byte(20); // life in 0.1's
write_byte(50); // line width in 0.1's
write_byte(50); // noise amplititude in 0.01's
write_byte(0); // red
write_byte(100); // green
write_byte(200); // blue
write_byte(100); // brightness
write_byte(50); // scroll speed in 0.1's
message_end();
set_user_health ( target, get_user_health ( target ) - 5 );
set_dhudmessage ( 255, 0, 0, 0.02, 0.90, 0, 6.0, 1.0 );
show_dhudmessage ( id, "-5 HP" );
Freeze_Cooldown[id] = get_pcvar_num(CvarFreezeCooldown);
set_task(1.0, "FreezeShowHUD", id, _, _, "b");
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(get_pcvar_num(CvarFreezeCooldown) != 1) {
show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarFreezeCooldown));
}
if(get_pcvar_num(CvarFreezeCooldown) == 1) {
show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarFreezeCooldown));
}
return PLUGIN_HANDLED;
}
else if (is_user_alive(id) && HasPower[id] == 7) {
if (Teleport_Cooldown[id]) {
ColorChat(id, GREEN, "%s Puterea iti va reveni in^4 %d^3 secunde .^4", szPrefix, Teleport_Cooldown[id]);
return PLUGIN_CONTINUE;
}
if (teleport(id)) {
emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM);
remove_task(id);
Teleport_Cooldown[id] = get_pcvar_num(CvarTeleportCooldown);
set_task(1.0, "TeleportShowHUD", id, _, _, "b");
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(get_pcvar_num(CvarTeleportCooldown) != 1) {
show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarTeleportCooldown));
}
if(get_pcvar_num(CvarTeleportCooldown) == 1) {
show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarTeleportCooldown));
}
return PLUGIN_HANDLED;
}
else {
Teleport_Cooldown[id] = 0;
ColorChat(id, GREEN, "%s Pozitia de teleportare este invalida .", szPrefix);
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
bool:teleport(id) {
new Float:vOrigin[3], Float:vNewOrigin[3],
Float:vNormal[3], Float:vTraceDirection[3],
Float:vTraceEnd[3];
pev(id, pev_origin, vOrigin);
velocity_by_aim(id, get_pcvar_num(CvarTeleportRange), vTraceDirection);
xs_vec_add(vTraceDirection, vOrigin, vTraceEnd);
engfunc(EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0);
new Float:flFraction;
get_tr2(0, TR_flFraction, flFraction);
if (flFraction < 1.0) {
get_tr2(0, TR_vecEndPos, vTraceEnd);
get_tr2(0, TR_vecPlaneNormal, vNormal);
}
xs_vec_mul_scalar(vNormal, 40.0, vNormal); // do not decrease the 40.0
xs_vec_add(vTraceEnd, vNormal, vNewOrigin);
if (is_player_stuck(id, vNewOrigin))
return false;
emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM);
tele_effect(vOrigin);
engfunc(EngFunc_SetOrigin, id, vNewOrigin);
tele_effect2(vNewOrigin);
return true;
}
public cmdShowXp ( id ) {
ColorChat ( id, GREEN, "%s Ai ^4%d^3 XP, iar levelul tau este ^4%s^3 .", szPrefix, eXP [ id ], Prefix [ Level [ id ] ] );
ShowHud ( id );
}
public cmdSaveXp ( id ) {
ColorChat ( id, GREEN, "%s Ti-ai salvat XP-ul cu succes .", szPrefix );
ShowHud ( id );
}
public cmdShowLevel ( id ) {
ColorChat ( id, GREEN, "%s Levelul tau este ^4%s^3 .", szPrefix, Prefix [ Level [ id ] ] );
}
public cmdShowLevels ( id ) {
ColorChat ( id, GREEN, "%s In total sunt^4 30^3 levele .", szPrefix );
}
public cmdClearXp ( id ) {
ColorChat ( id, GREEN, "%s Ti-ai sters XP-ul cu succes .", szPrefix );
eXP [ id ] -= eXP [ id ];
Level [ id ] -= Level [ id ];
}
public cmdRefreshXP ( id ) {
Level [ id ] -= Level [ id ];
ColorChat ( id, GREEN, "%s Ti-ai reimprospatat Xp-ul cu succes !", szPrefix );
if ( !is_user_bot ( id ) && ( Level [ id ] < 30) && ( eXP [ id ] >= Levels [ Level [ id ] ] ) )
{
while ( eXP [ id ] >= Levels [ Level [ id ] ] )
{
Level [ id ] += 1;
}
}
}
public cmdRefreshXP2 ( id ) {
Level [ id ] -= Level [ id ];
// ColorChat ( id, GREEN, "%s Ti-ai reimprospatat Xp-ul cu succes !", szPrefix );
if ( !is_user_bot ( id ) && ( Level [ id ] < 30) && ( eXP [ id ] >= Levels [ Level [ id ] ] ) )
{
while ( eXP [ id ] >= Levels [ Level [ id ] ] )
{
Level [ id ] += 1;
}
}
}
public cmdXpTop15 ( id ) {
new i, count;
static sort [ 33 ] [ 2 ], maxPlayers;
if ( !maxPlayers ) maxPlayers = get_maxplayers ( );
for ( i= 1; i <= maxPlayers; i++ )
{
sort [ count ][ 0 ] = i;
sort [ count ][ 1 ] = Level [ i ];
count++;
}
SortCustom2D ( sort,count, "stats_custom_compare" );
new motd [ 1024 ], len;
len = format ( motd, 1023, "<body bgcolor=#000000><center><font color=#FFB000><pre>" );
len += format ( motd [ len ], 1023-len,"%s %-22.22s %3s^n", "#", "Name", "Level" );
new players [ 32 ], num;
get_players ( players, num );
new b = clamp ( count,0,15 );
new name [ 32 ], player;
for ( new a = 0; a < b; a++ )
{
player = sort [ a ] [ 0 ];
get_user_name ( player, name, 31 );
len += format ( motd [ len ], 1023-len,"%d %-22.22s %d^n", a+1, name, sort [ a ] [ 1 ] );
}
len += format ( motd [ len ], 1023-len,"</body></font></pre></center>" );
show_motd( id, motd, "Level Top 15" );
return PLUGIN_CONTINUE;
}
public stats_custom_compare ( elem1 [ ], elem2 [ ] ) {
if ( elem1 [ 1 ] > elem2 [ 1 ] ) return -1;
else if ( elem1 [ 1 ] < elem2 [ 1 ] ) return 1;
return 0;
}
public cmdGiveXp ( id, level, cid ) {
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new target[32], amount[21], reason[21], gplayers[32], players, num, i;
read_argv(1, target, 31);
read_argv(2, amount, 20);
read_argv(3, reason, 20);
new player = cmd_target(id, target, 8);
if(!player)
return PLUGIN_HANDLED;
new admin_name[32], player_name[32];
get_user_name(id, admin_name, 31);
get_user_name(player, player_name, 31);
new expnum = str_to_num(amount);
ColorChat ( 0, GREEN, "^4ADMIN ^3%s^1: ^1give ^4%s ^1xp to ^3%s ^1%s", admin_name, amount, player_name, reason );
eXP [ player ] += expnum;
cmdRefreshXP2 ( player );
SaveData ( player );
if(equali(target, "@All") || equali ( target, "all" ) ) {
get_players(gplayers, num, "a");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
eXP [ players ] += expnum;
SaveData(players);
ColorChat ( 0, GREEN, "^4ADMIN ^3%s^1: ^1give ^4%s ^1xp to ^3All Players ^1%s", admin_name, amount, reason );
}
}
return PLUGIN_CONTINUE;
}
public cmdSetXp ( id, level, cid ) {
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv(1, target, 31);
read_argv(2, amount, 20);
read_argv(3, reason, 20);
new player = cmd_target(id, target, 8);
if(!player)
return PLUGIN_HANDLED;
new admin_name[32], player_name[32];
get_user_name(id, admin_name, 31);
get_user_name(player, player_name, 31);
new expnum = str_to_num(amount);
ColorChat ( 0, GREEN, "^4ADMIN ^3%s^1: ^1set ^4%s ^1xp to ^3%s ^1%s", admin_name, amount, player_name, reason );
eXP [ player ] = expnum;
cmdRefreshXP2 ( player );
SaveData ( player );
return PLUGIN_CONTINUE;
}
public fwd_setmodel(ent, const model[]) {
if(!pev_valid(ent) || !equal(model[9], "smokegrenade.mdl"))
return FMRES_IGNORED;
static classname[32]; pev(ent, pev_classname, classname, 31);
if(equal(classname, "grenade") && 1)
{
engfunc(EngFunc_SetModel, ent, flare_w_model);
set_pev(ent, pev_effects, EF_BRIGHTLIGHT);
set_pev(ent, pev_iuser4, 1337);
set_pev(ent, pev_nextthink, get_gametime() + 999.9);
fm_set_rendering2(ent, kRenderFxGlowShell, 150, 150, 250, kRenderNormal, 16);
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public fwd_think(ent) if(pev_valid(ent) && is_ent_flare(ent))
engfunc(EngFunc_RemoveEntity, ent);
public GetRandomPlayer ( ) {
new players[32], count;
get_players(players, count, "a");
if(count)
{
new iPlayer = players[random(count)];
new Name[32];
get_user_name(iPlayer, Name, charsmax(Name));
set_user_credits ( iPlayer, get_user_credits ( iPlayer ) + 1 );
ColorChat ( iPlayer, GREEN, "%s Felicitari ! Ai primit^4 1^3 credit .^4", szPrefix );
ColorChat ( 0, GREEN, "%s^4 %s^3 a primit^4 1^3 credit .^4", szPrefix, Name );
}
}
public GiveQuadBarrel(id, itemid)
{
if(itemid != g_quad_barrel)
return PLUGIN_HANDLED
g_had_qb[id] = 1
new ent = give_item(id, "weapon_xm1014")
cs_set_weapon_ammo(ent, get_pcvar_num(cvar_default_clip))
cs_set_user_bpammo(id, CSW_QB, 10)
set_pdata_float(id, 83, 1.0, 4)
set_weapon_anim(id, 4)
return PLUGIN_CONTINUE
}
public check_draw_weapon(id)
{
set_task(0.001, "do_check", id)
}
public do_check(id)
{
if(get_user_weapon(id) == CSW_QB && g_had_qb[id])
{
set_weapon_anim(id, 4)
}
}
public event_curweapon_quad(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return
if(get_user_weapon(id) != CSW_QB || !g_had_qb[id])
return
set_pev(id, pev_viewmodel2, qb_v_model)
set_pev(id, pev_weaponmodel2, qb_p_model)
return
}
public fw_UpdateClientData_Post_qb(id, sendweapons, cd_handle)
{
if(!is_user_alive(id) || !is_user_connected(id))
return FMRES_IGNORED
if(get_user_weapon(id) != CSW_QB || !g_had_qb[id])
return FMRES_IGNORED
set_cd(cd_handle, CD_flNextAttack, halflife_time() + 0.001)
return FMRES_HANDLED
}
public TraceAttack(iEnt, iAttacker, Float:flDamage, Float:fDir[3], pentru, iDamageType)
{
if(!is_user_alive(iAttacker) || !is_user_connected(iAttacker))
return HAM_IGNORED
if(get_user_weapon(iAttacker) != CSW_QB || !g_had_qb[iAttacker])
return HAM_IGNORED
static Float:flEnd[3]
get_tr2(pentru, TR_vecEndPos, flEnd)
make_bullet(iAttacker, flEnd)
return HAM_HANDLED
}
public fw_takedmg(victim, inflictor, attacker, Float:damage, damagebits)
{
if(!is_user_alive(victim) || !is_user_alive(attacker))
return HAM_IGNORED
if(get_user_weapon(attacker) == CSW_QB && g_had_qb[attacker])
{
static Float:random_start, Float:random_end
random_start = get_pcvar_float(cvar_randmg_start)
random_end = get_pcvar_float(cvar_randmg_end)
SetHamParamFloat(4, random_float(random_start, random_end))
}
return HAM_HANDLED
}
public make_bullet(id, Float:Origin[3])
{
// Find target
new target, body
get_user_aiming(id, target, body, 999999)
if(target > 0 && target <= get_maxplayers())
{
new Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
pev(id, pev_origin, fStart)
// Get ids view direction
velocity_by_aim(id, 64, fVel)
// Calculate position where blood should be displayed
fStart[0] = Origin[0]
fStart[1] = Origin[1]
fStart[2] = Origin[2]
fEnd[0] = fStart[0]+fVel[0]
fEnd[1] = fStart[1]+fVel[1]
fEnd[2] = fStart[2]+fVel[2]
// Draw traceline from victims origin into ids view direction to find
// the location on the wall to put some blood on there
new res
engfunc(EngFunc_TraceLine, fStart, fEnd, 0, target, res)
get_tr2(res, TR_vecEndPos, fRes)
// Show some blood
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BLOODSPRITE)
write_coord(floatround(fStart[0]))
write_coord(floatround(fStart[1]))
write_coord(floatround(fStart[2]))
write_short(g_bloodspray)
write_short(g_blood)
write_byte(70)
write_byte(random_num(1,2))
message_end()
} else {
new decal = 41
// Check if the wall hit is an entity
if(target)
{
// Put decal on an entity
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_DECAL)
write_coord(floatround(Origin[0]))
write_coord(floatround(Origin[1]))
write_coord(floatround(Origin[2]))
write_byte(decal)
write_short(target)
message_end()
} else {
// Put decal on "world" (a wall)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_WORLDDECAL)
write_coord(floatround(Origin[0]))
write_coord(floatround(Origin[1]))
write_coord(floatround(Origin[2]))
write_byte(decal)
message_end()
}
// Show sparcles
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_GUNSHOTDECAL)
write_coord(floatround(Origin[0]))
write_coord(floatround(Origin[1]))
write_coord(floatround(Origin[2]))
write_short(id)
write_byte(decal)
message_end()
}
}
public fm_cmdstart(id, uc_handle, seed)
{
if(!is_user_alive(id) || !is_user_connected(id))
return
if(get_user_weapon(id) != CSW_QB || !g_had_qb[id])
return
new CurButton
CurButton = get_uc(uc_handle, UC_Buttons)
if(CurButton & IN_RELOAD)
{
CurButton &= ~IN_RELOAD
set_uc(uc_handle, UC_Buttons, CurButton)
new ent = find_ent_by_owner(-1, "weapon_xm1014", id)
if (!ent)
return
new fInReload = get_pdata_int(ent, m_fInReload, 4)
new Float:flNextAttack ; flNextAttack = get_pdata_float(id, m_flNextAttack, 5)
if (flNextAttack > 0.0)
return
if (fInReload)
{
set_weapon_anim(id, 0)
return
}
if(cs_get_weapon_ammo(ent) >= get_pcvar_num(cvar_default_clip))
{
set_weapon_anim(id, 0)
return
}
ham_reload(ent)
}
if(CurButton & IN_ATTACK2)
{
static Float:CurTime
CurTime = get_gametime()
if(CurTime - 4.0 > g_last_fire_qb[id])
{
static ent, ammo
ent = find_ent_by_owner(-1, "weapon_xm1014", id)
ammo = cs_get_weapon_ammo(ent)
if(cs_get_weapon_ammo(ent) <= 0)
return
for(new i = 0; i < ammo; i++)
{
ExecuteHamB(Ham_Weapon_PrimaryAttack, ent)
}
emit_sound(id, CHAN_WEAPON, qb_sound[4], 1.0, ATTN_NORM, 0, PITCH_NORM)
set_weapon_anim(id, random_num(1, 2))
g_last_fire_qb[id] = CurTime
}
}
if(CurButton & IN_ATTACK)
{
static Float:CurTime
CurTime = get_gametime()
CurButton &= ~IN_ATTACK
set_uc(uc_handle, UC_Buttons, CurButton)
static ent
ent = find_ent_by_owner(-1, "weapon_xm1014", id)
if(cs_get_weapon_ammo(ent) <= 0 || get_pdata_int(ent, m_fInReload, XTRA_OFS_WEAPON))
return
if(CurTime - get_pcvar_float(cvar_delayattack) > g_last_fire2[id])
{
emit_sound(id, CHAN_WEAPON, qb_sound[4], 1.0, ATTN_NORM, 0, PITCH_NORM)
ExecuteHamB(Ham_Weapon_PrimaryAttack, ent)
set_weapon_anim(id, random_num(1, 2))
g_last_fire2[id] = CurTime
}
}
return
}
public ham_reload(iEnt)
{
new id = pev(iEnt, pev_owner)
if( g_had_qb[id])
{
static Cur_BpAmmo
Cur_BpAmmo = cs_get_user_bpammo(id, CSW_QB)
if(Cur_BpAmmo > 0)
{
set_pdata_int(iEnt, 55, 0, 4)
set_pdata_float(id, 83, get_pcvar_float(cvar_reloadtime), 4)
set_pdata_float(iEnt, 48, get_pcvar_float(cvar_reloadtime) + 0.5, 4)
set_pdata_float(iEnt, 46, get_pcvar_float(cvar_reloadtime) + 0.25, 4)
set_pdata_float(iEnt, 47, get_pcvar_float(cvar_reloadtime) + 0.25, 4)
set_pdata_int(iEnt, 54, 1, 4)
set_weapon_anim(id, 3)
}
return HAM_HANDLED
}
return HAM_IGNORED
}
public fw_SetModel_qb(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED;
static szClassName[33]
entity_get_string(entity, EV_SZ_classname, szClassName, charsmax(szClassName))
if(!equal(szClassName, "weaponbox"))
return FMRES_IGNORED;
static iOwner
iOwner = entity_get_edict(entity, EV_ENT_owner)
if(equal(model, "models/w_xm1014.mdl"))
{
static weapon
weapon = find_ent_by_owner(-1, "weapon_xm1014", entity)
if(!is_valid_ent(weapon))
return FMRES_IGNORED;
if(g_had_qb[iOwner])
{
entity_set_int(weapon, EV_INT_impulse, 120)
g_had_qb[iOwner] = 0
set_pev(weapon, pev_iuser3, cs_get_weapon_ammo(weapon))
entity_set_model(entity, qb_w_model)
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED;
}
public fw_item_addtoplayer_qb(ent, id)
{
if(!is_valid_ent(ent))
return HAM_IGNORED
if(entity_get_int(ent, EV_INT_impulse) == 120)
{
g_had_qb[id] = 1
cs_set_weapon_ammo(ent, pev(ent, pev_iuser3))
entity_set_int(id, EV_INT_impulse, 0)
check_draw_weapon(id)
return HAM_HANDLED
}
return HAM_HANDLED
}
public ham_priattack(ent)
{
static id
id = pev(ent, pev_owner)
if(g_had_qb[id])
{
if(cs_get_weapon_ammo(ent) > 0)
{
emit_sound(id, CHAN_WEAPON, qb_sound[4], 1.0, ATTN_NORM, 0, PITCH_NORM)
}
set_pdata_float(id, 83, 0.3, 4)
}
}
public ham_postframe(iEnt)
{
new id = pev(iEnt, pev_owner)
if(g_had_qb[id])
{
static iBpAmmo ; iBpAmmo = get_pdata_int(id, 381, XTRA_OFS_PLAYER)
static iClip ; iClip = get_pdata_int(iEnt, m_iClip, XTRA_OFS_WEAPON)
static iMaxClip ; iMaxClip = get_pcvar_num(cvar_default_clip)
if(get_pdata_int(iEnt, m_fInReload, XTRA_OFS_WEAPON) && get_pdata_float(id, m_flNextAttack, 5) <= 0.0 )
{
new j = min(iMaxClip - iClip, iBpAmmo)
set_pdata_int(iEnt, m_iClip, iClip + j, XTRA_OFS_WEAPON)
set_pdata_int(id, 381, iBpAmmo-j, XTRA_OFS_PLAYER)
set_pdata_int(iEnt, m_fInReload, 0, XTRA_OFS_WEAPON)
cs_set_weapon_ammo(iEnt, get_pcvar_num(cvar_default_clip))
return
}
}
}
public ShowSalamanderIcon ( id ) {
if ( user_has_weapon ( id, CSW_M249 ) && ( salamander [ id ] ) ) {
new iconstatus;
iconstatus = get_user_msgid ( "StatusIcon" );
if ( ! ( pev ( id,pev_button ) & FL_ONGROUND ) )
{
message_begin ( MSG_ONE,iconstatus,{ 0,0,0 },id );
write_byte ( 1 ); // status (0=hide, 1=show, 2=flash)
write_string ( "dmg_heat" ); // sprite name
write_byte ( 255 ); // red
write_byte ( 0 ); // green
write_byte ( 0 ); // blue
message_end ( );
}
}
if ( get_user_weapon ( id ) == CSW_M249 && ( salamander [ id ] ) ) {
new iconstatus;
iconstatus = get_user_msgid ( "StatusIcon" );
if ( ! ( pev ( id,pev_button ) & FL_ONGROUND ) )
{
message_begin ( MSG_ONE,iconstatus,{ 0,0,0 },id );
write_byte ( 2 ); // status (0=hide, 1=show, 2=flash)
write_string ( "dmg_heat" ); // sprite name
write_byte ( 255 ); // red
write_byte ( 0 ); // green
write_byte ( 0 ); // blue
message_end ( );
}
}
if ( !salamander [ id ] || !user_has_weapon ( id, CSW_M249 ) ) {
new iconstatus;
iconstatus = get_user_msgid ( "StatusIcon" );
if ( ! ( pev ( id,pev_button ) & FL_ONGROUND ) )
{
message_begin ( MSG_ONE,iconstatus,{ 0,0,0 },id );
write_byte ( 0 ); // status (0=hide, 1=show, 2=flash)
write_string ( "dmg_heat" ); // sprite name
write_byte ( 255 ); // red
write_byte ( 0 ); // green
write_byte ( 0 ); // blue
message_end ( );
}
}
}
public fw_spawn ( id ) {
if(g_had_salamander[id])
g_had_salamander[id] = false
if(task_exists(id+TASK_FIRE)) remove_task(id+TASK_FIRE)
if(task_exists(id+TASK_RELOAD)) remove_task(id+TASK_RELOAD)
remove_entity_name(fire_classname)
}
stock make_blood(const Float:vTraceEnd[3], Float:Damage, hitEnt) {
new bloodColor = ExecuteHam(Ham_BloodColor, hitEnt);
if(bloodColor == -1)
return;
new amount = floatround(Damage);
amount *= 2; //according to HLSDK
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BLOODSPRITE);
write_coord(floatround(vTraceEnd[0]));
write_coord(floatround(vTraceEnd[1]));
write_coord(floatround(vTraceEnd[2]));
write_short(BloodSpray);
write_short(BloodDrop);
write_byte(bloodColor);
write_byte(min(max(3, amount/10), 16));
message_end();
}
// Make knockback
public make_knockback(Victim, Float:origin[3], Float:maxspeed) {
// Get and set velocity
new Float:fVelocity[3];
kickback(Victim, origin, maxspeed, fVelocity);
entity_set_vector(Victim, EV_VEC_velocity, fVelocity);
return(1);
}
// Extra calulation for knockback
stock kickback(ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3]) {
// Find origin
new Float:fEntOrigin[3];
entity_get_vector(ent, EV_VEC_origin, fEntOrigin);
// Do some calculations
new Float:fDistance[3];
fDistance[0] = fEntOrigin[0] - fOrigin[0];
fDistance[1] = fEntOrigin[1] - fOrigin[1];
fDistance[2] = fEntOrigin[2] - fOrigin[2];
new Float:fTime =(vector_distance(fEntOrigin,fOrigin) / fSpeed);
fVelocity[0] = fDistance[0] / fTime;
fVelocity[1] = fDistance[1] / fTime;
fVelocity[2] = fDistance[2] / fTime;
return(fVelocity[0] && fVelocity[1] && fVelocity[2]);
}
stock death_message(Killer, Victim, ScoreBoard, const Weapon[]) {
// Block death msg
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_SET);
ExecuteHamB(Ham_Killed, Victim, Killer, 2);
set_msg_block(get_user_msgid("DeathMsg"), BLOCK_NOT);
// Death
make_deathmsg(Killer, Victim, 0, Weapon);
cs_set_user_money(Killer, cs_get_user_money(Killer) + 300);
// Update score board
if(ScoreBoard) {
message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"));
write_byte(Killer); // id
write_short(pev(Killer, pev_frags)); // frags
write_short(cs_get_user_deaths(Killer)); // deaths
write_short(0); // class?
write_short(get_user_team(Killer)); // team
message_end();
message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"));
write_byte(Victim); // id
write_short(pev(Victim, pev_frags)); // frags
write_short(cs_get_user_deaths(Victim)); // deaths
write_short(0); // class?
write_short(get_user_team(Victim)); // team
message_end();
}
}
stock get_damage_body(body, Float:damage) {
switch(body) {
case HIT_HEAD: damage *= 4.0;
case HIT_STOMACH: damage *= 1.1;
case HIT_CHEST: damage *= 1.5;
case HIT_LEFTARM: damage *= 0.77;
case HIT_RIGHTARM: damage *= 0.77;
case HIT_LEFTLEG: damage *= 0.75;
case HIT_RIGHTLEG: damage *= 0.75;
default: damage *= 1.0;
}
return floatround(damage);
}
stock fm_get_user_bpammo(index, weapon) {
static offset
switch(weapon) {
case CSW_AWP: offset = OFFSET_AMMO_338MAGNUM
case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = OFFSET_AMMO_762NATO
case CSW_M249: offset = OFFSET_AMMO_556NATOBOX
case CSW_FAMAS, CSW_M4A1, CSW_AUG,
CSW_SG550, CSW_GALI, CSW_SG552: offset = OFFSET_AMMO_556NATO
case CSW_M3, CSW_XM1014: offset = OFFSET_AMMO_BUCKSHOT
case CSW_USP, CSW_UMP45, CSW_MAC10: offset = OFFSET_AMMO_45ACP
case CSW_FIVESEVEN, CSW_P90: offset = OFFSET_AMMO_57MM
case CSW_DEAGLE: offset = OFFSET_AMMO_50AE
case CSW_P228: offset = OFFSET_AMMO_357SIG
case CSW_GLOCK18, CSW_TMP, CSW_ELITE,
CSW_MP5NAVY: offset = OFFSET_AMMO_9MM
default: offset = 0
}
return offset ? get_pdata_int(index, offset) : 0
}
stock fm_set_user_bpammo(index, weapon, amount) {
static offset
switch(weapon) {
case CSW_AWP: offset = OFFSET_AMMO_338MAGNUM
case CSW_SCOUT, CSW_AK47, CSW_G3SG1: offset = OFFSET_AMMO_762NATO
case CSW_M249: offset = OFFSET_AMMO_556NATOBOX
case CSW_FAMAS, CSW_M4A1, CSW_AUG,
CSW_SG550, CSW_GALI, CSW_SG552: offset = OFFSET_AMMO_556NATO
case CSW_M3, CSW_XM1014: offset = OFFSET_AMMO_BUCKSHOT
case CSW_USP, CSW_UMP45, CSW_MAC10: offset = OFFSET_AMMO_45ACP
case CSW_FIVESEVEN, CSW_P90: offset = OFFSET_AMMO_57MM
case CSW_DEAGLE: offset = OFFSET_AMMO_50AE
case CSW_P228: offset = OFFSET_AMMO_357SIG
case CSW_GLOCK18, CSW_TMP, CSW_ELITE,
CSW_MP5NAVY: offset = OFFSET_AMMO_9MM
default: offset = 0
}
if(offset)
set_pdata_int(index, offset, amount)
return 1
}
// Get Weapon Entity's CSW_ ID
stock fm_get_weapon_ent_id(ent) {
return get_pdata_int(ent, OFFSET_WEAPONID, 4);
}
// Get Weapon Entity's Owner
stock fm_get_weapon_ent_owner(ent) {
return get_pdata_cbase(ent, 41, 4);
}
// Drop all primary guns
stock drop_primary_weapons(Player) {
// Get user weapons
static weapons[32], num, i, weaponid;
num = 0; // reset passed weapons count(bugfix)
get_user_weapons(Player, weapons, num);
// Loop through them and drop primaries
for(i = 0; i < num; i++) {
// Prevent re-indexing the array
weaponid = weapons [i];
// We definetely are holding primary gun
if(((1<<weaponid) & PRIMARY_WEAPONS_BITSUM)) {
// Get weapon entity
static wname[32];
get_weaponname(weaponid, wname, charsmax(wname));
// Player drops the weapon and looses his bpammo
engclient_cmd(Player, "drop", wname);
}
}
}
public RefreshWeapons ( id ) {
strip_user_weapons ( id );
give_item ( id, "weapon_knife" );
remove_dragoncannon ( id );
g_had_qb [ id ] = 0;
dual_mp5 [ id ] = false;
k1ases_weapon [ id ] = false;
salamander [ id ] = false;
SalamanderLimit [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
elf_knife [ id ] = false;
ignes_knife [ id ] = false;
vip_axe_knife [ id ] = false;
trainer [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
druid [ id ] = false;
deklowaz [ id ] = false;
strike_grenade [ id ] = false;
HasPower[id] = 0;
Drop_Cooldown[id] = 0;
UserHaveQuad [ id ] = false;
UserHaveDragon [ id ] = false;
g_hasM79[id] = false
g_canShoot[id] = false
g_last_shot_time[id] = 0.0
grenade_count[id] = 0
hasOnHandM79[id] = false
remove_icon(id );
UserHaveM79 [ id ] = false;
HasSpeed[id] = false;
HasTeleport[id] = false;
UserHasChoosed [ id ] = false;
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHaveDualMp5 [ id ] = false;
if( get_user_flags(id) & VIP_ACCESS )
{
set_user_scoreattrib(id, 4);
}
VipBonus ( id );
if ( get_user_team ( id ) == 2 ) {
give_item ( id, "weapon_smokegrenade" );
flare [ id ] = true;
}
ShowHud ( id );
remove_task(id);
HE_Cooldown[id] = 0;
GodMode_Cooldown[id] = 0;
GodMode_DurationCooldown[id] = 0;
Drop_Cooldown[id] = 0;
Freeze_Cooldown[id] = 0;
Freeze_Cooldown[id] = 0;
remove_freeze ( id );
BeamRemove ( id );
Drag_Cooldown[id] = 0;
if (Hooked[id]) {
DragEnd ( id );
}
Not_Cooldown[id] = false;
Teleport_Cooldown[id] = 0;
}
public cmdCheckVIP ( id ) {
if ( get_user_team ( id ) == 1 && is_user_alive ( id ) ) {
if ( UserHasChoosed [ id ] ) {
ColorChat ( id, GREEN, "%s Ti-ai ales runda aceasta puterea .", szPrefix );
return 1;
}
else if ( !UserHasChoosed [ id ] ) {
set_task ( 0.1, "cmdShowTVIPMenu", id );
}
}
if ( get_user_team ( id ) == 2 && is_user_alive ( id ) ) {
if ( UserHasChoosed [ id ] ) {
ColorChat ( id, GREEN, "%s Ti-ai ales runda aceasta puterea .", szPrefix );
return 1;
}
else if ( !UserHasChoosed [ id ] ) {
set_task ( 0.1, "cmdShowCTVIPMenu", id );
}
}
return 1
}
public cmdClassMenu ( id, level, cid ) {
ShowHud ( id );
if ( get_user_team ( id ) == 1 ) {
new menu = menu_create ( "\rFurien Class \yMenu", "Class_Giver" );
if ( Level [ id ] >= 0 || Level [ id ] >= 1 || Level [ id ] >= 2 || Level [ id ] >= 3 || Level [ id ] >= 4 ) {
menu_additem ( menu, "\yTrainer", "1", 0 );
}
else if ( Level [ id ] <= 0 || Level [ id ] <= 1 || Level [ id ] <= 2 || Level [ id ] <= 3 || Level [ id ] <= 4 ) {
menu_additem ( menu, "\yTrainer \y[ \rLOCKED \y]", "1", ADMIN_RCON );
}
if ( Level [ id ] >= 5 || Level [ id ] >= 6 || Level [ id ] >= 7 || Level [ id ] >= 8 ) {
menu_additem ( menu, "\yAgnos", "2", 0 );
}
else if ( Level [ id ] <= 5 || Level [ id ] <= 6 || Level [ id ] <= 7 || Level [ id ] <= 8 ) {
menu_additem ( menu, "\yAgnos \y[ \rLOCKED \y]", "2", ADMIN_RCON );
}
if ( Level [ id ] >= 9 || Level [ id ] >= 10 || Level [ id ] >= 11 || Level [ id ] >= 12 ) {
menu_additem ( menu, "\yXFother", "3", 0 );
}
else if ( Level [ id ] <= 9 || Level [ id ] <= 10 || Level [ id ] <= 11 || Level [ id ] <= 12 ) {
menu_additem ( menu, "\yXFother \y[ \rLOCKED \y]", "3", ADMIN_RCON );
}
if ( Level [ id ] >= 13 || Level [ id ] >= 14 || Level [ id ] >= 15 || Level [ id ] >= 16 ) {
menu_additem ( menu, "\ySamurai", "4", 0 );
}
else if ( Level [ id ] <= 13 || Level [ id ] <= 14 || Level [ id ] <= 15 || Level [ id ] <= 16 ) {
menu_additem ( menu, "\ySamurai \y[ \rLOCKED \y]", "4", ADMIN_RCON );
}
if ( Level [ id ] >= 17 || Level [ id ] >= 18 || Level [ id ] >= 19 || Level [ id ] >= 20 ) {
menu_additem ( menu, "\yExtra Samurai", "5", 0 );
}
else if ( Level [ id ] <= 17 || Level [ id ] <= 18 || Level [ id ] <= 19 || Level [ id ] <= 20 ) {
menu_additem ( menu, "\yExtra Samurai \y[ \rLOCKED \y]", "5", ADMIN_RCON );
}
if ( Level [ id ] >= 21 || Level [ id ] >= 22 || Level [ id ] >= 23 || Level [ id ] >= 24 ) {
menu_additem ( menu, "\yIgnes", "6", 0 );
}
else if ( Level [ id ] <= 21 || Level [ id ] <= 22 || Level [ id ] <= 23 || Level [ id ] <= 24 ) {
menu_additem ( menu, "\yIgnes \y[ \rLOCKED \y]", "6", ADMIN_RCON );
}
if ( Level [ id ] >= 25 || Level [ id ] >= 26 || Level [ id ] >= 27 || Level [ id ] >= 28 ) {
menu_additem ( menu, "\yElf", "7", 0 );
}
else if ( Level [ id ] <= 25 || Level [ id ] <= 26 || Level [ id ] <= 27 || Level [ id ] <= 28 ) {
menu_additem ( menu, "\yElf \y[ \rLOCKED \y]", "7", ADMIN_RCON );
}
if ( Level [ id ] >= 29 || Level [ id ] >= 30 ) {
menu_additem ( menu, "\yAlcadeias", "8", 0 );
}
else if ( Level [ id ] <= 29 || Level [ id ] <= 30 ) {
menu_additem ( menu, "\yAlcadeias \y[ \rLOCKED \y]", "8", ADMIN_RCON );
}
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
return 1;
}
else if ( get_user_team ( id ) == 2 ) {
new menu = menu_create ( "\rAntiFurien Class \yMenu", "Class_Giver" );
if ( Level [ id ] >= 0 || Level [ id ] >= 1 || Level [ id ] >= 2 || Level [ id ] >= 3 || Level [ id ] >= 4 ) {
menu_additem ( menu, "\yDruid", "1", 0 );
}
else if ( Level [ id ] <= 0 || Level [ id ] <= 1 || Level [ id ] <= 2 || Level [ id ] <= 3 || Level [ id ] <= 4 ) {
menu_additem ( menu, "\yDruid \y[ \rLOCKED \y]", "1", ADMIN_RCON );
}
if ( Level [ id ] >= 5 || Level [ id ] >= 6 || Level [ id ] >= 7 || Level [ id ] >= 8 ) {
menu_additem ( menu, "\yHunter", "2", 0 );
}
else if ( Level [ id ] <= 5 || Level [ id ] <= 6 || Level [ id ] <= 7 || Level [ id ] <= 8 ) {
menu_additem ( menu, "\yHunter \y[ \rLOCKED \y]", "2", ADMIN_RCON );
}
if ( Level [ id ] >= 9 || Level [ id ] >= 10 || Level [ id ] >= 11 || Level [ id ] >= 12 ) {
menu_additem ( menu, "\yMage", "3", 0 );
}
else if ( Level [ id ] <= 9 || Level [ id ] <= 10 || Level [ id ] <= 11 || Level [ id ] <= 12 ) {
menu_additem ( menu, "\yMage \y[ \rLOCKED \y]", "3", ADMIN_RCON );
}
if ( Level [ id ] >= 13 || Level [ id ] >= 14 || Level [ id ] >= 15 || Level [ id ] >= 16 ) {
menu_additem ( menu, "\yRogue", "4", 0 );
}
else if ( Level [ id ] <= 13 || Level [ id ] <= 14 || Level [ id ] <= 15 || Level [ id ] <= 16 ) {
menu_additem ( menu, "\yRogue \y[ \rLOCKED \y]", "4", ADMIN_RCON );
}
if ( Level [ id ] >= 17 || Level [ id ] >= 18 || Level [ id ] >= 19 || Level [ id ] >= 20 ) {
menu_additem ( menu, "\yShaman", "5", 0 );
}
else if ( Level [ id ] <= 17 || Level [ id ] <= 18 || Level [ id ] <= 19 || Level [ id ] <= 20 ) {
menu_additem ( menu, "\yShaman \y[ \rLOCKED \y]", "5", ADMIN_RCON );
}
if ( Level [ id ] >= 21 || Level [ id ] >= 22 || Level [ id ] >= 23 || Level [ id ] >= 24 ) {
menu_additem ( menu, "\yWarlock", "6", 0 );
}
else if ( Level [ id ] <= 21 || Level [ id ] <= 22 || Level [ id ] <= 23 || Level [ id ] <= 24 ) {
menu_additem ( menu, "\yWarlock \y[ \rLOCKED \y]", "6", ADMIN_RCON );
}
if ( Level [ id ] >= 25 || Level [ id ] >= 26 || Level [ id ] >= 27 || Level [ id ] >= 28 ) {
menu_additem ( menu, "\yWarrior", "7", 0 );
}
else if ( Level [ id ] <= 25 || Level [ id ] <= 26 || Level [ id ] <= 27 || Level [ id ] <= 28 ) {
menu_additem ( menu, "\yWarrior \y[ \rLOCKED \y]", "7", ADMIN_RCON );
}
if ( Level [ id ] >= 29 || Level [ id ] >= 30 ) {
menu_additem ( menu, "\yDeklowaz", "8", 0 );
}
else if ( Level [ id ] <= 29 || Level [ id ] <= 30 ) {
menu_additem ( menu, "yDeklowaz \y[ \rLOCKED \y]", "8", ADMIN_RCON );
}
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
return 1;
}
return 1;
}
public Class_Giver ( id, menu, item ) {
if( item == MENU_EXIT )
{
return 1;
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
new key = str_to_num ( data );
switch(key)
{
case 1:
{
if ( get_user_team ( id ) == 1 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Trainer^3 .", szPrefix );
trainer [ id ] = true;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
druid [ id ] = false;
strike_grenade [ id ] = false;
strike_grenade2 [ id ] = false;
strike_grenade3 [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
set_user_gravity ( id, 0.7 );
give_item ( id, "weapon_flashbang" );
//set_pev ( id, pev_viewmodel2, trainer_v_model );
//set_pev ( id, pev_weaponmodel2, trainer_p_model );
++g_Menu [ id ];
++g_Menu [ id ];
}
}
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Druid^3 .", szPrefix );
give_item ( id, "weapon_xm1014" );
give_item ( id, "weapon_usp" );
set_user_health ( id, 105 );
set_user_armor ( id, 30 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
cs_set_user_bpammo ( id, CSW_XM1014, 100 );
trainer [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = true;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
druid [ id ] = true;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
}
}
}
case 2:
{
if ( get_user_team ( id ) == 1 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Agnos^3 .", szPrefix );
katana_knife [ id ] = false;
trainer [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = true;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
strike_grenade [ id ] = false;
strike_grenade2 [ id ] = false;
strike_grenade3 [ id ] = false;
druid [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
set_user_gravity ( id, 0.6 );
set_user_health ( id, 120 );
set_user_armor ( id, 60 );
give_item ( id, "weapon_flashbang" );
//set_pev ( id, pev_viewmodel2, infinity_knife_v_model );
//set_pev ( id, pev_weaponmodel2, infinity_knife_p_model );
++g_Menu [ id ];
++g_Menu [ id ];
}
}
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Hunter^3 .", szPrefix );
give_item ( id, "weapon_p90" );
give_item ( id, "weapon_usp" );
set_user_health ( id, 120 );
set_user_armor ( id, 60 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
cs_set_user_bpammo ( id, CSW_P90, 200 );
trainer [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = true;
hunter [ id ] = true;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
druid [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
}
}
}
case 3:
{
if ( get_user_team ( id ) == 1 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 XFother^3.^4", szPrefix );
super_knife [ id ] = true;
katana_knife [ id ] = false;
trainer [ id ] = false;
double_katana_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
elf_knife [ id ] = false;
druid [ id ] = false;
strike_grenade [ id ] = true;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
set_user_gravity ( id, 0.6 );
set_user_health ( id, 120 );
set_user_armor ( id, 60 );
give_item ( id, "weapon_hegrenade" );
give_item ( id, "weapon_flashbang" );
//set_pev ( id, pev_viewmodel2, super_knife_v_model );
//set_pev ( id, pev_weaponmodel2, super_knife_p_model );
++g_Menu [ id ];
++g_Menu [ id ];
}
}
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Mage^3 .", szPrefix );
give_item ( id, "weapon_galil" );
give_item ( id, "weapon_usp" );
set_user_gravity ( id, 0.7 );
set_user_health ( id, 120 );
set_user_armor ( id, 60 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
cs_set_user_bpammo ( id, CSW_GALIL, 200 );
trainer [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
druid [ id ] = false;
uspx [ id ] = true;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = true;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
}
}
}
case 4:
{
if ( get_user_team ( id ) == 1 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Samurai^3 + puterea de a arunca armele inamicului .^4", szPrefix );
ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
katana_knife [ id ] = true;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
trainer [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
druid [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
strike_grenade2 [ id ] = true;
deklowaz [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
set_user_gravity ( id, 0.6 );
set_user_health ( id, 135 );
set_user_armor ( id, 90 );
give_item ( id, "weapon_hegrenade" );
give_item ( id, "weapon_flashbang" );
client_cmd(id, "bind v power");
remove_task(id);
if ( Drop_Cooldown [ id ] ) {
set_task ( 0.1, "DropShowHUD", id );
}
HasPower [ id ] = 4;
//set_pev ( id, pev_viewmodel2, katana_knife_v_model );
//set_pev ( id, pev_weaponmodel2, katana_knife_p_model );
++g_Menu [ id ];
++g_Menu [ id ];
}
}
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Rogue^3 + puterea de a trage inamicul^4 [ drag ]^3 .^4", szPrefix );
ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
give_item ( id, "weapon_famas" );
give_item ( id, "weapon_usp" );
set_user_gravity ( id, 0.7 );
set_user_health ( id, 130 );
set_user_armor ( id, 80 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
cs_set_user_bpammo ( id, CSW_FAMAS, 200 );
trainer [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = true;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = true;
druid [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
client_cmd(id, "bind v +drag");
remove_task(id);
if(Drag_Cooldown[id]) {
set_task ( 0.1, "DragShowHUD", id );
}
HasPower[id] = 6;
}
}
}
case 5:
{
if ( get_user_team ( id ) == 1 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Extra Samurai^3 + puterea de a arunca armele inamicului .^4", szPrefix );
ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
double_katana_knife [ id ] = true;
katana_knife [ id ] = false;
trainer [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
druid [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
strike_grenade2 [ id ] = true;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
set_user_gravity ( id, 0.5 );
set_user_health ( id, 145 );
set_user_armor ( id, 105 );
give_item ( id, "weapon_hegrenade" );
give_item ( id, "weapon_flashbang" );
give_item ( id, "weapon_flashbang" );
client_cmd(id, "bind v power");
remove_task(id);
if ( Drop_Cooldown [ id ] ) {
set_task ( 0.1, "DropShowHUD", id );
}
HasPower [ id ] = 4;
//set_pev ( id, pev_viewmodel2, double_katana_v_knife_model );
//set_pev ( id, pev_weaponmodel2, double_katana_p_knife_model );
++g_Menu [ id ];
++g_Menu [ id ];
}
}
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Shaman^3 + puterea de a trage inamicul^4 [ drag ]^3 .^4", szPrefix );
ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
give_item ( id, "weapon_sg552" );
give_item ( id, "weapon_usp" );
set_user_gravity ( id, 0.7 );
set_user_health ( id, 145 );
set_user_armor ( id, 90 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
cs_set_user_bpammo ( id, CSW_SG552, 200 );
trainer [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = true;
hunter [ id ] = false;
shaman [ id ] = true;
mage [ id ] = false;
rogue [ id ] = false;
druid [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
client_cmd(id, "bind v +drag");
remove_task(id);
if(Drag_Cooldown[id]) {
set_task ( 0.1, "DragShowHUD", id );
}
HasPower[id] = 6;
}
}
}
case 6:
{
if ( get_user_team ( id ) == 1 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Ignes^3 + puterea de a ingheta inamicul .^4", szPrefix );
ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
trainer [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
ignes_knife [ id ] = true;
elf_knife [ id ] = false;
vip_axe_knife [ id ] = false;
druid [ id ] = false;
strike_grenade2 [ id ] = true;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
set_user_gravity ( id, 0.5 );
set_user_health ( id, 185 );
set_user_armor ( id, 150 );
give_item ( id, "weapon_hegrenade" );
give_item ( id, "weapon_flashbang" );
give_item ( id, "weapon_flashbang" );
client_cmd(id, "bind v power");
remove_task(id);
if(Freeze_Cooldown[id]) {
set_task ( 0.1, "FreezeShowHUD", id );
}
HasPower[id] = 5;
//set_pev ( id, pev_viewmodel2, ignes_knife_model );
++g_Menu [ id ];
++g_Menu [ id ];
}
}
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Warlock^3 + puterea de a trage perfect^4 [ norecoil ]^3 .^4", szPrefix );
ColorChat ( id, GREEN, "%s Puterea se activeaza automat .^4", szPrefix );
give_item ( id, "weapon_p90" );
give_item ( id, "weapon_usp" );
set_user_gravity ( id, 0.6 );
set_user_health ( id, 165 );
set_user_armor ( id, 105 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
cs_set_user_bpammo ( id, CSW_P90, 200 );
trainer [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = true;
uspx [ id ] = true;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
druid [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
vip_axe_knife [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
remove_task(id);
HasPower[id] = 8;
}
}
}
case 7:
{
if ( get_user_team ( id ) == 1 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Elf^3 + puterea de a ingheta inamicul .^4", szPrefix );
ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
trainer [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = true;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
druid [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
strike_grenade3 [ id ] = true;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
set_user_gravity ( id, 0.4 );
set_user_health ( id, 185 );
set_user_armor ( id, 160 );
give_item ( id, "weapon_hegrenade" );
give_item ( id, "weapon_flashbang" );
give_item ( id, "weapon_flashbang" );
client_cmd(id, "bind v power");
remove_task(id);
if(Freeze_Cooldown[id]) {
set_task ( 0.1, "FreezeShowHUD", id );
}
HasPower[id] = 5;
//set_pev ( id, pev_viewmodel2, elf_knife_model );
}
}
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Warrior^3 + puterea de a trage perfect^4 [ norecoil ]^3 .^4", szPrefix );
ColorChat ( id, GREEN, "%s Puterea se activeaza automat .^4", szPrefix );
give_item ( id, "weapon_p90" );
give_item ( id, "weapon_usp" );
set_user_gravity ( id, 0.6 );
set_user_health ( id, 180 );
set_user_armor ( id, 115 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
cs_set_user_bpammo ( id, CSW_P90, 200 );
trainer [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = true;
hunter [ id ] = false;
shaman [ id ] = false;
druid [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = true;
vip_axe_knife [ id ] = false;
deklowaz [ id ] = false;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
remove_task(id);
HasPower[id] = 8;
}
}
}
case 8:
{
if ( get_user_team ( id ) == 1 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Alcadeias^3 + puterea de a te teleporta .^4", szPrefix );
ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
vip_axe_knife [ id ] = true;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
thompson [ id ] = false;
uspx [ id ] = false;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
druid [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
trainer [ id ] = false;
elf_knife [ id ] = false;
strike_grenade3 [ id ] = true;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
set_user_gravity ( id, 0.4 );
set_user_health ( id, 200 );
set_user_armor ( id, 200 );
give_item ( id, "weapon_hegrenade" );
give_item ( id, "weapon_flashbang" );
give_item ( id, "weapon_flashbang" );
++g_Menu [ id ];
++g_Menu [ id ];
client_cmd(id, "bind v power");
remove_task(id);
if(Teleport_Cooldown[id]) {
set_task ( 0.1, "TeleportShowHUD", id );
}
HasPower[id] = 7;
}
}
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ti-ai ales odata clasa runda aceasta .", szPrefix );
}
else {
ColorChat ( id, GREEN, "%s Clasa ta este acum^4 Deklowaz^3 + puterea de a te teleporta .^4", szPrefix );
ColorChat ( id, GREEN, "%s Pentru activare apasa tasta^4 V^3 .^4", szPrefix );
give_item ( id, "weapon_p90" );
give_item ( id, "weapon_usp" );
set_user_gravity ( id, 0.6 );
set_user_health ( id, 200 );
set_user_armor ( id, 130 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
cs_set_user_bpammo ( id, CSW_P90, 200 );
trainer [ id ] = false;
katana_knife [ id ] = false;
double_katana_knife [ id ] = false;
super_knife [ id ] = false;
infinity_knife [ id ] = false;
ignes_knife [ id ] = false;
elf_knife [ id ] = false;
thompson [ id ] = false;
druid [ id ] = false;
uspx [ id ] = true;
hunter [ id ] = false;
shaman [ id ] = false;
mage [ id ] = false;
rogue [ id ] = false;
warrior [ id ] = false;
deklowaz [ id ] = true;
super_knife_shop [ id ] = false;
super_knife_shop2 [ id ] = false;
++g_Menu [ id ];
++g_Menu [ id ];
client_cmd(id, "bind v power");
remove_task(id);
if(Teleport_Cooldown[id]) {
set_task ( 0.1, "TeleportShowHUD", id );
}
HasPower[id] = 7;
}
}
}
}
ShowHud ( id );
if ( get_user_team ( id ) == 1 ) {
cs_set_user_model(id, "furienxp")
}
if ( get_user_team ( id ) == 2 ) {
cs_set_user_model(id, "furienxp2")
}
menu_destroy ( menu );
return 1;
}
public cmdShop ( id, level, cid ) {
if ( is_user_alive ( id ) ) {
new menu = menu_create( "Shop Menu", "MenuShopGiver");
if ( get_user_team ( id ) == 1 ) {
menu_additem ( menu, "\ySuper Knife \y[ \r8000 $\y ]", "1", 0 );
}
menu_additem ( menu, "\yHE Grenade \y[ \r2500 $\y ]", "2", 0 );
if ( get_user_team ( id ) == 2 ) {
menu_additem ( menu, "\yDefuse Kit \y[ \r300 $\y ]", "3", 0 );
}
menu_additem ( menu, "\r+\y50 HP \y[ \r3000 $\y ]", "4", 0 );
menu_additem ( menu, "\r+\y50 AP\r + \yHelmet \y[ \r2000 $\y ]", "5", 0 );
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu poti folosi shop-ul cand esti mort.^4", szPrefix );
}
return 1;
}
public MenuShopGiver ( id, menu, item ) {
if( item == MENU_EXIT )
{
return 1;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
new iPret = cs_get_user_money ( id ) - 8000;
if( iPret < 0 )
{
client_print( id, print_center, "Nu ai destui bani !" );
return 1;
}
else
{
if ( Level [ id ] < 15 ) {
super_knife_shop [ id ] = true;
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
cs_set_user_money ( id, iPret );
}
else if ( Level [ id ] >= 15 ) {
super_knife_shop2 [ id ] = true;
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
cs_set_user_money ( id, iPret );
}
return 1;
}
return 1
}
case 2:
{
new iPret = cs_get_user_money ( id ) - 2500;
if( iPret < 0 )
{
client_print( id, print_center, "Nu ai destui bani !" );
return 1;
}
else
{
give_item ( id, "weapon_hegrenade" );
cs_set_user_money ( id, iPret );
return 1;
}
return 1
}
case 3:
{
new iPret = cs_get_user_money ( id ) - 300;
if( iPret < 0 )
{
client_print( id, print_center, "Nu ai destui bani !" );
return 1;
}
else
{
give_item ( id, "item_thighpack" );
cs_set_user_money ( id, iPret );
return 1;
}
return 1
}
case 4:
{
new iPret = cs_get_user_money ( id ) - 3000;
if( iPret < 0 )
{
client_print( id, print_center, "Nu ai destui bani !" );
return 1;
}
else
{
set_dhudmessage ( 31, 201, 31, 0.02, 0.90, 0, 6.0, 1.0 );
show_dhudmessage ( id, "+50 HP" );
set_user_health ( id, get_user_health ( id ) + 50 );
cs_set_user_money ( id, iPret );
if ( get_user_team ( id ) == 2 && Level [ id ] < 20 ) {
emit_sound(id, CHAN_ITEM, buy_AntiFurienHealth, 0.6, ATTN_NORM, 0, PITCH_NORM)
af ( id );
}
if ( get_user_team ( id ) == 2 && Level [ id ] >= 20 ) {
emit_sound(id, CHAN_ITEM, buy_FurienHealth, 0.6, ATTN_NORM, 0, PITCH_NORM)
fr ( id );
}
return 1;
}
return 1
}
case 5:
{
new iPret = cs_get_user_money ( id ) - 2000;
if( iPret < 0 )
{
client_print( id, print_center, "Nu ai destui bani !" );
return 1;
}
else
{
set_dhudmessage ( 31, 201, 31, 0.20, 0.90, 0, 6.0, 1.0 );
show_dhudmessage ( id, "+50 AP" );
set_user_armor ( id, get_user_armor ( id ) + 50 );
cs_set_user_money ( id, iPret );
return 1;
}
return 1
}
}
menu_destroy(menu);
return 1
}
furien(origin[3]) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_SPRITE)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+=30)
write_short(g_FurienHealth)
write_byte(8)
write_byte(255)
message_end()
}
antifurien(origin[3]) {
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_SPRITE)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2]+=30)
write_short(g_AntiFurienHealth)
write_byte(8)
write_byte(255)
message_end()
}
public fr(victim)
{
new origin[3]
get_user_origin(victim,origin)
furien(origin)
}
public af(victim)
{
new origin[3]
get_user_origin(victim,origin)
antifurien(origin)
}
public cmdShowTVIPMenu ( id, level, cid ) {
new menu = menu_create ( "FurienVIP Menu", "MenuTVIPGiver" )
if ( !UserHaveHpAndAp [ id ] ) {
menu_additem ( menu, "\y225 HP\w &\y 225 AP", "1", VIP_ACCESS );
}
else if ( UserHaveHpAndAp [ id ] ) {
menu_additem ( menu, "\w225 HP\y &\w 225 AP", "1", VIP_ACCESS );
}
if ( !UserHaveHeGrenade [ id ] ) {
menu_additem ( menu, "\yHE GRENADE", "2", VIP_ACCESS );
}
else if ( UserHaveHeGrenade [ id ] ) {
menu_additem ( menu, "\wHE GRENADE", "2", VIP_ACCESS );
}
if ( !UserHaveGodMode [ id ] ) {
menu_additem ( menu, "\yGOD MODE", "3", VIP_ACCESS );
}
else if ( UserHaveGodMode [ id ] ) {
menu_additem ( menu, "\wGOD MODE", "3", VIP_ACCESS );
}
if ( !UserHaveNoClip [ id ] ) {
menu_additem ( menu, "\yNOCLIP", "4", VIP_ACCESS );
}
else if ( UserHaveNoClip [ id ] ) {
menu_additem ( menu, "\wNOCLIP", "4", VIP_ACCESS );
}
if ( !UserHaveTeleport [ id ] ) {
menu_additem ( menu, "\yTELEPORT", "5", VIP_ACCESS );
}
else if ( UserHaveTeleport [ id ] ) {
menu_additem ( menu, "\wTELEPORT", "5", VIP_ACCESS );
}
if ( !UserHaveSuperKnife [ id ] ) {
menu_additem ( menu, "\ySUPER KNIFE", "6", VIP_ACCESS );
}
else if ( UserHaveSuperKnife [ id ] ) {
menu_additem ( menu, "\wSUPER KNIFE", "6", VIP_ACCESS );
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return 1
}
public cmdShowCTVIPMenu ( id, level, cid ) {
new menu = menu_create ( "FurienVIP Menu", "MenuCTVIPGiver" )
if ( !UserHaveHpAndAp [ id ] ) {
menu_additem ( menu, "\y225 HP\w &\y 225 AP", "1", VIP_ACCESS );
}
else if ( UserHaveHpAndAp [ id ] ) {
menu_additem ( menu, "\w225 HP\y &\w 225 AP", "1", VIP_ACCESS );
}
if ( !UserHaveHeGrenade [ id ] ) {
menu_additem ( menu, "\yHE GRENADE", "2", VIP_ACCESS );
}
else if ( UserHaveHeGrenade [ id ] ) {
menu_additem ( menu, "\wHE GRENADE", "2", VIP_ACCESS );
}
if ( !UserHaveGodMode [ id ] ) {
menu_additem ( menu, "\yGOD MODE", "3", VIP_ACCESS );
}
else if ( UserHaveGodMode [ id ] ) {
menu_additem ( menu, "\wGOD MODE", "3", VIP_ACCESS );
}
if ( !UserHaveNoClip [ id ] ) {
menu_additem ( menu, "\yNOCLIP", "4", VIP_ACCESS );
}
else if ( UserHaveNoClip [ id ] ) {
menu_additem ( menu, "\wNOCLIP", "4", VIP_ACCESS );
}
if ( !UserHaveTeleport [ id ] ) {
menu_additem ( menu, "\yTELEPORT", "5", VIP_ACCESS );
}
else if ( UserHaveTeleport [ id ] ) {
menu_additem ( menu, "\wTELEPORT", "5", VIP_ACCESS );
}
if ( !UserHaveSuperKnife [ id ] ) {
menu_additem ( menu, "\yDUAL MP5", "6", VIP_ACCESS );
}
else if ( UserHaveSuperKnife [ id ] ) {
menu_additem ( menu, "\wDUAL MP5", "6", VIP_ACCESS );
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return 1
}
public MenuCTVIPGiver ( id, menu, item )
{
if( item == MENU_EXIT )
{
return 1
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
if ( UserHaveHpAndAp [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .^4", szPrefix );
return 1;
}
else if ( !UserHaveHpAndAp [ id ] ) {
set_user_health ( id, 225 );
set_user_armor ( id, 225 );
ColorChat ( id, GREEN, "%s Ai primit^4 225 HP^3 &^4 225 AP^3 .^4", szPrefix );
UserHaveHpAndAp [ id ] = true;
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveTeleport [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 2:
{
if ( UserHaveHeGrenade [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveHeGrenade [ id ] ) {
give_item ( id, "weapon_hegrenade" );
ColorChat ( id, GREEN, "%s Vei primi o grenada^4 HE^3 odata la^4 15^3 secunde .^4", szPrefix );
UserHaveHeGrenade [ id ] = true;
set_task(15.0, "GiveMeAHeGrenade", id, _, _, "b");
UserHaveGodMode [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveTeleport [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 3:
{
if ( UserHaveGodMode [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveGodMode [ id ] ) {
ColorChat ( id, GREEN, "%s Ai primit^4 GodMode^3, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
UserHaveGodMode [ id ] = true;
client_cmd ( id, "bind z vippower" );
UserHaveHeGrenade [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveTeleport [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 4:
{
if ( UserHaveNoClip [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveNoClip [ id ] ) {
ColorChat ( id, GREEN, "%s Ai primit^4 NoClip^3, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
UserHaveNoClip [ id ] = true;
client_cmd ( id, "bind z vippower" );
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveTeleport [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 5:
{
if ( UserHaveTeleport [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveTeleport [ id ] ) {
ColorChat ( id, GREEN, "%s Ai primit puterea de a te^4 Teleporta^3, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
UserHaveTeleport [ id ] = true;
client_cmd ( id, "bind z power" );
remove_task(id);
if(Teleport_Cooldown[id]) {
set_task ( 0.1, "TeleportShowHUD", id );
}
HasPower[id] = 7;
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 6:
{
if ( UserHaveDualMp5 [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveDualMp5 [ id ] ) {
ColorChat ( id, GREEN, "%s Ai primit^4 Dual Mp5^3 . ^4", szPrefix );
strip_user_weapons ( id );
give_item ( id, "weapon_knife" );
give_item ( id, "weapon_mp5navy" );
give_item ( id, "weapon_hegrenade" );
give_item ( id, "weapon_flashbang" );
give_item ( id, "weapon_smokegrenade" );
give_item ( id, "weapon_usp" );
cs_set_user_bpammo ( id, CSW_MP5NAVY, 200 );
cs_set_user_bpammo ( id, CSW_USP, 100 );
dual_mp5 [ id ] = true;
uspx [ id ] = true;
flare [ id ] = true;
UserHaveDualMp5 [ id ] = true;
g_has_k1ases[id] = false
g_delay[id] = 0
g_ammoclaw[id] = 0
UserHaveTeleport [ id ] = false;
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
}
menu_destroy(menu);
return 1
}
public MenuTVIPGiver ( id, menu, item )
{
if( item == MENU_EXIT )
{
return 1
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:
{
if ( UserHaveHpAndAp [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .^4", szPrefix );
return 1;
}
else if ( !UserHaveHpAndAp [ id ] ) {
set_user_health ( id, 225 );
set_user_armor ( id, 225 );
ColorChat ( id, GREEN, "%s Vei primi^4 225 HP^3 &^4 225 AP^3 in fiecare runda .^4", szPrefix );
UserHaveHpAndAp [ id ] = true;
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveTeleport [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 2:
{
if ( UserHaveHeGrenade [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveHeGrenade [ id ] ) {
give_item ( id, "weapon_hegrenade" );
ColorChat ( id, GREEN, "%s Vei primi o grenada^4 HE^3 odata la^4 15^3 secunde .^4", szPrefix );
UserHaveHeGrenade [ id ] = true;
set_task(15.0, "GiveMeAHeGrenade", id, _, _, "b");
UserHaveGodMode [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveTeleport [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 3:
{
if ( UserHaveGodMode [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveGodMode [ id ] ) {
ColorChat ( id, GREEN, "%s Vei primi^4 GodMode^3 in fiecare runda, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
UserHaveGodMode [ id ] = true;
client_cmd ( id, "bind z vippower" );
UserHaveHeGrenade [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveTeleport [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 4:
{
if ( UserHaveNoClip [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveNoClip [ id ] ) {
ColorChat ( id, GREEN, "%s Vei primi^4 NoClip^3 in fiecare runda, apasa tasta^4 Z^3 pentru activare. ^4", szPrefix );
UserHaveNoClip [ id ] = true;
client_cmd ( id, "bind z vippower" );
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveTeleport [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 5:
{
if ( UserHaveTeleport [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveTeleport [ id ] ) {
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 );
UserHaveTeleport [ id ] = true;
client_cmd ( id, "bind z power" );
remove_task(id);
if(Teleport_Cooldown[id]) {
set_task ( 0.1, "TeleportShowHUD", id );
}
HasPower[id] = 7;
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
case 6:
{
if ( UserHaveSuperKnife [ id ] ) {
ColorChat ( id, GREEN, "%s Ai deja aceasta putere .", szPrefix );
return 1;
}
else if ( !UserHaveSuperKnife [ id ] ) {
ColorChat ( id, GREEN, "%s Vei primi^4 SuperKnife^3 in fiecare runda. ^4", szPrefix );
if ( Level [ id ] < 15 ) {
super_knife_shop [ id ] = true;
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
}
else if ( Level [ id ] >= 15 ) {
super_knife_shop2 [ id ] = true;
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
}
UserHaveSuperKnife [ id ] = true;
UserHaveTeleport [ id ] = false;
UserHaveHeGrenade [ id ] = false;
UserHaveGodMode [ id ] = false;
UserHaveSuperKnife [ id ] = false;
UserHaveNoClip [ id ] = false;
UserHaveHpAndAp [ id ] = false;
UserHasChoosed [ id ] = true;
}
}
}
menu_destroy(menu);
return 1
}
public GiveMeAHeGrenade ( id ) {
if ( UserHaveHeGrenade [ id ] ) {
give_item ( id, "weapon_hegrenade" );
set_hudmessage(0, 100, 225, 0.05, 0.60, 0, 6.0, 1.0)
show_hudmessage ( id, "Ai primit o grenada HE" );
}
}
public StopGodMode ( id ) {
if ( UserHaveGodMode [ id ] ) {
set_user_godmode ( id, 0 );
}
}
public StopNoClip ( id ) {
if ( UserHaveNoClip [ id ] ) {
set_user_noclip ( id, 0 );
}
}
public VIPpower ( id ) {
if ( UserHaveGodMode [ id ] ) {
set_user_godmode ( id, 1 );
set_task(3.0, "StopGodMode", id );
client_print ( id, print_center, "Ai GodMode penbtru 3 secunde" );
}
if ( UserHaveNoClip [ id ] ) {
set_user_noclip ( id, 1 );
set_task ( 4.0, "StopNoClip", id );
client_print ( id, print_center, "Ai NoClip penbtru 4 secunde" );
}
}
public VipBonus ( id ) {
if ( UserHaveHpAndAp [ id ] ) {
set_user_health ( id, 225 );
set_user_armor ( id, 225 );
}
if ( UserHaveHeGrenade [ id ] ) {
give_item ( id, "weapon_hegrenade" );
set_task(15.0, "GiveMeAHeGrenade", id, _, _, "b");
}
if ( UserHaveGodMode [ id ] ) {
client_cmd ( id, "bind z vippower" );
}
if ( UserHaveNoClip [ id ] ) {
client_cmd ( id, "bind z vippower" );
}
if ( UserHaveTeleport [ id ] ) {
client_cmd ( id, "bind z power" );
}
if ( UserHaveSuperKnife [ id ] ) {
if ( Level [ id ] < 15 ) {
super_knife_shop [ id ] = true;
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
}
else if ( Level [ id ] >= 15 ) {
super_knife_shop2 [ id ] = true;
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
}
}
}
public ForcePlayerSpeed ( id ) {
if ( get_user_team ( id ) == 1 ) {
if ( trainer [ id ] )
{
set_pev ( id, pev_maxspeed, 900.0 );
}
if ( infinity_knife [ id ] )
{
set_pev ( id, pev_maxspeed, 930.0 );
}
if ( super_knife [ id ] )
{
set_pev ( id, pev_maxspeed, 950.0 );
}
if ( katana_knife [ id ] )
{
set_pev ( id, pev_maxspeed, 1000.0 );
}
if ( double_katana_knife [ id ] )
{
set_pev ( id, pev_maxspeed, 1050.0 );
}
if ( ignes_knife [ id ] )
{
set_pev ( id, pev_maxspeed, 1100.0 );
}
if ( elf_knife [ id ] )
{
set_pev ( id, pev_maxspeed, 1150.0 );
}
if ( vip_axe_knife [ id ] )
{
set_pev ( id, pev_maxspeed, 1200.0 );
}
}
}
public bomb_planted ( planter ) {
eXP [ planter ] += 35;
ColorChat ( planter, GREEN, "%s Ai primit^4 35^3 XP pentru plantarea bombei .^4", szPrefix );
new originnn[3];
get_user_origin ( planter, originnn, 0 );
message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
write_byte(TE_BEAMCYLINDER);
write_coord(originnn[0]);
write_coord(originnn[1]);
write_coord(originnn[2]+10);
write_coord(originnn[0]);
write_coord(originnn[1]);
write_coord(originnn[2]+60);
write_short(TeleportSprite);
write_byte(0);
write_byte(0);
write_byte(3);
write_byte(60);
write_byte(0);
write_byte(255); //255
write_byte(0); //255
write_byte(0); //255
write_byte(255); //255 //RED
write_byte(0);
message_end();
UTIL_CreateBeamCylinder( originnn, 120, TeleportSprite, 0, 0, 6, 16, 0, 255, 0, 0, 255, 0 );
UTIL_CreateBeamCylinder( originnn, 320, TeleportSprite, 0, 0, 6, 16, 0, 255, 51, 51, 255, 0 );
UTIL_CreateBeamCylinder( originnn, 500, TeleportSprite, 0, 0, 6, 16, 0, 255, 102, 102, 255, 0 );
new iPlayers[32]
new iNum
get_players( iPlayers, iNum, "e", "TERRORIST" )
for( new i = 0; i < iNum; i++ )
{
g_CanUseHe[iPlayers[i]] = true;
}
}
public bomb_defused ( defuser ) {
eXP [ defuser ] += 35;
ColorChat ( defuser, GREEN, "%s Ai primit^4 35^3 XP pentru defusarea bombei .^4", szPrefix );
new originnn[3];
get_user_origin ( defuser, originnn, 0 );
message_begin(MSG_PAS, SVC_TEMPENTITY, originnn);
write_byte(TE_BEAMCYLINDER);
write_coord(originnn[0]);
write_coord(originnn[1]);
write_coord(originnn[2]+10);
write_coord(originnn[0]);
write_coord(originnn[1]);
write_coord(originnn[2]+60);
write_short(TeleportSprite);
write_byte(0);
write_byte(0);
write_byte(3);
write_byte(60);
write_byte(0);
write_byte(0); //255
write_byte(0); //255
write_byte(255); //255 //BLUE
write_byte(255); //255
write_byte(0);
message_end();
Create_TE_SPRITETRAIL3( originnn, originnn, TeleportSprite3, 50, 10, 2, 50, 10 );
/*---ScreenShake---*/
message_begin(MSG_ONE , gMsgScreenShake , {0,0,0} ,defuser)
write_short( 1<<14 );
write_short( 1<<14 );
write_short( 1<<14 );
message_end();
}
public bomb_explode ( planter ) {
eXP [ planter ] += 25;
ColorChat ( planter, GREEN, "%s Ai primit^4 25^3 XP pentru explodarea bombei .^4", szPrefix );
}
public handle_say(id) {
new said[192]
read_args(said,192)
if( ( containi(said, "who") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
set_task(0.1,"print_adminlist",id)
return PLUGIN_CONTINUE
}
public print_adminlist(user)
{
new adminnames[33][32]
new message[256]
new contactinfo[256], contact[112]
new id, count, x, len
for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
if( get_user_flags(id) & VIP_ACCESS )
get_user_name(id, adminnames[count++], 31)
len = format(message, 255, "%s VIPS ONLINE: ",COLOR)
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
if(len > 96 ) {
print_message(user, message)
len = format(message, 255, "%s ",COLOR)
}
}
print_message(user, message)
}
else {
len += format(message[len], 255-len, "Nici un VIP online.")
print_message(user, message)
}
get_cvar_string("amx_contactinfo", contact, 63)
if(contact[0]) {
format(contactinfo, 111, "%s Cumpara VIP -- %s", COLOR, contact)
print_message(user, contactinfo)
}
}
print_message(id, msg[]) {
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}
public eDeath ( ) {
new iKiller = read_data ( 1 );
new iVictim = read_data ( 2 );
new Headshot = read_data ( 3 );
new weapon [ 32 ];
read_data ( 4, weapon, sizeof ( weapon ) -1 );
if ( iKiller == iVictim )
{
return 1;
}
new name [ 32 ];
get_user_name ( iVictim, name, sizeof ( name ) -1 );
if ( Headshot && get_user_team ( iKiller ) == 2 )
{
eXP [ iKiller ] += get_pcvar_num ( HsXp );
ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ HeadShot ]^3", szPrefix, get_pcvar_num ( HsXp ) + get_pcvar_num ( KillXp ) );
}
else if ( Headshot && get_user_team ( iKiller ) == 2 && get_user_flags ( iKiller ) & VIP_ACCESS )
{
eXP [ iKiller ] += get_pcvar_num ( HsXp ) + 10;
ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ HeadShot ]^3", szPrefix, get_pcvar_num ( HsXp ) + get_pcvar_num ( KillXp ) );
}
else if ( Headshot && get_user_team ( iKiller ) == 1 && get_user_weapon ( iKiller ) == CSW_KNIFE && get_user_flags ( iKiller ) & VIP_ACCESS )
{
eXP [ iKiller ] += get_pcvar_num ( HsXp ) + 10;
set_user_health ( iKiller, get_user_health ( iKiller ) + 35 );
set_dhudmessage ( 31, 201, 31, 0.02, 0.90, 0, 6.0, 1.0 );
show_dhudmessage ( iKiller, "+35 HP" );
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 );
}
else if ( Headshot && get_user_team ( iKiller ) == 1 && get_user_weapon ( iKiller ) == CSW_KNIFE )
{
eXP [ iKiller ] += get_pcvar_num ( HsXp );
set_user_health ( iKiller, get_user_health ( iKiller ) + 25 );
set_dhudmessage ( 31, 201, 31, 0.02, 0.90, 0, 6.0, 1.0 );
show_dhudmessage ( iKiller, "+25 HP" );
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 ) );
}
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 )
{
eXP [ iKiller ] += get_pcvar_num ( HeXp ) + 5;
set_user_credits ( iKiller, get_user_credits ( iKiller ) + 2 );
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);
}
else if ( equali ( weapon, "grenade" ) && Level [ iKiller ] == 0 || Level [ iKiller ] == 1 || Level [ iKiller ] == 2 || Level [ iKiller ] == 3 || Level [ iKiller ] == 4 || Level [ iKiller ] == 5 )
{
eXP [ iKiller ] += get_pcvar_num ( HeXp );
set_user_credits ( iKiller, get_user_credits ( iKiller ) + 1 );
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) );
}
else if ( equali ( weapon, "grenade" ) && get_user_flags ( iKiller ) & VIP_ACCESS )
{
eXP [ iKiller ] += get_pcvar_num ( HeXp ) + 10;
ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ He Grenade ]^3", szPrefix, get_pcvar_num(HeXp) + get_pcvar_num(KillXp) + 10 );
}
else if ( equali ( weapon, "grenade" ) )
{
eXP [ iKiller ] += get_pcvar_num ( HeXp );
ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ He Grenade ]^3", szPrefix, get_pcvar_num(HeXp) + get_pcvar_num(KillXp) );
}
else if ( equali ( weapon, "knife" ) && get_user_team ( iKiller ) == 2 && !salamander [ iKiller ] && get_user_flags ( iKiller ) & VIP_ACCESS )
{
eXP [ iKiller ] += get_pcvar_num ( KnifeXp ) + 10;
ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ Knife ]^3", szPrefix, get_pcvar_num(KnifeXp) + get_pcvar_num(KillXp) + 10 );
}
else if ( equali ( weapon, "knife" ) && get_user_team ( iKiller ) == 2 && !salamander [ iKiller ] )
{
eXP [ iKiller ] += get_pcvar_num ( HeXp );
ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ Knife ]^3", szPrefix, get_pcvar_num(KnifeXp) + get_pcvar_num(KillXp) );
}
else
{
ColorChat ( iKiller, GREEN, "%s Ai primit^4 %i^3 XP^4 [ Kill ]^3", szPrefix, get_pcvar_num ( KillXp ) );
}
if ( Level [ iVictim ] >= 25 ) {
AddYellowBonusBox ( iVictim );
}
else if ( Level [ iVictim ] < 25 ) {
AddBonusBox ( iVictim );
}
if ( get_user_team ( iKiller ) == 2 && get_user_team ( iVictim ) == 1 ) {
cs_set_user_money ( iKiller, cs_get_user_money ( iKiller ) + 600 );
eXP [ iKiller ] += get_pcvar_num ( KillXp );
}
if ( get_user_team ( iKiller ) == 1 && get_user_team ( iVictim ) == 2 ) {
cs_set_user_money ( iKiller, cs_get_user_money ( iKiller ) + 500 );
eXP [ iKiller ] += get_pcvar_num ( KillXp );
}
if ( Level [ iKiller ] <= 30 ) {
ShowHud ( iKiller );
return 1;
}
while ( eXP [ iKiller ] >= Levels [ Level [ iKiller ] ] ) {
ColorChat ( iKiller, GREEN, "%s Felicitari ! Acum ai levelul ^4%s^3, cu ^4%i^3 XP.", szPrefix, Prefix [ Level [ iKiller ] ], eXP [ iKiller ] );
Level [ iKiller ] ++;
}
SaveData ( iKiller );
if ( !is_user_alive ( iVictim ) && get_user_team ( iVictim ) == 1 ) {
new gMsgScreenFade = get_user_msgid ( "ScreenFade" );
message_begin ( MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , iVictim );
write_short ( (6<<10) ); // duration
write_short ( (5<<10) ); // hold time
write_short ( (1<<12) ); // fade type
write_byte ( 255 );
write_byte ( 0 );
write_byte ( 0 );
write_byte ( 170 );
message_end ( );
}
else if ( !is_user_alive ( iVictim ) && get_user_team ( iVictim ) == 2 ) {
new gMsgScreenFade = get_user_msgid ( "ScreenFade" );
message_begin ( MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , iVictim );
write_short ( (6<<10) ); // duration
write_short ( (5<<10) ); // hold time
write_short ( (1<<12) ); // fade type
write_byte ( 0 );
write_byte ( 0 );
write_byte ( 255 );
write_byte ( 170 );
message_end ( );
}
return 1;
}
public CmdStart(id, uc_handle, seed) {
new ent = fm_find_ent_by_class(id, ClassName)
if(is_valid_ent(ent)) {
new classname[32]
pev(ent, pev_classname, classname, 31)
if (equal(classname, ClassName)) {
if (pev(ent, pev_frame) >= 120)
set_pev(ent, pev_frame, 0.0)
else
set_pev(ent, pev_frame, pev(ent, pev_frame) + 1.0)
switch(pev(ent, pev_team))
{
case 1:
{
}
case 2:
{
}
}
}
}
}
public AddBonusBox(id) {
if(is_user_connected(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR) {
new ent = fm_create_entity("info_target")
new origin[3]
get_user_origin(id, origin, 0)
set_pev(ent,pev_classname, ClassName)
switch(cs_get_user_team(id))
{
case CS_TEAM_T: {
engfunc(EngFunc_SetModel,ent, Model[1])
set_pev(ent,pev_team, 2)
}
case CS_TEAM_CT: {
engfunc(EngFunc_SetModel,ent, Model[0])
set_pev(ent,pev_team, 1)
}
}
set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0})
set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0})
set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0})
engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0})
set_pev(ent,pev_solid,SOLID_BBOX)
set_pev(ent,pev_movetype,MOVETYPE_TOSS)
new Float:fOrigin[3]
IVecFVec(origin, fOrigin)
set_pev(ent, pev_origin, fOrigin)
}
}
public AddYellowBonusBox(id)
{
if(is_user_connected(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR) {
new ent = fm_create_entity("info_target")
new origin[3]
get_user_origin(id, origin, 0)
set_pev(ent,pev_classname, ClassName)
switch(cs_get_user_team(id))
{
case CS_TEAM_T: {
engfunc(EngFunc_SetModel,ent, Model_Yellow[1])
set_pev(ent,pev_team, 2)
}
case CS_TEAM_CT: {
engfunc(EngFunc_SetModel,ent, Model_Yellow[0])
set_pev(ent,pev_team, 1)
}
}
set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0})
set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0})
set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0})
engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0})
set_pev(ent,pev_solid,SOLID_BBOX)
set_pev(ent,pev_movetype,MOVETYPE_TOSS)
new Float:fOrigin[3]
IVecFVec(origin, fOrigin)
set_pev(ent, pev_origin, fOrigin)
}
}
public Touch(toucher, touched)
{
if (!is_user_alive(toucher) || !pev_valid(touched))
return FMRES_IGNORED
new classname[32]
pev(touched, pev_classname, classname, 31)
if (!equal(classname, ClassName))
return FMRES_IGNORED
if(get_user_team(toucher) == pev(touched, pev_team) )
{
GiveBonusBox(toucher)
set_pev(touched, pev_effects, EF_NODRAW)
set_pev(touched, pev_solid, SOLID_NOT)
remove_entity(touched);
}
return FMRES_IGNORED
}
public Touch_Yellow ( toucher, touched ) {
if (!is_user_alive(toucher) || !pev_valid(touched))
return FMRES_IGNORED
new classname[32]
pev(touched, pev_classname, classname, 31)
if (!equal(classname, ClassName))
return FMRES_IGNORED
if(get_user_team(toucher) == pev(touched, pev_team) )
{
GiveYellowBonusBox(toucher)
set_pev(touched, pev_effects, EF_NODRAW)
set_pev(touched, pev_solid, SOLID_NOT)
remove_entity(touched);
}
return FMRES_IGNORED
}
public event_cur_weapon(id) {
if(HasSpeed[id] && cs_get_user_team(id) == CS_TEAM_T && get_user_maxspeed(id) < get_pcvar_float(CvarFurienSpeed)) {
set_user_maxspeed(id, get_pcvar_float(CvarFurienSpeed));
}
if(HasSpeed[id] && cs_get_user_team(id) == CS_TEAM_CT && get_user_maxspeed(id) < get_pcvar_float(CvarAntiFurienSpeed)) {
set_user_maxspeed(id, get_pcvar_float(CvarAntiFurienSpeed));
}
if ( LowSpeed [ id ] && cs_get_user_team ( id ) == CS_TEAM_T ) {
set_user_maxspeed ( id, get_user_maxspeed ( id ) - 250 );
}
if ( LowSpeed [ id ] && cs_get_user_team ( id ) == CS_TEAM_CT ) {
set_user_maxspeed ( id, get_user_maxspeed ( id ) - 70 );
}
}
public wrongeffect ( id ) {
new gMsgScreenFade = get_user_msgid ( "ScreenFade" );
message_begin ( MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , id );
write_short ( (6<<10) ); // duration
write_short ( (5<<10) ); // hold time
write_short ( (1<<12) ); // fade type
write_byte ( 255 );
write_byte ( 0 );
write_byte ( 0 );
write_byte ( 170 );
message_end ( );
}
public goodeffect ( id ) {
new gMsgScreenFade = get_user_msgid ( "ScreenFade" );
message_begin ( MSG_ONE_UNRELIABLE , gMsgScreenFade , {0,0,0} , id );
write_short ( (6<<10) ); // duration
write_short ( (5<<10) ); // hold time
write_short ( (1<<12) ); // fade type
write_byte ( 0 );
write_byte ( 0 );
write_byte ( 255 );
write_byte ( 170 );
message_end ( );
}
public GiveYellowBonusBox ( id ) {
switch (random_num(1,5))
{
case 1:
{
goodeffect ( id );
set_user_health ( id, get_user_health ( id ) + 150 );
ColorChat ( id, GREEN, "%s Ai primit^4 150^3 HP .^4", szPrefix );
}
case 2:
{
goodeffect ( id );
set_user_armor ( id, get_user_armor ( id ) + 200 );
ColorChat ( id, GREEN, "%s Ai Primit^4 200^3 AP .^4", szPrefix );
}
case 3:
{
if ( get_user_team ( id ) == 2 ) {
dual_mp5 [ id ] = true;
k1ases_weapon [ id ] = false;
remove_dragoncannon ( id );
give_item ( id, "weapon_mp5navy" );
cs_set_user_bpammo ( id, CSW_MP5NAVY, 200 );
ColorChat ( id, GREEN, "%s Ai primit^4 Dual Mp5^3 .^4", szPrefix );
}
else if ( get_user_team ( id ) == 1 ) {
give_item ( id, "weapon_flashbang" );
cs_set_user_bpammo ( id, CSW_FLASHBANG, 5 );
ColorChat ( id, GREEN, "%s Ai primit^4 5^3 grenazi^4 FLASH^3 .^4", szPrefix );
}
}
case 4:
{
give_item ( id, "weapon_hegrenade" );
cs_set_user_bpammo ( id, CSW_HEGRENADE, 3 );
ColorChat ( id, GREEN, "%s Ai primit^4 3^3 grenazi^4 HE^3 .^4", szPrefix );
}
case 5:
{
set_user_credits ( id, get_user_credits ( id ) + 5 );
ColorChat ( id, GREEN, "%s Ai primit^4 5^3 credite .^4", szPrefix );
}
}
}
public GiveBonusBox(id) {
if ( get_user_team ( id ) == 1 ) {
switch (random_num(1,20))
{
case 1:
{
goodeffect ( id );
set_user_health ( id, get_user_health ( id ) + 50 );
ColorChat ( id, GREEN, "%s Ai primit^4 50^3 HP .^4", szPrefix );
}
case 2:
{
goodeffect ( id );
set_user_armor ( id, get_user_armor ( id ) + 100 );
ColorChat ( id, GREEN, "%s Ai primit^4 100^3 AP .^4", szPrefix );
}
case 3:
{
goodeffect ( id );
set_user_health ( id, get_user_health ( id ) - 20 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut^4 20^3 HP .^4", szPrefix );
}
case 4:
{
goodeffect ( id );
set_user_armor ( id, get_user_armor ( id ) - 50 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut^4 50^3 AP .^4", szPrefix );
}
case 5:
{
goodeffect ( id );
cs_set_user_money ( id, cs_get_user_money ( id ) + 3000 );
ColorChat ( id, GREEN, "%s Ai primit^4 3000^3 $ .^4", szPrefix );
}
case 6:
{
cs_set_user_money ( id, cs_get_user_money ( id ) - 2000 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut^4 2000^3 $ .^4", szPrefix );
}
case 7:
{
goodeffect ( id );
set_user_gravity ( id, 0.4 );
ColorChat ( id, GREEN, "%s Ai primit^4 400^3 Gravity .^4", szPrefix );
}
case 8:
{
goodeffect ( id );
HasSpeed[id] = true;
ColorChat ( id, GREEN, "%s Ai primit^4 1000^3 Speed .^4", szPrefix );
}
case 9:
{
LowSpeed [ id ] = true;
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut din viteza .^4", szPrefix );
}
case 10:
{
set_user_health ( id, 225 );
set_user_armor ( id, 225 );
goodeffect ( id );
ColorChat ( id, GREEN, "%s Acum ai^4 225^3 HP si^4 225^3 AP^4 .^4", szPrefix );
}
case 11:
{
cs_set_user_money ( id, 0 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut toti banii !^4", szPrefix );
}
case 12:
{
if ( !super_knife_shop [ id ] || !super_knife_shop2 [ id ] ) {
goodeffect ( id );
if ( Level [ id ] < 15 ) {
super_knife_shop [ id ] = true;
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model );
}
else if ( Level [ id ] >= 15 ) {
super_knife_shop2 [ id ] = true;
set_pev ( id, pev_viewmodel2, super_knife_shop_v_model2 );
set_pev ( id, pev_weaponmodel2, super_knife_shop_p_model2 );
}
ColorChat ( id, GREEN, "%s Ai primit^4 Super Knife^4 .^4", szPrefix );
}
else if ( super_knife_shop [ id ] || super_knife_shop2 [ id ] ) {
goodeffect ( id );
fm_set_user_health ( id, get_user_health ( id ) + 70 );
ColorChat ( id, GREEN, "%s Ai primit^4 70^3 HP .^4", szPrefix );
}
}
case 13:
{
goodeffect ( id );
set_user_xp ( id, get_user_xp ( id ) + 100 );
ColorChat ( id, GREEN, "%s Ai primit^4 100^3 XP .^4", szPrefix );
}
case 14:
{
wrongeffect ( id );
set_user_xp ( id, get_user_xp ( id ) - 50 );
ColorChat ( id, GREEN, "%s Ai pierdut^4 50^3 XP .^4", szPrefix );
}
case 15:
{
ColorChat ( id, GREEN, "%s A trecut mosul pe la tine, ai primit^4 16000^3 $ .^4", szPrefix );
goodeffect ( id );
}
case 16:
{
if ( !vip_axe_knife [ id ] || !deklowaz [ id ] ) {
HasTeleport[id] = true;
client_cmd(id, "bind x power2");
goodeffect ( id );
ColorChat ( id, GREEN, "%s Ai primit puterea de a te teleporta, apasa tasta^4 X^3 pentru a te teleporta .^4", szPrefix );
}
else {
set_user_credits ( id, get_user_credits ( id ) + 2 );
ColorChat ( id, GREEN, "%s Ai primit^4 2^3 credite .", szPrefix );
}
}
case 17:
{
HasSpeed[id] = true;
client_cmd(id, "cl_sidespeed %d",get_pcvar_float(CvarFurienSpeed))
client_cmd(id, "cl_forwardspeed %d",get_pcvar_float(CvarFurienSpeed))
client_cmd(id, "cl_backspeed %d",get_pcvar_float(CvarFurienSpeed))
set_user_maxspeed(id, get_pcvar_float(CvarFurienSpeed));
}
case 18:
{
fm_set_user_health ( id, get_user_health ( id ) + 80 );
ColorChat ( id, GREEN, "%s Ai primit^4 80^3 HP .^4", szPrefix );
}
case 19:
{
give_item ( id, "weapon_hegrenade" );
ColorChat ( id, GREEN, "%s Ai primit o grenada^4 HE^3 .", szPrefix );
}
case 20:
{
give_item ( id, "weapon_flashbang" );
ColorChat ( id, GREEN, "%s Ai primit o grenada^4 FLASH^3 .", szPrefix );
}
}
}
else if ( get_user_team ( id ) == 2 ) {
switch (random_num(1,23))
{
case 1:
{
goodeffect ( id );
set_user_health ( id, get_user_health ( id ) + 50 );
ColorChat ( id, GREEN, "%s Ai primit^4 50^3 HP .^4", szPrefix );
}
case 2:
{
goodeffect ( id );
set_user_armor ( id, get_user_armor ( id ) + 100 );
ColorChat ( id, GREEN, "%s Ai primit^4 100^3 AP .^4", szPrefix );
}
case 3:
{
goodeffect ( id );
set_user_health ( id, get_user_health ( id ) - 20 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut^4 20^3 HP .^4", szPrefix );
}
case 4:
{
goodeffect ( id );
set_user_armor ( id, get_user_armor ( id ) - 50 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut^4 50^3 AP .^4", szPrefix );
}
case 5:
{
goodeffect ( id );
cs_set_user_money ( id, cs_get_user_money ( id ) + 3000 );
ColorChat ( id, GREEN, "%s Ai primit^4 3000^3 $ .^4", szPrefix );
}
case 6:
{
cs_set_user_money ( id, cs_get_user_money ( id ) - 2000 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut^4 2000^3 $ .^4", szPrefix );
}
case 7:
{
goodeffect ( id );
set_user_gravity ( id, 0.4 );
ColorChat ( id, GREEN, "%s Ai primit^4 400^3 Gravity .^4", szPrefix );
}
case 8:
{
goodeffect ( id );
HasSpeed[id] = true;
ColorChat ( id, GREEN, "%s Ai primit^4 750^3 Speed .^4", szPrefix );
}
case 9:
{
entity_set_float ( id, EV_FL_maxspeed, 250.0 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut din viteza .^4", szPrefix );
}
case 10:
{
set_user_health ( id, 10 );
set_user_armor ( id, 20 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Acum ai^4 10^3 HP si^4 20^3 AP^4 .^4", szPrefix );
}
case 11:
{
cs_set_user_money ( id, 0 );
wrongeffect ( id );
ColorChat ( id, GREEN, "%s Ai pierdut toti banii !^4", szPrefix );
}
case 12:
{
if ( !salamander [ id ] ) {
goodeffect ( id );
salamander [ id ] = true;
set_task ( 0.1, "SalamanderGiveItem", id );
set_task ( 30.0, "reverse_salamander", id );
ColorChat ( id, GREEN, "%s Ai primit^4 Salamander^3 pentru^4 30^3 secunde .", szPrefix );
}
else if ( salamander [ id ] ) {
goodeffect ( id );
fm_set_user_health ( id, get_user_health ( id ) + 100 );
ColorChat ( id, GREEN, "%s Ai primit^4 100^3 HP .^4", szPrefix );
}
}
case 13:
{
goodeffect ( id );
set_user_xp ( id, get_user_xp ( id ) + 100 );
ColorChat ( id, GREEN, "%s Ai primit^4 100^3 XP .^4", szPrefix );
}
case 14:
{
wrongeffect ( id );
set_user_xp ( id, get_user_xp ( id ) - 20 );
ColorChat ( id, GREEN, "%s Ai pierdut^4 20^3 XP .^4", szPrefix );
}
case 15:
{
ColorChat ( id, GREEN, "%s A trecut mosul pe la tine, ai primit^4 16000^3 $ .^4", szPrefix );
goodeffect ( id );
}
case 16:
{
if ( !vip_axe_knife [ id ] || !deklowaz [ id ] ) {
HasTeleport[id] = true;
client_cmd(id, "bind x power2");
goodeffect ( id );
ColorChat ( id, GREEN, "%s Ai primit puterea de a te teleporta, apasa tasta^4 X^3 pentru a te teleporta .^4", szPrefix );
}
else {
goodeffect ( id );
set_user_credits ( id, get_user_credits ( id ) + 2 );
ColorChat ( id, GREEN, "%s Ai primit^4 2^3 credite .", szPrefix );
}
}
case 17:
{
goodeffect ( id );
HasSpeed[id] = true;
client_cmd(id, "cl_sidespeed %d",get_pcvar_float(CvarAntiFurienSpeed))
client_cmd(id, "cl_forwardspeed %d",get_pcvar_float(CvarAntiFurienSpeed))
client_cmd(id, "cl_backspeed %d",get_pcvar_float(CvarAntiFurienSpeed))
set_user_maxspeed(id, get_pcvar_float(CvarAntiFurienSpeed));
}
case 18:
{
if ( !k1ases_weapon [ id ] ) {
goodeffect ( id );
k1ases_weapon [ id ] = true;
dual_mp5 [ id ] = false;
remove_dragoncannon ( id );
give_k1ases ( id );
ColorChat ( id, GREEN, "%s Ai primit^4 K1ASUS^3 .^4", szPrefix );
}
else if ( k1ases_weapon [ id ] ) {
goodeffect ( id );
fm_set_user_health ( id, get_user_health ( id ) + 70 );
ColorChat ( id, GREEN, "%s Ai primit^4 70^3 HP .^4", szPrefix );
}
}
case 19:
{
goodeffect ( id );
give_item ( id, "weapon_hegrenade" );
ColorChat ( id, GREEN, "%s Ai primit o grenada^4 HE^3 .", szPrefix );
}
case 20:
{
goodeffect ( id );
give_item ( id, "weapon_flashbang" );
ColorChat ( id, GREEN, "%s Ai primit o grenada^4 FLASH^3 .", szPrefix );
}
case 21:
{
if ( UserHaveQuad [ id ] ) {
goodeffect ( id );
ColorChat ( id, GREEN, "%s Ai primit^4 5^3 gloante pentru^4 Quad-Barrel^3 .^4", szPrefix );
cs_set_user_bpammo ( id, CSW_QB, cs_get_user_bpammo ( id, CSW_QB ) + 5 );
}
else {
goodeffect ( id );
set_task ( 0.1, "GiveQuadBarrel", id );
ColorChat ( id, GREEN, "%s Ai primit^4 Quad-Barrel^3 .", szPrefix );
UserHaveQuad [ id ] = true;
}
}
case 22:
{
if ( UserHaveDragon [ id ] ) {
goodeffect ( id );
g_cannon_ammo [ id ] += 3;
ColorChat ( id, GREEN, "%s Ai primit^4 3^3 gloante pentru^4 Dragon Cannon^3 .^4", szPrefix );
}
else {
goodeffect ( id );
ColorChat ( id, GREEN, "%s Ai primit^4 Dragon Cannon^3 .", szPrefix );
set_task ( 0.1, "get_dragoncannon", id );
UserHaveDragon [ id ] = true;
}
}
case 23:
{
if ( UserHaveM79 [ id ] ) {
goodeffect ( id );
ColorChat ( id, GREEN, "%s Ai primit^4 2^3 grenazi pentru lansator. ^4", szPrefix );
grenade_count [ id ] += 2;
}
else {
goodeffect ( id );
ColorChat ( id, GREEN, "%s Ai primit un^4 Lansator de Grenazi^3 .^4", szPrefix );
give_weapon ( id, 2 );
m79++;
UserHaveM79 [ id ] = true;
}
}
}
}
}
public CmdTeleport(id) {
if (!is_user_alive(id) || !HasTeleport[id]) return PLUGIN_CONTINUE
if (Teleport_Cooldown[id]) {
ColorChat ( id, GREEN, "%s Puterea iti va reveni in^4 %d^3 secunde .", Teleport_Cooldown [ id ] );
return PLUGIN_CONTINUE
}
else if (teleport(id)) {
emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_task(id)
Teleport_Cooldown[id] = get_pcvar_num(CvarTeleportCooldown);
set_task(1.0, "TeleportShowHUD", id, _, _, "b");
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(get_pcvar_num(CvarTeleportCooldown) != 1) {
show_hudmessage(id, "Puterea iti va reveni in^4 %d^3 secunde",get_pcvar_num(CvarTeleportCooldown));
}
if(get_pcvar_num(CvarTeleportCooldown) == 1) {
show_hudmessage(id, "Puterea iti va reveni in^4 %d^3 secunda",get_pcvar_num(CvarTeleportCooldown));
}
}
else {
ColorChat ( id, GREEN, "%s Pozitia de teleportare este invalida .^4", szPrefix );
}
return PLUGIN_CONTINUE
}
public Light(entity, red, green, blue)
{
if(is_valid_ent(entity)) {
static Float:origin[3]
pev(entity, pev_origin, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY, _, entity);
write_byte(TE_DLIGHT) // TE id
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2])
write_byte(7)
write_byte(red)
write_byte(green)
write_byte(blue)
write_byte(2)
write_byte(0)
message_end();
}
}
public cmdVipWeaponsMenu ( id, level, cid ) {
new menu = menu_create ( "\rFurien XP \yMenu", "VIPWeapons_Giver" );
if ( get_user_team ( id ) == 2 ) {
menu_additem ( menu, "\ySCORPION MP5 [ \r3 CREDITE \y]", "1", VIP_ACCESS );
menu_additem ( menu, "\yQUAD BARREL [ \r3 CREDITE \y]", "2", VIP_ACCESS );
menu_additem ( menu, "\yDRAGON CANNON [ \r4 CREDITE \y]", "3", VIP_ACCESS );
menu_additem ( menu, "\yM79 LAUNCHER [ \r4 CREDITE \y]", "4", VIP_ACCESS );
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
}
return 1;
}
public VIPWeapons_Giver ( id, menu, item ) {
if( item == MENU_EXIT )
{
return 1;
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
new key = str_to_num ( data );
switch(key)
{
case 1:
{
new iCredits = get_user_credits(id) - 3;
if( iCredits < 0 )
{
ColorChat ( id, GREEN, "%s Nu ai destule credite !", szPrefix );
return 1;
}
else
{
ColorChat ( id, GREEN, "%s Ai cumparat^4 Scorpion Mp5^3 .^4", szPrefix );
give_k1ases ( id );
set_user_credits ( id, iCredits );
return 1;
}
}
case 2:
{
new iCredits = get_user_credits(id) - 3;
if( iCredits < 0 )
{
ColorChat ( id, GREEN, "%s Nu ai destule credite !", szPrefix );
return 1;
}
else
{
ColorChat ( id, GREEN, "%s Ai cumparat^4 Quad-Barrel^3 .^4", szPrefix );
set_task ( 0.1, "GiveQuadBarrel", id );
set_user_credits ( id, iCredits );
return 1;
}
}
case 3:
{
new iCredits = get_user_credits(id) - 4;
if( iCredits < 0 )
{
ColorChat ( id, GREEN, "%s Nu ai destule credite !", szPrefix );
return 1;
}
else
{
ColorChat ( id, GREEN, "%s Ai cumparat^4 Dragon Cannon^3 .^4", szPrefix );
set_task ( 0.1, "get_dragoncannon", id );
set_user_credits ( id, iCredits );
return 1;
}
}
case 4:
{
new iCredits = get_user_credits(id) - 4;
if( iCredits < 0 )
{
ColorChat ( id, GREEN, "%s Nu ai destule credite !", szPrefix );
return 1;
}
else
{
ColorChat ( id, GREEN, "%s Ai cumparat^4 M79 Launcher^3 .^4", szPrefix );
give_weapon ( id, 2 );
m79++;
UserHaveM79 [ id ] = true;
set_user_credits ( id, iCredits );
return 1;
}
}
}
menu_destroy ( menu );
return 1;
}
public cmdXpMenu ( id, level, cid ) {
new menu = menu_create ( "\rFurien XP \yMenu", "Menu_Giver" );
menu_additem ( menu, "\y3 HE \y[ \rLvL. 3 - 1 Credit\y ]", "1", 0 );
menu_additem ( menu, "\y5 FB & 2 SMK \y[ \rLvL. 5 - 1 Credit \y ]", "2", 0 );
menu_additem ( menu, "\y6 HE \y[ \rLvL. 8 - 2 Credite\y ]", "3", 0 );
menu_additem ( menu, "\ySPEED \y[ \rLvL. 10 - 2 Credite \y ]", "4", 0 );
menu_additem ( menu, "\yGRAVITY \y[ \rLvL. 13 - 2 Credite\y ]", "5", 0 );
menu_additem ( menu, "\yGODMODE \y[ \rLvL. 16 - 3 Credite\y ]", "6", 0 );
menu_additem ( menu, "\yNOCLIP \y[ \rLvL. 18 - 3 Credite\y ]", "7", 0 );
menu_additem ( menu, "\yCHAMELEON \y[ \rLvL. 22 - 4 Credite \y ]", "8", 0 );
menu_additem ( menu, "\yRESPAWN \y[ \rLvL. 25 - 5 Credite \y ]", "9", 0 );
if ( get_user_team ( id ) == 2 ) {
menu_additem ( menu, "\ySALAMANDER \y[ \rLvL. 28 - 5 Credite \y ]", "10", 0 );
}
menu_setprop ( menu, MPROP_EXIT, MEXIT_ALL );
menu_display ( id, menu, 0 );
return 1;
}
public Menu_Giver ( id, menu, item ) {
if( item == MENU_EXIT )
{
return 1;
}
if ( g_iCount [ id ] >= 1 ) {
ColorChat ( id, GREEN, "%s Ai folosit odata aceasta optiune .", szPrefix );
}
new data [ 6 ], szName [ 64 ];
new access, callback;
menu_item_getinfo ( menu, item, access, data,charsmax ( data ), szName,charsmax ( szName ), callback );
new key = str_to_num ( data );
switch(key)
{
case 1:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 3 ) {
give_item ( id, "weapon_hegrenade" );
cs_set_user_bpammo ( id, CSW_HEGRENADE, 3 );
++g_Menu [ id ];
set_user_credits ( id, get_user_credits ( id ) - 1 );
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 3 .", szPrefix );
return 1;
}
}
}
case 2:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 5 ) {
give_item ( id, "weapon_flashbang" );
give_item ( id, "weapon_smokegrenade" );
cs_set_user_bpammo ( id, CSW_FLASHBANG, 5 );
cs_set_user_bpammo ( id, CSW_SMOKEGRENADE, 2 );
set_user_credits ( id, get_user_credits ( id ) - 1 );
++g_Menu [ id ];
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 5 .", szPrefix );
return 1;
}
}
}
case 3:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 8 ) {
give_item ( id, "weapon_hegrenade" );
cs_set_user_bpammo ( id, CSW_HEGRENADE, 6 );
++g_Menu [ id ];
set_user_credits ( id, get_user_credits ( id ) - 2 );
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 8 .", szPrefix );
return 1;
}
}
}
case 4:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 10 ) {
entity_set_float ( id, EV_FL_maxspeed, 450.0 );
++g_Menu [ id ];
set_user_credits ( id, get_user_credits ( id ) - 2 );
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 10 .", szPrefix );
return 1;
}
}
}
case 5:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 13 ) {
set_user_gravity ( id, 0.5 );
++g_Menu [ id ];
set_user_credits ( id, get_user_credits ( id ) - 2 );
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 13 .", szPrefix );
return 1;
}
}
}
case 6:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 16 ) {
set_user_godmode ( id, 1 );
ColorChat ( id, GREEN, "%s Ai primit God pentru^4 8^4 secunde .", szPrefix );
set_task ( 8.0, "reverse_godmode", id );
++g_Menu [ id ];
set_user_credits ( id, get_user_credits ( id ) - 3 );
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 16 .", szPrefix );
return 1;
}
}
}
case 7:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 18 ) {
set_user_noclip ( id, 1 );
ColorChat ( id, GREEN, "%s Ai primit Noclip pentru^4 5^4 secunde .", szPrefix );
set_task ( 5.0, "reverse_noclip", id );
++g_Menu [ id ];
set_user_credits ( id, get_user_credits ( id ) - 3 );
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 18 .", szPrefix );
return 1;
}
}
}
case 8:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 22 ) {
chameleon ( id );
++g_Menu [ id ];
set_user_credits ( id, get_user_credits ( id ) - 4 );
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 22 .", szPrefix );
return 1;
}
}
}
case 9:
{
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
}
else {
if ( Level [ id ] >= 25 ) {
if(is_user_alive(id))
{
ColorChat ( id, GREEN, "%s Esti deja in viata .", szPrefix );
return 1;
}
if ( get_user_team ( id ) == 3) {
ColorChat ( id, GREEN, "%s Esti spectator .", szPrefix );
if(!is_user_alive(id))
{
ExecuteHamB ( Ham_CS_RoundRespawn, id );
set_task(0.5, "SetUserWeapons", id + 12345);
++g_Menu [ id ];
set_user_credits ( id, get_user_credits ( id ) - 5 );
return 1;
}
return 1;
}
else {
ColorChat ( id, GREEN, "%s Nu ai level 25 .", szPrefix );
return 1;
}
}
}
}
case 10:
{
if ( get_user_team ( id ) == 2 ) {
if ( g_Menu [ id ] >= 3 ) {
ColorChat ( id, GREEN, "%s Ai folosit deja meniul de^4 3^3 ori .", szPrefix );
return 1;
}
else {
if ( Level [ id ] >= 28 && !SalamanderLimit [ id ] ) {
salamander [ id ] = true;
ColorChat ( id, GREEN, "%s Ai primit aceasta arma pentru^4 1^4 minut .", szPrefix );
set_task ( 0.1, "SalamanderGiveItem", id );
set_task ( 60.0, "reverse_salamander", id );
++g_Menu [ id ];
SalamanderLimit [ id ] = true;
set_user_credits ( id, get_user_credits ( id ) - 5 );
return 1;
}
else if ( SalamanderLimit [ id ] ) {
ColorChat ( id, GREEN, "%s Ai mai folosit odata aceasta optiune .", szPrefix );
return 1;
}
else if ( Level [ id ] < 28 ) {
ColorChat ( id, GREEN, "%s Nu ai level 30 .", szPrefix );
return 1;
}
}
}
}
}
menu_destroy ( menu );
return 1;
}
public SetUserWeapons(id) {
id -= 12345;
if( !is_user_connected(id) ) return PLUGIN_HANDLED;
strip_user_weapons(id);
give_item(id, "weapon_knife");
set_task ( 0.1, "cmdClassMenu", id );
return PLUGIN_CONTINUE;
}
public reverse_godmode ( id ) {
set_user_godmode ( id , 0 );
}
public reverse_noclip ( id ) {
set_user_noclip ( id, 0 );
}
public reverse_invis ( id ) {
set_user_rendering( id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255 );
ColorChat ( id, GREEN, "%s Timpul a expirat ! Acum esti din nou^4 vizibil^3 .", szPrefix );
}
public reverse_salamander ( id ) {
strip_user_weapons ( id );
give_item ( id, "weapon_knife" );
salamander [ id ] = false;
set_task ( 0.1, "cmdClassMenu", id );
ColorChat ( id, GREEN, "%s Timpul a expirat ! Nu mai ai arma^4 salamander^3 .", szPrefix );
}
public show_salamander_icon ( id ) {
if ( salamander [ id ] ) {
if (!(pev(id,pev_button) & FL_ONGROUND))
{
new iconstatus;
iconstatus = get_user_msgid("StatusIcon");
message_begin(MSG_ONE,iconstatus,{0,0,0},id);
write_byte(1); // status (0=hide, 1=show, 2=flash)
write_string("dmg_heat"); // sprite name
write_byte(255); // red
write_byte(0); // green
write_byte(0); // blue
message_end();
}
}
else {
if (!(pev(id,pev_button) & FL_ONGROUND))
{
new iconstatus;
iconstatus = get_user_msgid("StatusIcon");
message_begin(MSG_ONE,iconstatus,{0,0,0},id);
write_byte(0); // status (0=hide, 1=show, 2=flash)
write_string("dmg_heat"); // sprite name
write_byte(255); // red
write_byte(0); // green
write_byte(0); // blue
message_end();
}
}
}
public reverse_model ( id ) {
if ( get_user_team ( id ) == 1 ) {
cs_set_user_model ( id, "guerilla" );
ColorChat ( id, GREEN, "%s Timpul a expirat ! Acum arati din nou ca un^4 Furien^3 .", szPrefix );
}
else if ( get_user_team ( id ) == 2 ) {
cs_set_user_model ( id, "gign" );
ColorChat ( id, GREEN, "%s Timpul a expirat ! Acum arati din nou ca un^4 AntiFurien^3 .", szPrefix );
}
}
public chameleon ( id ) {
if ( get_user_team ( id ) == 1 ) {
cs_set_user_model ( id, "gign" );
ColorChat ( id, GREEN, "%s Acum arati ca un^4 AntiFurien^3 pentru^4 60^3 secunde .", szPrefix );
set_task ( 60.0, "reverse_model", id );
}
else if ( get_user_team ( id ) == 2 ) {
cs_set_user_model ( id, "guerilla" );
ColorChat ( id, GREEN, "%s Acum arati ca un^4 Furien^3 pentru^4 60^3 secunde .", szPrefix );
set_task ( 60.0, "reverse_model", id );
}
}
public grenade_throw ( id, gid, wid ) {
if ( strike_grenade [ id ] || strike_grenade2 [ id ] || strike_grenade3 [ id ] && get_user_weapon ( id ) == CSW_HEGRENADE && get_user_team ( id ) == 1 ) {
new gtm = 1;
if(!gtm) return;
new r, g, b;
switch(gtm)
{
case 1:
{
r = 255;
g = 0;
b = 0;
}
}
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMFOLLOW);
write_short(gid);
write_short(g_trail);
write_byte(10);
write_byte(5);
write_byte(r);
write_byte(g);
write_byte(b);
write_byte(192);
message_end();
}
}
// POWERS -------------------------------------
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Drop Enemy Weapon |
//==========================================================================================================
public DropShowHUD(id) {
if (!is_user_alive(id) || HasPower[id] != 4) {
remove_task(id);
Drop_Cooldown[id] = 0;
return PLUGIN_HANDLED;
}
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(is_user_alive(id) && Drop_Cooldown[id] == 1) {
Drop_Cooldown[id] --;
show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Drop_Cooldown[id]);
}
if(is_user_alive(id) && Drop_Cooldown[id] > 1) {
Drop_Cooldown[id] --;
show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Drop_Cooldown[id]);
}
if(Drop_Cooldown[id] <= 0) {
show_hudmessage(id, "Ti-a revenit puterea");
ColorChat(id, GREEN,"%s Iti poti folosi din nou puterea .", szPrefix);
remove_task(id);
Drop_Cooldown[id] = 0;
}
return PLUGIN_HANDLED;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Freeze |
//==========================================================================================================
public Freeze(id) {
if (!is_user_alive(id) || Frozen[id]) return;
pev(id, pev_maxspeed, TempSpeed[id]); //get temp speed
pev(id, pev_gravity, TempGravity[id]); //get temp speed
fm_set_rendering(id, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25);
engfunc(EngFunc_EmitSound, id, CHAN_BODY, FROSTPLAYER_SND[random_num(0, sizeof FROSTPLAYER_SND - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM);
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), _, id);
write_short(UNIT_SECOND*1);
write_short(floatround(UNIT_SECOND*get_pcvar_float(CvarFreezeDuration)));
write_short(FFADE_IN);
write_byte(0);
write_byte(50);
write_byte(200);
write_byte(100);
message_end();
if (pev(id, pev_flags) & FL_ONGROUND)
set_pev(id, pev_gravity, 999999.9);
else
set_pev(id, pev_gravity, 0.000001);
Frozen[id] = true;
set_task(get_pcvar_float(CvarFreezeDuration), "remove_freeze", id);
}
public set_normal(id) {
set_pev(id, pev_gravity, TempGravity[id]);
set_pev(id, pev_maxspeed, TempSpeed[id]);
}
public FreezeShowHUD(id) {
if (!is_user_alive(id) || HasPower[id] != 5) {
remove_task(id);
Freeze_Cooldown[id] = 0;
return PLUGIN_HANDLED;
}
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(is_user_alive(id) && Freeze_Cooldown[id] == 1) {
Freeze_Cooldown[id] --;
show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Freeze_Cooldown[id]);
}
if(is_user_alive(id) && Freeze_Cooldown[id] > 1) {
Freeze_Cooldown[id] --;
show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Freeze_Cooldown[id]);
}
if(Freeze_Cooldown[id] <= 0) {
show_hudmessage(id, "Ti-a revenit puterea");
ColorChat(id, GREEN, "%s Iti poti folosi din nou puterea .", szPrefix);
remove_task(id);
Freeze_Cooldown[id] = 0;
}
return PLUGIN_HANDLED;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Drag |
//==========================================================================================================
public DragStart(id) {
if (HasPower[id] == 6 && !Drag_I[id]) {
if (!is_user_alive(id)) {
return PLUGIN_HANDLED;
}
if (Drag_Cooldown[id]) {
ColorChat(id, GREEN,"%s Puterea iti va reveni in^4 %d^3 secunde .^4", szPrefix, Drag_Cooldown[id]);
return PLUGIN_HANDLED;
}
new hooktarget, body;
get_user_aiming(id, hooktarget, body);
if (is_user_alive(hooktarget)) {
if (get_user_team(id) != get_user_team(hooktarget)) {
Hooked[id] = hooktarget;
emit_sound(hooktarget, CHAN_BODY, DRAG_HIT_SND, 1.0, ATTN_NORM, 0, PITCH_HIGH);
}
else {
return PLUGIN_HANDLED;
}
if (get_pcvar_float(CvarDragSpeed) <= 0.0)
CvarDragSpeed = 1;
new parm[2];
parm[0] = id;
parm[1] = hooktarget;
set_task(0.1, "DragReelin", id, parm, 2, "b");
HarpoonTarget(parm);
Drag_I[id] = true;
Not_Cooldown[id] = false;
if(get_pcvar_num(CvarDragUnb2Move) == 1)
Unable2move[hooktarget] = true;
if(get_pcvar_num(CvarDragUnb2Move) == 2)
Unable2move[id] = true;
if(get_pcvar_num(CvarDragUnb2Move) == 3) {
Unable2move[hooktarget] = true;
Unable2move[id] = true;
}
}
else {
Hooked[id] = 33;
NoTarget(id);
Not_Cooldown[id] = false;
set_task(1.0,"DragEnd",id);
emit_sound(id, CHAN_BODY, DRAG_MISS_SND, 1.0, ATTN_NORM, 0, PITCH_HIGH);
Drag_I[id] = true;
}
}
else
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public DragShowHUD(id) {
if (!is_user_alive(id) || HasPower[id] != 6) {
remove_task(id);
Drag_Cooldown[id] = 0;
Not_Cooldown[id] = true;
return PLUGIN_HANDLED;
}
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(is_user_alive(id) && Drag_Cooldown[id] == 1) {
Drag_Cooldown[id] --;
show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Drag_Cooldown[id]);
}
if(is_user_alive(id) && Drag_Cooldown[id] > 1) {
Drag_Cooldown[id] --;
show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Drag_Cooldown[id]);
}
if(Drag_Cooldown[id] <= 0) {
show_hudmessage(id, "Ti-a revenit puterea");
ColorChat(id, GREEN, "%s Iti poti folosi din nou puterea .", szPrefix);
remove_task(id);
Drag_Cooldown[id] = 0;
Not_Cooldown[id] = true;
}
return PLUGIN_HANDLED;
}
public DragReelin(parm[]) {
new id = parm[0];
new victim = parm[1];
if (!Hooked[id] || !is_user_alive(victim)) {
DragEnd(id);
return;
}
new Float:fl_Velocity[3];
new idOrigin[3], vicOrigin[3];
get_user_origin(victim, vicOrigin);
get_user_origin(id, idOrigin);
new distance = get_distance(idOrigin, vicOrigin);
if (distance > 1) {
new Float:fl_Time = distance / get_pcvar_float(CvarDragSpeed);
fl_Velocity[0] = (idOrigin[0] - vicOrigin[0]) / fl_Time;
fl_Velocity[1] = (idOrigin[1] - vicOrigin[1]) / fl_Time;
fl_Velocity[2] = (idOrigin[2] - vicOrigin[2]) / fl_Time;
}
else {
fl_Velocity[0] = 0.0;
fl_Velocity[1] = 0.0;
fl_Velocity[2] = 0.0;
}
entity_set_vector(victim, EV_VEC_velocity, fl_Velocity); //<- rewritten. now uses engine
}
public TakeDamage(victim, inflictor, attacker, Float:damage) { // if take damage drag off
if (is_user_alive(attacker) && (get_pcvar_num(CvarDragDmg2Stop) > 0)) {
OvrDmg[victim] = OvrDmg[victim] + floatround(damage);
if (OvrDmg[victim] >= get_pcvar_num(CvarDragDmg2Stop)) {
OvrDmg[victim] = 0;
DragEnd(victim);
return HAM_IGNORED;
}
}
return HAM_IGNORED;
}
public HarpoonTarget(parm[]) { // set beam (ex. tongue:) if target is player
new id = parm[0];
new hooktarget = parm[1];
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(8); // TE_BEAMENTS
write_short(id);
write_short(hooktarget);
write_short(DragSprite); // sprite index
write_byte(0); // start frame
write_byte(0); // framerate
write_byte(200); // life
write_byte(8); // width
write_byte(1); // noise
write_byte(155); // r, g, b
write_byte(155); // r, g, b
write_byte(55); // r, g, b
write_byte(90); // brightness
write_byte(10); // speed
message_end();
}
public NoTarget(id) { // set beam if target isn't player
new endorigin[3];
get_user_origin(id, endorigin, 3);
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BEAMENTPOINT); // TE_BEAMENTPOINT
write_short(id);
write_coord(endorigin[0]);
write_coord(endorigin[1]);
write_coord(endorigin[2]);
write_short(DragSprite); // sprite index
write_byte(0); // start frame
write_byte(0); // framerate
write_byte(200); // life
write_byte(8); // width
write_byte(1); // noise
write_byte(155); // r, g, b
write_byte(155); // r, g, b
write_byte(55); // r, g, b
write_byte(75); // brightness
write_byte(0); // speed
message_end();
}
public PlayerPreThink(id) {
new button = get_user_button(id);
new oldbutton = get_user_oldbutton(id);
if (!is_user_alive(id)) {
return FMRES_IGNORED;
}
if (Frozen[id]) {
set_pev(id, pev_velocity, Float:{0.0,0.0,0.0});
set_pev(id, pev_maxspeed, 1.0) ;
}
if(HasPower[id] == 6 ) {
if (BindUse[id]) {
if (!(oldbutton & IN_USE) && (button & IN_USE))
DragStart(id);
if ((oldbutton & IN_USE) && !(button & IN_USE))
DragEnd(id);
}
if (!Drag_I[id]) {
Unable2move[id] = false;
}
if (Unable2move[id] && get_pcvar_num(CvarDragUnb2Move) > 0) {
set_pev(id, pev_maxspeed, 1.0);
}
}
return PLUGIN_CONTINUE;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Teleport |
//==========================================================================================================
public TeleportShowHUD(id) {
if (!is_user_alive(id) || HasPower[id] != 7) {
remove_task(id);
Teleport_Cooldown[id] = 0;
return PLUGIN_HANDLED;
}
set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
if(is_user_alive(id) && Teleport_Cooldown[id] == 1) {
Teleport_Cooldown[id] --;
show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Teleport_Cooldown[id]);
}
if(is_user_alive(id) && Teleport_Cooldown[id] > 1) {
Teleport_Cooldown[id] --;
show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Teleport_Cooldown[id]);
}
if(Teleport_Cooldown[id] <= 0) {
show_hudmessage(id, "Ti-a revenit puterea");
ColorChat(id, GREEN, "%s Iti poti folosi din nou puterea. ", szPrefix);
remove_task(id);
Teleport_Cooldown[id] = 0;
}
return PLUGIN_HANDLED;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// NoRecoil |
//==========================================================================================================
public Weapon_PrimaryAttack_Pre(entity) {
new id = pev(entity, pev_owner);
if (HasPower[id] == 8) {
pev(id, pev_punchangle, cl_pushangle[id]);
return HAM_IGNORED;
}
return HAM_IGNORED;
}
public Weapon_PrimaryAttack_Post(entity) {
new id = pev(entity, pev_owner);
if ( HasPower[id] == 8) {
new Float: push[3];
pev(id, pev_punchangle, push);
xs_vec_sub(push, cl_pushangle[id], push);
xs_vec_mul_scalar(push, 0.0, push);
xs_vec_add(push, cl_pushangle[id], push);
set_pev(id, pev_punchangle, push);
return HAM_IGNORED;
}
return HAM_IGNORED;
}
// POWERS -------------------------------------------------
public FurienAndAntiFurienDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits )
{
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 )
{
SetHamParamFloat( 4, fDamage * 5.3);
return HAM_HANDLED;
}
if( iInflictor == iAttacker && katana_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 2.8);
return HAM_HANDLED;
}
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 )
{
SetHamParamFloat( 4, fDamage * 3.3);
return HAM_HANDLED;
}
if( iInflictor == iAttacker && super_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 2.0);
return HAM_HANDLED;
}
if( iInflictor == iAttacker && infinity_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 1.5 );
return HAM_HANDLED;
}
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 )
{
SetHamParamFloat( 4, fDamage * 6.0 );
return HAM_HANDLED;
}
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 )
{
SetHamParamFloat( 4, fDamage * 10.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && ignes_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 4.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && elf_knife [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 4.5 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && hunter [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_P90 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 1.5 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && mage [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_GALIL && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && rogue [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_FAMAS && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2.5 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && shaman [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_SG552 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2.5 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && thompson [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_P90 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 3.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && warrior [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_P90 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && deklowaz [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_P90 && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 3.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && dual_mp5 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_MP5NAVY && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
{
SetHamParamFloat( 4, fDamage * 2.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && strike_grenade [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_HEGRENADE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 4.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && strike_grenade2 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_HEGRENADE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 5.0 );
return HAM_HANDLED;
}
if( iInflictor == iAttacker && strike_grenade3 [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_HEGRENADE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
{
SetHamParamFloat( 4, fDamage * 6.0 );
return HAM_HANDLED;
}
return HAM_IGNORED;
}
public Depozit(id) {
if(cs_get_user_money(id) >= 16000) {
ColorChat ( id, GREEN, "%s Ai depozitat^4 16000^3 si ai primit^4 1^3 credit .^4", szPrefix );
set_user_credits(id, get_user_credits(id) + 1);
cs_set_user_money(id, cs_get_user_money(id) - 16000);
}
else {
ColorChat ( id, GREEN, "%s Ai nevoie de ^4 16000 $^3 pentru a depozita .^4", szPrefix );
}
return PLUGIN_HANDLED;
}
public Retrage(id) {
if(cs_get_user_money(id) >= 16000) {
ColorChat ( id, GREEN, "%s Detii deja^4 16000 $^3", szPrefix );
}
else if(PlayerCredits[id]) {
ColorChat ( id, GREEN, "%s Ai retras^4 1^3 credit, mai ai^4 %d^3 credite .", szPrefix, PlayerCredits [ id ] - 1 );
set_user_credits(id, get_user_credits(id) - 1);
cs_set_user_money(id, cs_get_user_money(id) + 16000);
}
else {
ColorChat ( id, GREEN, "%s Ai nevoie de^4 1^3 credti pentru a putea retrage .^4", szPrefix );
}
return PLUGIN_HANDLED;
}
public Show_Credits(id) {
set_hudmessage(0, 128, 0, 0.03, 0.86, 2, 6.0, 5.0);
show_hudmessage(id, "Ai %d Credite.", PlayerCredits[id]);
ColorChat ( id, GREEN, "%s Detii^4 %d^3 credite .^4", szPrefix, PlayerCredits [ id ] );
return PLUGIN_HANDLED;
}
public Give_Credits(id, level, cid) {
if(!cmd_access(id, level, cid, 2)) {
return PLUGIN_HANDLED;
}
new arg[23], gplayers[32], num, i, players, name[32];
get_user_name(id, name, 31);
read_argv(1, arg, 23);
new give_credits[5];
read_argv(2, give_credits, charsmax(give_credits));
new Credits = str_to_num(give_credits);
if(equali(arg, "@T") || equali ( arg, "t" ) ) {
get_players(gplayers, num, "e", "TERRORIST");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
set_user_credits(players, get_user_credits(players) + Credits);
SaveData(id);
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 Ts.", Credits);
case 2: ColorChat(0, GREEN, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 Ts.", name, Credits);
}
}
else if(equali(arg, "@CT") || equali ( arg, "ct" ) ) {
get_players(gplayers, num, "e", "CT");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
set_user_credits(players, get_user_credits(players) + Credits);
SaveData(id);
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 CTs.", Credits);
case 2: ColorChat(0, GREEN, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 CTs.", name, Credits);
}
}
if(equali(arg, "@All") || equali ( arg, "all" ) ) {
get_players(gplayers, num, "a");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
set_user_credits(players, get_user_credits(players) + Credits);
SaveData(id);
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 give^x03 %i Credits^x04 to all^x03 Players.", Credits);
case 2: ColorChat(0, GREEN, "^x03%s^x04 give^x03 %i Credits^x04 to all^x03 Players.", name, Credits);
}
}
new player = cmd_target(id, arg, 11);
if(!player) {
return PLUGIN_HANDLED;
}
set_user_credits(player, get_user_credits(player) + Credits);
SaveData(id);
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(player, GREEN, "^x03ADMIN^x04 give your^x03 %i Credits.", Credits);
case 2: ColorChat(player, GREEN, "^x03%s^x04 give your^x03 %i Credits.", name, Credits);
}
return PLUGIN_HANDLED;
}
public Reset_Credits(id, level, cid) {
if(!cmd_access(id, level, cid, 2)) {
return PLUGIN_HANDLED;
}
new arg[23], gplayers[32], num, i, players, name[32];
get_user_name(id, name, 31);
read_argv(1, arg, 23);
if(equali(arg, "@T")) {
get_players(gplayers, num, "e", "TERRORIST");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits [ players ] = 0;
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 reset^x03 Credits^x04 to all^x03 Ts.");
case 2: ColorChat(0, GREEN, "^x03%s^x04 reset^x03 Credits^x04 to all^x03 Ts.", name);
}
}
else if(equali(arg, "@CT")) {
get_players(gplayers, num, "e", "CT");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits [ players ] = 0;
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 reset^x03 %i Credits^x04 to all^x03 CTs.");
case 2: ColorChat(0, GREEN, "^x03%s^x04 reset^x03 %i Credits^x04 to all^x03 CTs.", name);
}
}
if(equali(arg, "@All")) {
get_players(gplayers, num, "a");
for(i = 0; i < num; i++) {
players = gplayers[i];
if(!is_user_connected(players))
continue;
PlayerCredits [ players ] = 0;
}
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(0, GREEN, "^x03ADMIN^x04 reset^x03 Credits^x04 to all^x03 Players.");
case 2: ColorChat(0, GREEN, "^x03%s^x04 resetx03 Credits^x04 to all^x03 Players.", name);
}
}
new player = cmd_target(id, arg, 11);
if(!player) {
return PLUGIN_HANDLED;
}
PlayerCredits [ player ] = 0;
switch(get_cvar_num("amx_show_activity")) {
case 1: ColorChat(player, GREEN, "^x03ADMIN^x04 reset your^x03 Credits.");
case 2: ColorChat(player, GREEN, "^x03%s^x04 reset your^x03 Credits.", name);
}
return PLUGIN_HANDLED;
}
stock set_player_nextattack(player, weapon_id, Float:NextTime)
{
const m_flNextPrimaryAttack_dc = 46
const m_flNextSecondaryAttack_dc = 47
const m_flTimeWeaponIdle_dc = 48
const m_flNextAttack_dc = 83
static weapon
weapon = fm_get_user_weapon_entity(player, weapon_id)
set_pdata_float(player, m_flNextAttack_dc, NextTime, 5)
if(pev_valid(weapon))
{
set_pdata_float(weapon, m_flNextPrimaryAttack_dc , NextTime, 4)
set_pdata_float(weapon, m_flNextSecondaryAttack_dc, NextTime, 4)
set_pdata_float(weapon, m_flTimeWeaponIdle_dc, NextTime, 4)
}
}
//get weapon id
stock get_weapon_ent(id,wpnid=0,wpnName[]="") {
// who knows what wpnName will be
static newName[24];
// need to find the name
if(wpnid) get_weaponname(wpnid,newName,23);
// go with what we were told
else formatex(newName,23,"%s",wpnName);
// prefix it if we need to
if(!equal(newName,"weapon_",7))
format(newName,23,"weapon_%s",newName);
return fm_find_ent_by_owner(get_maxplayers(),newName,id);
}
// Blood and bodyparts
stock create_blood(const Float:origin[3]) {
// Head
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_MODEL)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2])
write_coord(random_num(-100,100))
write_coord(random_num(-100,100))
write_coord(random_num(100,200))
write_angle(random_num(0,360))
write_short(mdl_gib_head) // Sprite index
write_byte(0) // bounce
write_byte(500) // life
message_end()
// Spine
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_MODEL)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2])
write_coord(random_num(-100,100))
write_coord(random_num(-100,100))
write_coord(random_num(100,200))
write_angle(random_num(0,360))
write_short(mdl_gib_spine)
write_byte(0) // bounce
write_byte(500) // life
message_end()
// Lung
for(new i = 0; i < random_num(1,2); i++)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_MODEL)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2])
write_coord(random_num(-100,100))
write_coord(random_num(-100,100))
write_coord(random_num(100,200))
write_angle(random_num(0,360))
write_short(mdl_gib_lung)
write_byte(0) // bounce
write_byte(500) // life
message_end()
}
// Parts, 10 times
for(new i = 0; i < 10; i++)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_MODEL)
engfunc(EngFunc_WriteCoord, origin[0])
engfunc(EngFunc_WriteCoord, origin[1])
engfunc(EngFunc_WriteCoord, origin[2])
write_coord(random_num(-100,100))
write_coord(random_num(-100,100))
write_coord(random_num(100,200))
write_angle(random_num(0,360))
write_short(mdl_gib_flesh)
write_byte(0) // bounce
write_byte(500) // life
message_end()
}
// Blood
for(new i = 0; i < 3; i++)
{
new x,y,z
x = random_num(-100,100)
y = random_num(-100,100)
z = random_num(0,100)
for(new j = 0; j < 3; j++)
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_BLOODSPRITE)
engfunc(EngFunc_WriteCoord, origin[0]+(x*j))
engfunc(EngFunc_WriteCoord, origin[1]+(y*j))
engfunc(EngFunc_WriteCoord, origin[2]+(z*j))
write_short(blood_spray)
write_short(blood_drop)
write_byte(229) // color index
write_byte(15) // size
message_end()
}
}
}