Seite 53 von 271 ErsteErste ... 34349505152535455565763103153 ... LetzteLetzte
Ergebnis 781 bis 795 von 4063

Thema: Der Pythonthread

  1. #781
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.454
    PHP-Code:
    else if ((getPopulation() >= GC.getDefineINT("WE_LOVE_THE_KING_POPULATION_MIN_POPULATION")) && (GC.getGameINLINE().getSorenRandNum(GC.getDefineINT("WE_LOVE_THE_KING_RAND"), "Do We Love The King?") < getPopulation())) 
    kannst du da die chance rauslesen? der vergleicht irgendne zufallszahl (von wo bis wo?) mit der polulation.

    und wie kann ich die chance dort für leader mit trait X erhöhen?


    der ganze code:
    PHP-Code:
        if (isOccupation() || (angryPopulation() > 0) || (healthRate() < 0))
        {
            
    setWeLoveTheKingDay(false);
        }
        else if ((
    getPopulation() >= GC.getDefineINT("WE_LOVE_THE_KING_POPULATION_MIN_POPULATION")) && (GC.getGameINLINE().getSorenRandNum(GC.getDefineINT("WE_LOVE_THE_KING_RAND"), "Do We Love The King?") < getPopulation()))
        {
            
    setWeLoveTheKingDay(true);
        }
        else
        {
            
    setWeLoveTheKingDay(false);
        } 

    edit meint: von 0 bis 1000 (globaldefines.xml)

    narf. wie kann ich jetzt auf nen xml wert per python oder sdk einfluss nehmen?


    edit2: vermutlich einfach nen anderen random wert nehmen if leadertrait x.

    edit3 testet erstmal das exposen.
    Geändert von Cybah (09. Juni 2010 um 13:13 Uhr)
    Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5

    Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)

  2. #782
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.019
    Zitat Zitat von Kathy Beitrag anzeigen
    So, die Python-Exceptions waren aktiv und haben nichts angezeigt. Auch nach den Änderungen passiert nichts. es kommt nicht einmal ein Text bei GOODY_WARRIOR.
    PHP-Code:
    ####Söldner modernisieren start
            
    if iGoodyType == gc.getInfoTypeForString("GOODY_WARRIOR"):        
                
    pPlayer gc.getPlayer(iPlayer)
                if 
    pPlayer.getCurrentEra () ==gc.getInfoTypeForString("ERA_CLASSICAL"):
                    
    iMaxPlotUnit pPlot.getNumUnits ()-1  
                    
    for i in xrange(iMaxPlotUnit,-1,-1):
                        
    pPlotUnit pPlot.getUnit(i)
                        if 
    pPlotUnit.getUnitClassType() ==gc.getInfoTypeForString("UNITCLASS_WARRIOR"):
                            
    pPlotUnit.kill(False,-1)
                            
    pPlayer.initUnit(gc.getInfoTypeForString("UNIT_ARCHER"),pPlot.getX(),pPlot.getY(),UnitAITypes.NO_UNITAI,DirectionTypes.DIRECTION_NORTH)
    ###Söldner modernisieren ende 
    Edit: Habe gerade einen groben Fehler gefunden, der natürlich Unsinn produziert. GetGlassUnit ist Blödsinn. Ich war in der Zeile verrutscht, als ich das Class einfügte.

    Edit 2: Hat nichts genutzt, dieses Goody scheint nicht korrekt aufgerufen zu werden.
    Ich habe mit die Sache noch einmal angesehen. Habe leider den Fehler immer noch nicht, aber eine Rückfrage habe ich schon. Wozu dient:
    PHP-Code:
                pPlayer gc.getPlayer(iPlayer
    Ich denke nicht, dass es einen Fehler verursacht, aber ist es notwendig?

    Könnte es vielleicht auch an der GoodyInfo selbst liegen? Ich meine zwar, dass diese Unverändert wäre, aber aus irgend einem Grund triggert dieses Goody ja nicht.
    PHP-Code:
            <GoodyInfo>
                <
    Type>GOODY_WARRIOR</Type>
                <
    Description>TXT_KEY_GOODY_WARRIOR</Description>
                <
    Sound>AS2D_GOODY_WARRIOR</Sound>
                <
    iGold>0</iGold>
                <
    iGoldRand1>0</iGoldRand1>
                <
    iGoldRand2>0</iGoldRand2>
                <
    iMapOffset>0</iMapOffset>
                <
    iMapRange>0</iMapRange>
                <
    iMapProb>0</iMapProb>
                <
    iExperience>0</iExperience>
                <
    iHealing>0</iHealing>
                <
    iDamagePrereq>0</iDamagePrereq>
                <
    bTech>0</bTech>
                <
    bBad>0</bBad>
                <
    UnitClass>UNITCLASS_WARRIOR</UnitClass>
                <
    BarbarianClass>NONE</BarbarianClass>
                <
    iBarbarianUnitProb>0</iBarbarianUnitProb>
                <
    iMinBarbarians>0</iMinBarbarians>
            </
    GoodyInfo

  3. #783
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Ach, du hast ja editiert, ich dachte, das würde funktionieren.

    @Befehl: Das gibt mir den Spieler, der auf die Hütte gelaufen ist. Wird nämlcih direkt für die nächste Zeile gebraucht, in der die Ära des Spielers abgefragt wird.

    ich seh's auch immer noch nicht.
    Änder mal pPlotUnit.kill(False,-1) in pPlotUnit.kill(False,iPlayer)
    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. #784
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.019
    Ich teste das jetzt mal.

    @Befehl: Das gibt mir den Spieler, der auf die Hütte gelaufen ist. Wird nämlcih direkt für die nächste Zeile gebraucht, in der die Ära des Spielers abgefragt wird.
    Aber ist nicht iPlayer bereits ein Spieler? Würde nicht iPlayer == pPlayer sein?

  5. #785
    Registrierter Benutzer
    Registriert seit
    04.03.07
    Beiträge
    4.694
    Nein. iPlayer ist ne Zahl, pPlayer ein(e Referenz zu einem) Objekt, mit Methoden (pPlayer.doStuff(arg1, arg2)) etc.

  6. #786
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.019
    Ah, verstehe. Hoffentlich kann ich es mir auch merken.

    Leider hat der neue Versuch wieder nicht funktioniert. Ich habe auch einmal versucht, die Einheit so zu töten wie die Barbarenkrieger, die zu Triremen werden, auch da passiert nichts.

    pPlayer.getCurrentEra
    Ist dieser Befehl korrekt? Er ist bisher so ziemlich das einzige, was wir nicht zerpflückt haben.

  7. #787
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Das könntest du auch hier selbst nachschauen .

    Aber ja, ist er.

    "Passiert nichts" heißt jetzt immer noch, dass der Krieger zwar verschwindet, aber kein Bogi auftaucht ?
    Oder dass sich nix verä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)


  8. #788
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.019
    Ich habe mich vermutlich nicht eindeutig ausgedrückt.
    "Nichts" heißt in diesem Fall leider nicht, dass nur der Python-Code ignoriert würde. "Nichts" heißt leider wirklich "Nichts".
    Ich habe alle anderen Goodys deaktiviert, gehe in eine Hütte, und diese verschwindet einfach. Ich bekomme keine Nachricht, dass man mir einen Krieger überlassen hat, ich bekomme keinen Krieger, es wird auch kein Krieger getötet - also auch nicht der, mit dem ich reinlaufe - und ich bekomme keinen Bogenschützen. Es passiert wörtlich nichts, außer dass die Hütte verschwindet.

  9. #789
    Ad Astra Avatar von Ronnar
    Registriert seit
    27.10.08
    Beiträge
    3.258
    Kann man per Python einer Einheit mehr Bewegungspunkte geben für die aktuelle Runde? Also mehr als das eigentliche Maximum für diese Einheit (z.B. um Rückenwind für Schiffe zu simulieren).

    Mit unit.setMoves(x) scheine ich nur einer Einheit, die keine Bewegungspunkte für diese Runde mehr hat, einen weiteren Zug zu geben.

    unit.changeMoves(x) hat irgendwie gar keine Auswirkung in meinem Test gehabt

  10. #790
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Zitat Zitat von Kathy Beitrag anzeigen
    Ich habe mich vermutlich nicht eindeutig ausgedrückt.
    "Nichts" heißt in diesem Fall leider nicht, dass nur der Python-Code ignoriert würde. "Nichts" heißt leider wirklich "Nichts".
    Ich habe alle anderen Goodys deaktiviert, gehe in eine Hütte, und diese verschwindet einfach. Ich bekomme keine Nachricht, dass man mir einen Krieger überlassen hat, ich bekomme keinen Krieger, es wird auch kein Krieger getötet - also auch nicht der, mit dem ich reinlaufe - und ich bekomme keinen Bogenschützen. Es passiert wörtlich nichts, außer dass die Hütte verschwindet.
    und wenn du den Code komplett wieder rausnimmst?
    Irgendwas muss sich ja tun .

    Zitat Zitat von Ronnar Beitrag anzeigen
    Kann man per Python einer Einheit mehr Bewegungspunkte geben für die aktuelle Runde? Also mehr als das eigentliche Maximum für diese Einheit (z.B. um Rückenwind für Schiffe zu simulieren).

    Mit unit.setMoves(x) scheine ich nur einer Einheit, die keine Bewegungspunkte für diese Runde mehr hat, einen weiteren Zug zu geben.

    unit.changeMoves(x) hat irgendwie gar keine Auswirkung in meinem Test gehabt
    Für changeMoves musst du größere Werte nehmen.
    Damit die Straßen/Eisenbahnen realisiert werden können, wird die Bewegung intern anders gezählt (aber wohl nur bei dem Befehl ), da ist glaub' ich 20 = 1 Bewegungspunkt.
    Wie viel genau weiß ich nicht, probier's mal 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)


  11. #791
    Ad Astra Avatar von Ronnar
    Registriert seit
    27.10.08
    Beiträge
    3.258
    Zitat Zitat von The_J Beitrag anzeigen
    Für changeMoves musst du größere Werte nehmen.
    Damit die Straßen/Eisenbahnen realisiert werden können, wird die Bewegung intern anders gezählt (aber wohl nur bei dem Befehl ), da ist glaub' ich 20 = 1 Bewegungspunkt.
    Wie viel genau weiß ich nicht, probier's mal aus .
    Hab's ausprobiert: Mein Schiff mit 3 Bewegung, hat 180 Moves, also 60 pro Bewegungspunkt (CIV COL). Wenn ich changeMoves verwende, kann ich nun 0, 1, 2 oder 3 Bewegungspunkte einstellen. Nur über die 3 Maximum komme ich nicht hinaus. Verwende ich changeMoves(240), werden 0 Bewegungspunkte angezeigt, statt der erwarteten 4. Über das Maximum für diese Schiffsklasse scheine ich also mit dieser Methode nicht rauszukommen.
    Dennoch danke, der Hinweis auf größere Werte hat schonmal weitergeholfen!

    Edit: Fehler von mir changeMoves zieht diesen Wert von den vorhandenen Moves ab! Wenn man die Bewegungspunkte erhöhen will, muss man tatsächlich einen negativen Wert angeben. Mit unit.changeMoves(-60) hat mein Schiff dann tatsächlich 4/3 Bewegungspunkten!
    Geändert von Ronnar (11. Juni 2010 um 23:02 Uhr)

  12. #792
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.019
    Zitat Zitat von The_J Beitrag anzeigen
    und wenn du den Code komplett wieder rausnimmst?
    Irgendwas muss sich ja tun .
    Komischerweise triggert auch jetzt GOODY_WARRIOR nicht. Ich habe den Mod noch einmal ohne den Code probiert, und wenn ich eine Hütte betrat, passierte nichts. Dabei habe ich die Einträge in der GoodyInfo.xml und in der HandicapInfo.xml verglichen, beide Namen waren identisch diese Abschnitte sind auch eigentlich nie verändert worden. Es scheint jedenfalls nicht im Python-Code zu liegen.

  13. #793
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Dann bemühe mal deine Sicherung und teste es wieder .
    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)


  14. #794
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.019
    Das ändert leider auch nichts. Obschon ich den Code komplett rausgenommen habe - also auch "An Land gehen" und "Barbaren umwandeln" - und sowohl für Handicap wie für Goody eine alte info.xml geladen habe, in der noch Krieger erscheinen, passiert dies nicht. Ebenso erhalte ich keine Siedler aus Hütten. Alle anderen Einheiten jedoch wohl.

    Edit: Das mit den Siedlern war ein Irrtum, sie kommen ganz normal vor. Nur Krieger nicht mehr.
    Geändert von Kathy (12. Juni 2010 um 20:14 Uhr)

  15. #795
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.019
    So, jetzt habe ich versucht, den bisherigen GOODY_WARRIOR zu umgehen, indem ich GOODY_MERCENAIRES definiert habe, das genauso wirkt. Doch auch hier erhalte ich keinen Krieger mehr. Andererseits können Krieger ganz normal gebaut werden und sind auch ganz normal im Spiel vorhanden, bisher kamen auch bei den feindlichen Hütten Barbarenkrieger. Was könnte da kaputt sein?

Seite 53 von 271 ErsteErste ... 34349505152535455565763103153 ... LetzteLetzte

Berechtigungen

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