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

[REQ] Editing Plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
yas17sin
Veteran Member
Join Date: Oct 2016
Location: Morocco/Sale
Old 01-27-2017 , 23:51   [REQ] Editing Plugin
Reply With Quote #1

Hi All,

I need somenoe to edit chainsaw plugin for me.

i need only CT use the chainsaw even if Admin are in Ts he can't use it. ( because i have a plugin make every 3 round team switch ).
and Ts can't be able to pick up it but CTs can pick up it from the ground.

PHP Code:
#include <amxmodx> 
#include <fakemeta> 
#include <engine> 
#include <cstrike>
#include <hamsandwich> 
#include <fakemeta_util> 
//#include <byu_money>  

//const chainsaw_ap_cost = 59000

new const g_sound_buyarmor[] = { "items/tr_kevlar.wav" 
new 
g_armor_amountg_armor_limitg_hp_amount 

new const chainsaw_viewmodel[] = "models/talrasha/weapons/chainsaw/v_chainsaw.mdl"
new const chainsaw_playermodel[] = "models/talrasha/weapons/chainsaw/p_chainsaw.mdl"
new const chainsaw_worldmodel[] = "models/talrasha/weapons/chainsaw/w_chainsaw.mdl"

new const chainsaw_sounds[][] =
{
    
"talrasha/weapons/chainsaw/chainsaw_deploy.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit1.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit2.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit1.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit2.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hitwall.wav",
    
"talrasha/weapons/chainsaw/chainsaw_miss.wav",
    
"talrasha/weapons/chainsaw/chainsaw_miss.wav",
    
"talrasha/weapons/chainsaw/chainsaw_stab.wav"
}

new 
Float:chainsaw_mins[3] = { -2.0, -2.0, -2.0 
new 
Float:chainsaw_maxs[3] = { 2.02.02.0 

new 
g_msgCurWeapon 

new g_iHasChainsaw[33], g_iCurrentWeapon[33

new 
cvar_enablecvar_dmgmultcvar_oneroundcvar_soundscvar_dmggorecvar_dropflags
cvar_pattack_ratecvar_sattack_ratecvar_pattack_recoilcvar_sattack_recoilcvar_body_xplode 

const DROPFLAG_NORMAL =         (1<<0)
const 
DROPFLAG_INDEATH =    (1<<1)
const 
DROPFLAG_INFECTED =    (1<<2)
const 
DROPFLAG_SURVHUMAN =    (1<<3)

const 
m_pPlayer =         41 
const m_flNextPrimaryAttack =     46 
const m_flNextSecondaryAttack =    47 
const m_flTimeWeaponIdle =     48 

#define PLUG_VERSION "1.0" 
#define PLUG_AUTH "eldon, RLY?" 

#define MIN_PLAYERS    2
#define ACCESS_LEVEL        ADMIN_IMMUNITY

public plugin_init() 

    
register_plugin("Chainsaw""1.1""edit by yas17sin"
     
    
register_event("HLTV""event_RoundStart""a""1=0""2=0"
    
register_event("CurWeapon""event_CurWeapon""b""1=1"
     
    
cvar_enable register_cvar("chainsaw_enable""1"
    
cvar_sounds register_cvar("chainsaw_custom_sounds""1"
    
cvar_dmgmult register_cvar("chainsaw_damage_mult""6.5"
    
cvar_dmggore register_cvar("chainsaw_gore_in_damage""1"
    
cvar_oneround register_cvar("chainsaw_oneround""0"
    
cvar_dropflags register_cvar("chainsaw_drop_flags""abcd"
    
cvar_body_xplode register_cvar("chainsaw_victim_explode""1"
    
cvar_pattack_rate register_cvar("chainsaw_attack1_rate""0.6"
    
cvar_sattack_rate register_cvar("chainsaw_attack2_rate""1.2"
    
cvar_pattack_recoil register_cvar("chainsaw_attack1_recoil""-5.6"
    
cvar_sattack_recoil register_cvar("chainsaw_attack2_recoil""-8.0"
     
    
g_armor_amount register_cvar("armor_amount""999")
    
g_armor_limit register_cvar("armor_limit""999")
    
g_hp_amount register_cvar("hp_amount""2500")
     
    
register_forward(FM_EmitSound"fw_EmitSound"
     
    
register_touch("cs_chainsaw""player""fw_Chainsaw_Touch"
     
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled"
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage"
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_knife""fw_Knife_PrimaryAttack_Post"1
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_Knife_SecondaryAttack_Post"1
    
    
register_clcmd("get_chain""give_chainsaw"ACCESS_LEVEL)
     
    
g_msgCurWeapon get_user_msgid("CurWeapon"
     
    
register_clcmd("drop""clcmd_drop"


public  
plugin_natives ()
{
      
register_native("zp_get_user_chain""native_get_chain"1)
      
register_native("zp_set_user_chain""native_set_chain"1)
}

public 
native_get_chain(param)
{
      return 
g_iHasChainsaw[param]
}

public 
native_set_chain(idparam)
{
      
g_iHasChainsaw[id] = true 

      set_pev
(idpev_viewmodel2chainsaw_viewmodel
      
set_pev(idpev_weaponmodel2chainsaw_playermodel

      
emit_sound(idCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM

      
set_pev(idpev_armorvaluefloat(min(pev(idpev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
      
fm_set_user_armor(idget_pcvar_num(g_armor_amount))
      
fm_set_user_health(idget_pcvar_num(g_hp_amount))
      
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_buyarmor1.0ATTN_NORM0PITCH_NORM

      
reset_user_knife(id
}
     
public 
plugin_precache() 

    
precache_model(chainsaw_viewmodel
    
precache_model(chainsaw_playermodel
    
precache_model(chainsaw_worldmodel
     
    for(new 
0sizeof chainsaw_soundsi++) 
        
precache_sound(chainsaw_sounds[i]) 
         
    
precache_sound("items/gunpickup2.wav"
    
precache_sound(g_sound_buyarmor


public 
event_RoundStart() 

    
remove_entity_name("cs_chainsaw"


public 
event_CurWeapon(id

    if(!
is_user_alive(id)) 
        return 
PLUGIN_CONTINUE 
         
    g_iCurrentWeapon
[id] = read_data(2)  
         
    if(!
g_iHasChainsaw[id] || g_iCurrentWeapon[id] != CSW_KNIFE)  
        return 
PLUGIN_CONTINUE 
         
    set_pev
(idpev_viewmodel2chainsaw_viewmodel
    
set_pev(idpev_weaponmodel2chainsaw_playermodel
         
    return 
PLUGIN_CONTINUE 


public 
clcmd_drop(id

    if(
g_iHasChainsaw[id] && g_iCurrentWeapon[id] == CSW_KNIFE
    { 
        if(
check_drop_flag(DROPFLAG_NORMAL)) 
        { 
            
drop_chainsaw(id
            return 
PLUGIN_HANDLED 
        

    } 

    return 
PLUGIN_CONTINUE 


public 
drop_chainsaw(id)  

    static 
Float:flAim[3], Float:flOrigin[3
    
VelocityByAim(id64flAim
    
entity_get_vector(idEV_VEC_originflOrigin
     
    
flOrigin[0] += flAim[0
    
flOrigin[1] += flAim[1
     
    new 
iEnt create_entity("info_target"
     
    
entity_set_string(iEntEV_SZ_classname"cs_chainsaw"
     
    
entity_set_origin(iEntflOrigin
     
    
entity_set_model(iEntchainsaw_worldmodel
     
    
set_size(iEntchainsaw_minschainsaw_maxs
    
entity_set_vector(iEntEV_VEC_minschainsaw_mins
    
entity_set_vector(iEntEV_VEC_maxschainsaw_maxs
     
    
entity_set_int(iEntEV_INT_solidSOLID_TRIGGER
     
    
entity_set_int(iEntEV_INT_movetypeMOVETYPE_TOSS
     
    
g_iHasChainsaw[id] = false 
        set_pev
(idpev_bodyrandom_num(03))
    
reset_user_knife(id


public 
reset_user_knife(id

    if(
user_has_weapon(idCSW_KNIFE)) 
        
ExecuteHamB(Ham_Item_Deployfind_ent_by_owner(-1"weapon_knife"id)) 
         
    
engclient_cmd(id"weapon_knife"
    
emessage_begin(MSG_ONEg_msgCurWeapon_id
    
ewrite_byte(1)
    
ewrite_byte(CSW_KNIFE)
    
ewrite_byte(-1)
    
emessage_end() 


public 
give_chainsaw(id

    new 
flags get_user_flags(id)
    if (
flags ACCESS_LEVEL)
    
        if(
get_pcvar_num(cvar_enable)) 
        { 
            if (
get_playersnum() <= MIN_PLAYERS
            { 
                
ChatColor(id"!g[Umbrella-Swarm] !yTo purchase a chainsaw requires a minimum !team%d player!"MIN_PLAYERS
                return 
            } 
            if (
g_iHasChainsaw[id]) 
            { 
                
ChatColor(id"!g[Umbrella-Swarm] !yYou already have a !teamchainsaw!")
            }
            else  
            { 
                                
engclient_cmd(id"weapon_knife")

                                
set_pev(idpev_body6)

                
g_iHasChainsaw[id] = true 
                                set_pev
(idpev_viewmodel2chainsaw_viewmodel
                            
set_pev(idpev_weaponmodel2chainsaw_playermodel
                                
emit_sound(idCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM

                
set_pev(idpev_armorvaluefloat(min(pev(idpev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
                
fm_set_user_armor(idget_pcvar_num(g_armor_amount))
                
fm_set_user_health(idget_pcvar_num(g_hp_amount))
                
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_buyarmor1.0ATTN_NORM0PITCH_NORM

                
ChatColor(id"!g[Umbrella-Swarm] !yYou bought a !teamchainsaw!")
                
reset_user_knife(id
            } 

        } 
        else 
        {  
            
ChatColor(id"!g[Umbrella-Swarm] !yChainsaw has been temporarily !teamoff!")
        }  
}  

public 
client_putinserver(id

    
g_iHasChainsaw[id] = false 


public 
client_disconnected(id

    
g_iHasChainsaw[id] = false 

     
public 
fw_PlayerSpawn_Post(id

    if(
get_pcvar_num(cvar_oneround) || !get_pcvar_num(cvar_enable)) 
    { 
        if(
g_iHasChainsaw[id]) 
        { 
            
g_iHasChainsaw[id] = false 

            reset_user_knife
(id
        } 
    } 


public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_bits
{     
    if(
victim == attacker || !attacker
        return 
HAM_IGNORED 
         
    
if(!is_user_connected(attacker)) 
        return 
HAM_IGNORED 
         
    
if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE
    { 
        if(
get_pcvar_num(cvar_dmggore)) 
            
a_lot_of_blood(victim
             
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult))     
    } 

    return 
HAM_IGNORED 


public 
fw_PlayerKilled(victimattackershouldgib

    if(
victim == attacker || !attacker
        return 
HAM_IGNORED 
         
    
if(!is_user_connected(attacker)) 
        return 
HAM_IGNORED 
         
    
if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE && get_pcvar_num(cvar_body_xplode)) 
        
SetHamParamInteger(32)
     
    if(
g_iHasChainsaw[victim]) 
    { 
        if(
check_drop_flag(DROPFLAG_INDEATH)) 
            
drop_chainsaw(victim
            else 
            { 
                
g_iHasChainsaw[victim] = false 
                reset_user_knife
(victim
            } 
    } 
     
    return 
HAM_IGNORED 


public 
fw_Chainsaw_Touch(sawplayer

    if(!
is_valid_ent(saw) || !is_valid_ent(player)) 
        return 
PLUGIN_CONTINUE 
         
    
if(!is_user_connected(player)) 
        return 
PLUGIN_CONTINUE 
         
    
if(!is_user_alive(player) || g_iHasChainsaw[player]) 
        return 
PLUGIN_CONTINUE 
         
    g_iHasChainsaw
[player] = true 
     
    emit_sound
(playerCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM
     
    
reset_user_knife(player
     
    
remove_entity(saw
         
    return 
PLUGIN_CONTINUE 


public 
fw_EmitSound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)

        if(!
is_user_connected(id)) 
                return 
FMRES_IGNORED 
         
        
if(!is_user_alive(id) || !g_iHasChainsaw[id] || !get_pcvar_num(cvar_sounds)) 
                return 
FMRES_IGNORED 
         
    
        
if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        
        if (
sample[14] == 'd')  
        {
                
emit_sound(idchannelchainsaw_sounds[0], volumeattnflagspitch)
        }
        else if (
sample[14] == 'h')
        {
            if (
sample[17] == 'w'
            {
                
emit_sound(idchannelchainsaw_sounds[3], volumeattnflagspitch)
            }
            else
            {
                
emit_sound(idchannelchainsaw_sounds[random_num(1,2)], volumeattnflagspitch)
            }
        }
        else
        {
            if (
sample[15] == 'l'
            {
                
emit_sound(idchannelchainsaw_sounds[4], volumeattnflagspitch)
            }
            else 
            {
                
emit_sound(idchannelchainsaw_sounds[5], volumeattnflagspitch)
            }
        }
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED 



public 
fw_Knife_PrimaryAttack_Post(knife
{     
    static 
id 
    id 
get_pdata_cbase(knifem_pPlayer4
     
    if(
is_user_connected(id) && g_iHasChainsaw[id]) 
    { 
        static 
Float:flRate 
        flRate 
get_pcvar_float(cvar_pattack_rate
         
        
set_pdata_float(knifem_flNextPrimaryAttackflRate4
        
set_pdata_float(knifem_flNextSecondaryAttackflRate4
        
set_pdata_float(knifem_flTimeWeaponIdleflRate4
         
        static 
Float:flPunchAngle[3
        
flPunchAngle[0] = get_pcvar_float(cvar_pattack_recoil
         
        
entity_set_vector(idEV_VEC_punchangleflPunchAngle)     
    } 
     
    return 
HAM_IGNORED 


public 
fw_Knife_SecondaryAttack_Post(knife
{     
    static 
id 
    id 
get_pdata_cbase(knifem_pPlayer4
     
    if(
is_user_connected(id) && g_iHasChainsaw[id]) 
    { 
        static 
Float:flRate 
        flRate 
get_pcvar_float(cvar_sattack_rate
         
        
set_pdata_float(knifem_flNextPrimaryAttackflRate4
        
set_pdata_float(knifem_flNextSecondaryAttackflRate4
        
set_pdata_float(knifem_flTimeWeaponIdleflRate4
         
        static 
Float:flPunchAngle[3
        
flPunchAngle[0] = get_pcvar_float(cvar_sattack_recoil
         
        
entity_set_vector(idEV_VEC_punchangleflPunchAngle
    } 
     
    return 
HAM_IGNORED 


check_drop_flag(flag

    new 
szFlags[10
    
get_pcvar_string(cvar_dropflagsszFlagscharsmax(szFlags)) 
     
    if(
read_flags(szFlags) & flag
        return 
true 
         
    
return false 


a_lot_of_blood(id)

    static 
iOrigin[3
    
get_user_origin(idiOrigin
     
    
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin
    
write_byte(TE_BLOODSTREAM
    
write_coord(iOrigin[0]) 
    
write_coord(iOrigin[1]) 
    
write_coord(iOrigin[2]+10
    
write_coord(random_num(-360360))
    
write_coord(random_num(-360360))
    
write_coord(-10)
    
write_byte(70)
    
write_byte(random_num(50100))
    
message_end() 
     
    for (new 
04j++)  
    { 
        
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin
        
write_byte(TE_WORLDDECAL
        
write_coord(iOrigin[0]+random_num(-100100)) 
        
write_coord(iOrigin[1]+random_num(-100100)) 
        
write_coord(iOrigin[2]-36
        
write_byte(random_num(190197))
        
message_end() 
    } 


stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }


Last edited by yas17sin; 01-27-2017 at 23:53.
yas17sin is offline
Send a message via ICQ to yas17sin
yas17sin
Veteran Member
Join Date: Oct 2016
Location: Morocco/Sale
Old 01-28-2017 , 12:06   Re: [REQ] Editing Plugin
Reply With Quote #2

come on at least tell me how to make it. and i will edit it myself.
yas17sin is offline
Send a message via ICQ to yas17sin
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 01-28-2017 , 15:20   Re: [REQ] Editing Plugin
Reply With Quote #3

To block Terrorist from using
PHP Code:
if(cs_get_user_team(id) == CS_TEAM_T
return; 
To block pickup, hook WeapPickup event (register_event) , then check
PHP Code:
if(get_user_weapon(id) == CSW_KNIFE && g_iHasChainsaw[id]) { 

if(
cs_get_user_team(id) == CS_TEAM_T
return;


__________________

Last edited by edon1337; 01-28-2017 at 15:22.
edon1337 is offline
yas17sin
Veteran Member
Join Date: Oct 2016
Location: Morocco/Sale
Old 01-28-2017 , 16:04   Re: [REQ] Editing Plugin
Reply With Quote #4

ok i did do like you say but i got this on compile : http://prntscr.com/e1kt52

and here is the code :
PHP Code:
#include <amxmodx> 
#include <fakemeta> 
#include <engine> 
#include <cstrike>
#include <hamsandwich> 
#include <fakemeta_util> 
//#include <byu_money>  

//const chainsaw_ap_cost = 59000

new const g_sound_buyarmor[] = { "items/tr_kevlar.wav" 
new 
g_armor_amountg_armor_limitg_hp_amount 

new const chainsaw_viewmodel[] = "models/talrasha/weapons/chainsaw/v_chainsaw.mdl"
new const chainsaw_playermodel[] = "models/talrasha/weapons/chainsaw/p_chainsaw.mdl"
new const chainsaw_worldmodel[] = "models/talrasha/weapons/chainsaw/w_chainsaw.mdl"

new const chainsaw_sounds[][] =
{
    
"talrasha/weapons/chainsaw/chainsaw_deploy.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit1.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit2.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit1.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit2.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hitwall.wav",
    
"talrasha/weapons/chainsaw/chainsaw_miss.wav",
    
"talrasha/weapons/chainsaw/chainsaw_miss.wav",
    
"talrasha/weapons/chainsaw/chainsaw_stab.wav"
}

new 
Float:chainsaw_mins[3] = { -2.0, -2.0, -2.0 
new 
Float:chainsaw_maxs[3] = { 2.02.02.0 

new 
g_msgCurWeapon 

new g_iHasChainsaw[33], g_iCurrentWeapon[33

new 
cvar_enablecvar_dmgmultcvar_oneroundcvar_soundscvar_dmggorecvar_dropflags
cvar_pattack_ratecvar_sattack_ratecvar_pattack_recoilcvar_sattack_recoilcvar_body_xplode 

const DROPFLAG_NORMAL =         (1<<0)
const 
DROPFLAG_INDEATH =    (1<<1)
const 
DROPFLAG_INFECTED =    (1<<2)
const 
DROPFLAG_SURVHUMAN =    (1<<3)

const 
m_pPlayer =         41 
const m_flNextPrimaryAttack =     46 
const m_flNextSecondaryAttack =    47 
const m_flTimeWeaponIdle =     48 

#define PLUG_VERSION "1.0" 
#define PLUG_AUTH "eldon, RLY?" 

#define MIN_PLAYERS    2
#define ACCESS_LEVEL        ADMIN_IMMUNITY

public plugin_init() 

    
register_plugin("Chainsaw"PLUG_VERSIONPLUG_AUTH
     
    
register_event("HLTV""event_RoundStart""a""1=0""2=0"
    
register_event("CurWeapon""event_CurWeapon""b""1=1"
    
register_event("WeapPickup""event_WeapPickup""")
     
    
cvar_enable register_cvar("chainsaw_enable""1"
    
cvar_sounds register_cvar("chainsaw_custom_sounds""1"
    
cvar_dmgmult register_cvar("chainsaw_damage_mult""6.5"
    
cvar_dmggore register_cvar("chainsaw_gore_in_damage""1"
    
cvar_oneround register_cvar("chainsaw_oneround""0"
    
cvar_dropflags register_cvar("chainsaw_drop_flags""abcd"
    
cvar_body_xplode register_cvar("chainsaw_victim_explode""1"
    
cvar_pattack_rate register_cvar("chainsaw_attack1_rate""0.6"
    
cvar_sattack_rate register_cvar("chainsaw_attack2_rate""1.2"
    
cvar_pattack_recoil register_cvar("chainsaw_attack1_recoil""-5.6"
    
cvar_sattack_recoil register_cvar("chainsaw_attack2_recoil""-8.0"
     
    
g_armor_amount register_cvar("armor_amount""999")
    
g_armor_limit register_cvar("armor_limit""999")
    
g_hp_amount register_cvar("hp_amount""2500")
     
    
register_forward(FM_EmitSound"fw_EmitSound"
     
    
register_touch("cs_chainsaw""player""fw_Chainsaw_Touch"
     
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled"
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage"
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_knife""fw_Knife_PrimaryAttack_Post"1
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_Knife_SecondaryAttack_Post"1
    
    
register_clcmd("get_chain""give_chainsaw"ACCESS_LEVEL)
     
    
g_msgCurWeapon get_user_msgid("CurWeapon"
     
    
register_clcmd("drop""clcmd_drop"


public  
plugin_natives ()
{
      
register_native("zp_get_user_chain""native_get_chain"1)
      
register_native("zp_set_user_chain""native_set_chain"1)
}

public 
native_get_chain(param)
{
      return 
g_iHasChainsaw[param]
}

public 
native_set_chain(idparam)
{
      
g_iHasChainsaw[id] = true 

      set_pev
(idpev_viewmodel2chainsaw_viewmodel
      
set_pev(idpev_weaponmodel2chainsaw_playermodel

      
emit_sound(idCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM

      
set_pev(idpev_armorvaluefloat(min(pev(idpev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
      
fm_set_user_armor(idget_pcvar_num(g_armor_amount))
      
fm_set_user_health(idget_pcvar_num(g_hp_amount))
      
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_buyarmor1.0ATTN_NORM0PITCH_NORM

      
reset_user_knife(id
}
     
public 
plugin_precache() 

    
precache_model(chainsaw_viewmodel
    
precache_model(chainsaw_playermodel
    
precache_model(chainsaw_worldmodel
     
    for(new 
0sizeof chainsaw_soundsi++) 
        
precache_sound(chainsaw_sounds[i]) 
         
    
precache_sound("items/gunpickup2.wav"
    
precache_sound(g_sound_buyarmor


public 
event_RoundStart() 

    
remove_entity_name("cs_chainsaw"


public 
event_CurWeapon(id

    if(!
is_user_alive(id)) 
        return 
PLUGIN_CONTINUE 
         
    g_iCurrentWeapon
[id] = read_data(2)  
         
    if(!
g_iHasChainsaw[id] || g_iCurrentWeapon[id] != CSW_KNIFE)  
        return 
PLUGIN_CONTINUE 
         
    set_pev
(idpev_viewmodel2chainsaw_viewmodel
    
set_pev(idpev_weaponmodel2chainsaw_playermodel
         
    return 
PLUGIN_CONTINUE 

public 
event_WeapPickup(id)
{
    if(!
is_user_alive(id))
       return 
PLUGIN_CONTINUE
       
    
if(get_user_weapon(id) == CSW_KNIFE && g_iHasChainsaw[id]) 
    { 

    if(
cs_get_user_team(id) == CS_TEAM_T
    return;
    }
}
    
    
    
public 
clcmd_drop(id

    if(
g_iHasChainsaw[id] && g_iCurrentWeapon[id] == CSW_KNIFE
    { 
        if(
check_drop_flag(DROPFLAG_NORMAL)) 
        { 
            
drop_chainsaw(id
            return 
PLUGIN_HANDLED 
        

    } 

    return 
PLUGIN_CONTINUE 


public 
drop_chainsaw(id)  

    static 
Float:flAim[3], Float:flOrigin[3
    
VelocityByAim(id64flAim
    
entity_get_vector(idEV_VEC_originflOrigin
     
    
flOrigin[0] += flAim[0
    
flOrigin[1] += flAim[1
     
    new 
iEnt create_entity("info_target"
     
    
entity_set_string(iEntEV_SZ_classname"cs_chainsaw"
     
    
entity_set_origin(iEntflOrigin
     
    
entity_set_model(iEntchainsaw_worldmodel
     
    
set_size(iEntchainsaw_minschainsaw_maxs
    
entity_set_vector(iEntEV_VEC_minschainsaw_mins
    
entity_set_vector(iEntEV_VEC_maxschainsaw_maxs
     
    
entity_set_int(iEntEV_INT_solidSOLID_TRIGGER
     
    
entity_set_int(iEntEV_INT_movetypeMOVETYPE_TOSS
     
    
g_iHasChainsaw[id] = false 
        set_pev
(idpev_bodyrandom_num(03))
    
reset_user_knife(id


public 
reset_user_knife(id

    if(
user_has_weapon(idCSW_KNIFE)) 
        
ExecuteHamB(Ham_Item_Deployfind_ent_by_owner(-1"weapon_knife"id)) 
         
    
engclient_cmd(id"weapon_knife"
    
emessage_begin(MSG_ONEg_msgCurWeapon_id
    
ewrite_byte(1)
    
ewrite_byte(CSW_KNIFE)
    
ewrite_byte(-1)
    
emessage_end() 


public 
give_chainsaw(id

    new 
flags get_user_flags(id)
    if (
flags ACCESS_LEVEL)
    
     if(
cs_get_user_team(id) == CS_TEAM_T
     return;
    
        if(
get_pcvar_num(cvar_enable)) 
        { 
            if (
get_playersnum() <= MIN_PLAYERS
            { 
                
ChatColor(id"!g[Umbrella-Swarm] !yTo purchase a chainsaw requires a minimum !team%d player!"MIN_PLAYERS
                return 
            } 
            if (
g_iHasChainsaw[id]) 
            { 
                
ChatColor(id"!g[Umbrella-Swarm] !yYou already have a !teamchainsaw!")
            }
            else  
            { 
                                
engclient_cmd(id"weapon_knife")

                                
set_pev(idpev_body6)

                
g_iHasChainsaw[id] = true 
                                set_pev
(idpev_viewmodel2chainsaw_viewmodel
                            
set_pev(idpev_weaponmodel2chainsaw_playermodel
                                
emit_sound(idCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM

                
set_pev(idpev_armorvaluefloat(min(pev(idpev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
                
fm_set_user_armor(idget_pcvar_num(g_armor_amount))
                
fm_set_user_health(idget_pcvar_num(g_hp_amount))
                
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_buyarmor1.0ATTN_NORM0PITCH_NORM

                
ChatColor(id"!g[Umbrella-Swarm] !yYou bought a !teamchainsaw!")
                
reset_user_knife(id
            } 

        } 
        else 
        {  
            
ChatColor(id"!g[Umbrella-Swarm] !yChainsaw has been temporarily !teamoff!")
        }  
}  

public 
client_putinserver(id

    
g_iHasChainsaw[id] = false 


public 
client_disconnected(id

    
g_iHasChainsaw[id] = false 

     
public 
fw_PlayerSpawn_Post(id

    if(
get_pcvar_num(cvar_oneround) || !get_pcvar_num(cvar_enable)) 
    { 
        if(
g_iHasChainsaw[id]) 
        { 
            
g_iHasChainsaw[id] = false 

            reset_user_knife
(id
        } 
    } 


public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_bits
{     
    if(
victim == attacker || !attacker
        return 
HAM_IGNORED 
         
    
if(!is_user_connected(attacker)) 
        return 
HAM_IGNORED 
         
    
if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE
    { 
        if(
get_pcvar_num(cvar_dmggore)) 
            
a_lot_of_blood(victim
             
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult))     
    } 

    return 
HAM_IGNORED 


public 
fw_PlayerKilled(victimattackershouldgib

    if(
victim == attacker || !attacker
        return 
HAM_IGNORED 
         
    
if(!is_user_connected(attacker)) 
        return 
HAM_IGNORED 
         
    
if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE && get_pcvar_num(cvar_body_xplode)) 
        
SetHamParamInteger(32)
     
    if(
g_iHasChainsaw[victim]) 
    { 
        if(
check_drop_flag(DROPFLAG_INDEATH)) 
            
drop_chainsaw(victim
            else 
            { 
                
g_iHasChainsaw[victim] = false 
                reset_user_knife
(victim
            } 
    } 
     
    return 
HAM_IGNORED 


public 
fw_Chainsaw_Touch(sawplayer

    if(!
is_valid_ent(saw) || !is_valid_ent(player)) 
        return 
PLUGIN_CONTINUE 
         
    
if(!is_user_connected(player)) 
        return 
PLUGIN_CONTINUE 
         
    
if(!is_user_alive(player) || g_iHasChainsaw[player]) 
        return 
PLUGIN_CONTINUE 
         
    g_iHasChainsaw
[player] = true 
     
    emit_sound
(playerCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM
     
    
reset_user_knife(player
     
    
remove_entity(saw
         
    return 
PLUGIN_CONTINUE 


public 
fw_EmitSound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)

        if(!
is_user_connected(id)) 
                return 
FMRES_IGNORED 
         
        
if(!is_user_alive(id) || !g_iHasChainsaw[id] || !get_pcvar_num(cvar_sounds)) 
                return 
FMRES_IGNORED 
         
    
        
if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        
        if (
sample[14] == 'd')  
        {
                
emit_sound(idchannelchainsaw_sounds[0], volumeattnflagspitch)
        }
        else if (
sample[14] == 'h')
        {
            if (
sample[17] == 'w'
            {
                
emit_sound(idchannelchainsaw_sounds[3], volumeattnflagspitch)
            }
            else
            {
                
emit_sound(idchannelchainsaw_sounds[random_num(1,2)], volumeattnflagspitch)
            }
        }
        else
        {
            if (
sample[15] == 'l'
            {
                
emit_sound(idchannelchainsaw_sounds[4], volumeattnflagspitch)
            }
            else 
            {
                
emit_sound(idchannelchainsaw_sounds[5], volumeattnflagspitch)
            }
        }
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED 



public 
fw_Knife_PrimaryAttack_Post(knife
{     
    static 
id 
    id 
get_pdata_cbase(knifem_pPlayer4
     
    if(
is_user_connected(id) && g_iHasChainsaw[id]) 
    { 
        static 
Float:flRate 
        flRate 
get_pcvar_float(cvar_pattack_rate
         
        
set_pdata_float(knifem_flNextPrimaryAttackflRate4
        
set_pdata_float(knifem_flNextSecondaryAttackflRate4
        
set_pdata_float(knifem_flTimeWeaponIdleflRate4
         
        static 
Float:flPunchAngle[3
        
flPunchAngle[0] = get_pcvar_float(cvar_pattack_recoil
         
        
entity_set_vector(idEV_VEC_punchangleflPunchAngle)     
    } 
     
    return 
HAM_IGNORED 


public 
fw_Knife_SecondaryAttack_Post(knife
{     
    static 
id 
    id 
get_pdata_cbase(knifem_pPlayer4
     
    if(
is_user_connected(id) && g_iHasChainsaw[id]) 
    { 
        static 
Float:flRate 
        flRate 
get_pcvar_float(cvar_sattack_rate
         
        
set_pdata_float(knifem_flNextPrimaryAttackflRate4
        
set_pdata_float(knifem_flNextSecondaryAttackflRate4
        
set_pdata_float(knifem_flTimeWeaponIdleflRate4
         
        static 
Float:flPunchAngle[3
        
flPunchAngle[0] = get_pcvar_float(cvar_sattack_recoil
         
        
entity_set_vector(idEV_VEC_punchangleflPunchAngle
    } 
     
    return 
HAM_IGNORED 


check_drop_flag(flag

    new 
szFlags[10
    
get_pcvar_string(cvar_dropflagsszFlagscharsmax(szFlags)) 
     
    if(
read_flags(szFlags) & flag
        return 
true 
         
    
return false 


a_lot_of_blood(id)

    static 
iOrigin[3
    
get_user_origin(idiOrigin
     
    
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin
    
write_byte(TE_BLOODSTREAM
    
write_coord(iOrigin[0]) 
    
write_coord(iOrigin[1]) 
    
write_coord(iOrigin[2]+10
    
write_coord(random_num(-360360))
    
write_coord(random_num(-360360))
    
write_coord(-10)
    
write_byte(70)
    
write_byte(random_num(50100))
    
message_end() 
     
    for (new 
04j++)  
    { 
        
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin
        
write_byte(TE_WORLDDECAL
        
write_coord(iOrigin[0]+random_num(-100100)) 
        
write_coord(iOrigin[1]+random_num(-100100)) 
        
write_coord(iOrigin[2]-36
        
write_byte(random_num(190197))
        
message_end() 
    } 


stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

yas17sin is offline
Send a message via ICQ to yas17sin
Relaxing
AlliedModders Donor
Join Date: Jun 2016
Location: White Plains
Old 01-28-2017 , 16:36   Re: [REQ] Editing Plugin
Reply With Quote #5

PHP Code:
public event_WeapPickup(id) {
    if(
g_iCurrentWeapon[id] == CSW_KNIFE && cs_get_user_team(id) == CS_TEAM_T) { 
        if (
g_iHasChainsaw[id] = true) {
            
drop_chainsaw(id)
        }
    }
    return 
PLUGIN_CONTINUE 

A quick drop?
__________________
Relaxing is offline
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 01-28-2017 , 16:39   Re: [REQ] Editing Plugin
Reply With Quote #6

Sorry, this is the correct method to block picking up, WeapPickup is called after player Picks up a weapon, you should use Touch, or WeapPickup then drop it, like Relaxing said, but using Touch is more efficient.

BTW, Coincidence
Quote:
#define PLUG_AUTH "eldon, RLY?"
PHP Code:
#include <amxmodx> 
#include <fakemeta> 
#include <engine> 
#include <cstrike>
#include <hamsandwich> 
#include <fakemeta_util> 
//#include <byu_money>  

//const chainsaw_ap_cost = 59000

new const g_sound_buyarmor[] = { "items/tr_kevlar.wav" 
new 
g_armor_amountg_armor_limitg_hp_amount 

new const chainsaw_viewmodel[] = "models/talrasha/weapons/chainsaw/v_chainsaw.mdl"
new const chainsaw_playermodel[] = "models/talrasha/weapons/chainsaw/p_chainsaw.mdl"
new const chainsaw_worldmodel[] = "models/talrasha/weapons/chainsaw/w_chainsaw.mdl"

new const chainsaw_sounds[][] =
{
    
"talrasha/weapons/chainsaw/chainsaw_deploy.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit1.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit2.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit1.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hit2.wav",
    
"talrasha/weapons/chainsaw/chainsaw_hitwall.wav",
    
"talrasha/weapons/chainsaw/chainsaw_miss.wav",
    
"talrasha/weapons/chainsaw/chainsaw_miss.wav",
    
"talrasha/weapons/chainsaw/chainsaw_stab.wav"
}

new 
Float:chainsaw_mins[3] = { -2.0, -2.0, -2.0 
new 
Float:chainsaw_maxs[3] = { 2.02.02.0 

new 
g_msgCurWeapon 

new g_iHasChainsaw[33], g_iCurrentWeapon[33

new 
cvar_enablecvar_dmgmultcvar_oneroundcvar_soundscvar_dmggorecvar_dropflags
cvar_pattack_ratecvar_sattack_ratecvar_pattack_recoilcvar_sattack_recoilcvar_body_xplode 

const DROPFLAG_NORMAL =         (1<<0)
const 
DROPFLAG_INDEATH =    (1<<1)
const 
DROPFLAG_INFECTED =    (1<<2)
const 
DROPFLAG_SURVHUMAN =    (1<<3)

const 
m_pPlayer =         41 
const m_flNextPrimaryAttack =     46 
const m_flNextSecondaryAttack =    47 
const m_flTimeWeaponIdle =     48 

#define PLUG_VERSION "1.0" 
#define PLUG_AUTH "eldon, RLY?" 

#define MIN_PLAYERS    2
#define ACCESS_LEVEL        ADMIN_IMMUNITY

public plugin_init() 

    
register_plugin("Chainsaw"PLUG_VERSIONPLUG_AUTH
    
    
register_event("HLTV""event_RoundStart""a""1=0""2=0"
    
register_event("CurWeapon""event_CurWeapon""b""1=1"
    
    
cvar_enable register_cvar("chainsaw_enable""1"
    
cvar_sounds register_cvar("chainsaw_custom_sounds""1"
    
cvar_dmgmult register_cvar("chainsaw_damage_mult""6.5"
    
cvar_dmggore register_cvar("chainsaw_gore_in_damage""1"
    
cvar_oneround register_cvar("chainsaw_oneround""0"
    
cvar_dropflags register_cvar("chainsaw_drop_flags""abcd"
    
cvar_body_xplode register_cvar("chainsaw_victim_explode""1"
    
cvar_pattack_rate register_cvar("chainsaw_attack1_rate""0.6"
    
cvar_sattack_rate register_cvar("chainsaw_attack2_rate""1.2"
    
cvar_pattack_recoil register_cvar("chainsaw_attack1_recoil""-5.6"
    
cvar_sattack_recoil register_cvar("chainsaw_attack2_recoil""-8.0"
    
    
g_armor_amount register_cvar("armor_amount""999")
    
g_armor_limit register_cvar("armor_limit""999")
    
g_hp_amount register_cvar("hp_amount""2500")
    
    
register_forward(FM_EmitSound"fw_EmitSound"
    
    
register_touch("cs_chainsaw""player""fw_Chainsaw_Touch"
    
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled"
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage"
    
RegisterHam(Ham_Weapon_PrimaryAttack"weapon_knife""fw_Knife_PrimaryAttack_Post"1
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""fw_Knife_SecondaryAttack_Post"1
    
    
register_clcmd("get_chain""give_chainsaw"ACCESS_LEVEL)
    
    
g_msgCurWeapon get_user_msgid("CurWeapon"
    
    
register_clcmd("drop""clcmd_drop"


public  
plugin_natives ()
{
    
register_native("zp_get_user_chain""native_get_chain"1)
    
register_native("zp_set_user_chain""native_set_chain"1)
}

public 
native_get_chain(param)
{
    return 
g_iHasChainsaw[param]
}

public 
native_set_chain(idparam)
{
    
g_iHasChainsaw[id] = true 

    set_pev
(idpev_viewmodel2chainsaw_viewmodel
    
set_pev(idpev_weaponmodel2chainsaw_playermodel

    
emit_sound(idCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM

    
set_pev(idpev_armorvaluefloat(min(pev(idpev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
    
fm_set_user_armor(idget_pcvar_num(g_armor_amount))
    
fm_set_user_health(idget_pcvar_num(g_hp_amount))
    
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_buyarmor1.0ATTN_NORM0PITCH_NORM

    
reset_user_knife(id
}

public 
plugin_precache() 

    
precache_model(chainsaw_viewmodel
    
precache_model(chainsaw_playermodel
    
precache_model(chainsaw_worldmodel
    
    for(new 
0sizeof chainsaw_soundsi++) 
    
precache_sound(chainsaw_sounds[i]) 
    
    
precache_sound("items/gunpickup2.wav"
    
precache_sound(g_sound_buyarmor


public 
event_RoundStart() 

    
remove_entity_name("cs_chainsaw"


public 
event_CurWeapon(id

    if(!
is_user_alive(id)) 
    return 
PLUGIN_CONTINUE 
    
    g_iCurrentWeapon
[id] = read_data(2)  
    
    if(!
g_iHasChainsaw[id] || g_iCurrentWeapon[id] != CSW_KNIFE)  
    return 
PLUGIN_CONTINUE 
    
    set_pev
(idpev_viewmodel2chainsaw_viewmodel
    
set_pev(idpev_weaponmodel2chainsaw_playermodel
    
    return 
PLUGIN_CONTINUE 


public 
clcmd_drop(id

    if(
g_iHasChainsaw[id] && g_iCurrentWeapon[id] == CSW_KNIFE
    { 
        if(
check_drop_flag(DROPFLAG_NORMAL)) 
        { 
            
drop_chainsaw(id
            return 
PLUGIN_HANDLED 
        

    } 

    return 
PLUGIN_CONTINUE 


public 
drop_chainsaw(id)  

    static 
Float:flAim[3], Float:flOrigin[3
    
VelocityByAim(id64flAim
    
entity_get_vector(idEV_VEC_originflOrigin
    
    
flOrigin[0] += flAim[0
    
flOrigin[1] += flAim[1
    
    new 
iEnt create_entity("info_target"
    
    
entity_set_string(iEntEV_SZ_classname"cs_chainsaw"
    
    
entity_set_origin(iEntflOrigin
    
    
entity_set_model(iEntchainsaw_worldmodel
    
    
set_size(iEntchainsaw_minschainsaw_maxs
    
entity_set_vector(iEntEV_VEC_minschainsaw_mins
    
entity_set_vector(iEntEV_VEC_maxschainsaw_maxs
    
    
entity_set_int(iEntEV_INT_solidSOLID_TRIGGER
    
    
entity_set_int(iEntEV_INT_movetypeMOVETYPE_TOSS
    
    
g_iHasChainsaw[id] = false 
    set_pev
(idpev_bodyrandom_num(03))
    
reset_user_knife(id


public 
reset_user_knife(id

    if(
user_has_weapon(idCSW_KNIFE)) 
    
ExecuteHamB(Ham_Item_Deployfind_ent_by_owner(-1"weapon_knife"id)) 
    
    
engclient_cmd(id"weapon_knife"
    
emessage_begin(MSG_ONEg_msgCurWeapon_id
    
ewrite_byte(1)
    
ewrite_byte(CSW_KNIFE)
    
ewrite_byte(-1)
    
emessage_end() 


public 
give_chainsaw(id

    new 
flags get_user_flags(id)
    if (
flags ACCESS_LEVEL)
    
    if(
cs_get_user_team(id) == CS_TEAM_T
    return;
    
    if(
get_pcvar_num(cvar_enable)) 
    { 
        if (
get_playersnum() <= MIN_PLAYERS
        { 
            
ChatColor(id"!g[Umbrella-Swarm] !yTo purchase a chainsaw requires a minimum !team%d player!"MIN_PLAYERS
            return 
        } 
        if (
g_iHasChainsaw[id]) 
        { 
            
ChatColor(id"!g[Umbrella-Swarm] !yYou already have a !teamchainsaw!")
        }
        else  
        { 
            
engclient_cmd(id"weapon_knife")

            
set_pev(idpev_body6)

            
g_iHasChainsaw[id] = true 
            set_pev
(idpev_viewmodel2chainsaw_viewmodel
            
set_pev(idpev_weaponmodel2chainsaw_playermodel
            
emit_sound(idCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM

            
set_pev(idpev_armorvaluefloat(min(pev(idpev_armorvalue)+get_pcvar_num(g_armor_amount), get_pcvar_num(g_armor_limit))))
            
fm_set_user_armor(idget_pcvar_num(g_armor_amount))
            
fm_set_user_health(idget_pcvar_num(g_hp_amount))
            
engfunc(EngFunc_EmitSoundidCHAN_BODYg_sound_buyarmor1.0ATTN_NORM0PITCH_NORM

            
ChatColor(id"!g[Umbrella-Swarm] !yYou bought a !teamchainsaw!")
            
reset_user_knife(id
        } 

    } 
    else 
    {  
        
ChatColor(id"!g[Umbrella-Swarm] !yChainsaw has been temporarily !teamoff!")
    }  
}  

public 
client_putinserver(id

    
g_iHasChainsaw[id] = false 


public 
client_disconnected(id

    
g_iHasChainsaw[id] = false 


public 
fw_PlayerSpawn_Post(id

    if(
get_pcvar_num(cvar_oneround) || !get_pcvar_num(cvar_enable)) 
    { 
        if(
g_iHasChainsaw[id]) 
        { 
            
g_iHasChainsaw[id] = false 

            reset_user_knife
(id
        } 
    } 


public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_bits
{     
    if(
victim == attacker || !attacker
    return 
HAM_IGNORED 
    
    
if(!is_user_connected(attacker)) 
    return 
HAM_IGNORED 
    
    
if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE
    { 
        if(
get_pcvar_num(cvar_dmggore)) 
        
a_lot_of_blood(victim
        
        
SetHamParamFloat(4damage get_pcvar_float(cvar_dmgmult))     
    } 

    return 
HAM_IGNORED 


public 
fw_PlayerKilled(victimattackershouldgib

    if(
victim == attacker || !attacker
    return 
HAM_IGNORED 
    
    
if(!is_user_connected(attacker)) 
    return 
HAM_IGNORED 
    
    
if(g_iHasChainsaw[attacker] && g_iCurrentWeapon[attacker] == CSW_KNIFE && get_pcvar_num(cvar_body_xplode)) 
    
SetHamParamInteger(32)
    
    if(
g_iHasChainsaw[victim]) 
    { 
        if(
check_drop_flag(DROPFLAG_INDEATH)) 
        
drop_chainsaw(victim
        else 
        { 
            
g_iHasChainsaw[victim] = false 
            reset_user_knife
(victim
        } 
    } 
    
    return 
HAM_IGNORED 


public 
fw_Chainsaw_Touch(sawplayer

    if(!
is_valid_ent(saw) || !is_valid_ent(player)) 
    return 
PLUGIN_CONTINUE 
    
    
if(!is_user_connected(player)) 
    return 
PLUGIN_CONTINUE 
                        
    
if(!is_user_alive(player) || g_iHasChainsaw[player]) 
    return 
PLUGIN_CONTINUE 
    
    
if(cs_get_user_team(player) == CS_TEAM_T
    return 
1;
    
    
g_iHasChainsaw[player] = true 
    
    emit_sound
(playerCHAN_WEAPON"items/gunpickup2.wav"1.0ATTN_NORM0PITCH_NORM
    
    
reset_user_knife(player
    
    
remove_entity(saw
    
    return 
PLUGIN_CONTINUE 


public 
fw_EmitSound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)

    if(!
is_user_connected(id)) 
    return 
FMRES_IGNORED 
    
    
if(!is_user_alive(id) || !g_iHasChainsaw[id] || !get_pcvar_num(cvar_sounds)) 
    return 
FMRES_IGNORED 
    
    
    
if (sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        
        if (
sample[14] == 'd')  
        {
            
emit_sound(idchannelchainsaw_sounds[0], volumeattnflagspitch)
        }
        else if (
sample[14] == 'h')
        {
            if (
sample[17] == 'w'
            {
                
emit_sound(idchannelchainsaw_sounds[3], volumeattnflagspitch)
            }
            else
            {
                
emit_sound(idchannelchainsaw_sounds[random_num(1,2)], volumeattnflagspitch)
            }
        }
        else
        {
            if (
sample[15] == 'l'
            {
                
emit_sound(idchannelchainsaw_sounds[4], volumeattnflagspitch)
            }
            else 
            {
                
emit_sound(idchannelchainsaw_sounds[5], volumeattnflagspitch)
            }
        }
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED 



public 
fw_Knife_PrimaryAttack_Post(knife
{     
    static 
id 
    id 
get_pdata_cbase(knifem_pPlayer4
    
    if(
is_user_connected(id) && g_iHasChainsaw[id]) 
    { 
        static 
Float:flRate 
        flRate 
get_pcvar_float(cvar_pattack_rate
        
        
set_pdata_float(knifem_flNextPrimaryAttackflRate4
        
set_pdata_float(knifem_flNextSecondaryAttackflRate4
        
set_pdata_float(knifem_flTimeWeaponIdleflRate4
        
        static 
Float:flPunchAngle[3
        
flPunchAngle[0] = get_pcvar_float(cvar_pattack_recoil
        
        
entity_set_vector(idEV_VEC_punchangleflPunchAngle)     
    } 
    
    return 
HAM_IGNORED 


public 
fw_Knife_SecondaryAttack_Post(knife
{     
    static 
id 
    id 
get_pdata_cbase(knifem_pPlayer4
    
    if(
is_user_connected(id) && g_iHasChainsaw[id]) 
    { 
        static 
Float:flRate 
        flRate 
get_pcvar_float(cvar_sattack_rate
        
        
set_pdata_float(knifem_flNextPrimaryAttackflRate4
        
set_pdata_float(knifem_flNextSecondaryAttackflRate4
        
set_pdata_float(knifem_flTimeWeaponIdleflRate4
        
        static 
Float:flPunchAngle[3
        
flPunchAngle[0] = get_pcvar_float(cvar_sattack_recoil
        
        
entity_set_vector(idEV_VEC_punchangleflPunchAngle
    } 
    
    return 
HAM_IGNORED 


check_drop_flag(flag

    new 
szFlags[10
    
get_pcvar_string(cvar_dropflagsszFlagscharsmax(szFlags)) 
    
    if(
read_flags(szFlags) & flag
    return 
true 
    
    
return false 


a_lot_of_blood(id)

    static 
iOrigin[3
    
get_user_origin(idiOrigin
    
    
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin
    
write_byte(TE_BLOODSTREAM
    
write_coord(iOrigin[0]) 
    
write_coord(iOrigin[1]) 
    
write_coord(iOrigin[2]+10
    
write_coord(random_num(-360360))
    
write_coord(random_num(-360360))
    
write_coord(-10)
    
write_byte(70)
    
write_byte(random_num(50100))
    
message_end() 
    
    for (new 
04j++)  
    { 
        
message_begin(MSG_PVSSVC_TEMPENTITYiOrigin
        
write_byte(TE_WORLDDECAL
        
write_coord(iOrigin[0]+random_num(-100100)) 
        
write_coord(iOrigin[1]+random_num(-100100)) 
        
write_coord(iOrigin[2]-36
        
write_byte(random_num(190197))
        
message_end() 
    } 


stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
    
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
                
write_byte(players[i]);
                
write_string(msg);
                
message_end();
            }
        }
    }

__________________

Last edited by edon1337; 01-28-2017 at 16:46.
edon1337 is offline
yas17sin
Veteran Member
Join Date: Oct 2016
Location: Morocco/Sale
Old 01-28-2017 , 18:53   Re: [REQ] Editing Plugin
Reply With Quote #7

That's work.
but i got 1 problem because i am using every 3 round or x round team switch if player already have the chain he can keep it when team switch unless he drop it please fix it .
yas17sin is offline
Send a message via ICQ to yas17sin
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 01-29-2017 , 13:14   Re: [REQ] Editing Plugin
Reply With Quote #8

Huh ? You want them to have Chainsaw even after team switch ?
__________________

Last edited by edon1337; 01-29-2017 at 13:15.
edon1337 is offline
yas17sin
Veteran Member
Join Date: Oct 2016
Location: Morocco/Sale
Old 01-29-2017 , 13:27   Re: [REQ] Editing Plugin
Reply With Quote #9

Quote:
Originally Posted by edon1337 View Post
Huh ? You want them to have Chainsaw even after team switch ?
no i want them to not have it when team switch
yas17sin is offline
Send a message via ICQ to yas17sin
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 01-29-2017 , 13:48   Re: [REQ] Editing Plugin
Reply With Quote #10

When they switch teams, they die, so logically they lose it.
__________________

Last edited by edon1337; 01-29-2017 at 13:48.
edon1337 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 01:46.


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