Fehler in der API

  • Hallo red51 ,


    ich versuche mit player.getAreaSelectionData((AreaSelectionResult result) die Daten der Ausgewählten Area zu bekommen.

    Sobald ich aber das Versuche, kommt leider ein Fehler und ich kann nicht weitermachen.


    Kann du das im nächsten Update bitte beheben, so das ich an dem Plugin weiterschreiben kann? Ich wollte keine "INFINITE" Area anlegen... :saint:;)

  • red51 ,

    Mir ist da noch etwas aufgefallen.

    Wenn ich ein Npc töte und dann mit der Leiche interagiere um auf sein Inventar zuzugreifen, wir ein "PlayerNpcInventoryAccessEvent" ausgelöst. Das Problem ist aber, das getNpc() null ist, da der NPC warscheinlich beim töten gelöscht wird. Leider kann ich aber so die Position des "Inventares" nicht ermitteln. (Ist das Inventar bzw. der Npc in einer Area oder außerhalb). Es geht darum, wenn der Spieler außerhalb einer Area steht und auf das Inventar zugreift, das innerhalb der Area ist.


    Es wäre schön, wenn entweder bei der Leiche ein eigenes Event kommt oder dass man auch bei der Leiche die Daten auslesen kann. Auf jeden Fall muss zumindest in der Javadoc stehen, dass getNpc() bei einer Leiche auch "null" sein kann. ;)

  • Danke für den Hinweis! getNpc() ist in dem Fall tatsächlich null (der Hinweis darauf fehlt leider), da der Npc nicht mehr existiert... das kann leider nicht so einfach geändert werden, aber ich kann zum Event noch die Methoden getPosition() und getRotation() hinzufügen, womit du die Position des Inventars bzw. Npcs bzw. der Leiche auslesen kannst :)

  • red51


    Vielen Dank. Das wäre doch Klasse, wenn man das machen könnte.


    Mir ist aber noch etwas aufgefallen: :saint:


    Wenn man mit dem Kreativ-Modus eine Area erstellt und sich bewegt, dann bleibt der rote Kasten ja stehen (so sollte es ja auch sein).

    Wenn man aber mit der API so eine rote Box erstellt (net.risingworld.api.worldelements.Area3D) und man sich bewegt, dann sieht es aus, als würde die Area eine verfolgen.

    Das ist, wenn man in der Area läuft, sehr verwirrend, da man denkt, das die "Grenze" von dir abhauen will. :drunk::dizzy:


    Kannst du da bitte nochmal drüber schauen und diese auch so "feste" machen, wie die Area3D im Kreativ-Modus?

  • Hmm... das konnte ich leider nicht direkt reproduzieren :wat: Oder ich habe es falsch verstanden :thinking: Wenn du eine Area3D erstellst, dann sollte sie eine feste Position in der Welt haben. Mir ist allerdings aufgefallen, dass nachträgliche Änderungen an der Area-Größe bzw. Position nicht korrekt wiedergegeben werden (bzw. Area3D.updateCoordinates() nicht ganz seinen Zweck erfüllt)... kann das ggf. mit deinem Problem zusammenhängen? Spawnst du die Area denn an einer fixen Position, oder änderst du die Position laufend? in ersterem Fall solltest du eigentlich auf keine Probleme stoßen. Sonst poste ggf. einmal den Code hier :)

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!