Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Blokowanie kamery


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 ASu

    Profesjonalista

  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:159
  • Imię:Alan
Offline

Napisano 28.10.2019 12:54

Czy da się jakoś zablokować kamerę żeby gracz jak ruszał myszką nie obracał postaci przy tym?


  • +
  • -
  • 0

#2 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 28.10.2019 19:57

Da się. Możesz wykorzystać do tego pev_angle oraz pev_fixangle.


  • +
  • -
  • 0

#3 ASu

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:159
  • Imię:Alan
Offline

Napisano 29.10.2019 10:35

Da się. Możesz wykorzystać do tego pev_angle oraz pev_fixangle.

 

Mógłbyś zarzucić funkcje proszę? :/

Do zablokowania kamery oraz do odblokowania


  • +
  • -
  • 0

#4 Deus Vult

    Nowy

  • Użytkownik

Reputacja: 109
Zaawansowany

  • Postów:213
  • GG:
  • Imię:Mateusz
  • Lokalizacja:Rzeszow
Offline

Napisano 06.11.2019 22:10

Użyj tego jako odniesienia

/*
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_bitFrozen, Float: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_Spawn, id, "fw_HamPlayerSpawn_Post", 1)
    RegisterHamFromEntity(Ham_Item_ItemSlot, id, "fw_HamItemItemSlot")
}

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

public client_disconnect(id)
    if (bitsum_get(g_bitFrozen, id))
        zp_user_unfrozen(id, 0)

public fw_HamPlayerSpawn_Post(id)
    client_disconnect(id)

public zpnm_user_frozen(id)
{
    bitsum_add(g_bitFrozen, id)
    
    entity_get_vector(id, /*EV_VEC_angles*/EV_VEC_v_angle, g_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*/, id, g_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_bitFrozen, id)
    
    client_cmd(id, "-strafe")
}

public fw_HamItemItemSlot(id)
{
    if (!bitsum_get(g_bitFrozen, id))
        return;
    
    #if defined DefDebug
    if (!is_user_bot(id))
    {
        static Float:fAngles[3], Float:fAnglesView[3];
        entity_get_vector(id, EV_VEC_angles, fAngles)
        entity_get_vector(id, EV_VEC_v_angle, fAnglesView)
        
        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", id, fAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
            #endif
            
            #if DefDebug & 4
            client_print(id, print_console, "[Player %d] Think. Angles: %.2f, %.2f, %.2f | ViewAngles: %.2f, %.2f, %.2f", id, fAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
            #endif
            
            #if DefDebug & 8
            client_print(id, print_chat, "[Player %d] Think. Angles: %.2f, %.2f, %.2f | ViewAngles: %.2f, %.2f, %.2f", id, fAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
            #endif
        }
        
        #if DefDebug & 2
        client_print(id, print_center, "[Player %d] Think. Angles: %.2f, %.2f, %.2f | ViewAngles: %.2f, %.2f, %.2f", id, fAngles[0], fAngles[1], fAngles[2], fAnglesView[0], fAnglesView[1], fAnglesView[2])
        #endif
        
        #if DefDebug & 16
        static msgSyncHUD;
        
        if (!msgSyncHUD)
            msgSyncHUD = CreateHudSyncObj();
        
        set_hudmessage(255, 0, 255, -1.0, -1.0, 0, 0.0, 3.0, 2.0, 1.0, 4)
        ShowSyncHudMsg(id, msgSyncHUD, "[Player %d] Think.^nAngles: %.2f, %.2f, %.2f^nViewAngles: %.2f, %.2f, %.2f", id, fAngles[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(id, EV_VEC_angles, g_fAnglesOriginal[id])
    entity_set_int(id, EV_INT_fixangle, 1)
    
    // 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")
} 

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych