Thread: [Solved] Plugin problem
View Single Post
Author Message
amirwolf
Senior Member
Join Date: Feb 2019
Location: Iran
Old 05-14-2020 , 07:15   Plugin problem
Reply With Quote #1

This plugin interferes with the performance of other plugins

PHP Code:
set_user_maxspeed 
PHP Code:
#include < amxmodx >

#include < engine >

#include < fakemeta >

#include < hamsandwich >

#include < fun >

#include < cstrike >


static const g_szBallModel[ ]     = "models/ball.mdl";

static const 
g_szBallName[ ]      = "ball";

 

new 
g_iBallg_szFile128 ], g_szMapname32 ], g_iButtonsMenug_iTrailSprite;

new 
bool:g_bNeedBallcSpeedcDistance;

new 
Float:g_vOrigin];

 

public 
plugin_init( ) {

    
register_plugin"Jailbreak | Football""1.0""xPaw" );

   

    
/* Cvars */

    
cSpeed register_cvar("football_speed""200.0");

    
cDistance register_cvar("football_distance""520");

   

    
/* Register Forward */

    
register_forward(FM_PlayerPreThink"PlayerPreThink"0)

   

    
/* Current Weapon */

    
register_event("CurWeapon""CurWeapon""be");

   

    
RegisterHamHam_ObjectCaps"player""FwdHamObjectCaps");

    
register_logevent"EventRoundStart"2"1=Round_Start" );

   

    
register_thinkg_szBallName"FwdThinkBall" );

    
register_touchg_szBallName"player""FwdTouchPlayer" );

   

    new const 
szEntity[ ][ ] = {

        
"worldspawn""func_wall""func_door",  "func_door_rotating",

        
"func_wall_toggle""func_breakable""func_pushable""func_train",

        
"func_illusionary""func_button""func_rot_button""func_rotating"

    
}

   

    for( new 
isizeof szEntityi++ )

        
register_touchg_szBallNameszEntity], "FwdTouchWorld" );

   

    
g_iButtonsMenu menu_create"\r\wBall Maker Menu\r :""HandleButtonsMenu" );

    
menu_additemg_iButtonsMenu"\r= \wПоставить мяч""1" );
    
menu_additemg_iButtonsMenu"\r= \wУбрать мяч""2" );
    
menu_additemg_iButtonsMenu"\r= \wУбрать мяч""3" );
    
menu_additemg_iButtonsMenu"\r= \wУбрать мяч""4" );

    
menu_setpropg_iButtonsMenuMPROP_EXITNAME"Exit" );
    
menu_setpropg_iButtonsMenuMPROP_NUMBER_COLOR"\d");

    
register_clcmd"say /ball""CmdButtonsMenu" );

    
register_clcmd"say /reset""UpdateBall" );

}    

public 
PlayerPreThink(id) {

    if(!
is_user_alive(id))

        return 
PLUGIN_CONTINUE;

       

    if( 
is_valid_entg_iBall ) ) {

        static 
iOwneriOwner pevg_iBallpev_iuser1 );

        if( 
iOwner != id )

            
set_user_maxspeed(id230.0)

    }

    return 
PLUGIN_HANDLED;

}

public 
CurWeapon(id) {

    if(!
is_user_alive(id))

        return 
PLUGIN_CONTINUE;

    if( 
is_valid_entg_iBall ) ) {

        static 
iOwneriOwner pevg_iBallpev_iuser1 );

        if( 
iOwner == id )

            
set_user_maxspeed(idget_pcvar_float(cSpeed))

    }    

    return 
PLUGIN_HANDLED;

}

public 
UpdateBallid ) {

    if( !
id || get_user_flagsid ) & ADMIN_KICK ) {

        if( 
is_valid_entg_iBall ) ) {

            
entity_set_vectorg_iBallEV_VEC_velocityFloat:{ 0.00.00.0 } ); // To be sure ?

            
entity_set_origing_iBallg_vOrigin );

           

            
entity_set_intg_iBallEV_INT_movetypeMOVETYPE_BOUNCE );

            
entity_set_sizeg_iBallFloat:{ -15.0, -15.00.0 }, Float:{ 15.015.012.0 } );

            
entity_set_intg_iBallEV_INT_iuser1);

        }

    }

   

    return 
PLUGIN_HANDLED;

}

 

