Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Написание сообщения тому в кого попали.
Karandachik Дата: Суббота, 05.01.2019, 09:29:51 | Сообщение # 1
Сообщений: 60
Репутация: 3 [ +/- ]
Привет, в новом 2019 году. Всех поздравляю с этим событием и желаю всего самого приятного и лучшего в новом году. Что бы все сбывалось и не было не решенных проблем! happy
А теперь по теме:
я нашла код в интернете
Код

#include <sourcemod>

public OnPluginStart()
{
HookEvent("player_hurt", Event_PlayerHurt);
}

public Event_PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
{
new victim = GetClientOfUserId(GetEventInt(event, "userid"));
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));

if (0 < victim <= MaxClients && 0 < attacker <= MaxClients)
{
if (victim == attacker)
{
PrintToChatAll("\"%N\" suicided.", victim);
}
else
{
PrintToChatAll("\"%N\" was killed by \"%N\".", victim, attacker);
}
}
}  


и задумала сделать плагин похожий на Show Damage, только что бы сообщение выводилось тому в кого попала, а не по другому.
Помогите понять, как сделать вывод сообщения в чате тому в кого попали?
Хотелось бы узнать, можно ли как то отследить куда попали (голова,шея,живот и так далее)
Если по простому, то я хочу что бы игроку в которого попали и причинили урон написало в чате:
В вас попал "такой то" повреждение "правая нога" снес "столько то ХП"
Прошу помогите, я не могу сама понять, как все это правильно написать?
 
_wS_ Дата: Суббота, 05.01.2019, 10:41:41 | Сообщение # 2
Код
#define HITGROUP_GENERIC    0
#define HITGROUP_HEAD  1
#define HITGROUP_CHEST  2
#define HITGROUP_STOMACH    3
#define HITGROUP_LEFTARM    4    
#define HITGROUP_RIGHTARM    5
#define HITGROUP_LEFTLEG    6
#define HITGROUP_RIGHTLEG    7
#define HITGROUP_GEAR  10   // alerts NPC, but doesn't do damage or bleed (1/100th damage)

public Event_PlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
{
    static String:s[128];
    static String:nick[32];

    new victim = GetClientOfUserId(GetEventInt(event, "userid"));
    new flags = GetUserFlagBits(victim);

    if (!(flags & ADMFLAG_BAN) && !(flags & ADMFLAG_ROOT)) {
        return;
    }
    
    switch (GetEventInt(event, "hitgroup"))
    {
        case HITGROUP_GENERIC: s = "общий ущерб?";
        case HITGROUP_HEAD: s = "голова";
        case HITGROUP_CHEST: s = "грудь";
        case HITGROUP_STOMACH: s = "живот";
        case HITGROUP_LEFTARM: s = "левая рука";
        case HITGROUP_RIGHTARM: s = "правая рука";
        case HITGROUP_LEFTLEG: s = "левая нога";
        case HITGROUP_RIGHTLEG: s = "правая нога";
        case HITGROUP_GEAR: s = "попали по оружию в руках?";
        default: s = "неизвестно";
    }
    
    new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
    if (attacker < 1 || !GetClientName(attacker, nick, sizeof(nick)))
        strcopy(nick, sizeof(nick), "unknown");
    
    PrintToChat(victim,
        "В вас попал \"%s\" повреждение \"%s\" снес \"%d ХП\"",
            nick, s, GetEventInt(event, "dmg_health"));
}
 
Karandachik Дата: Суббота, 05.01.2019, 11:32:51 | Сообщение # 3
Сообщений: 60
Репутация: 3 [ +/- ]
_wS_, Какой вы молодец, спасибо. Легко и просто, а главное так мало кода. Я думала там будет строк на 300 xaxa

Добавлено (29.03.2020, 11:23:12)
---------------------------------------------
_wS_, Подскажите, как можно сделать, что бы писало не всем игрокам а только моим админам.

 
_wS_ Дата: Понедельник, 30.03.2020, 14:00:11 | Сообщение # 4
updated
 
  • Страница 1 из 1
  • 1
Поиск: