Raised This Month: $ Target: $400
 0% 

Reset camera view [by Connor]


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Tonda
Senior Member
Join Date: Aug 2009
Old 09-06-2014 , 14:13   Reset camera view [by Connor]
Reply With Quote #1

Hello, i have camera view plugin. Everythink is ok, but i need help with remove this camera view after command in console. Is possible?

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

#define VERSION "0.0.2" 

#define MAX_PLAYERS    32 

#define USE_TOGGLE 3 

new g_iPlayerCamera[MAX_PLAYERS+1

new 
g_iMaxPlayers 

public plugin_init() 

    
register_plugin("Camera View AUTOMATIC"VERSION"ConnorMcLeod"

    
RegisterHam(Ham_Spawn"player""CBasePlayer_Spawn_Post"1
    
register_forward(FM_SetView"SetView"
    
RegisterHam(Ham_Think"trigger_camera""Camera_Think"

    
g_iMaxPlayers get_maxplayers() 


public 
CBasePlayer_Spawn_Postid 

    if( !
is_user_alive(id) ) 
    { 
        return 
    } 

    new 
iEnt g_iPlayerCamera[id
    if( !
pev_valid(iEnt) ) 
    { 
        static 
iszTriggerCamera 
        
if( !iszTriggerCamera 
        { 
            
iszTriggerCamera engfunc(EngFunc_AllocString"trigger_camera"
        } 
        
iEnt engfunc(EngFunc_CreateNamedEntityiszTriggerCamera
        
set_kvd(0KV_ClassName"trigger_camera"
        
set_kvd(0KV_fHandled0
        
set_kvd(0KV_KeyName"wait"
        
set_kvd(0KV_Value"999999"
        
dllfunc(DLLFunc_KeyValueiEnt0

        
set_pev(iEntpev_spawnflagsSF_CAMERA_PLAYER_TARGET|SF_CAMERA_PLAYER_POSITION
        
set_pev(iEntpev_flagspev(iEntpev_flags) | FL_ALWAYSTHINK

        
dllfunc(DLLFunc_SpawniEnt

        
g_iPlayerCamera[id] = iEnt 
 
//   } 

        
new Float:flMaxSpeediFlags pev(idpev_flags
        
pev(idpev_maxspeedflMaxSpeed

        
ExecuteHam(Ham_UseiEntididUSE_TOGGLE1.0

        
set_pev(idpev_flagsiFlags
        
// depending on mod, you may have to send SetClientMaxspeed here. 
        // engfunc(EngFunc_SetClientMaxspeed, id, flMaxSpeed) 
        
set_pev(idpev_maxspeedflMaxSpeed
    } 


public 
SetView(idiEnt

    if( 
is_user_alive(id) ) 
    { 
        new 
iCamera g_iPlayerCamera[id
        if( 
iCamera && iEnt != iCamera 
        { 
            new 
szClassName[16
            
pev(iEntpev_classnameszClassNamecharsmax(szClassName)) 
            if( !
equal(szClassName"trigger_camera") ) // should let real cams enabled 
            

                
engfunc(EngFunc_SetViewidiCamera// shouldn't be always needed 
                
return FMRES_SUPERCEDE 
            

        } 
    } 
    return 
FMRES_IGNORED 


public 
client_disconnect(id

    new 
iEnt g_iPlayerCamera[id
    if( 
pev_valid(iEnt) ) 
    { 
        
engfunc(EngFunc_RemoveEntityiEnt
    } 
    
g_iPlayerCamera[id] = 


public 
client_putinserver(id

    
g_iPlayerCamera[id] = 


get_cam_owner(iEnt

    static 
id 
    
for(id 1id<=g_iMaxPlayersid++) 
    { 
        if( 
g_iPlayerCamera[id] == iEnt 
        { 
            return 
id 
        

    } 
    return 



public 
Camera_ThinkiEnt 

    static 
id 
    
if( !(id get_cam_owneriEnt )) ) 
    { 
        return 
    } 

    static 
Float:fVecPlayerOrigin[3], Float:fVecCameraOrigin[3], Float:fVecAngles[3], Float:fVecBack[3

    
pev(idpev_originfVecPlayerOrigin
    
pev(idpev_view_ofsfVecAngles
    
fVecPlayerOrigin[2] += fVecAngles[2

    
pev(idpev_v_anglefVecAngles

    
// See player from front ? 
    //fVecAngles[0] = 15.0 
    //fVecAngles[1] += fVecAngles[1] > 180.0 ? -180.0 : 180.0 

    
angle_vector(fVecAnglesANGLEVECTOR_FORWARDfVecBack

    
//Move back to see ourself (150 units) 
    
fVecCameraOrigin[0] = fVecPlayerOrigin[0] + (-fVecBack[0] * 150.0
    
fVecCameraOrigin[1] = fVecPlayerOrigin[1] + (-fVecBack[1] * 150.0
    
fVecCameraOrigin[2] = fVecPlayerOrigin[2] + (-fVecBack[2] * 150.0

    
engfunc(EngFunc_TraceLinefVecPlayerOriginfVecCameraOriginIGNORE_MONSTERSid0
    static 
Float:flFraction 
    get_tr2
(0TR_flFractionflFraction
    if( 
flFraction != 1.0 // adjust camera place if close to a wall 
    

        
flFraction *= 150.0 
        fVecCameraOrigin
[0] = fVecPlayerOrigin[0] + (-fVecBack[0] * flFraction
        
fVecCameraOrigin[1] = fVecPlayerOrigin[1] + (-fVecBack[1] * flFraction
        
fVecCameraOrigin[2] = fVecPlayerOrigin[2] + (-fVecBack[2] * flFraction
    } 

    
set_pev(iEntpev_originfVecCameraOrigin
    
set_pev(iEntpev_anglesfVecAngles

Tonda is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 22:21.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode