Seite 7 von 7 ErsteErste ... 34567
Ergebnis 91 bis 104 von 104

Thema: Partisanen-Event abändern

  1. #91
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Oje, wenn Du es nicht weißt, bin ich skeptisch, dieses Unterfangen auf diesem Wege zu einem guten Ende zu bringen. Wenn ich den Teil, der im Originalteil bei onCityRazed steht, bei onCityAcquiredAndKept reinkopieren, erhalte ich dann die gleiche Problematik?

    Denn bislang trat der Fehler bei komplett zerstörten Städten nicht auf. Das führte dazu, dass zum Ende des Spiels alle Städte nur noch niedergerissen wurden, um zu verhindern, dass sich einer neu anmelden muss.

  2. #92
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Gut, das Problem existiert nicht mehr. Aber bei der Einnahme einer Stadt geschieht nun gar nichts mehr. Kann mir jemand erklären, warum nicht? Danke!

    Code:
    	def onCityAcquiredAndKept(self, argsList):
    		'City Acquired and Kept'
    		iOwner,pCity = argsList
    		CvUtil.pyPrint('City Acquired and Kept Event: %s' %(pCity.getName()))
    
    		### partisanen durch Eroberung beginn###
    		if city.getPopulation > 1 and iOwner != -1 and iPlayer != -1:
    			owner = gc.getPlayer(iOwner)
    			if not owner.isBarbarian() and owner.getNumCities() > 0:
    				if gc.getTeam(owner.getTeam()).isAtWar(gc.getPlayer(iPlayer).getTeam()):
    					if gc.getNumEventTriggerInfos() > 0: # prevents mods that don't have events from getting an error
    						iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_PARTISANS')
    						if iEvent != -1 and gc.getGame().isEventActive(iEvent) and owner.getEventTriggerWeight(iEvent) < 0:
    							triggerData = owner.initTriggeredData(iEvent, true, -1, city.getX(), city.getY(), iPlayer, city.getID(), -1, -1, -1, -1)
    		### partisanen durch Eroberung end###

  3. #93
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Sieht alles korrekt aus .
    Was hast du denn geändert ?
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


  4. #94
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Hier eigentlich gar nichts. Ich habe den Teil, der bei onCityRazed stand zu bei onCityAcquiredAndKept gepackt.

    Außerdem habe ich in der xml-Datei die Bedingung für das Event geändert. Jetzt ist die Voraussetzung nicht mehr Emanzipation sondern eine der beiden Technologien Göttliches Recht oder Nationalismus.

  5. #95
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Ah, ah, ah...du solltest in der civ4.ini die Python-Fehlermeldungen anschalten, dann wird das hier nämlcih offensichtlich.
    Das ganze kann aktuell nicht funktionieren, da die Variable iPlayer nicht definiert ist.
    Setz' mal vor die erste modifizierte Zeile noch
    PHP-Code:
    iPlayer pCity.getPreviousOwner() 
    , dann sollte das wieder klappen.
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


  6. #96
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Danke für die schnelle Antwort. Ich werde es gleich morgen testen.

  7. #97
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Leider noch immer nicht der gewünschte Effekt. Komischerweise passiert rein gar nichts.

  8. #98
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Zitat Zitat von The_J Beitrag anzeigen
    Ah, ah, ah...du solltest in der civ4.ini die Python-Fehlermeldungen anschalten
    hast du?
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


  9. #99
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Ach, wozu?

    Habe ich also nachgeholt und erhalte somit (im SP) die Fehlermeldung, dass der Name 'city' nicht definiert sei.

    Aktuell sieht der Code folgendermaßen aus:

    Code:
    		### partisanen durch Eroberung beginn###
    		iPlayer = pCity.getPreviousOwner()
    		if city.getPopulation > 1 and iOwner != -1 and iPlayer != -1:
    			owner = gc.getPlayer(iOwner)
    			if not owner.isBarbarian() and owner.getNumCities() > 0:
    				if gc.getTeam(owner.getTeam()).isAtWar(gc.getPlayer(iPlayer).getTeam()):
    					if gc.getNumEventTriggerInfos() > 0: # prevents mods that don't have events from getting an error
    						iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_PARTISANS')
    						if iEvent != -1 and gc.getGame().isEventActive(iEvent) and owner.getEventTriggerWeight(iEvent) < 0:
    							triggerData = owner.initTriggeredData(iEvent, true, -1, city.getX(), city.getY(), iPlayer, city.getID(), -1, -1, -1, -1)
    		### partisanen durch Eroberung end###
    Geändert von poy`son (20. April 2011 um 23:14 Uhr)

  10. #100
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Ersetz' "city" überall durch pCity, dann sollte es gehen.
    Zum Download bereit: Civ4-Mod "Mars, jetzt!"


    "Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )

    "Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)


  11. #101
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Jetzt kommt die Meldung, dass 'pcity' nicht definiert sei. Ich hätte gedacht, dass sei durch
    Code:
    		iOwner,pCity = argsList
    geschehen.

  12. #102
    Registrierter Benutzer
    Registriert seit
    04.03.07
    Beiträge
    4.694
    pcity ist nicht pCity. Groß-/Kleinschreibung macht nen Unterschied.

  13. #103
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Ja, man sollte auch die kleinen Dinge beachten. Diese Korrektur lässt tatsächlich die Fehlermeldung verschwinden. Dennoch erscheinen die Partisanen nur nach der Stadtvernichtung und nicht nach jeder Eroberung.

  14. #104
    Registrierter Benutzer
    Registriert seit
    21.04.07
    Ort
    Im AKW-freien NRW
    Beiträge
    69
    Auch nach einigen Spielereien macht das Ereignis im MP Probleme. Von daher muss ich den Code leider wieder entfernen. Ich habe jedoch überlegt, ob nicht der Code, den Kathy für "Barbaren durch Anarchie" verwendet, so abänderbar ist, dass er hierfür genügt.

    Code:
    ###Barbaren durch Anarchie beginn###
           		pPlayer = gc.getPlayer(iPlayer)
           		if pPlayer.getAnarchyTurns() > 0:
           		    pCity= pPlayer.getCapitalCity()
           		    iUnitType = pCity.getConscriptUnit()
           		    iNumUnits = int (pPlayer.getNumCities() / 3)
           		    iPlotY = pCity.getY()
           		    iPlotX = pCity.getX()
           		    listPlots = []
           		    for i in range(3):
           		        for j in range(3):
           		            loopPlot = gc.getMap().plot(iPlotX + i - 1, iPlotY + j - 1)
           		            if not (loopPlot.isVisibleEnemyUnit(gc.getBARBARIAN_PLAYER ()) or loopPlot.isWater() or loopPlot.isImpassable() or loopPlot.isCity()):
           		                listPlots.append(loopPlot)
           		    if len(listPlots) > 0:
           		        for i in range(iNumUnits):
           		            iPlot = gc.getGame().getSorenRandNum(len(listPlots), "Partisan event placement")
           		            gc.getPlayer(gc.getBARBARIAN_PLAYER ()).initUnit(iUnitType, listPlots[iPlot].getX(),listPlots[iPlot].getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_NORTH)
           		    CyInterface().addMessage(gc.getPlayer(iPlayer).getID(), True, 10, CyTranslator().getText("Es herrscht Bürgerkrieg in ihrem Reich",()), None, 2, None, ColorTypes(8), 0, 0, False, False)
    ###Barbaren durch Anarchie end###
    Der Teil mit den AnarchyTurns kann dann natürlich raus. pCity muss dann die eroberte Stadt sein und der BarbarianPlayer muss durch den Spieler ersetzt werden, der gerade die Stadt verloren hat.

    Kann mir jemand (vorerst) an diesen drei Stellen helfen? Danke!

Seite 7 von 7 ErsteErste ... 34567

Berechtigungen

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