Ok danke. Ich lass es dann so. Ja, auch beim Laden eines Spielstandes gehts. Ich bin super zufrieden damit.![]()
Ok danke. Ich lass es dann so. Ja, auch beim Laden eines Spielstandes gehts. Ich bin super zufrieden damit.![]()
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden soll ...
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
sehr braves und ordentliches Mädchen
![]()
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden soll ...
Wo kann man denn einstellen, dass im Diplo-Fenster die KI immer einen Krieg gegen eine andere Nation zusagt (oder es möglich ist es auszuwählen), wenn sie selbst zB gerade mit keinem im Krieg ist bzw die andere Partei unter ATTITUDE_PLEASED ist? Also dass sie IMMER bei einem Krieg mitmachen würde, egal welche Haltung sie gegenüber dem aktuellen Handelspartner (HI) hat.
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden soll ...
Puh, mit Diplo und KI habe ich mich nie beschäftigt, das zu modden. Habe zu beidem abschreckende Warnungen gehört.
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
Ist das SDK? Aber außer CvDeal find ich nix halbwegs Aussagendes... und das sieht wiedermal komplett vordefiniert alles aus....
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden soll ...
SDK - oder vielleicht eine XML-Einstellung. Habe mich aber tatsächlich nie damit befasst, so dass ich es nicht sagen könnte.
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
Habs gefunden: iDeclareWarTradeRand im XML, der dann im CvTeamAI berechnet wird und dann in CvPlayerAI genutzt.
die ganzen Bedingungen und Chancen für die Kriegserklärungssache, die ich suche, steht in CvPlayerAI::AI_doDiplo()
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden soll ...
Ich habe zwei Fehler in einem Code von mir:
Fehler 1: Eigentlich sollen in iCiv1, iCiv2 und iCiv3 drei verschiedene Werte stehen, die aus der CivilizationsInfos.xml stammen:Code:def onCityLost(self, argsList): 'City Lost' city = argsList[0] player = PyPlayer(city.getOwner()) ###Spaltung Anfang### if city.isCapital(): if player.getNumCities() >14: if gc.getMAX_CIV_PLAYERS ()>CyGame().countCivPlayersAlive (): NewID = -1 for NumCiv in xrange (gc.getMAX_PLAYERS ()): PotPlayer = gc.getPlayer(NumCiv) if not PotPlayer.isEverAlive (): NewID = NumCiv break if NewID ==-1: for NumCiv in xrange (gc.getMAX_PLAYERS ()): PotPlayer = gc.getPlayer(NumCiv) if not PotPlayer.isAlive(): NewID = NumCiv break if NewID ==-1: return ###Kathy new: Rebell Civs Beginn iCiv1 = gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getRebellCiv() iCiv2 = gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getDerivativeCiv() iCiv3 = gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getDerivativeCitystate() ###Kathy: Eliminiere existierende Civs aus der Liste for NumCiv in xrange (gc.getMAX_PLAYERS ()): LoopPlayer = gc.getPlayer(NumCiv) iLoopCiv = LoopPlayer.getCivilizationType() if ( iCiv1 == iLoopCiv ): iCiv1 = -1 if ( iCiv2 == iLoopCiv ): iCiv2 = -1 if ( iCiv3 == iLoopCiv ): iCiv3 = -1 ### Kahty: Eliminiere existierende Civs aus der Liste iCiv = -1 if iCiv1 != -1: iCiv = iCiv1 elif iCiv2 != -1: iCiv = iCiv2 elif iCiv3 != -1: iCiv = iCiv3 ###Kathy new: Rebell Civs End if iCiv != -1: iCiv = gc.getPlayer(city.getOwner()).getCivilizationType() CurCiv = gc.getCivilizationInfo(iCiv) NumLeaders = CurCiv.getNumLeaders() ### dice = gc.getGame().getMapRand() ### LeaderNum = dice.get(NumLeaders , "OracleSayMeTheLeader" ) LeaderNum = gc.getGame().getSorenRandNum(NumLeaders, "OracleSayMeTheLeader" ) LeaderCounter=0 for iLeaders in range(gc.getNumLeaderHeadInfos ()): if CurCiv.isLeaders(iLeaders): if NumLeaders==1: NewLeaderID =iLeaders break else: if LeaderCounter==LeaderNum: NewLeaderID=iLeaders break LeaderCounter=LeaderCounter+1 CyGame().addPlayer(NewID,NewLeaderID,iCiv) pNewPlayer = gc.getPlayer(NewID) iOldPlayer = city.getOwner() OldPlayer = gc.getPlayer(iOldPlayer) NewTeam = gc.getTeam(pNewPlayer.getTeam()) NewTeamID = NewTeam.getID() techcount=0 for techcount in range (gc.getNumTechInfos()): if ((player.getTeam().isHasTech(techcount)==true)): NewTeam.setHasTech(techcount,1,NewID,0,1) iCitiesNewPlayer = OldPlayer.getNumCities()/2 iCityCount = 0 (loopCity, iter) = OldPlayer.firstCity(True) while(loopCity): iCityX = loopCity.getX() iCityY = loopCity.getY() pNewPlayer.acquireCity(loopCity,False,True) Defender = loopCity.getConscriptUnit () for i in range(3): pNewPlayer.initUnit( Defender, iCityX,iCityY, UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH ) loopCity.changeCulture(NewID,loopCity.getCulture(iOldPlayer),1) iCityCount = iCityCount+1 if iCityCount == iCitiesNewPlayer: break (loopCity, iter) = OldPlayer.nextCity(iter, true) pNewPlayer.setGold(player.getGold()/2) PlayerAdjectiv = player.getCivilizationInfo().getDescription () NewPlayerAdjectiv = CurCiv.getDescription () for iPlayer in range (gc.getMAX_CIV_PLAYERS ()): CyInterface().addMessage(iPlayer,False,15,CyTranslator().getText("TXT_KEY_CAPITAL_LOST",(PlayerAdjectiv,NewPlayerAdjectiv)),'',0,'Art/Interface/Buttons/General/warning_popup.dds',ColorTypes(gc.getInfoTypeForString("COLOR_RED")), city.getX(), city.getY(), True,True) ###Spaltung ENDE###
Im nächsten Schritt sollen dann diejenigen Einträge aus der Liste gelöscht werden, die im Spiel existieren. In meinem Spiel, wo der Fehler auftrat, existierte keiner von denen vorher, iCiv1 sollte also (die ID von) CIVILIZATION_KONGO sein. Trotzdem wird der Code aufgerufen, durch den die neu entstehende Zivilisation mit der Info des eigentlichen Spielers überschrieben wird, was nur im Notfall passieren sollte.Code:<DerivativeCiv>CIVILIZATION_KONGO</DerivativeCiv> <DerivativeCitystate>CIVILIZATION_STADTSTAAT_KANEM_BORNU</DerivativeCitystate> <RebellCiv>CIVILIZATION_MALI</RebellCiv>
Gewichtiger ist aber Problem 2: Der Code wird nicht nur einmal beim Fall der gegnerischen Hauptstadt aufgerufen - sondern gleich mehrfach.
Ich hatte statt einer Abspaltung gleich 3 überlebende und noch eine Anzahl von Spielern, die sofort wieder ausgeschieden sind. Übersehe ich hier irgendetwas offensichtliches, weshalb der Code mehrfach ausgeführt wird?
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
Okay, ich habe jetzt erstmal einige Relikte (Formatierung mit Leerzeichen und Tabs gemischt) beseitigt, das kann ja auch schon zu Störungen führen.
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
Der Code wird mehrfach ausgeführt weil du .aquireCity aufrufst, oder nicht? Das löst dann erneut onCityLost aus und da sich der Original-Besitzer nicht geändert hat sind die If-Statements am Beginn auch noch valide.
Kann man vllt. (habe es nicht überprüft!) so kürzen:Code:iCiv1 = gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getRebellCiv() iCiv2 = gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getDerivativeCiv() iCiv3 = gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getDerivativeCitystate() ###Kathy: Eliminiere existierende Civs aus der Liste for NumCiv in xrange (gc.getMAX_PLAYERS ()): LoopPlayer = gc.getPlayer(NumCiv) iLoopCiv = LoopPlayer.getCivilizationType() if ( iCiv1 == iLoopCiv ): iCiv1 = -1 if ( iCiv2 == iLoopCiv ): iCiv2 = -1 if ( iCiv3 == iLoopCiv ): iCiv3 = -1
Code:verbotene_iCivs = [ gc.getPlayer(iP).getCivilizationType() for iP in xrange(gc.getMAX_PLAYERS() ] for erlaubte_iCiv in [ gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getRebellCiv(), gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getDerivativeCiv(), gc.getCivilizationInfo(gc.getPlayer(city.getOwner()).getCivilizationType()).getDerivativeCitystate() ]: if erlaubte_iCiv not in verbotene_iCivs: iCiv = erlaubte_iCiv break
Das Entfernen der Leerzeichen hat leider keine Änderung an dem eigentlichen Problem bewirkt. Die sofort vernichteten Spieler waren 17 an der Zahl, und es waren sogar 4 überlebende. Das heißt, der Code wird 21 mal ausgeführt statt nur einmal.
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
Das Lila Problem habe ich gelöst. Offenbar hat die Zivilisation bei der Spaltung gleich wieder ihre Hauptstadt verloren, so dass dadurch die Spalte noch einmal gestartet wurde. Mit dem Verbot, die Hauptstadt abzutreten konnte dieses Problem umgangen werden.
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
Sorry, Ramkhamhaeng, habe deine Posts erst jetzt gesehen.
Deinen gekürzten Code müsste ich prüfen, 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