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

Solved Entities damage


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 02-26-2019 , 07:09   Entities damage
Reply With Quote #1

hii , good day

i need help actually i am using golden m4a1 and it working fine but i am facing one promblem that is the damage which this gun do is only applied to player not entity like sentryguns (classname : "sentrygun") , dispenser (classname : "nicedispenser") , lasermine . i wanted to do damage to this entity , i tried "ExecutehamB" but failed



PHP Code:


#define PLUGIN "Golden M4a1"

#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <amxmisc>


#define is_valid_player(%1) (1 <= %1 <= 32)

new M4_V_MODEL[64] = "models/v_golden_m4a1.mdl"
new M4_P_MODEL[64] = "models/p_golden_m4a1.mdl"

/* Pcvars */
new cvar_dmgmultipliercvar_goldbullets,  cvar_custommodelcvar_uclipcvar_cost

new bool:g_HasM4[33]

new 
g_hasZoom33 ]
new 
bullets33 ]

// Sprite
new m_spriteTexture

const Wep_m4a1 = ((1<<CSW_M4A1))

public 
plugin_init()
{
    
    
/* CVARS */
    
cvar_dmgmultiplier register_cvar("goldenm4_dmg_multiplier""5")
    
cvar_custommodel register_cvar("goldenm4_custom_model""1")
    
cvar_goldbullets register_cvar("goldenm4_gold_bullets""1")
    
cvar_uclip register_cvar("goldenm4_unlimited_clip""1")
    
cvar_cost register_cvar("goldenm4_cost""6000")
    
    
// Register The Buy Cmd
    
register_clcmd("say /goldenm4""CmdBuyM4")
    
register_clcmd("say_team /goldenm4""CmdBuyM4")
    
register_concmd("amx_goldenm4""CmdGiveM4"ADMIN_BAN"<name>")
    
    
// Register The Plugin
    
register_plugin("Golden M4A1""1.0""Alicx DarK")
    
// Death Msg
    
register_event("DeathMsg""Death""a")
    
// Weapon Pick Up
    
register_event("WeapPickup","checkModel","b","1=19")
    
// Current Weapon Event
    
register_event("CurWeapon","checkWeapon","be","1=1")
    
register_event("CurWeapon""make_tracer""be""1=1""3>0")
    
// Ham TakeDamage
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
register_forwardFM_CmdStart"fw_CmdStart" )
    
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1)
    
}

public 
client_connect(id)
{
    
g_HasM4[id] = false
}

public 
client_disconnect(id)
{
    
g_HasM4[id] = false
}

public 
Death()
{
    
g_HasM4[read_data(2)] = false
}

public 
fwHamPlayerSpawnPost(id)
{
    
g_HasM4[id] = false
}

public 
plugin_precache()
{
    
precache_model(M4_V_MODEL)
    
precache_model(M4_P_MODEL)
    
m_spriteTexture precache_model("sprites/dot.spr")
    
precache_sound("weapons/zoom.wav")
}

public 
checkModel(id)
{
    if ( !
g_HasM4[id] )
        return 
PLUGIN_HANDLED
    
    
new szWeapID read_data(2)
    
    if ( 
szWeapID == CSW_M4A1 && g_HasM4[id] == true && get_pcvar_num(cvar_custommodel) )
    {
        
set_pev(idpev_viewmodel2M4_V_MODEL)
        
set_pev(idpev_weaponmodel2M4_P_MODEL)
    }
    return 
PLUGIN_HANDLED
}

public 
checkWeapon(id)
{
    new 
plrClipplrAmmoplrWeap[32]
    new 
plrWeapId
    
    plrWeapId 
get_user_weapon(idplrClip plrAmmo)
    
    if (
plrWeapId == CSW_M4A1 && g_HasM4[id])
    {
        
checkModel(id)
    }
    else 
    {
        return 
PLUGIN_CONTINUE
    
}
    
    if (
plrClip == && get_pcvar_num(cvar_uclip))
    {
        
// If the user is out of ammo..
        
get_weaponname(plrWeapIdplrWeap31)
        
// Get the name of their weapon
        
give_item(idplrWeap)
        
engclient_cmd(idplrWeap
        
engclient_cmd(idplrWeap)
        
engclient_cmd(idplrWeap)
    }
    return 
PLUGIN_HANDLED
}



public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4[attacker] )
    {
        
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) )
    }
}

