Изменение AI зомби

Версия Minecraft
1.7.10
10
2
Привет!
Подскажите, как проще всего поменять поведение зомбаков, что бы они могли открывать двери, как мирные жители, а не ломали их.
Спасибо
 
10
2
Я не уточнил в чем сложность - сложность что бы это работало на сервере с модами, ядро клаудрон.
В EntityVillager.java нашел я
Java:
public EntityVillager(World p_i1748_1_, int p_i1748_2_)
...
this.tasks.addTask(4, new EntityAIOpenDoor(this, true));

НО я же не могу ядро майна править :) Вернее могу, только клаудрон проверяет хеш всех классов и сервер не стартует.
Для блока, например, я знаю как поменять параметры - отдельным модом, а вот как для энтити, ума не приложу.
Буду рад любой подсказке
 

tox1cozZ

aka Agravaine
8,455
598
2,892
 
10
2
Спасибо, все получилось :) На всякий случай прикладываю архив исходников.
Java:
Babar.java
package Babar;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.common.MinecraftForge;
import Babar.Zombie;

@Mod(modid = Babar.MODID, name = Babar.NAME, version = Babar.VERSION)
public class Babar {

    public static final String
    MODID = "Babar",
    NAME = "Babar Mod",
    VERSION = "1.0";

    @Mod.Instance(MODID)
    public static Babar instance;

   @EventHandler
   public void init(FMLInitializationEvent event)
   {
      MinecraftForge.EVENT_BUS.register(new Zombie());
   }
}

Zombie.java
package Babar;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.entity.Entity;
import net.minecraft.util.DamageSource;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraft.entity.ai.EntityAIOpenDoor;
import net.minecraft.entity.ai.EntityAIMoveIndoors;
import net.minecraft.entity.ai.EntityAIRestrictOpenDoor;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.monster.EntityZombie;

public class Zombie {
   @SubscribeEvent
   public void onEntityJoiningWorld(EntityJoinWorldEvent event)
   {
      if (event == null || event.entity == null || !(event.entity instanceof EntityZombie))
         return;

      EntityLiving  elb = (EntityLiving) event.entity;
      EntityCreature ec = (EntityCreature) event.entity;

      elb.getNavigator().setBreakDoors(true);

      elb.tasks.addTask(1, new EntityAIMoveIndoors(ec));
      elb.tasks.addTask(1, new EntityAIRestrictOpenDoor(ec));
      elb.tasks.addTask(1, new EntityAIOpenDoor(ec, true));
   }
}
 

Вложения

  • Babar.rar
    51.6 KB · Просмотры: 1
Сверху