Seite 336 von 344 ErsteErste ... 236286326332333334335336337338339340 ... LetzteLetzte
Ergebnis 5.026 bis 5.040 von 5156

Thema: Der-kleine-Fragen-zum-Modding-Thread

  1. #5026
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    Da ist bestimmt doch irgendwo ein Unterschied. Ferndiagnosen sind natürlich schwierig, aber das kann alles sein von fehlender Grafik über nen gelöschten Eintrag möglicherweise bis hin zu unterschiedlichen CIV4 BTS-Versionen. Hat deine Mod ne eigene DLL? Wenn ja: Würde deine Mod auch ohne eigene DLL laufen? (z.B. weil du nur KI-Veränderungen drin hast oder so).

    Und: Kann der User denn genau dieses Save laden oder hat er es nach dem Speichern gar nicht selbst ausprobiert? Das Save könnte auch kaputt sein.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  2. #5027
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.012
    Also, der Mod hat eine eigene DLL und sehr viele Versionen. Daher bitte ich die User immer, mir die Version mitzuteilen, wenn sie ein Problem haben.
    Der Absturz kommt aber, wenn ich genau diese Version lade. Normalerweise verändere ich die nach dem Upload nicht mehr, außer für Bugfixe, kann mich aber nicht daran erinnern, einen vorgenommen zu haben.
    Der andere sagt, dass er das Save noch laden kann, scheint also nicht kaputt zu sein.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  3. #5028
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    Wenn deine Mod auch ohne DLL startbar ist, würde ich mal versuchen das Save ohne die DLL zu laden. Wenn das geht, liegt der Fehler wohl an der DLL.

    Wenn der User irgendwas verändert hat an Dateien, die deine Mod nicht überschreibt, kannste das Save natürlich auch nicht laden. Sichere Nummer wäre ein Vergleich beider Civ4-Ordner. Aber das geht mit anderen Usern natürlich schlecht. Ich würde ihn wohl bitten ein Startsave anzuhängen (4000 BC) und du schaust mal, ob du das laden kannst. Dürfte aber wohl auch nicht gehen.

    Hast schon mal versucht eine Debug DLL dieser Version zu erstellen und damit das Save zu laden?
    Geändert von Cybah (08. August 2021 um 14:13 Uhr)
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  4. #5029
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.012
    Ohne Dll lässt sich der Mod nicht starten, da es er zu viele neue Variablen enthält.

    Debug-Dll habe ich eigentlich immer drin, außer zum Spielen - und zum Upload. Da ich den Ordner vom Upload genommen habe (natürlich) war da die Release.dll drin, ich kann es also noch einmal mit der Debug versuchen. Dachte, die hätte ich schon im Asset-Ordner, war aber nicht so. Vielleicht hilft es.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  5. #5030
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.012
    Habe es jetzt probiert. Habe auch den Mod noch einmal aus dem Zip entpackt, das ich hochgeladen habe, und damit versucht zu laden. Beide male das selbe Ergebnis.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  6. #5031
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    Und der Nutzer selbst kann das Save jederzeit laden? Falls ja: Dann würde ich auch nochmal jemand drittes bitten das Save zu laden. Wenn der das auch nicht kann, gibts definitiv Unterschiede zwischen dem Civ4 des Nutzers und allen anderen.
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  7. #5032
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.012
    Wir haben den Fehler gefunden. Ich hatte beim Packen des Ordners einen Fehler gemacht. Den hatte ich mit dem Benutzer vorher schon einmal korrigiert, aber bei mir im Ordner nicht. Jetzt läuft es auch bei mir.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  8. #5033
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  9. #5034
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.012
    Ich habe wieder ein Problem mit meinem Mod, und zwar reproduzierbar. Immer, wenn ich im aktuellen Spielstand eine bestimmte Einheit bewege stürzt er reproduzierbar ab, bzw friert ein. Auch, wenn ich die Einheit mit W oder Leertaste überspringe, passiert das. Ich habe auch schon die Runde mit dem grünen Knopf beendet, sowie eine baugleiche Einheit im Weltenbauer daneben gesetzt - und wenn ich dann die alte Einheit auflöse, passiert nichts, dafür sorgt dann die neue Einheit fürs Einfrieren. Ich habe das Gefühl, dass es irgend etwas mit dem Aufruf der nächsten Einheit zu tun hat (falls es eine gibt, denn ich glaube, alle anderen Einheiten wurden diese Runde schon bewegt - zumindest habe ich überall, wo ich aktiv bin, geguckt. Und außerdem friert es auch ein, wenn ich die Runde abgeben will). Hat jemand eine Idee, was das sein könnte, oder wie ich die Fehlerquelle eingrenzen kann? Ich habe noch einen Großteil des Spiels und meiner Story vor mir.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  10. #5035
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.347
    Pythondateien mal raus. (Dann werden die von BTS genommen). Dann weißt du, obs an Python liegt.

    Dann im Eventmanager einzelne Bereiche auskommentieren, die von dir sind. Man kanns auch umgekehrt machen: Alle Extras im EventManager auskommentieren und einzeln aktivieren. Jedesmal probieren, bis der Fehler auftritt. Dann weißt du, welche Stelle es ist und dort gehts dann weiter mit den Tests.
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  11. #5036
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.012
    Ich habe etwas zweifel, dass es an Python liegt (ich werde es dennoch einmal so probieren, wenn ich die Zeit dazu habe). Welche Python-Stellen können denn überhaupt aufgerufen werden, wenn sich eine Einheit entweder bewegt oder auch nicht bewegt (Leertaste/Warten gedrückt)?

    Der Fehler tritt immer auf, wenn ich diese Einheit bewege:
    Bild
    Ich gehe auf das Ölfeld, die Bewegung wird ausgeführt, aber sobald die Einheit ihre Runde beendet, gibt es ein Problem. Ich bin inzwischen sicher, dass es nicht an der nächsten Einheit in der Schlange liegt, wohin sie springen will, denn ich hatte zwischendurch gesehen, dass er in einer Situation zu einem Stack springt, den ich problemlos auswählen konnte.
    Alle meine anderen Einheiten sind schon bewegt, soweit ich das sehen konnte. Der Fehler tritt aber auch auf, wenn ich mit dem grünen Kopf die Runde beende. Er tritt auch auf, wenn ich im Weltenbauer eine weitere, gleiche Einheit auf das Ölfeld setze - interessanterweise aber dann nicht sofort (wenn ich zum Beispiel den Kriegsgefangenen auflöse), dann springt er zu dem neuen - und wenn ich den Bewege stürzt er wieder ab. Er frier auch ein, wenn ich aus Memphis einen Kundschafter rausziehe, dessen Runde (er hat noch einen haben Bewegungspunkt) damit endet. Das selbe kommt noch vor, wenn ich bei einer bestimmten Seeeinheit einen Zug mache (eine Gruppe von 2 Schiffen, von denen eines noch einen Bewegungspunkt hat - sobald ich die Gruppe anwähle und mit Leertaste beende oder das zweite Schiff mit dem letzten Bewegungspunkt ziehe, gibt es das selbe Spiel).
    Angehängte Grafiken Angehängte Grafiken
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  12. #5037
    Wee Free Man Avatar von Rob Anybody
    Registriert seit
    20.05.06
    Ort
    Ruhrstadt
    Beiträge
    18.182
    Ich glaube, das hat überhaupt nichts mit den Einheiten zu tun, sondern mit dem Beginn der neuen Runde.
    Ändert sich etwas, wenn du sämtliche Bauvorhaben durch zB Forschungsbau ersetzt?
    Aber an jenem Morgen war es Magie gewesen. Und es hörte nicht auf, Magie zu sein,
    nur weil man [inzwischen] eine Erklärung dafür hatte ...
    (Terry Pratchett)

    Brandstifter benötigen keine Streichhölzer, sie zündeln mit Worten.
    Wer Brandstifter im Internet duldet und nicht wieder und wieder widerspricht,
    darf sich nicht wundern, wenn auch bald sein wahres Leben brennt.
    (frei nach Max Frisch)

  13. #5038
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.012
    Python habe ich getestet - kein Einfluss, stürzt auch mit Vanilla-Python ab. Wenn ich die Debug.dll benutzt, stürzt das Spiel richtig ab, bei der release-Dll friert es nur ein.
    Getestet im Fenstermodus - keinen Einfluss.
    Bei einigen Einheiten geschaut, ob die noch Shader oder Skin-Partitionen haben (damit hatte ich in der Vergangenheit Probleme) - keinen Einfluss.

    Der Vorschlag zum Rundenwechsel hat den Haken, dass es ja nicht nur abstürzt, wenn ich den Rundenwechsel-Button drücke, sondern auch, wenn ich die Einheit bewege, mit W warten lasse oder mit Leertaste nur überspringen lasse, aber nicht den Rundenwechsel einleite.

    Edit: ArtStyleUnits rausgenommen (enthält manchmal nicht definierte Tags, die zum Absturz führen) - kein Effekt
    Edit 2: "kein Einheitendurchlauf" gewählt - wieder kein Effekt
    Edit 3: Ein anderes Feature rausgenommen, das sonst schon einmal für Probleme sorgt (unsichtbare Landeinheiten) - kein Effekt
    Edit 4: Weiter nach unten scrollen, damit die Einheit nicht im Bildschirm ist (falls es ein grafisches Problem ist) und dann mit Leertaste beenden: Kein Effekt
    Edit 5: eine andere Einheit auswählen (das geht und war bislang die einzige Möglichkeit, diese Ecke ohne Absturz zu verlassen) und dann die Runde beenden - kein Effekt
    Geändert von Kathy (27. Oktober 2021 um 19:36 Uhr)
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  14. #5039
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.443
    Dann eben in doPlayerTurn oder wie das in der DLL heißt.

  15. #5040
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.012
    Das sind meine Codestellen für "Player::doTurn" und "Player::doTurnUnits"
    Code:
    void CvPlayer::doTurn()
    {
    	PROFILE_FUNC();
    
    	CvCity* pLoopCity;
    	int iLoop;
    
    	FAssertMsg(isAlive(), "isAlive is expected to be true");
    	FAssertMsg(!hasBusyUnit() || GC.getGameINLINE().isMPOption(MPOPTION_SIMULTANEOUS_TURNS)  || GC.getGameINLINE().isSimultaneousTeamTurns(), "End of turn with busy units in a sequential-turn game");
    
    	CvEventReporter::getInstance().beginPlayerTurn( GC.getGameINLINE().getGameTurn(),  getID());
    
    	doUpdateCacheOnTurn();
    
    	GC.getGameINLINE().verifyDeals();
    
    	AI_doTurnPre();
    	//Kathy: Dynamic Handicap Level Beginn
    
    	if (GC.getGameINLINE().isOption(GAMEOPTION_DYNAMIC_HANDICAP_LEVEL))
    	
    	{
    		if (isHuman())
    		{
    			if ( this->getHandicapType() < GC.getNumHandicapInfos()-1 )
    			{
    				if ( this->calculateScore() > (this->getHandicapType()+1)*500)
    				{
    					HandicapTypes eHandicap;
    					eHandicap = this->getHandicapType();
    					int iHandicapID;
    					iHandicapID = this->getHandicapType()+1;
    					HandicapTypes eNewHandicap;
    					eNewHandicap = static_cast<HandicapTypes>(iHandicapID);
    					GC.getInitCore().setHandicap(this->getID(),eNewHandicap);
    					CvWString szBuffer;
    					szBuffer = gDLL->getText("TXT_KEY_MISC_LEADER_PROMOTED", getNameKey(), GC.getHandicapInfo(eHandicap).getDescription(), GC.getHandicapInfo(eNewHandicap).getDescription());
    					PlayerTypes eActivePlayer;
    					eActivePlayer = this->getID();
    					gDLL->getInterfaceIFace()->addMessage(eActivePlayer, false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_COMBAT", MESSAGE_TYPE_INFO, "", (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), -1, -1, true, true);
    				}
    			}
    		}
    	}
    	//Kathy: Dynamic Handicap Level End
    	//Kathy Beginn Citystates
    	GET_TEAM(getTeam()).UpdateVassals(getTeam());
    	//Kathy End Citystates
    	if (getRevolutionTimer() > 0)
    	{
    		changeRevolutionTimer(-1);
    	}
    
    	if (getConversionTimer() > 0)
    	{
    		changeConversionTimer(-1);
    	}
    
    	setConscriptCount(0);
    
    	AI_assignWorkingPlots();
    
    	if (0 == GET_TEAM(getTeam()).getHasMetCivCount(true) || GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
    	{
    		setCommercePercent(COMMERCE_ESPIONAGE, 0);
    	}
    
    	verifyGoldCommercePercent();
    
    	doGold();
    
    	doResearch();
    
    	doEspionagePoints();
    
    /************************************************************************************************/
    /* BETTER_BTS_AI_MOD                      05/08/09                                jdog5000      */
    /*                                                                                              */
    /* City AI                                                                                      */
    /************************************************************************************************/
        // New function to handle wonder construction in a centralized manner
    	GET_PLAYER(getID()).AI_doCentralizedProduction();
    /************************************************************************************************/
    /* BETTER_BTS_AI_MOD                       END                                                  */
    /************************************************************************************************/
    
    	for (pLoopCity = firstCity(&iLoop); pLoopCity != NULL; pLoopCity = nextCity(&iLoop))
    	{
    		pLoopCity->doTurn();
    	}
    
    	if (getGoldenAgeTurns() > 0)
    	{
    		changeGoldenAgeTurns(-1);
    	}
    
    	if (getAnarchyTurns() > 0)
    	{
    		//Kathy: Barbaren von Anarchie Beginn
    		CvCity* pCapitalCity;
    
    		pCapitalCity = getCapitalCity();
    		if (pCapitalCity != NULL )
    		{
    			int iNumBarbUnits;
    			UnitTypes eBarbarianUnit;
    			CvWString szBuffer;
    			iNumBarbUnits = getNumCities()/10+getAnarchyTurns();
    			eBarbarianUnit = pCapitalCity->getConscriptUnit() ;
    
    			if ( doBarbarianUprising(pCapitalCity,iNumBarbUnits,eBarbarianUnit) )
    			{
    				szBuffer = gDLL->getText("TXT_KEY_MESSAGE_ANARCHY_BARBARIAN", GC.getUnitInfo(eBarbarianUnit).getDescription(), GC.getUnitInfo(eBarbarianUnit).getDescription() );
    				PlayerTypes eActivePlayer;
    				eActivePlayer = this->getID();
    				gDLL->getInterfaceIFace()->addMessage( eActivePlayer, false, GC.getEVENT_MESSAGE_TIME(), szBuffer, "AS2D_FIRSTTOTECH", MESSAGE_TYPE_MAJOR_EVENT, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_RED"));
    			}
    		}
    		//Kathy: Barbaren von Anarchie ENd
    
    		changeAnarchyTurns(-1);
    	}
    	//Kathy Beginn CityState Missionen
    	doVerifyCityStateMissionsDone();
    
    	doNewCityStateMissions();
    	//Kathy End CityState Missionen
    
    	//Kathy Boycott Beginn
    	if (getBoycottTurns() > 0)
    	{
    		changeBoycottTurns(-1);
    	}
    	//Kathy Boycott End
    
    	verifyCivics();
    
    	updateTradeRoutes();
    
    	updateWarWearinessPercentAnger();
    
    	doEvents();
    
    	updateEconomyHistory(GC.getGameINLINE().getGameTurn(), calculateTotalCommerce());
    	updateIndustryHistory(GC.getGameINLINE().getGameTurn(), calculateTotalYield(YIELD_PRODUCTION));
    	updateAgricultureHistory(GC.getGameINLINE().getGameTurn(), calculateTotalYield(YIELD_FOOD));
    	updatePowerHistory(GC.getGameINLINE().getGameTurn(), getPower());
    	updateCultureHistory(GC.getGameINLINE().getGameTurn(), countTotalCulture());
    	updateEspionageHistory(GC.getGameINLINE().getGameTurn(), GET_TEAM(getTeam()).getEspionagePointsEver());
    	expireMessages();  // turn log
    
    	gDLL->getInterfaceIFace()->setDirty(CityInfo_DIRTY_BIT, true);
    
    	AI_doTurnPost();
    
    /************************************************************************************************/
    /* BETTER_BTS_AI_MOD                      07/08/09                                jdog5000      */
    /*                                                                                              */
    /* Debug                                                                                        */
    /************************************************************************************************/
        if( GC.getGameINLINE().isDebugMode() )
    	{
    		GC.getGameINLINE().updateColoredPlots();
    	}
    /************************************************************************************************/
    /* BETTER_BTS_AI_MOD                       END                                                  */
    /************************************************************************************************/
    
    	CvEventReporter::getInstance().endPlayerTurn( GC.getGameINLINE().getGameTurn(),  getID());
    }
    
    
    void CvPlayer::doTurnUnits()
    {
    	PROFILE_FUNC();
    
    	CvSelectionGroup* pLoopSelectionGroup;
    	int iLoop;
    
    	AI_doTurnUnitsPre();
    
    	for(pLoopSelectionGroup = firstSelectionGroup(&iLoop); pLoopSelectionGroup != NULL; pLoopSelectionGroup = nextSelectionGroup(&iLoop))
    	{
    		pLoopSelectionGroup->doDelayedDeath();
    	}
    
    	for (int iPass = 0; iPass < 4; iPass++)
    	{
    		for(pLoopSelectionGroup = firstSelectionGroup(&iLoop); pLoopSelectionGroup != NULL; pLoopSelectionGroup = nextSelectionGroup(&iLoop))
    		{
    			switch (pLoopSelectionGroup->getDomainType())
    			{
    			case DOMAIN_AIR:
    				if (iPass == 1)
    				{
    					pLoopSelectionGroup->doTurn();
    				}
    				break;
    			case DOMAIN_SEA:
    				if (iPass == 2)
    				{
    					pLoopSelectionGroup->doTurn();
    				}
    				break;
    			case DOMAIN_LAND:
    				if (iPass == 3)
    				{
    					pLoopSelectionGroup->doTurn();
    				}
    				break;
    			case DOMAIN_IMMOBILE:
    				if (iPass == 0)
    				{
    					pLoopSelectionGroup->doTurn();
    				}
    				break;
    			case NO_DOMAIN:
    				FAssertMsg(NULL == pLoopSelectionGroup->getHeadUnit(), "Unit with no Domain");
    			default:
    				if (iPass == 3)
    				{
    					pLoopSelectionGroup->doTurn();
    				}
    				break;
    			}
    		}
    	}
    
    	if (getID() == GC.getGameINLINE().getActivePlayer())
    	{
    		gDLL->getFAStarIFace()->ForceReset(&GC.getInterfacePathFinder());
    
    		gDLL->getInterfaceIFace()->setDirty(Waypoints_DIRTY_BIT, true);
    		gDLL->getInterfaceIFace()->setDirty(SelectionButtons_DIRTY_BIT, true);
    	}
    
    	gDLL->getInterfaceIFace()->setDirty(UnitInfo_DIRTY_BIT, true);
    
    	AI_doTurnUnitsPost();
    }
    Beide seit mehreren Versionen nicht mehr angeführt. Ich kann nicht genau sagen, wo das Programm jetzt sein müsste - aber ich habe auch keine Idee, was ich daran ändern soll, damit ich irgendwie einen Hinweis auf das Problem bekomme - oder das Problem umgehen kann.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

Seite 336 von 344 ErsteErste ... 236286326332333334335336337338339340 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •