Seite 1 von 1
Gruppe tot/bewustlos aber Dlg erscheint ob man rasten will
Verfasst: 22. Aug 2015, 22:54
von Hindro
Meine Gruppe hat gegen so ein paar Räuber verloren, die 1. Stufe ist halt hart.
Lustig ist aber das der Nach-Kampf-Rast-Dialog erscheint auf dem Gruppe ist tot Schirm.
Ich hab dann aus Spaß gesagt ja ich will rasten.
Dann hat sich das Programm nur noch durch Fenster schließen beenden lassen.
Verfasst: 22. Aug 2015, 23:28
von Lares
Hindro du hast ein neues Bild zum Lagern im Gebirge erschaffen.
O.K., schauen wir uns mal den Code an. Das ist aus der globalfights.xml:
Code: Alles auswählen
if (battleresult == "victory") startdlg("post_camp_fight");
Jeder camp_road hat diesen Script-Eintrag.
Das ist dann der Dialog dazu aus der de_dlgtext.xml:
[spoiler]
Code: Alles auswählen
post_camp_fight
1
0 ) return text;
var res = rollCheck({"who":"best","which":"heilenwunde","type":"skill"});
heiler = res.id;
return text.replace( /{0}/g, getName( heiler ) );
}
]]>
false
post_camp_battle_req
post_camp_battle_go
post_camp_battle_rast
post_camp_fight
2
true
post_camp_fight
3
true
[/spoiler]
Der Dialog dürfte aber eigentlich nicht triggern, da es dazu in der globalfights.xml keinen Befehl gibt. Tot ist tot. Also auf den ersten Blick sehe ich nicht, woran das liegen könnte. Da wird also einfach bei Tot der Dialog getriggert, was natürlich nicht sein darf. Mal sehen, ob jemand mehr dazu sagen kann als ich.
Und Hindro, sollte wieder erwarten deine Gruppe noch ein Kampf nicht schaffen und du wieder das Problem haben, denk dann bitte an die output_log. Dadurch können wir bei solchen Problemen meistens besser erkennen, woran es liegt.

