Z
Hier meine Damen und Herren sehen sie, was Copy & Paste bewirkt.ich wollte einen steuerbare mob jedoch gibt es die rot markierten variablen nicht bzw. dort ist ein fehler. kann mir jemand dabei helfen danke?
ich weiß auch nicht wie die variablen nun heißen@Override
public void g(float sideMot, float forMot) {
if(this.passenger != null && this.passenger instanceof EntityHuman) {
this.lastYaw = this.yaw = this.passenger.yaw;
this.pitch = this.passenger.pitch * 0.5F;
this.setYawPitch(this.yaw, this.pitch);//Update the pitch and yaw
this.aI = this.aG = this.yaw;
sideMot = ((EntityLiving)this.passenger).aX * 0.5F;
forMot = ((EntityLiving)this.passenger).aY;
if(forMot <= 0.0F) {
forMot *= 0.25F;// Make backwards slower
}
Field jump = null; //Jumping
try{jump = EntityLiving.class.getDeclaredField("aW");}
catch(NoSuchFieldException ex){ex.printStackTrace();}
catch(SecurityException ex){ex.printStackTrace(); }
jump.setAccessible(true);
if (jump != null && this.onGround) { // Wouldn't want it jumping while on the ground would we?
try {
if (jump.getBoolean(this.passenger)) {
double jumpHeight = 0.5D;//Here you can set the jumpHeight
this.motY = jumpHeight; // Used all the time in NMS for entity jumping
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
this.S = 1.0F;// The custom entity will now automatically climb up 1 high blocks
this.aK = this.bH() * 0.1F;
if(!this.world.isStatic) {
this.j(0.35F);//Here is the speed the entity will walk.
super.g(sideMot, forMot);
}
this.ay = this.az;//Some extra things
double d0 = this.locX - this.lastX;
double d1 = this.locZ - this.lastZ;
float f4 = MathHelper.sqrt(d0 * d0 + d1 * d1) * 4.0F;
if(f4 > 1.0F) {
f4 = 1.0F;
}
this.az += (f4 - this.az) * 0.4F;
this.aA += this.az;
} else {
this.S = 0.5F;
this.aK = 0.02F;
super.g(sideMot, forMot);
}
}
Hier meine Damen und Herren sehen sie, was Copy & Paste bewirkt.
Ende.
bist du schlau woher soll ich denn die neuen variabel namen wissen??? nicht nachgedacht??Hier meine Damen und Herren sehen sie, was Copy & Paste bewirkt.
Ende.
Ok, das hilft mir jetzt weiter (nicht)bist du schlau woher soll ich denn die neuen variabel namen wissen??? nicht nachgedacht??
Ich finde die Rot markierten Variablen nicht über ihrer Verwendung...ich wollte einen steuerbare mob jedoch gibt es die rot markierten variablen nicht bzw. dort ist ein fehler. kann mir jemand dabei helfen danke?
ich weiß auch nicht wie die variablen nun heißen@Override
public void g(float sideMot, float forMot) {
if(this.passenger != null && this.passenger instanceof EntityHuman) {
this.lastYaw = this.yaw = this.passenger.yaw;
this.pitch = this.passenger.pitch * 0.5F;
this.setYawPitch(this.yaw, this.pitch);//Update the pitch and yaw
this.aI = this.aG = this.yaw;
sideMot = ((EntityLiving)this.passenger).aX * 0.5F;
forMot = ((EntityLiving)this.passenger).aY;
if(forMot <= 0.0F) {
forMot *= 0.25F;// Make backwards slower
}
Field jump = null; //Jumping
try{jump = EntityLiving.class.getDeclaredField("aW");}
catch(NoSuchFieldException ex){ex.printStackTrace();}
catch(SecurityException ex){ex.printStackTrace(); }
jump.setAccessible(true);
if (jump != null && this.onGround) { // Wouldn't want it jumping while on the ground would we?
try {
if (jump.getBoolean(this.passenger)) {
double jumpHeight = 0.5D;//Here you can set the jumpHeight
this.motY = jumpHeight; // Used all the time in NMS for entity jumping
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
this.S = 1.0F;// The custom entity will now automatically climb up 1 high blocks
this.aK = this.bH() * 0.1F;
if(!this.world.isStatic) {
this.j(0.35F);//Here is the speed the entity will walk.
super.g(sideMot, forMot);
}
this.ay = this.az;//Some extra things
double d0 = this.locX - this.lastX;
double d1 = this.locZ - this.lastZ;
float f4 = MathHelper.sqrt(d0 * d0 + d1 * d1) * 4.0F;
if(f4 > 1.0F) {
f4 = 1.0F;
}
this.az += (f4 - this.az) * 0.4F;
this.aA += this.az;
} else {
this.S = 0.5F;
this.aK = 0.02F;
super.g(sideMot, forMot);
}
}
Hey,
ich brauche ein bisschen Hilfe. Ich bin gerade dabei einen Mod mit Hilfe von Forge zu programmieren.
Meine Frage: Wie bekommt man den Block, welcher sich an gegebenen Koordinaten befindet? Ich möchte überprüfen, ob der Block unter einem Spieler ein Air Block ist.
Danke für eure Antworten.
MfG
BlackEagle
if (entityPlayer.worldObj.blockExists(x, y, z)) { ... }
Da du die Koordinaten des Spielers besitzt, nehme ich mal an, du hast auch die Instanz des Spieler selbst. Die Klasse Entity besitzt auch ein Feld worldObj des Typen World. (Ein EntityPlayer ist natürlich auch eine Entity, da EntityPlayer von LivingEntity und LivingEntity von Entity erbt, glaube ich.) Und der Typ World hat dann sehr viele nützliche Methoden zum Abfragen der Blöcke. Für dein Beispiel genügt wahrscheinlich sogar die Methode blockExists(int, int, int), aber natürlich kannst du auch getBlock(int, int, int) benutzten.
Wenn also x, y und z deine Koordinaten sind und entityPlayer halt dein Spieler, dann sollte das hier funktionieren:
Code:if (entityPlayer.worldObj.blockExists(x, y, z)) { ... }
Nebenbei, ich habe selber noch nie mit Forge gearbeitet (nur Bukkit und so), und das alles in 10 Minuten Recherche herausgefunden. In diesem Artikel (google: minecraft forge get block at coordinates) habe ich gesehen, dass ohne weiteres auf worldObj zugegriffen werden konnte und in den Forge Javadocs habe ich dann die Annahme bestätigt (siehe EntityPlayer und World, google: forge javadocs). Ich möchte dich nicht angreifen, sondern lediglich darauf hinweisen, dass es bei einem solchem unspezifischem Problem meist nicht schwer ist die Lösung im Internet zu finden, da entweder schon jemand das Problem hatte und irgendwo gefragt hat oder die Dokumentation der API genügend Infos zur Verfügung stellt.
Auch interessant ist whathaveyoutried.com, wenn du dich nicht scheust einen etwas längeren englischen Text zu lesen, unbedingt lesen! Der Artikel ist es meiner Meinung nach wirklich wert, auch für die Zukunft.
Mit freundlichen Grüßen
1Darco1
PS: Du fragst warum ich das recherchiert hab? Wahrscheinlich, weil ich morgen eine Klausur schreibe und mich davon ablenken will, dass ich eigentlich lernen sollte... ^^
Minecraft.getMinecraft().thePlayer.setSneaking(true);
Hey,
Zunächst danke, dass du dich meinem Problem gewidmet hast, jedoch muss ich dazu sagen, dass ich natürlich zuerst mithilfe der Suchmaschine von Google recherchiert habe. Das Problem dabei ist nur, dass die meisten Beiträge veraltet sind und nicht mehr für die 1.8 funktionieren. So funktioniert auch das, was du mir geschrieben hast, nicht mehr. Dennoch habe ich es jetzt nun auch selbst lösen können. (...)
Hey,
Zunächst danke, dass du dich meinem Problem gewidmet hast, jedoch muss ich dazu sagen, dass ich natürlich zuerst mithilfe der Suchmaschine von Google recherchiert habe. Das Problem dabei ist nur, dass die meisten Beiträge veraltet sind und nicht mehr für die 1.8 funktionieren. So funktioniert auch das, was du mir geschrieben hast, nicht mehr. Dennoch habe ich es jetzt nun auch selbst lösen können.
Jedoch stehe ich wieder vor einem neuen Problem...:
Ich möchte, dass mein Mod den eigenen Spieler automatisch auf "Sneaking", wenn eine Bedingung erfüllt wurde.
Dies sollte eigentlich funktionieren, oder?
Aber bei mir funktioniert dies nicht. Wenn ich jedoch Sprinten will geht dies, nur dass ich dann setSprinting(true) aufrufe.Code:Minecraft.getMinecraft().thePlayer.setSneaking(true);
Falls jemand eine Lösung dafür findet, bin ich sehr dankbar.
MfG
BlackEagle
KeyBinding.setKeyBindState( Minecraft.getMinecraft().gameSettings.keyBindSneak.getKeyCode(), true );
Damit simulierst du, dass die Sneak Taste gedrückt ist. (Dürfte immer funktionieren)PHP:KeyBinding.setKeyBindState( Minecraft.getMinecraft().gameSettings.keyBindSneak.getKeyCode(), true );
Hey leute ich habe zwei Fragen an die IntelliJ leute. Bei eclipse ist es so, wenn man Strg Shift O drückt dass die nicht verwendenen imports weggeht, das gelb angestrichen ist.
sprich strg shift o macht, dass man die fehlenden imports importiert und die die nicht verwendenen entfernt.
wie ist das bei intellij so? Bei mir importiert das schon, allerdings ist das so, dass ich die nicht verwendenen imports manuell entfernen muss und das ist nervig, wenn man viele hat..
meine zweite frage wäre ob es möglich ist auf einem workspace mehrere projekte zu erstellen!? bei mir ist es nämlich so, dass ich für jedes plugin ein neues workspace einrichten muss.
erstelle ich ein zweites projekt, wird bei mir kein src/** und out/** oder generell nichts generiert..
ich würde mich freuen wenn ihr antworten würdet.. dankeschön!
Bei IntelliJ gibt es auch die Möglichkeit, dass nicht verwendete imports automatisch entfernt werden. Diese Funktion wird bei Settings/Editor/Auto Import mit einem Häkchen bei "Optimize imports on the fly" aktiviert.Hey leute ich habe zwei Fragen an die IntelliJ leute. Bei eclipse ist es so, wenn man Strg Shift O drückt dass die nicht verwendenen imports weggeht, das gelb angestrichen ist.
sprich strg shift o macht, dass man die fehlenden imports importiert und die die nicht verwendenen entfernt.
wie ist das bei intellij so? Bei mir importiert das schon, allerdings ist das so, dass ich die nicht verwendenen imports manuell entfernen muss und das ist nervig, wenn man viele hat..
Klar gibt es das wie bei Eclipse, dass man mehrere Projekte simultan offen haben kann, nennt sich ModuleBei IntelliJ kannst du nicht gebrauchte imports mit "Strg + Alt + O" entfernen oder "ToolBar -> Code -> Optimize Imports" und Nicht Importierte imports mit "Strg + Alt + B" importieren oder "Navigate -> Implementatnion(s)"
Ich weis nicht ganz wie du das meinst wen du das so meinst:
![]()
Dan kommt das hier dem am nächsten.
File -> Close Project
![]()
So wie bei Eclipse gibt es dass meines Wissens jedoch nicht in IntelliJ.
Doch, das ist durchaus auch per Tastenkombination möglich. Ich glaube das war STRG + UMSCHALT + O. Genau weiß ich das nicht , ich mache es immer nach Gefühl ^^Bei IntelliJ kannst du nicht gebrauchte imports mit "Strg + Alt + O" entfernen oder "ToolBar -> Code -> Optimize Imports"
Nicht importiert gibt es bei IntelliJ an sich nicht. Produzierst du Code , aktiviert sich die Autovervollständigung sofort, und denkt mit, wodurch sie auch importiert. Selbst wenn man mal nicht importiert , bzw. den Code selber ausschreibt, wird man aufgefordert ALT + Enter zu drücken, und den import auszuwählen. Beim Kopieren von Code wird zusätzlich ein Fenster zum Auswählen der Imports geöffnet.und Nicht Importierte imports mit "Strg + Alt + B" importieren oder "Navigate -> Implementatnion(s)"
Ich weis nicht ganz wie du das meinst wen du das so meinst:
![]()
Dan kommt das hier dem am nächsten.
File -> Close Project
![]()
So wie bei Eclipse gibt es dass meines Wissens jedoch nicht in IntelliJ.