I'm sorry for posting repeatedly but this semiclip part is now the only thing that keeps me away from finishing a plugin and also I have been working on these two functions for over a day now.
PHP Code:
new bool:Respawning[33] = false, bool:g_NoSolid[33] = false
public plugin_init()
{
register_forward( FM_StartFrame, "FwdStartFrame", 0 );
register_forward( FM_AddToFullPack, "FwdFullPack", 1 );
}
public FwdFullPack( es, e, ent, host, flags, player, pSet ) {
if( player && g_NoSolid[ ent ] && g_NoSolid[ host ] ) {
set_es( es, ES_Solid, SOLID_NOT );
set_es( es, ES_RenderMode, kRenderTransAlpha );
set_es( es, ES_RenderAmt, 85 );
}
return FMRES_IGNORED;
}
public FwdStartFrame( ) {
static iPlayers[ 32 ], iNum, iPlayer, iPlayer2, i, j;
get_players( iPlayers, iNum, "ah" );
arrayset( g_NoSolid, 0, 32 );
if( iNum <= 1 )
return FMRES_IGNORED;
for( i = 0; i < iNum; i++ ) {
iPlayer = iPlayers[ i ];
for( j = 0; j < iNum; j++ ) {
iPlayer2 = iPlayers[ j ];
if( iPlayer == iPlayer2 )
continue;
if( g_NoSolid[ iPlayer ] && g_NoSolid[ iPlayer2 ])
continue;
if(Respawning[iPlayer] || Respawning[iPlayer2])
continue;
else //else part not actually needed
break;
if( entity_range( iPlayer, iPlayer2 ) < 100 ) {
g_NoSolid[ iPlayer ] = true;
g_NoSolid[ iPlayer2 ] = true;
}
}
}
for( i = 0; i < iNum; i++ ) {
iPlayer = iPlayers[ i ];
set_pev( iPlayer, pev_solid, g_NoSolid[ iPlayer ] ? SOLID_NOT : SOLID_SLIDEBOX );
}
return FMRES_IGNORED;
}
Without
if(Respawning[iPlayer] || Respawning[iPlayer2]) part everything is working, everyone has semiclip, but with Respawning check nothing is working.
IDK, where could be the problem.