public 
plugin_precache( ) {

    
precache_modelg_szBallModel );

   

    
g_iTrailSprite precache_model"sprites/laserbeam.spr" );

   

    
get_mapnameg_szMapname31 );

    
strtolowerg_szMapname );

   

    
// File

    
new szDatadir64 ];

    
get_localinfo"amxx_datadir"szDatadircharsmaxszDatadir ) );

   

    
formatexszDatadircharsmaxszDatadir ), "%s"szDatadir );

   

    if( !
dir_existsszDatadir ) )

        
mkdirszDatadir );

   

    
formatexg_szFilecharsmaxg_szFile ), "%s/ball.ini"szDatadir );

   

    if( !
file_existsg_szFile ) ) {

        
write_fileg_szFile"// Ball Spawn Editor", -);

        
write_fileg_szFile" ", -);

       

        return; 
// We dont need to load file

    
}

   

    new 
szData256 ], szMap32 ], szOrigin][ 16 ];

    new 
iFile fopeng_szFile"rt" );

   

    while( !
feofiFile ) ) {

        
fgetsiFileszDatacharsmaxszData ) );

       

        if( !
szData] || szData] == ';' || szData] == ' ' || ( szData] == '/' && szData] == '/' ) )

            continue;

       

        
parseszDataszMap31szOrigin], 15szOrigin], 15szOrigin], 15 );

       

        if( 
equalszMapg_szMapname ) ) {

            new 
Float:vOrigin];

           

            
vOrigin] = str_to_floatszOrigin] );

            
vOrigin] = str_to_floatszOrigin] );

            
vOrigin] = str_to_floatszOrigin] );

           

            
CreateBall0vOrigin );

           

            
g_vOrigin vOrigin;

           

            break;

        }

    }

   

    
fcloseiFile );

}

 

public 
CmdButtonsMenuid ) {

        if( 
get_user_flagsid ) & ADMIN_KICK && cs_get_user_team(id) == CS_TEAM_T )

        
menu_displayidg_iButtonsMenu);

}

 

public 
HandleButtonsMenuidiMenuiItem ) {

    if( 
iItem == MENU_EXIT )

        return 
PLUGIN_HANDLED;

   

    new 
szKey], _Access_Callback;

    
menu_item_getinfoiMenuiItem_AccessszKey1""0_Callback );

   

    new 
iKey str_to_numszKey );

   

    switch( 
iKey ) {

        case 
1:    {

            if( 
pev_validg_iBall ) )

                return 
PLUGIN_CONTINUE;

               

            
CreateBallid );

        }

        case 
2: {

            if( 
is_valid_entg_iBall ) ) {

                
entity_set_vectorg_iBallEV_VEC_velocityFloat:{ 0.00.00.0 } ); // To be sure ?

                
entity_set_origing_iBallg_vOrigin );

               

                
entity_set_intg_iBallEV_INT_movetypeMOVETYPE_BOUNCE );

                
entity_set_sizeg_iBallFloat:{ -15.0, -15.00.0 }, Float:{ 15.015.012.0 } );

                
entity_set_intg_iBallEV_INT_iuser1);

                
client_printidprint_chat"* Successfully loaded ball!" );

            }

        }

        case 
3: {

            new 
iEntity;

           

            while( ( 
iEntity find_ent_by_classiEntityg_szBallName ) ) > )

                
remove_entityiEntity );

            
client_printidprint_chat"* Successfully removed the balls!" );

        }

        case 
4: {

            new 
iBalliEntityFloat:vOrigin];

           

            while( ( 
iEntity find_ent_by_classiEntityg_szBallName ) ) > )

                
iBall iEntity;

           

            if( 
iBall )

                
entity_get_vectoriBallEV_VEC_originvOrigin );

            else

                return 
PLUGIN_HANDLED;

           

            new 
bool:bFoundiPosszData32 ], iFile fopeng_szFile"r+" );

           

            if( !
iFile )

                return 
PLUGIN_HANDLED;

           

            while( !
feofiFile ) ) {

                
fgetsiFileszData31 );

                
parseszDataszData31 );

               

                
iPos++;

               

                if( 
equalszDatag_szMapname ) ) {

                    
bFound true;

                   

                    new 
szString256 ];

                    
formatexszString255"%s %f %f %f"g_szMapnamevOrigin], vOrigin], vOrigin] );

                   

                    
write_fileg_szFileszStringiPos );

                   

                    break;

                }

            }

           

            if( !
bFound )

                
fprintfiFile"%s %f %f %f^n"g_szMapnamevOrigin], vOrigin], vOrigin] );

           

            
fcloseiFile );

           

            
client_printidprint_chat"* Successfully saved ball!" );

        }

        default: return 
