Raised This Month: $ Target: $400
 0% 

Help!


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
AppY
Member
Join Date: Dec 2011
Old 05-01-2013 , 13:08   Help!
Reply With Quote #1

I Have Edited nikhilgupta345's Night Crawler! Replaced Poisoned Bullets With Head Hunter Smoke Grenade (Ot's Plugin). But This Greande Kills Everybody Once Thrown! Please Help Me On How To Stop it After Killing Only 1 Enemy.


Plugin Code -
PHP Code:
    #include < amxmodx >
    #include < cstrike >
    #include < hamsandwich >
    #include < fun >
    #include < fakemeta >
    #include < engine >
    #include < xs >
    
    #define PLUGIN    "NightCrawler ExtendeD"
    #define AUTHOR    "nikhilgupta"
    #define VERSION    "ExtendeD"
    
    #define PISTOL_WEAPONS_BIT    (1<<CSW_GLOCK18|1<<CSW_USP|1<<CSW_DEAGLE|1<<CSW_P228|1<<CSW_FIVESEVEN|1<<CSW_ELITE)
    #define SHOTGUN_WEAPONS_BIT    (1<<CSW_M3|1<<CSW_XM1014)
    #define SUBMACHINE_WEAPONS_BIT    (1<<CSW_TMP|1<<CSW_MAC10|1<<CSW_MP5NAVY|1<<CSW_UMP45|1<<CSW_P90)
    #define RIFLE_WEAPONS_BIT    (1<<CSW_FAMAS|1<<CSW_GALIL|1<<CSW_AK47|1<<CSW_SCOUT|1<<CSW_M4A1|1<<CSW_SG550|1<<CSW_SG552|1<<CSW_AUG|1<<CSW_AWP|1<<CSW_G3SG1)
    #define MACHINE_WEAPONS_BIT    (1<<CSW_M249)
    #define GRENADE_WEAPONS_BIT (1<<CSW_SMOKEGRENADE)

    #define PRIMARY_WEAPONS_BIT    (SHOTGUN_WEAPONS_BIT|SUBMACHINE_WEAPONS_BIT|RIFLE_WEAPONS_BIT|MACHINE_WEAPONS_BIT)
    #define SECONDARY_WEAPONS_BIT    (PISTOL_WEAPONS_BIT)

    #define IsPrimaryWeapon(%1) ( (1<<%1) & PRIMARY_WEAPONS_BIT )
    #define IsSecondaryWeapon(%1) ( (1<<%1) & PISTOL_WEAPONS_BIT )

    #define m_iVGUI                        510
    #define m_fGameHUDInitialized        349
    #define m_fNextHudTextArgsGameTime    198

    #define TEAM_MENU                    "#Team_Select"
    #define TEAM_MENU2                    "#Team_Select_Spect"

    #define MIN_WEAPON        CSW_P228
    #define MAX_WEAPON         CSW_P90

    #define TEAM_NC         CS_TEAM_T
    #define TEAM_HUMAN         CS_TEAM_CT

new const DMG_CS_BULLETS_KNIFE    =        (DMG_NEVERGIB DMG_BULLET)

#define     OFFSET_LAST_HIT_GROUP       75

#define     EV_INT_colisions            EV_INT_iuser2
#define        EV_ENT_target                EV_ENT_euser2
#define        EV_ENT_lasttarget            EV_ENT_euser3
#define        EV_FL_removetime            EV_FL_dmgtime

#define        IMPACT_TIMES                get_pcvar_num(pcv_impact_times)
#define     DISTANCE_SENSE                get_pcvar_float(pcv_dist_sense_player)
#define        DISTANCE_CUT_HEAD            get_pcvar_float(pcv_dist_cut_head)
#define     DISTANCE_CUT_OWNER_HEAD        get_pcvar_float(pcv_dist_owner_head)
#define        EXTRA_VELOCITY                get_pcvar_float(pcv_velocity_follow)
#define        EXTRA_VELOCITY_Z            get_pcvar_float(pcv_velocity_follow_z)

#define     VELOCITY_ADD                get_pcvar_float(pcv_velocity_add)
#define     VELOCITY_BORDER                get_pcvar_float(pcv_velocity_border)
#define        VELOCITY_AIMFORHEAD            get_pcvar_float(pcv_velocity_aimfhead)

#define        RETHINK_BLACK_OUT_TIME        0.02
#define        REMOVE_TIME                    get_pcvar_float(pcv_removetime)

#define     RGB_R_COLOR                 get_pcvar_num(pcv_color_red)
#define     RGB_G_COLOR                 get_pcvar_num(pcv_color_green)
#define     RGB_B_COLOR                 get_pcvar_num(pcv_color_blue)
#define TASK_SHOW_ADVERTISEMENT 768

#define message_begin_fl(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4)
#define write_coord_fl(%1) engfunc(EngFunc_WriteCoord, %1)

#define m_pPlayer            41
#define m_pActiveItem        373
#define m_flFlashedUntil    514
#define m_flFlashHoldTime    517
#define OFFSET_WEAPON_CSWID    43
#define Ham_Player_ResetMaxSpeed Ham_Item_PreFrame

#define MAX_WEAPONS        32
#define AMMO_FLASHBANG        11
#define AMMO_HEGRENADE        12
#define AMMO_SMOKEGRENADE    13
#define DMG_GRENADE        (1<<24) // thanks arkshine
#define FFADE_IN            0x0000 // just here so we don't pass 0 into the function
#define BREAK_GLASS        0x01
#define STATUS_HIDE        0
#define STATUS_SHOW        1
#define STATUS_FLASH        2

#define GLOW_AMOUNT        1.0
#define FROST_RADIUS        240.0

#define NT_FLASHBANG        (1<<0) // 1; CSW:25
#define NT_HEGRENADE        (1<<1) // 2; CSW:4
#define NT_SMOKEGRENADE        (1<<2) // 4; CSW:9

#define ICON_HASNADE        1
#define ICON_ISCHILLED        2

#define TASK_REMOVE_CHILL    100
#define TASK_REMOVE_FREEZE    200


new g_maxplayers

new pcv_velocity_follow
new pcv_velocity_follow_z
new pcv_velocity_border
new pcv_velocity_add
new pcv_velocity_aimfhead
new pcv_dist_sense_player
new pcv_dist_owner_head
new pcv_dist_cut_head
new pcv_impact_times
new pcv_color_red
new pcv_color_green
new pcv_color_blue
new pcv_effects
new pcv_ignore_friendly
new pcv_ignore_owner
new pcv_damage
new pcv_removetime

new spr_nadebits
new    spr_blood_drop
new    spr_blood_spray
new spr_trail
new spr_explosion

    
/* Constants */
    
        
enum (+=1000)
        {
            
TASK_ADRENALINE 1000,
            
TASK_SUICIDE,
            
TASK_POISON,
            
TASK_INVISIBLE,
            
TASK_STARTGAME
        
}
        
        new const 
g_iMaxBPAmmoMAX_WEAPON ] =
        {
            
052090132010090112010010090909010012030,
            
12020032901209023590900100
        
};

        new const 
g_iMaxClipAmmoMAX_WEAPON ] =
        {
            
0130100703030030202530352512201030
            
1008303020073030050
        
};

        new const 
