View Single Post
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 05-12-2009 , 18:49   Re: CS 1.6 Custom 3rd Person View
Reply With Quote #16

Quote:
Originally Posted by ot_207 View Post
add this to your code
PHP Code:
// plugin init
RegisterHam(Ham_Spawn"player""fw_spawn_post"1)

public 
fw_spawn_post(id)
{
 if (!
is_user_alive)
  return 
HAM_IGNORED
 
 client_cmd
(id"say /cam")
 
 return 
HAM_IGNORED

Dont forget to remove the moment when the USE key is checked!
That's all!
Why not just modify your original code?

PHP Code:
#include <amxmodx>
#include <engine>
#include <hamsandwich>

new const pl_cm_class[] = "PlayerCamera"

new g_remove[33]

public 
plugin_init()
{
    
//register_clcmd( "say /cam", "cmdCam" )
    
RegisterHam(Ham_Spawn"player""FwdPlayerSpawn"1)
    
RegisterHam(Ham_Killed"player""FwdPlayerDeath"1)
    
register_think(pl_cm_class,"Think_PlayerCamera")
}

public 
client_disconnect(client)
{
    
g_remove[client] = 1
}

public 
FwdPlayerSpawn(id)
{
    if( 
is_user_alive(id) )
    {
        
Create_PlayerCamera(id)
    }
}

public 
FwdPlayerDeath(client)
{
    
g_remove[client] = 1
}

Create_PlayerCamera(id)
{
    new 
ent = -1
    
while ((ent find_ent_by_class(ent,pl_cm_class)) != 0)
    {
        if (
entity_get_edict(ent,EV_ENT_owner) == id)
        {
            
attach_view(id ent)
            return
        }
    }
    
ent create_entity("info_target")
    
    if( !
ent )
        return;
    
    
entity_set_string(entEV_SZ_classnamepl_cm_class)
    
    
entity_set_model(ent"models/w_usp.mdl")
    
    
entity_set_byte(entEV_INT_solidSOLID_TRIGGER)
    
entity_set_int(entEV_INT_movetypeMOVETYPE_FLYMISSILE)
    
    
entity_set_edict(entEV_ENT_ownerid)
    
    
entity_set_int(ent,EV_INT_rendermodekRenderTransTexture)
    
entity_set_float(entEV_FL_renderamt0.0 )
    
    
attach_view(id,ent)
    
entity_set_float(entEV_FL_nextthinkget_gametime())
}

public 
Think_PlayerCamera(ent)
{
    static 
owner
    owner 
entity_get_edict(ent,EV_ENT_owner)
    
    if( 
g_remove[owner] )
    {
        
g_remove[owner] = 0
        attach_view
(owner,owner)
        
remove_entity(ent)
        return 
PLUGIN_CONTINUE;
    }
    
    static 
Float:origin[3], Float:fAngle[3],Float:origin2[3];
    
entity_get_vector(owner,EV_VEC_origin,origin)
    
entity_get_vector(owner,EV_VEC_v_angle,fAngle)
    
    
origin2[0] = origin[0]
    
origin2[1] = origin[1]
    
origin2[2] = origin[2]
    
    static 
Float:fVBack[3];
    
angle_vectorfAngleANGLEVECTOR_FORWARDfVBack );
    
    
origin[2] += 20.0;
    
    
origin[0] += ( -fVBack[0] * 150.0 );
    
origin[1] += ( -fVBack[1] * 150.0 );
    
origin[2] += ( -fVBack[2] * 150.0 );
    
    
trace_line(owner,origin2,origin,origin)
    
    
entity_set_vector(ent,EV_VEC_origin,origin)
    
    
entity_get_vector(owner,EV_VEC_velocity,origin2)
    
entity_set_vector(ent,EV_VEC_velocity,origin2)
    
    
entity_set_vector(ent,EV_VEC_angles,fAngle)
    
entity_set_float(entEV_FL_nextthinkget_gametime())
    
    return 
PLUGIN_CONTINUE;

__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!

Last edited by Exolent[jNr]; 05-15-2009 at 15:36.
Exolent[jNr] is offline