Kategorien
Allgemein

LegacyClonk 4.9.10.14 [355]

Download: Windows x64, Windows x86, Linux x64, Linux x86, macOS (experimentell)

Features

  • MP3 kann nun als Musik- und Sounddateiformat verwendet werden.
  • Der Credits-Dialog zeigt nun alle verwendeten Lizenzen an.

Bugfixes

  • ForceAutoContextMenu und ForceAutoStopControl werden in Sections nun korrekt von der Haupt-Scenario.txt geerbt.
  • Die Scriptfunktion PlayerObjectCommand gibt nun eine Warnung bzw. einen Fehler in #strict 3 aus, wenn Call als Command übergeben wird, da der nötige Codepfad nicht implementiert ist. Generell sollte diese Funktion nicht in neuem Code verwendet werden.
  • Bugs bei Objekten als Schlüssel für Maps wurden gefixt.
  • Pictures von Objekten und Definitionen mit Grafikskalierung als Menüsymbole werden nun korrekt gerendert.
  • SetObjectOrder gibt nun false zurück, wenn das Objekt vor oder nach sich selbst sortiert werden soll, da dies zu korrupten Objektlisten oder Endlosschleifen führt.
Kategorien
Allgemein

LegacyClonk 4.9.10.14 [353]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Features

  • Doppelte Tastendrücke werden nun als einzelne Tastendrücke behandelt, anstelle verloren zu gehen, wenn für sie kein Callback existiert.
  • SetActionKeepPhase hinzugefügt, äquivalent zu SetAction() && SetPhase() mit den jeweiligen Parametern.
  • ForcedAutoStopControl und ForcedAutoContextMenu können jetzt per Szenariosektion angegeben werden.
  • Contents() hat nun einen dritten Parameter bool returnAttached, der angibt, ob auch Objekte mit Prozedur ATTACH zurückgegeben werden sollen.
  • bool RejectGrabbed(object byObj) hinzugefügt – gibt dieser Objektcallback true zurück, wird das Anfassen des Objekts, in dem der Callback aufgerufen wird, verhindert. (Danke an TLK.)
  • Die Performance von Menüeintragssymbolen außer mit Overlays oder Objekten wurde verbessert.
  • C4MN_Add_ImgIndexedColor hinzugefügt.
  • Kann die Spielerdatei eines beitretenden Spielers im Netzwerk nicht geladen werden, wird nun eine Warnung geloggt.
  • Wird General.AllowScriptingInReplays auf true gesetzt, kann nun in Aufnahmen gescriptet werden. (Danke an Bratkartoffl.)

Bugfixes

  • Die Engine crasht nicht mehr, wenn eine Definition neu geladen wird, die als Menüeintragssymbol verwendet wird.
  • Korrupte Zeitstempel in Gruppen verursachen keinen Crash mehr, wenn man als Client versucht, sie vom Host zu laden.
  • Zeilenbrüche duplizieren Markup (<i> und <c>) nicht mehr.
  • Wird im Konsolenmodus ein Objekt ausgewählt, werden nun nicht mehr alle globalen Scriptfunktionen sowie alle Objektfunktionen auf public gesetzt.
  • LoadScenarioSection speichert Landschaft und Objekte wieder korrekt.
  • nil wird nun auch korrekt zu int oder bool konvertiert, wenn die strict 3 – Funktion indirekt von einer Funktion mit niedrigerer Strictness aufgerufen wird.
  • Mannschaftsmitglieder, die inaktiv gesetzt worden sind und damit über den Sektionswechsel hinweg erhalten bleiben, bleiben bei Sektionswechsel stehen, um eine feststeckende ComDir zu vermeiden.
  • Alle Clonks im Originalpack verwenden nun dieselben Vertices wie der Standardclonk.
  • Alle Clonks im Originalpack verwenden bei Inventarwechsel nun unter allen Umständen die korrekte Action + Phase.
  • Eine Warnung wegen falschem Parametertypen im Inuk wurde behoben.
Kategorien
Allgemein

LegacyClonk 4.9.10.12 [351]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Dies ist ein Bugfixrelease zu [350].

Bugfixes

  • Bei nicht passenden Parametertypen von Callbacks, welche in #strict 2 oder niedriger eine Warnung verursachen, wird die Funktion nun auch tatsächlich trotzdem ausgeführt.

