#pragma semicolon 1
#include <sdkhooks>
#include <sdktools_engine>
public Plugin:myinfo =
{
name = "Precision Distance Murder",
author = "AlmazON FiX",
description = "Прецизионное Расстояние Убийства",
version = "0.1.0",
url = "http://www.hlmod.ru"
}
#define UNIT_MEASURE 0
#if UNIT_MEASURE
#define ADJUSTMENT UNIT_MEASURE
#else
#tryinclude <smlib/math>
#if defined _smlib_math_included
#define ADJUSTMENT GAMEUNITS_TO_METERS
#else
#define ADJUSTMENT 0.01905
#endif
#endif
#pragma newdecls required
float fP[MAXPLAYERS+1][3];
public void OnPluginStart()
{
HookEvent("player_death", Event_PlayerDeath);
}
public void OnClientPostAdminCheck(int iClient)
{
SDKHook(iClient, SDKHook_OnTakeDamage, OnTakeDamage);
}
public void OnTakeDamage(int iClient, int iAttaker, int iInflictor, float fDamage, int iDamageType, int iW, const float F[3], const float P[3])
{
fP[iClient][0] = P[0];
fP[iClient][1] = P[1];
fP[iClient][2] = P[2];
}
public void Event_PlayerDeath(Handle hEvent, char[] sName, bool bDontBroadcast)
{
int iAttaker;
if((iAttaker = GetClientOfUserId(GetEventInt(hEvent,"attacker"))))
{
int iClient;
if((iClient = GetClientOfUserId(GetEventInt(hEvent,"userid"))) != iAttaker)
{
GetClientEyePosition(iAttaker, fP[iAttaker]);
float fVector;
PrintToChat(iAttaker, "\x01\04[Дистанция] \x01Убийство произведено с \x05расстояния \x03%.3f ед\x01.", fVector = GetVectorDistance(fP[iAttaker], fP[iClient]) * ADJUSTMENT);
PrintToChat(iClient, "\x01\04[Дистанция] \x01Убийство произошло с \x05расстояния \x03%.3f ед\x01.", fVector);
}
}
}