Mobspawning auf eigenen Chunks

Natürlich haben auch wir unsere Datenschutzerklärung der DSGVO angepasst. Einen link zu unserer neuen Datenschutzerklärung findest du hier: Datenschutzerklärung
Sobald du dieses Fenster wegklickst gehen wir davon aus das du mit unserer neuen Datenschutzerklärung zufrieden bist. Du kannst deine Persönlichen daten abfragen unter diesen Link

Dein Dicecraft.de Team
  • Hey ho, was würdet ihr davon halten wenn es eine neue Option im Chunkmanager geben würde, mit der man naturelles Mobspawning (friedlich u. feindlich) aktivieren/deaktivieren könnte?

    Desweiteren sollte das Spawning darauf beschränkt sein, dass die Mobs nur Spawnen wenn der Besitzer des Chunks dort ist, nicht durch andere Spieler.


    Und noch ein vorschlag: Wie währen mehr Chunkwelten, welche man sich freikaufen muss. z.B. ein Nether in dem man Chunks claimen kann wie in der Spawnwelt, oder ein End, oder vllt was ganz anderes


    Würd mich über konstruktive Unterstützung oder gut Begründete Ablehnung von euch Freuen,

    LG Tom

  • Ein grundsätzliches Mobspawnen finde ich nicht gut. Da es nur zu Problem führen "kann" mit der Performance. Außerdem finde ich es ziemlich unprofessionell wenn die ganzen Mobs die Straßen sowie den Spawn.


    Das mit den verschiedenen Chunkwelten ist an sich ne gute Idee wir haben da was anderes geplant kommt aber erst zur 1.13 evtl

  • Ich finde die Idee mit dem Mobspawning gar keine schlechte Idee.

    Meine Einfälle, wie man dies umsetzen könnte:

    - via manage als neuer Eintrag "Mobspawning An/Aus"

    - Sobald der Spieler, dem das GS gehört, nicht mehr da ist (off, afk oder GS verlassen), so werden unmittelbar alle vorhandenen Mobs dort getötet


    Bezüglich des Problems "GS-Verlassen" habe ich folgende Alternative Ideen:

    a) Beim Wandern auf fremde Chunks, können die Mobs direkt vom System getötet werden

    b) Mobs wird das Laufen auf fremde Chunks gleich gar verwährt

    c) Das natürliche Spawning wird erst für Höhe 40 und darunter aktiviert

    Ich für meinen Teil denke, dass Möglichkeit a oder b an dieser Stelle noch die effizienteste wäre, da so auch die Mobs von MobSpawner nicht mehr das GS verlassen könnten.


    Um die Performance mache ich mir in weniger Gedanken, da mit meinen Ideen technisch sichergestellt ist, dass Mobs nicht unnötig spawnen und der Spieler nach wie vor immer noch selbst in der Hand hat, ob das natürliche Spawning überhaupt aktiv ist.


    Ich denke, um wirklich herauszufinden, ob die Performance derartig leiden sollte, ist es das einfachste dies mal auszuprobieren.

    Sind dann Laggs festzustellen, die eindeutig dem Mobspawning zuzuordnen sind, so kann man diese Funktion immer noch abschalten oder zusätzlich überarbeiten.

  • da es nicht möglich ist auf ein Bewegungs Event zuzugreifen müsste man "neue" Mobs auf der Basis alter Mobs einprogrammieren. Dabei müsste man eine fake Event erstellen was bei jeder Mob Bewegung getriggert wird. Da es zu viele Mobs geben würde da jede Welt berücksichtigt werden muss. Wäre dies ein extrem hoher Rechen Aufwand.

  • Dann noch eine weitere Idee, die ich hier hätte, die nicht voraussetzt, ein neues Event zu implementieren.

    Ein neuer Block, a la Barriere, welche jedoch von Spielern durchdringbar ist, von Mobs aber nicht.

    Hier könnte man sich dann evtl. ins Movement vom Player sich einhängen - wäre es in diese Richtung möglich? Weiß leider nicht, wie der Minecraft-Code aussieht, hab ich noch nie reingesehen


    Wenn das so klappt, bräuchte es ja nur noch nen kleinen Batch, der an die Grenzen der Server/Event Chunks, welche an freie/Spieler-Chunks angrenzen, zwei Blöcke hohe Barrieren-Mauern zieht.

  • Die einfachste Lösung wäre mit dem CreatureSpawnEvent zu arbeiten. Dieser gibt als Übergabewert ein Objekt von LivingEntity mit. In LivingEntity gibt es die Methode auf die Location zuzugreifen. Beim direkten Spawnen wird dann festgehalten, dass dieses LivingEntity auf dem Grundstück von Spieler XY gespawnt ist. Nun müssen bei den gespawnten LivingEntity nur sekündlich geprüft werden, wo sie sich aufhalten. Verlassen sie das Grundstück von Spieler XY werden sie getötet. Bei einem Serverneustart sollte dann sicherheitshalber jedes böse LivingEntity getötet werden.


    Da sich zur Zeit nicht all zu viele Spieler auf dem Server aufhalten, bzw. nicht alle das MobSpawning anmachen werden, wird sich das Überwachen der LivingEntity bzgl. der Rechenzeiten in Grenzen halten. Zudem der Server genug Leistung hat

  • ja freu mich schon mega auf die 1.13 haben derzeit bei unseren Server auch wieder default minecraft maps drin da es so was wie nen Ozean Monument nicht gab. Wegen den 1.13 Änderungen verrate ich noch nicht zu viel aber es wird einiges Auf euch zukommen.


    Die einfachste Lösung wäre mit dem CreatureSpawnEvent zu arbeiten. Dieser gibt als Übergabewert ein Objekt von LivingEntity mit. In LivingEntity gibt es die Methode auf die Location zuzugreifen. Beim direkten Spawnen wird dann festgehalten, dass dieses LivingEntity auf dem Grundstück von Spieler XY gespawnt ist. Nun müssen bei den gespawnten LivingEntity nur sekündlich geprüft werden, wo sie sich aufhalten. Verlassen sie das Grundstück von Spieler XY werden sie getötet. Bei einem Serverneustart sollte dann sicherheitshalber jedes böse LivingEntity getötet werden.


    Da sich zur Zeit nicht all zu viele Spieler auf dem Server aufhalten, bzw. nicht alle das MobSpawning anmachen werden, wird sich das Überwachen der LivingEntity bzgl. der Rechenzeiten in Grenzen halten. Zudem der Server genug Leistung hat


    Na klar so würde es gehen möchte es trotzdem nicht so hinzufügen zu mindestens nicht ohne laggs Tests davor. Da der timer Sync zum Haupt Thread laufen müsste muss ich das erst richtig durchdenken und testen.