Plugin API - Wehre schön, wenn & Fehlerberichte - It would be nice, if & bug reports

  • Muss es eigentlich zwingend java sein, oder gehen auch verschiedene c Programmierspachen?

    Wie meinst du das?
    Als Programiersprache für die Plugin's? Dann müsste Red warscheinlich erst noch eine Bibliothek für die anderen Sprachen Bauen und diese mit dem Spiel Verbinden:thinking:
    Wegen der Perfomance?

  • Ja, das könnte man mit JNI machen.

    Ja
    Nur ich sehe da die gefahr, das die Leute das für eine direckte C/C++ anbindung halten.
    Aber es eigendlich die 3. Ebene der Emulation ist und am ende durch den JNI, wahrscheinlich ausgebremst wird:thinking:
    Wehre Interessant zu hören was Red dazu sagt;)
    Yes

    Only I can see because of the risk that the people think it's a direckte C/C++ connection.

    But it's actually the 3. The level of Emulation is and at the end of the JNI, probably thwarted :thinking:

    To listen to repel Interesting what it says in Red on it ;)

  • red51 könntest du den Font-Dialog auch zur Verfügung stellen?
    Also den Oberen Block der Schilder^^also Frarbe, Font, Größe, gerne auch Ausrichtung :saint:
    Im Schlimmsten Fall würde mir die Font auswahl reichen;)mit der schönen Vorschau:love:

  • Muss es eigentlich zwingend java sein, oder gehen auch verschiedene c Programmierspachen?

    Welchen konkreten Nutzen möchtest du damit verfolgen? Das Spiel selbst besteht in kompilierter Form ausschließlich aus C++ Code, d.h. wir hätten die API statt Java auch in C++ anbieten können, aber das wäre recht unklug gewesen, da C++ einerseits komplexer und weniger verzeihend als Java ist, andererseits C++ Code "gefährlicher" ist (zB kann falscher Memory-Zugriff unvorhergesehene Fehler mit sich bringen, sodass die Fehlersuche wesentlich schwieriger ist). Zudem würde das wahrscheinlich dazu führen, dass noch weniger Leute mit der API arbeiten (durch den allgemein höherene Schwierigkeitsgrad von C++) :thinking: Vorteile hätte es stattdessen nicht gebracht - zwar ist C++ minimal performanter als Java, aber das fällt in der Praxis nicht wirklich ins Gewicht.


    Alternativ wäre noch eine Skriptsprache wie Lua denkbar gewesen. Skriptsprachen sind meist noch "einfacher" als klassische Programmiersprachen (wie zB Java). Hier gibts aber viele Einschränkungen, u.a. in puncto Multithreading, was die Performance des Spiels dann doch zu sehr geschmälert hätte. Python wäre sonst


    Ja, das könnte man mit JNI machen.

    Das ist tatsächlich die Art und Weise, wie das Spiel mit der API kommuniziert ;)


    könntest du den Font-Dialog auch zur Verfügung stellen?
    Also den Oberen Block der Schilder^^also Frarbe, Font, Größe, gerne auch Ausrichtung :saint:
    Im Schlimmsten Fall würde mir die Font auswahl reichen;)mit der schönen Vorschau:love:

    Theoretisch könnten wir die Font-Auswahl einbauen (also als separater Dialog, so wie zB der Colorpicker) ;) Der ganze obere Block der Schilder ist aber leider etwas schwieriger, da das kein einzelnes Element ist, stattdessen sind das mehrere einzelne Elemente...

  • red51 Nabend,
    gibt es einen "Work a Round" um Bilder in einem UIElement zu Spiegeln?:thinking:
    Normal könnte mann das ja über Transform.Scale(-1,1) machen, für eine Vertikale Spiegelung.:saint:


    In der Npcs.db gibt es ja schon einen Owner, der wird nur noch nicht genutzt:Dwie ist den das Grob geplant?
    Ich würde den schon mal für die Pferde nutzen wollen. Sattel Drauf UID rein, sattel runter UID raus und das dann beim Aufsteigen Prüfen8)
    Oder mache ich dann nur Unordnung?

    :crazy:OKe, wird wieder zurückgesetzt beim neustart:lol:

  • :saint:ich glaube ich habe es schon mal Irgendwo erwähnt, bin aber geradewieder darüber gestolpert^^
    Bei den Areas hätte ich gerne die möglichkeit die Area eigenen Permission auslesen, nicht nur die Spieler eigene.
    So das ich Vergleichen könnte ob eine Area eine bestimmte Permissions hat.

  • Apropo Colorpicker, ich bekomme da noch Netzwerk Fehler, war die schon überarbeitet?

    Hmm... bin mir nicht so sicher, in dem Zusammenhang wurden ein paar Änderungen vorgenommen, kann mich aber nicht mehr konkret erinnern, inwieweit das davon betroffen ist (bzw. ob der Bug damit ggf. gefixed wurde) :thinking: Was für einen Netzwerkfehler bekommst du denn genau?


    gibt es einen "Work a Round" um Bilder in einem UIElement zu Spiegeln?
    Normal könnte mann das ja über Transform.Scale(-1,1) machen, für eine Vertikale Spiegelung.

    Eine Spiegelung würde man tatsächlich mit einer negativen Skalierung umsetzen, das wäre über das IStyle.scale Property möglich, ist aber in der API leider noch nicht exposed... das können wir aber mit dem kommenden Update noch hinzufügen :)


    In der Npcs.db gibt es ja schon einen Owner, der wird nur noch nicht genutzt :D wie ist den das Grob geplant?

    [...]

    OKe, wird wieder zurückgesetzt beim neustart

    Ja, das wird momentan beim Speichern fest auf -1 gesetzt (da Npcs intern noch keinen owner tracken). Das Feld ist später für Haustiere usw vorgesehen, es kann aber durchaus sein, dass sich das bis dahin noch ändert^^


    Bei den Areas hätte ich gerne die möglichkeit die Area eigenen Permission auslesen, nicht nur die Spieler eigene.

    Das wird mit dem nächsten Update kommen, also genau genommen eine Area.getDefaultPermission() Methode (womit man die Standard-Permission der Area setzen kann) ;)

  • :thinking: Was für einen Netzwerkfehler bekommst du denn genau?

    Aktuell gibt es noch Folgende Fehlermeldung:

    Code
    [ERROR] [15:35:30] [JNI exception] java.lang.ClassCastException: class net.risingworld.api.utils.ColorRGBA cannot be cast to class java.lang.Integer (net.risingworld.api.utils.ColorRGBA is in unnamed module of loader net.jiw.unity.Loader$RuntimeClassLoader @2acf57e3; java.lang.Integer is in module java.base of loader 'bootstrap')
    UnityEngine.Debug:LogError(Object)
    JIW.JNI.Wrapper.Env.JNIEnv:CheckException()
    RisingWorld.PluginAPI.Types.JCallback:OnCall(JNIEnv, JObject)
    RisingWorld.PluginAPI.Objects.<>c__DisplayClass492_0:<ShowColorPicker>b__0(Object)
    RisingWorld.Server.Network.Listeners.ServerGeneralListener:ShowCustomMessageDialogResponseReceived(IPacket, AbstractConnection)
    JIW.Network.Core.Common.Event.ReceiveServerPacketEvent:Execute(AbstractNetworkServer, NetworkEvent)
    JIW.Network.Core.Common.Event.NetworkEvent:Execute(AbstractNetworkServer, AbstractNetworkClient)
    JIW.Network.Core.Common.Channel:Run()
    System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)


    das können wir aber mit dem kommenden Update noch hinzufügen :)

    :wow:

    es kann aber durchaus sein, dass sich das bis dahin noch ändert^^

    :D


    wird mit dem nächsten Update kommen

    :drooling:

  • Mir ist noch eine kleinigkeit Aufgefallen, weiß aber nicht ob das so beabsichtigt ist:thinking:
    Wenn ich z.B. eine Karotte mit der Sichel Schlage, bekomme ich umgehend ein DestroyEvent, aber sie müsste doch auch einen HitEvent bekommen?
    Eventuell weil es wenig Halbarkeit hat.
    Ich kann nicht unterscheiden ob ich es mit [F] einsammle oder mit der Sichel:thinking:


    Ich Prüfe auf die Sichel in der Hand, es gibt aber keinen unterschied ob ich Schlage oder die Sichel nur in der Hand halte und mit [F] interagiere, beim Destroy.


    Destroy ist ja Zerstören
    Remove ist ja wie Einsammeln

    Hit bleibt Schlag



    Wo finde ich den die GrassID?
    Das müsste doch die Gras Variante bestimmen:thinking:
    Ich bekomme die GrassID 100, das müste die Variante 1 sein, kann das aber nicht in der definition.db finden.
    Gibts da ein Work a Round?

  • red51 wehre es möglich für den PlayerUIInputTextEvent noch einen Event zu bekommen für jede Zeichen änderung?
    Mir schwebt da so eine Autovervolständiegung/Übereinstimmungsliste vor, dafür bräuchte ich nur jede veränderung:saint:

Participate now!

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