Posts by red51

A small new update is available now!

    Wie @lenko schon sagt, leider können derzeit einzelne Seiten von Blöcken/Bauelementen nicht individuell eingefärbt werden. Das ist auf jeden Fall geplant, dafür müssen wir aber unbedingt erst die Art und Weise, wie Blöcke gespeichert werden, ändern (denn mittelfristig sollen Blöcke genau wie Planken und Balken gehandhabt werden).

    Um welche Tasten handelt es sich genau? Die Numpad-Tasten? Standardmäßig ist die Bewegung der Spielerfigur über das übliche WASD gelöst, allerdings kann die Steuerung in den Einstellungen umgestellt werden. Dort kann die Bewegung der Spielerfigur bspw. auf Pfeiltasten oder Numpad-Tasten umbelegt werden. Wenns um das Bewegen von Bauelementen geht, kann die Steuerung unter dem "Platzieren"-Tab umgestellt werden.


    Standardmäßig muss zum Skalieren von Bauelementen die Taste Shift (rechts) gedrückt gehalten werden, anschließend kann (standardmäßig) über die Pfeiltasten das Element vergrößert/verkleinert werden.


    Leider zeigt die Hilfe (F1) nur die Standardbelegung an, das werden wir langfristig auf jeden Fall überarbeiten ;)

    Not sure what happened if it was a map De-sync, or whichever. It may be client, or it may be server.... Whichever it was my horse tilted me about 140 degrees backwards that I would then dismount tilted to the side the same degree.

    Lol... that's strange =O Did it only happen once? Is there a way to reproduce this issue?


    Alright, I'm now having fun getting various errors all of a sudden

    Do you remember when this error happened exactly? Was there a specific action (cutting a tree, flying, building etc) when the error occurred?

    Seit neuestem habe ich Probleme von Rising World aufs Desktop zu wechseln. Mauszeiger und Fadenkreuz sind gleichzeitig zu sehen.
    Eine Aktion ist nicht mehr möglich, außer über Taskmanager, Spiel beenden oder PC neu starten.

    Hmm... bedeutet "seit neuestem" seit dem letzten Update? Grundsätzlich wurde an dem Verhalten eigentlich nichts verändert... Spielst du im klassischen Vollbildmodus oder im "Undecorated" Modus? Auf welchen Wert ist game_pause_on_lost_focus in der config.properties Datei gesetzt? Evtl. könntest du versuchen, diesen Wert zu ändern (wenn er auf true ist, ändere ihn auf false, ansonsten umgekehrt)


    Außerdem ist das ID-Suchen sehr aufwändig. Gibt es da eine andere Möglichkeit?

    Der einfachste Weg wäre, die ID aus dem Steam-Profil des Users zu erhalten. Die URL zum Profil kann einfach bei https://steamidfinder.com/ eingefügt werden, die SteamID64 ist dann die benötigte ID.
    Einen verlässlichen anderen Weg gibt es leider nicht, denn der Spielername ist nicht einmalig und es wäre unsicher, wenn diese Methoden nach dem Namen gehen.


    Desweiteren kann mitunter auch ein Online-Spieler nur mit Steam-ID einem Gebiet hinzugefügt werden

    Das ist prinzipiell nur ein Workaround in der Lua API, damit das alte AreaProtection Script weiterhin kompatiblen mit der Namens/UID Änderung im Februar blieb. Grundsätzlich wird das Script nicht mehr weiterentwickelt. Bald dürfte das AP Plugin von @Miwarre soweit sein, dass es im produktiven Betrieb zum Einsatz kommt und das AP Script ablösen kann.


    Die Steam-ID sieht man über Tab, aber die
    Schrift ist da sehr klein und außer sich die ID zu screenshotten oder aufzuschreiben, wüsste ich keine andere Möglchkeit

    Vmtl. werden wir die Spielerliste unter Tab dahingehend ändern, dass beim Aufruf der Mauszeiger sichtbar wird und bei einem Rechtsklick auf die UID die Möglichkeit besteht, die ID direkt in die Zwischenablage zu kopieren ;)

    Du könntest die Texturqualität der Blöcke erhöhen, indem du in der config.properties Datei den Wert graphic_texture_quality auf 2 setzst. Das ist vor allem i.V.m. dem NoGrain-Vorschlag von @Deirdre sinnvoll. Das bringt dann bereits eine sichtbare Verbesserung.


    Zusätzlich kann graphic_texture_quality_players auf 3 gesetzt werden, um zumindest die Texturenqualität der Spielerfigur zu verbessern.


    Höhere Texturauflösungen haben wir momentan erstmal nicht direkt geplant. Tatsächlich wird das bei der Vielzahl an Texturen nämlich etwas problematisch, da mit einer Verdoppelung der Auflösung eine Vervierfachung des Memoryverbrauchs stattfindet... wichtiger ist uns erstmal, Effekte wie NormalMapping und ParallaxMapping umzusetzen, denn auch das wird bereits eine deutliche visuelle Verbesserung mit sich bringen ;)

    Leider können mehrere Texturenpacks nicht gleichzeitig verwendet werden. Allerdings kann der Inhalt der NoGrain.zip problemlos mit dem Inhalt eines bestehenden Texturenpacks kombiniert werden (also den "Misc" Ordner aus dem NoGrain Paket einfach in das bestehende Paket einfügen) ;)

    Also der sinnvollste Weg, dem Plugin Assets beizulegen, wäre, sie direkt in die .jar mit reinzupacken. Da die .jar bereits als Zip-Archiv fungiert, erhälst du damit bereits eine gute Komprimierung. Auf dem Wege könntest du die Assets bequem als Resource laden.


    Die Daten direkt als byte[], Buffer oder Stream zu übergeben ist ein wenig schwierig. Hier müsste trotzdem manuell angegeben werden, um welches Dateiformat es sich bei dem Asset handelt. Gibt es einen bestimmten Grund, die Assets als separate Zip auszuliefern anstatt sie in die .jar mit reinzupacken?^^

    It's just did it again, the problem is Java related I believe, there remains an instance of Java open after the server stops, with the RW server ports bound (TCPView)

    How do you restart the server exactly? If you just kill the process, it may take a few seconds (in some cases) until the ports are freed, depending on the network implementation of the OS. If you shutdown the server by using the shutdown command, it also takes a few seconds, since all connections are closed gracefully and the world is saved before the process is terminated.

    Actually the plant is not removed from the internal data structure (if this was true, the plant would be missing after reloading the world). Instead there is a clientside flag which prevents the player from picking up the plant multiple times. The intention was to prevent the client from "spamming" the server with "pickup packets" in case the server reacts slowly (caused by high ping, high server load etc).
    Unfortunately this flag does not take the API event into account, so even if you cancel the event, the flag is still there and prevents the client from picking up the plant.


    This issue will be fixed with the next update :)

    Basically the "undecorated" flag just removes the border/frame of the game window (so the game runs in a borderless window). If you also adapt the game resolution to your desktop resolution, you get an alternative fullscreen mode (other games call it "Windowed Fullscreen").


    The fullscreen mode does not have an impact on the GUI (only the actual resolution matters)

    Sorry für die späte Antwort! Ich habe den Beitrag mal in die dt. Forensektion verschoben ;)


    MariaDB wird zwar unterstützt, allerdings verwendet das Spiel momentan eine ältere Treiberversion, sodass neue Versionen der Storage Engine nicht unterstützt werden. Welche Version verwendest du genau?


    Was MySQL angeht wird derzeit nur 5.7.x unterstützt.

    Die Programmiersprache hat nichts damit zutun, ob ein Feature wie "Reservierte Slots" möglich sind oder nicht ;) Grundsätzlich ist nichts explizit unmöglich, es sei denn es stößt an technische Grenzen (Rechenleistung etc), in erster Linie also Hardwarelimitierungen.
    Etwas wie "Reservierte Slots" umzusetzen ist also selbstverständlich möglich, allerdings ist fraglich, ob sowas momentan tatsächlich notwendig ist. Es ist schon richtig, dass die meisten Server in den seltensten Fällen wirklich voll sind, und solange das nicht ansatzweise wirklich der Fall ist, würden wir unser Augenmerk vll erstmal auf ein paar dringendere Features richten. Sollten sich die Spielerzahlen im Multiplayer aber ändern und Server sind regelmäßig zumindest ansatzweise voll, würde so ein Feature auf jeden Fall sinnvoll sein :)


    Ansonsten ist sowas über ein Plugin natürlich auch realisierbar, wie @noci schon andeutet.


    es fehlt zwar noch sowas wie server.getPlayerMaxCount(), aber vordefiniert (z.B. Konfiguration) möglich.

    So eine Funktion können wir noch einbauen, allerdings kannst du generell alle Einstellungen des Servers (bis auf sensible Informationen) direkt mit "server.getOption()" auslesen, in dem Fall also zB: int maxPlayers = Integer.parseInt(server.getOption("settings_max_players")); ;)

    java.net.bindexception: Address already in use: bind

    This message indicates that another process already uses one of the server ports (more precisely, ip + port combination), so the server cannot bind to this address. This could either be another program which uses the same ports, or maybe an older server instance which was not shut down properly...


    Does RW do anything on port 80? or port 21?

    No, the server only uses serverport-1 (for http queries), serverport, serverport+1, serverport+2, serverport+3 and serverport+4 (if server port is 4255, the RW server actually uses 4254, 4255, 4256, 4257, 4258 and 4259 TCP and UDP). If RCON is enabled, it also uses a separate port (by default 4253, but the port can be changed in the server.properties file).

    The mark command only saves a single position (temporarily). It can be used in combination with the gotomark command to teleport to that position. Unfortunately you cannot store multiple positions simultaneously (typing mark again overwrites the previously stored position).
    However, if you want to get the coordinates of the stored position, you can use the gotomark command, then open the debug console (F3) to get your current coordinates (first line).


    If you want to store or "mark" certain locations, I'd recommend to use a map and create markers at the given locations :)

    What do you mean with "local" and "global" event? If you're using the PlayerConnectEvent: It's triggered every time a player joins the server. The player object that can be retrieved from the event is always the player who triggered this event (i.e. the player who established the connection to the server).
    If you want to send messages to the player, the PlayerConnectEvent isn't very suitable for that, since the player still sees the loading screen at that time and probably won't see the message at all. Instead, you can use the PlayerSpawnEvent, which is called when the loading process is completed (i.e. when the player actually spawns on the server), so there is no artificial delay needed if you want to send a message to the player ;)

    Aha, ok. Es wäre aber zumindestens Gut, wenn Monitore dazu kommen würden, die Werbung bzw. für Bahnhof den nächsten Zug anzeigen lassen könnte. Und wenn sie nur Text anzeigen können, wäre das schon gut.

    Ja, sowas wird mit Sicherheit kommen ;)


    Gibt es nicht eine Möglichkeit die LUA auf die API zu konvertieren ? dann wäre das raus

    Nein, also zumindest keine automatisierte Möglichkeit. Das verlinkte Programm ist ein Converter von Lua zu JavaScript (welches nichts mit Java zutun hat), allerdings handelt es sich hierbei nur um die Übersetzung in eine andere Sprache, also rein aus syntaktischer Sicht. Selbst wenn es einen Converter für Lua zu Java gibt, hilft das in diesem Fall nicht weiter, da die API Aufrufe ja entsprechend angepasst werden müssen.


    Natürlich kann man die aktuelle API "von Hand" wrappen, das werden wir auch in dem zuvor genannten Wrapper machen. Darin werden wir aber nur den Stand der derzeitigen Lua API abdecken, d.h. neuere Funktionen die durch die Plugin API hinzukamen, werden darin nicht enthalten sein. Ansonsten müsste man den Wrapper immer von Hand aktuell halten, d.h. jede Änderung der Plugin API auch darin abbilden. Aber wie gesagt, das ist ohnehin nur eine Notlösung, denn einerseits können einige Konzepte der Plugin API aufgrund der Limitierung von Lua nicht umgesetzt werden, andererseits wird es auch performancetechnisch schlechter gestellt sein als die Plugin API. Es ist wirklich nur als Möglichkeit gedacht, bestehende Lua Skripte weiterhin ausführen zu können, auch nachdem die Lua API komplett rausgeflogen ist ;)

    Basically this comes from rounding errors, or more precisely, it's caused by the limited precision of floating-point numbers... it's getting worse the further you move away from the origin of the world :|
    Implementing an "infinite world" is on our todo list, but currently only the terrain generation is "infinite" (at least it has no restrictions). Due to these precision issues, the playable area is more or less restricted to ~ 10,000 (in every direction)