g_szWeaponClassnamesMAX_WEAPON ][ ] =
        {
            
"""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"
        
};

        new const 
g_szWeaponNamesMAX_WEAPON ][ ] =
        {
            
"""P228""""Schmidt Scout""""XM1014 (Auto-Shotgun)""",
            
"Mac-10""AUG""""Dual Elites""Five-Seven""UMP-45""SG-550",
            
"Galil""Famas""USP""Glock-18""AWP""MP5-Navy""M249 (Para)",
            
"M3 (Pump-Shotgun)""M4A1""TMP""G3SG1""""Deagle""SG-552",
            
"AK-47""""P90"
        
};

new const 
GRENADE_NAMES[][] = {
    
"weapon_hegrenade",
    
"weapon_flashbang",
    
"weapon_smokegrenade"
};

        
enum _:ItemsInfo
        
{
            
ITEM_LASER// Done
            
ITEM_SUICIDE// Done
            
ITEM_POISON// Done
            
ITEM_ADRENALINE// Done
            
ITEM_MEDKIT // Done
        
};

        new const 
g_szItemNamesItemsInfo ][ ] =
        {
            
"Laser Sight",
            
"Suicide Bomber (Bind Key Activated)",
            
"Head Hunter SmokeGrenade",
            
"Adrenaline (Bind Key Activated)",
            
"Medic Kit (Bind Key Activated)"
        
};
        
        new const 
g_szObjectives[ ][ ] = 
        {
            
"func_bomb_target",
            
"info_bomb_target",
            
"hostage_entity",
            
"monster_scientist",
            
"func_hostage_rescue",
            
"info_hostage_rescue",
            
"info_vip_start",
            
"func_vip_safetyzone",
            
"func_escapezone"
        
}
        
        new const 
g_szPrefix[ ] = "[Nightcrawler ExtendeD]";

        new const 
g_szNCModel[ ] = "models/player/nightcrawler/nightcrawler.mdl";
        new const 
g_szNCKnife_V[ ] = "models/nightcrawler/v_nightcrawlerknife.mdl";
        
        new const 
g_szLaserSprite[ ] = "sprites/zbeam4.spr";
        new const 
g_szExplosionSprite[ ] = "sprites/zerogxplode.spr";
        
        new const 
g_szSuicideBombSound[ ] = "nightcrawler/c4_beep4.wav";
        new const 
g_szTeleportSound[ ] = "nightcrawler/teleport.wav";

new const 
nade_model[] = 
{
    
//"w_hegrenade.mdl"
    //"w_flashbang.mdl"
    
"w_smokegrenade.mdl"
}

new const 
MODEL_FROZEN[]    = "models/pi_shrub.mdl";
new const 
MODEL_GLASSGIBS[]    = "models/glassgibs.mdl";

new const 
SOUND_EXPLODE[]    = "x/x_shoot1.wav";
new const 
SOUND_FROZEN[]    = "debris/glass1.wav";
new const 
SOUND_UNFROZEN[]    = "debris/glass3.wav";
new const 
SOUND_CHILLED[]    = "player/pl_duct2.wav";
new const 
SOUND_PICKUP[]    = "items/gunpickup2.wav";

new const 
SPRITE_TRAIL[]    = "sprites/laserbeam.spr";
new const 
SPRITE_SMOKE[]    = "sprites/steam1.spr";
new const 
SPRITE_EXPLO[]    = "sprites/shockwave.spr";

new 
pcv_enabledpcv_overridepcv_nadetypespcv_teamspcv_pricepcv_limitpcv_buyzonepcv_colorpcv_icon,
        
pcv_by_radiuspcv_hitselfpcv_lospcv_maxdamagepcv_mindamagepcv_chill_maxchancepcv_chill_minchance,
        
pcv_chill_durationpcv_chill_variancepcv_chill_speedpcv_freeze_maxchancepcv_freeze_minchance,
        
pcv_freeze_durationpcv_freeze_variance;

new 
maxPlayersgmsgScreenFadegmsgStatusIcongmsgBlinkAcctgmsgAmmoPickupgmsgTextMsg,
        
gmsgWeapPickupglassGibstrailSprsmokeSprexploSprmp_friendlyfireczerobot_quotaczBotHamsfmFwdPPT,
        
fnFwdPlayerChilledfnFwdPlayerFrozenbool:roundRestarting;

new 
isChilled[33], isFrozen[33], frostKilled[33], novaDisplay[33], Float:glowColor[33][3], Float:oldGravity[33], oldRenderFx[33],
        
Float:oldRenderColor[33][3], oldRenderMode[33], Float:oldRenderAmt[33], hasFrostNade[33], nadesBought[33];
        
    
/* Booleans */
    
        
new bool:g_bRememberGuns33 ];
        new 
bool:g_bNCNextRound33 ];
        new 
bool:g_bHasLaser33 ];
        new 
bool:g_bAdrenalineActive33 ];
        new 
bool:g_bVisible33 ];
        
    
/* Floats */
        
        
new Float:g_flWallOrigin33 ][ ];
        new 
Float:g_flLastTeleportTime33 ];
        
    
/* Integers */
    
        
new g_iPrimaryWeapon33 ];
        new 
g_iSecondaryWeapon33 ];
        new 
g_iChosenItem33 ];
        
        new 
g_iAdrenalineUses33 ];
        new 
g_iMedKitUses33 ];
        new 
g_iSuicideTime33 ];
        new 
g_iPoisonRemaining33 ];
        new 
g_iTeleportsRemaining33 ];
        
        new 
g_iTeamCountCsTeams ];        
        
        new 
g_iCurrentRound;
        
        new 
g_iMaxPlayers;
        
        new 
g_iLaserSprite;
        new 
g_iExplosionSprite;

    
/* Menus */
        
        
new g_hWeaponMenu;
        new 
g_hPrimaryWeaponMenu;
        new 
g_hSecondaryWeaponMenu;
        new 
g_hItemsMenu;

    
/* Messages */
    
        
new g_msgShowMenu;
        new 
g_msgVGUIMenu;
        new 
g_msgDeath;
        new 
g_msgScoreInfo;
        new 
g_msgStatusIcon;

    
/* PCVARS */
    
        
new g_pNightcrawlerRatio;
        new 
g_pNightcrawlerVisibleTime;
        new 
g_pNightcrawlerHealth;
        new 
g_pNightcrawlerGravity;
        new 
g_pNightcrawlerSpeed;
        new 
g_pNightcrawlerTeleDelay;
        new 
g_pNightcrawlerTeleCount;
        
        new 
g_pMapLighting;
        
        new 
g_pAdrenalineUses;
        new 
g_pAdrenalineTime;
        new 
g_pAdrenalineSpeed;
        
        new 
g_pMedKitUses;
        
        new 
g_pSuicideRadius;
        new 
g_pSuicideDamage;
        new 
g_pSuicideTime;
        
        new 
g_pPoisonAmount;
        new 
g_pPoisonInterval;
        new 
g_pPoisonDamage;
        
    public 
plugin_precache()
    {
        
precache_modelg_szNCModel );
        
precache_modelg_szNCKnife_V );
        
        
precache_soundg_szSuicideBombSound );
        
precache_soundg_szTeleportSound );
        
        
g_iLaserSprite precache_modelg_szLaserSprite );
        
g_iExplosionSprite precache_modelg_szExplosionSprite );

spr_nadebits precache_model("models/chromegibs.mdl")
spr_blood_drop precache_model("sprites/blood.spr")
spr_blood_spray precache_model("sprites/bloodspray.spr")
spr_trail precache_model("sprites/laserbeam.spr")
spr_explosion precache_model("sprites/shockwave.spr")
    }
    
    public 
plugin_init()
    {
        
register_plugin(PLUGINVERSIONAUTHOR)
        
register_clcmd"jointeam""CmdJoinTeam" );
        
register_clcmd"joinclass""CmdJoinTeam" );
        
register_clcmd"say /guns""CmdEnableGuns" );
        
register_clcmd"item""CmdUseItem" );
        
register_clcmd("say /help""userhelp"0" - Night Crawler Help ");
        
register_cvar("fn_version",VERSION,FCVAR_SERVER);

        
set_task(60.0"Pomoc"___"b");

        
        
RegisterHamHam_Spawn"player""Ham_PlayerSpawn_Post");
        
RegisterHamHam_Killed"player""Ham_PlayerKilled_Post");
        
RegisterHamHam_TakeDamage"player""Ham_PlayerTakeDamage_Post");
        
        
register_forwardFM_Spawn"Forward_Spawn_Post");
        
register_forwardFM_Touch"Forward_Touch_Pre");
        
register_forwardFM_PlayerPreThink"Forward_PlayerPreThink" );
        
register_forwardFM_AddToFullPack"Forward_AddToFullPack_Post");
        
        
register_logevent"LogEvent_BombSpawned"3"2=Spawned_With_The_Bomb" );
        
register_logevent"LogEvent_RoundEnd"2"1=Round_End" );
        
        
register_event"CurWeapon""Event_CurWeapon""be" );
        
        
register_menucmdregister_menuid"Team_Select"), ( << ) | ( << ) | ( << ) | ( << ), "TeamSelectMenu_Handler" );
            
        
g_msgShowMenu     get_user_msgid"ShowMenu" );
        
g_msgVGUIMenu     get_user_msgid"VGUIMenu" );
        
g_msgScoreInfo     get_user_msgid"ScoreInfo" );
        
g_msgDeath        get_user_msgid"DeathMsg" );
        
g_msgStatusIcon get_user_msgid"StatusIcon" );
        
        
register_messageg_msgShowMenu"Message_ShowMenu" );
        
register_messageg_msgVGUIMenu"Message_VGUIMenu" );
        
register_messageg_msgStatusIcon"Message_StatusIcon" );
        
        
g_pNightcrawlerRatio        register_cvar"nc_ratio""33" ); // Percentage
        
g_pNightcrawlerVisibleTime    register_cvar"nc_visible_time""2" );
        
g_pNightcrawlerHealth        register_cvar"nc_health""150" );
        
g_pNightcrawlerGravity        register_cvar"nc_gravity""600" );
        
g_pNightcrawlerSpeed        register_cvar"nc_speed""280.0" );
        
g_pNightcrawlerTeleCount    register_cvar"nc_teleport_count""2" );
        
g_pNightcrawlerTeleDelay     register_cvar"nc_teleport_delay""2" );
        
        
g_pMapLighting                register_cvar"nc_lighting""g" );
        
        
g_pAdrenalineUses            register_cvar"nc_adrenaline_uses""2" );
        
g_pAdrenalineTime            register_cvar"nc_adrenaline_time""10" );
        
g_pAdrenalineSpeed            register_cvar"nc_adrenaline_speed""320" );
        
        
g_pSuicideDamage             register_cvar"nc_suicide_damage""80" );
        
g_pSuicideRadius            register_cvar"nc_suicide_radius""50" );
        
g_pSuicideTime                register_cvar"nc_suicide_time""3" );
        
        
g_pMedKitUses                register_cvar"nc_medkit_uses""2" );
        
        
g_pPoisonAmount                register_cvar"nc_poison_amount""3" );
        
g_pPoisonInterval            register_cvar"nc_poison_interval""1" );
        
        
g_iMaxPlayers                 get_maxplayers();
        
        
set_task30.0"Task_StartGame"TASK_STARTGAME );
        
        
CreateMenus();

    
register_cvar("sm_headhunt_vs"VERSIONFCVAR_SPONLY FCVAR_SERVER)
    
    
pcv_dist_cut_head       register_cvar("smhdh_distance_head_cut""100.0")
    
pcv_dist_sense_player register_cvar("smhdh_distance_sense""400.0")
    
pcv_dist_owner_head   register_cvar("smhdh_distance_owner_head_cut""10.0")
    
pcv_impact_times      register_cvar("smhdh_impact_times""8")
    
    
pcv_color_red          register_cvar("smhdh_color_red""0")
    
pcv_color_green          register_cvar("smhdh_color_green""214")
    
pcv_color_blue          register_cvar("smhdh_color_blue""198")

    
pcv_velocity_follow      register_cvar("smhdh_velocity_correction""150.0")
    
pcv_velocity_follow_z register_cvar("smhdh_height_correction""25.0")
    
pcv_velocity_add      register_cvar("smhdh_velocity_add""50.0")
    
pcv_velocity_border   register_cvar("smhdh_velocity_border""200.0")
    
pcv_velocity_aimfhead register_cvar("smhdh_velocity_aim_for_head""800.0")
    
    
pcv_damage              register_cvar("smhdh_hit_damage""500.0")
    
pcv_removetime          register_cvar("smhdh_remove_time""60.0")
    
    
pcv_ignore_friendly   register_cvar("smhdh_ignore_friendly""1")
    
pcv_ignore_owner      register_cvar("smhdh_ignore_owner""1")
    
pcv_effects              register_cvar("smhdh_effects""1")
    
    
RegisterHam(Ham_Think"grenade""fw_grenade_think")
    
RegisterHam(Ham_Touch"grenade""fw_touch")
    
    
register_forward(FM_SetModel"fw_setmodel"1)
    
    
g_maxplayers get_maxplayers()

pcv_enabled register_cvar("fn_enabled","1");
    
pcv_override register_cvar("fn_override","1");
    
pcv_nadetypes register_cvar("fn_nadetypes","4"); // NT_SMOKEGRENADE
    
pcv_teams register_cvar("fn_teams","3");
    
pcv_price register_cvar("fn_price","300");
    
pcv_icon register_cvar("fn_icon","1");
    
pcv_limit register_cvar("fn_limit","0");
    
pcv_buyzone register_cvar("fn_buyzone","1");
    
pcv_color register_cvar("fn_color","0 206 209");

    
pcv_by_radius register_cvar("fn_by_radius","0.0");
    
pcv_hitself register_cvar("fn_hitself","1");
    
pcv_los register_cvar("fn_los","1");
    
pcv_maxdamage register_cvar("fn_maxdamage","20.0");
    
pcv_mindamage register_cvar("fn_mindamage","1.0");
    
pcv_chill_maxchance register_cvar("fn_chill_maxchance","100.0");
    
pcv_chill_minchance register_cvar("fn_chill_minchance","100.0");
    
pcv_chill_duration register_cvar("fn_chill_duration","7.0");
    
pcv_chill_variance register_cvar("fn_chill_variance","1.0");
    
pcv_chill_speed register_cvar("fn_chill_speed","60.0");
    
pcv_freeze_maxchance register_cvar("fn_freeze_maxchance","110.0");
    
pcv_freeze_minchance register_cvar("fn_freeze_minchance","40.0");
    
pcv_freeze_duration register_cvar("fn_freeze_duration","4.0");
    
pcv_freeze_variance register_cvar("fn_freeze_variance","0.5");
    
    
mp_friendlyfire get_cvar_pointer("mp_friendlyfire");
    
    new 
mod[6];
    
get_modname(mod,5);
    if(
equal(mod,"czero"))
    {
        
czero 1;
        
bot_quota get_cvar_pointer("bot_quota");
    }
    
    
maxPlayers get_maxplayers();
    
gmsgScreenFade get_user_msgid("ScreenFade");
    
gmsgStatusIcon get_user_msgid("StatusIcon");
    
gmsgBlinkAcct get_user_msgid("BlinkAcct");
    
gmsgAmmoPickup get_user_msgid("AmmoPickup");
    
gmsgWeapPickup get_user_msgid("WeapPickup");
    
gmsgTextMsg get_user_msgid("TextMsg");

    
register_forward(FM_SetModel,"fw_setmodel",1);
    
register_message(get_user_msgid("DeathMsg"),"msg_deathmsg");
    
    
register_event("ResetHUD""event_resethud""b");
    
register_event("TextMsg""event_round_restart""a""2=#Game_Commencing""2=#Game_will_restart_in");
    
register_event("HLTV""event_new_round""a""1=0""2=0");

    
RegisterHam(Ham_Spawn,"player","ham_player_spawn",1);
    
RegisterHam(Ham_Killed,"player","ham_player_killed",1);
    
RegisterHam(Ham_Player_ResetMaxSpeed,"player","ham_player_resetmaxspeed",1);
    
RegisterHam(Ham_Think,"grenade","ham_grenade_think",0);
    
RegisterHam(Ham_Use"player_weaponstrip""ham_player_weaponstrip_use"1);
    
    for(new 
i=0i<sizeof GRENADE_NAMESi++)
    {
        
RegisterHam(Ham_Item_DeployGRENADE_NAMES[i], "ham_grenade_deploy"1);
        
RegisterHam(Ham_Item_HolsterGRENADE_NAMES[i], "ham_grenade_holster"1);
        
RegisterHam(Ham_Item_AddToPlayerGRENADE_NAMES[i], "ham_grenade_addtoplayer"1);
        
RegisterHam(Ham_Item_AddDuplicateGRENADE_NAMES[i], "ham_grenade_addduplicate"1);
    }
    
    
register_clcmd("say /fn","buy_frostnade");
    
register_clcmd("say_team /fn","buy_frostnade");
    
register_clcmd("say /frostnade","buy_frostnade");
    
register_clcmd("say_team /frostnade","buy_frostnade");
    
    
fnFwdPlayerChilled CreateMultiForward("frostnades_player_chilled"ET_STOPFP_CELLFP_CELL);
    
fnFwdPlayerFrozen  CreateMultiForward("frostnades_player_frozen",  ET_STOPFP_CELLFP_CELL);

    }

// Colour Chat 
stock client_printc(const id, const input[], any:...) 

    new 
count 1players[32]; 
    static 
msg[191]; 
    
vformat(msg190input3); 
     
    
replace_all(msg190"!g""^x04"); // Green Color 
    
replace_all(msg190"!n""^x01"); // Default Color 
    
replace_all(msg190"!t""^x03"); // Team Color 
     
    
if (idplayers[0] = id; else get_players(playerscount"ch"); 
     
    for (new 
0counti++) 
    { 
        if (
is_user_connected(players[i])) 
        { 
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]); 
            
write_byte(players[i]); 
            
write_string(msg); 
            
message_end(); 
        } 
    } 
}  

public 
client_connect(id)
{

remove_task(id+TASK_SHOW_ADVERTISEMENT); 

set_task(10.0"ShowAdvertisement"id+TASK_SHOW_ADVERTISEMENT);
}

    public 
Message_StatusIconiMsgIDiMsgDestid )
    {
        static 
szIcon];
        
get_msg_arg_string2szIcon);
        
        if( 
equalszIcon"buyzone" ) && get_msg_arg_int) )
        {
            
set_pdata_intid235get_pdata_intid235 ) & ~(1<<0) );
            return 
PLUGIN_HANDLED;
        }
        
        return 
PLUGIN_CONTINUE;
    }
    
    public 
Forward_Spawn_PostiEntity )
    {
        new 
szClassname32 ];
        
peviEntitypev_classnameszClassnamecharsmaxszClassname ) );
        
        for( new 
0sizeof g_szObjectivesi++ )
        {
            if( 
equaliszClassnameg_szObjectives] ) )
            {
                
remove_entityiEntity );
                break;
            }
        }
    }
    
            
    public 
Forward_Touch_PreiEntid )
    {
        if( !
is_user_aliveid ) )
            return 
FMRES_IGNORED;
        
        new 
szClassname32 ];
        
peviEntpev_classnameszClassnamecharsmaxszClassname ) );
        
        if( 
equaliszClassname"worldspawn" ) || equaliszClassname"func_wall" ) || equaliszClassname"func_breakable" ) )
            
pevidpev_origing_flWallOriginid ] );
        
        else if( 
equaliszClassname"weaponbox" ) || equaliszClassname"armoury_entity" ) )
        {
            if( 
cs_get_user_teamid ) == TEAM_NC )
                return 
FMRES_SUPERCEDE;
        }
        
        return 
FMRES_IGNORED;
    }

    public 
client_putinserverid )
    {
        
g_bRememberGunsid ] = false;
        
g_bNCNextRoundid ] = false;
        
g_bHasLaserid ] = false;
        
g_bAdrenalineActiveid ] = false;
        
g_bVisibleid ] = true;
        
        
g_iAdrenalineUsesid ] = 0;
        
g_iMedKitUsesid ] = 0;
        
g_iSuicideTimeid ] = 0;
        
g_iPoisonRemainingid ] = 0;
        
        
g_iPrimaryWeaponid ] = 0;
        
g_iSecondaryWeaponid ] = 0;
        
        
g_iTeleportsRemainingid ] = 0;
        
        
g_iChosenItemid ] = -1;
        
        new 
szLighting];
        
get_pcvar_stringg_pMapLightingszLighting);
        
        
engfuncEngFunc_LightStyle0szLighting );
    }

    public 
client_disconnectid )
    {
        
remove_taskTASK_SUICIDE id );
        
remove_task(id+TASK_SHOW_ADVERTISEMENT); 
    }
    
    public 
Forward_PlayerPreThinkid )
    {
        if( !
is_user_aliveid ) )
            return;
        
        static 
CsTeams:iTeam;
        
iTeam cs_get_user_teamid );
        
        if( 
iTeam == TEAM_HUMAN )
        {
            if( !
g_bHasLaserid ] )
            {
                static 
iPlayers32 ], iNum;
                
get_playersiPlayersiNum"ae""CT" );
                
                if( 
iNum == )
                {
                    
g_bHasLaserid ] = true;
                }
            }
            
            if( 
g_bHasLaserid ] )
            {

                static 
iTargetiBodyiRediGreeniBlueiWeapon;
                
                
get_user_aimingidiTargetiBody );
            
                
iWeapon get_user_weaponid );
            
                if( 
IsPrimaryWeaponiWeapon ) || IsSecondaryWeaponiWeapon ) )
                {
                    if( 
is_user_aliveiTarget ) && cs_get_user_teamiTarget ) == TEAM_NC )
                    {
                        
iRed 255;
                        
iGreen 0;
                        
iBlue 0;
                    }
                    
                    else
                    {
                        
iRed 0;
                        
iGreen 255;
                        
iBlue 0;
                    }
                    
                    static 
iOrigin];
                    
get_user_originidiOrigin);
                    
                    
message_beginMSG_BROADCASTSVC_TEMPENTITY );
                    
write_byteTE_BEAMENTPOINT );
                    
write_shortid 0x1000 );
                    
write_coordiOrigin] );
                    
write_coordiOrigin] );
                    
write_coordiOrigin] );
                    
write_shortg_iLaserSprite );
                    
write_byte);
                    
write_byte10 );
                    
write_byte);
                    
write_byte);
                    
write_byte);
                    
write_byteiRed );
                    
write_byteiGreen );
                    
write_byteiBlue );
                    
write_byte150 );
                    
write_byte25 );
                    
message_end( );
                }
            }
        }
        
        else if( 
iTeam == TEAM_NC )
        {
            static 
iButton;
            
iButton get_user_buttonid );
            
            if( 
iButton IN_USE )
            {
                static 
Float:fOrigin];
                
pevidpev_originfOrigin );
                
                if( 
get_distance_ffOriging_flWallOriginid ] ) > 10.0 )
                    return;
                
                if( 
pevidpev_flags ) & FL_ONGROUND )
                    return;
                
                if( 
iButton IN_FORWARD )
                {
                    static 
Float:fVelocity];
                    
velocity_by_aimid240fVelocity );
                    
                    
set_pevidpev_velocityfVelocity );
                }
                
                else if( 
iButton IN_BACK )
                {
                    static 
Float:fVelocity];
                    
velocity_by_aimid, -240fVelocity );
                    
                    
set_pevidpev_velocityfVelocity );
                }
            }
        }
        
        return;
    }

    public 
LogEvent_BombSpawned()
    {
        new 
szLogUser80 ], szName32 ];
        
read_logargv0szLogUser79 );
        
parse_loguserszLogUserszName31 );
        
        new 
id get_user_indexszName );
        
        
engclient_cmdid"drop""weapon_c4" );
        new 
iBomb find_ent_by_class( -1"weapon_c4" );
        
        if( 
iBomb )
        {
            
remove_entityiBomb );
        }
    }
    
    public 
LogEvent_RoundEnd()
    {
        
g_iCurrentRound++;
    }

    
////////////////////
    ///*    Ratio    *///
    ////////////////////

    
public CmdJoinTeamid )
        return 
PLUGIN_HANDLED;
        
    public 
TeamSelectMenu_HandleridiKey )
    {
        new 
CsTeams:iTeam cs_get_user_teamid );
        
        
CountTeams();

        switch( 
iKey )
        {
            case 
0// Join NC (Terrorists)
            
{
                
client_printidprint_chat"%s You cannot join the Night-Crawler team!"g_szPrefix );
                
                return 
PLUGIN_HANDLED;
            }
            
            case 
1// Join Humans (CTs)
            
{
                if( 
iTeam == TEAM_HUMAN )
                    return 
PLUGIN_HANDLED;
                
                if( 
task_existsTASK_STARTGAME ) )
                    
ForceTeamidTEAM_HUMAN );
                
                else
                {
                    
CountTeams();
                    
                    
// ( Percent * Total Players / 100 ) - Current Amount of NCs
                    
new iNeeded get_pcvar_numg_pNightcrawlerRatio ) * ( g_iTeamCountTEAM_NC ] + g_iTeamCountTEAM_HUMAN ] ) / 100 g_iTeamCountTEAM_NC ];
                    
                    if( 
iNeeded == && g_iTeamCountTEAM_HUMAN ] == )
                        
iNeeded 1;
                        
                    if( 
iNeeded >= )
                        
ForceTeamidTEAM_NC );
                    
                    else 
ForceTeamidTEAM_HUMAN );
                
                }
                
                return 
PLUGIN_HANDLED;
            }
            
            case 
5:
            {
                
user_silentkillid );
                
ForceTeamidCS_TEAM_SPECTATOR );
                
                return 
PLUGIN_HANDLED;
            }
        }
        
        return 
PLUGIN_HANDLED;
    }

    public 
ForceTeamidCsTeams:iTeam )
    {
        static 
iRestoreiVGUIiMSGBlock;

        
iRestore get_pdata_intidm_iVGUI );
        
iVGUI iRestore & ( << );
        if( 
iVGUI )
            
set_pdata_intidm_iVGUIiRestore & ~( << ) );

        switch( 
iTeam )
        {
            case 
CS_TEAM_SPECTATOR:
            {
                
iMSGBlock get_msg_blockg_msgShowMenu );
                
set_msg_blockg_msgShowMenuBLOCK_ONCE );
                
dllfuncDLLFunc_ClientPutInServerid );
                
set_msg_blockg_msgShowMenuiMSGBlock );
                
set_pdata_intidm_fGameHUDInitialized);
                
engclient_cmdid"jointeam""6" );
            }
            case 
CS_TEAM_TCS_TEAM_CT:
            {
                
iMSGBlock get_msg_blockg_msgShowMenu );
                
set_msg_blockg_msgShowMenuBLOCK_ONCE );
                
engclient_cmdid"jointeam", ( iTeam == CS_TEAM_CT ) ? "2" "1" );
                
engclient_cmdid"joinclass""1" );
                
set_msg_blockg_msgShowMenuiMSGBlock );
            }
        }
        
        if( 
iVGUI )
            
set_pdata_intidm_iVGUIiRestore );
    }

    public 
Message_VGUIMenuiMSGIdiDestid )
    {
        static 
iMSGArg1;

        
iMSGArg1 get_msg_arg_int);
        
        if( 
iMSGArg1 == )
        {
            
show_menuid51TEAM_MENU2, -);
            return 
PLUGIN_HANDLED;
        }

        return 
PLUGIN_CONTINUE;
    }

    public 
Message_ShowMenuiMSGIdiDestid )
    {
        static 
iMSGArg1;
        
iMSGArg1 get_msg_arg_int);

        if( 
iMSGArg1 != 531 && iMSGArg1 != 563 )
            return 
PLUGIN_CONTINUE;

        
show_menuid51TEAM_MENU2, -);
        return 
PLUGIN_HANDLED;
    }
        
    public 
Event_CurWeaponid )
    {
        new 
iWeapon read_data);
        switch( 
cs_get_user_teamid ) )
        {
            case 
TEAM_HUMAN:
            {
                if( 
IsPrimaryWeaponiWeapon ) || IsSecondaryWeaponiWeapon ) )
                {
                    if( 
cs_get_user_bpammoidiWeapon ) != g_iMaxBPAmmoiWeapon ] )
                    {
                        
cs_set_user_bpammoidiWeapong_iMaxBPAmmoiWeapon ] );
                    }
                    
                    if( 
g_bAdrenalineActiveid ] )
                    {
                        new 
iEnt find_ent_by_owner( -1g_szWeaponClassnamesiWeapon ], id );
                        
                        if( !
pev_validiEnt ) )
                            return;
                        
                        
cs_set_weapon_ammoiEntg_iMaxClipAmmoiWeapon ] );
                    }
                }
                
                if( 
g_bAdrenalineActiveid ] )
                {
                    
set_user_maxspeedidget_pcvar_floatg_pAdrenalineSpeed ) );
                }
            }
            
            case 
TEAM_NC:
            {
                if( 
iWeapon == CSW_KNIFE )
                {
                    
set_pevidpev_viewmodel2g_szNCKnife_V );
                }
            }
        }
    }

    public 
CreateMenus()
    {
        
g_hWeaponMenu menu_create"Weapons Menu""WeaponMenu_Handler" );
        
menu_additemg_hWeaponMenu"New Weapons""0" );
        
menu_additemg_hWeaponMenu"Previous Weapons""1" );
        
menu_additemg_hWeaponMenu"2 + Don't Ask Again""2" );
        
        
g_hPrimaryWeaponMenu menu_create"Primary Weapons""PrimaryMenu_Handler" );
        
g_hSecondaryWeaponMenu menu_create"Secondary Weapons""SecondaryMenu_Handler" );
        
        new 
szInfo];
        for( new 
MIN_WEAPON<= MAX_WEAPONi++ )
        {
            if( 
IsPrimaryWeapon) )
            {
                
num_to_striszInfocharsmaxszInfo ) );
                
menu_additemg_hPrimaryWeaponMenug_szWeaponNames], szInfo );
            }
            
            else if( 
IsSecondaryWeapon) )
            {
                
num_to_striszInfocharsmaxszInfo ) );
                
menu_additemg_hSecondaryWeaponMenug_szWeaponNames], szInfo );
            }
            
            else continue;
        }
        
        
g_hItemsMenu menu_create"[NightCrawler ExD] Choose an Item:""ItemsMenu_Handler" );
        
        for( new 
0ItemsInfoi++ )
        {
            
num_to_striszInfocharsmaxszInfo ) );
            
            if( 
== ITEM_LASER )
            {
                
menu_additemg_hItemsMenug_szItemNames], szInfo_menu_makecallback"LaserItem_Callback" ) );
            }
            
            else 
menu_additemg_hItemsMenug_szItemNames], szInfo );
        }
    }    
    
    public 
LaserItem_CallbackidhMenuiItem )
    {
        if( 
g_iCurrentRound == )
            return 
ITEM_DISABLED;
            
        new 
iFrags get_user_fragsid );
        new 
iDeaths get_user_deathsid );

        new 
iPlayerFrags;
        
        new 
iPlayers32 ], iNum;
        
get_playersiPlayersiNum"ae""CT" );
        
        for( new 
0iPlayeriNumi++ )
        {
            
iPlayer iPlayers];
            
            if( !
is_user_aliveiPlayer ) || iPlayer == id )
                continue;
                
            
iPlayerFrags get_user_fragsiPlayer );
            
            if( 
iPlayerFrags iFrags )
                return 
ITEM_DISABLED;
                
            else if( 
iPlayerFrags == iFrags )
            {
                if( 
get_user_deathsiPlayer ) < iDeaths )
                    return 
ITEM_DISABLED;
            }
        }
        
        return 
ITEM_ENABLED;
        
    }

    public 
Ham_PlayerSpawn_Postid )
    {
        if( !
is_user_aliveid ) )
            return 
HAM_IGNORED;
        
        
strip_user_weaponsid );
        
give_itemid"weapon_knife" );
        
        new 
CsTeams:iTeam cs_get_user_teamid );
        
        if( 
g_bNCNextRoundid ] )
        {
            if( 
iTeam != TEAM_NC )
            {
                
cs_set_user_teamidTEAM_NC );
                
ExecuteHamBHam_CS_RoundRespawnid );
                
g_bNCNextRoundid ] = false;
                return 
HAM_IGNORED;
            }
            
            
g_bNCNextRoundid ] = false;
        }
        
        switch( 
iTeam )
        {
            case 
TEAM_NC:
            {
                
cs_set_user_modelid"nightcrawler" );
                
                if( 
get_user_weaponid ) == CSW_KNIFE )
                    
set_pevidpev_viewmodel2g_szNCKnife_V );
                    
                
client_printidprint_chat"%s You are now invisible."g_szPrefix );
                
                
set_user_healthidget_pcvar_numg_pNightcrawlerHealth ) );
                
set_user_gravityidget_pcvar_floatg_pNightcrawlerGravity ) / 800 );
                
set_user_maxspeedidget_pcvar_floatg_pNightcrawlerSpeed ) );
                
                
set_user_footstepsid);
                
                
g_iTeleportsRemainingid ] = get_pcvar_numg_pNightcrawlerTeleCount );
                
                
g_bVisibleid ] = false;
            }
            
            case 
TEAM_HUMAN:
            {
                if( 
g_bRememberGunsid ] )
                    
GiveWeaponsid );
                
                else if( 
g_iPrimaryWeaponid ] == || g_iSecondaryWeaponid ] == )
                {
                    
menu_displayidg_hPrimaryWeaponMenu );
                }
                
                else 
menu_displayidg_hWeaponMenu );
                
                
set_user_footstepsid);
                
                
cs_set_user_modelid"gign" );
                
                
g_bVisibleid ] = true;
            }
        }
        
        
g_bNCNextRoundid ] = false;
        
        return 
HAM_IGNORED;
    }

    public 
Ham_PlayerKilled_PostiVictimiKilleriShouldGib )
    {
        if( !
is_user_aliveiKiller ) )
            return 
HAM_IGNORED;
        
        switch( 
cs_get_user_teamiKiller ) )
        {
            case 
TEAM_HUMAN:
            {
                if( 
cs_get_user_teamiVictim ) == TEAM_NC )
                {
                    
client_printiVictimprint_chat"%s You were killed by a human and are now one also!"g_szPrefix );
                    
cs_set_user_teamiVictimTEAM_HUMAN );
                    
                    if( !
g_bNCNextRoundiKiller ] )
                    {
                        
client_printiKillerprint_chat"%s You killed a Night-Crawler and will be one next round!"g_szPrefix );
                        
g_bNCNextRoundiKiller ] = true;
                    }
                }
            }
            
            case 
TEAM_NC:
            {
                if( 
cs_get_user_teamiVictim ) == TEAM_HUMAN )
                {
                    
client_printiKillerprint_chat"%s You killed a human!"g_szPrefix );
                    
client_printiVictimprint_chat"%s You were killed by a Night-Crawler!"g_szPrefix );
                }
            }
        }
        
        return 
HAM_IGNORED;
    }

    public 
Ham_PlayerTakeDamage_PostiVictimiInflictoriAttackerFloat:flDamageiBits )
    {
        if( 
is_user_connectediAttacker ) && cs_get_user_teamiVictim ) == TEAM_NC )
        {
            
remove_taskTASK_INVISIBLE iVictim );
            
            
g_bVisibleiVictim ] = true;
            
            
set_taskget_pcvar_floatg_pNightcrawlerVisibleTime ), "Task_SetInvisible"iVictim TASK_INVISIBLE );
            
            if( 
g_iChosenItemiAttacker ] == ITEM_POISON && iInflictor == CSW_SMOKEGRENADE )
            {
                
g_iPoisonRemainingiVictim ] = get_pcvar_numg_pPoisonAmount );
                
                
remove_taskTASK_POISON iVictim );
                
                new 
szParams];
                
szParams] = iAttacker;
                
set_taskget_pcvar_floatg_pPoisonInterval ), "Task_Poison"TASK_POISON iVictimszParams);
            }
            
        }
    }
    
    public 
Task_PoisonszParams[ ], iTaskID )
    {
        new 
iAttacker szParams];
        
        new 
id iTaskID TASK_POISON;
        
        
ExecuteHamHam_TakeDamageidiAttackeriAttackerget_pcvar_floatg_pPoisonDamage ), DMG_GENERIC );
        
        if( --
g_iPoisonRemainingid ] > )
        {
            
set_taskget_pcvar_floatg_pPoisonInterval ), "Task_PoisonHurt"iTaskID );
        }
    }
    
    public 
GiveWeaponsid )
    {
        new 
iPrimary g_iPrimaryWeaponid ];
        new 
iSecondary g_iSecondaryWeaponid ];
        
        
give_itemidg_szWeaponClassnamesiPrimary ] );
        
give_itemidg_szWeaponClassnamesiSecondary ] );
        
        
cs_set_user_bpammoidiPrimaryg_iMaxBPAmmoiPrimary ] );
        
cs_set_user_bpammoidiSecondaryg_iMaxBPAmmoiSecondary ] );
    }

    public 
WeaponMenu_HandleridhMenuiItem )
    {
        switch( 
iItem )
        {
            case 
0menu_displayidg_hPrimaryWeaponMenu);
            case 
1
            {
                
GiveWeaponsid );
                
menu_displayidg_hItemsMenu);
            }
            
            case 
2
            {
                
GiveWeaponsid );
                
g_bRememberGunsid ] = true;
                
                
menu_displayidg_hItemsMenu);
            }
        }
    }

    public 
PrimaryMenu_HandleridhMenuiItem )
    {
        if( 
iItem == MENU_EXIT )
        {
            
menu_displayidg_hItemsMenu);
            return 
PLUGIN_HANDLED;
        }
        
        new 
iAccesshCallback;
        new 
szData];
        
        
menu_item_getinfohMenuiItemiAccessszDatacharsmaxszData ), __hCallback );
        
        
g_iPrimaryWeaponid ] = str_to_numszData );

        
menu_displayidg_hSecondaryWeaponMenu);
        
        return 
PLUGIN_HANDLED;
    }

    public 
SecondaryMenu_HandleridhMenuiItem )
    {
        if( 
iItem == MENU_EXIT )
        {
            
menu_displayidg_hItemsMenu);
            return 
PLUGIN_HANDLED;
        }
        
        new 
iAccesshCallback;
        new 
szData];
        
        
menu_item_getinfohMenuiItemiAccessszDatacharsmaxszData ), __hCallback );
        
        
g_iSecondaryWeaponid ] = str_to_numszData );

        
GiveWeaponsid );
        
        
menu_displayidg_hItemsMenu);
        
        return 
PLUGIN_HANDLED;
    }

    public 
ItemsMenu_HandleridhMenuiItem )
    {
        
g_iChosenItemid ] = iItem;
        
        switch( 
iItem )
        {
            case 
ITEM_LASER:
            {
                
g_bHasLaserid ] = true;

                
client_printc(id"%s You Have Got a Laser Sight! Use It To Find Night Crawlers & Kill Them!"g_szPrefix );
            }
            
            case 
ITEM_ADRENALINE:
            {
                
client_printcid"%s Bind a key to 'item' to inject adrenaline."g_szPrefix );
                
                
g_iAdrenalineUsesid ] = get_pcvar_numg_pAdrenalineUses );
            }
            
            case 
ITEM_MEDKIT:
            {
                
client_printcid"%s Bind a key to 'item' to use a medical kit."g_szPrefix );
                
                
                
g_iMedKitUsesid ] = get_pcvar_numg_pMedKitUses );
            }
            
            case 
ITEM_SUICIDE:
            {
                
client_printcid"%s Bind a key to 'item' to start the countdown."g_szPrefix );
                
            }
            
            case 
ITEM_POISON:
            {
                
client_printcid"%s You Have Got A Head Hunter Smoke Grenade."g_szPrefix );
                    
give_item(id"weapon_smokegrenade")
cs_set_user_bpammo(idCSW_SMOKEGRENADE2);  
            }
        }
        
        return 
PLUGIN_HANDLED;
    }
    
    public 
Task_StartGame()
    {
        new 
iPlayers32 ], iNum;
        
get_playersiPlayersiNum );
        
        new 
iNCAmount = ( get_pcvar_numg_pNightcrawlerRatio ) * iNum ) / 100 g_iTeamCountTEAM_NC ];
        
        if( 
iNCAmount == && iNum )
            
iNCAmount 1;
        
        new 
iRandom;
        
        for( new 
0iNCAmounti++ )
        {
            
iRandom randomiNum );            
            
cs_set_user_teamiPlayersiRandom ], TEAM_NC );
            
iPlayersiRandom ] = iPlayers[ --iNum ];
        }
        
        
server_cmd"sv_restartround 1 " );
    }
    
    public 
CmdEnableGunsid )
    {
        if( 
g_bRememberGunsid ] )
        {
            
client_printidprint_chat"%s Your gun menu has been re-enabled."g_szPrefix );
            
g_bRememberGunsid ] = false;
        }
        
        else
            
client_printidprint_chat"%s Your gun menu is already enabled!"g_szPrefix );
    }
    
    public 
CmdUseItemid )
    {
        switch( 
cs_get_user_teamid ) )
        {
            case 
TEAM_NC:
            {
                if( 
g_iTeleportsRemainingid ] > )
                {
                    new 
Float:flGameTime get_gametime();
                    
                    new 
iDelay get_pcvar_numg_pNightcrawlerTeleDelay );
                    
                    if( 
flGameTime g_flLastTeleportTimeid ] < iDelay )
                    {
                        
client_printidprint_chat"%s You must wait %i seconds inbetween teleports."g_szPrefixiDelay );
                        return;
                    }
                    
                    else if( 
TeleportPlayerid ) )
                    {
                        
g_iTeleportsRemainingid ]--;
                        
g_flLastTeleportTimeid ] = get_gametime();
                    
                    }
                }
            }
            
            case 
TEAM_HUMAN:
            {
                switch( 
g_iChosenItemid ] )
                {
                    case 
ITEM_ADRENALINE:
                    {
                        if( 
g_bAdrenalineActiveid ] )
                        {
                            
client_print(idprint_chat,  "%s Adrenaline is already active!"g_szPrefix );
                        }
                        
                        else if( 
g_iAdrenalineUsesid ] > )
                        {
                            
g_iAdrenalineUsesid ]--;
                            
client_printidprint_chat"%s You have injected adrenaline!"g_szPrefix );
                            
                            
g_bAdrenalineActiveid ] = true;
                            
                            
set_user_maxspeedidget_pcvar_floatg_pAdrenalineSpeed ) );
                            
                            
set_taskget_pcvar_floatg_pAdrenalineTime ), "Task_RemoveAdrenaline"TASK_ADRENALINE id );
                        }
                    }
                    
                    case 
ITEM_MEDKIT:
                    {
                        if( 
g_iMedKitUsesid ] > )
                        {
                            
g_iMedKitUsesid ]--;
                            
client_printidprint_chat"%s You have used one of your medical kits. You have %i more."g_szPrefixg_iMedKitUsesid ] );
                            
                            
set_user_healthid100 );
                        }
                    }
                    
                    case 
ITEM_SUICIDE:
                    {
                        if( 
task_existsTASK_SUICIDE id ) )
                            return;
                            
                        
g_iSuicideTimeid ] = get_pcvar_numg_pSuicideTime );
                        
                        
Task_SuicideTASK_SUICIDE id );
                        
                        
set_task1.0"Task_Suicide"TASK_SUICIDE id, .flags="a", .repeat=g_iSuicideTimeid ] );
                        
                    }
                }
            }
        }
    }
    
    public 
Task_SetInvisibleiTaskID )
    {
        new 
id iTaskID TASK_INVISIBLE;
        
        
g_bVisibleid ] = false;
    }
    
    public 
Task_SuicideiTaskID )
    {
        new 
id iTaskID TASK_SUICIDE;

        if( --
g_iSuicideTimeid ] == )
        {
            new 
Float:flOrigin];
            
pevidpev_originflOrigin );
        
            
user_killid );
            
            
message_beginMSG_BROADCASTSVC_TEMPENTITY );
            
write_byteTE_EXPLOSION );
            
write_coordfloatroundflOrigin] ) );
            
write_coordfloatroundflOrigin] ) );
            
write_coordfloatroundflOrigin] ) );
            
write_shortg_iExplosionSprite );
            
write_byte30 );
            
write_byte30 );
            
write_byte);
            
message_end();
            
            
fm_radius_damageidflOriginget_pcvar_floatg_pSuicideDamage ), get_pcvar_floatg_pSuicideRadius ) );
        }
        
        else 
emit_soundidCHAN_ITEMg_szSuicideBombSoundVOL_NORMATTN_NORM0PITCH_NORM );
    }
    
    
// Taken from Jailbreak Mod by Pastout.
    
stock fm_radius_damageidFloat:flOrigin], Float:flDamageFloat:flRadius )
    {
        new 
szClassname33 ], CsTeams:iTeam;
        
        
iTeam cs_get_user_teamid );
        
        static 
iEnt;
        
iEnt = -1;
        while( ( 
iEnt engfuncEngFunc_FindEntityInSphereiEntflOriginflRadius ) ) )
        {
            
peviEntpev_classnameszClassnamecharsmaxszClassname ) );
            
            if( !
equaliszClassname"player" ) || !is_user_aliveiEnt ) || cs_get_user_teamiEnt ) == iTeam )
                continue;
            
            
ExecuteHamBHam_TakeDamageiEnt0idflDamageDMG_GENERIC );
        }
    }
    
    
// Taken from Jailbreak Mod by Pastout
    
stock createKill(idattackerweaponDescription[]) 
    {
        new 
iFragsiFrags2;
        
        if(
id != attacker
        {
            
iFrags get_user_frags(attacker);
            
set_user_frags(attackeriFrags 1);
               
            
//Kill the victim and block the messages
            
set_msg_block(g_msgDeath,BLOCK_ONCE);
            
set_msg_block(g_msgScoreInfo,BLOCK_ONCE);
            
user_kill(id);
              
            
//user_kill removes a frag, this gives it back
            
iFrags2 get_user_frags(id);
            
set_user_frags(idiFrags2 1);
              
            
//Replaced HUD death message
            
message_begin(MSG_ALLg_msgDeath,{0,0,0},0);
            
write_byte(attacker);
            
write_byte(id);
            
write_byte(0);
            
write_string(weaponDescription);
            
message_end();
              
            
//Update killers scorboard with new info
            
message_begin(MSG_ALLg_msgScoreInfo);
            
write_byte(attacker);
            
write_short(iFrags);
            
write_short(get_user_deaths(attacker));
            
write_short(0);
            
write_short(get_user_team(attacker));
            
message_end();
              
            
//Update victims scoreboard with correct info
            
message_begin(MSG_ALLg_msgScoreInfo);
            
write_byte(id);
            
write_short(iFrags2);
            
write_short(get_user_deaths(id));
            
write_short(0);
            
write_short(get_user_team(id));
            
message_end();
            
            new 
szName[32], szName1[32];
            
get_user_name(idszName31);
            
get_user_name(attackerszName131);
        }
    }
            
    public 
Task_RemoveAdrenalineiTaskID )
    {
        new 
id iTaskID TASK_ADRENALINE;
        
        
g_bAdrenalineActiveid ] = false;
        
        if( 
is_user_aliveid ) )
            
set_user_maxspeedid0.0 );
    }
    
    public 
Forward_AddToFullPack_PosteseiEntityiHostiHostFlagsiPlayerpSet )
    {
        if( 
is_user_aliveiEntity ) && is_user_aliveiHost ) && cs_get_user_teamiEntity ) == TEAM_NC && cs_get_user_teamiHost ) == TEAM_HUMAN )
        {
            
set_esesES_RenderModekRenderTransAdd );
            
            if( 
g_bVisibleiEntity ] )
                
set_esesES_RenderAmt255 );
                
            else 
set_esesES_RenderAmt);
        }
    }

    
CountTeams()
    {
        for( new 
1<= g_iMaxPlayersi++ )
        {
            if( !
is_user_connected) )
                continue;
            
            
g_iTeamCountcs_get_user_team) ]++;
        }
    }
    
    
// Credits to NiHiLaNTh
    
TeleportPlayeriPlayer )
    {
        new 
Float:vOrigin], Float:vViewOfs];
        
peviPlayerpev_originvOrigin );
        
peviPlayerpev_view_ofsvViewOfs );
        
        
xs_vec_addvOriginvViewOfsvOrigin );
        
        new 
Float:vViewAngle];
        
peviPlayerpev_v_anglevViewAngle );
        
        new 
Float:vAimVector];
        
angle_vectorvViewAngleANGLEVECTOR_FORWARDvAimVector );
        
xs_vec_normalizevAimVectorvAimVector );
        
xs_vec_mul_scalarvAimVector9999.0vAimVector );
        
        
engfuncEngFunc_TraceLinevOriginvAimVector0iPlayer);
        
        
get_tr20TR_vecEndPosvAimVector );
        
get_tr20TR_vecPlaneNormalvOrigin );
        
        
xs_vec_normalizevOriginvOrigin );
        
xs_vec_mul_scalarvOrigin36.0vOrigin );
        
xs_vec_addvAimVectorvOriginvOrigin );
        
        new 
bool:bDucking false;
        
        if( 
trace_hullvOriginHULL_HUMANiPlayer ) )
        {
            if( !
trace_hullvOriginHULL_HEADiPlayer ) )
            {
                
bDucking true;
            }
            else
            {
                
// player cannot duck or stand clearly, so try to move the origin so player can
                
                
new iResetCount;
                
                
test_new_origin:
                
                if( ++
iResetCount )
                {
                    
// too many tries to find a good origin. just set to fail.
                    
                    
client_printiPlayerprint_center"You cannot teleport there! You will be stuck!" );
                    
                    return 
0;
                }
                
                for( new 
06i++ )
                {
                    switch( 
)
                    {
                        case 
0:
                        {
                            
// check above x
                            
                            
xs_vec_copyvOriginvViewOfs );
                            
vViewOfs] += 16.0;
                            
                            
engfuncEngFunc_TraceLinevOriginvViewOfs0iPlayer);
                            
                            
get_tr20TR_flFractionvViewOfs] );
                            
                            if( 
vViewOfs] != 1.0 )
                            {
                                
get_tr20TR_vecEndPosvViewOfs );
                                
                                
vOrigin] = vViewOfs] - 16.0;
                                
                                goto 
test_new_origin;
                            }
                        }
                        case 
1:
                        {
                            
// check below x
                            
                            
xs_vec_copyvOriginvViewOfs );
                            
vViewOfs] -= 16.0;
                            
                            
engfuncEngFunc_TraceLinevOriginvViewOfs0iPlayer);
                            
                            
get_tr20TR_flFractionvViewOfs] );
                            
                            if( 
vViewOfs] != 1.0 )
                            {
                                
get_tr20TR_vecEndPosvViewOfs );
                                
                                
vOrigin] = vViewOfs] + 16.0;
                                
                                goto 
test_new_origin;
                            }
                        }
                        case 
2:
                        {
                            
// check above y
                            
                            
xs_vec_copyvOriginvViewOfs );
                            
vViewOfs] += 16.0;
                            
                            
engfuncEngFunc_TraceLinevOriginvViewOfs0iPlayer);
                            
                            
get_tr20TR_flFractionvViewOfs] );
                            
                            if( 
vViewOfs] != 1.0 )
                            {
                                
get_tr20TR_vecEndPosvViewOfs );
                                
                                
vOrigin] = vViewOfs] - 16.0;
                                
                                goto 
test_new_origin;
                            }
                        }
                        case 
3:
                        {
                            
// check below y
                            
                            
xs_vec_copyvOriginvViewOfs );
                            
vViewOfs] -= 16.0;
                            
                            
engfuncEngFunc_TraceLinevOriginvViewOfs0iPlayer);
                            
                            
get_tr20TR_flFractionvViewOfs] );
                            
                            if( 
vViewOfs] != 1.0 )
                            {
                                
get_tr20TR_vecEndPosvViewOfs );
                                
                                
vOrigin] = vViewOfs] + 16.0;
                                
                                goto 
test_new_origin;
                            }
                        }
                        case 
4:
                        {
                            
// check above z
                            
                            
xs_vec_copyvOriginvViewOfs );
                            
vViewOfs] += 36.0;
                            
                            
engfuncEngFunc_TraceLinevOriginvViewOfs0iPlayer);
                            
                            
get_tr20TR_flFractionvViewOfs] );
                            
                            if( 
vViewOfs] != 1.0 )
                            {
                                
xs_vec_copyvOriginvViewOfs );
                                
vViewOfs] += 18.0;
                                
                                
engfuncEngFunc_TraceLinevOriginvViewOfs0iPlayer);
                                
                                
get_tr20TR_flFractionvViewOfs] );
                                
                                if( 
vViewOfs] != 1.0 )
                                {
                                    
get_tr20TR_vecEndPosvViewOfs );
                                    
                                    
vOrigin] = vViewOfs] - 36.0;
                                    
                                    goto 
test_new_origin;
                                }
                                
                                
bDucking true;
                            }
                        }
                        case 
5:
                        {
                            
// check below z
                            
                            
xs_vec_copyvOriginvViewOfs );
                            
vViewOfs] -= 36.0;
                            
                            
engfuncEngFunc_TraceLinevOriginvViewOfs0iPlayer);
                            
                            
get_tr20TR_flFractionvViewOfs] );
                            
                            if( 
vViewOfs] != 1.0 )
                            {
                                
xs_vec_copyvOriginvViewOfs );
                                
vViewOfs] -= 18.0;
                                
                                
engfuncEngFunc_TraceLinevOriginvViewOfs0iPlayer);
                                
                                
get_tr20TR_flFractionvViewOfs] );
                                
                                if( 
vViewOfs] != 1.0 )
                                {
                                    
get_tr20TR_vecEndPosvViewOfs );
                                    
                                    
vOrigin] = vViewOfs] + 36.0;
                                    
                                    goto 
test_new_origin;
                                }
                                
                                
bDucking true;
                            }
                        }
                    }
                }
            }
        }
        
        if( 
engfuncEngFunc_PointContentsvOrigin ) != CONTENTS_EMPTY )
        {
            
client_printiPlayerprint_center"You can't teleport there!" );
            
            return 
0;
        }
        
        if( 
bDucking )
        {
            
set_peviPlayerpev_flagspeviPlayerpev_flags ) | FL_DUCKING );
            
engfuncEngFunc_SetSizeiPlayerFloat:{ -16.0, -16.0, -18.0 }, Float:{ 16.016.018.0 } );
        }
        
        
engfuncEngFunc_SetOriginiPlayervOrigin );
        
        return 
1;

    }

public 
userhelp(id)
{
    
//create info/help.txt in your mod folder and put your info there as you add in motd  
    
show_motd(id"nightcrawler.txt""Night Crawler Help")
}

public 
fw_setmodel(entmodel[])
{
    if (!
pev_valid(ent))
    {
        return 
FMRES_IGNORED
    
}
    
    
// Not yet thrown
    
if (entity_get_float(entEV_FL_gravity) == 0.0)
    {
        return 
FMRES_IGNORED
    
}
    
    if (
contain(modelnade_model) == -1)
        return 
FMRES_IGNORED
    
    entity_set_int
(entEV_INT_movetypeMOVETYPE_BOUNCEMISSILE)
    
entity_set_int(entEV_INT_colisions0)
    
entity_set_edict(entEV_ENT_target0)
    
entity_set_size(entFloat:{-2.0,-4.0,-2.0}, Float:{2.04.02.0})
    
    new 
color[3
    
color[0] = RGB_R_COLOR
    color
[1] = RGB_G_COLOR
    color
[2] = RGB_B_COLOR
    
    set_rendering
(entkRenderFxGlowShellRGB_R_COLORRGB_G_COLORRGB_B_COLORkRenderTransTexture16)
    
set_beamfollow(ent2010color50)
    
    
entity_set_float(entEV_FL_removetimeget_gametime() + REMOVE_TIME)
    
    return 
FMRES_IGNORED
}

public 
fw_grenade_think(ent)
{
    if (
entity_get_int(entEV_INT_movetype) != MOVETYPE_BOUNCEMISSILE)
        return 
HAM_IGNORED
    
    
if (entity_get_float(entEV_FL_removetime) > get_gametime() + REMOVE_TIME)
    {
        
entity_set_float(entEV_FL_removetimeget_gametime() + REMOVE_TIME)
    }
    
    new 
owner pev(entpev_owner)
    new 
Float:origin[3]
    
entity_get_vector(entEV_VEC_originorigin)
    
    if (
entity_get_float(entEV_FL_removetime) < get_gametime() || !is_user_connected(owner) || is_user_connecting(owner))
    {
        
clear_beamfollow(ent)
        
entity_set_int(entEV_INT_flagsFL_KILLME)
        
metal_gibs(origin)
        
        return 
HAM_SUPERCEDE
    
}
    
    new 
team _:cs_get_user_team(owner)
    
    new 
targetFloat:velocity[3], oldtarget
    target 
entity_get_edict(entEV_ENT_target)
    
oldtarget entity_get_edict(entEV_ENT_lasttarget)
    
    if (
target == owner && get_pcvar_num(pcv_ignore_owner))
    {
        
target 0
        entity_set_edict
(entEV_ENT_target0)
    }
    
    if (
target == 0)
    {
        
entity_get_vector(entEV_VEC_velocityvelocity)
        
        if (
xs_vec_len(velocity) < VELOCITY_BORDER)
        {
            
xs_vec_mul_scalar(velocityxs_vec_len(velocity) + VELOCITY_ADDvelocity)
            
entity_set_vector(entEV_VEC_velocityvelocity)
        }
        
        new 
= -1Float:distance DISTANCE_SENSEFloat:junk[3], pcvar get_pcvar_num(pcv_ignore_friendly), targetteam
        
        
while ((find_ent_in_sphere(iorigindistance)))
        {
            if (
g_maxplayers)
                break
            
            if (
== owner)
                continue
            
            if (
== oldtarget)
                continue
            
            if (!
is_user_connected(i) || is_user_connecting(i))
                continue
            
            if (!
is_user_alive(i))
                continue
            
            
targetteam _:cs_get_user_team(i)
            
            if ((
team != targetteam && targetteam != _:CS_TEAM_SPECTATOR && targetteam != _:CS_TEAM_UNASSIGNED) || (team == targetteam && !pcvar))
            {
                static 
Float:o[3]
                
entity_get_vector(iEV_VEC_origino)
                
entity_get_vector(iEV_VEC_view_ofsjunk)
                
xs_vec_add(ojunko)
                static 
Float:new_distance
                new_distance 
get_distance_f(oorigin)
                
                if (
new_distance distance)
                {
                    
distance new_distance
                    entity_set_edict
(entEV_ENT_targeti)
                }
            }
        }
        
        if (!
get_pcvar_num(pcv_ignore_owner) && entity_range(ownerent) < distance && entity_get_int(entEV_INT_colisions) > 0)
        {
            
entity_set_edict(entEV_ENT_targetowner)
        }
        
        
entity_set_float(entEV_FL_nextthinkget_gametime() + RETHINK_BLACK_OUT_TIME)
        
        return 
HAM_SUPERCEDE
    
}
    else if (!
is_user_alive(target))
    {
        
entity_get_vector(entEV_VEC_velocityvelocity)
        
        if (
xs_vec_len(velocity) < VELOCITY_BORDER)
        {
            
xs_vec_mul_scalar(velocityxs_vec_len(velocity) + VELOCITY_ADDvelocity)
            
entity_set_vector(entEV_VEC_velocityvelocity)
        }
        
        
entity_set_edict(entEV_ENT_target0)
        
entity_set_float(entEV_FL_nextthinkget_gametime() + RETHINK_BLACK_OUT_TIME)
        return 
HAM_SUPERCEDE
    
}
    else
    {
        new 
Float:aim[3], Float:targetorigin[3], Float:velocity_normal[3], Float:aim_normal[3]
        
        
entity_get_vector(targetEV_VEC_origintargetorigin)
        
        
xs_vec_add(targetoriginFloat:{0.00.030.0}, targetorigin)
        
        if (!
is_point_visible(origintargetoriginent))
        {
            
entity_set_edict(entEV_ENT_target0)
            
entity_set_float(entEV_FL_nextthinkget_gametime() + RETHINK_BLACK_OUT_TIME)
            return 
HAM_SUPERCEDE
        
}
        
        
xs_vec_sub(targetoriginoriginaim)
        
        if (
xs_vec_len(aim) <= DISTANCE_CUT_HEAD)
        {
            
xs_vec_mul_scalar(aimVELOCITY_AIMFORHEAD/xs_vec_len(aim), aim)
            
            
entity_set_vector(entEV_VEC_velocityaim)
            
            if (
target == owner && !get_pcvar_num(pcv_ignore_owner) && get_distance_f(targetoriginorigin) <= DISTANCE_CUT_OWNER_HEAD)
            {
                new 
Float:torigin[3]
                
entity_get_vector(ownerEV_VEC_origintorigin)
                
blood(torigin)
                
set_pdata_int(ownerOFFSET_LAST_HIT_GROUPHIT_HEAD5)
                
ExecuteHamB(Ham_TakeDamageownerentownerget_pcvar_float(pcv_damage), DMG_CS_BULLETS_KNIFE)
                
entity_set_edict(entEV_ENT_target0)
                
entity_set_edict(entEV_ENT_lasttargetowner)
                
                new 
color[3] , impacts
                color
[0] = RGB_R_COLOR
                color
[1] = RGB_G_COLOR
                color
[2] = RGB_B_COLOR
                
                create_blast
(origincolor)
                
                
impacts entity_get_int(entEV_INT_colisions)
                
                
impacts++
                
                
entity_set_int(entEV_INT_colisionsimpacts)
                
                if (
impacts >= IMPACT_TIMES)
                {
                    
clear_beamfollow(ent)
                    
entity_set_int(entEV_INT_flagsFL_KILLME)
                    
metal_gibs(origin)
                }
            }
            
            
entity_set_float(entEV_FL_nextthinkget_gametime() + RETHINK_BLACK_OUT_TIME)
            return 
HAM_SUPERCEDE
        
}
        
        
entity_get_vector(entEV_VEC_velocityvelocity)
        
        
xs_vec_sub(targetoriginoriginaim)
        
        
xs_vec_normalize(velocityvelocity_normal)
        
xs_vec_normalize(aimaim_normal)
        
        if (
xs_vec_len(velocity) < VELOCITY_BORDER)
        {
            
xs_vec_mul_scalar(velocityxs_vec_len(velocity) + VELOCITY_ADDvelocity)
        }
        
        if (
xs_vec_dot(aim_normalvelocity_normal) < 0)
        {
            
entity_set_edict(entEV_ENT_target0)
            
entity_set_float(entEV_FL_nextthinkget_gametime() + RETHINK_BLACK_OUT_TIME)
            
entity_set_vector(entEV_VEC_velocityvelocity)
            return 
HAM_SUPERCEDE
        
}
        
        if (
velocity_normal[0] < aim_normal[0])
        {
            
velocity[0] += EXTRA_VELOCITY
        
}
        else if (
velocity_normal[0] > aim_normal[0])
        {
            
velocity[0] -= EXTRA_VELOCITY
        
}
        
        if (
velocity_normal[1] < aim_normal[1])
        {
            
velocity[1] += EXTRA_VELOCITY
        
}
        else if (
velocity_normal[1] > aim_normal[1])
        {
            
velocity[1] -= EXTRA_VELOCITY
        
}
        
        if (
velocity_normal[2] < aim_normal[2])
        {
            
velocity[2] += EXTRA_VELOCITY_Z
        
}
        else if (
velocity_normal[2] > aim_normal[2])
        {
            
velocity[2] -= EXTRA_VELOCITY_Z
        
}
        
        
velocity[2] += 5.0
        
        entity_set_vector
(entEV_VEC_velocityvelocity)
    }
    
    
entity_set_float(entEV_FL_nextthinkget_gametime() + RETHINK_BLACK_OUT_TIME)
    return 
HAM_SUPERCEDE
}

public 
fw_touch(touchertouched)
{
    if (
entity_get_int(toucherEV_INT_movetype) != MOVETYPE_BOUNCEMISSILE)
        return 
HAM_IGNORED
    
    
new Float:origin[3]
    new 
impacts entity_get_int(toucherEV_INT_colisions)
    new 
owner entity_get_edict(toucherEV_ENT_owner)
    
entity_get_vector(toucherEV_VEC_originorigin)
    
    if (
<= touched <= g_maxplayers)
    {
        new 
CsTeams:team[2]
        
team[0] = cs_get_user_team(touched)
        
team[1] = cs_get_user_team(owner)
        
        if ((
team[0] != team[1] && team[0] != CS_TEAM_SPECTATOR && team[0] != CS_TEAM_UNASSIGNED)|| (team[0] == team[1] && !get_pcvar_num(pcv_ignore_friendly)))
        {
            new 
Float:origin[3]
            
entity_get_vector(touchedEV_VEC_originorigin)
            
blood(origin)
            
set_pdata_int(touchedOFFSET_LAST_HIT_GROUPHIT_HEAD5)
            
ExecuteHamB(Ham_TakeDamagetouchedtoucherownerget_pcvar_float(pcv_damage), DMG_CS_BULLETS_KNIFE)
            
entity_set_edict(toucherEV_ENT_target0)
            
entity_set_edict(toucherEV_ENT_lasttargettouched)
            
            new 
color[3
            
color[0] = RGB_R_COLOR
            color
[1] = RGB_G_COLOR
            color
[2] = RGB_B_COLOR
            
            create_blast
(origincolor)
        }
    }
    
    if (
touched g_maxplayers || touched == 0)
    {
        
msg_ricochet(origin)
    }
    
    
impacts++
    
    
entity_set_int(toucherEV_INT_colisionsimpacts)
    
    if (
impacts >= IMPACT_TIMES)
    {
        
clear_beamfollow(toucher)
        
entity_set_int(toucherEV_INT_flagsFL_KILLME)
        
metal_gibs(origin)
    }
    
    return 
HAM_IGNORED
}

bool:is_point_visible(Float:start[3], Float:end[3], ignore_ent)
{
    static 
ptr
    ptr 
create_tr2()
    
    
engfunc(EngFunc_TraceLinestartendIGNORE_MONSTERSignore_entptr)
    
    static 
Float:dist
    get_tr2
(ptrTR_flFractiondist)
    
    
free_tr2(ptr)
    
    return ((
dist == 1.0) ? true false)
}

metal_gibs(const Floatorigin[3])
{
    if (!
get_pcvar_num(pcv_effects))
        return
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_BREAKMODEL)                                                      // TE_BREAKMODEL
    
engfunc(EngFunc_WriteCoord,origin[0])                                          // x
    
engfunc(EngFunc_WriteCoord,origin[1])                                          // y
    
engfunc(EngFunc_WriteCoord,origin[2] + 24)                                      // z
    
engfunc(EngFunc_WriteCoord,20.0)                                             // size x
    
engfunc(EngFunc_WriteCoord,20.0)                                              // size y
    
engfunc(EngFunc_WriteCoord,20.0)                                             // size z
    
engfunc(EngFunc_WriteCoord,random_num(-50,50))                                  // velocity x
    
engfunc(EngFunc_WriteCoord,random_num(-50,50))                                 // velocity y
    
engfunc(EngFunc_WriteCoord,25.0)                                              // velocity z
    
write_byte(10)                                                                 // random velocity
    
write_short(spr_nadebits)                                                       // model
    
write_byte(10)                                                                   // count
    
write_byte(25)                                                                  // life
    
write_byte(2)                                                                  // flags: BREAK_METAL
    
message_end()
}

blood(const Float:origin[3])
{
    if (!
get_pcvar_num(pcv_effects))
        return
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_BLOODSPRITE)
    
engfunc(EngFunc_WriteCoordorigin[0])
    
engfunc(EngFunc_WriteCoordorigin[1])
    
engfunc(EngFunc_WriteCoordorigin[2] + 30.0)
    
write_short(spr_blood_spray)
    
write_short(spr_blood_drop)
    
write_byte(248// color index
    
write_byte(15// size
    
message_end()
}


create_blast(Float:originF[3], rgb[3])
{
    if (!
get_pcvar_num(pcv_effects))
        return
    
    new 
origin[3]
    
FVecIVec(originF,origin)

    
// smallest ring
    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
    
write_byte(TE_BEAMCYLINDER)
    
write_coord(origin[0]) // x
    
write_coord(origin[1]) // y
    
write_coord(origin[2]) // z
    
write_coord(origin[0]) // x axis
    
write_coord(origin[1]) // y axis
    
write_coord(origin[2] + 50// z axis
    
write_short(spr_explosion// sprite
    
write_byte(0// start frame
    
write_byte(0// framerate
    
write_byte(4// life
    
write_byte(60// width
    
write_byte(0// noise
    
write_byte(rgb[0]) // red
    
write_byte(rgb[1]) // green
    
write_byte(rgb[2]) // blue
    
write_byte(100// brightness
    
write_byte(0// speed
    
message_end()
}

// give an entity a beam trail
set_beamfollow(entlife,widthrgb[3], brightness)
{
    if (!
get_pcvar_num(pcv_effects))
        return
    
    
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
    
write_byte(TE_BEAMFOLLOW)
    
write_short(ent)                 // entity
    
write_short(spr_trail)             // sprite
    
write_byte(life)                 // life
    
write_byte(width)                 // width
    
write_byte(rgb[0])  // red
    
write_byte(rgb[1])    // green
    
write_byte(rgb[2])  // blue
    
write_byte(brightness)             // brightness
    
message_end()
}

clear_beamfollow(ent)
{
    if (!
get_pcvar_num(pcv_effects))
        return
    
    
message_begin(MSG_ALL,SVC_TEMPENTITY)
    
write_byte(TE_KILLBEAM)
    
write_short(ent// entity
    
message_end()
}

msg_ricochet(Float:origin[3])
{
    if (!
get_pcvar_num(pcv_effects))
        return
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYorigin0)
    
write_byte(TE_ARMOR_RICOCHET)
    
engfunc(EngFunc_WriteCoordorigin[0])
    
engfunc(EngFunc_WriteCoordorigin[1])
    
engfunc(EngFunc_WriteCoordorigin[2])
    
write_byte(5)
    
message_end()

Please Help Guys
__________________
AppY WaS HeRe !!!!

Last edited by AppY; 05-02-2013 at 09:33.
AppY is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:54.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode