Posts by Devidian

A new update is now available, introducing seasons and more!

    In dem Fall wäre es so das der letzte der das Map Tile oder die tiles aktualisiert auch derjenige ist dessen map man sieht. Kommt also ein anderer Spielr vorbei ist das Dach drauf, wenn du wieder kommst ist es wieder weg (vorrausgesetzt du hast auf den refresh button gedrückt) mit der aktuellen Version werden nur noch tiles übertragen die neu gerendert wurden. Wenn also 10 Spieler die bereits das Einkaufszentrum auf ihrer Map haben dort herumlaufen wird wohl gar nichts übertragen, bis einer den ingame refresh button drückt ;)

    Das macht nichts bei meinen Servern gilt immer rl first. Durch meine kleine Familie bin ich mehr oder weniger auch nur noch Gelegenheitsspieler, im Vergleich zu früher :D

    Intro
    DE:


    Hallo zusammen,


    heute möchte ich mein kleines Plugin "Rising Maps" vorstellen. Es dient dazu die Ingame-Map Karten der Spieler auf einem Server zu sammeln und auf dem Server abzulegen.
    Mit einer weiteren Komponente "MapRenderer" (siehe "Renderer") können diese Rohdaten dann in Bilder für eine online-map umgewandelt werden.
    Die fertigen Bilder können dann online mit Komponente 3 "WebMap" (siehe "WebComponent") im Browser angesehen werden (Beispiel mein Server: https://rwmap.omega-zirkel.de/)


    EN:


    Hello everybody,


    Today I want to introduce my little plugin "Rising Maps". Its goal is to collect the in-game map tiles of all the players on a server and place them on the game-server.
    With another component "MapRenderer" (see "Renderer"), this raw data can then be converted into images for an online map.
    The rendered images can then be viewed online with component 3 "WebMap" (see "WebComponent") in the browser (for example my server: https://rwmap.omega-zirkel.de/)


    Plugin
    DE:


    Das Plugin wie gewohnt in das plugin Verzeichnis eures Servers kopieren, bitte nicht vergessen auch den shared Ordner aus dem shared-x.x.x.zip in euer plugin Ordner zu entpacken.
    Wer will kann in den properties.settings noch tileRoot und webURL einstellen, per standard landen alle raw Dateien von den Spielern im plugin Unterordner tiles


    Das Plugin sammelt alle Karten-Daten sobald diese bei den Spielern gerendert werden und kopiert diese auf den Server.


    EN:


    The Plugin can be extracted as usual into your servers plugin directory, don't forget to extract the shared zip as well into your plugins directory (this is used by other Plugins too)
    If you like you can than change tileRoot and webURL in your properties.settings. By default all tiles will be saved in the sub-directory tiles of the Plugin directory.


    The plugin fetches all map data from players when they got rendered on the client and copies them over to a local directory on the server.


    Renderer
    DE:


    Der Renderer ist ein Node.js basiertes Programm, aktuell gibt es nur den weg für "Experten", ihr müßt dazu auf eurem game-server node.js (10) mit typescript installieren, euch das repository über git (muss ggf. auch installiert werden) clonen (am besten unter /srv/apps/...) und dann mit npm i;tsc;./app-init.sh die Abhängigkeiten installieren, den code Kompilieren und den service initialisieren. Ihr braucht dafür ggf. root Rechte auf eurem Server. Kopiert euch noch die ./config/config.default.json nach ./config/config.json und passt dort die Einstellungen an.
    Wie gesagt die Anleitung ist vorerst nur für experten, ich werde sowohl eine ausführliche Anleitung (Debian Linux ggf. Windows) sowie eine Vorkompilierte Variante später hinzufügen.


    EN:


    Currently there is only one way to use the rendering component. Due to Canvas dependencies you have to install it with all dependencies on your root or vm server. I cant tell you if you can run it on a rented game server - i predict not. There may be a solution for you later.
    The Manual how to install can be found in the GIT repository README.md (see below)


    (i tried to compile it with nexe into a standalone executable for linux. It runs on the machine where i compiled it but not on my testserver as it fails with missing canvas shared files)


    WebComponent
    DE:


    Die Web Komponente ist eine Angular Anwendung, die Vorkompilierte Version erfordert das eine Datei `mapid.info` im web Hauptverzeichnis erstellt wird mit der ID der map. Die ID findet ihr im log des servers wenn dieser startet.


    Die Vorkompilierte Version befindet sich im Anhang (RisingMapsFrontend-0.4.0.zip) und kann auf jedem webserver installiert werden (kein php kein nodejs, nur html+css+javascript werden verwendet)


    EN:


    The Web component is an Angular application. The pre-compiled version requires you to create a file called `mapid.info` in your web root directory. You can pick your id from your server log files when it starts up.


    The pre-compiled version can be found in the attachments (RisingMapsFrontend-0.4.0.zip). You can install it on any webserver as it dosent need php or nodejs. It's just html+css+js files.


    Code: mapid.info
    {"id":"YOUR MAP ID HERE"}


    Manual + Description / Anleitung + Beschreibung:
    Plugin
    Deutsch: https://github.com/Devidian/oz…/blob/master/README.de.md
    English: https://github.com/Devidian/oz…aps/blob/master/README.md
    Renderer
    English: https://github.com/Devidian/oz…end/blob/master/README.md
    WebComponent
    English: https://github.com/Devidian/oz…end/blob/master/README.md



    History:
    Plugin
    Deutsch: https://github.com/Devidian/oz…blob/master/HISTORY.de.md
    English: https://github.com/Devidian/oz…aps/blob/master/README.md
    Renderer
    English: https://github.com/Devidian/oz…nd/blob/master/HISTORY.md
    WebComponent
    English: https://github.com/Devidian/oz…nd/blob/master/HISTORY.md



    GitHub Sources:
    Plugin
    https://github.com/Devidian/oz_rw_plugin_risingmaps
    Renderer
    https://github.com/Devidian/oz_rw_risingmap_backend
    WebComponent
    https://github.com/Devidian/oz_rw_risingmap_frontend


    ===============================================================================


    WICHTIG: https://forum.rising-world.net…ibrary-for-plugins-0-7-0/ muss auch installiert werden!
    IMPORTANT: https://forum.rising-world.net…ibrary-for-plugins-0-7-0/ must be installed too!

    DE:


    So ein paar fixes wurden bereits von mir veröffentlicht, hier die Zusammenfassung des changelogs ;)


    EN:


    A few fixes were already released but no changelog so here is the summary ;)



    Funktioniert super, bin gerade mal durch unbekanntes Gebiet und habe in bekanntem Gebiet auf resresh gedrückt. Keine Einschränkungen bzgl. lag oder sowas bemerkt, auch wenn bei refresh gleich mehrere übertragen werden. Eis ist mir noch aufgefallen das auch vorher schon war. im Server-Log steht immer SERVER MAPTILE 0 0 UPLOAD FROM _name_ COMPLETED! also immer 0 0 ;)

    Oh süß, eine Kinder-Hüpfburg!


    Spass, ja ein paar mehr Formen wären sicher nicht schlecht, das was du suchst wäre dann wohl ein Kegel, Pyramide wäre auch noch gut und eine Kugel bitte ;)

    DE:


    Jetzt wo die neue API raus ist, konnte ich unter Verwendung von player.requestMapTileRaw ein echtes Plugin schreiben das die beiden fake Komponenten überflüssig macht. Die Backend Komponente habe ich erst einmal so erweitert, das sie mit den lokalen raw files direkt arbeiten kann. Dies erfordert allerdings das der map-renderer direkt auf dem game-server installiert ist. Da nicht jeder die Möglichkeit hat diesen auf seinem game-server zu installieren, werde ich später noch eine WebSocket Variante ins Plugin einbauen.


    Das Plugin läuft aktuell in einer 0.1.0-SNAPSHOT (pre release) version auf meinem Hauptserver.


    Derzeit ist das ganze aber noch nicht ganz ausgereift, da ein Spieler mit alten ingame Karten neuere Kartendaten überschreiben kann, ich hoffe das @red51 meinem API Vorschlag für ein neues Event entgegen kommen kann, dann sollten auch die Überschreibungen mit alten Daten passe sein.


    Wann ich das ganze public mache kann ich noch nicht sagen, wenn dann wird es im Plugin Forum zu finden sein.


    EN:


    Now , where we have the new API, i could use player.requestMapTileRaw to create a real Plugin that can be installed on game servers. The two fake components are now deprecated. I extended the backend component to work with the local map tiles fetched by the plugin. This requires currently to have the rendering backend installed on the same machine, but im aware that not everybody can install node apps on his game server so in the future there will also be a websocket solution that solves this problem.


    Currently the plugin runs with an pre-release version 0.1.0-SNAPSHOT on my main server for testing purposes.


    The future is not yet perfect as for example player with old ingame maps that are not refreshed can override newer map-data as there is no check for the age of the files. I hope @red51 can add a new event that i have requested. Then there should be no more overrides of old map data.


    I cant't say when i will release the first Version of my plugin yet, but i will post it to the Plugin forum as soon as it is ready for the next stage.

    Hallo @red51,


    nachdem ich jetzt die screenshot Funktion in meine Plugins eingebaut habe (DiscordPlugin / GlobalIntercom) bin ich gerade dabei die neue requestMapTileRaw Funktion für mein Map Plugin zu verwenden und bin noch nicht ganz zufrieden.


    Mein erstes Problem: es fehlt noch das richtige Event um die Funktion zu verwenden. Aktuell habe ich diese prototyp code hier in Verwendung:


    Ist noch nicht ganz korrekt der code aber damit komm ich erstmal weiter.
    Der Vergleich mit dem MD5 funktioniert soweit, nur kam mir der Gedanke das ja die ingame MAP nicht immer direkt aktualisiert wird, also manchmal muss man halt den refresh button drücken.
    Wenn jetzt jemand mit einer alten ingame map kommt hat der natürlich einen anderen MD5 weil die Daten anders sind. Dies verhindert dann aber nicht das die alten Daten die neueren überschreiben. Hier müßte man dann das datum der Datei noch vergleichen können oder besser dieser Vorschlag:


    Ein neues Event "onPlayerGenerateMapTile" das gefeuert wird wenn der client ein map tile rendert bzw. gerendert hat. dort müßten dann die x/y Koordinaten übergeben werden. Diese kann man dann in requestMapTileRaw wieder verwenden um das entsprechende tile anzufragen.
    So könnte man gewährleisten das immer nur neue tiles übertragen werden und keine alten.

    DE:


    Wie versprochen: Screenshots, sind endlich möglich! (Können nur in discord gesehen werden, hoffe das wir GI bald in den (in)offiziellen Discord integrieren können, sonst mach ich ein standalone GI-Discord!)


    EN:


    As promised: Screenshots are finally available! (can only be seen in Discord! Hopefully we can integrate GI into the (in)official Discord Server some time - or i'll create a standalone for GI)


    Code
    ## [0.9.0] - 2019-03-15
    ### Changed
    - now using tools.jar in version 0.4.1
    - text colors were removed from `GlobalIntercom` class, now Colors from tools will be used
    - motd removed, its now called `plugin welcome message` and can only be turned on/off in the settings. The text definition has moved to the language files so every user can read the plugin welcome in his language (so far translated)
    - Plugin enabled message now triggert in onEnabled
    - initSettings now sends settings loaded message to serverlog
    ### Added
    - if you write `+screen` into a message, a screenshot will be uploaded that can be viewed in discord (not ingame on other servers!)
    - in the `settings.properties` you can set screenshots on/off and the maximum screen resolution (width of the image)


    Code
    ## [0.9.0] - 2019-03-15
    ### Changed
    - verwendet nun die tools.jar in Version 0.4.1
    - textfarben wurden aus `GlobalIntercom` Klasse entfernt, Colors aus tools wird jetzt verwendet
    - MOTD entfernt, heisst jetzt Plugin Welcome Message und kann nur noch ein und aus geschaltet werden, definition des textes ist jetzt in den Sprachdateien, damit jeder Spieler die Nachricht in seiner Sprache lesen kann (sofern übersetzt wurde)
    - "Plugin geladen" Meldung wird jetzt in onEnabled gefeuert
    - in initSettings wird jetzt "Einstellungen geladen" in das serverlog geschrieben
    ### Added
    - wenn `+screen` in eine Nachricht geschrieben wird, wird ein screenshot übermittelt der in Discord angezeigt werden kann (nicht ingame)
    - in den `settings.properties` kann eingestellt werden ob screenshots erlaubt sind und welche maximale Auflösung übertragen werden soll (angabe der breite)

    DE:


    Endlich ein neues release, paar kleine Änderungen im Hintergrund und ein neues feature: Screenshots!


    EN:


    Its done! A new update is born, some small changes behind the scenes and a big new feature: Screenshots!



    Die API Screenshots sorgen auf meinem testserver hin und wieder für disconnects, ich schick später Mal logs wenn ich am PC bin. Auf meinem großen Server ist das noch nicht passiert.

    Liegt wohl daran das ich erst png format verwendet habe weil ich verlustfreie screens wollte, waren zwar herunter skaliert aber wohl doch zu groß für den kleinen testserver. Ein test mit jpg lief problemlos auch auf dem kleinen Server.