Ir para conteúdo

NMS - Como deixar um mob congelado


FelipeDye

Posts Recomendados

1 hora atrás, Swagger disse:

void noAI(Entity bukkitEntity) {
    net.minecraft.server.v1_8_R1.Entity nmsEntity = ((CraftEntity) bukkitEntity).getHandle();
    NBTTagCompound tag = nmsEntity.getNBTTag();
    if (tag == null) {
        tag = new NBTTagCompound();
    }
    nmsEntity.c(tag);
    tag.setInt("NoAI", 1);
    nmsEntity.f(tag);
}

fonte: spigotmc

Só falta um recletions pra ficar bom kkkk mas é assim mesmo.

No caso esse ai só vai remover a Inteligencia Artificial do mob, se não me engano ele quer congelar então também teria que tirar a gravidade.

Link para o comentário
Compartilhar em outros sites

Em 05/02/2019 em 11:59, RUSHyoutuber disse:

Só falta um recletions pra ficar bom kkkk mas é assim mesmo.

No caso esse ai só vai remover a Inteligencia Artificial do mob, se não me engano ele quer congelar então também teria que tirar a gravidade.

Não entendi absolutamente nada, poderia me dar um exemplo de como fazer isto? (com código, se for possível)

Link para o comentário
Compartilhar em outros sites

public void freezeEntity(Entity en){
    net.minecraft.server.v1_8_R2.Entity nmsEn = ((CraftEntity) en).getHandle();
    NBTTagCompound compound = new NBTTagCompound();
    nmsEn.c(compound);
    compound.setByte("NoAI", (byte) 1);
    nmsEn.f(compound);
}
public void unfreezeEntity(Entity en){
    net.minecraft.server.v1_8_R2.Entity nmsEn = ((CraftEntity) en).getHandle();
    NBTTagCompound compound = new NBTTagCompound();
    nmsEn.c(compound);
    compound.setByte("NoAI", (byte) 0);
    nmsEn.f(compound);
}

e @RUSHyoutuber ele já tira a gravidade, ele fica imóvel.

Link para o comentário
Compartilhar em outros sites

Packers, acho que você deveria estudar um pouco mais de Java/Bukkit para poder entender esses métodos, não diria avançados, mas também não são tão básicos assim.

Pelo o que entendi você tenta programar em cima de algo pronto.

assim como fez roubando minha source (SlasherAPI) e colocando seu nome

Esses métodos supracitado você pode usar no evento de Spawn de monstros, verifica se a causa são spawners (caso somente os mobs de mobspawners sejam paralisados) e usa este método para congela-los.

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

5 horas atrás, SlayerFear disse:

public void freezeEntity(Entity en){
    net.minecraft.server.v1_8_R2.Entity nmsEn = ((CraftEntity) en).getHandle();
    NBTTagCompound compound = new NBTTagCompound();
    nmsEn.c(compound);
    compound.setByte("NoAI", (byte) 1);
    nmsEn.f(compound);
}
public void unfreezeEntity(Entity en){
    net.minecraft.server.v1_8_R2.Entity nmsEn = ((CraftEntity) en).getHandle();
    NBTTagCompound compound = new NBTTagCompound();
    nmsEn.c(compound);
    compound.setByte("NoAI", (byte) 0);
    nmsEn.f(compound);
}

e @RUSHyoutuber ele já tira a gravidade, ele fica imóvel.

não sabia que tirando a AI já tira a gravity também, nunca trabalhei com isso na real bom saber

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem está navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...