Raised This Month: $51 Target: $400
 12% 

Solved [ H3LP ] Stock to freeze/unfreeze player ?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 04-19-2017 , 19:09   [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #1

Hey, I need a stock to freeze/unfreeze a player but don't freeze he camera. Anyone ?
__________________









Last edited by CrazY.; 04-20-2017 at 22:41.
CrazY. is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 04-19-2017 , 20:46   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #2

Set his speed to zero hook pre primary & secondary attack, set his next primary & second attack delay to get_gametime + 99999 then return max value

Or use set_pev(id, pev_flags, pev(id, pev_flags)|FL_FROZEN)
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !


Last edited by Natsheh; 04-19-2017 at 23:39.
Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 04-19-2017 , 21:45   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #3

Trying...
__________________








CrazY. is offline
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 04-20-2017 , 06:30   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #4

Code:
set_user_frozen( id, bool:bFrozen ) {     if( bFrozen )     set_pev( id, pev_flags, pev( id, pev_flags ) | FL_FROZEN ) ;     set_pev( id, pev_flags, pev( id, pev_flags ) & ~ FL_FROZEN ) ; }

Code:
set_user_frozen( id, true ) // freeze set_user_frozen( id, false ) // unfreeze
__________________

Last edited by edon1337; 04-20-2017 at 07:16.
edon1337 is offline
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 04-20-2017 , 06:39   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #5

While passing 1/0 will work, you should just use true/false since bFrozen is tagged as bool(to be consistent).
__________________
HamletEagle is online now
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 04-20-2017 , 08:38   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #6

Well, the frozen work, but this stock is blocking to move the camera. I think I need do something like of natahe have said.
__________________








CrazY. is offline
sirerick
Senior Member
Join Date: Jul 2012
Location: Venezuela
Old 04-20-2017 , 09:20   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #7

example:

PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <engine>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

#if AMXX_VERSION_NUM < 183
new Ham:Ham_Player_ResetMaxSpeed Ham_Item_PreFrame
#endif

new g_frozen[33]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
RegisterHam(Ham_Player_ResetMaxSpeed"player""fw_Player_ResetMaxSpeed"1)
    
register_forward(FM_CmdStart"fw_Start")
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1)

    
// Add your code here...
}
public 
client_putinserver(id)
{
    
g_frozen[id] = false
}
public 
fw_PlayerSpawn_Post(id)
{
    
// Not alive or didn't join a team yet
    
if(!is_user_alive(id))
        return;
        
    
set_task(5.0"block_speed"id)
    
}
public 
block_speed(id)
{
    if(!
is_user_alive(id))
        return;

    
    
g_frozen[id] = true
    ExecuteHamB
(Ham_Player_ResetMaxSpeedid)
}
public 
fw_Player_ResetMaxSpeed(id)
{
    if(!
is_user_alive(id))
        return;

    new 
Float:current_maxspeed
    pev
(idpev_maxspeedcurrent_maxspeed)
    
    if (
g_frozen[id])
    {
        
set_pevidpev_maxspeed1.0 )
        
entity_set_vector(idEV_VEC_velocityFloat:{0.0,0.0,0.0})
    }
}
public 
fw_Start(iduc_handleseed)
{
    static 
button button get_uc uc_handleUC_Buttons )
    static 
oldbutton oldbutton entity_get_int idEV_INT_oldbuttons )

    if(!
is_user_alive(id))
        return
        
    if (
g_frozen[id])
    {
        if(
button IN_ATTACK || button IN_ATTACK2)
        {
            
set_uc(uc_handle,UC_Buttons,(button & ~IN_ATTACK) & ~IN_ATTACK2)
        }
        else if( !(
oldbutton IN_JUMP) )
        {
            
entity_set_int(idEV_INT_oldbuttonsoldbutton IN_JUMP)
        }
    }

__________________
√ Zombie plague + greats updates. finished.
√ Surf-Mod level + greats updates Finished.
√ Zombie Scenario like cso. Finished.
Click Here
√ Call Of Duty MOD. Finished.
Click Here


Sorry for my bad english. I'm using translate.
sirerick is offline
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 04-20-2017 , 10:18   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #8

Well, with some modifications, thats work.

Thanks, solved.
__________________









Last edited by CrazY.; 04-20-2017 at 10:33.
CrazY. is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 04-20-2017 , 11:34   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #9

