Jump to content

Minecraft (MCP) Neue Kreatur, fehlende Lösung für Code


Empfohlene Beiträge

Guten Tag zusammen,

Ich bin gerade dabei, einen Mob einzufügen. Dieser Mob soll ein Skorpion sein, und bei "Peaceful" spanwn und auch angreiffen.

Das besondere an diesem Mob ist, das dieser vergiftet und den Trankeffekt "Übelkeit" austeilt. bzw es soll.. Da ich mit JAVA natürlich nicht so erfahren bin, möchte ich hier um Hilfe bitten.

Das Problem ist folgender:

Ich kann diese 2 public booleans nicht in 1ner Datei verwenden..

public boolean attackEntityAsMob(Entity par1Entity)    {        if (super.attackEntityAsMob(par1Entity))        {            if (par1Entity instanceof EntityLiving)            {                byte var2 = 0;                if (this.worldObj.difficultySetting >= 0)                {                    if (this.worldObj.difficultySetting >= 0)                    {                        var2 = 7;                    }                    else if (this.worldObj.difficultySetting >= 0)                    {                        var2 = 15;                    }                }                if (var2 > 0)                {                    ((EntityLiving)par1Entity).addPotionEffect(new PotionEffect(Potion.confusion.id, var2 * 300, 0));                                    }            }            return true;        }        else        {            return false;        }    } 

Und

public boolean attackEntityAsMob(Entity par1Entity)    {        int var2 = this.isTamed() ? 4 : 2;        return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), var2);    }

Hier ist der ganze Code des Scorpions:

package net.minecraft.src;public class EntityScorpion extends EntityTameable{    public EntityScorpion(World par1World)    {        super(par1World);        this.texture = "/mob/scorpion.png";        this.setSize(1.4F, 0.9F);        this.moveSpeed = 0.4F;        this.tasks.addTask(1, new EntityAIAttackOnCollide(this, EntityPlayer.class, this.moveSpeed, true));        this.tasks.addTask(2, new EntityAILeapAtTarget(this, 0.4F));        this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 16.0F, 0, true));        this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, true));        this.targetTasks.addTask(3, new EntityAITargetNonTamed(this, EntityLiving.class, 16.0F, 200, false));    }        public boolean isAIEnabled()    {        return true;    }    public boolean attackEntityAsMob(Entity par1Entity)    {        if (super.attackEntityAsMob(par1Entity))        {            if (par1Entity instanceof EntityLiving)            {                byte var2 = 0;                if (this.worldObj.difficultySetting >= 0)                {                    if (this.worldObj.difficultySetting >= 0)                    {                        var2 = 7;                    }                    else if (this.worldObj.difficultySetting >= 0)                    {                        var2 = 15;                    }                }                if (var2 > 0)                {                    ((EntityLiving)par1Entity).addPotionEffect(new PotionEffect(Potion.confusion.id, var2 * 300, 0));                                    }            }            return true;        }        else        {            return false;        }    }         public boolean attackEntityAsMob(Entity par1Entity)    {        int var2 = this.isTamed() ? 4 : 2;        return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), var2);    }        public int getAttackStrength(Entity par1Entity)    {        return 1;    }    protected int getDropItemId()    {        return Item.redstone.itemID;    }    	public int getMaxHealth() {		return 5;	}	public float spiderScaleAmount() {		return 1.3F;	}	public EntityAgeable createChild(EntityAgeable var1) {		return null;	}	    public void initCreature() {}}

Ich brauche leider beide Codes in einem.. wie mache ich das?

Oder gibt es ne einfache Methode, das 1ner der 2 Codes irgendwo eingefügt werden kann?

PS: Ich arbeite mit Eclipse und OHNE Modloader, was natürlich seine Gründe hat

Gruß, Endless.

bearbeitet von Endless.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie gesagt, ich kenn mich mit Mods zwar nicht aus aber dort wird eine Größe angegeben:

this.setSize(1.4F, 0.9F);
if (par1Entity instanceof EntityLiving){    byte var2 = 0;    if (this.worldObj.difficultySetting >= 0)    {        if (this.worldObj.difficultySetting >= 0)        {             var2 = 7;        }        else if (this.worldObj.difficultySetting >= 0)        {             var2 = 15;        }     }

Warum hast du eig beim Schwierigkeitsgrad überall >= 0? Dann brauchst du if nicht, da der Schwierigkeitsgrad immer über 0 ist, oder?

bearbeitet von Salocin
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab diesen Code von "EntityCaveSpider" und das >= ist für Peaceful oder auch höher.

Die größe hat keinen Einfluss darauf, das sie mich angreifft oder nicht. Und das ist leider das Problem das dort 2 public booleans

sind, für diese Funktion "attackEntityAsMob(Entity par1Entity)" und ich suche nach ner Lösung um die 2 Codes sozusagen zu "vereinen"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B