Verschieb den Python-Code mal von onCityAcquired zu onCityAcquiredAndKept, evtl. ändert das etwas.
Verschieb den Python-Code mal von onCityAcquired zu onCityAcquiredAndKept, evtl. ändert das etwas.
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)
Also, jetzt hat es nicht funktioniert - obschon ich sogar die Staatsform, nat. Selbststädnigkeit (hatte ich als Alternative zu Emanzipation eingesetzt) hatte. Bisher hat dieses Ereignis nur mit Emanzipation richtig funktioniert.
Edit: Ich verstehe gar nichts mehr. Jetzt tritt das Ereignis tatsächlich abhängig von einer Technologie auf - allerdings immer noch nur dann, wenn die Stadt zerstört wurde, und nur einmal pro Runde. Ist ja schon einmal ein Fortschritt, aber noch kein voller Erfolg. Frag mich aber nicht, warum es jetzt geht.
Edit 2: Ich verstehe wirklich nichts mehr. Jetzt hatte ich gedacht, es läuft - und dann teste ich es noch einmal, und keine Partisanen erscheinen. Dabei sollte es doch wirklich in 100% der Spiele aktiv sein! Doch nichts passiert, auch nicht mehr bei CityRazen. Die Sache macht mich wahnsinnig.
Geändert von Kathy (02. August 2009 um 20:39 Uhr)
Sowohl bei der HS als auch bei der attackierten Stadt nicht ?
Ähm, welche Ära ist es denn?
Ich glaub', da war auch irgendeine Abhängigkeit, kann allerdings grad keine finden .
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)
Kann es sein, dass Civ4 nicht immer den Python-Code richtig initalisiert, sodass Civ einen älteren Code benutzt? Ist mir auch schon mal passiert, da habe ich an dem Interface gefummelt und wollte die Techleiste verschieben und der hat mir immer nur Schwachsinn angezeigt.
Ein bisschen mehr Geduld braucht man da wohl
Mit Anstand, Tugen und Manieren,-kannst du dich nie blamieren!!
Wäre, wenn und aber ... CIV ist kein Spiel der Konjunktive!
Ära ist immer die erste im Test, da ich dann nur das nötigste im WB setze. Jedoch hat es auch einmal mit Renaissance nicht funktioniert, als ich mit Nationalismus gegeben habe (hatte probiert, statt EMANCIPATION NATIONHOOD zu nehmen). Die Tech, die ich ausprobiert habe, was immer eine ANCIENT Technologie.
Ich verstehe nicht ganz, dein code scheint sich von meinem zu unterscheiden, keine Ahnung warum. Bei mir steht.Das scheint mir das totale Gegenteil zu sein. Schade, eigentlich wollte ich schauen, ob dein Code mit 1 ein anderes ergebnis bringt, weil dann der Wert 0 im entsprechenden Bereich wäre. Jetzt ist 0 aber im entsprechenden Bereich.PHP-Code:
and owner.getEventTriggerWeight(iEvent) >= 0:
Was bedeutet eigentlich die Zeile da drunter?
PHP-Code:
triggerData = owner.initTriggeredData(iEvent, true, -1, city.getX(), city.getY(), iPlayer, city.getID(), -1, -1, -1, -1)
welchen Patch-Stand hast du denn? Du hattest ja mal erwähnt, dass das mit dem patchen bei dir nicht so sonderlich klappt, und ich meine, der Partisanen-Event wäre erst mit einem der Patches gefixt worden.
Ich hab' mal meine CvEventManager.py angehängt, damit du mal überprüfen kannst, ob sonst noch was anders ist.
Das löst den Event aus und übergibt im die Parameter.
Was nun was ist, müsste ihc aber nachschauen .
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)
Ich habe den Python-Code von deinem Eventmanager.py einmal bei mir eingesetzt, es läuft weiter wie bisher, also ereignislos. Wie ist denn dein Eventrigger.xml? Wenn der auch gepatcht wurde, kann das ja einen Unterschied machen.
Edit:
vielleicht würde es helfen, den Python Code Stück für Stück zu analysieren. Er enthält viele Bedingungen, die ich nicht verstehe, daher weiß ich nicht, wann er wirklich aktiviert wird. Tatsache ist, dass der Eventtrigger die richtigen Ereignisse auslöst, aber leider nur dann, wenn ich ihn auf -1 (jede Runde aktiv) stelle, dann aber eben jede Runde. Irgendwie muss es eine Bedingun geben, wann Python den Code auslöst, denn die Abhängigkeit von der Technologie ist derzeit nicht der Fehler.
Geändert von Kathy (08. August 2009 um 11:35 Uhr)
Also am Python-Code kann's eigentlich nicht liegen, da hab' ich schon drüber geschaut .
Ich kann den Eintrag aus meiner EventTrigger.xml mal posten, dass kann allerdings nen Moment dauern, denn mein civ-Rechner ist momentan nicht in Betrieb .
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)
Ich hab' mir mal erlaubt, das ganze in nen eigenen Thread auszulagern (ist ja nicht mehr wirklich klein).
Ich musste dazu in 3 Posts (2 * Kathy, 1 * Magic) rumschnippeln, ein Teil von denen ist im kleine Fragen-Thread geblieben. Hab' alles entspr. gekennzeichnet; ich hab' hoffentlich nix vergessen.
Ich hoff' mal, ich bekomme keine Haue dafür .
Meine EventtriggerInfos zu den Partisanen:
Achtung Spoiler:
Wie sieht deine aus ?
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)
Ich denke, es ist ganz gut, dass es ausgelagert ist - als ich die Frage stellte, dachte ich nicht, dass es so viel werden würde. Schnippeln ist also okay, dafür kann man jetzt wieder beruhigt kleine Fragen stellen, ohne zwischen die Diskussion zu kommen.
Hier mein Eventrigger, die Technologie existiert in meinem Mod, wundere dich nicht. Ich habe mir deinen einmal kopiert und werde vergleichen, vielleicht finde ich ja schon einen Unterschied.
Achtung Spoiler:
Leider war der einzige Unterschied - außer dem, was ich ändern müsste, um mit einer Technologie als Auslöser zu spielen - das iweigth. Es wundert mich nur, warum der Trigger bei dir nicht jede Runde anschlägt, wenn du Emanzipation hast, bei mir jedoch schon, wenn ich einen negativen Wert eingebe.
Geändert von Kathy (14. August 2009 um 21:35 Uhr)
Bei welcher Stadt entstehen eigentlich Partisanen, wenn du -2 einsetzt ?
Und wie sieht bei dir der Code im CvEventManager aus?
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)
Der Code im Eventmanager ist derzeit der, den du gepostet hast - ich habe ihn einfach reinkopiert. Nun, die Partisanen entstehen nur bei der Hauptstadt, Option 1 steht nicht zur Auswahl. Allerdings entstehen sie bei mir jetzt auch dann jede Runde, wenn ich deinen Code verwende.
Naja, hier einmal mein Python-Code
HTML-Code:def onCityRazed(self, argsList): 'City Razed' city, iPlayer = argsList iOwner = city.findHighestCulture() # Partisans! 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) CvUtil.pyPrint("City Razed Event: %s" %(city.getName(),)) def onCityAcquired(self, argsList): 'City Acquired' iPreviousOwner,iNewOwner,pCity,bConquest,bTrade = argsList CvUtil.pyPrint('City Acquired Event: %s' %(pCity.getName())) ### techconquest begin ### techcount=0 iX=pCity.getX() iY=pCity.getY() pLoser = gc.getPlayer(iPreviousOwner) pWinner = gc.getPlayer(iNewOwner) WinnerTeam=gc.getTeam(pWinner.getTeam()) LoserTeam=gc.getTeam(pLoser.getTeam()) for techcount in range (gc.getNumTechInfos()): if ((LoserTeam.isHasTech(techcount)==true)and ((WinnerTeam.isHasTech(techcount)==false))): WinnerTeam.setHasTech(techcount,1,iNewOwner,0,1) CyInterface().addMessage(iNewOwner,false,15,CyTranslator().getText("TXT_KEY_TECH_CONQUERED",()),'',0,'Art/Interface/Buttons/General/happy_person.dds',ColorTypes(44), iX, iY, True,True) break ### techconquest end ### def onCityAcquiredAndKept(self, argsList): 'City Acquired and Kept' iOwner,pCity = argsList CvUtil.pyPrint('City Acquired and Kept Event: %s' %(pCity.getName())) # Partisans! 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) def onCityLost(self, argsList): 'City Lost' city = argsList[0] player = PyPlayer(city.getOwner()) if (not self.__LOG_CITYLOST): return CvUtil.pyPrint('City %s was lost by Player %d Civilization %s' %(city.getName(), player.getID(), player.getCivilizationName()))
Kopier den Code mal stattdessen zu onCityAcquired, und nimm' ihn bei den 2 anderen raus (nur auskommentieren).
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)
Passiert leider das selbe wie vorher auch, nämlich nichts.