here try this ...

PHP Code:

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

#define PLUGIN "Freeze"
#define VERSION "1.0"
#define AUTHOR "Natsheh"

new user_frozen;

#define set_user_frozen(%1)    (user_frozen |= (1<<(%1-1)))
#define remove_user_frozen(%1)    (user_frozen &= ~(1<<(%1-1)))
#define check_user_frozen(%1)    (user_frozen & (1<<(%1-1)))

#define    m_flNextPrimaryAttack    46
#define    m_flNextSecondaryAttack    47
#define       m_pPlayer   41


public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    for(new 
CSW_P228sWpnname[32]; <= CSW_P90i++)
    {
        
get_weaponname(isWpnnamecharsmax(sWpnname))
        if(
strlen(sWpnname) <= 7) continue;
        
        
RegisterHam(Ham_Item_DropsWpnname"fw_weapon_drop_pre")
        
RegisterHam(Ham_CS_Item_CanDropsWpnname"fw_weapon_drop_pre")
        
RegisterHam(Ham_Item_DeploysWpnname"fw_weapon_deploy_post",1)
        
RegisterHam(Ham_CS_Item_GetMaxSpeedsWpnname"fw_weapon_maxspeed_pre")
    }
    
    
register_clcmd("say /freeze""clcmd_freeze")
}

public 
clcmd_freeze(id)
{
    
freeze_player(idcheck_user_frozen(id) ? false:true);
    
client_print(idprint_center"* %sFrozen *", (check_user_frozen(id) ? "":"un"))
}

public 
fw_weapon_maxspeed_pre(const wpn)
{
    if(
check_user_frozen(get_pdata_cbase(wpn,m_pPlayer,4)))
    {
        
SetHamReturnFloat(-1.0)
        return 
HAM_SUPERCEDE;
    }
    
    return 
HAM_IGNORED;
}

public 
fw_weapon_drop_pre(const wpn)
{
    if(
check_user_frozen(get_pdata_cbase(wpn,m_pPlayer,4)))
    {
        
set_pdata_float(wpn,m_flNextPrimaryAttack,0.0,4)
        
set_pdata_float(wpn,m_flNextSecondaryAttack,0.0,4)
    }
}

public 
fw_weapon_deploy_post(const wpn)
{
    if(
check_user_frozen(get_pdata_cbase(wpn,m_pPlayer,4)))
    {
        static 
Float:gtimegtime get_gametime();
        
set_pdata_float(wpn,m_flNextPrimaryAttack,gtime 999.0,4)
        
set_pdata_float(wpn,m_flNextSecondaryAttack,gtime 999.0,4)
    }
}

freeze_player(idbool:bFreeze=false)
{
    if(!
bFreeze)
    {
        
remove_user_frozen(id)
        
        new 
wpns[32], wnumsWpnname[24], wpn;
        
get_user_weapons(idwpnswnum)
        
        for(new 
0wnumi++)
        {
            
get_weaponname(wpns[i], sWpnnamecharsmax(sWpnname))
            
            if((
wpn fm_find_ent_byowner(idsWpnname)) > -1)
            {
                
set_pdata_float(wpn,m_flNextPrimaryAttack,0.0,4)
                
set_pdata_float(wpn,m_flNextSecondaryAttack,0.0,4)
            }
        }
        
        
set_pev(idpev_maxspeed250.0);
    }
    else
    {
        
set_user_frozen(id);
        
        new 
sWpnname[24], wpn;
        
get_weaponname(get_user_weapon(id), sWpnnamecharsmax(sWpnname))
        
        if((
wpn fm_find_ent_byowner(idsWpnname)) > -1ExecuteHamB(Ham_Item_Deploywpn);
        
set_pev(idpev_maxspeed, -1.0)
    }
}

stock fm_find_ent_byowner(id, const wpnname[])
{
    new 
ent = -1;
    while ( ((
ent engfunc(EngFunc_FindEntityByStringent"classname"wpnname)) > 0) && pev(entpev_owner) != id) { }
    
    return (
pev_valid(ent) && pev(ent,pev_owner) == id) ? ent:-1;

__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !


Last edited by Natsheh; 04-20-2017 at 13:45.
Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 04-20-2017 , 12:10   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #10

I dont need support to weapons, but your code work also. Thanks !
__________________








CrazY. 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 06:34.


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