L 03/29/2011 - 20:03:25: [ENGINE] Invalid player 5 (not in-game)
L 03/29/2011 - 20:03:25: [AMXX] Displaying debug trace (plugin "sm.amxx")
L 03/29/2011 - 20:03:25: [AMXX] Run time error 10: native error (native "entity_range")
L 03/29/2011 - 20:03:25: [AMXX] [0] sm.sma::client_PreThink (line 61)
sma
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "semiclip"
#define VERSION "1.0"
#define AUTHOR "diablix"
const Float:DYSTANS = 100.0
new Przenikaj;
new Druzyna[ 33 ];
new Gracze;
new bool:Solidny[33];
new bool:Duch[33];
public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR );
register_forward( FM_AddToFullPack, "fwdFullPack", 1 );
Gracze = get_maxplayers();
Przenikaj = register_cvar( "new_semiclip", "1" );
}
public client_disconnect(id) Druzyna[id] = 0;
public client_PreThink(id)
{
if(!get_pcvar_num(Przenikaj))
return FMRES_IGNORED;
static Think, i;
if(Think > id)
{
for( i = 1; i <= Gracze; i++ )
{
if( !is_user_alive(i) )
{
Solidny[ i ] = false;
continue;
}
Druzyna[i] = _:get_user_team( i );
Solidny[i] = entity_get_int( i, EV_INT_solid ) == SOLID_SLIDEBOX ? true : false;
}
}
Think = id;
if(!Solidny[ id ])
return FMRES_IGNORED;
for(i = 1; i <= Gracze; i++ )
{
if( !Solidny[i] || Duch[i] || id == i || Float:entity_range(id, i) > DYSTANS)
{
continue;
}
if( Druzyna[i] == Druzyna[id] )
{
Duch[i] = true;
entity_set_int(i, EV_INT_solid, SOLID_NOT);
}
}
return FMRES_IGNORED;
}
public client_PostThink(id)
{
if(get_pcvar_num(Przenikaj))
{
static i;
for(i = 1; i <= Gracze; i++)
{
if( is_user_alive(i) && Duch[i])
{
Duch[i] = false;
entity_set_int(i, EV_INT_solid, SOLID_SLIDEBOX );
}
}
}
}
public fwdFullPack(iHandle, e, iEntity, id, iFlags, iPlayer, pSet)
{
if(!get_pcvar_num(Przenikaj) || !iPlayer || id == iEntity || !is_user_alive(id) || !is_user_alive(iEntity))
return FMRES_IGNORED;
if( Solidny[id] && Solidny[iEntity] && Druzyna[id] == Druzyna[iEntity])
{
static Float:fDystans;
fDystans = entity_range(id, iEntity);
if( fDystans < DYSTANS)
{
set_es(iHandle, ES_Solid, SOLID_NOT );
set_es(iHandle, ES_RenderMode, kRenderTransAlpha );
set_es(iHandle, ES_RenderAmt, floatround( fDystans * 3));
}
}
return FMRES_IGNORED;
}
czyli błąd jest w
if( !Solidny[i] || Duch[i] || id == i || Float:entity_range(id, i) > DYSTANS)
Czy coś trzeba dodać? Sprawdzenie czy is_user_alive rozwiążę problem?
Załączone pliki
Użytkownik gorusio edytował ten post 29.03.2011 19:17