Not logged inClonkspot Forum
Forum Home Help Search Register Login
Up Topic Deutsch / Hilfestellung / [Gelöst] DefCore Version
- - By Serpens66 (More than 200 posts.) Date 20.10.2014 18:13
Welche Auswirkung hat die Versionsnummer in der DefCore? Bisher hat es den anschein auf mich gemacht, als wäre diese völlig egal. Aber in dem CRTool muss man diese Verpflichtend angeben. Was tippe ich da ein?
Parent - - By TLK (More than 200 posts.) Date 20.10.2014 18:40
Die Version von Clonk die du benutzt. 4.9.10.7 [330] ist glaube ich die Aktuelle. Die steht immer im Startbildschirm über dem "Spiel starten" Button.
Parent - - By Serpens66 (More than 200 posts.) Date 20.10.2014 19:30
aber es hat keine negativen Auswirkungen, wenn ich bei einem alten Objekt eine neue Version reinschreibe, oder in ein neues Objekt eine alte Version?
Parent - By TLK (More than 200 posts.) Date 20.10.2014 19:45
Nicht das ich wüsste, viele Objekte aus CE funktionieren ja einwandfrei und manche GWE/CP Objekte funktionieren fast ohne Fehler.
Parent - By Luchs (More than 1000 posts.) Date 20.10.2014 20:31
Die Motivation von der Nummer da ist, dass Spieler eine Fehlermeldung bekommen, wenn ihre Clonk-Version älter ist als die, für die das Objekt entwickelt wurde. Ich weiß nicht, ob das CR tatsächlich noch macht. Da es aber sowieso keine neuen CR-Versionen mehr geben wird, kannst du den Eintrag völlig ignorieren.
Parent - - By Sven2 (More than 500 posts.) Date 20.10.2014 22:31
Es gab mindestens einen Fall, in dem die Version Auswirkung auf die Aufrufreihenfolge von Callbacks hat. Bin mir nicht sicher, ob das immer noch so ist.
Parent - By ClonkGeist (More than 50 posts.) Date 20.10.2014 22:51 Edited 20.10.2014 22:56
Mit dem Problem hatten wir in CMC schon zu kämpfen. Die ContainedControl-Callbacks wurden wenn ich mich recht erinnere erst aufgerufen, nachdem die Engine die Controls schon verarbeitet hatte, weshalb man das Öffnen der Menüs/Verlassen des Gebäudes etc. nicht über den Rückgabewert verhindern konnte.
- By Jan (More than 50 posts.) Date 21.10.2014 14:50
Ich hab mal nachgeschaut:

https://git.openclonk.org/openclonk.git/blob/0f050f03439821fdf2c5e57cb6b406481c393126:/engine/src/C4Game.cpp#l113
https://git.openclonk.org/openclonk.git/blob/0f050f03439821fdf2c5e57cb6b406481c393126:/engine/src/C4Def.cpp#l1365
Wenn die Objektversion höher ist als die Engineversion dann wird eine Meldung (einfacher Logeintrag, also weder Warnung noch Fehler) ausgegeben und die Definition nicht mitgeladen.

https://git.openclonk.org/openclonk.git/blob/0f050f03439821fdf2c5e57cb6b406481c393126:/engine/src/C4Object.cpp#l3202
Bei Objektversionen unter GWE 3 (4.9.1.3) werden erst Standardkommandos und anschließend der ContainedControl-Callback ausgeführt. Die Dokumentation beschreibt übrigens immer noch das alte Verhalten: http://crdocs.clonkspot.org/de/sdk/definition/script.html

>ContainedControl: Befindet sich das direkt spielergesteuerte Objekt in einem anderen Objekt (Behälter), so werden zunächst die Standardkommandos Down (Verlassen), Throw (Ablegen), Up (Kaufen, in Basisgebäude) und Dig (Verkaufen, in Basisgebäude) ausgewertet. Anschließend wird die Steuerung als Contained-Funktion an den Behälter weitergegeben. Ausnahme: die Spezialkommandos ControlSpecial, ControlSpecial2 und ControlWheelUp/Down sind nur für die direkte Steuerung gedacht und werden nicht an den Behälter umgeleitet.


https://git.openclonk.org/openclonk.git/blob/0f050f03439821fdf2c5e57cb6b406481c393126:/engine/src/C4Object.cpp#l3465
Wenn die Objektversion kleiner als 4.9.5 (Endeavour) ist dann werden die Control*-Funktionen beim Anfassen eines Objekts erst nach den Standardkommandos ausgeführt.
Up Topic Deutsch / Hilfestellung / [Gelöst] DefCore Version

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill