- Баллы
- 96
Да не, буду костылить. Если итеракт с одной из пушек в ноу пвп, то до упора вверх уводить камеру игрока.А как он ходить будет?
А вообще синусы косинусы все дела. Питч и вай назначить игроку.
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Да не, буду костылить. Если итеракт с одной из пушек в ноу пвп, то до упора вверх уводить камеру игрока.А как он ходить будет?
А вообще синусы косинусы все дела. Питч и вай назначить игроку.
Ты бы лучше крутил ивенты на 1.7.10, а то так и буете дрочить на динозавре.Да не, буду костылить. Если итеракт с одной из пушек в ноу пвп, то до упора вверх уводить камеру игрока.
орнул, но +1Ты бы лучше крутил ивенты на 1.7.10, а то так и буете дрочить на динозавре.
xD, и для этого время найду)0Ты бы лучше крутил ивенты на 1.7.10, а то так и буете дрочить на динозавре.
String owner = getField(entity.getClass(), entity, "owner");
Угадай что мне ответили.Т.е. мои подозрения верны? Рефлекия при онлайне 80-90 игроков и хрен знает сколько выпущенных пуль в секунду сделает плохо серверу?
А ничего что там объект, а не строка?https://github.com/TheQmaks/ReflectionAPI/blob/master/qmaks/Reflection.java
Код:String owner = getField(entity.getClass(), entity, "owner");
Мож он для примера... кто знаетА ничего что там объект, а не строка?
Ты о чем? О возвращаемом типе? T "подстраивается" под требуемый нам тип.А ничего что там объект, а не строка?
Нет, я дал готовое решение.Мож он для примера... кто знает
Типо специально? Чтоб вызвать еще большее отставание сверкой строки с игроком? Ясно - понятно.Нет, я дал готовое решение.
Я тебя сейчас не совсем понял.Типо специально? Чтоб вызвать еще большее отставание сверкой строки с игроком? Ясно - понятно.
В этом поле сидит следующие: http://joxi.ru/KAx9lykCMbDa7rТы о чем? О возвращаемом типе? T "подстраивается" под требуемый нам тип.
Нет, я дал готовое решение.
А, не заметил тип, сорян.В этом поле сидит следующие: http://joxi.ru/KAx9lykCMbDa7r
Это мод.
Entity owner = getField(entity.getClass(), entity, "owner");
И я знаю, что это мод. Делал под него модификации разные.В этом поле сидит следующие: http://joxi.ru/KAx9lykCMbDa7r
Это мод.
Ок. java.lang.NoSuchFieldException: ownerА, не заметил тип, сорян.
https://github.com/TheQmaks/ReflectionAPI/blob/master/qmaks/Reflection.java
Код:Entity owner = getField(entity.getClass(), entity, "owner");
Profit.
И я знаю, что это мод. Делал под него модификации разные.
@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
Entity entity = event.getDamager();
Entity attacker = getField(entity.getClass(), entity, "owner");
}
Причем тут...Если мы в entity получаем EntityBullet, тогда все профит.Ок. java.lang.NoSuchFieldException: owner
Угадайте, где выскочила ошибка выше? Понимаешь, что в Bukkit Entity нет нужного нам поля, я повторюсь ещё раз, это мод.Java:@EventHandler public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { Entity entity = event.getDamager(); Entity attacker = getField(entity.getClass(), entity, "owner"); }
@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
Entity entity = event.getDamager();
if(entity instanceof EntityBullet) {
Entity attacker = getField(entity.getClass(), entity, "owner");
}
}
А прикол в том, что я стрелял только пулями. Там ничего другого не могло вылезти. Он его не получил.Причем тут...Если мы в entity получаем EntityBullet, тогда все профит.
Java:@EventHandler public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { Entity entity = event.getDamager(); if(entity instanceof EntityBullet) { Entity attacker = getField(entity.getClass(), entity, "owner"); } }
Сам бы уже давно сделал...
Видишь ли, если бы в баките не обрабатывались модовские ентити, то их существование на серверной стороне было бы невозможным.А прикол в том, что я стрелял только пулями. Там ничего другого не могло вылезти. Он его не получил.
Entity entity = event.getDamager(); Тут уже твой игрок.
Вот так кастуй и все.
Если таки ивент срабатывает, те не нужны рефлексии.Java:if(event.getDamager().getType() == EntityType.PLAYER) { Player entity = (Player) event.getDamager(); }
И да, еще на нул getDamager проверяй.
Собстно сама пуля тут event.getEntity();
Entity entity = event.getDamager();
if (entity != null && entity.getType() == EntityType.PLAYER) {
Player pl = (Player) event.getDamager();
Bukkit.broadcastMessage(CHAT_PREFIX + "[Debug] attacker is player");
} else {
Bukkit.broadcastMessage(CHAT_PREFIX + "[Debug] attacker is not player");
}