C:
#include <amxmodx>
#include <csstatsx_sql>
#include <hamsandwich>
#define PLUGIN "CSStatsX: Death Info"
#define VERSION "1.7"
#define AUTHOR "Avrora-CSDM.Online"
// Массив для хранения урона между игроками
new g_player_damage[MAX_PLAYERS + 1][MAX_PLAYERS + 1]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "event_death_msg", "a")
// Регистрируем хам-хуки для учета урона
RegisterHam(Ham_TakeDamage, "player", "ham_take_damage_post", 1)
// Обнуляем урон при подключении
register_event("ResetHUD", "event_reset_hud", "be")
// Регистрируем начало раунда для обнуления урона
register_logevent("event_round_start", 2, "1=Round_Start")
}
public event_reset_hud(id)
{
arrayset(g_player_damage[id], 0, MAX_PLAYERS + 1)
}
public event_round_start()
{
for(new i = 1; i <= MAX_PLAYERS; i++)
{
arrayset(g_player_damage[i], 0, MAX_PLAYERS + 1)
}
}
public ham_take_damage_post(victim, inflictor, attacker, Float:damage, damagebits)
{
if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim)
return HAM_IGNORED
if(attacker < 1 || attacker > MAX_PLAYERS)
return HAM_IGNORED
g_player_damage[attacker][victim] += floatround(damage)
return HAM_IGNORED
}
public event_death_msg()
{
new killer = read_data(1)
new victim = read_data(2)
if(killer == victim || killer == 0)
return
if(!is_user_connected(killer) || !is_user_connected(victim))
return
// Получаем статистику игроков
new killer_stats[8], killer_hits[8], killer_rank
new victim_stats[8], victim_hits[8], victim_rank
killer_rank = get_user_stats_sql(killer, killer_stats, killer_hits)
victim_rank = get_user_stats_sql(victim, victim_stats, victim_hits)
// Получаем урон между игроками
new damage_to_victim = g_player_damage[killer][victim]
new damage_from_killer = g_player_damage[victim][killer]
// Вычисляем эффективность урона
new efficiency_killer, efficiency_victim
new total_damage = damage_to_victim + damage_from_killer
if(total_damage > 0)
{
efficiency_killer = (damage_to_victim * 100) / total_damage
efficiency_victim = (damage_from_killer * 100) / total_damage
}
// Формируем сообщения для чата
new chat_message_victim[128], chat_message_killer[128]
// Сообщение для жертвы
formatex(chat_message_victim, charsmax(chat_message_victim),
"[Stats] Убит! Урон: Вы %d | Вам %d, Эфф. урона: %d%%",
damage_from_killer, damage_to_victim, efficiency_victim)
// Сообщение для убийцы
formatex(chat_message_killer, charsmax(chat_message_killer),
"[Stats] Убийство! Урон: Вы %d | Вам %d, Эфф. урона: %d%% Ранг: Вы %d | Жертва %d",
damage_to_victim, damage_from_killer, efficiency_killer, killer_rank, victim_rank)
// Выводим сообщения в чат
client_print(victim, print_chat, chat_message_victim)
if(is_user_connected(killer) && killer != victim)
{
client_print(killer, print_chat, chat_message_killer)
}
// Обнуляем урон между этими игроками
g_player_damage[killer][victim] = 0
g_player_damage[victim][killer] = 0
}
Сделал плагин хотел еще зум добавить на киллера. Но не знаю как помогите реализовать пожалуйста, если можно конечно.