public 
fw_CmdStartiduc_handleseed )
{
    if( !
is_user_aliveid ) ) 
        return 
PLUGIN_HANDLED
    
    
if( ( get_ucuc_handleUC_Buttons ) & IN_ATTACK2 ) && !( pevidpev_oldbuttons ) & IN_ATTACK2 ) )
    {
        new 
szClipszAmmo
        
new szWeapID get_user_weaponidszClipszAmmo )
        
        if( 
szWeapID == CSW_M4A1 && g_HasM4[id] == true && !g_hasZoom[id] == true)
        {
            
g_hasZoom[id] = true
            cs_set_user_zoom
idCS_SET_AUGSG552_ZOOM)
            
emit_soundidCHAN_ITEM"weapons/zoom.wav"0.202.400100 )
        }
        
        else if ( 
szWeapID == CSW_M4A1 && g_HasM4[id] == true && g_hasZoom[id])
        {
            
g_hasZoomid ] = false
            cs_set_user_zoom
idCS_RESET_ZOOM)
            
        }
        
    }
    return 
PLUGIN_HANDLED
}


public 
make_tracer(id)
{
    if (
get_pcvar_num(cvar_goldbullets))
    {
        new 
clip,ammo
        
new wpnid get_user_weapon(id,clip,ammo)
        new 
pteam[16]
        
        
get_user_team(idpteam15)
        
        if ((
bullets[id] > clip) && (wpnid == CSW_M4A1) && g_HasM4[id]) 
        {
            new 
vec1[3], vec2[3]
            
get_user_origin(idvec11// origin; your camera point.
            
get_user_origin(idvec24// termina; where your bullet goes (4 is cs-only)
            
            
            //BEAMENTPOINTS
            
message_beginMSG_BROADCAST,SVC_TEMPENTITY)
            
write_byte (0)     //TE_BEAMENTPOINTS 0
            
write_coord(vec1[0])
            
write_coord(vec1[1])
            
write_coord(vec1[2])
            
write_coord(vec2[0])
            
write_coord(vec2[1])
            
write_coord(vec2[2])
            
write_shortm_spriteTexture )
            
write_byte(1// framestart
            
write_byte(5// framerate
            
write_byte(2// life
            
write_byte(10// width
            
write_byte(0// noise
            
write_byte255 )     // r, g, b
            
write_byte215 )       // r, g, b
            
write_byte)       // r, g, b
            
write_byte(200// brightness
            
write_byte(150// speed
            
message_end()
        }
        
        
bullets[id] = clip
    
}
    
}

public 
CmdBuyM4(id)
{
    if ( !
is_user_alive(id) )
    {
        
client_print(id,print_chat"[AMXX] To buy golden M4a1 You need to be alive!")
        return 
PLUGIN_HANDLED
    
}
    
    new 
money cs_get_user_money(id)
    
    if (
money >= get_pcvar_num(cvar_cost))
    {
        
cs_set_user_money(idmoney get_pcvar_num(cvar_cost))
        
give_item(id"weapon_m4a1")
        
g_HasM4[id] = true
    
}
    
    else
    {
        
client_print(idprint_chat"[AMXX] You dont hav enough money to buy Golden M4a1. Cost $%d "get_pcvar_num(cvar_cost))
    }
    return 
PLUGIN_HANDLED
}

public 
CmdGiveM4(id,level,cid)
{
    if (!
cmd_access(id,level,cid,2))
        return 
PLUGIN_HANDLED;
    new 
arg[32];
    
read_argv(1,arg,31);
    
    new 
player cmd_target(id,arg,7);
    if (!
player
        return 
PLUGIN_HANDLED;
    
    new 
name[32];
    
get_user_name(player,name,31);
    
    
give_item(player"weapon_m4a1")
    
g_HasM4[player] = true
    
    
return PLUGIN_HANDLED
}

stock drop_prim(id
{
    new 
weapons[32], num
    get_user_weapons
(idweaponsnum)
    for (new 
0numi++) {
        if (
Wep_m4a1 & (1<<weapons[i])) 
        {
            static 
wname[32]
            
get_weaponname(weapons[i], wnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
        }
    }



DAMAGE CODE

PHP Code:
public fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4[attacker] )
    {
        
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) )
    }


THE CODE i tried

PHP Code:
ExecuteHamB(Ham_TakeDamagevictiminflictorattacker100.0DMG_BULLET

Last edited by SHIELD755; 03-01-2019 at 07:27. Reason: SOLVED
SHIELD755 is offline
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 02-26-2019 , 07:14   Re: Entities damage
Reply With Quote #2

You are hooking TakeDamage for player entity. Why do you expect it to work for other entities?
__________________
HamletEagle is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 02-26-2019 , 07:28   Re: Entities damage
Reply With Quote #3

Quote:
Originally Posted by HamletEagle View Post
You are hooking TakeDamage for player entity. Why do you expect it to work for other entities?
how can i hook damage to other entities sir
SHIELD755 is offline
Old 02-26-2019, 08:19
HamletEagle
This message has been deleted by HamletEagle.
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 02-26-2019 , 08:51   Re: Entities damage
Reply With Quote #4

Quote:
Originally Posted by SHIELD755 View Post
how can i hook damage to other entities sir
By simply adding their class names in the hook?
__________________
edon1337 is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 02-26-2019 , 08:58   Re: Entities damage
Reply With Quote #5

Quote:
Originally Posted by edon1337 View Post
By simply adding their class names in the hook?
good idea but i willing to damage entity with executehamB ;)
SHIELD755 is offline
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 02-26-2019 , 10:09   Re: Entities damage
Reply With Quote #6

Makes no sense. If your sentry gun for example it's an info_target entity, RegisterHam Ham_TakeDamage in info_target and in hook compare entity's (victim) classname with the sentry gun's classname.

Why do you need to call ExecuteHamB?
__________________








CrazY. is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 02-26-2019 , 10:35   Re: Entities damage
Reply With Quote #7

Quote:
Originally Posted by CrazY. View Post
Makes no sense. If your sentry gun for example it's an info_target entity, RegisterHam Ham_TakeDamage in info_target and in hook compare entity's (victim) classname with the sentry gun's classname.

Why do you need to call ExecuteHamB?
okay, i will hook with classname

why i need hamB?

becuase i have seen a Gun code in which the damage is not hook up with classname but i just lost the code.
SHIELD755 is offline
Old 02-26-2019, 10:48
<VeCo>
This message has been deleted by <VeCo>.
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 02-27-2019 , 06:06   Re: Entities damage
Reply With Quote #8

FAILED i tried by finding classname


PHP Code:
new iEnt FM_NULLENT;
      while( (
iEnt find_ent_by_classiEnt"sentrygun" )) )
      {
           
damage get_pcvar_float(cvar_dmgmultiplier))
            
entity_set_float(iEntEV_FL_healthentity_get_float(iEntEV_FL_health) - damage
SHIELD755 is offline
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 02-27-2019 , 06:15   Re: Entities damage
Reply With Quote #9

Post full code or attach sma.
__________________








CrazY. is offline
SHIELD755
Veteran Member
Join Date: Feb 2018
Location: FROM MARVEL STUDIO
Old 02-27-2019 , 06:43   Re: Entities damage
Reply With Quote #10

Quote:
Originally Posted by CrazY. View Post
Post full code or attach sma.
i post full code , you can see GOLDEN M4 gun code

PHP Code:
#define PLUGIN "Golden M4a1" 

#include <amxmodx> 
#include <fakemeta> 
#include <fun> 
#include <hamsandwich> 
#include <cstrike> 
#include <amxmisc> 


#define is_valid_player(%1) (1 <= %1 <= 32) 

new M4_V_MODEL[64] = "models/v_golden_m4a1.mdl" 
new M4_P_MODEL[64] = "models/p_golden_m4a1.mdl" 

/* Pcvars */ 
new cvar_dmgmultipliercvar_goldbullets,  cvar_custommodelcvar_uclipcvar_cost 

new bool:g_HasM4[33

new 
g_hasZoom33 
new 
bullets33 

// Sprite 
new m_spriteTexture 

const Wep_m4a1 = ((1<<CSW_M4A1)) 

public 
plugin_init() 

     
    
/* CVARS */ 
    
cvar_dmgmultiplier register_cvar("goldenm4_dmg_multiplier""5"
    
cvar_custommodel register_cvar("goldenm4_custom_model""1"
    
cvar_goldbullets register_cvar("goldenm4_gold_bullets""1"
    
cvar_uclip register_cvar("goldenm4_unlimited_clip""1"
    
cvar_cost register_cvar("goldenm4_cost""6000"
     
    
// Register The Buy Cmd 
    
register_clcmd("say /goldenm4""CmdBuyM4"
    
register_clcmd("say_team /goldenm4""CmdBuyM4"
    
register_concmd("amx_goldenm4""CmdGiveM4"ADMIN_BAN"<name>"
     
    
// Register The Plugin 
    
register_plugin("Golden M4A1""1.0""Alicx DarK"
    
// Death Msg 
    
register_event("DeathMsg""Death""a"
    
// Weapon Pick Up 
    
register_event("WeapPickup","checkModel","b","1=19"
    
// Current Weapon Event 
    
register_event("CurWeapon","checkWeapon","be","1=1"
    
register_event("CurWeapon""make_tracer""be""1=1""3>0"
    
// Ham TakeDamage 
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage"
    
register_forwardFM_CmdStart"fw_CmdStart" 
    
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1
     


public 
client_connect(id

    
g_HasM4[id] = false 


public 
client_disconnect(id

    
g_HasM4[id] = false 


public 
Death() 

    
g_HasM4[read_data(2)] = false 


public 
fwHamPlayerSpawnPost(id

    
g_HasM4[id] = false 


public 
plugin_precache() 

    
precache_model(M4_V_MODEL
    
precache_model(M4_P_MODEL
    
m_spriteTexture precache_model("sprites/dot.spr"
    
precache_sound("weapons/zoom.wav"


public 
checkModel(id

    if ( !
g_HasM4[id] ) 
        return 
PLUGIN_HANDLED 
     
    
new szWeapID read_data(2
     
    if ( 
szWeapID == CSW_M4A1 && g_HasM4[id] == true && get_pcvar_num(cvar_custommodel) ) 
    { 
        
set_pev(idpev_viewmodel2M4_V_MODEL
        
set_pev(idpev_weaponmodel2M4_P_MODEL
    } 
    return 
PLUGIN_HANDLED 


public 
checkWeapon(id

    new 
plrClipplrAmmoplrWeap[32
    new 
plrWeapId 
     
    plrWeapId 
get_user_weapon(idplrClip plrAmmo
     
    if (
plrWeapId == CSW_M4A1 && g_HasM4[id]) 
    { 
        
checkModel(id
    } 
    else  
    { 
        return 
PLUGIN_CONTINUE 
    

     
    if (
plrClip == && get_pcvar_num(cvar_uclip)) 
    { 
        
// If the user is out of ammo.. 
        
get_weaponname(plrWeapIdplrWeap31
        
// Get the name of their weapon 
        
give_item(idplrWeap
        
engclient_cmd(idplrWeap)  
        
engclient_cmd(idplrWeap
        
engclient_cmd(idplrWeap
    } 
    return 
PLUGIN_HANDLED 




public 
fw_TakeDamage(victiminflictorattackerFloat:damage

    if ( 
is_valid_playerattacker ) && get_user_weapon(attacker) == CSW_M4A1 && g_HasM4[attacker] ) 
    { 
        
SetHamParamFloat(4damage get_pcvar_floatcvar_dmgmultiplier ) ) 
    } 


public 
fw_CmdStartiduc_handleseed 

    if( !
is_user_aliveid ) )  
        return 
PLUGIN_HANDLED 
     
    
if( ( get_ucuc_handleUC_Buttons ) & IN_ATTACK2 ) && !( pevidpev_oldbuttons ) & IN_ATTACK2 ) ) 
    { 
        new 
szClipszAmmo 
        
new szWeapID get_user_weaponidszClipszAmmo 
         
        if( 
szWeapID == CSW_M4A1 && g_HasM4[id] == true && !g_hasZoom[id] == true
        { 
            
g_hasZoom[id] = true 
            cs_set_user_zoom
idCS_SET_AUGSG552_ZOOM
            
emit_soundidCHAN_ITEM"weapons/zoom.wav"0.202.400100 
        } 
         
        else if ( 
szWeapID == CSW_M4A1 && g_HasM4[id] == true && g_hasZoom[id]) 
        { 
            
g_hasZoomid ] = false 
            cs_set_user_zoom
idCS_RESET_ZOOM
             
        } 
         
    } 
    return 
PLUGIN_HANDLED 



public 
make_tracer(id

    if (
get_pcvar_num(cvar_goldbullets)) 
    { 
        new 
clip,ammo 
        
new wpnid get_user_weapon(id,clip,ammo
        new 
pteam[16
         
        
get_user_team(idpteam15
         
        if ((
bullets[id] > clip) && (wpnid == CSW_M4A1) && g_HasM4[id])  
        { 
            new 
vec1[3], vec2[3
            
get_user_origin(idvec11// origin; your camera point. 
            
get_user_origin(idvec24// termina; where your bullet goes (4 is cs-only) 
             
             
            //BEAMENTPOINTS 
            
message_beginMSG_BROADCAST,SVC_TEMPENTITY
            
write_byte (0)     //TE_BEAMENTPOINTS 0 
            
write_coord(vec1[0]) 
            
write_coord(vec1[1]) 
            
write_coord(vec1[2]) 
            
write_coord(vec2[0]) 
            
write_coord(vec2[1]) 
            
write_coord(vec2[2]) 
            
write_shortm_spriteTexture 
            
write_byte(1// framestart 
            
write_byte(5// framerate 
            
write_byte(2// life 
            
write_byte(10// width 
            
write_byte(0// noise 
            
write_byte255 )     // r, g, b 
            
write_byte215 )       // r, g, b 
            
write_byte)       // r, g, b 
            
write_byte(200// brightness 
            
write_byte(150// speed 
            
message_end() 
        } 
         
        
bullets[id] = clip 
    

     


public 
CmdBuyM4(id

    if ( !
is_user_alive(id) ) 
    { 
        
client_print(id,print_chat"[AMXX] To buy golden M4a1 You need to be alive!"
        return 
PLUGIN_HANDLED 
    

     
    new 
money cs_get_user_money(id
     
    if (
money >= get_pcvar_num(cvar_cost)) 
    { 
        
cs_set_user_money(idmoney get_pcvar_num(cvar_cost)) 
        
give_item(id"weapon_m4a1"
        
g_HasM4[id] = true 
    

     
    else 
    { 
        
client_print(idprint_chat"[AMXX] You dont hav enough money to buy Golden M4a1. Cost $%d "get_pcvar_num(cvar_cost)) 
    } 
    return 
PLUGIN_HANDLED 


public 
CmdGiveM4(id,level,cid

    if (!
cmd_access(id,level,cid,2)) 
        return 
PLUGIN_HANDLED
    new 
arg[32]; 
    
read_argv(1,arg,31); 
     
    new 
player cmd_target(id,arg,7); 
    if (!
player)  
        return 
PLUGIN_HANDLED
     
    new 
name[32]; 
    
get_user_name(player,name,31); 
     
    
give_item(player"weapon_m4a1"
    
g_HasM4[player] = true 
     
    
return PLUGIN_HANDLED 


stock drop_prim(id)  

    new 
weapons[32], num 
    get_user_weapons
(idweaponsnum
    for (new 
0numi++) { 
        if (
Wep_m4a1 & (1<<weapons[i]))  
        { 
            static 
wname[32
            
get_weaponname(weapons[i], wnamesizeof wname 1
            
engclient_cmd(id"drop"wname
        } 
    } 


Last edited by SHIELD755; 02-27-2019 at 06:48. Reason: CODE :
SHIELD755 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 21:38.


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