Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.onlymc.OnlyMZ;
- //import java.lang.reflect.Field;
- //import org.bukkit.craftbukkit.v1_7_R4.util.UnsafeList;
- //import net.minecraft.entity.player.EntityPlayer;//import net.minecraft.server.v1_7_R4.EntityHuman;
- import net.minecraft.entity.monster.EntityZombie;//import net.minecraft.server.v1_7_R4.EntityZombie;
- import net.minecraft.entity.EntityLiving;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.entity.SharedMonsterAttributes;//import net.minecraft.server.v1_7_R4.GenericAttributes;
- //import net.minecraft.entity.ai.EntityAISwimming;//import net.minecraft.server.v1_7_R4.PathfinderGoalFloat;
- //import net.minecraft.entity.ai.EntityAIHurtByTarget;//import net.minecraft.server.v1_7_R4.PathfinderGoalHurtByTarget;
- //import net.minecraft.entity.ai.EntityAIWatchClosest;//import net.minecraft.server.v1_7_R4.PathfinderGoalLookAtPlayer;
- //import net.minecraft.entity.ai.EntityAIAttackOnCollide;//import net.minecraft.server.v1_7_R4.PathfinderGoalMeleeAttack;
- //import net.minecraft.entity.ai.EntityAIMoveThroughVillage;//import net.minecraft.server.v1_7_R4.PathfinderGoalMoveThroughVillage;
- //import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction;//import net.minecraft.server.v1_7_R4.PathfinderGoalMoveTowardsRestriction;
- //import net.minecraft.entity.ai.EntityAINearestAttackableTarget;//import net.minecraft.server.v1_7_R4.PathfinderGoalNearestAttackableTarget;
- //import net.minecraft.entity.ai.EntityAILookIdle;//import net.minecraft.server.v1_7_R4.PathfinderGoalRandomLookaround;
- //import net.minecraft.entity.ai.EntityAIWander;//import net.minecraft.server.v1_7_R4.PathfinderGoalRandomStroll;
- //import net.minecraft.entity.ai.EntityAITasks;//import net.minecraft.server.v1_7_R4.PathfinderGoalSelector;
- import net.minecraft.world.World;//import net.minecraft.server.v1_7_R4.World;
- public class CustomEntityZombie extends EntityZombie {
- public CustomEntityZombie(World world) {
- super(world);
- ((EntityLiving)this).getNavigator().setBreakDoors(false);
- ((EntityLiving)this).getNavigator().setAvoidSun(false);
- ((EntityLiving)this).getNavigator().setCanSwim(true);
- /*try {
- Field bField = EntityAITasks.class.getDeclaredField("b");
- bField.setAccessible(true);
- Field cField = EntityAITasks.class.getDeclaredField("c");
- cField.setAccessible(true);
- bField.set(((EntityLiving)this).tasks, new UnsafeList<EntityAITasks>());//goalSelector - tasks
- bField.set(((EntityLiving)this).targetTasks, new UnsafeList<EntityAITasks>());//targetSelector - targetTasks
- cField.set(((EntityLiving)this).tasks, new UnsafeList<EntityAITasks>());//goalSelector - tasks
- cField.set(((EntityLiving)this).targetTasks, new UnsafeList<EntityAITasks>());//targetSelector - targetTasks
- } catch (Exception exc) {
- exc.printStackTrace();
- }*/
- //a - addTask
- /*((EntityLiving)this).tasks.addTask(0, new EntityAISwimming(this));
- ((EntityLiving)this).tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false));
- //((EntityLiving)this).tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityVillager.class, 1.0D, true));
- ((EntityLiving)this).tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D));
- ((EntityLiving)this).tasks.addTask(6, new EntityAIMoveThroughVillage(this, 1.0D, false));
- ((EntityLiving)this).tasks.addTask(7, new EntityAIWander(this, 1.0D));
- ((EntityLiving)this).tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
- ((EntityLiving)this).tasks.addTask(8, new EntityAILookIdle(this));
- ((EntityLiving)this).tasks.addTask(1, new EntityAIHurtByTarget(this, true));
- ((EntityLiving)this).tasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));
- //((EntityLiving)this).tasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityVillager.class, 0, false));*/
- }
- protected void aD() {
- super.applyEntityAttributes();
- ((EntityLivingBase)this).getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D);
- ((EntityLivingBase)this).getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.39D);// d - movementSpeed, 0.2300000041723251D
- ((EntityLivingBase)this).getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement