Raised This Month: $ Target: $400
 0% 

Block camera look


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 11-03-2019 , 06:10   Re: Block camera look
Reply With Quote #3

Use this as refference:
PHP Code:
/*
Hierarchy:
----------
Ham_Player_PreThink
Ham_Player_UpdateClientData
PM_Move (client camera movement)
Ham_Item_ItemSlot
Ham_Player_PostThink

To do list:
-----------
[ ] Find fakemeta forward(s) (for/closest to) PM_Move or equivalent to Ham_Item_ItemSlot
[ ] Use fakemeta/hamsandwich only if possible
[ ] Customizability
[ ] Optimize
*/

#include <amxmodx>
#include <bitsums>
#include <engine>
#include <hamsandwich>
#include <zombieplaguenightmare>

// Uncomment to enable debugging
// Bits:
// 1 = log_to_file
// 2 = print_center
// 4 = print_console
// 8 = print_chat
// 16 = hud
//#define DefDebug 17

#if defined DefDebug
#if DefDebug & 1
new g_szDebugFile[] = "FreezeCamera.log";
#endif
#endif

new g_bitFrozenFloat:g_fAnglesOriginal[33][3]/*, Float:g_fAnglesViewOriginal[33][3]*/g_pCvarClCmdStrafe;

public 
plugin_init()
{
    
register_plugin("[ZPNM] Freeze camera""0.1.6""schmurgel1983, D i 5 7 i n c T")
    
    
#if defined DefDebug
    #if defined _zombieplaguenightmare_included
    
register_clcmd("say /f""fw_ClCmdSayF")
    
#endif
    #endif
    
    
RegisterHam(Ham_Spawn"player""fw_HamPlayerSpawn_Post"1)
    
RegisterHam(Ham_Item_ItemSlot"player""fw_HamItemItemSlot")
    
    
g_pCvarClCmdStrafe register_cvar("zpnm_freeze_cam_clcmd_strafe""0")
}

#if defined _zombieplaguenightmare_included
public zpnm_register_ham_czbots(id)
{
    
RegisterHamFromEntity(Ham_Spawnid"fw_HamPlayerSpawn_Post"1)
    
RegisterHamFromEntity(Ham_Item_ItemSlotid"fw_HamItemItemSlot")
}

#if defined DefDebug
public fw_ClCmdSayF(id)
    
zpnm_set_user_frozen(id, !bitsum_get(g_bitFrozenid) ? 0)
#endif
#endif

public client_disconnect(id)
    if (
bitsum_get(g_bitFrozenid))
        
zp_user_unfrozen(id0)

public 
fw_HamPlayerSpawn_Post(id)
    
client_disconnect(id)

public 
zpnm_user_frozen(id)
{
    
bitsum_add(g_bitFrozenid)
    
    
entity_get_vector(id/*EV_VEC_angles*/EV_VEC_v_angleg_fAnglesOriginal[id])
//    entity_get_vector(id, EV_VEC_v_angle, g_fAnglesViewOriginal[id])
    
    #if defined DefDebug
    #if DefDebug & 1
    
if (!is_user_bot(id))
        
log_to_file(g_szDebugFile"[Player %d] Frozen. Original Angles: %.2f, %.2f, %.2f"/* | Original ViewAngles: %.2f, %.2f, %.2f*/idg_fAnglesOriginal[id][0], g_fAnglesOriginal[id][1], g_fAnglesOriginal[id][2]/*, g_fAnglesViewOriginal[id][0], g_fAnglesViewOriginal[id][1], g_fAnglesViewOriginal[id][2]*/)
    
#endif
    #endif
}

public 
zp_user_unfrozen(id)
{
    
bitsum_del(g_bitFrozenid)
    
    
client_cmd(id"-strafe")
}

public 
fw_HamItemItemSlot(id)
{
    if (!
bitsum_get(g_bitFrozenid))
        return;
    
    
#if defined DefDebug
    
if (!is_user_bot(id))
    {
        static 
Float:fAngles[3], Float:fAnglesView[3];
        
entity_get_vector(idEV_VEC_anglesfAngles)
        
entity_get_vector(idEV_VEC_v_anglefAnglesView)
        
        if (
fAnglesView[0] != g_fAnglesOriginal[id][0] || fAnglesView[1] != g_fAnglesOriginal[id][1]
        || 
fAnglesView[2] != g_fAnglesOriginal[id][2]/* || fAngles[0] != g_fAnglesViewOriginal[id][0]
        || fAngles[1] != g_fAnglesViewOriginal[id][1] || fAngles[2] != g_fAnglesViewOriginal[id][2]*/
)
        {
            
#if DefDebug & 1
            
log_to_file(g_szDebugFile"[Player %d] Think.  Angles: %.2f, %.2f, %.2f | ViewAngles: %.2f, %.2f, %.2f"idfAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
            
#endif
            
            #if DefDebug & 4
            
client_print(idprint_console"[Player %d] Think. Angles: %.2f, %.2f, %.2f | ViewAngles: %.2f, %.2f, %.2f"idfAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
            
#endif
            
            #if DefDebug & 8
            
client_print(idprint_chat"[Player %d] Think. Angles: %.2f, %.2f, %.2f | ViewAngles: %.2f, %.2f, %.2f"idfAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
            
#endif
        
}
        
        
#if DefDebug & 2
        
client_print(idprint_center"[Player %d] Think. Angles: %.2f, %.2f, %.2f | ViewAngles: %.2f, %.2f, %.2f"idfAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
        
#endif
        
        #if DefDebug & 16
        
static msgSyncHUD;
        
        if (!
msgSyncHUD)
            
msgSyncHUD CreateHudSyncObj();
        
        
set_hudmessage(2550255, -1.0, -1.000.03.02.01.04)
        
ShowSyncHudMsg(idmsgSyncHUD"[Player %d] Think.^nAngles: %.2f, %.2f, %.2f^nViewAngles: %.2f, %.2f, %.2f"idfAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
        
#endif
    
}
    
#endif
    
//    entity_set_vector(id, EV_VEC_v_angle, g_fAnglesViewOriginal[id])
    
entity_set_vector(idEV_VEC_anglesg_fAnglesOriginal[id])
    
entity_set_int(idEV_INT_fixangle1)
    
    
// Not a very good idea since the client can have a
    // connection fail and we won't be able to send -strafe
    
if (get_pcvar_num(g_pCvarClCmdStrafe))
        
client_cmd(id"+strafe")

__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
 



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 02:51.


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