Grüße,
habe einen CtD, spiele mit Patch 3b, also ohne marodeur, wobei es den noch garnet geben würde.
Spiele auf marathon und Crash kommt ziemlich schnell nach rundenwechsel, auch nach neuladen einige Runden zuvor.
Grüße,
habe einen CtD, spiele mit Patch 3b, also ohne marodeur, wobei es den noch garnet geben würde.
Spiele auf marathon und Crash kommt ziemlich schnell nach rundenwechsel, auch nach neuladen einige Runden zuvor.
Na das is mal ne Ansage. Ok, Marodeur kommt raus! Endlich Gewissheit!
Die sind für alle Schiffe ab Kontere sichtbar (ja sogar schon für die Kriegskarveele). "Nur" für Landeinheiten sind sie nicht sichtbar.
Achso, dann meinst du wohl, dass du "Feindliche Bewegung anzeigen" deaktiviert hast und deshalb siehst du sie nicht. Stimmts?
Master: jetzt kommt dein Save dran.... ist scheinbar ein anderer fehler als der stehende sklave.... verdammt...
Feindliche Bewegungen anzeigen ist aus. Sonst wird mir schlecht beim Rundenwechsel^^ Das war doch des, wo die Kamera bei jeder Gegner- und Barbbewegung hinspringt?
Ich schalts auch erst später ein. Bei den Tieren isses wirklich nervig.
Ich habs halt schon von BtS her ausgeschaltet. Bei normalen Gegnern seh ich ja nachher wo sie sind. Nur bei Piraten halt leider net^^
Zu Masters CtD: es wird immer konfuser. Ich werd schon langsam verrückt.
Gibts denn etwa einen Zufallsgeneratorenbeschränkung in Funktionen?!?!
wenn ich CyGame().getSorenRandNum an der Stelle mit CyGame().getMapRandNum ändere, kommt kein CtD mehr.
Der Standardbefehl CyGame().getSorenRandNum() verursacht nen CtD hier ?!?! Ich spinne!!! Civ IV modden wird immer grausamer. Das kanns doch nicht sein!
ich hoffe nur, dass maprand keine OOS verursacht....
Geändert von Pie (29. November 2012 um 01:31 Uhr)
Ein schönes Fundstück: wo ist die Kulturgrenze?
Achtung Spoiler:
Die Funktion getSorenRandNum hat eigentlich keine Möglichkeiten abzustürzen. Hier sollen die wiederholbaren "Zufallszahlen" hergenommen werden (Option: neuer Randomseed beim Laden).Code:unsigned short CvRandom::get(unsigned short usNum, const TCHAR* pszLog) { if (pszLog != NULL) { if (GC.getLogging() && GC.getRandLogging()) { if (GC.getGameINLINE().getTurnSlice() > 0) { TCHAR szOut[1024]; sprintf(szOut, "Rand = %d on %d (%s)\n", getSeed(), GC.getGameINLINE().getTurnSlice(), pszLog); gDLL->messageControlLog(szOut); } } } m_ulRandomSeed = ((RANDOM_A * m_ulRandomSeed) + RANDOM_C); unsigned short us = ((unsigned short)((((m_ulRandomSeed >> RANDOM_SHIFT) & MAX_UNSIGNED_SHORT) * ((unsigned long)usNum)) / (MAX_UNSIGNED_SHORT + 1))); return us; }
Vielen Dank, läuft wieder.
nur was bedeuten die blauen Zahlen, die für die einzelnen Völker beim Rundenwechsel durchlaufen?
ist bisher immer nur null
oh mist. hab die testmessage vergessen abzudrehen. bitte lad die datei (anbei) nochmalrunter, wenns stört.
Flunky: tja was soll ich sagen: probier das save von master und dann ändere in zeile 2770 getSorenRandNum in getMapRandNum und siehe da: kein Absturz. bin verdammt neugierig, ob es bei dir auch so funzt und anders abstürzt.
Also ich krieg keinen CtD, aber nen endlosen Rundenwechsel^^
Und in Zeile 2770 hab ich des Event, dass Vasallen nach ner Tech fragen.
Geändert von Flunky (29. November 2012 um 13:29 Uhr)
Auch beim Eventmanager von Post #84?
(da steht zwar schon MapRand, aber das kannst du ja zu SorenRand ändern)
Ich vermute auch mal, dass die unterschiedlichen Zufallszahlen dazu führen, dass nur im ersten Fall ein Fehler ausgelöst wird. Der Fehler liegt aber nicht direkt im Zufallsgenerator. Das denkt man nur, wenn man stundenlang vergeblich auf den Code starrt
Das kann ich mir ja auch nicht vorstellen, aber wenn ich alle Zeilen ausdokumentiert habe und nur die Zeile mit dem Zufallsgenerator zum CtD führt, gibt es keinen anderen Schluss. Was soll ich machen?! Wahrscheinlich liegts irgendwie am Save, anders kann ich mir nicht vorstellen, warum er genau in diesem Moment keine Zufallszahl zulässt!
Ich habe es auch getestet und du hast recht, es liegt in der Funktion.
Da es läuft, wenn ich das zweite Argument auf NULL setze, muss der Fehler in einer der aufgerufenen Funktionen in getSorenRandNum(...) liegen. Ohne Debugger oder Ahnung macht das aber keinen Spass danach zu suchen
Was glaubst du wie überrascht ich war, dass DAS der Fehler war?! ich hab zuerst alles rundherum getestet, bis ich nur mehr diese Zeile aktiviert hatte. Unglaublich aber wahr!