I got this to work between 2 player entities
PHP Code:
#include <amxmodx>
#include <engine>
new g_TouchedEnts[ MAX_PLAYERS + 1 ][ 2 ][ 32 ];
#define SetBit(%1,%2) (%1[%2>>5] |= (1<<(%2 & 31)))
public plugin_init()
{
register_touch( "player" , "player" , "PlayerTouched" );
set_task( 0.5 , "CheckBits" , .flags="b" );
}
public PlayerTouched( iTouched , iToucher )
{
SetBit( g_TouchedEnts[ iToucher ][ 0 ] , iTouched );
}
public CheckBits()
{
static szName1[ 32 ] , szName2[ 32 ];
for ( new i = 1 ; i <= MAX_PLAYERS ; i++ )
{
if ( !is_user_connected( i ) ) continue;
for ( new p = 0 ; p < sizeof( g_TouchedEnts[][] ) ; p++ )
{
for ( new k = 0 ; k < 32 ; k++ )
{
if ( !( g_TouchedEnts[ i ][ 0 ][ p ] & ( 1 << k ) ) && ( g_TouchedEnts[ i ][ 1 ][ p ] & ( 1 << k ) ) )
{
get_user_name( i , szName1 , charsmax( szName1 ) );
get_user_name( k , szName2 , charsmax( szName2 ) );
client_print( i , print_chat , "* %s stopped touching %s" , szName1 , szName2 );
}
}
g_TouchedEnts[ i ][ 1 ][ p ] = g_TouchedEnts[ i ][ 0 ][ p ];
g_TouchedEnts[ i ][ 0 ][ p ] = 0;
}
}
}
__________________