Raised This Month: $51 Target: $400
 12% 

Request modify furien base


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Alexande
Member
Join Date: Feb 2020
Old 02-19-2020 , 02:35   Request modify furien base
Reply With Quote #1

Hi guys , i've got a furien base , which one I am gonna put down bellow ,I want you to modify it such as when you are furien it gives you the bomb from the beggining of the round , the base I have gives the bomb after some time.

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Furien Base"
#define VERSION "1.0"

#define SCOREATTRIB_BOMB            (1<<1)
#define TASK_BOMB 25432
#define TASKHP 25525

#define    SWITCH_TASK 112233
#define TASK_CANPLANT 10001

//** Furien Defines **//
#define IsWeaponBoxC4(%1)    ( get_pdata_cbase(%1, 39, 4) > 0 )

#define Ham_Player_ResetMaxSpeed Ham_Item_PreFrame

/** **/
enum _:CvarBits (<<=1) {
    
BLOCK_RADIO 1,
    
BLOCK_MSG
};

new 
Float:g_flFurienGravity 0.375Float:g_flMaxSpeed 900.0;
new 
g_iInvisFactor 1g_iPickUp 2;

/*
new const g_szPlayerModels[][] = {
    "subzeroFurien",
    "subzeroHuman"
}
*/

new g_iJumpNum[33];
new 
bool:g_bDoJump[33], bool:g_bCanPlant;
public 
plugin_init() 
{
    
register_plugin(PLUGINVERSION"FaTzZu");
    
    
register_event"HLTV""evRoundStart""a""1=0""2=0" ); 
    
    
RegisterHam(Ham_Spawn"player""hamPlayerSpawn"1);
    
RegisterHam(Ham_Player_ResetMaxSpeed"player""Player_ResetMaxSpeed"1);
    
RegisterHamHam_TakeDamage"player""HamTakeDamage" );
    
    
register_event"SendAudio",  "ev_CounterWin",  "a",  "1=0",  "2=%!MRAD_ctwin"  );
    
    new 
iEnt;
    
iEnt create_entity("info_target");
    
set_pev(iEntpev_classname"check_speed");
    
set_pev(iEntpev_nextthinkget_gametime() + 0.1);
    
register_think("check_speed""Set_Furiens_Visibility");
    
    
RegisterHam(Ham_Touch"weaponbox""CWeaponBox_Touch")
    
RegisterHam(Ham_Touch"armoury_entity""GroundWeapon_Touch")
    
RegisterHam(Ham_Touch"weapon_shield""GroundWeapon_Touch")
    
    
register_logevent"LogEvent_PlayerSpawnWithBomb"3"2=Spawned_With_The_Bomb" )
    
    
//Game name changer
    
register_forwardFM_GetGameDescription"GameDesc" ); 
    
    
    
register_message(get_user_msgid("ShowMenu"), "message_show_menu")
    
register_message(get_user_msgid("VGUIMenu"), "message_vgui_menu")

    
register_forward(FM_PlayerPreThink,  "fwdPlayerPreThink"  );
    
    
register_message(get_user_msgid("ScoreAttrib"), "Message_ScoreAttrib")
    
    
register_event"TeamInfo""join_team""a")
}

public 
plugin_precache()
{
    
disable_buyzone();
    
/*
    for( new i;i<sizeof(g_szPlayerModels); i++)
    {
        new szFileName[128];
        formatex(szFileName, charsmax(szFileName), "models/player/%s/%s.mdl", g_szPlayerModels[i], g_szPlayerModels[i]);
        if(file_exists(szFileName))
            precache_model(szFileName);
        else 
        {
            new szError[64];
            formatex(szError, charsmax(szError), "Missing file [%s]",szFileName); 
            set_fail_state(szError);
        }
    }
    */
}

public 
Message_ScoreAttrib() 

    new 
