Seite 351 von 351 ErsteErste ... 251301341347348349350351
Ergebnis 5.251 bis 5.262 von 5262

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

  1. #5251
    Hat einen Plan Avatar von Mongke Khan
    Registriert seit
    25.06.11
    Ort
    KA
    Beiträge
    20.475
    (wie) kann ich für eine Stadt die Anzahl der Gebäude und die Anzahl der Militäreinheiten sowie die Gesamtstärke der Militäreinheiten zählen?
    Noch cooler wäre, wenn ich für jedes Feld (ggf. nur in der Spielerkultur) die Summe der Stärke der Militäreinheiten berechnen könnte

    Gibt es da irgendwo eine Doku der Python-Api?

  2. #5252
    Registrierter Benutzer Avatar von xist10
    Registriert seit
    08.11.19
    Beiträge
    6.598
    Hier gibt es eine Liste der entsprechenden .dll Aufrufe in Python.

    CyCity had getNumBuildings() zum einen, CyUnit müsste auch irgendwo etwas haben, was wieder ausspuckt.
    Achtung Spoiler:
    cIV-Multiplayer-Storys
    PB 88, PB 89, PB 91, PB 90, PB 92, PB 93, PB 94, PB 95
    RB 72, RB 74, RB 79, RB 81
    Oldschool 3
    EitB PBEM
    LVII, LVIII, LIX
    ciV-Multiplayer-Storys
    PBEM 292, PBEM 293, PBEM 294, PBEM 295, PBEM 296
    Sonstige
    Anno 1800

    Alle Storylinks hier

  3. #5253
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    10.005
    Zitat Zitat von Mongke Khan Beitrag anzeigen
    Gibt es da irgendwo eine Doku der Python-Api?
    Oder https://kirk.zulan.net/PythonAPI/


    Bei PyPlot sehe ich eine
    INT getUnitPower (PlayerType eOwner)

  4. #5254
    Hat einen Plan Avatar von Mongke Khan
    Registriert seit
    25.06.11
    Ort
    KA
    Beiträge
    20.475
    Die KI ist ja richtig gut darin, zu scripten, wenn man ihr die API füttert

    Bild
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: jpg map.jpg (100,8 KB, 57x aufgerufen)
    Zitat Zitat von Baldri Beitrag anzeigen
    Würfel doch mal für nen Job bevor du hier finanzielle Aussagen triffst die ernstgenommen werden sollen.

  5. #5255
    Hat einen Plan Avatar von Mongke Khan
    Registriert seit
    25.06.11
    Ort
    KA
    Beiträge
    20.475
    Weitere Ergebnisse meiner Fragen gibt es hier zu lesen: https://www.civforum.de/showthread.p...=1#post9602251
    Zitat Zitat von Baldri Beitrag anzeigen
    Würfel doch mal für nen Job bevor du hier finanzielle Aussagen triffst die ernstgenommen werden sollen.

  6. #5256
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    19.219
    Ich hatte eben ein komisches Erlebnis, das mir für meine zukünftige Moddingtätigkeit bzw. die daraus resultierenden Spiele Angst macht. In einem Test mit der debug.dll wurden alle Angriffe auf eine bestimmte Stadt auf einmal unendlich langsam. Spätere andere Angriffe auf im Weltenbauer gesetzt Einheiten hatten diesen Effekt nicht. Hat jemand so etwas auch schon einmal erlebt? Ich habe ein wenig Angst, dass es auch mit der Release.dll zu solchen quälend langsamen Animationen kommen kann, und würde das gerne verhindern, da so ein Spiel nicht mehr spielbar wäre.
    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

  7. #5257
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    19.219
    Ein Verdacht, den ich gestern Abend hatte, hat sich bestätigt: Der Problem tritt nur auf, wenn sich in der Stadt Flugzeuge befinden. Ich die selbst Stadt in meiner Testumgebung ohne Flugzeuge nachgebaut und mit denselben Einheiten angegriffen, da war der Kampf normal schnell. Irgendetwas machen also die Flugzeuge, was das ganze Spiel verlangsamt.
    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. #5258
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    19.219
    Verdacht Nummer 2: Es liegt an
    Code:
    bool CvUnit::airBomb1(int iX, int iY)
    {
    	CvCity* pCity;
    	CvPlot* pPlot;
    	CvWString szBuffer;
    	bool bBitter = true;
    
    	if (!canAirBomb1At(plot(), iX, iY))
    	{
    		return false;
    	}
    	pPlot = GC.getMapINLINE().plotINLINE(iX, iY);
    	if (interceptTest(pPlot))
    	{
    		//Kathy: Abbrechen aller MIssionen wegen Abstuzr
    		getGroup()->clearMissionQueue();
    		//Kathy: Abbrechen aller MIssionen wegen Abstuzr
    		return true;
    	}
    
    	// Dale - BE: Battle Effect START
    //	pPlot->setBattleFeature(true); //Kathy: No
    	// Dale - BE: Battle Effect END
    	pCity = pPlot->getPlotCity();
    	if (bBitter)
    	{
    		if (pCity != NULL)
    		{
    			pCity->changeDefenseDamage(airBombCurrRate());
    			bool bBarb = pCity->isBarbarian();
    			changeExperience(GC.getDefineINT("MIN_EXPERIENCE_PER_COMBAT"), bBarb ? GC.getDefineINT("BARBARIAN_MAX_XP_VALUE") : -1, !bBarb, pCity->getOwnerINLINE() == getOwnerINLINE());
    
    			szBuffer = gDLL->getText("TXT_KEY_MISC_YOU_DEFENSES_REDUCED_TO", pCity->getNameKey(), pCity->getDefenseModifier(false), getNameKey());
    			gDLL->getInterfaceIFace()->addMessage(pCity->getOwnerINLINE(), false, GC.getDefineINT("EVENT_MESSAGE_TIME"), szBuffer, "AS2D_BOMBARDED", MESSAGE_TYPE_INFO, GC.getUnitInfo(getUnitType()).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), pCity->getX_INLINE(), pCity->getY_INLINE(), true, true);
    
    			szBuffer = gDLL->getText("TXT_KEY_MISC_ENEMY_DEFENSES_REDUCED_TO", getNameKey(), pCity->getNameKey(), pCity->getDefenseModifier(false));
    			gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), true, GC.getDefineINT("EVENT_MESSAGE_TIME"), szBuffer, "AS2D_BOMBARD", MESSAGE_TYPE_INFO, NULL, (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), pCity->getX_INLINE(), pCity->getY_INLINE());
    		}
    		else
    		{
    			if (pPlot->getImprovementType() != NO_IMPROVEMENT)
    			{
    				if (GC.getGameINLINE().getSorenRandNum(airBombCurrRate(), "Air Bomb - Offense") >=
    						GC.getGameINLINE().getSorenRandNum(GC.getImprovementInfo(pPlot->getImprovementType()).getAirBombDefense(), "Air Bomb - Defense"))
    				{
    					szBuffer = gDLL->getText("TXT_KEY_MISC_YOU_UNIT_DESTROYED_IMP", getNameKey(), GC.getImprovementInfo(pPlot->getImprovementType()).getTextKeyWide());
    					gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), true, GC.getDefineINT("EVENT_MESSAGE_TIME"), szBuffer, "AS2D_PILLAGE", MESSAGE_TYPE_INFO, GC.getUnitInfo(getUnitType()).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_GREEN"), pPlot->getX_INLINE(), pPlot->getY_INLINE());
    
    					if (pPlot->isOwned())
    					{
    						szBuffer = gDLL->getText("TXT_KEY_MISC_YOU_IMP_WAS_DESTROYED", GC.getImprovementInfo(pPlot->getImprovementType()).getTextKeyWide(), getNameKey(), GET_PLAYER(getOwnerINLINE()).getCivilizationAdjectiveKey());
    						gDLL->getInterfaceIFace()->addMessage(pPlot->getOwnerINLINE(), false, GC.getDefineINT("EVENT_MESSAGE_TIME"), szBuffer, "AS2D_PILLAGED", MESSAGE_TYPE_INFO, GC.getUnitInfo(getUnitType()).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), pPlot->getX_INLINE(), pPlot->getY_INLINE(), true, true);
    						bool bBarb = GET_PLAYER(pPlot->getOwnerINLINE()).isBarbarian();
    						changeExperience(GC.getDefineINT("MIN_EXPERIENCE_PER_COMBAT"), bBarb ? GC.getDefineINT("BARBARIAN_MAX_XP_VALUE") : -1, !bBarb, pPlot->getOwnerINLINE() == getOwnerINLINE());
    					}
    
    					pPlot->setImprovementType((ImprovementTypes)(GC.getImprovementInfo(pPlot->getImprovementType()).getImprovementPillage()));
    				}
    				else
    				{
    					szBuffer = gDLL->getText("TXT_KEY_MISC_YOU_UNIT_FAIL_DESTROY_IMP", getNameKey(), GC.getImprovementInfo(pPlot->getImprovementType()).getTextKeyWide());
    					gDLL->getInterfaceIFace()->addMessage(getOwnerINLINE(), true, GC.getDefineINT("EVENT_MESSAGE_TIME"), szBuffer, "AS2D_BOMB_FAILS", MESSAGE_TYPE_INFO, GC.getUnitInfo(getUnitType()).getButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_RED"), pPlot->getX_INLINE(), pPlot->getY_INLINE());
    				}
    			}
    		}
    	}
    
    	setReconPlot(pPlot);
    
    	setMadeAttack(true);
    	changeMoves(GC.getMOVE_DENOMINATOR());
    
    	if (pPlot->isActiveVisible(false))
    	{
    		CvAirMissionDefinition kAirMission;
    		kAirMission.setMissionType(MISSION_AIRBOMB);
    		kAirMission.setUnit(BATTLE_UNIT_ATTACKER, this);
    		kAirMission.setUnit(BATTLE_UNIT_DEFENDER, NULL);
    		kAirMission.setDamage(BATTLE_UNIT_DEFENDER, 0);
    		kAirMission.setDamage(BATTLE_UNIT_ATTACKER, 0);
    		kAirMission.setPlot(pPlot);
    		kAirMission.setMissionTime(GC.getMissionInfo((MissionTypes)MISSION_AIRBOMB).getTime() * gDLL->getSecsPerTurn());
    
    		gDLL->getEntityIFace()->AddMission(&kAirMission);
    	}
    	//Kathy: Abbrechen aller MIssionen wegen Abstuzr
    	getGroup()->clearMissionQueue();
    	//Kathy: Abbrechen aller MIssionen wegen Abstuzr
    	if (isSuicide())
    	{
    		kill(true);
    	}
    	return true;
    }
    dem orange markierten Codeteil. Den hatte ich einmal eingefügt, weil ein abgefangenes Flugzeug, das nicht zerstört wurde, ohne diesen Code in der nächsten Runde einen Absturz verursacht hat, weil es irgendeine Mission starten wollte, die dann nicht mehr ging. Als ich das eingeführt hatte, wurden Luftangriffe gegen Felder mit mehreren Abfangeinheiten auch so quälend langsam.

    Allerdings macht das eigentlich keinen Sinn, denn in dem Moment wo es jetzt langsamer wird, spielen die Flugzeuge überhaupt keine Rolle. Dennoch sind sie immer beteiligt, wenn es so abbremst, z.B. auch mein Mouseover einer Stadt mit Flugzeugen darin (auch eigenen). Die Frage wäre daher eher: Welche Funktion wird da ausgeführt, die alle Einheiten auf dem Feld durchgeht und bei Flugzeugen, warum auch immer, so bremst?
    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

  9. #5259
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    19.219
    Dieser Codeteil war es nicht (hätte auch keinen Sinn gemacht). Ich habe ihn deaktiviert, es bremst immer noch genauso beim Angriff. Also müssen die Flugzeuge woanders Probleme machen.
    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. #5260
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.174
    interceptTest(pPlot) ist sehr umfangreich, aber nur eine Zeile in deinen Code. Ich würde dort weiter sehen. Sind die Angreifer Flugzeuge? Das wird nicht gesagt, aber airBomb wird nur von angreifenden Flugzeugen genutzt.
    Gut, besser, BASE. BASE ist eine Modifikation für Civilization IV: Beyond the Sword, die wie eine größere Erweiterung nah am Originalspiel verbleiben soll.

  11. #5261
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    19.219
    Nein, ich greife mit Landeinheiten Landeinheiten an, die eine Stadt verteidigen, in der Flugzeuge stehen. Greife ich eine Stadt ohne Flugzeuge ab ist alles normal, greife ich mit Flugzeugen an kann ich mir eine Diashow ansehen.

    Die Stelle dort habe ich nur verdächtigt, weil es um Flugzeuge ging, die eben auch damals schon für Verlangsamung gesorgt haben, als ich den Code erweitert hatte (das interceptTest stand da schon früher, ich habe nur "getGroup()->clearMissionQueue();" hinzugefügt. Aber diese Stelle habe ich durch meinen Test (auskommentiert bei allen 5 betreffenden Stellen - keine Auswirkung) ausgeschlossen. Es muss eine andere Stelle sein, aber ich habe keine Idee, welche. Irgendwo scheinen die Flugzeuge, vielleicht bei der Auswahl der Verteidiger oder so, eine Rolle zu spielen und zu bremsen.

    Edit: Ich will aber nicht ausschließen, dass es insgesamt mit der Implementierung der verschiedenen Luftangriffe (aus RtW) zu tun hat, dass ich da vielleicht etwas entscheidendes übersehen habe, irgendeinen Codeschnipsel doppelt habe, der sich quadratisch auf die Anzahl der Einheiten auswirkt oder sonst etwas.
    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. #5262
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.174
    Dann ist CvUnit::airBomb1 irrelevant zu deinem Problem.
    Gut, besser, BASE. BASE ist eine Modifikation für Civilization IV: Beyond the Sword, die wie eine größere Erweiterung nah am Originalspiel verbleiben soll.

Seite 351 von 351 ErsteErste ... 251301341347348349350351

Berechtigungen

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