Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
Meine Frage: Wie mach ich im EntityDamageByEntityEvent das Spieler die sich in der gleichen ArrayList befiden nicht gegenseitig angreifen können. Und nur Spieler angreifen können die nicht in der gleichen ArrayList oder einer anderen sind?

Angenommen deine Spieler befinden sich in der Arraylist "test"

Code:
@EventHandler
	public void OnDamage(EntityDamageByEntityEvent e) {
		Player p = (Player)e.getEntity();
		Player killer = (Player)e.getDamager();
	 
		if(test.contains(killer.getName())) {
			if(!test.contains(p.getName())) {
			e.setCancelled(true);
		  
			}
		}
	}

Das sollte so eigentlich klappen ;)
 
Angenommen deine Spieler befinden sich in der Arraylist "test"

Code:
@EventHandler
	public void OnDamage(EntityDamageByEntityEvent e) {
		Player p = (Player)e.getEntity();
		Player killer = (Player)e.getDamager();
   
		if(test.contains(killer.getName())) {
			if(!test.contains(p.getName())) {
			e.setCancelled(true);
		
			}
		}
	}

Das sollte so eigentlich klappen ;)


muss nicht es heißen

@EventHandler
public void OnDamage(EntityDamageByEntityEvent e) {
Player p = (Player)e.getEntity();
Player killer = (Player)e.getDamager();

if(test.contains(killer.getName())) {
if(test.contains(p.getName())) { //<-- das ! weg
e.setCancelled(true);

}
}
}
 
muss nicht es heißen

@EventHandler
public void OnDamage(EntityDamageByEntityEvent e) {
Player p = (Player)e.getEntity();
Player killer = (Player)e.getDamager();

if(test.contains(killer.getName())) {
if(test.contains(p.getName())) { //<-- das ! weg
e.setCancelled(true);

}
}
}
Du machst mich grad unsicher, aber es sollte so stimmen.
Das Event soll schliesslich nur auf true gecancelt werden, wenn sich der Spieler nicht in der Arraylist befindet.
 
Ich hätte da noch eine Frage: Wie kan man byts in einen ItemStack benutzen ?
 
muss nicht es heißen

@EventHandler
public void OnDamage(EntityDamageByEntityEvent e) {
Player p = (Player)e.getEntity();
Player killer = (Player)e.getDamager();

if(test.contains(killer.getName())) {
if(test.contains(p.getName())) { //<-- das ! weg
e.setCancelled(true);

}
}
}

Der Code wird Fehler in der Konsole geben, da du nicht abgefragt hast ob p ein Player ist.

------------------

Nun mal eine Frage an @DREAMZii & @geNAZt
Wenn ich eine Leiche programmiere, schwebt diese bei mir immer so blöd leicht über dem Boden (Weil ich ihn sozusagen in ein Bett setzte), wisst ihr wie ich das umgehen kann oder direkt eine alternative?

Danke

Grüße
 
Der Code wird Fehler in der Konsole geben, da du nicht abgefragt hast ob p ein Player ist.

------------------

Nun mal eine Frage an @DREAMZii & @geNAZt
Wenn ich eine Leiche programmiere, schwebt diese bei mir immer so blöd leicht über dem Boden (Weil ich ihn sozusagen in ein Bett setzte), wisst ihr wie ich das umgehen kann oder direkt eine alternative?

Danke

Grüße

Ich bestimme es zum aufnehmen durch den geklickten Block, da beim Flug der Targetblock genommen wird und ich diesen nur 1 Block von der EyeLocation nutze, wird er maximal in Treppen landen können mehr nicht :p
das ist immer noch meine Frage !
Vielleicht kann dir niemand antworten, weil momentan keiner hier ist der das weiß und wenn du unhöflich wirst will dir auch irgendwann keiner mehr antworten.
 
Noch eine Frage: WIe mach ich es wenn ein Spieler auf inem Gold BLock steht das er alle 10 sekunden ein Gold Ingot beckommt?
 
ja so ähnlich ich programmier ein eigenes minigmae ich brauch eigendlich das it em gold gben net ich weil ir das alles mit unserer eigenen währung nehmen
 
Nun mal eine Frage an @DREAMZii & @geNAZt
Wenn ich eine Leiche programmiere, schwebt diese bei mir immer so blöd leicht über dem Boden (Weil ich ihn sozusagen in ein Bett setzte), wisst ihr wie ich das umgehen kann oder direkt eine alternative?

Danke

Grüße

Code:
location.getBlockX() * 32 + (int) (0.5 * 32), location.getBlockY() * 32 + (int) (0.35 * 32), location.getBlockZ() * 32 + (int) (1.5 * 32), (byte) 0,(byte) 0

Das musst du mit den Location-Angaben multiplizieren. (Im Teleportpacket)
 
Hi :)
Ich wollte fragen , da ich es nicht schaffe , wie man es macht , dass wenn man bedrock berührt , dass man zum spawn zurück kommt :)

Danke schon mal :)

(Falls es keiner weiß verlinke ich hier mal jemanden :)

@DREAMZii
@geNAZt
:D
~Trouble ^^
 
Kann mir vielleicht einer von euch Java Experten helfen? Mein Minecraft startet sich nicht mehr ... Launch4j Error -.-
Hatte ich auch.
Ich hab es so behoben:
Bei windows7: Die Minecraft.EXE in Minecraft.JAR umbenennen

Bei windows8: in Google nach der minecraft.jar suchen

-Trouble
 
Hi :)
Ich wollte fragen , da ich es nicht schaffe , wie man es macht , dass wenn man bedrock berührt , dass man zum spawn zurück kommt :)

Danke schon mal :)

(Falls es keiner weiß verlinke ich hier mal jemanden :)

@DREAMZii
@geNAZt
:D
~Trouble ^^


Teste einfach mit dem PlayerMoveEvent, ob der Block auf dem du stehst == Material.Badrock ist.
Falls das so ist, teleportiertst du ihm zum Spawn (oder eben zu der Location ;)).
Ich will dir hier keinen code geben, da du ja auch etwas lernen sollst :).
 
Zuletzt bearbeitet von einem Moderator:
Teste einfach mit dem PlayerMoveEvent, ob der Block Material.Badrock ist.
Falls das so ist, teleportiertst du ihm zum Spawn ;).
Ich will dir hier keinen code geben, da du ja auch etwas lernen sollst :).
Ok ;) ich werde es ml versuchen :D
Vielen Dank [emoji173][emoji173][emoji173][emoji6]
 
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop