Ir para conteúdo
  • 0

[Resolvido] Problema com uns codigos


Guest sreduardo

Pergunta

Location loc = new Location(Bukkit.getWorld("world"),28.54099D, 96.000D, 28.36401D);

 

CraftSkeleton z = (CraftSkeleton) Bukkit.getWorld("world").spawnEntity(loc,EntityType.SKELETON);

CraftSkeleton cz = (CraftSkeleton)z;

cz.getHandle().getAttributeInstance(GenericAttributes.c).setValue(Double.MAX_VALUE);

cz.getHandle().getAttributeInstance(GenericAttributes.d).setValue(0);

 

cz.setCustomName("Treta");

cz.setCustomNameVisible(true);

 

Ele spawna tudo certo ele nao se move mais quando chega perto sim 

 

 

(Minecraft) Esse codigo seria para fazer spawnar um mob e ele ficar parado alguem ajuda
Editado por sreduardo
Link para o comentário
Compartilhar em outros sites

25 respostass a esta questão

Posts Recomendados

Ta empurrando ainda!

 

Utilize a API do protocolLib

 

 

	 private ProtocolManager protocolManager;
	 private WrappedDataWatcher ghastWatcher;
	 public void sendPacket(Player p, Location loc, EntityType et) {
		 protocolManager = ProtocolLibrary.getProtocolManager();
		   ghastWatcher = getDefaultWatcher(loc.getWorld(),et);
		 
		 		PacketContainer newPacket = new PacketContainer(24);
	        	newPacket.getIntegers().
	            write(0, 500).
	            write(1, (int) et.getTypeId()).
	            write(2, (int) (p.getLocation().getX() * 32)).
	            write(3, (int) (p.getLocation().getY() * 32)).
	            write(4, (int) (p.getLocation().getZ() * 32));
	        
	        	newPacket.getDataWatcherModifier().
	            write(0, ghastWatcher);
	        
	        try {
	            ProtocolLibrary.getProtocolManager().sendServerPacket(p, newPacket);
	        } catch (InvocationTargetException e) {
	            e.printStackTrace();
	        }
	    }
	
	
	 public WrappedDataWatcher getDefaultWatcher(World world, EntityType type) {
	        Entity entity = world.spawnEntity(new Location(world, 0, 256, 0), type);
	        WrappedDataWatcher watcher = WrappedDataWatcher.getEntityWatcher(entity).deepClone();
	        
	        entity.remove();
	        return watcher;
	    }

Se não der assim percorre por todos player on da send packet ( ai se cria um metodo só para o packet )

Link para o comentário
Compartilhar em outros sites

Eu sei disso ele nao se move mas quando eu passo por cima dele ele se move não queria isso

 

o atacar eu sei fazer..

Editado por sreduardo
Link para o comentário
Compartilhar em outros sites

Não entendi pode ser mais especifico ?

 

Use isto:

 

 

public void setEntityNoAI(Entity entity, boolean NoAI) {
    net.minecraft.server.v1_8_R3.Entity NMSEntity = ((CraftEntity) entity).getHandle();
    NBTTagCompound nbt = new NBTTagCompound();
    NMSEntity.c(nbt);
    nbt.setBoolean("NoAI", NoAI);
    EntityLiving eLiving = (EntityLiving) NMSEntity;
    eLiving.a(nbt);
}
Editado por md5
Link para o comentário
Compartilhar em outros sites

 

Use isto:

public void setEntityNoAI(Entity entity, boolean NoAI) {
    net.minecraft.server.v1_8_R3.Entity NMSEntity = ((CraftEntity) entity).getHandle();
    NBTTagCompound nbt = new NBTTagCompound();
    NMSEntity.c(nbt);
    nbt.setBoolean("NoAI", NoAI);
    EntityLiving eLiving = (EntityLiving) NMSEntity;
    eLiving.a(nbt);
}

 

Ta dai eu coloco na class registro ela na onEnable eai

Link para o comentário
Compartilhar em outros sites

