View Single Post
Author Message
Fixsek Kot
Member
Join Date: Feb 2022
Old 02-23-2022 , 11:15   Edited weapon damage
Reply With Quote #1

Hello again ,

I've been working on a gun added in shop menu, I successfuly changed rate fire, fire sound, animations and decals, but I can't figure out how to set the weapon's damage back, because if I shoot an enemy with that gun, it doesn't deal any damage to him, and I don't know how to fix it, so I'm pleading for another help please

PHP Code:
register_forward(FM_CmdStart"fw_cmdstart"1)
    
register_forward(FM_UpdateClientData"fw_updateclientdata"1)
    
register_think("gutkiller""fw_think")
}
public 
fw_cmdstart(iduc)
{
    if(!
alive(id) || !is_user_connected(id))
        return 
FMRES_IGNORED
    
if(get_user_weapon(id) != CSW_M3 || !gutkiller[id])
        return 
FMRES_IGNORED
    
    
static entent fm_get_user_weapon_entity(idCSW_M3)
    if(!
pev_valid(ent))
        return 
FMRES_IGNORED
    
if(get_pdata_float(ent464) > 0.0 || get_pdata_float(ent474) > 0.0
        return 
FMRES_IGNORED
    
    
static CurButton
    CurButton 
get_uc(ucUC_Buttons)
    
    if(
CurButton IN_ATTACK)
    {
        
CurButton &= ~IN_ATTACK
        set_uc
(ucUC_ButtonsCurButton)
            
        if(
get_pdata_float(id835) <= 0.0)
        {
            
native_playanim(idanim_shoot_normal)
            
hitbulet(id)
            
emit_sound(idCHAN_WEAPONgutkiller_shoot11.0ATTN_NORM0PITCH_NORM)
            
set_weapons_timeidle(idCSW_M30.5)
            
set_player_nextattack(id0.5)
        }
    }
    return 
FMRES_HANDLED
}
public 
fw_updateclientdata(idsendweaponscd_handle)
{
    if(!
alive(id)) return FMRES_IGNORED
    
if(get_user_weapon(id) == CSW_M3 && gutkiller[id])
    {
        
set_cd(cd_handleCD_ID0)
    }
    return 
FMRES_HANDLED
}
public 
gutkiller_fire(id)
{
    new 
Float:origin[3],Float:velocity[3],Float:angles[3]
    
engfunc(EngFunc_GetAttachmentid0originangles)
    
pev(idpev_anglesangles)
    new 
ent create_entity("info_target"
    
set_pev(entpev_classname"gutkiller")
    
set_pev(entpev_solidSOLID_BBOX )
    
set_pev(entpev_movetypeMOVETYPE_TOSS )
    
set_pev(entpev_mins, { -0.1, -0.1, -0.1 } )
    
set_pev(entpev_maxs, { 0.10.10.1 } )
    
set_pev(entpev_originorigin )
    
set_pev(entpev_anglesangles )
    
set_pev(entpev_ownerid )
    
velocity_by_aimid1350velocity )
    
set_peventpev_velocityvelocity )
}
public 
fw_think(ptr)
{
    if(!
pev_valid(ptr))
        return
        
    static 
Float:RenderAmtpev(ptrpev_renderamtRenderAmt)
    
    
RenderAmt += 50.0
    RenderAmt 
float(clamp(floatround(RenderAmt), 0255))
    
    
set_pev(ptrpev_renderamtRenderAmt)
    
set_pev(ptrpev_nextthinkhalflife_time() + 0.1)
}
public 
hitbulet(id)
{
    new 
aimOrigin[3], targetbody
    get_user_origin
(idaimOrigin3)
    
get_user_aiming(idtargetbody)
    
    if(
target && target <= get_maxplayers())
    {
        new 
Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
        
pev(idpev_originfStart)
        
        
velocity_by_aim(id64fVel)
        
        
fStart[0] = float(aimOrigin[0])
        
fStart[1] = float(aimOrigin[1])
        
fStart[2] = float(aimOrigin[2])
        
fEnd[0] = fStart[0]+fVel[0]
        
fEnd[1] = fStart[1]+fVel[1]
        
fEnd[2] = fStart[2]+fVel[2]
        
        new 
res
        engfunc
(EngFunc_TraceLinefStartfEnd0targetres)
        
get_tr2(resTR_vecEndPosfRes)
                
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY
        
write_byte(TE_BLOODSPRITE)
        
write_coord(floatround(fStart[0])) 
        
write_coord(floatround(fStart[1])) 
        
write_coord(floatround(fStart[2])) 
        
write_short(blood_spray)
        
write_short(blood)
        
write_byte(70)
        
write_byte(random_num(1,2))
        
message_end()
        
        
    } else {
        new 
decal native_gi_get_gunshot_decal()
        
        if(
target)
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_DECAL)
            
write_coord(aimOrigin[0])
            
write_coord(aimOrigin[1])
            
write_coord(aimOrigin[2])
            
write_byte(decal)
            
write_short(target)
            
message_end()
        } else {
            
// Put decal on "world" (a wall)
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_WORLDDECAL)
            
