Seite 170 von 180 ErsteErste ... 70120160166167168169170171172173174 ... LetzteLetzte
Ergebnis 2.536 bis 2.550 von 2699

Thema: Der SDK-Fragen-Thread

  1. #2536
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    10 Sekunden passen eher.

  2. #2537
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.999
    Ich hatte in meinem derzeitigen Spiel mehrfach folgendes "Problem": Sobald meine Eroberungsarmee sich einer Barbarenstadt näherte, wurden dort alle bis auf 1 Verteidigungseinheit aufgelöst, und das nicht einmal unbedingt die Stärkste. So war es für mich ziemlich leicht, diese Barbarenstädte zu erobern, aber spielerisch war es eine Enttäuschung. Warum macht die KI so etwas? Gibt es eine einfache Möglichkeit, das abzustellen? Selbst, wenn die Barbaren Unterhaltsprobleme hätten (dürften sie doch eigentlich sowieso nicht) macht es keinen Sinn, ausgerechnet in der Runde vor dem Angriff die halbe Armee aufzulösen. Und zwar wirklich immer in genau der Runde vor dem Angriff. Das Phänomen trat bei 7 von 9 Barbarenstädten auf.
    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. #2538
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    Haben nen Kompilierungsfehler bei der Debug DLL (nur dort):

    PHP-Code:
    1>e:\BASE SDK\CvGameCoreDLL 6.3\CvGlobals.h(171) : fatal error C1067compiler limit debug information module size exceeded 
    Der Verweis geht dann zu

    PHP-Code:
        CvMapgetMapINLINE() { return *m_map; } 
    An der CvMap wurde aber nie was geändert. Kann es sein, dass die Globals zu groß geworden ist? Dieselbe Fehlermeldung gibt's ja bekanntermaßen bei der CvPlayerInterface1.cpp, wenn sie zu groß wird.
    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. #2539
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Wegen Codezeile + https://msdn.microsoft.com/de-de/library/d8s456s8.aspx
    würde ich dir Recht geben. Die Klasse wird (für diesen Compiler) zu groß.
    Da du CvMap nicht direkt geändert hast müsste es was sein, wie z.B. eine Struktur innerhalb von CvMap, die verändert wurde. Das muss nicht unbedingt in CvDefines.h der Fall sein.

  5. #2540
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Wir haben jetzt in der CvGlobals eine Member-Funktion auskommentiert und dann kompilierte es.

  6. #2541
    Registrierter Benutzer Avatar von xaster
    Registriert seit
    10.02.06
    Beiträge
    55
    Hallo zusammen,
    ich bin was SDK angeht noch komplett unerfahren. Mein Mod wird auf K-Mod aufgebaut besitzt natürlich eine GameCore.dll
    Ich möchte gerne aus einem anderen Mod... den DCM ein paar Codeblöcke aus der CvUnit.cpp in die K-Mod übertragen.
    dreht sich um ein Script für eine Unit DCM Nukebomber ist ja vielleicht bekannt. Der Rest vom
    DCM ist nicht so wichtig.
    Wäre es viel Arbeit das in die DLL zu übertragen?
    So grob sollte das die Codeblöcke sein:
    Code:
    /************************************************************************************************/
    /* DCM									   START				04/19/09           Johny Smith  */
    /************************************************************************************************/
    		// Dale - NB: A-Bomb START
    		if(canNuke(pPlot))
    		{
    			kill(true);
    			return;
    		}
    		// Dale - NB: A-Bomb END
    /************************************************************************************************/
    /* DCM                                     END                                                  */
    /************************************************************************************************/
    
    
    /************************************************************************************************/
    /* DCM									   START				04/19/09           Johny Smith  */
    /************************************************************************************************/
    		// Dale - NB: A-Bomb START
    		if (!((TeamTypes)iI == GET_TEAM(getTeam()).getID()))
    		{
    			if (isNukeVictim(pTargetPlot, ((TeamTypes)iI)))
    			{
    				if (!isEnemy((TeamTypes)iI))
    				{
    					return false;
    				}
    			}
    		}
    		// Dale - NB: A-Bomb END
    /************************************************************************************************/
    /* DCM                                     END                                                  */
    /************************************************************************************************/
    
    
    /************************************************************************************************/
    /* DCM									   START				04/19/09           Johny Smith  */
    /************************************************************************************************/
    				// Dale - NB: A-Bomb START
    				if (!((TeamTypes)iI == GET_TEAM(getTeam()).getID()))
    				{
    					GET_TEAM(getTeam()).declareWar(((TeamTypes)iI), false, WARPLAN_TOTAL);
    				}
    				// Dale - NB: A-Bomb END
    /************************************************************************************************/
    /* DCM                                     END                                                  */
    /************************************************************************************************/
    
    
    /************************************************************************************************/
    /* DCM									   START				04/19/09           Johny Smith  */
    /************************************************************************************************/
    	// Dale - NB: A-Bomb START
    	if(airBaseCombatStr() != 0)
    	{
    		if (interceptTest(pPlot))
    		{
    			return true;
    		}
    	}
    	// Dale - NB: A-Bomb END
    /************************************************************************************************/
    /* DCM                                     END                                                  */
    /************************************************************************************************/
    
    
    /************************************************************************************************/
    /* DCM									   START				04/19/09           Johny Smith  */
    /************************************************************************************************/
    		// Dale - NB: A-Bomb START
    		if(airBaseCombatStr() != 0)
    		{
    			CvAirMissionDefinition kAirMission;
    
    			kAirMission.setMissionTime(GC.getMissionInfo(MISSION_AIRSTRIKE).getTime() * gDLL->getSecsPerTurn());
    			kAirMission.setMissionType(MISSION_AIRSTRIKE);
    			kAirMission.setPlot(pPlot);
    			kAirMission.setUnit(BATTLE_UNIT_ATTACKER, this);
    			kAirMission.setUnit(BATTLE_UNIT_DEFENDER, NULL);
    			kAirMission.setDamage(BATTLE_UNIT_DEFENDER, 0);
    			kAirMission.setDamage(BATTLE_UNIT_ATTACKER, 0);
    
    			gDLL->getEntityIFace()->AddMission(&kAirMission);
    		}
    		else
    		{
    			// Nuke entity mission
    			CvMissionDefinition kDefiniton;
    			kDefiniton.setMissionTime(GC.getMissionInfo(MISSION_NUKE).getTime() * gDLL->getSecsPerTurn());
    			kDefiniton.setMissionType(MISSION_NUKE);
    			kDefiniton.setPlot(pPlot);
    			kDefiniton.setUnit(BATTLE_UNIT_ATTACKER, this);
    			kDefiniton.setUnit(BATTLE_UNIT_DEFENDER, NULL);
    
    			// Add the non-intercepted mission (defender is NULL)
    			gDLL->getEntityIFace()->AddMission(&kDefiniton);
    		}
    		// Dale - NB: A-Bomb END
    /************************************************************************************************/
    /* DCM                                     END                                                  */
    /************************************************************************************************/
    Muss halt noch alle Tools zusammen suchen und installieren.
    Vielleicht könnte man die Funktion auch über Pyhton abbilden!??!
    Geändert von xaster (20. August 2017 um 03:06 Uhr)

  7. #2542
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    Da hilft nur: Probieren über studieren. Du musst beim mergen selber schauen, wie viel Aufwand das ist und ob es dir das wert ist.
    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)

  8. #2543
    Registrierter Benutzer Avatar von xaster
    Registriert seit
    10.02.06
    Beiträge
    55
    Der Code siehe oben, stellt sicher das ein Bomber der als Nuke im XML steht auch noch als Bomber funktioniert wenn ich das richtig verstehe. Vielleicht wäre das auch in Pyhton zu machen ?

    ....hab mir mal den Code angesehen und auch mit der K-mod CvUnit.cpp genauer verglichen, ein Merge für diese 4 Codeblocke wäre ein Witz. Das einzige Problem was ich da sehe ist einfach die Handhabung der DLL und das Kompilieren damit kenne ich mich echt null aus. Wie ist das eigentlich genau... kann man sich das vorstellen wie ein Archiv das man entpacken kann, ändert was in z.b. dieser CvUnit.cpp und dann wird es wieder zur DLL zusammengefügt
    Sorry diese Sache ist echt Neuland für mich

    Habe mich jetzt mal um die Tools gekümmert.....
    Microsoft Visual C++ Toolkit 2003 installiert und darin dann msvcrt.lib, msvcrtd.lib, msvcprt.lib reinkopiert.
    Das Microsoft Visual C++ 2008 Express Edition installiert.
    makefile fastdep hab ich auch als Download
    Bei ausführen der Windows SDK kommt eine Fehlermeldung, habe aber 3 SDK Versionen unter Programme aufgeführt ?!?
    Geändert von xaster (20. August 2017 um 04:02 Uhr)

  9. #2544
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    Man muss da ein bisschen was konfigurieren vorm ersten Mal. Ist bei mir schon nen Jahrzehnt her gefühlt. Bei den Fanatics gibt's aber nen Tutorial soweit ich weiß.
    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)

  10. #2545
    Registrierter Benutzer Avatar von xaster
    Registriert seit
    10.02.06
    Beiträge
    55
    Welches SDK muss den drauf sein ??? bei mit ist C:\Program Files\Microsoft SDKs\Windows\v6.0A verfügbar ???
    Also ich bekomme das SDK 7.1 einfach nicht drauf ist eine Win10 Maschine...

    EDIT doch geschafft, SDK 7.1 wurde installiert, lag am Setup hatte das für 32bit.

    Ist die SDK 7.1 die richtige ?
    Geändert von xaster (20. August 2017 um 05:39 Uhr)

  11. #2546
    Registrierter Benutzer Avatar von xaster
    Registriert seit
    10.02.06
    Beiträge
    55
    Kollegen ich brauche jetzt mal eure Hilfe ob ich alles richtg gemacht habe, so sicher bin ich mir da gerade nicht

    Ich habe mich soweit es ging an diesen HOW TO gehalten.

    Tools wie folgt habe ich besorgt und installiert:
    1# install the Microsoft Platform SDK v7.1
    2# install Microsoft Visual C++ Toolkit 2003
    3# put three library files in this folder: C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib
    msvcrt.lib msvcrtd.lib msvcprt.lib
    4# install Microsoft Visual C++ 2008 Express Edition
    5# Download Makefile.7z

    Nun habe ich mir den K-Mod Source von https://github.com/karadoc/Civ4-K-Mod geladen.
    Nur leider gab es im CvGameCoreDLL Ordner keinen Boost-1.32.0 & Python24 Unterordner.
    Diese habe ich dann aus BTS\CvGameCoreDLL genommen.
    Die eine CvUnit.cpp hab ich locker mit dem DCM Nukebomber Code gemerged.
    Nun noch die fastdep.exe & Makefile in den project ordner gelegt.
    Die Einstellung im MS C++ 2008 und im Makefile habe ich wie beschrieben durchgeführt.

    Meine Release DLL wurde erstellt. Das log habe ich mal angehängt Bild
    Eine Warung wurde ausgeworfen: LINK : warning LNK4089: all references to 'KERNEL32.dll' discarded by /OPT:REF

    Die neue CvGameCore.DLL hab ich in meinen Mod kopiert und der Nukebomber funktioniert nun wie im DCM
    Das ich ja schon mal was
    Ich habe von der ganzen Sache echt keine Ahnung und bin eigentlich nur durch die Anleitungen geflogen.
    Jetzt würde gerne wissen ob ich das richtig gemacht habe gerade da wo ich improvisieren musste....

    Wäre net wenn ihr euch mal das Log ansehen könntet und ob die Schritte oben okay sind, Dankeschöööönn
    Angehängte Dateien Angehängte Dateien

  12. #2547
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    Wenns funktioniert, dann funktionierts.
    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)

  13. #2548
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.016
    Die Warnung ist normal.

  14. #2549
    Registrierter Benutzer Avatar von xaster
    Registriert seit
    10.02.06
    Beiträge
    55
    ja cool. wenn ihr keine Einwände wegen der Nutzung von den Boost-1.32.0 & Python24 Unterordner aus BTS habt bin ich Happy.
    die waren bei den Source Files von K-Mod nicht dabei.
    Denke wenn ich was falsch gemacht hätte beim compilen dann würde das Spiel garnicht richtig starten geschweige denn Laufen mit der neuen DLL.

  15. #2550
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.999
    Ich habe in meinem Mod eine blöde Schleife. Irgendwann kommt ein Punkt, an dem ein bestimmter Spieler festhängt. Ich habe nur keine Idee, wie ich diese Schleife identifizieren kann.
    Tatsache ist, dass ich das Problem beheben kann, wenn ich im Weltenbauer den betreffenden Spieler von "Krieg" auf "Frieden" mit einer anderen KI umstelle. Hat jemand eine Idee, wie man sich vernünftig dem Problem annähern kann?

    Was ich weiß ist, dass der Spieler davor seine Runde beendet. Der nächste Spieler beginnt, aber ich weiß nicht wie weit er kommt. Ich kann sehen, dass dieser Spieler noch keine Einheit irgend eines Gegners getötet hat. Vermutlich hat er also kaum eine Einheit bewegt. Aber wie finde ich nun die Einheit, an der er sich aufhängt? Oder die Ursache, dass es sich aufhängt?
    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 170 von 180 ErsteErste ... 70120160166167168169170171172173174 ... LetzteLetzte

Berechtigungen

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