View Single Post
vermillioN25
Member
Join Date: Apr 2009
Location: Brazil
Old 07-08-2009 , 10:38   Re: CS 1.6 Custom 3rd Person View
Reply With Quote #26

Whats better? Fakemeta or engine?

@Driving to Heaven
Well, I'm not a good script, so try this:

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

#define PLUGIN "3rd Camera View" 
#define VERSION "1.0" 
#define AUTHOR "" 

new const pl_cm_class[] = "PlayerCamera"

public plugin_init()
{
    register_clcmd( "say /cam", "cmdCam" )
    register_think(pl_cm_class,"Think_PlayerCamera")
}

public cmdCam(id)
    Create_PlayerCamera(id)

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(ent, EV_SZ_classname, pl_cm_class)
    
    entity_set_model(ent, "models/w_usp.mdl")
    
    entity_set_byte(ent, EV_INT_solid, SOLID_TRIGGER)
    entity_set_int(ent, EV_INT_movetype, MOVETYPE_FLYMISSILE)
    
    entity_set_edict(ent, EV_ENT_owner, id)
    
    entity_set_int(ent,EV_INT_rendermode, kRenderTransTexture)
    entity_set_float(ent, EV_FL_renderamt, 0.0 )
    
    attach_view(id,ent)
    entity_set_float(ent, EV_FL_nextthink, get_gametime())
}

public Think_PlayerCamera(ent)
{
    static owner
    owner = entity_get_edict(ent,EV_ENT_owner)
    
    static iButtons;
    iButtons = entity_get_int(owner, EV_INT_button)
    
    /* USE E BUTTON REMOVE
if( iButtons & IN_USE  || !is_user_alive(owner))
    {
        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_vector( fAngle, ANGLEVECTOR_FORWARD, fVBack );
    
    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(ent, EV_FL_nextthink, get_gametime())
    
    return PLUGIN_CONTINUE;
}


Or this

Code:

public Think_PlayerCamera(ent)
{

    /* USE E BUTTON REMOVE
    static owner
    owner = entity_get_edict(ent,EV_ENT_owner)
    
    static iButtons;
    iButtons = entity_get_int(owner, EV_INT_button)
    

if( iButtons & IN_USE  || !is_user_alive(owner))
    {
        attach_view(owner,owner)
        remove_entity(ent)
        return PLUGIN_CONTINUE;
    }
    */
Tell me if works
__________________

Last edited by vermillioN25; 07-08-2009 at 14:52.
vermillioN25 is offline