What's the problem? I check if the player is connected and alive, but i have the error. This happens sometimes when a player crash with some kind of error keeps on timeout un the server anda then disconnects
PHP Code:
L 12/19/2015 - 02:13:03: [ENGINE] Invalid player 2 (not in-game)
L 12/19/2015 - 02:13:03: [AMXX] Displaying debug trace (plugin "semiclip.amxx", version "0.7")
L 12/19/2015 - 02:13:03: [AMXX] Run time error 10: native error (native "entity_range")
L 12/19/2015 - 02:13:03: [AMXX] [0] semiclip.sma::thinkSemiclip (line 3803)
PHP Code:
/* Bits Management */
#define setBit(%1,%2) (%1 |= (1<<(%2 & 31)))
#define getBit(%1,%2) (%1 & (1<<(%2 & 31)))
#define delBit(%1,%2) (%1 &= ~(1<<(%2 & 31)))
#define is_user_valid_alive(%1) ((1 <= %1 <= MaxClients) && getBit(g_iPlayerBits[%1], bPlayerIsConnected) && getBit(g_iPlayerBits[%1], bPlayerIsAlive))
public client_putinserver( iPlayerID )
{
/* Reset bits */
g_iPlayerBits[iPlayerID] = 0;
/* Set the default bits value */
setBit(g_iPlayerBits[iPlayerID], bPlayerIsConnected);
}
public client_disconnected( iPlayerID )
{
/* Reset the bits */
g_iPlayerBits[iPlayerID] = 0;
}
/* Ham Player Spawn Post Forward */
public fw_PlayerSpawn_Post( const iPlayerID )
{
/* Not alive or didn't join a team yet */
if (!is_user_alive(iPlayerID) || !get_user_team(iPlayerID))
return;
/* Update bits */
setBit(g_iPlayerBits[iPlayerID], bPlayerIsAlive);
}
/* Ham Player Killed Forward */
public fw_PlayerKilled( const iVictimID, const iAttackerID, const iShouldgib )
{
/* Update bits */
delBit(g_iPlayerBits[iVictimID], bPlayerIsAlive);
}
public thinkSemiclip( const iEntityID )
{
static iTargetID, iDistance;
for (iPlayerID = 1; iPlayerID < MaxClients; iPlayerID++)
{
if (!is_user_valid_alive(iPlayerID)) continue;
for (iTargetID = iPlayerID + 1; iTargetID <= MaxClients; iTargetID++)
{
if (!is_user_valid_alive(iTargetID)) continue;
/* Get the distance between the players */
iDistance = floatround(entity_range(iPlayerID, iTargetID)); // This line
g_iPlayerRange[iPlayerID][iTargetID] = ((iDistance <= 250) ? iDistance : -1);
g_iPlayerRange[iTargetID][iPlayerID] = g_iPlayerRange[iPlayerID][iTargetID];
}
}
entity_set_float(iEntityID, EV_FL_nextthink, get_gametime() + 0.1);
}