iFlags get_msg_arg_int(2
    if( 
iFlags SCOREATTRIB_BOMB && !g_bCanPlant
    { 
        
iFlags &= ~SCOREATTRIB_BOMB 
        set_msg_arg_int
(20iFlags
    } 
}    
public 
client_connect(id)
{
    
g_iJumpNum[id] = 0;
    
g_bDoJump[id] = false
}
public 
client_disconnect(id
    
remove_task(id+TASKHP);
public 
Player_ResetMaxSpeed(id)
{
    if( 
is_user_alive(id) && get_user_team(id) == && get_user_maxspeed(id) != 1.0)
        
set_pev(idpev_maxspeedg_flMaxSpeed)
}

public 
CWeaponBox_Touch(iWeaponBoxid)
{
    if(
is_user_connected(id))
    {
        if(!
is_user_alive(id))
            return 
HAM_SUPERCEDE

        
if(IsWeaponBoxC4(iWeaponBox))
            return 
HAM_IGNORED
    

        
if(!g_iPickUp)
        {
            
remove_entity(iWeaponBox)
            return 
HAM_SUPERCEDE
        
}

        new 
iTeam get_user_team(id)
        if((
iTeam == && g_iPickUp != 1) || (iTeam == && g_iPickUp != 2))
        {
            return 
HAM_SUPERCEDE
        
}
    }
    return 
HAM_IGNORED
}

public 
GroundWeapon_Touch(iWeaponid)
{
    if(
is_user_connected(id))
    {
        if( !
g_iPickUp )
        {
            
remove_entity(iWeapon)
            return 
HAM_SUPERCEDE
        
}

        if( !
is_user_alive(id) )
            return 
HAM_SUPERCEDE

        
new iTeam get_user_team(id)
        if((
iTeam == && g_iPickUp != 1) || (iTeam == && g_iPickUp != 2))
        {
            return 
HAM_SUPERCEDE
        
}
    }
    return 
HAM_IGNORED
}

public 
Set_Furiens_VisibilityiEnt )
{
    
entity_set_float(iEntEV_FL_nextthinkget_gametime() + 0.1)

    new 
iPlayers[32], iNumidFloat:fVecVelocity[3], iSpeed

    get_players
(iPlayersiNum"ae""TERRORIST")

    for(new 
ii<iNumi++)
    {
        
id iPlayers[i]
        if( 
get_user_weapon(id) == CSW_KNIFE )
        {
            
entity_get_vector(idEV_VEC_velocityfVecVelocity)
            
iSpeed floatroundvector_length(fVecVelocity) )
            if( 
iSpeed g_iInvisFactor*255 )
                
set_user_rendering(idkRenderFxNone000kRenderTransAlphaiSpeed/g_iInvisFactor)
            else
                
set_user_rendering(idkRenderFxNone000kRenderNormal0)
        }
        else
            
set_user_rendering(idkRenderFxNone000kRenderNormal0)
    }
}

public 
disable_buyzone() 
{
    new 
ent find_ent_by_class(-1,"info_map_parameters");

    if(!
entent create_entity("info_map_parameters");

    
DispatchKeyValue(ent,"buying","3");
    
DispatchSpawn(ent);
}
/** ----------------------- **/
public hamPlayerSpawn(id)
{
    if(!
is_user_alive(id))
        return;
    
    switch(
get_user_team(id))
    {
        case 
1:
        {
            
//cs_reset_user_model(id)
            //cs_set_user_model(id, g_szPlayerModels[0]);
            
set_user_gravity(idg_flFurienGravity);
            
set_user_footsteps(id1);
        }
        case 
2:
        {
            
//cs_reset_user_model(id)
            //cs_set_user_model(id, g_szPlayerModels[1]);
            
set_user_footsteps(id0);
            
set_user_gravity(id1.0);
        }
    }
    
set_user_rendering(idkRenderFxNone000kRenderNormal0)
}
/** ----------------------- **/
public ev_CounterWin() 
{
    new 
iPlayers[32],  iNum;
    
get_playersiPlayersiNum"ch" );
    
    if( 
iNum 
    {
        new 
id;
        for( --
iNumiNum >= 0iNum-- ) 
        {
            
id iPlayersiNum ];
            if( 
is_user_connectedid ) )
            {
                
BeginDelayedTeamChangeid );
            }
        }
    }
}
public 
BeginDelayedTeamChange(id)
{
    switch(
id
    { 
        case 
1..6:  set_task(  0.1"ChangeUserTeamWithDelay",id+SWITCH_TASK); 
        case 
7..13:  set_task(  0.2"ChangeUserTeamWithDelay",id+SWITCH_TASK); 
        case 
14..20:  set_task(  0.3"ChangeUserTeamWithDelay",id+SWITCH_TASK); 
        case 
21..26:  set_task(  0.4"ChangeUserTeamWithDelay",id+SWITCH_TASK); 
        case 
27..32:  set_task(  0.5"ChangeUserTeamWithDelay",id+SWITCH_TASK); 
    } 
}
public 
ChangeUserTeamWithDelay(id)
{
    
id -= SWITCH_TASK;
    if(!
is_user_connected(id)) return 1;
    
    switch(
cs_get_user_team(id)) 
    {
        case 
CS_TEAM_Tcs_set_user_teamidCS_TEAM_CT );
        case 
CS_TEAM_CTcs_set_user_teamidCS_TEAM_T );
    }
    return 
