Event нанесения урона кому либо на клиентской части

Версия Minecraft
1.7.10
API
Forge
31
0
Нужно сделать полностю клиентский мод который будет издавать звук треска (как в расте) при любом наносе урона другому игроку (в основном с flans mod оружия но неважно)
Я чекал ивенты но один то на самого, то он серверный, а с тиками нету идей как сделать.
 

sk9zist :l

Исправился
981
18
157
AttackEntityEvent это другой эвент, это не LivingAttackEvent, потому что AttackEntityEvent срабатывает когда ты бьёшь любого моба/игрока.
Надеюсь ты понял.
 
31
0
AttackEntityEvent это другой эвент, это не LivingAttackEvent, потому что AttackEntityEvent срабатывает когда ты бьёшь любого моба/игрока.
Надеюсь ты понял.
блин, у меня проблема что срабатывает только когда я атакую ударом, луком или пушкой с фланс мода несрабатывает
 

sk9zist :l

Исправился
981
18
157

sk9zist :l

Исправился
981
18
157
ThrowableImpactEventСрабатывает до EntityThrowable, вызывая метод onImpact()
 

sk9zist :l

Исправился
981
18
157
Используй AttackEntityEvent вместе с ThrowableImpactEvent. Как буду дома, напишу тебе небольшой код с ThrowableImpactEvent
Таблица всех доступных событий (почти всех) есть тут:

-----------------------------------------
Вот код:
EventsHandler.java:
@SubscribeEvent
public void onImpact(ThrowableImpactEvent e)
{
    if(e.getEntityThrowable().getThrower() instanceof EntityPlayer)
    {
        // тут воспроизводишь звук
    }
}
Если не хочешь, чтобы звук воспроизводился также и когда другой игрок попадает в кого-то (может даже и в тебя), то можно сделать проверку по твоему нику:
Java:
@SubscribeEvent
public void onImpact(ThrowableImpactEvent e)
{
    if(e.getEntityThrowable().getThrower().getName() == "your nickname")
    {
        // тут воспроизводишь звук
    }
}
 
Последнее редактирование:

sk9zist :l

Исправился
981
18
157

sk9zist :l

Исправился
981
18
157
ну типа хукатся в onImpact что это значит он же не ивент?
Конечно не эвент. Это метод, который вызывается в классе EntityThrowable при попадании в моба.
чучуть понятнее для новичка
Нужно кинуть папку gloomyfolken в src -> main -> java (сюда)
Потом всё по гайду. Когда сделаешь, вот тебе код хука в метод onImpact (стрелы):
Java:
@Hook(injectOnExit = true, returnCondition = ReturnCondition.ALWAYS)
public static void onHit(EntityArrow fb, RayTraceResult raytraceResultIn)
{
    System.out.println("hit!");
}
А вот код хука в метод класса EntityThrowable (тебе придёться сделать два хука, чтобы работало и с пулями, и со стрелами):
Java:
@Hook()
public static void shoot(EntityThrowable thr, double x, double y, double z, float velocity, float inaccuracy)
{
    System.out.println("SHOOT!!");
}
 
Последнее редактирование:

sk9zist :l

Исправился
981
18
157
при урону кому либо (когда ударю например моба)
Он срабатывать будет только когда ты попадаешь в кого-то стрелой, или пулей.
Для того, чтобы работало при атаке, используй эвент AttackEntityEvent.
 

sk9zist :l

Исправился
981
18
157
Пересмотри моё сообщение #34. Ты не то скопировал
 
31
0
Конечно не эвент. Это метод, который вызывается в классе EntityThrowable при попадании в моба.

Нужно кинуть папку gloomyfolken в src -> main -> java (сюда)
Потом всё по гайду. Когда сделаешь, вот тебе код хука в метод onImpact (стрелы):
Java:
@Hook(injectOnExit = true, returnCondition = ReturnCondition.ALWAYS)
public static void onHit(EntityArrow fb, RayTraceResult raytraceResultIn)
{
    System.out.println("hit!");
}
А вот код хука в метод класса EntityThrowable (тебе придёться сделать два хука, чтобы работало и с пулями, и со стрелами):
Java:
@Hook()
public static void shoot(EntityThrowable thr, double x, double y, double z, float velocity, float inaccuracy)
{
    System.out.println("SHOOT!!");
}
а я так и не понял, что значит кинуть хук в метод класа EntityThrowable, я не оч понял что куда кидать, я всё установил но хуки куда-то кидать, я запутался крч
 
Сверху