Kategorien
Allgemein

LegacyClonk 4.9.10.12 [350]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Dies ist primär ein Bugfixrelease zu [349], enthält aber auch neue Features.
Das Update wird bei Macspielern Preloading aufgrund möglicher Crashes ausschalten, sofern aktiviert; es kann manuell in den Einstellungen wieder aktiviert werden.

Scriptwarnungen / -fehler bei falsch angegebenen Parametertypen in Enginecallbacks

Vor diesem Release wurden Parametertypen von Callbacks, die von der Engine erfolgen, nicht gecheckt und damit auch keine Typumwandlungen durchgeführt. Dies hat zu Bugs geführt, mit denen die Engine auch gecrasht werden konnte.

In 350 werden die Typangaben nun respektiert. Das führt bei nicht passenden Typen zu Warnungen bzw. Fehlern:


Beispiel: EffectCall übergibt der Funktion einen String als Argument, die Funktion will allerdings einen Integer.

  • Ist das Script #strict 2 oder niedriger, wird eine Warnung ausgegeben und die Typangabe des Parameters im Funktionsheader ignoriert.
  • Ist das Script #strict 3, wird ein Fehler ausgegeben.

Weitere Features

  • HTTP-Anfragen werden nun auch über die Fallback-Adresse ausgeführt, wenn die Verbindung sofort fehlschlägt. Damit funktionieren Anfragen auch, wenn diese davor über IPv6 getätigt wurden, aber die Verfügbarkeit verschwindet, ohne dass dafür die Engine neu gestartet werden muss.
  • Scriptfehler in Funktionen, die durch EffectCall, CheckEffect oder AddEffect aufgerufen werden, geben nun einen kompletten Stacktrace aus, wie von normalen Funktionen gewöhnt – davor ist nur bis zum EffectCall / … Aufruf ausgegeben worden, aber nicht, was EffectCall / … überhaupt aufgerufen hat.
  • Die Sortierreihenfolge von Szenarienordnern mit Auswahlkarten und Definitionen mit Sounds oder Rangnamen ist verbessert worden – neu gepackte Gruppen können sich über eine Geschwindigkeitserhöhung freuen.
  • Zu lange Stringliterale (mehr als 1024 Zeichen in einem Literal) verursachen in #strict 3 nun einen Fehler; kleinere #strict – Versionen verursachen weiterhin nur eine Warnung.

Bugfixes

  • Preloading bei macOS ist nun standardmäßig deaktiviert, da es Crashes verursachen kann.
  • Clonkrang und -name im HUD werden nun wieder in der korrekten Ordnung angezeigt – erst der Rang, dann der Name.
  • c4group.exe -s (Gruppe sortieren) speichert jetzt auch die Gruppe nach dem Sortieren und lässt die Änderungen nicht einfach verloren gehen.
  • Ein Client sendet nur noch Spielerupdatepakete, wenn die Änderung am Client passiert ist, um race conditions zu vermeiden.
  • Der Readycheck-Toast setzt den Spieler nicht mehr auf „nicht bereit“, wenn der Toast geschlossen wird; damit bleibt auch der Lobby-Dialog offen. Dies löst das Problem mit sofort geschlossenen Lobby-Dialogen im Vollbildmodus unter Windows.
  • Ein unnötiges leeres <i> – Tag aus Spielernachrichten wurde entfernt.
  • Scriptmaterialreaktionen bekommen Referenzparameter nun korrekt übergeben.
  • Zeichen in Spielstandsbeschreibungen werden nun korrekt escaped.
  • Musik kann nun ingame auch eingeschaltet werden, wenn Music.c4g überladen wurde.
  • Nicht invertierte Materialreaktionen mit einem einzelnen Material als TargetSpec funktionieren wieder.
Kategorien
Allgemein

LegacyClonk 4.9.10.12 [349]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Toasts

Clonk kann nun Toast-Benachrichtigungen unter Windows und Linux anzeigen. Momentan werden diese nur für /readycheck verwendet, wodurch der Spieler / die Spielerin auch darüber benachrichtigt wird, wenn Clonk nicht das aktive Fenster ist; außerdem kann Ja / Nein direkt über die Benachrichtigung ausgewählt werden. Ein Klick auf die Benachrichtigung setzt einen als bereit, da man schließlich am PC sein muss, um sie zu beantworten.