0;
}
/** ----------------------- **/
public evRoundStart() 
{
    
g_bCanPlant false;
    
    
remove_task(TASK_BOMB);
    new 
FloatflTime get_cvar_num"mp_freezetime" ) + ( get_cvar_num"mp_roundtime" ) * 60 ) - 30.0
    
set_taskflTime"taskGiveBomb"TASK_BOMB ); 
}
public 
taskGiveBomb()
{
    new 
id GetRandomPlayer("ae""TERRORIST");
    if(!
id)
        return;
    
give_item(id"weapon_c4");
    
SetBombSites(true);
    
cs_set_user_plant(id11);
    new 
szName[32];
    
get_user_name(idszName31);
    
g_bCanPlant true;
}
public 
LogEvent_PlayerSpawnWithBomb(id)
{
    new 
id get_loguser_index();
    if (
user_has_weapon(idCSW_C4))
    {
        
engclient_cmd(id"weapon_c4")
        
cs_set_user_bpammo(idCSW_C40)
        
engclient_cmd(id"lastinv")
        
        
message_begin(MSG_ONEget_user_msgid("StatusIcon"), _id)
        
write_byte(0)
        
write_string("c4")
        
message_end()
        
        
SetBombSites(false);
        
cs_set_user_plant(id00);
    }
}
/** ----------------------- **/
public client_PreThink(id
{
    if(!
is_user_alive(id)) 
        return;
    
    new 
Float:fallspeed 100.0 * -1.0

    
new button get_user_button(id)
    if(
button IN_USE && get_user_team(id) == 2)  
    {
        new 
Float:velocity[3]
        
entity_get_vector(idEV_VEC_velocityvelocity)
        if (
velocity[2] < 0.0
        {
            
entity_set_int(idEV_INT_sequence3)
            
entity_set_int(idEV_INT_gaitsequence1)
            
entity_set_float(idEV_FL_frame1.0)
            
entity_set_float(idEV_FL_framerate1.0)

            
velocity[2] = (velocity[2] + 40.0 fallspeed) ? velocity[2] + 40.0 fallspeed
            entity_set_vector
(idEV_VEC_velocityvelocity)
        }
    }
    
    
    new 
nbut get_user_button(id)
    new 
obut get_user_oldbutton(id)
    
    if((
nbut IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut IN_JUMP))
    {
        if(
g_iJumpNum[id] < 1)
        {
            
g_bDoJump[id] = true
            g_iJumpNum
[id]++
        }
    }
    if((
nbut IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
    {
        
g_iJumpNum[id] = 0
    
}
}
public 
client_PostThink(id)
{
    if(!
is_user_alive(id)) 
        return;

    if(
g_bDoJump[id])
    {
        new 
Float:velocity[3]    
        
entity_get_vector(id,EV_VEC_velocity,velocity)
        
        
velocity[2] = random_float(265.0,285.0)
        
entity_set_vector(id,EV_VEC_velocity,velocity)
        
        
g_bDoJump[id] = false
    
}
}
/** ----------------------- **/
public fwdPlayerPreThinkid )
{
    if(
is_user_alive(id))
    {
        new 
targetbody
        
get_user_aiming(idtargetbody9999);
        
        new 
CsTeams:team cs_get_user_team(id);
        
        if(
is_user_alive(target))
        {
            new 
CsTeams:targetTeam  =  cs_get_user_team(target);
                
            new 
sName[32];
            
get_user_name(target,sName,31);
                        
            new 
sMessage[  64  ];
            if(
targetTeam == team)
                
formatex(  sMessagecharsmax(sMessage), "%s Health: %i",  sName,  get_user_health(  target  )  );
                
            else if( 
targetTeam != team && team != CS_TEAM_CT )
                
formatex(  sMessagesizeof  (  sMessage  )  -1"%s Health: %i",  sName,  get_user_health(  target  )  );
                    
            if( 
targetTeam == CS_TEAM_CT )
                
set_hudmessage063127, -1.0, -1.000.00.10.00.0, -);
            else if( 
targetTeam == CS_TEAM_T )
                
set_hudmessage12700, -1.0, -1.000.00.10.00.0, -);    
        
            
show_hudmessage(  id,  "%s",  sMessage  );
        }
    }
    return 
FMRES_IGNORED;
}
/** ----------------------- **/
public message_show_menu(msgiddestid) {
    if (!
should_autojoin(id))
        return 
PLUGIN_CONTINUE

    
static team_select[] = "#Team_Select"
    
static menu_text_code[sizeof team_select]
    
get_msg_arg_string(4menu_text_codesizeof menu_text_code 1)
    if (!
equal(menu_text_codeteam_select))
        return 
PLUGIN_CONTINUE

    set_force_team_join_task
(idmsgid)

    return 
PLUGIN_HANDLED
}

public 
message_vgui_menu(msgiddestid) {
    if (
get_msg_arg_int(1) != || !should_autojoin(id))
        return 
PLUGIN_CONTINUE

    set_force_team_join_task
(idmsgid)

    return 
PLUGIN_HANDLED
}
/** ----------------------- **/
public HamTakeDamage(idiInflictoriAttackerFloatflDamageiDamageBits)
{
    if( 
iDamageBits DMG_BLAST )
        return 
HAM_SUPERCEDE;
    
    return 
HAM_IGNORED;
}
/** ----------------------- **/
public GameDesc() 

    
forward_return(FMV_STRING"Furien by Ghimpe" ); 
    return 
FMRES_SUPERCEDE

/** ----------------------- **/
public join_team()

    new 
id read_data(1);
    static 
jucator[32];

    
read_data(2jucator31);

    if(!
is_user_connected(id))
        return 
PLUGIN_CONTINUE ;

    switch(
jucator[0])
    {
        case 
'C'
        {
            
register_clcmd("jointeam","cmd_block");
            
register_clcmd("jointeam 1","cmd_block");
            
register_clcmd("jointeam 5","cmd_block");
        }

        case 
'T'
        {
            
register_clcmd("jointeam","cmd_block");
            
register_clcmd("jointeam 1","cmd_block");
            
register_clcmd("jointeam 5","cmd_block");
        }
    
    
        case 
'S'
        {
            
register_clcmd("jointeam","cmd_block");
            
register_clcmd("jointeam 1","cmd_block");
            
register_clcmd("jointeam 5","cmd_block");
        }
    }
    return 
PLUGIN_CONTINUE;
}

