Raised This Month: $ Target: $400
 0% 

Working radius damage function with id


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Wuu
Member
Join Date: Apr 2008
Old 05-19-2010 , 15:33   Working radius damage function with id
Reply With Quote #1

i need working radius damage function with id, so i can add killer. I tested many functions that i find in forum, some don't work and some works but crush server, some works only with entity.
Wuu is offline
Sylwester
Veteran Member
Join Date: Oct 2006
Location: Poland
Old 05-19-2010 , 16:07   Re: Working radius damage function with id
Reply With Quote #2

You can use something like this:
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>

new g_max_players
public plugin_init(){
    
g_max_players get_maxplayers()
}

//if self_dmg is true, then player "id" will also receive dmg
//if ignore_teams is true, then teammates within range will also receive dmg
public radius_dmg(idradiusdmgbool:ignore_teamsbool:self_dmg){
    static 
source_origin[3], o[3], CsTeams:team
    get_user_origin
(idsource_origin)
    
team cs_get_user_team(id)
    for(new 
i=1i<=g_max_playersi++){
        if(!
is_user_alive(i) || (!self_dmg && id==i) || (!ignore_teams && team == cs_get_user_team(i)))
            continue
        
get_user_origin(io)
        
o[0]-=source_origin[0]
        
o[1]-=source_origin[1]
        
o[2]-=source_origin[2]
        if(
radius sqroot(o[0]*o[0]+o[1]*o[1]+o[2]*o[2]))
            continue
        
do_damage(iiddmg)
    }
}

//example damage function
public do_damage(victimattackerdmg){
    static 
name[32]
    
set_user_health(victimget_user_health(victim)-dmg)
    
get_user_name(attackername31)
    
client_print(victimprint_chat"You have lost %d health due to radius damage caused by %s"dmgname)

__________________
Impossible is Nothing
Sylwester is offline
Wuu
Member
Join Date: Apr 2008
Old 05-20-2010 , 11:53   Re: Working radius damage function with id
Reply With Quote #3

Its always return true, doesn't mater if player is close or not. Basicly its killing everybody on map.
Cant this function use get_distance ( origin1[3], origin2[3] ) instead of sqroot ?

I use your code, and it works wit get_distance. Or i am wrong?
PHP Code:
public fire_rocket_origin(id) {
    new 
cordinates[3]
    
cordinates[0] = (PlayerOrigin0+random_num(-400,400)) // title random
    
cordinates[1] = (PlayerOrigin1+random_num(-400,400))
    
cordinates[2] = (PlayerOrigin2)
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY// Explosion
        
write_byte(3)
        
write_coord(cordinates[0])
        
write_coord(cordinates[1])
        
write_coord(cordinates[2])
        
write_short(g_sModelIndexFireball)
        
write_byte(random_num(020) + 50)
        
write_byte(12)
        
write_byte(0)
    
message_end()
    
    new 
o[3], CsTeams:team,dist 
    team 
cs_get_user_team(id)
    for(new 
i=1i<=g_max_playersi++){
        if(!
is_user_alive(i) || (id==i) || (team == cs_get_user_team(i)))
            continue
        
get_user_origin(io)
        
dist get_distance(cordinates,o// getting distance
        
if( dist 250// Ok
            
continue
        
client_printidprint_chat"Distance: %d units"dist )
        
dist = (255 dist// reverting damage bigger distance, smaller damage   
        
ExecuteHam(Ham_TakeDamage,i0idfloat(dist) ,DMG_FALL// Doing damage
    
}
    
airstrikePlayerId 0


Last edited by Wuu; 05-20-2010 at 12:28.
Wuu is offline
Sylwester
Veteran Member
Join Date: Oct 2006
Location: Poland
Old 05-20-2010 , 15:53   Re: Working radius damage function with id
Reply With Quote #4

My code works fine with sqroot.

You can use get_distance function instead of my method - it doesn't matter.
__________________
Impossible is Nothing
Sylwester is offline
Wuu
Member
Join Date: Apr 2008
Old 05-20-2010 , 16:12   Re: Working radius damage function with id
Reply With Quote #5

Thanks for help!
Wuu 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 03:35.


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