Posts by noci

A new update is now available, introducing "Points of interest" and many more changes!
Latest hotfix: 0.9 (2025-10-31)

    Erste Versuche wurden schon programmiert.

    Ja das ist soweit Richtig8)
    Es sind nur noch Bedienungselemente und kleinere Korreckturen der PluginAPI nötig, daher dauert es mindesten noch bis zum nächsten API-Fix, bevor es in die Beta Test Phase geht^^

    besteht eigentlich die möglichkeit, dass jemand ein plugin machen könnte, das für spieler die möglichkeit schafft mit einem tool, oder über ein menü ein objekt in der welt zu spawnen, das in einem separten ordner als entsprechende datei hinterlegt is

    Bislang sind auch nur die Unity-AssetBundel's unterstützt, nach dem API-Update werden auch noch OBJ und FBX hinzukommen.

    Blender Dateinen direckt nutzen geht nur über den UnityAssetBundel weg, aber hierzu breuchte es ein eigenen Artikel.



    Generell würde ein Unity einsteiger Kurs nicht Verkert sein, da ja auch nicht jeder der Models machen kann ein Bündel machen kann:saint:

    • Da wehre zuerst die Frage hast du ein Gruppe Admin b.z.w. existiert RisingWorldDedicatedServer\permissions\groups\Admin.json (CaseSensitiv)?
    • Eigendlich solltest du als Admin in der RisingWorldDedicatedServer\server.properties eingetragen bei Server_Admins=[SteamID], oder mit makeadmin, solange Admin bleiben bis revokeadmin ausgefürt wird oder die SteamID in den Properties entfernt wird.

    Das [Admin] beim Namen zeigt das du einer der Master Admins bist, egal welcher Gruppe du angehörst


    Das gruppen weckseln machst du mit setplayergroup?


    Sollte deine Admin Grupe nicht existieren dann werden die Einstellungen aus der Default genommen!


    Du kannst dein Aktuelle Spiel berechtiegung sehen:

    In den Berechtiegungen kannst du dan sehen was wirklich gerade Aktiv ist.


    Die Seite permissions-new-version hast du neben bei Offen?

    Es Klingt aber eher danach das deine Admin Grupe nicht existiert.

    Was dauert so lange? Das Asset Bundle in Unity zu öffnen?

    Ja, der AssetBundles-Browser von Unity macht das nicht! Ich habe nach 3h dann mal abgebrochen. Glücklicherweite gab es in der Komunity ein Alternative, die ist allerdings nicht für Große Dateien ausgelegt(1GB+ geht nicht).
    Wenn es da noch eine Alternative für die Großen Datein gäbe wehre das schön^^


    Was soll das TextAsset denn können?

    Ja, einfach Text-Datein lesen. Die Rückgabe eines byte[] sollte voll ausreichen:D

    vieleicht byte[] data =TextAsset.loadFromAssetBundle(AssetBundle bundle, String path) so in die Richtung.

    Aber vieleicht ist das besser, das gesamte Pake von TextAsset.


    Oder soll das einfach nur ein Weg sein, einen String aus einem AssetBundle zu erhalten?

    Meinst du hiermit, man könnte dem Bundel noch Properties mitgeben:thinking:klingt Verlockend, aber denke das wird Komplizierter, also muss nicht sein:saint:


    Direkt bestehende Texte des Spiels ändern kannst du leider nicht, aber du kannst eigene Elemente einem beliebigen Ziel hinzufügen mit Internals.addUIElementToPlayer() :)

    :thumbup:genau das habe ich Übersehen


    (also Interface statt interface)

    Läuft:thumbup:



    Kann ich das [H] "Item weckstecken" ausführen?
    Das nervt ein bisschen beim Platzieren:/

    Dabei ist mir noch aufgefallen das player.getEquippedItem() immer NULL zurück gibt, das hatte glaube ich Patrick schon erwähnt wo er im Inventar getestet hatte.


    Ich habe mich noch mal ein bisschen mit dem Radialmenü beschäftigt.
    Ich habe versucht ein Radial Untermenü zu machen, dabei ist mir aufgefallen das es aktuell wohl nur ein Menü gibt
    Wehre es möglich das Radialmenü als UIRadial zurück zu geben und es wehre schön wenn mann es ausblenden und beenden könnte, also das Hauptmenü Ausblenden wenn man im Untermenü ist. Mann müsste dan zwar mehr Steuern aber wehre halb so wild.

    Die Icons für das Baumenü liegen überwiegend in "interface/icons/building"

    Ich habe das mal getestet:

    Java
    radialMenuIcons = new TextureAsset[]{TextureAsset.loadFromGame("interface/icons/building/move1.png"),
        //TextureAsset.loadFromGame("interface/icons/building/size1.png"),
        TextureAsset.loadFromPlugin(plugin, "/resources/assets/GameObjectSelect.png"),
    TextureAsset.loadFromGame("interface/icons/building/rotate1.png")};

    was habe ich im Phat Vergessen?
    Ich bekomme für die GameAssets keine "CH:" warscheinlich CheckSumme

    Code
    REGISTER ASSET TEXTURE (149) FROM GAMEASSET: interface/icons/building/move1.png (EXT: asset, CH: )
    REGISTER ASSET TEXTURE (150) FROM FILE: /resources/assets/GameObjectSelect.png (EXT: png, CH: 89638fc951b50c45a9f42159729f82e9)
    [Java] Load from resources (plugin 1): -2126260726_d1fa7521bca978a236737360eee51382_89638fc951b50c45a9f42159729f82e9 89638fc951b50c45a9f42159729f82e9
    REGISTER ASSET TEXTURE (151) FROM GAMEASSET: interface/icons/building/rotate1.png (EXT: asset, CH: )

    Auch wenn keine Areas vorhanden sind sollte diese Funktion eigentlich niemals null zurückgeben.

    Ja, vieleicht ist schon Repariert:D


    Alerdings wenn ich Versuche:

    Java
    Area[] gaa = Server.getAllAreas();
    System.out.println("AreaLength["+gaa.length+"] ");
    for (int i=0;i<gaa.length;i++){
    System.out.println("Area["+i+"] = "+gaa[i]);
    if (gaa[i]!=null) {
    System.out.println("Area["+gaa[i].getName()+"] ");
    }
    }

    Bekomme ich:

    Ich hatte das Vorher, nicht so genau beschriebenX(



    Unity bietet direkt einen Asset Bundle Browser als Package für den Editor

    Das ist gut, kann man mal ein Liste erstellen:thumbup:
    8|interface.bin mit 144Mb dauern bei mir schon über 50min.:lol:hätte ich nicht gedacht

    Mit dem nächsten Update kommt ja die getAllAssetNames() Funktion für Asset Bundles rein.

    :wow:Das wird Rocken:D
    Könnte man neben einem TexturAsset auch ein TextAsset Laden? So das im Bundel zu einem Prefab noch ein Vorschaubild und Beschreibung platzieren kann^^


    Du meinst das Radial-Menü? Wahrscheinlich wäre da eine player.hideRadialMenu() Methode sinnvoll

    Ja, Perfeckt^^


    Also zumindest dass das Callback dann trotzdem aufgerufen wird

    Das reicht volkommen aus:thumbup:


    Das ist zumindest dann "normal", wenn keine Npcs deaktiviert wurden.

    Oke, also direckt habe ich keine Abgeschaltet, ich hatte ja nur noch welche von dem Test mit spawnnpc <name> variante Übrig , bei den es mehrere Varianten gibt, aber das Maximun +1 dan wohl die diable ausgelöst hat.
    Aber warscheinlich wird für die DisableNpc noch eine DB gemacht in der die nicht reingekommen sind, denke ich:D
    Spawnen über die API und da zu deaktievieren habe ich noch nicht Getestet




    Eine kleinigkeit habe ich noch:D

    Kann ich hier HudLayer/hudContainer/leftContainer/buildingStatusContainer/transformStatusContainer/statusLabel rein Schreiben?
    Im Style ist das ja nicht für den Text möglich, aber am Liebsten würde ich schon dein Baumenü nurzen
    Mit player.addUIElement(UIElement, UITarget.HUD); komme ich ja auch nicht direckt bis zum HudLayer/hudContainer/leftContainer/buildingStatusContainer/transformStatusContainer/ um dort eventuell nur einen eigenes UILabel zu Platzieren
    :saint:Kannst du da was anbieten, oder ist die gefar dann zu groß, das dass Spiel Instabiel wird

    Die nächste Frage wehre:
    - ist das nur in den Gruppeneinstellungen, wie sieht deine default aus
    - Benutzt du Areas? Hast du Prioritäten vergeben?


    itemgive Befehl

    das wird ja in den command:{... gemacht, und betrifft nur die Consolen Komandos


    aber es können dennoch fremde Sachen geblaupaust werden

    Du kannst in den Einstellungen nachschauen ob "create": false gesetzt ist, wenn ja ist das eigendlich eine sache für Red.
    Ich glaube aber an den Berechtiegungen wird noch gearbeitet;)

    Hi, red51


    Ich weiß nicht ob schon gemeldet wurde Server.getAllAreas gibt ein Arry mit NULL zurück:thinking:

    Wie kann ich herausbekommen welche GameTexturen wo sind? Also für loadFromGame und mir gehts um die ganzen Icons im Baumenü(Linke Seite) und die vom Radialmenu bei [C]:saint:

    Also die Prüfung ob Taste Gedrückt ist bekomme ich hin, aber wie kann ich den Calback für den Spieler Schlißen wenn ich C Losllasse?


    Wehre es möglich bei showContextMenu, showRadialMenu, showMessageBox und vieleicht auch die anderen MessageBoxen, den Abbruch Registrieren? Also wenn das Menü zu geht weil mann daneben Klickt(außer Radial) oder mit ESC

    Ich habe vor ein Löschne zu bestätiegen nur bekomme ich keinen Event bei den Beiden Aktionen||


    Bei World.getDisabledNpcs() kommt ein NULL zurück.

    Es gibt ja nur wenige Maustasten, sodass ich nicht weiß,ob wirklich einzelne Tasten registriert werden müssten

    Ja, das war mir nicht Klar wie es im Hintergrund genau Läuft
    :Dwarscheinlich war ich noch verwirrt wegen dem disalbeKey, ob ich nicht was zum registrieren braue
    Klar lieber so einfach wie möglich^^



    Oder bist du auf eine Funktion in der API gestoßen, die damit nicht korrekt umgehen kann?

    Nein, alles gut. bei mir ging es um das Laden aus einer Config.

    Einfacher und sinnvoller ist es bei einem Prefab eigentlich, die benötigten Texturen direkt beim Vorbereiten des Plugins (in Unity) mit ins AssetBundle zu packen

    Ja, der Gedanke karm mir auch schon, einfach ein Bild für die Vorschau mit rein zu Packen:D


    gerne auch mit Registrieren(wenn es Sinn macht)

    Ich dachte da an registerMouseButton(Links,Rechts,Mitte,Rad) ähnlich wie bei player.registerKeys zum aun und aus schalten


    Wie meinst du das genau?
    Was das Färben von Plugin-Ausgaben angeht, meinst du die Ausgaben in der Konsole?

    Ja die Ausgabe in der Konsole, aber warscheinlich auch eher unwichtig, wenn man etwas sucht ist ein Editor für die Log eh besser und da gibt ja den [Java] eintrag


    (int) (long)Long.parseLong

    Ich hatte für die Konvertierung der Farbe vom Hex:FFFF FFFF = DEC:4 294 967 295 Probleme weil der Integer ja "nur" bis +2 147 483 647 geht, aber über den umweg das aus einem Long zu hole, den dan zu einem Integer machen und dann kann ich das erst richtig mit ColorRGBA(int rgba)

    Für Modelle ist später eigentlich dann das Model Objekt die bessere Wahl - dort wirst du auch direkt ein Material zuweisen können ;)

    Oke, das Klingt gut🧘🏻‍♂️


    Allerdings ist anhand des Datennamens der Typ oft schon erahnbar

    :thumbup:das Reicht natürlich voll und ganz aus


    Nein, derzeit leider nicht, da das fertige Modell erst beim Client existiert und der Server keinen Zugriff darauf hat.

    Das währe erstmal nur für den Client selber(Ohne das zu Teilen als Poster oder so), an der Stelle wo ich das bräuchte, habe ich das Geladene PrefabAsset ... :thinking:
    Ich könnte da eine Temporäres Prefab erstellen, aber da wehren noch keine TextureAsset erst beim player.addGameObject ?


    Was wir sonst einbauen könnten wäre eine "getWorldPosition()" Funktion, die allerdings dann mit einem Callback arbeiten muss (da die Position erst vom Client ausgelesen und dann zum Server geschickt werden muss). Dann könnte man mit der API zumindest seine eigene Synchronisierung umsetzen^^

    Ja sollte ausreichen:Dich habe ein Würfel Mesh in die Handbekommen und da überkarm mich die Idee, einen Ingame Würfel zu machen :nerd:um gemeinsam zu Würfeln
    Dazu wehre auch eine getWorldRotation() nicht schlecht:thinking:damit könnte ich auch herausbekommen welche Zahl oben ist und die LockalRotation bei der Synkronisation anpassen


    dann quasi ein PlayerMouseButtonEvent oder so

    Ja^^gerne auch mit Registrieren(wenn es Sinn macht), interessant wehre da auch isPressd() und ein isDrag() oder vieleicht isHold() damit mann den Plazier Timer umsetzen kann


    Hmm... das kann ich bei mir leider nicht reproduzieren

    Ja:lol:das habe ich befürchtet


    Ich habe das Pfenomän Festgestellt das nur das aller erste disableClientsideKeys Funktioniert, die Liste scheint dann Fest zu sein, ich habe das auch nur mit einem Plugin getestet



    :wow:Server Update

    # If true, player world events (e.g. place or remove elements or terrain) will be tracked and logged

    Settings_LogWorldEvents=False:thinking:oder habe ich den erst jetzt wargenommen


    Ich benutze den player.raycast der ist ebenfalls seht Informativ:saint:zum Coden auf jeden fall gut das all die Infos drin sind, gerne auch noch einiege mehr^^(z.b. uidebugger [Layername] um die Phade zu Kopieren;))

    Nur für den Reguleren betrieb vieleicht auch ausschaltbar machen, vieleicht noch Settings_LogPlayerEvents, Settings_LogPluginEvents hier wehre auch eine 4. Farbe schön (Rot Fehler, Gelb Warnung, z.b. Türkis Plugin, Weiß Server) oder wenn man später noch die Plugin Ausgaben noch Färben könnte:D


    Es gibt ja immernoch das Problem mit dem Player Namen im Spiel

    Das sieht mir nach einem Rundungs/Konvertierungs Problem aus, in Java konnte ich das mit dem (int) (long)Long.parseLong lösen.

    Java
    private String seitenTextColor = "#ffffffff";
    public Integer getSeitenTextColor() {return (int) (long) Long.parseLong(seitenTextColor.replace("#", ""), 16); }

    Vieleicht ist auch nur untergergangen:saint:



    Texture2D duplicateTexture(Texture2D source)

    Sowas ist gut, beim Thema Texture2D, gibt es da auch etwas zum Mischen oder Überlagern per Maske?

    Also was ich Allgemein dazu sgen kann ist, jenachdem wie zügig Red mit seiner ToDo Liste Fertig wird, besteht durchaus die Möglichkeiten später seine eigenen NPC's mit Modell, Texture und Animation mit hinein zu Bringen.
    Der grundstein dafür ist mit den Asset Bundles schon längst gelegt.
    Das heißt, die Leute die sich für RW, mehr Aktion und Survival "Terror" wünschen, sollte das mit Plugins möglich sein so wie für die, welche die ein wie auch immer geatretes (Wirtschaft/Buddeln/Building) Level System wünschen.

    Ich sehe in Rising World die Größte Feie Spielfläche nach Minercaft, die alle Richtungen abdecken kann.
    Ich glaube für Red ist der Bauteil das Herzstück und das Drumherum wird grundlegend gehalten und sich Entwickeln.
    Vieleicht wie in MC, das wer Ritterrüstung, oder Raumanzu will, findet dazu ein Plugin.

    Es reicht grundsätzlich, nur style.backgroundImage zu setzen ;)

    Ja:Dgewust wie klappt's auch:thumbup:


    Du kannst ein PrefabAsset auch direkt von der Festplatte laden (PrefabAsset.loadFromFile()). Dort kann direkt ein .obj oder eine .fbx angegeben werden.

    Also das habe ich auch mal Probiert,das OBJ kommt auf jeden Fall im Spiel an^^


    Eine Funktion zum Auslesen aller Asset Namen können wir aber theoretisch anbieten ^^

    Könnte diese Funktion auch die Typen mit angeben oder würde sie nur die Prefab's angeben?

    Würde es gleich eine Komplette liste mit Unterordnern sein oder wie ein Verzeichnis?


    Wehre es möglich den Mesh Render und sein Materials auszulesen, speziell die Base Map?
    Also setMaterial oder setMaterialParameter gibt es ja schon(Obwohl ich da noch keine Vorstellung von den Parametern habe), eine GET wehre schön, dann könnte das gefundene Prefab mit einem Bild für die Wiedererkennung angezeigt werden^^


    In den Prefab's sollte man kein Rigidbody benutzen, das verzieht die LocalePosition und ist nicht Muliplayer Tauglich, eine Syncrone Physik kommt aber noch?:D
    Oder fehlt nur die getWorldPosition()?

    Um das Hintergrundbild zu ändern:

    einfach Integrieren;)

    Hi, can you please show your log output?

    Das ist der Teil vom Code:

    ---

    This is the part of the code:

    Code
    [Java] ModellModel={OBJ=wurfel2.obj, Normal=würfel-normal.png, Texture=würfel 3.png}
    [Java] OBJ wurfel2.obj
    [Java] Normal würfel-normal.png
    [Java] Texture würfel 3.png
    REGISTER ASSET ASSETBUNDLE (2) FROM FILE: F:\SteamLibrary\steamapps\common\RisingWorldDedicatedServer\Plugins\0ToolsAPI\Model3D\würfel.bundle (EXT: bundle, CH: e7afa2461d3ced311d05bccd701cb993)


    Are you trying to make a procedural mesh?

    Ich habe einfach eine *.obj erstellt die hat UV-Map dazu die Texute und Normalmap in einen neuen Unterordner im PluginSDK.unitypackage eingefügt, eine Texture währe auch da aber scheinbar nicht von Nöten

    ---

    I simply created an *.obj that added the UV map, the text and the normal map to a new subfolder in the PluginSDK.unitypackage, but a texture was obviously not needed there either


    Also, what is Texture and Normal arguments in your case? That are turned into String

    Das sind StringBuilder wegen einer lambda Schleife zuvor und geben den Datei Namen im Bundel an.


    Aber das ist garnicht mein Problem
    Ich versuche ein würfel.obj in das MeshAsset zu bekommen.


    Oder andersgefragt, wie hast du ein Bundel mit "Mesh/OBJ/FBX", Texture und Normal Daten in ein GameObject bekommen?

    Ein kleiner Code Schnipsel der bei dir Funktioniert würde ja schon ausreichen^^

    ---

    These are StringBuilders because of a lambda loop before and give the filename in the bundle.

    But that's not my problem at all
    I'm trying to get a cube.obj into the MeshAsset.

    Or to put it another way, how did you get a bundle with "Mesh/OBJ/FBX", Texture and Normal data in a GameObject?

    A small code snippet that works for you would be enough^^

    Hello paulevs could you please help me?
    I'm trying to load a MeshAsset from a bundle:

    Java
    AssetBundle bundle = AssetBundle.loadFromFile(file.getAbsolutePath());
    MaterialAsset ma = MaterialAsset.create("MaterialName");
    ma.setTexture(TextureAsset.loadFromAssetBundle(bundle, Texture.toString()));
    ma.setNormalMap(TextureAsset.loadFromAssetBundle(bundle, Normal.toString()));
    MeshAsset me = MeshAsset.create("MeshName", 0, 0);
    ... ??? ...
    Model mo = new Model(me, ma);

    I can't find the connection.