public 
cmd_block(id) return PLUGIN_HANDLED;
/** ----------------------- **/
bool:should_autojoin(id) {
    return (!
get_user_team(id) && !task_exists(id))
}

set_force_team_join_task(idmenu_msgid) {
    static 
param_menu_msgid[2]
    
param_menu_msgid[0] = menu_msgid
    set_task
(0.1"task_force_team_join"idparam_menu_msgidsizeof param_menu_msgid)
}

public 
task_force_team_join(menu_msgid[], id) {
    if (
get_user_team(id))
        return
    
    
force_team_join(idmenu_msgid[0], "5","5")
}

stock force_team_join(idmenu_msgid/* const */ team[] = "5"/* const */ class[] = "0") {
    static 
jointeam[] = "jointeam"
    
if (class[0] == '0') {
        
engclient_cmd(idjointeamteam)
        return
    }

    static 
msg_blockjoinclass[] = "joinclass"
    
msg_block get_msg_block(menu_msgid)
    
set_msg_block(menu_msgidBLOCK_SET)
    
engclient_cmd(idjointeamteam)
    
engclient_cmd(idjoinclass, class)
    
set_msg_block(menu_msgidmsg_block)
}
/** ----------------------- **/
stock GetRandomPlayer( const flags[  ] = "", const team[  ]= "" ) {
    
    new 
iPlayers32 ], iNum;
    
get_playersiPlayersiNumflagsteam );
    
    return 
iNum iPlayersrandom_num0iNum ) ] : 0;
}
stock get_loguser_index() {
    new 
loguser[80], name[32]
    
read_logargv(0loguser79)
    
parse_loguser(logusername31)
    
    return 
get_user_index(name)
}  
SetBombSitesbool:bActive )
{
    new 
iEnt = -1
    
while( (iEnt find_ent_by_class(iEnt"func_bomb_target")) > )
    {
        
entity_set_int(iEntEV_INT_solidbActive SOLID_TRIGGER SOLID_NOT)
    }
    while( (
iEnt find_ent_by_class(iEnt"info_bomb_target")) > )
    {
        
entity_set_int(iEntEV_INT_solidbActive SOLID_TRIGGER SOLID_NOT)
    }

And one question , do you think that base can make lag on server?
Alexande is offline
Alexande
Member
Join Date: Feb 2020
Old 02-20-2020 , 08:09   Re: Request modify furien base
Reply With Quote #2

Someone , please?
Alexande 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 04:20.


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