Ir para conteúdo

NMS - Como deixar um mob congelado


FelipeDye

Posts Recomendados

Alguém ai poderia me ajudar? Como uso "NMS" para deixar um mob congelado? 

Pesquisei várias formas de deixar um mob congelado no google, e uma delas encontrei essa tal de "nms" porém não consegui entender muito bem os tutoriais ? 

Se alguém puder ajudar, serei grato.

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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.
×
×
  • Criar Novo...