Sollten diese Benachrichtungen unerwünscht sein, können Toasts je nach Anwendungsfall über das Bearbeiten der Einstellungen in der Registrierung oder Konfigurationsdatei im Abschnitt Toasts ausgeschaltet werden; für Readycheck ist dies ReadyCheck.

LinuxspielerInnen seien daran erinnert, dass die Benachrichtungen über libnotify funktionieren und nur verwendet werden, wenn damit gebaut wird; sollte die Benachrichtigung aufgrund von Systemproblemen nicht korrekt erstellt werden können, wird eine Fehlermeldung geloggt.

Weitere Features

  • Wenn die Logdatei aufgrund fehlender Berechtigungen im Clonkordner nicht geöffnet werden kann, wird nun eine Fehlermeldung angezeigt.
  • Ports können jetzt größer als 32767 sein und das volle Spektrum bis 65535 verwenden. (#59)
  • Dateiendungen und das clonk:// – Protokoll werden unter Windows jetzt im Nutzerpfad der Registrierung eingetragen, sodass keine Administratorrechte mehr notwendig sind, um sie zu setzen.

Bugfixes

  • Ungültige Namen für SetPlrExtraData und SetCrewExtraData verursachen nun eine Warnung und werden ignoriert, anstelle die Chance zu haben, alle Werte zu löschen.
  • Automatisches Objektverkaufen verkauft nun alle Objekte in einem Schritt.
  • Der fehlende Punkt in der Versionsangabe in der Fehlermeldung, die auftritt, wenn das Szenario eine neuere Engineversion als vorhanden verlangt, ist nun vorhanden.
  • Stacktraces geben Parameter, die einen zu false konvertierbaren Typen haben, mit dem korrekten Typ anstelle von 0 aus.
  • Die Engine behandelt WM_USER_LOG nicht mehr, da es einfach einen vom Nutzer übergebenen Zeiger als String behandelt und daher unter anderem Crashes verursachen kann.
  • global-> kann nun korrekt in Statements verwendet werden.
  • Die Engine crasht nicht mehr, wenn ein Initialisierungsfehler auftritt, bevor das Musiksystem initialisiert worden ist.
  • /console crasht unter X11 nicht mehr.
  • Zufallsteams werden nun korrekt rebalanciert, wenn ein Spieler von einem schon kleineren Team entfernt wird.
  • { ist in Nicks nicht mehr erlaubt, da es zu Ausgabeproblemen in Teamchat führt.
  • In Endlosschleife laufender Musik wird jetzt wieder korrekt ohne Pause und Lognachricht abgespielt. (#55)
  • In Spielständen kann nun gejoint werden, auch wenn die maximale Spieleranzahl niedriger als die Anzahl der TeilnehmerInnen gesetzt worden ist.
  • Scrollen mit den Pfeiltasten funktioniert nun korrekt, wenn das Spiel pausiert ist (#56; danke an Cyprex).
  • Das Copyrightzeichen wird nun wieder korrekt in der Anwendungsbeschreibung angezeigt.
  • /fullscreen wird nicht mehr in die Registrierung eingetragen, da es entfernt worden ist.
  • Die Linux-X11-Konfiguration erkennt nun die rechte Umschalttaste korrekt.
  • Der Lobbycountdown wird von /readycheck auch mit größeren Standardcountdownwerten korrekt abgebrochen und gestartet.
  • c4group.exe wird im experimentellen Windows x64-Build korrekt geupdatet.
  • #strict 3 erzeugt bei return; jetzt korrekt return nil; anstelle von return 0;.
Kategorien
Allgemein

LegacyClonk 4.9.10.11 [348]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Neues Verhalten der Ingame-Musikeinstellungen

Das Drücken von F3 schaltet die Musik nur für die laufende Runde an / aus. Um diese Einstellung permanent zu setzen, kann der Eintrag im Optionsmenü in den Spieloptionen verwendet werden.

Natürlich gibt es weiterhin die Möglichkeit, dies außerhalb der Runde in den Optionen einzustellen.

Weitere Features

  • Bei ModulateClr und CustomMessage ist es in #strict 3– Scripts nun möglich, durch Angabe von 0 als Farbargument echtes Schwarz zu übergeben; nil entspricht weiterhin dem alten Verhalten in #strict 2 und kleiner und verwendet die Farbe weiß.
  • Der Download der experimentellen 64-Bit-Windows-Version ermöglicht nun das Verwenden einer 64-Bit-Version von Fmod, sofern vorhanden.
  • Die DefCore-Eigenschaft HideHUDElements hat nun einen neuen Wert – Inventory – erhalten, mit dem die Sichtbarkeit des Inventars an der linken unteren Bildschirmecke gesteuert werden kann. Benutzung erfolgt analog zu den anderen Flags, wofür ich auf die Dokumentation bzw. den Blogpost zu [346] verweise.
  • Maps löschen nun Einträge, die ein Objekt als Schlüssel verwenden, beim Entfernen dieses Objekts.
  • Die Anzahl der maximal verwendeten Soundkanäle wurde von 100 auf 1024 erhoben, um eine größere Vielfalt der Klangkulisse zu ermöglichen. 1024 ist dabei leider das Maximum, da Fmod nur so viele Kanäle gleichzeitig unterstützt und die Standardvoraussetzungen für FMod und SDL2_mixer dieselben sein sollten.
  • Der Auswertungsdialog hat nun nicht mehr Runde beenden im Fokus, wodurch versehentliches Beenden durch Drücken der Entertaste mit der Intention, den Chat zu öffnen, vermieden wird. Stattdessen öffnet das Drücken von Enter im Auswertungsdialog nun immer den Chat.
    Für schnelles Beenden über die Tastatur ist weiterhin das Drücken der Escapetaste möglich.

Bugfixes

  • Der Konsolenmodus crasht nicht mehr, wenn mehr als ein Sichtfenster offen ist und diese nicht in umgekehrter Reihenfolge geschlossen werden.
  • Das Spiel crasht nicht mehr, wenn zu wenig Soundkanäle für das Abspielen neuer Sounds vorhanden sind.
  • In [346] wurde eingeführt, dass Hit(int xdir, int ydir) nur noch in Objektdefinitionen ab Clonk Rage mit Argumenten abgerufen wird, da der Callback davor diese Parameter nicht hatte, was etwa in der Clonk Planet – Forschungsstation zu Scriptfehlern geführt hat. Leider ist uns dabei nicht aufgefallen, dass der mit Clonk Rage mitgelieferte Clonk Editor standardmäßig Definitionen mit der Versionsnummer 4.9.5, was Clonk Endeavour entspricht, erstellt – für Clonk Rage wäre mindestens 4.9.6 nötig. Warum dies der Fall ist, bleibt ein Mysterium; eigentlich sollte es auch keine Auswirkungen haben, da die Dokumentation das Anpassen der Versionsnummer an die jeweils aktuelle Version und / oder die Zielversion bei Änderungen des Objekts vorschreibt; die Realität sieht, wie so oft, aber anders aus. Daher wurde dieser Bugfix wieder rückgängig gemacht.

Kategorien
Allgemein

LegacyClonk 4.9.10.11 [347]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Dies ist ein reines Bugfixrelease zu 346.

  • Der Konsolenmodus crasht nicht mehr beim Beenden von Clonk, wenn mehr als ein Sichtfenster offen ist.
  • Zur Wahrung der Kompatibilität werden Definitionen ohne Versionsangabe nicht mehr als uralte Definitionen, sondern wie Definitionen mit der Versionsnummer 4.9.10.7, was Clonk Rage entspricht, behandelt. Allerdings wird eine entsprechende Warnung ausgegeben, da die Versionsnummer erforderlich ist und wir keine näheren Garantien zum Verhalten bei deren Fehlen abgeben!
  • Debugbuilds der Engine sind nun wieder kompilierbar, das Inkludieren eines Headers hat gefehlt.
Kategorien
Allgemein

LegacyClonk 4.9.10.11 [346]

Download: Windows x64 (experimentell), Windows x86, Linux x64, Linux x86, macOS (experimentell)

Objektskalierung

Vergleichsbild ist in Arbeit.

Hochauflösende Objektgrafiken in Clonk? Geht das?
Jetzt schon! Durch die neue DefCore-Eigenschaft Scale kann nun ein Skalierungsfaktor in Prozent bestimmt werden, in dem die Objektgrafiken vorliegen. Der Wert gibt an, bei welchem Spielskalierungsfaktor die Objektgrafik in Originalgröße dargestellt wird.

Soll heißen:

  • Scale=100 bedeutet, dass die Objektgrafik bei 100% Spielskalierung (in den Optionen einstellbar) in Originalgröße gerendert wird. Bei höheren Spielskalierungen muss sie entsprechend raufskaliert werden. Dies ist das momentane und das Standardverhalten aller Objekte.
  • Scale=200 skaliert die Objektgrafik bei 100% Spielskalierung auf die Hälfte. Bei 200% Spielskalierung wird sie jedoch in Originalgröße dargestellt, wodurch die Unschärfe des Skalierens entfällt.

Werte sind nicht auf ganze Zahlen (100%, 200%, 400%, …) beschränkt, allerdings können bei unschönen Werten Skalierungsartefakte auftreten.

Länge, Breite, ActMap-Angaben können wie gewohnt in den Maßen angegeben werden, die das Objekt im Spiel haben soll. Eine Ausnahme besteht in der SolidMask – da die Pixel exakt den Pixeln der Grafik entsprechen müssen, müssen **nur** die Offsets in Grafikkoordinaten angegeben werden.

Beispiel: Ich möchte der Stahlbrücke aus Codename: Modern Combat eine höher auflösende Grafik verpassen. Ein Auszug aus den Grafikparametern der DefCore.txt lautet wie folgend:

Neue Soundengine

Bisher wurde für Sounds auf Windows FMOD und auf anderen Plattformen SDL_mixer 1.2 verwendet. Dies brachte einige Probleme mit sich, etwa den MIDI-Bug mit FMOD, verschiedene SDL-Unschönheiten und, dass kein Windows-LC-Archiv komplett out-of-the-box läuft, weil zuerst fmod.dll aus dem CR-Archiv kopiert werden muss, da diese aus Lizenzgründen nicht mitgeliefert werden darf.
Ab 346 wird standardmäßig für alle Plattformen SDL2_mixer verwendet, wie bereits in 344 versucht wurde. Dies bringt eine kleine Klangänderung mit sich – wie stark, hängt von den Ohren der befragten Person und den verwendeten Sounds ab.

Im Gegensatz zum letzten Versuch gibt es allerdings für Windows-Nutzer die Möglichkeit, weiterhin FMOD zu verwenden, indem die fmod.dll aus Clonk Rage in den Clonk-Ordner eingefügt wird. Für alle bestehenden Installationen müsste dies also ohne zusätzlichen Aufwand bereits der Fall sein.
Wenn FMOD korrekt geladen wird, erscheint beim Ladebildschirm noch vor dem Hauptmenü die Nachricht Using dynamically loaded FMod for sound.

Sollte allerdings SDL2_mixer verwendet werden und es bei Szenarien mit sehr vielen Sounds zu Problemen kommt, weil die mit 32-Bit zur Verfügung stehenden 2 GB RAM nicht ausreichen, kann auf die (momentan experimentelle) 64 Bit-Version ausgewichen werden.

Achtung: Die fmod.dll von Clonk Rage funktioniert nur mit der 32-Bit-Version.
Für die 64-Bit-Version ist zwar dieselbe Funktionalität möglich, allerdings müsste dafür die 64 Bit-Version fmod64.dll vorhanden sein.

Verbesserung des authentischen Clonk-Planet-Erlebnisses

Die Landschaft von Szenarien, deren Versionsnummer kleiner als 4.6.5 ist, wird nun standardmäßig ohne 3D-Materialschattierung dargestellt, um dem Originalverhalten näherzukommen. EntwicklerInnen können die Materialschatterierung für ihre Szenarien über die Einstellung ShadeMaterials der [Landscape] – Sektion der Scenario.txt ändern. Ein Wert von true schaltet es ein, ein Wert von false aus.

Weiters wurden einige Bugs gefixt, die zu Scriptfehlern in alten Szenarien führten, etwa in der Clonk Planet – Forschungsstation.

Weitere neue Script- und Objektfeatures

  • Mittels der DefCore-Eigenschaft BaseAutoSell kann nun gesteuert werden, ob ein Objekt in der Basis automatisch verkauft wird oder nicht. Standardwert ist false, außer das Objekt hat die ID GOLD, damit Goldobjekte von Drittanbietern nicht kaputtgehen.
  • Mittels der DefCore-Eigenschaft HideHUDElements können nun bestimmte Elemente des Clonk-HUDs am linken Bildschirmrand in Crewmemberobjekten verborgen werden. Bitmaske. Mögliche Werte:
NameWertVersteckt
Portrait1Clonkportrait
Captain2Kapitänssymbol
Name4Clonkname
Rank8Rangname
RankImage16Rangsymbol
All31Alles davon
  • Neuer Scriptoperator ??. Ist der erste Operand nil, wird der zweite Operand zurückgegeben, ansonsten der erste.
  • Neuer Scriptoperator ??=. Setzt den ersten Operanden auf den zweiten, wenn der erste nil ist.

Weitere Features

  • Der Netzwerkstack versucht nun nicht mehr, sich mit Nulladressen zu verbinden, was technisch nicht möglich ist; dadurch erzeugte Nachrichten müllen das Log nun nicht mehr voll.
  • Auf UNIX-Systemen werden etwaige auftretende Signale nach der Ausgabe des Stacktraces wieder ausgelöst, wodurch der Crashhandler des Systems aufgerufen wird.
  • Die Lobby zeigt nun die Anzahl der Spieler in der Lobby sowie der maximal möglichen Spielerzahl in der Titelleiste der Spielerliste an.
  • Vorladen ist nun standardmäßig aktiviert und nicht mehr in der experimentellen Phase. Wir bedanken uns bei allen Spielerinnen und Spielern, die Feedback geliefert haben.
  • /sound fällt nun auf die Dateiendung .ogg zurück, wenn kein Sound mit passendem Namen und Endung .wav gefunden werden kann.
  • Alt + Enter öffnet im laufenden Spiel nun die Chateingabe für Nachrichten über dem Clonk.
  • Leere Chateingabzeilen werden beim Drücken der passenden Tastenkombinationen entsprechend ausgefüllt, ohne sie davor schließen zu müssen.
  • experimenteller macOS-Support wie schon in 344
  • experimentelle 64-Bit-Windows-Anwendung

Bugfixes

  • Bei Fehlern während des Spielstarts wird nun anstelle eines nicht existierenden Stringtable-Eintrages namens IDS_PRC_FAIL eine passende Fehlermeldung angezeigt.
  • Mit etwas Glück ist ein bei Netzwerkspielen und insbesonders in Lobbies auftretender Crash behoben. (Technischer Hintergrund: StdStrBuf::AppendFormatV mit seinen verschiedenen Implementierungen für Windows und Linux wurde durch eine neue Implementierung mittels variadic templates anstelle von va_list erstellt. Damit tritt auch der Bug, dass über den Stack hinausgelesen wird, da die Argumentliste bei mehrfachen vsnprintf – Aufrufen nicht kopiert wird, nicht mehr auf, danke an Sharkigator aka Foaly fürs Melden und den Pull Request.)
  • Die Performance von die Landschaft modifizierenden Funktionen wie SetLandscapePixel und DrawMaterialQuad wurde drastisch verbessert; SetLandscapePixel sollte nun etwa 10 – 20 Mal so schnell sein wie davor. (Technischer Hintergrund: Zur Landschaftsbearbeitung muss Clonk die Landschaft aus dem GPU-Speicher in den Hauptspeicher laden. Bisher wurde immer die ganze Landschaft geladen, egal, wie groß die Änderung war; mit 346 wird nur der benötigte Bereich geladen.)
  • Fälle, in denen Maps ihre Schlüssel referenziert haben, wurden entfernt.
  • Kann weder ein UDP-Socket erstellt noch der Referenzserver gestartet werden, crasht das Spiel nicht mehr. (Technischer Hintergrund: Schlug die Referenzservererstellung fehl, wurde fälschlicherweise die Fehlermeldung des UDP-Sockets abgefragt.)
  • Die Landschaft zählt nun keine Pixel von ungültigen Materialien mehr.
  • Verlässt man die Lobby direkt am Anfang vom Vorladen, crasht das Spiel nicht mehr durch das versuchte Laden einer ungültigen Ressource.
  • Der Bereit-Dialog kann nun nicht mehr mit Ja bestätigt werden, wenn alle Ressourcen noch nicht vollständig herunterladen wurden.
  • Hit(int xdir, int ydir) wird nur noch in Objektdefinitionen ab Clonk Rage mit Argumenten abgerufen, da der Callback davor diese Parameter nicht hatte, was etwa in der Clonk Planet – Forschungsstation zu Scriptfehlern geführt hat.
  • Local(0) in Szenarien aus Clonk Planet – Zeiten wird nun wieder korrekt geladen. (Technische Hintergrund: Der Wert wurde als Integer geladen, anstelle automatisch bestimmt zu werden.)
  • Das Spiel crasht unter Windows nicht mehr, wenn ein Fehler direkt beim Programmstart auftritt.
  • Der Referenzserver antwortet nun mit HTTP 405 Method Not Allowed, wenn eine nicht unterstützte HTTP-Requestmethode verwendet wird.
  • Die Kompilieroption USE_STAT funktioniert wieder.
  • Aufnahmen werden nun gleich abgespielt, egal, ob mit oder ohne Vorladen aufgenommen wurde.
  • Updateknopf aus der Netzwerkliste entfernt. Die Architektur des Updatesystems hat zu Crashes geführt, wenn der Updateserver zu langsam geantwortet hat. (Technischer Hintergrund: Bis eine Antwort erhalten wird, wird die Mainloop im Netzwerkdialog ausgeführt. Verlässt man die Netzwerkliste, bevor eine Antwort erhalten worden ist, wird diese gelöscht; bei Erhalt der Antwort wird die Ausführung somit in einem gelöschten Objekt fortgesetzt.)
  • Temporäre Standalone-Dateien des Netzwerks werden nun korrekt gelöscht.
  • Lokal verfügbare, entpackte Ressourcen können nun nicht mehr in der Lobby gespeichert werden.
  • Startet der Host ein Netzwerkspiel mit entpackten Objektdefinitionen, verwendet er trotzdem die dadurch gepackten Versionen, um Desyncs durch andere Ladereihenfolgen vorzubeugen.
  • Jump and Run – Controls bleiben nicht mehr in gedrücktem Zustand, wenn die Taste während eines offenen Menüs / Dialogs losgelassen wird.
  • Neustartspielerwiederherstellungsinformationen werden nicht mehr gelöscht, wenn der „Spiel beenden“ – Dialog aufgerufen wird, aber mit Nein zum Spiel zurückgekehrt wird.
Kategorien
Allgemein

LegacyClonk 4.9.10.10 [345]

Download: Windows, Linux x64, Linux x86, macOS

Dies ist ein reines Bugfixrelease zu 344.
Unerwarteterweise haben sich durch die neue Audioengine und CURL mehrere mehr oder weniger gravierende Bugs eingeschlichen. Deswegen wurden diese in diesem Update weggelassen, sodass nun auch das alte Soundverhalten wieder zu hören ist. Die anderen Features von 344 sind jedoch vorhanden, sodass der Changelog des letzten Updates teilweise trotzdem noch gültig ist.

Updaten per Ingame-Updatefunktion ist aufgrund eines CURL-Timeout teilweise nicht möglich – in diesem Fall bitte die oben verlinkten ZIPs verwenden!

Kategorien
Allgemein

LegacyClonk 4.9.10.10 [344]

Download: Windows, Linux x64, Linux x86, macOS

Bereit-Dialog

Gibt der Host in der Lobby /readycheck ein, öffnet sich bei den Clients ein Dialog, in dem sie bestätigen müssen, ob sie bereit sind oder nicht. Dabei hat dieser Dialog ein Zeitlimit von 15 Sekunden, nach dem der Client als nicht bereit zählt, um Bereitleichen zu vermeiden.

Der Befehl kann nur alle 10 Sekunden aufgerufen werden. Per manueller Konfigurationsbearbeitung kann dieser Cooldown, falls erwünscht, auf bis zu 5 Sekunden gesenkt werden – auch wenn die Clients permanente Dialoge nicht gutheißen werden.

HTTPS

Luchs‘ Pull Request für OpenClonk wurde auf LC portiert, sodass die HTTP-Requests der Engine nicht mehr mit dem kruden Eigenbau, welcher weder HTTP/1.1 noch HTTPS implementiert hat, versendet werden. Stattdessen wird nun libcurl verwendet, wodurch sich beide Probleme gelöst haben. Die Kommunikation mit dem Masterserver und der Liga verläuft nun verschlüsselt, wenn die URLs entsprechend angepasst sind, was die Engine für Clonkspot automatisch erledigt.

Neue Soundengine

Bisher wurde für Sounds auf Windows FMOD und auf anderen Plattformen SDL_mixer 1.2 verwendet. Dies brachte einige Probleme mit sich, etwa den MIDI-Bug mit FMOD, verschiedene SDL-Unschönheiten und, dass kein Windows-LC-Archiv komplett out-of-the-box läuft, weil zuerst fmod.dll aus dem CR-Archiv kopiert werden muss, da diese aus Lizenzgründen nicht mitgeliefert werden darf.
Ab 344 wird für alle Plattformen SDL2_mixer verwendet. Dies bringt eine kleine Klangänderung mit sich – wie stark, hängt von den Ohren der befragten Person ab. Beschwerden über den neuen Klang hatten wir bisher keine, Feedback jeder Art ist aber definitiv erwünscht.

Bekannter Bug: Der Sound der Gatling in Western.c4d hat die Dateiendung .wav, ist aber eine MP3. Ob dies aus lizenztechnischen oder anderweitigen Gründen geschehen ist, ist nicht bekannt, wegen dieser Sounddatei wird jedoch eine Warnung ausgegeben.

Weitere Features

  • Wiedereinführung des Mac-Supports mittels SDL2
  • Bratkartoffl in den Credits
  • Zwischenablage für SDL-basierte Engines
  • Bei der Eingabe von | wird nun ¦ eingegeben.
  • Eine Änderung des Netzwerkmodus im F4-Dialog wirkt sich nun auch auf die Konfiguration aus.
  • Einträge in der Auswahlkarte können nun durch Setzen von SingleClick=true im entsprechenden Abschnitt in der FolderMap.txt per einfachem Klick anstelle von Doppelklick gestartet werden.
  • Im Konsolenmodus kann durch Mausradklick das Material unter dem Mauscursor als zu zeichnendes Material gesetzt werden.
  • Der Titel der Beschreibung von Spielständen enthält nun kein Markup mehr.
  • Der Abbrechen-Knopf des Spielstartwartedialogs ist nun nicht mehr fokussiert, um versehentliche Betätigungen zu vermeiden.
  • Die verschiedenen Aufnahmeknöpfe setzen nun direkt permanent den entsprechenden Konfigurationswert.
  • Die Hostversion des Spielstartwartedialogs enthält nun eine Neustartschaltfläche.
  • Mittels dem Kommandozeilenargument /allocconsole kann unter Windows nun eine Konsole allokiert werden, an die Standardein- und ausgabe gebunden werden.
  • Aktualisierung der Infostrings in Windowsbinaries
  • Strg + Enter öffnet die Chatzeile nun mit vorangestelltem ".
  • Scriptfunktion DrawModLandscape aus der Engine entfernt und in System.c4g durch einen Stub ersetzt. Die Funktion war für das spezielle Materialshading in Lhûnrim verantwortlich, funktioniert aber mindestens seit Clonk Rage nicht mehr.
  • Clients ohne Spieler müssen nicht mehr bereit sein, um das Spiel automatisch zu starten.
  • Auswahlkarteneintragoverlays werden nun geblockt nach den Basisgrafiken geladen.
  • Grafiken können beim Vorladen aktualisiert werden, wenn Config.Lobby.PreloadGraphics auf true gesetzt wird.
  • Die Bereitcheckbox hat nun einen fixen 2-Sekunden-Cooldown.

Bugfixes

  • Crash beim Abspielen von Aufnahmen, in denen /sound verwendet worden ist, behoben
  • Die Beschreibung von Spielständen enthält wieder Definitionen anstelle von Müll.
  • Die Beschreibung von Spielständen hat nun kein extra Komma am Ende der Clientauflistung mehr.
  • Lädt man als Client ein Szenario mit einer Musik vor, hängt man bei Spielstart nicht mehr in einer Endlosschleife.
  • Die Engine crasht nicht mehr, wenn der Netzwerkdialog verlassen worden ist und der Updateserver in der Zeit nicht geantwortet hat.
  • Ein Desync aufgrund der Wiederherstellung während der Regelerstellung erzeugter globaler Effekte wurde behoben.