Raised This Month: $ Target: $400
 0% 

Goal Zone


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
Stylaa
Senior Member
Join Date: Oct 2009
Location: Flensburg, Germany
Old 10-11-2010 , 10:37   Goal Zone
Reply With Quote #1

Im using Info Zone ( http://forums.alliedmods.net/showthread.php?p=681655 ) and this Plugin for the Ball, i created Zones in the Goals now i want to check for example

( i pasted all in one Plugin that i can use the Funcktions of the Other Plugin )

Register Event Ball Enter Zone

enter_zone(zone)

if zone == goal1

then

colorchat Peter shot a Goal!!

or

if ball ist not in Zone Complete Football Field
then Reset Ball

GreeTz
from
Stylaa

PHP Code:

#include < amxmodx >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < fun >

static const BALL_BOUNCE_GROUND[ ] = "kickball/bounce.wav";
static const 
g_szBallModel[ ]     = "models/kickball/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"\rBallMaker \y Menu""HandleButtonsMenu" );
    
    
menu_additemg_iButtonsMenu"\rCreate\w Ball""1" );
    
menu_additemg_iButtonsMenu"\rLoad\w Ball""2" );
    
menu_additemg_iButtonsMenu"\rDelete\y All\w Balls""3" );
    
menu_additemg_iButtonsMenu"\rSave""4" );
    
    
register_clcmd"say /ball""CmdButtonsMenu"ADMIN_KICK );
    
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 );
    
precache_soundBALL_BOUNCE_GROUND );
    
    
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_RCON )
        
menu_displayidg_iButtonsMenu);
    
    return 
PLUGIN_HANDLED;
}

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 );
        
        
emit_soundBallCHAN_ITEMBALL_BOUNCE_GROUND1.0ATTN_NORM0PITCH_NORM );
    }

    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;

__________________

Some People brings Happynes by Coming
Some by Going
Stylaa is offline
Send a message via ICQ to Stylaa
 



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:17.


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