PLUGIN_HANDLED;

    }

   

    
menu_displayidg_iButtonsMenu);

   

    return 
PLUGIN_HANDLED;

}

 

public 
EventRoundStart( ) {

    if( !
g_bNeedBall )

        return;

   

    if( !
is_valid_entg_iBall ) )

        
CreateBall0g_vOrigin );

    else {

        
entity_set_vectorg_iBallEV_VEC_velocityFloat:{ 0.00.00.0 } ); // To be sure ?

        
entity_set_origing_iBallg_vOrigin );

       

        
entity_set_intg_iBallEV_INT_solidSOLID_BBOX );

        
entity_set_intg_iBallEV_INT_movetypeMOVETYPE_BOUNCE );

        
entity_set_sizeg_iBallFloat:{ -15.0, -15.00.0 }, Float:{ 15.015.012.0 } );

        
entity_set_intg_iBallEV_INT_iuser1);

    }

}

 

public 
FwdHamObjectCapsid ) {

    if( 
pev_validg_iBall ) && is_user_aliveid ) ) {

        static 
iOwneriOwner pevg_iBallpev_iuser1 );

       

        if( 
iOwner == id )

            
KickBallid );

    }

}

 

// BALL BRAIN :)

////////////////////////////////////////////////////////////

public FwdThinkBalliEntity ) {

    if( !
is_valid_entg_iBall ) )

        return 
PLUGIN_HANDLED;

   

    
entity_set_floatiEntityEV_FL_nextthinkhalflife_time( ) + 0.05 );

   

    static 
Float:vOrigin], Float:vBallVelocity];

    
entity_get_vectoriEntityEV_VEC_originvOrigin );

    
entity_get_vectoriEntityEV_VEC_velocityvBallVelocity );

   

    static 
iOwneriOwner peviEntitypev_iuser1 );

    static 
iSolidiSolid peviEntitypev_solid );

   

    
// Trail --- >

    
static Float:flGametimeFloat:flLastThink;

    
flGametime get_gametime( );

   

    if( 
flLastThink flGametime ) {

        if( 
floatroundvector_lengthvBallVelocity ) ) > 10 ) {

            
message_beginMSG_BROADCASTSVC_TEMPENTITY );

            
write_byteTE_KILLBEAM );

            
write_shortg_iBall );

            
message_end( );

           

            
message_beginMSG_BROADCASTSVC_TEMPENTITY );

            
write_byteTE_BEAMFOLLOW );

            
write_shortg_iBall );

            
write_shortg_iTrailSprite );

            
write_byte10 );

            
write_byte10 );

            
write_byte);

            
write_byte50 );

            
write_byte255 );

            
write_byte200 );

            
message_end( );

        }

       

        
flLastThink flGametime 3.0;

    }

    
// Trail --- <

   

    
if( iOwner ) {

        static 
Float:vOwnerOrigin];

        
entity_get_vectoriOwnerEV_VEC_originvOwnerOrigin );

       

        static const 
Float:vVelocity] = { 1.01.00.0 };

       

        if( !
is_user_aliveiOwner ) ) {

            
entity_set_intiEntityEV_INT_iuser1);

           

            
vOwnerOrigin] += 5.0;

           

            
entity_set_originiEntityvOwnerOrigin );

            
entity_set_vectoriEntityEV_VEC_velocityvVelocity );

           

            return 
PLUGIN_CONTINUE;

        }

       

        if( 
iSolid != SOLID_NOT )

            
set_peviEntitypev_solidSOLID_NOT );

       

        static 
Float:vAngles], Float:vReturn];

        
entity_get_vectoriOwnerEV_VEC_v_anglevAngles );

       

        
vReturn] = ( floatcosvAngles], degrees ) * 55.0 ) + vOwnerOrigin];

        
vReturn] = ( floatsinvAngles], degrees ) * 55.0 ) + vOwnerOrigin];

        
vReturn] = vOwnerOrigin];

        
vReturn] -= ( entity_get_intiOwnerEV_INT_flags ) & FL_DUCKING ) ? 10 30;

       

        
entity_set_vectoriEntityEV_VEC_velocityvVelocity );

        
entity_set_originiEntityvReturn );

    } else {

        if( 
iSolid != SOLID_BBOX )

            
set_peviEntitypev_solidSOLID_BBOX );

       

        static 
