Seite 4 von 7 ErsteErste 1234567 LetzteLetzte
Ergebnis 46 bis 60 von 104

Thema: Partisanen-Event abändern

  1. #46
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    du hast nicht zufällig die Python-Exceptions an, oder?

    Der Code funktioniert natürlich wunderbar, nur haben die 3 Events andere Parameter, die sie erzeugen.

    Hab' mal ne angepasste Version angehängt.
    Angehängte Dateien Angehängte Dateien
    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)


  2. #47
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.023
    Die Python Exceptions schalte ich nur sehr selten an. Da ich meist nur mit xml arbeite, würde es mich nerven, bei jedem Start 8 Fehlermeldungen für die maps zu bekommen, die mich eigentlich nicht kümmern.

    Teste den geänderten Python-Code einmal. Was hast du dabei verändert - nur die Partisanen? Wenn ich den Code einfach so komplett übernehme, funktionieren ja andere Änderungen nicht mehr, z.B. Tech Conquest. Also muss ich das richtige rauskompieren.

    Edit: Also, wenn ich es einfach nur so bei onCityAquiredandkept und onCityRazed einfüge, passiert nicht mehr als vorher.
    Geändert von Kathy (17. August 2009 um 19:48 Uhr)

  3. #48
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Hast du auch den iWeight in den EventTriggerinfos auf -2 gesetzt ?
    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. #49
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.023
    Äh, nein.

    Edit:
    Jetzt schon, und es passiert, was passiert, was ich befürchtet habe: Das Event wird jede Runde aufgerufen.
    Geändert von Kathy (17. August 2009 um 20:15 Uhr)

  5. #50
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    bei mir nicht.

    Kann eigentlich auch gar nicht, denn dann müsste ja onCityAcquired/onCityRazed jede Runde aufgerufen werden.
    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. #51
    Magie ist entscheidend Avatar von magic66
    Registriert seit
    15.02.07
    Ort
    Das Dorf
    Beiträge
    1.394
    Das finde ich alles mysteriös.

    Also eigentlich würde ich dir vorschlagen, alles noch mal runterzuschmeißen Aber das ist ja nicht zu denken, wenn man mal betrachtet, was du alles schon eingefügt hast.

    Ist das denn bei deinem Standard-BtS auch so? Guck mal, wie das da gelöst ist.
    Mit Anstand, Tugen und Manieren,-kannst du dich nie blamieren!!
    Wäre, wenn und aber ... CIV ist kein Spiel der Konjunktive!

  7. #52
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.023
    Zitat Zitat von The_J Beitrag anzeigen
    bei mir nicht.

    Kann eigentlich auch gar nicht, denn dann müsste ja onCityAcquired/onCityRazed jede Runde aufgerufen werden.
    Bist du sicher? Wenn ich den Code richtig interpretiere (wobei ich keine wirkliche Ahnung habe), dann sagt die Eventmanager.xml dem Programm Folgendes:
    100% Games aktive: Erklärt sich von selbst.
    iweigth-2: in jeder Runde, wenn die Vorraussetzungen gegeben sind.
    Vorraussetzungen:
    OrPreReqs/PrereqTech>TECH_CODEX: TECH_CODEX erforscht.

    Keine weiteren Einschränkungen, daraus folgt:
    Das Ereignis tritt ein, sobald die Technologie erforscht ist.
    Da jedoch keine Werte für die Stadt übergeben wurden, kann das Ereignis nur für die zweite Auswahl, die Hauptstadt also, stattfinden.

    onCityAcquired/onCityRazed ruft diesen Trigger zwar auf, aber meiner Meinung nach wird er auch sonst jede Runde außerhalb von Python aufgerufen. Oder gibt es irgend etwas in diesem Eventrigger, was das Ereignis nur für Python aufrufbar macht? Ich habe nichts gefunden.

    Wenn ich übrigens das Event PARTISANS_2 rauslösche, löst er tatsächlich nicht mehr jede Runde aus - leider aber auch nicht bei Verlust einer Stadt, außer bei der Hauptsstadt, wenn diese als letzte zerstört wird.

    Was bedeutet eigentlich "iMaxOurLandmass>-1</iMaxOurLandmass"?
    Geändert von Kathy (19. August 2009 um 20:23 Uhr)

  8. #53
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Das -2 macht's wohl eigentlich unaufrufbar. Denk' ich.
    Sonst müsst's ja bei jedem anderen Spieler, der Emanzipation hat, auch die ganze Zeit getriggert werden.
    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. #54
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.023
    Dann muss bei mir irgendwo ein Bug sein. Bei mir scheint "0" ein Ereignis unauslösbar zu machen - jedenfalls löst -2 ständig aus.

    Ich habe ja von Python keine Ahnung, aber was machen eigentlich folgende Einträge (diesmal EventInfos.xml, bei Ereignis Partisans1)?
    PHP-Code:
    <PythonCallback>applyPartisans1</PythonCallback>
                <
    PythonExpireCheck/>
                <
    PythonCanDo>canApplyPartisans1</PythonCanDo>
                <
    PythonHelp>getHelpPartisans1</PythonHelp
    Sie sind das einzige, was in diesem Ereignis drinsteht. Kann man diese Dinge nicht auch direkt von den Auslösern "onCityRazed" oder "onCityAcquired" auslösen lassen? Dann würde man den Umweg über den Eventtrigger sparen.

  10. #55
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    mmmhh...ja...ginge wohl theoretisch, müsste aber alles angepasst werden, und es käme kein Text dabei.
    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. #56
    Magie ist entscheidend Avatar von magic66
    Registriert seit
    15.02.07
    Ort
    Das Dorf
    Beiträge
    1.394
    Zitat Zitat von Kathy Beitrag anzeigen
    Dann muss bei mir irgendwo ein Bug sein. Bei mir scheint "0" ein Ereignis unauslösbar zu machen - jedenfalls löst -2 ständig aus.

    Ich habe ja von Python keine Ahnung, aber was machen eigentlich folgende Einträge (diesmal EventInfos.xml, bei Ereignis Partisans1)?
    PHP-Code:
    <PythonCallback>applyPartisans1</PythonCallback>
                <
    PythonExpireCheck/>
                <
    PythonCanDo>canApplyPartisans1</PythonCanDo>
                <
    PythonHelp>getHelpPartisans1</PythonHelp
    Sie sind das einzige, was in diesem Ereignis drinsteht. Kann man diese Dinge nicht auch direkt von den Auslösern "onCityRazed" oder "onCityAcquired" auslösen lassen? Dann würde man den Umweg über den Eventtrigger sparen.
    PythonCanDo verlinkt das Programm mit der Python-Funktion, die die Partisanen erscheinen lässt.

    Zitat Zitat von The_J Beitrag anzeigen
    mmmhh...ja...ginge wohl theoretisch, müsste aber alles angepasst werden, und es käme kein Text dabei.
    Da muss ich aber jetzt wirklich mal widersprechen. Man kann nämlich den Text über Python manuell erscheinen lassen. Wozu gibt es denn die Klasse PyPopup
    Mit Anstand, Tugen und Manieren,-kannst du dich nie blamieren!!
    Wäre, wenn und aber ... CIV ist kein Spiel der Konjunktive!

  12. #57
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Zitat Zitat von magic66 Beitrag anzeigen
    Da muss ich aber jetzt wirklich mal widersprechen. Man kann nämlich den Text über Python manuell erscheinen lassen. Wozu gibt es denn die Klasse PyPopup
    bisher noch nicht benutzt.
    Wie triggert man denn nen Popup?
    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)


  13. #58
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.023
    Auch, wenn ich es nicht verstehe: Auf einmal funktionieren die Partisanen. Ich muss jetzt immer ein paar Angriffseinheiten mehr einplanen, wenn ich eine Stadt einnehmen will. In dem Sinne, danke, The_J.

  14. #59
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.023
    Bin im Laufe des Spiels auf ein Problem gestoßen, das ich anfangs einfach ignoriert habe, welches mir dann jedoch lästig wurde: Manchmal erschienen Partisanen auf dem Feld der eingenommen Stadt, was insofern problematisch war, als dass diese dann sofort wieder befreit wurde - was nicht Sinn und Zweck des ganzen sein sollte, die Partisanen sollen die Besatzer dafür zumindest besiegen müssen. Kann man das irgendwie beheben?
    In dem Zusammenhang eine Frage: Was passiert, wenn man eine Stadt auf einer 1-Feld-Insel einnimmt? Entstehen dann alle Partisanen in der Stadt? Kann man dagegen etwas machen, dass sie z.B. auf einer anderen Insel entstehen müssen, oder aber gar nicht?

  15. #60
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Wenn ich mir die Standard-Partisanen-Funktion in Python\EntryPoints\CvRandomEventInterface.py so anschaue, sollte das eh' schon nicht passieren, da überprüft wird, ob auf dem Feld feindliche Einheiten stehen.

    Kannst ja aber mal überprüfen, ob's bei dir genauso aussieht:
    Achtung Spoiler:

    PHP-Code:
    def applyPartisans1(argsList):
        
    iEvent argsList[0]
        
    kTriggeredData argsList[1]
        
    player gc.getPlayer(kTriggeredData.ePlayer)    
        
    capital player.getCapitalCity()
        
    plot gc.getMap().plot(kTriggeredData.iPlotXkTriggeredData.iPlotY)
        
        if 
    None != capital and not capital.isNone():
            
    iNumUnits getNumPartisanUnits(plotkTriggeredData.ePlayer)

            
    listPlots = []
            for 
    i in range(3):
                for 
    j in range(3):
                    
    loopPlot gc.getMap().plot(kTriggeredData.iPlotX 1kTriggeredData.iPlotY 1)
                    if 
    None != loopPlot and not loopPlot.isNone() and (!= or != 1):
                        if 
    not (loopPlot.isVisibleEnemyUnit(kTriggeredData.ePlayer) or loopPlot.isWater() or loopPlot.isImpassable()):
                            
    listPlots.append(loopPlot)
            
            if 
    len(listPlots) > 0:
                for 
    i in range(iNumUnits):
                    
    iPlot gc.getGame().getSorenRandNum(len(listPlots), "Partisan event placement")
                    
    player.initUnit(capital.getConscriptUnit(), listPlots[iPlot].getX(), listPlots[iPlot].getY(), UnitAITypes.UNITAI_ATTACKDirectionTypes.DIRECTION_SOUTH
    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)


Seite 4 von 7 ErsteErste 1234567 LetzteLetzte

Berechtigungen

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