|
Senior Member
Join Date: Jul 2014
Location: Bulgaria
|
10-17-2017
, 06:30
Re: [HELP][BB] anti block doors zombie
|
#11
|
Quote:
Originally Posted by edon1337
Idk if it's gonna work but try it.
PHP Code:
#include < amxmodx >
#include < basebuilder >
#include < engine >
new g_iBarrierEnt;
const Float:g_iMaxDistance_X = 10.0;
const Float:g_iMaxDistance_Y = 10.0;
const Float:g_iMaxDistance_Z = 10.0;
public plugin_init( )
{
register_plugin( "Prevent Door Blocking", "1.0", "DoNii" );
g_iBarrierEnt = find_ent_by_class( -1, "barrier" );
}
public bb_round_started( )
{
if( ! is_valid_ent( g_iBarrierEnt ) )
return PLUGIN_CONTINUE;
new Float:fOriginDoor[ 3 ], Float:fOriginBlock[ 3 ];
entity_get_vector( g_iBarrierEnt, EV_VEC_origin, fOriginDoor );
new iEnt = -1;
while( ( iEnt = find_ent_by_class( -1, "func_wall" ) ) != 0 )
{
entity_get_vector( iEnt, EV_VEC_origin, fOriginBlock );
if ( ( ( fOriginDoor[ 0 ] - fOriginBlock[ 0 ] ) >= g_iMaxDistance_X ) || ( ( fOriginBlock[ 0 ] - fOriginDoor[ 0 ] ) <= g_iMaxDistance_X )
|| ( ( ( fOriginDoor[ 1 ] - fOriginBlock[ 1 ] ) >= g_iMaxDistance_Y ) || ( ( fOriginBlock[ 1 ] - fOriginDoor[ 1 ] ) <= g_iMaxDistance_Y )
|| ( ( ( fOriginDoor[ 2 ] - fOriginBlock[ 2 ] ) >= g_iMaxDistance_Z ) || ( ( fOriginBlock[ 2 ] - fOriginDoor[ 2 ] ) <= g_iMaxDistance_Z ) ) ) )
{
fOriginBlock[ 0 ] = fOriginBlock[ 0 ] / 10.0;
fOriginBlock[ 1 ] = fOriginBlock[ 1 ] / 20.0;
fOriginBlock[ 2 ] = fOriginBlock[ 2 ] / 30.0;
entity_set_vector( iEnt, EV_VEC_origin, fOriginBlock );
}
}
return PLUGIN_CONTINUE;
}
|
Why not just check distance like that:
Code:
if(vector_distance(fOriginBlock, fOriginDoor) < 30.0)
|
|
|
|