| Doc-Holiday |
01-11-2011 19:16 |
Fake damage
I found a few different methods out there
PHP Code:
ExecuteHamB(Ham_TakeDamage, attacker, inflictor, attacker, Float:damage, damagebits);
The one above. Does it call Ham_TakeDamage? meaning if i was to use this inside of Ham_TakeDamage callback would it make a loop and kill the person?
PHP Code:
#include <amxmodx> #include <hamsandwich>
new dmg_reducer, dmg_mirror, bool:gBotsRegistered;
public plugin_init( ) { register_plugin( "Variable Friendly Fire", "1.7", "=(GrG)= Doc Holiday" );
RegisterHam( Ham_TakeDamage, "player", "PlayerHurt"); dmg_reducer = get_cvar_pointer("mp_friendlyfire"); dmg_mirror = get_cvar_pointer("mp_mirrordamage");
}
public client_authorized( id ) { if( !gBotsRegistered && is_user_bot( id ) ) { set_task( 0.1, "register_bots", id ); } }
public register_bots( id ) { if( !gBotsRegistered && is_user_connected( id ) ) { RegisterHamFromEntity( Ham_TakeDamage, id, "PlayerHurt"); gBotsRegistered = true; } }
public PlayerHurt( victim, inflictor, attacker, Float:damage, damagebits ) {
if(is_user_connected( attacker ) // Makes sure valid target && get_user_team(attacker) == get_user_team(victim)) //Checks if the same team { if(get_pcvar_num(dmg_mirror)) { SetHamParamFloat(4, (damage * 2.86 ) * floatclamp(get_pcvar_float(dmg_reducer), 0.0, 1.0)); ExecuteHamB(Ham_TakeDamage, attacker, inflictor, attacker, Float:damage, damagebits); } else { SetHamParamFloat(4, (damage * 2.86 ) * floatclamp(get_pcvar_float(dmg_reducer), 0.0, 1.0)); } } }
|