PELO AMOR DE DEUS, VOCÊ NÃO SABE FAZER NADA SOZINHO?

 

é só colocar setEntityNoAI(z, TRUE);

 

DEPOIS QUE CRIA A ENTIDADE

 

Mesmo eu fazendo isso eu passo perto do mob e ele se move 

Link para o comentário
Compartilhar em outros sites

Já que ele se move ao aproximar-se, tente usar o Spigot 1.8.8 (caso esteja usando ProtocolHack ou 1.8-).

 

Preciso para 1.7 

 

Estou usando spigot 1.7.9 

Editado por sreduardo
Link para o comentário
Compartilhar em outros sites

public static void setInvulnerable(Entity ent){

try {

 

Method getHandle = getCraftClass("entity.CraftEntity").getMethod("getHandle");

Constructor<?> nbttag = getMCClass("NBTTagCompound").getConstructor();

Method e = getMCClass("Entity").getMethod("e", getMCClass("NBTTagCompound"));

Method f = getMCClass("Entity").getMethod("f", getMCClass("NBTTagCompound"));

Method setBoolean = getMCClass("NBTTagCompound").getMethod("setBoolean", String.class, boolean.class);

 

Object nms_entity = getHandle.invoke(ent);

Object nms_tag = nbttag.newInstance();

e.invoke(nms_entity, nms_tag);

setBoolean.invoke(nms_tag, "Invulnerable", true);

setBoolean.invoke(nms_tag, "Silent", true);

setBoolean.invoke(nms_tag, "NoAI", true);

f.invoke(nms_entity, nms_tag);

} catch (Exception e){

e.printStackTrace();

}

}

 

private static Class<?> getMCClass(String name) throws ClassNotFoundException {

String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3] + ".";

String className = "net.minecraft.server." + version + name;

return Class.forName(className);

}

 

private static Class<?> getCraftClass(String name) throws ClassNotFoundException {

String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3] + ".";

String className = "org.bukkit.craftbukkit." + version + name;

return Class.forName(className);

}

 

 

 

METODO 

setInvulnerable(ENTIDADE);

Link para o comentário
Compartilhar em outros sites

 

public static void setInvulnerable(Entity ent){
try {
 
Method getHandle = getCraftClass("entity.CraftEntity").getMethod("getHandle");
Constructor<?> nbttag = getMCClass("NBTTagCompound").getConstructor();
Method e = getMCClass("Entity").getMethod("e", getMCClass("NBTTagCompound"));
Method f = getMCClass("Entity").getMethod("f", getMCClass("NBTTagCompound"));
Method setBoolean = getMCClass("NBTTagCompound").getMethod("setBoolean", String.class, boolean.class);
 
Object nms_entity = getHandle.invoke(ent);
Object nms_tag = nbttag.newInstance();
e.invoke(nms_entity, nms_tag);
setBoolean.invoke(nms_tag, "Invulnerable", true);
setBoolean.invoke(nms_tag, "Silent", true);
setBoolean.invoke(nms_tag, "NoAI", true);
f.invoke(nms_entity, nms_tag);
} catch (Exception e){
e.printStackTrace();
}
}
 
private static Class<?> getMCClass(String name) throws ClassNotFoundException {
String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3] + ".";
String className = "net.minecraft.server." + version + name;
return Class.forName(className);
}
 
private static Class<?> getCraftClass(String name) throws ClassNotFoundException {
String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3] + ".";
String className = "org.bukkit.craftbukkit." + version + name;
return Class.forName(className);
}
 
 
 
METODO 
setInvulnerable(ENTIDADE);

 

 

 

Ta empurrando ainda!

Link para o comentário
Compartilhar em outros sites

<p style="text-align:center;"><img alt="logo-forum.png" src="http://www.gamersboard.com.br/logo-forum.png"/></p><br /></br><br /></br><br />Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.</br><br /></br><br /></br><br />Atenciosamente,</br><br />Gamer's Board</br>

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...