Raised This Month: $ Target: $400
 0% 

Get player touch with different player on death


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
didoWEE
Senior Member
Join Date: Oct 2012
Location: Bulgaria
Old 04-15-2013 , 12:40   Re: Get player touch with different player on death
Reply With Quote #1

Quote:
Originally Posted by didoWEE View Post
However first I will try other way. I'll post it leter
PHP Code:
#include <amxmodx>
#include <engine>
#include <cstrike>
#include <hamsandwich>

public plugin_init()
{
    
register_plugin("test""1""didoWEE");
    
RegisterHam(Ham_Killed"player""HookKill"1);
}

public 
HookKill(victimkiller)
{
    if(!
is_user_connected(killer)) return HAM_IGNORED;
    
// if(!is_user_connected(victim)) return HAM_IGNORED;
    // Maybe you are right ...
    
    
new CsTeams:team cs_get_user_team(victim);
    
    new 
Float:VecVictimOrigin[3];
    
entity_get_vector(victimEV_VEC_originVecVictimOrigin);
    
    new 
id = -1;
    
    new 
Float:VecTeammateOrigin[3];
    
    while((
id find_ent_in_sphere(idVecVictimOrigin72.0)) != 0)
    {
        if(
cs_get_user_team(id) != team) continue;
        
        
entity_get_vector(idEV_VEC_originVecTeammateOrigin);
        
        if(
VecVictimOrigin[0] - VecTeammateOrigin[0] == 16.0
        
|| VecTeammateOrigin[0] - VecVictimOrigin[0] == 16.0
        
|| VecVictimOrigin[1] - VecTeammateOrigin[1] == 16.0
        
|| VecTeammateOrigin[1] - VecVictimOrigin[1] == 16.0
        
|| VecVictimOrigin[2] - VecTeammateOrigin[2] == 72.0
        
|| VecTeammateOrigin[2] - VecVictimOrigin[2] == 72.0
        
|| VecVictimOrigin[2] - VecTeammateOrigin[2] == 54.0
        
|| VecTeammateOrigin[2] - VecVictimOrigin[2] == 54.0
        
|| VecVictimOrigin[2] - VecTeammateOrigin[2] == 36.0
        
|| VecTeammateOrigin[2] - VecVictimOrigin[2] == 36.0)
        {
            
// do something if they are touching
        
}
        else
        {
            
// do something if they are not touching
        
}
    }
    return 
HAM_IGNORED;


Last edited by didoWEE; 04-15-2013 at 12:50. Reason: Optimazed :D
didoWEE is offline
hornet
AMX Mod X Plugin Approver
Join Date: Mar 2010
Location: Australia
Old 04-15-2013 , 12:54   Re: Get player touch with different player on death
Reply With Quote #2

Quote:
Originally Posted by didoWEE View Post
PHP Code:
#include <amxmodx>
#include <engine>
#include <cstrike>
#include <hamsandwich>

public plugin_init()
{
    
register_plugin("test""1""didoWEE");
    
RegisterHam(Ham_Killed"player""HookKill"1);
}

public 
HookKill(victimkiller)
{
    if(!
is_user_connected(killer)) return HAM_IGNORED;
    
// if(!is_user_connected(victim)) return HAM_IGNORED; // Maybe you are right ...
    
    
new CsTeams:team cs_get_user_team(victim);
    
    new 
Float:VecVictimOrigin[3];
    
entity_get_vector(victimEV_VEC_originVecVictimOrigin);
    
    new 
id = -1;
    new 
Float:VecTeammateOrigin[3];
    
    while((
id find_ent_in_sphere(idVecVictimOrigin72.0)) != 0)
    {
        if(
cs_get_user_team(id) != team) continue;
        
        
entity_get_vector(idEV_VEC_originVecTeammateOrigin);
        
        if(
VecVictimOrigin[0] - VecTeammateOrigin[0] == 16.0
        
|| VecTeammateOrigin[0] - VecVictimOrigin[0] == 16.0
        
|| VecVictimOrigin[1] - VecTeammateOrigin[1] == 16.0
        
|| VecTeammateOrigin[1] - VecVictimOrigin[1] == 16.0
        
|| VecVictimOrigin[2] - VecTeammateOrigin[2] == 72.0
        
|| VecTeammateOrigin[2] - VecVictimOrigin[2] == 72.0
        
|| VecVictimOrigin[2] - VecTeammateOrigin[2] == 54.0
        
|| VecTeammateOrigin[2] - VecVictimOrigin[2] == 54.0
        
|| VecVictimOrigin[2] - VecTeammateOrigin[2] == 36.0
        
|| VecTeammateOrigin[2] - VecVictimOrigin[2] == 36.0)
        {
            
// do something if they are touching
        
}
        else
        {
            
// do something if they are not touching
        
}
    }
    
    return 
HAM_IGNORED;

What's to say that your loop won't find an entity that isn't a player?
__________________
Quote:
vBulletin Tip #42: Not much would be accomplished by merging this item with itself.
hornet is offline
didoWEE
Senior Member
Join Date: Oct 2012
Location: Bulgaria
Old 04-15-2013 , 12:57   Re: Get player touch with different player on death
Reply With Quote #3

Quote:
Originally Posted by hornet View Post
What's to say that your loop won't find an entity that isn't a player?
Ty

PHP Code:
#include <amxmodx>
#include <engine>
#include <cstrike>
#include <hamsandwich>

public plugin_init()
{
    
register_plugin("test""1""didoWEE");
    
RegisterHam(Ham_Killed"player""HookKill"1);
}

public 
HookKill(victimkiller)
{
    if(!
is_user_connected(killer)) return HAM_IGNORED;
    
// if(!is_user_connected(victim)) return HAM_IGNORED;
    // Maybe you are right ...
    
    
new CsTeams:team cs_get_user_team(victim);
    
    new 
Float:VecFlVictimOrigin[3];
    
entity_get_vector(victimEV_VEC_originVecFlVictimOrigin);
    
    new 
id = -1;
    
    new 
Float:VecFlTeammateOrigin[3];
    
    while((
id find_ent_in_sphere(idVecFlVictimOrigin72.0)) != 0)
    {
        
// if(!is_user_connected(id)) continue;
        
if(!is_user_alive(id)) continue; // won't give you errors if is_user_alive checks is_user_connected
        
if(cs_get_user_team(id) != team) continue;
        
        
entity_get_vector(idEV_VEC_originVecFlTeammateOrigin);
        
        if(
VecFlVictimOrigin[0] - VecFlTeammateOrigin[0] == 16.0
        
|| VecFlTeammateOrigin[0] - VecFlVictimOrigin[0] == 16.0
        
|| VecFlVictimOrigin[1] - VecFlTeammateOrigin[1] == 16.0
        
|| VecFlTeammateOrigin[1] - VecFlVictimOrigin[1] == 16.0
        
|| VecFlVictimOrigin[2] - VecFlTeammateOrigin[2] == 72.0
        
|| VecFlTeammateOrigin[2] - VecFlVictimOrigin[2] == 72.0
        
|| VecFlVictimOrigin[2] - VecFlTeammateOrigin[2] == 54.0
        
|| VecFlTeammateOrigin[2] - VecFlVictimOrigin[2] == 54.0
        
|| VecFlVictimOrigin[2] - VecFlTeammateOrigin[2] == 36.0
        
|| VecFlTeammateOrigin[2] - VecFlVictimOrigin[2] == 36.0)
        {
            
// do something if they are touching
        
}
        else
        {
            
// do something if they are not touching
        
}
    }
    return 
HAM_IGNORED;


Last edited by didoWEE; 04-15-2013 at 12:59.
didoWEE 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 10:55.


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