write_coord(aimOrigin[0])
            
write_coord(aimOrigin[1])
            
write_coord(aimOrigin[2])
            
write_byte(decal)
            
message_end()
        }
        
        
// Show sparcles
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_GUNSHOTDECAL)
        
write_coord(aimOrigin[0])
        
write_coord(aimOrigin[1])
        
write_coord(aimOrigin[2])
        
write_short(id)
        
write_byte(decal)
        
message_end()
    }
}
public 
native_playanim(playeranim)
{
    
set_pev(playerpev_weaponanimanim)
    
message_begin(MSG_ONESVC_WEAPONANIM, {000}, player)
    
write_byte(anim)
    
write_byte(pev(playerpev_body))
    
message_end()
}
public 
native_gi_get_gunshot_decal()
{
    return 
GUNSHOT_DECALS[random_num(0sizeof(GUNSHOT_DECALS) - 1)]
}
stock create_velocity_vector(victimattackerFloat:velocity[3])
{
    if(
team(victim) != || !is_user_alive(attacker))
    {
        return 
0
    
}
    new 
Float:vicorigin[3]
    new 
Float:attorigin[3]
    
entity_get_vector(victimEV_VEC_originvicorigin)
    
entity_get_vector(attackerEV_VEC_originattorigin)

    new 
Float:origin2[3]
    
origin2[0] = vicorigin[0] - attorigin[0]
    
origin2[1] = vicorigin[1] - attorigin[1]

    new 
Float:largestnum 0.0

    
if(floatabs(origin2[0])>largestnumlargestnum floatabs(origin2[0])
    if(
floatabs(origin2[1])>largestnumlargestnum floatabs(origin2[1])

    
origin2[0] /= largestnum
    origin2
[1] /= largestnum

    velocity
[0] = ( origin2[0] * (10 3000) ) / get_entity_distance(victim attacker)
    
velocity[1] = ( origin2[1] * (10 3000) ) / get_entity_distance(victim attacker)
    if(
velocity[0] <= 20.0 || velocity[1] <= 20.0)
        
velocity[2] = random_float(200.0 275.0)
    return 
1
}
stock set_weapons_timeidle(idweaponid ,Float:timeidle)
{
    if(!
alive(id))
        return
        
    static 
entwpnentwpn fm_get_user_weapon_entity(idweaponid)
    if(!
pev_valid(entwpn)) 
        return
        
    
set_pdata_float(entwpn46timeidle4)
    
set_pdata_float(entwpn47timeidle4)
    
set_pdata_float(entwpn48timeidle 0.54)
}
stock set_player_nextattack(idFloat:nexttime)
{
    if(!
alive(id))
        return
    
set_pdata_float(id83nexttime5)

I also got this in Ham_TakeDamage:
PHP Code:
if(get_pdata_int(victim75) == HIT_HEAD)
                {
                    
SetHamParamFloat(4get_pcvar_float(gutkiller_damage))
                }
                else
                {
                    
SetHamParamFloat(4get_pcvar_float(gutkiller_damagehs))
                } 
I also tried to search for this problem, but I can't find the way to set damage for this gun. Have a nice day.

Last edited by Fixsek Kot; 02-23-2022 at 11:17. Reason: Just wanted to edit it to PHP, just for a better clarity
Fixsek Kot is offline