Raised This Month: $ Target: $400
 0% 

Solved [ H3LP ] Stock to freeze/unfreeze player ?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Natsheh
Veteran Member
Join Date: Sep 2012
Old 04-20-2017 , 11:34   Re: [ H3LP ] Stock to freeze/unfreeze player ?
Reply With Quote #1

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
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 17:47.


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