Float:flLastVerticalOrigin;

       

        if( 
vBallVelocity] == 0.0 ) {

            static 
iCounts;

           

            if( 
flLastVerticalOrigin vOrigin] ) {

                
iCounts++;

               

                if( 
iCounts 10 ) {

                    
iCounts 0;

                   

                    
UpdateBall);

                }

            } else {

                
iCounts 0;

               

                if( 
PointContentsvOrigin ) != CONTENTS_EMPTY )

                    
UpdateBall);

            }

           

            
flLastVerticalOrigin vOrigin];

        }

    }

   

    return 
PLUGIN_CONTINUE;

}

 

KickBallid ) {

    
set_user_maxspeed(id230.0)

    static 
Float:vOrigin];

    
entity_get_vectorg_iBallEV_VEC_originvOrigin );

   

    if( 
PointContentsvOrigin ) != CONTENTS_EMPTY )

        return 
PLUGIN_HANDLED;

 

    new 
Float:vVelocity];

    
velocity_by_aimidget_pcvar_num(cDistance), vVelocity );

       

    
set_pevg_iBallpev_solidSOLID_BBOX );

    
entity_set_sizeg_iBallFloat:{ -15.0, -15.00.0 }, Float:{ 15.015.012.0 } );

    
entity_set_intg_iBallEV_INT_iuser1);

    
entity_set_vectorg_iBallEV_VEC_velocityvVelocity );

       

    return 
PLUGIN_CONTINUE;

}

 

// BALL TOUCHES

////////////////////////////////////////////////////////////

public FwdTouchPlayerBallid ) {

    if( 
is_user_botid ) )

        return 
PLUGIN_CONTINUE;

   

    static 
iOwneriOwner pevBallpev_iuser1 );

   

    if( 
iOwner == ) {

        
entity_set_intBallEV_INT_iuser1id );

        
set_user_maxspeed(idget_pcvar_float(cSpeed))

    }

    return 
PLUGIN_CONTINUE;

}

 

public 
FwdTouchWorldBallWorld ) {

    static 
Float:vVelocity];

    
entity_get_vectorBallEV_VEC_velocityvVelocity );

   

    if( 
floatroundvector_lengthvVelocity ) ) > 10 ) {

        
vVelocity] *= 0.85;

        
vVelocity] *= 0.85;

        
vVelocity] *= 0.85;

       

        
entity_set_vectorBallEV_VEC_velocityvVelocity );


    }
    return 
PLUGIN_CONTINUE;

}

 

 

// ENTITIES CREATING

////////////////////////////////////////////////////////////

CreateBallidFloat:vOrigin] = { 0.00.00.0 } ) {

    if( !
id && vOrigin] == 0.0 && vOrigin] == 0.0 && vOrigin] == 0.0 )

        return 
0;

   

    
g_bNeedBall true;

   

    
g_iBall create_entity"info_target" );

   

    if( 
is_valid_entg_iBall ) ) {

        
entity_set_stringg_iBallEV_SZ_classnameg_szBallName );

        
entity_set_intg_iBallEV_INT_solidSOLID_BBOX );

        
entity_set_intg_iBallEV_INT_movetypeMOVETYPE_BOUNCE );

        
entity_set_modelg_iBallg_szBallModel );

        
entity_set_sizeg_iBallFloat:{ -15.0, -15.00.0 }, Float:{ 15.015.012.0 } );

       

        
entity_set_floatg_iBallEV_FL_framerate0.0 );

        
entity_set_intg_iBallEV_INT_sequence);

       

        
entity_set_floatg_iBallEV_FL_nextthinkget_gametime( ) + 0.05 );

       

        
client_printidprint_chat"* Successfully created ball!" );

       

        if( 
id ) {

            new 
iOrigin];

            
get_user_originidiOrigin);

            
IVecFVeciOriginvOrigin );

           

            
vOrigin] += 5.0;

           

            
entity_set_origing_iBallvOrigin );

        } else

            
entity_set_origing_iBallvOrigin );

       

        
g_vOrigin vOrigin;

       

        return 
g_iBall;

    }

   

    return -
1;


Anyone can fix this problem

Last edited by amirwolf; 05-14-2020 at 16:16.
amirwolf is offline