Seite 106 von 271 ErsteErste ... 65696102103104105106107108109110116156206 ... LetzteLetzte
Ergebnis 1.576 bis 1.590 von 4063

Thema: Der Pythonthread

  1. #1576
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.554
    Kannst du nicht einfach:
    Spieler.Stadtliste[0] nehmen

  2. #1577
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.017
    Ich fürchte, das habe ich jetzt nicht verstanden. Wo soll Spieler.Stadtliste[0] genommen werden?
    Die Stadtlisten aller Spieler sind ja beim Start völlig leer, daher dürfte auch Spieler.Stadtliste[0] auf keinen Ort verweisen, der das Problem lösen könnte.

  3. #1578
    verschollen Avatar von deepwater
    Registriert seit
    23.04.11
    Beiträge
    1.580
    @VK: Da müsste die Stadt doch erst gegründet sein.
    @Kathy: Mach doch davor eine Abfrage rein, ob der Spieler schon eine Stadt gegründet hat. (Das geht doch bestimmt irgendwie?)
    @ eigenes Problem: Wie kann ich den Eigentümer eines Improvements abfragen, oder wird der bei onImprovementBuilt schon irgendwie mitgelifert?

  4. #1579
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.554
    Zitat Zitat von Kathy Beitrag anzeigen
    Ich fürchte, das habe ich jetzt nicht verstanden. Wo soll Spieler.Stadtliste[0] genommen werden?
    Die Stadtlisten aller Spieler sind ja beim Start völlig leer, daher dürfte auch Spieler.Stadtliste[0] auf keinen Ort verweisen, der das Problem lösen könnte.
    Dürfte es nicht dann nicht reichen abzufragen ob es überhaupt eine Stadt gibt

    Falls es keine Gibt => Keine Barbs.

  5. #1580
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.554
    Zitat Zitat von deepwater Beitrag anzeigen
    @ eigenes Problem: Wie kann ich den Eigentümer eines Improvements abfragen, oder wird der bei onImprovementBuilt schon irgendwie mitgelifert?
    Ich glaub das geht nur in dem du auf den Plot gehst und von dem den Besitzer abfragst.

  6. #1581
    verschollen Avatar von deepwater
    Registriert seit
    23.04.11
    Beiträge
    1.580
    Jaja...

  7. #1582
    verschollen Avatar von deepwater
    Registriert seit
    23.04.11
    Beiträge
    1.580
    Aber der Plot muss mir ja nicht zwangsläufig gehören? Der gehört mir doch, wenn er innerhalb meiner Kulturgrenzen ist, oder?

  8. #1583
    Beyond Mars Avatar von [VK]
    Registriert seit
    05.02.08
    Beiträge
    59.554
    Zitat Zitat von deepwater Beitrag anzeigen
    Aber der Plot muss mir ja nicht zwangsläufig gehören? Der gehört mir doch, wenn er innerhalb meiner Kulturgrenzen ist, oder?
    Ja, aber für gewöhnlich kannst du keine Plots bearbeiten die nicht in deiner Kultur sind.

    Alternative: Frag den Besitzer des BT ab.

  9. #1584
    verschollen Avatar von deepwater
    Registriert seit
    23.04.11
    Beiträge
    1.580
    Zitat Zitat von [VK] Beitrag anzeigen
    Ja, aber für gewöhnlich kannst du keine Plots bearbeiten die nicht in deiner Kultur sind.

    Alternative: Frag den Besitzer des BT ab.
    Tja, meine Improvements kann man halt auch außerhalb bauen.
    Wo soll ich denn da den Bautrupp herkriegen? Ich muss mal meinen Befehlswortschatz vergrößern.

  10. #1585
    paranoider Irrer Avatar von The_J
    Registriert seit
    07.08.07
    Ort
    verrat ich nicht
    Beiträge
    13.297
    Das geht nicht wirklichg gescheit, da müsstest du über den Plot gehen und Einheiten abfragen, aber da dort ja BTs von mehreren Civs sein könnten...

    Was willst du eigentlich machen?


    @Kathy: Ich würde da doch lieber gar keine Barbs auftauchen lassen. Wäre doch etwas übel, oder nicht ?
    Würde deswegen nach:
    PHP-Code:
    capital pPlayer.getCapitalCity() 
    die Avfrage:
    PHP-Code:
    if not capital.isNone(): 
    einfügen und alles danach halt alles eins weiter einrücken.
    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. #1586
    verschollen Avatar von deepwater
    Registriert seit
    23.04.11
    Beiträge
    1.580
    Zitat Zitat von The_J Beitrag anzeigen
    Das geht nicht wirklichg gescheit, da müsstest du über den Plot gehen und Einheiten abfragen, aber da dort ja BTs von mehreren Civs sein könnten...

    Was willst du eigentlich machen?
    Ich will einfach das Arbeitsboot/ den Bautrupp, das/der das Improvement gebaut hat, auf einem anderen Feld neu setzen. Da es/er nach einem Domainwechsel ja futsch ist. (siehe Landaufschüttung)

  12. #1587
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.017
    Zitat Zitat von The_J Beitrag anzeigen
    Das geht nicht wirklichg gescheit, da müsstest du über den Plot gehen und Einheiten abfragen, aber da dort ja BTs von mehreren Civs sein könnten...

    Was willst du eigentlich machen?


    @Kathy: Ich würde da doch lieber gar keine Barbs auftauchen lassen. Wäre doch etwas übel, oder nicht ?
    Würde deswegen nach:
    PHP-Code:
    capital pPlayer.getCapitalCity() 
    die Avfrage:
    PHP-Code:
    if not capital.isNone(): 
    einfügen und alles danach halt alles eins weiter einrücken.
    Das überzeugt mich - obwohl ich glaube, dass man bei einem späteren Start mit zusätzlichen Einheiten startet, dürften das vermutlich nicht schön sein.

    @deepwaters Problem: Es gibt doch dieses "nearest valid Plot", das ich für meine Goody_Inseln auch zum Versetzen nutze. Wenn man die EInheit also einmal hat, kann man sie einfach damit springen lassen:
    PHP-Code:
                            pPlotUnit.jumpToNearestValidPlot() 

  13. #1588
    verschollen Avatar von deepwater
    Registriert seit
    23.04.11
    Beiträge
    1.580
    Ah, das ist sehr gut, da kann man gleich auch noch andere Einheiten mit Jumpen lassen, was ist denn mit ValidPlot gemeint? Und wie kann ich den selber bestimmen?

    Edit: Dafür müsste ich doch trotzdem noch die Einheit wissen, erst mal kriegen?

    @Dein Problem: Wenn du die Barbaren haben willst kannst du über getstartingplot (pPlayer.getstartingPlot (?)) das Anfangsfeld abfragen.

    Edit: Dafür müsste ich doch trotzdem noch die Einheit wissen, erst mal kriegen?

  14. #1589
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    17.017
    Den kannst du gar nicht bestimmen, das macht das Programm. Es sucht für die Einheit den nächstgelegenen Gültigen Ort aus und verschiebt sie nach dort.
    Wie du die Einheit bekommst...
    Leider gibt es bei OnImprovementBuild keine direkte Möglichkeit, auf die Einheiten zuzugreifen.

    Die Barbaren brauche ich für den Start nicht unbedingt. Habe es einmal mit der Moderne jetzt versucht: Man bekam drei Infanterieeinheiten und drei Einheiten mit hoher Bewegung, wenn die am Anfang gegen alle Barbaren, die aus den Vorzeitaltern durch Techs entstehen antreten müssen ist das nicht sehr lustig.

    Noch ein Problem tritt bei Start im späteren Zeitalter auf:
    PHP-Code:
    #### Kathy's Tech-Bonus Feature Start --------------------
                
    if iPlayer > -1:

                if 
    iTechType == gc.getInfoTypeForString("TECH_ELECTRONIC"):
                        
    iBonusType gc.getInfoTypeForString("BONUS_COPPER")
                      
    elif iTechType == gc.getInfoTypeForString("TECH_MASCHINENBAU"):
                        
    iBonusType gc.getInfoTypeForString("BONUS_IRON")
                      
    elif iTechType == gc.getInfoTypeForString("TECH_CHEMIEWAR"):
                        
    iBonusType gc.getInfoTypeForString("BONUS_SULPHUR")
                      
    elif iTechType == gc.getInfoTypeForString("TECH_BANKING"):
                        
    iBonusType gc.getInfoTypeForString("BONUS_SILVER")
                      
    elif iTechType == gc.getInfoTypeForString("TECH_FUTURE_MATERIALS"):
                        
    iBonusType gc.getInfoTypeForString("BONUS_COAL")
                      
    elif iTechType == gc.getInfoTypeForString("TECH_COMPOSITES"):
                        
    iBonusType gc.getInfoTypeForString("BONUS_OIL")
                  
    # usw....
                
    else: iBonusType = -1
                    
    if iBonusType > -1:
                            
    pPlayer gc.getPlayer(iPlayer)
                                
    iTeam pPlayer.getTeam()
                                
    isTeamFirst True
                    iMaxTeams 
    gc.getMAX_CIV_TEAMS ()
                                for 
    i in range(iMaxTeams):
                                        if 
    == iTeam:continue
                                        
    pCurTeam gc.getTeam(i)
                                        if 
    pCurTeam.isHasTech(iTechType):
                                                   
    isTeamFirst False
                                                   
    break
                    if 
    isTeamFirst:
                            
    iMapW gc.getMap().getGridWidth()
                            
    iMapH gc.getMap().getGridHeight()
        
                            
    BonusPlotArray = []
                            for 
    x in range(iMapW):
                                 for 
    y in range(iMapH):
                                        
    loopPlot gc.getMap().plot(x,y)
                                        if 
    loopPlot != None and not loopPlot.isNone() and loopPlot.getBonusType(iTeam) == iBonusType and loopPlot.getOwner() == iPlayer:
                                              
    BonusPlotArray.append(loopPlot)

            
    # Bonusresi soll verschwinden
                           
    if len(BonusPlotArray) > 0:
              
    # Die mittlere Resi nehmen
                              
    iPlot len(BonusPlotArray) / 2
              
    # Resi entfernen
                              
    BonusPlotArray[iPlot].setBonusType(-1)
              
    # Meldung an den Spieler
                              
    if gc.getPlayer(iPlayer).isHuman():
                
    # Bsp: Durch die Entdeckung der Technologie %s2 wurde ein %s1 - Vorkommen abgebaut!
                                    
    CyInterface().addMessage(iPlayerTrue5CyTranslator().getText("TXT_KEY_INFO_TECH_BONUS_LOSS",(gc.getBonusInfo(iBonusType).getDescription(),gc.getTechInfo(iTechType).getDescription())),None,2,gc.getBonusInfo(iBonusType).getButton(),ColorTypes(7),BonusPlotArray[iPlot].getX(),BonusPlotArray[iPlot].getY(),True,True)
    #### Kathy's Tech-Bonus Feature End -------------------- 
    In dieser Zeile behauptet er: 'BonusPlotArray' reffered before assignment.
    PHP-Code:
                           if len(BonusPlotArray) > 0
    Dabei wird es sieben Zeilen darüber doch definiert.

    Edit: Problem gelöst. Ich habe es einfach noch ein paar Zeilen vorher definiert.
    Geändert von Kathy (11. Juni 2011 um 16:36 Uhr)

  15. #1590
    verschollen Avatar von deepwater
    Registriert seit
    23.04.11
    Beiträge
    1.580
    Dein Problem -> sorry
    Für mein Problem -> zwei Möglichkeiten:
    1. Einheit abfragen -> jumptovalid plot
    2. Errichter (den Spieler) des Improvements abfragen -> Einheit auf bestimmten Plot neu setzen.
    Ich glaub zweite Methode ist einfacher. Aber wie krieg ich den Erbauer?

Seite 106 von 271 ErsteErste ... 65696102103104105106107108109110116156206 ... LetzteLetzte

Berechtigungen

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