Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <engine>
#define PLUGIN "Blah"
#define VERSION "1.0"
#define AUTHOR "delayedCoder"
new Float:lastMove[33];
new visible;
public client_PreThink(id)
{
static Float:velocity[3];
entity_get_vector(id,EV_VEC_velocity,velocity);
new Float:time = get_gametime();
new flags = get_entity_flags(id);
if(velocity[1] || velocity[0] || velocity[2] || ~flags & FL_ONGROUND)
{
if(~visible & (1<<(id&31)))
{
visible |= (1<<(id&31));
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0);
}
lastMove[id] = time;
}
else
{
visible &= ~(1<<(id&31));
new Float:maxStillTime = (flags & FL_DUCKING) ? 3.0 : 5.0;
new Float:stillTime = floatmin(maxStillTime, lastMove[id] - time);
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, floatround(255.0 - (255.0 * stillTime / maxStillTime)));
}
}
Fixed never making player visible again.
Added fading, duck support, and converted to engine.
__________________