Try this out:
Code:
#include <amxmodx>
#include <engine>
#include <hamsandwich>
new Origin[33][3]
new Distance[33]
public plugin_init()
{
register_plugin( "Distance Example", "1.0", "Wrecked" )
register_clcmd( "say /distance", "CmdDistance" )
RegisterHam( Ham_Spawn, "player", "HamSpawnPost", 1 )
}
public client_connect( id )
{
Distance[id] = 0
}
public client_PreThink( id )
{
if( is_user_alive( id ) )
{
static OldOrigin[3]
// xs_vec_copy( Origin[id], OldOrigin )
for( new i = 0; i < 3; i++ ) OldOrigin[i] = Origin[id][i]
get_user_origin( id, Origin[id] )
Distance[id] += get_distance( Origin[id], OldOrigin )
}
}
public HamSpawnPost( id )
{
// prevent distance calculation from old origin to spawn point
get_user_origin( id, Origin[id] )
}
public CmdDistance( id )
{
client_print( id, print_chat, "Distance: %d units", Distance[id] )
}
Note: I would've used xs_vec_copy, but that only works with floats, apparently.
EDIT: Added Ham_Spawn registry. Tell me if that works or not. I don't know if that's called before any frames on the client or not.
__________________