You are not logged in.

  • Login

[Bukkit-Plugin] Kill Entity in world

Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Mathis_333

User / Kunde

  • "Mathis_333" started this thread

Posts: 215

  • Send private message

1

Monday, November 17th 2014, 10:00pm

Kill Entity in world

Hay ich habe mal eine Frage.

Wie Kille ich Mobs nur ein Bestimmtes Entity in einer Bestimmten Welt ?

z.b Bei OnEnable Trage ich ein KillMob(); Und jedes mal wenn das Plugin Aktiviert wird Wird nur der Villager in einer Bestimmten Map gekillt.

Hat da jemand eine ahnung ?

ciaxx

User / Kunde

  • "ciaxx" is male

Posts: 346

Occupation: Schüler

  • Send private message

2

Monday, November 17th 2014, 10:05pm

Du könntest mit getWorld().getEntitys() die Entitys einer Welt auslesen und dann fragst du in einer for-Schleife (Da du eine Liste bekommst) ab ob das Entity ein Villager ist und wenn ja setzt du sein Leben auf 0.

PS: Nur eine Teorie :)

Gebauer_01

User / Kunde

Posts: 2,304

  • Send private message

3

Monday, November 17th 2014, 10:05pm

for(int i =0; i < world.getEntities(); i++){
Entity e = world.getEntities().get(i);
if(überprüfe ob die entity eine bestimmte ist){
e.setHealth(0.0);
}
}

Mathis_333

User / Kunde

  • "Mathis_333" started this thread

Posts: 215

  • Send private message

4

Monday, November 17th 2014, 10:24pm

So : :)
public void killmob() {

for(int i =0; i < getWorld().getEntities(); i++){
Entity e = getWorld().getEntities().get(i);
if(EntityType.VILLAGER != null){
e.setHealth(0.0);
}
}

Anno35

User / Kunde

Posts: 1,223

Thanks: 3

  • Send private message

5

Monday, November 17th 2014, 10:30pm

Ich finde eine for-each Schleife bei solchen Dingen besser.

Java source code

1
2
3
4
5
for(Entity e : getWorld().getEntities()) {
if(e instanceof Villager) {
e.remove();
}
}

Mathis_333

User / Kunde

  • "Mathis_333" started this thread

Posts: 215

  • Send private message

6

Monday, November 17th 2014, 10:32pm

Danke :)

Gebauer_01

User / Kunde

Posts: 2,304

  • Send private message

7

Monday, November 17th 2014, 10:47pm

Du musst aber eine Schleife mit einer Zahl nehmen, weil du sonst während du eine Liste durch gehst, ein Objekt änderst und wenn du das machst kommt eine exeption.

BtoBastian

Moderator

  • "BtoBastian" is male

Posts: 3,612

Occupation: Softwareentwickler

  • Send private message

8

Tuesday, November 18th 2014, 6:57am

Du musst aber eine Schleife mit einer Zahl nehmen, weil du sonst während du eine Liste durch gehst, ein Objekt änderst und wenn du das machst kommt eine exeption.

Schwachsinn.
Eine for-each Schleife arbeitet intern auch mit einer Zahl. Die sind vom Prinzip her identisch.
Was du meinst ist ein Iterator.
Standard Standart eines Flamingos ist einbeinig.

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net