Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
@SubscribeEvent
public void EntityAttacks(LivingAttackEvent event){
if(event.source instanceof EntityDamageSource){
EntityDamageSource source = (EntityDamageSource) event.source;
if(event.entity instanceof EntityPlayer && source.getEntity() instanceof EntityPlayer){ // у нас два игрока
EntityPlayer damager = (EntityPlayer) source.getEntity(); // нападающий
EntityPlayer victim = (EntityPlayer) event.entity; // жертва
if(!victim.capabilities.isCreativeMode){return;} // уходим, жертва и так получит по морде
ItemStack weapon = damager.inventory.getCurrentItem(); // оружие в руках нападающего...
EntityPlayer#damageEntity() и поставил бы проверку на DamageSource - если урон исходит от игрока и он держит в руке твой меч - ранить игрока.Год режим это фича Essentials, нет? Тут нужно со стороны плагина будет влазить или делать костылем через setHealth.Доброе утро еще раз. Никогда не имел дел с мечами, сделал самый простой меч, но хотелось бы попробовать сделать меч, пробивающий в гмке и в год режиме. Прошу помочь, кину парочку рубликов на киви :3
можешь код кинуть?)0) пару рублей кинуЯ бы хуканулEntityPlayer#damageEntity()и поставил бы проверку на DamageSource - если урон исходит от игрока и он держит в руке твой меч - ранить игрока.
@SubscribeEvent
public void EntityAttacks(LivingAttackEvent event){
if(event.source instanceof EntityDamageSource){
EntityDamageSource source = (EntityDamageSource) event.source;
if(event.entity instanceof EntityPlayer && source.getEntity() instanceof EntityPlayer){ // у нас два игрока
EntityPlayer damager = (EntityPlayer) source.getEntity(); // нападающий
EntityPlayer victim = (EntityPlayer) event.entity; // жертва
if(!victim.capabilities.isCreativeMode){return;} // уходим, жертва и так получит по морде
ItemStack weapon = damager.inventory.getCurrentItem(); // оружие в руках нападающего
if(weapon.getItem() == YourItems.theBestSwordEver){ // твой меч
float damage = event.ammount; // сколько урона должно было быть
float currenthp = victim.getHealth(); // текущие хп жертвы
float newhp = currenthp - damage; // новые хп
if(newhp > 0){
victim.setHealth(newhp); // нанесли урон
} else {
LivingDeathEvent playerdead = new LivingDeathEvent(victim, source); // убиваем жертву нападающим
}
victim.worldObj.playSoundAtEntity(victim, "mob.blaze.hit", 1.0F, 1.0F); // на месте события издаём звук :)
}
}
}
}
Реально,зачем эти глупости писать , как я понимаю когда игрок в гуд или гм , то ивент урона для них отключен , почему просто не чекать , что его ударили этим мечом** и вызывать смерть.Разве нельзя использовать сетдеад?
Допер, нужно просто ранить, а не убивать сразу)вызывать смерть.
А как ты ранить будешь ? как я понял для них ивент отключена не убивать сразу)
Если сетдеад написать, то я думаю, что не сгенерируется событие "игрок убил игрока", а просто будет написано, что он умер (без причины). В любом случае, если я написал неправильно - отредактируй и напиши, как правильно.Разве нельзя использовать сетдеад?
Или просто чекнуть команду суицид или килл
не сгенерируется событие "игрок убил игрока"
Мы не знаем, какую конечную цель преследовал автор мода. Может, и важно. Раз игрок бьёт мечом другого игрока - значит, важно, чтобы именно он его убил. Собственно, о чём спор? На вкус и цвет все фломастеры разные, я просто высказал свою точку зрения.Разве это важно, кто кого убил с помощью этого меча?)