fakedamage problem
PHP Code:
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype)
{
new iOwnerTeam = get_user_team(attacker)
if(damagetype & DMG_HEGRENADE)
return HAM_IGNORED
if(iOwnerTeam == get_user_team(victim))
return HAM_IGNORED
new Float:vOrigin[3]
pev(victim, pev_origin, vOrigin)
if(get_user_weapon(attacker) == CSW_AWP)
{
new iOrigin[ 3 ], vorigin[3],srco[3]
get_user_origin( victim, iOrigin );
get_user_origin(victim,vorigin);
vorigin[2] -= 26
srco[0] = vorigin[0] + 150
srco[1] = vorigin[1] + 150
srco[2] = vorigin[2] + 800
new iRadius = get_pcvar_num( gCvarRadius );
UTIL_CreateBeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 255 ), random( 255 ), random( 255 ), 255, 0 );
UTIL_CreateBeamCylinder( iOrigin, 320, gCylinderSprite, 0, 0, 6, 16, 0, random( 255 ), random( 255 ), random( 255 ), 255, 0 );
UTIL_CreateBeamCylinder( iOrigin, iRadius, gCylinderSprite, 0, 0, 6, 16, 0, random( 255 ), random( 255 ), random( 255 ), 255, 0 );
UTIL_Blast_ExplodeDamage( victim, get_pcvar_float( gCvarDamage ), float( iRadius ) );
}
return HAM_HANDLED
}
PHP Code:
stock UTIL_Blast_ExplodeDamage( entid, Float:damage, Float:range )
{
new Float:flOrigin1[ 3 ];
entity_get_vector( entid, EV_VEC_origin, flOrigin1 );
new Float:flDistance;
new Float:flTmpDmg;
new Float:flOrigin2[ 3 ];
for( new i = 1; i <= gMaxPlayers; i++ )
{
if( is_user_alive( i ) && get_user_team( entid ) == get_user_team( i ) )
{
entity_get_vector( i, EV_VEC_origin, flOrigin2 );
flDistance = get_distance_f( flOrigin1, flOrigin2 );
static const szWeaponName[] = "Thunderbolt Strike";
if( flDistance <= range )
{
flTmpDmg = damage - ( damage / range ) * flDistance;
fakedamage( i, szWeaponName, flTmpDmg, DMG_BLAST );
}
}
}
}
stock UTIL_CreateBeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
{
message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[ 0 ] );
write_coord( origin[ 1 ] );
write_coord( origin[ 2 ] );
write_coord( origin[ 0 ] );
write_coord( origin[ 1 ] );
write_coord( origin[ 2 ] + addrad );
write_short( sprite );
write_byte( startfrate );
write_byte( framerate );
write_byte(life );
write_byte( width );
write_byte( amplitude );
write_byte( red );
write_byte( green );
write_byte( blue );
write_byte( brightness );
write_byte( speed );
message_end();
}
When a player is killed by the explosion nothing happens with frags in scoreboard.
How do set up when the explosion kill player = add frag to killer and reduce frag to victim?
|