Verfasst: 22. Aug 2015, 23:47
von Praiodan
Hier scheint sich was zu beißen: So wie ich den 2. Screenshot verstehe, sind alle bewusstlos - aber nicht tot. Damit sind sie handlungsunfähig, was das Game-Over erklärt. Aber offensichtlich nicht tot genug im Sinne von wirklich tot, um den Rast-Dialog zu verhindern. Dann scheint wieder "alle handlungsunfähig" zu greifen, und das Programm verheddert sich...
Verfasst: 22. Aug 2015, 23:52
von Lares
[quote='DJ_rainbow','index.php?page=Thread&postID=113824#post113824']So wie ich den 2. Screenshot verstehe, sind alle bewusstlos - aber nicht tot.[/quote]
Gut aufgepasst. Vielleicht gibt es dadurch wirklich ein Problem. Ich weiß, das etwas wegen dieser Situation (alle handlungsunfähig) angepasst wurde (im Allgemeinen und nicht nur auf den Kampf bezogen). Ich meine, Mordbrenner hatte sich damit auseinandergesetzt. Er wird uns hier vielleicht weiterhelfen können.
Verfasst: 24. Aug 2015, 16:39
von Mordbrenner
Hmmm, also sehr komisch ist, dass der Dialog kommt, obwohl Du den Kampf ja verloren hast. Damit sollte die Bedingung
Code: Alles auswählen
if (battleresult == "victory") startdlg("post_camp_fight");
definitiv nicht erfüllt werden.
Kann es sein, dass Du irgendwelche Mods aktiv hast, in dem Kämpfe vorkommen, wo "post_camp_fight" immer gestartet wird und nicht nur bei victory? Oder gibt es im Vanilla irgendeinen Zufallskampf, wo die Abfrage fehlerhaft ist?
Verfasst: 24. Aug 2015, 16:52
von Hindro
Kämpfe in einer MOD glaube ich nicht, denn die MODs die ich aktiv habe sind:
ankaufpreise30prozent (sollte keine haben)
anleitung_v1.0 (sollte keine haben)
campAttackprob (hat keine)
schwertdueleant (hat keine)
Was den Zufallskampf betrifft, ich war glaub ich irgendwo zwischen Rukian und Auplog.
Und ich hab das Logfile "gefunden".
Verfasst: 24. Aug 2015, 16:53
von Lares
[quote='Mordbrenner','index.php?page=Thread&postID=113965#post113965']Oder gibt es im Vanilla irgendeinen Zufallskampf, wo die Abfrage fehlerhaft ist?[/quote]
Ich habe das gerade noch mal gescheckt und es ist keine fehlerhaft.
Was passiert denn (lass den Kampf mal außen vor), wenn alle Helden bewusstlos sind. Was macht das Spiel dann? Und kann das irgendwie einen Kampf beeinflussen, wenn plötzlich im Kampf alle bewusstlos werden?
Verfasst: 24. Aug 2015, 16:54
von Lares
2ter Beitrag in Folge.
[quote='Hindro','index.php?page=Thread&postID=113968#post113968']Kämpfe in einer MOD glaube ich nicht, denn die MODs die ich aktiv habe sind:[/quote]
Ich glaube, das es zurzeit keine einzige Mod gibt, die zusätzliche camp_road hinzufügt oder abändert. Das können wir eigentlich ausschließen.
Verfasst: 24. Aug 2015, 17:08
von Mordbrenner
Hurra, ein log
Also:
Code: Alles auswählen
Executing PostBattleScript for orkueberfall:
var battleresult = 'fleeordie';
startdlg("post_camp_fight");
und folgende Mods sind aktiv:
Code: Alles auswählen
Loaded 4 packages for Usermod
- ankaufpreise30prozent, ContentInfo(ContentFolder: ankaufpreise30prozent, ContentType: Usermod, CombinedSettingsFileName: ankaufpreise.xml, LoadVersion: 0, LoadOrder: 0, AssetBundles: [])
- anleitung_v1.0, ContentInfo(ContentFolder: anleitung_v1.0, ContentType: Usermod, CombinedSettingsFileName: anleitung.xml, LoadVersion: 0, LoadOrder: 5, AssetBundles: [])
- campattackprob, ContentInfo(ContentFolder: campattackprob, ContentType: Usermod, CombinedSettingsFileName: campattackprob.xml, LoadVersion: 0, LoadOrder: 2, AssetBundles: [])
- schwertduelant, ContentInfo(ContentFolder: schwertduelant, ContentType: Usermod, CombinedSettingsFileName: schwertduelant.xml, LoadVersion: 0, LoadOrder: 10, AssetBundles: [])
Fehlt bei dem orkueberfall die Abfrage im postbattleskript?
Verfasst: 24. Aug 2015, 17:09
von Lares
3ter Beitrag in Folge.
Es gibt 3x "game over" in der output_log. Doch nur beim ersten sieht es so aus, das hier das PostBattleScript ausgeführt wurde:
[spoiler]
Code: Alles auswählen
Executing game over
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
TimeController.paused set to True
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
Found handler for mood_desert: MoodCtrl (MoodController)
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
No Asset Bundle found for mood_desert
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
Finalizing Battle, forced is False
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
Setting Journey Buttons to True with journey [Journey: maptext_rt_road, Pos 10,61%, Dir 1, moving False, route rukian-fangbodi], route DSA.Model.TravelRoute route type land
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
CurrentControl is NOT null, using executePostBattleScript
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
Executing PostBattleScript for orkueberfall:
var battleresult = 'fleeordie';
startdlg("post_camp_fight");
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
Executing post_camp_fight [1]
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
rollCheck: actorchar 'Forgrimm' can't act
(Filename: C:/buildslave/unity/build/artifacts/StandalonePlayerGenerated/UnityEngineDebug.cpp Line: 56)
Call to processtext( 0, ... und nachdem der letzte Angreifer zusammenbricht, atmet {0} tief durch. "Ich glaube wir haben gewonnen. Zeit die Rüstung abzulegen, damit ich einen Blick auf eure Wunden werfen kann." ) execution error: Jurassic.JavaScriptException: TypeError: undefined cannot be converted to an object
at Jurassic.TypeConverter.ToObject (Jurassic.ScriptEngine,object)
at (wrapper dynamic-method) object.processtext (Jurassic.ScriptEngine,Jurassic.Compiler.Scope,object,Jurassic.Library.FunctionInstance,object[])
at Jurassic.Library.UserDefinedFunction.CallLateBound (object,object[])
at Jurassic.ScriptEngine.CallGlobalFunction (string,object[])
at Jurassic.ScriptEngine.CallGlobalFunction (string,object[])
at LocationView.enginereturn (string,object[])
[/spoiler]
Und was hier merkwürdig ist, das "Forgrimm can't act" angezeigt wird.
Verfasst: 24. Aug 2015, 17:12
von Mordbrenner
[quote='Lares','index.php?page=Thread&postID=113973#post113973']Und was here merkwürdig ist, das Forgrimm can't act angezeigt wird.[/quote]
Nö, das ist nicht merkwürdig, denn er ist ja ohnmächtig und damit can't act. Da ist ja eine "best"-rollcheck und die findet niemanden, da alle k.o. sind.
Was merkwürdig ist, ist, dass trotz fleeordie der dialog gestartet wird.
Verfasst: 24. Aug 2015, 17:14
von Lares
[quote='Mordbrenner','index.php?page=Thread&postID=113972#post113972']Fehlt bei dem orkueberfall die Abfrage im postbattleskript?[/quote]
Also bei den beiden Orküberfällen steht folgendes in der globalfights.xml:
Dann wäre hier der Fehler, das nicht im Script steht, wann er den Dialog starten soll.
Verfasst: 24. Aug 2015, 17:15
von Mordbrenner
Dann ist das ein Bug, dass hier die if-Abfrage fehlt, sondern der Dialog immer kommt, auch nach gameover.
Verfasst: 24. Aug 2015, 17:15
von Lares
[quote='Mordbrenner','index.php?page=Thread&postID=113977#post113977']Dann ist das ein Bug, dass hier die if-Abfrage fehlt.[/quote]
Sehe ich auch so. Bug erkannt. Sehr schön.

Verfasst: 24. Aug 2015, 17:17
von Hindro
Die Frage ist doch wieso ist battleresult 'fleeordie' und nicht 'lost'.
Verfasst: 24. Aug 2015, 17:19
von Mordbrenner
weil es nur "victory" oder "fleeordie" gibt.
Verfasst: 24. Aug 2015, 17:24
von Lares
Ich habe beim Bug auch vermerkt, das bei einer Korrektur wir sicherheitshalber alle Kämpfe in der globalfights.xml gegenchecken. Vielleicht wurde das auch noch bei einigen anderen Kämpfen falsch eingetragen.
Verfasst: 24. Aug 2015, 17:26
von Hindro
Grr Ach so muss man das lesen: "flee or die"
Verfasst: 12. Okt 2015, 12:52
von Mordbrenner
gefixt in 1.36