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
oderAddEffect
aufgerufen werden, geben nun einen kompletten Stacktrace aus, wie von normalen Funktionen gewöhnt – davor ist nur bis zumEffectCall
/ … Aufruf ausgegeben worden, aber nicht, wasEffectCall
/ … ü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.