Seite 4 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 46 bis 60 von 68

Thema: Für Modder: HOW-TO feature...

  1. #46
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    darum gehts doch gar nicht. ich will nicht dass z.b. alle Händler gleichzeitig losziehen weil eine Bedingung für alle gleichzeitig erfüllt ist.
    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. #47
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Dann müsstest du die Zahl der Einheiten mit den Dip-Missionen zählen.

  3. #48
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Hab jetzt One-Click-Missionen in BASE. Der nächste Schritt wären Auswahlmenüs, könntest du die anhand deines Söldnerfeatures in einem Tutorial erklären? Emoticon: beten
    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)

  4. #49
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    Zeitlich: schwer.
    Drum erklär ichs jetzt mal ganz schnell und kurz:
    Du bist ja bestimmt mit der Handhabung von onModNetMessage vertraut?
    Bei popupInfo = CyPopupInfo() gibt es x-beliebig viele addPythonButton, die man auflisten kann.
    Die Buttons haben dann die Variable iButtonId in den ScreensInterface mit dem Wert 0 bis n
    So kannst du erkennen, welchen Button die HI gedrückt hat und iButtonId wieder zurückschicken in den EventManager, wo du dann damit was anfangen kannst.

    Beim Söldnerfeature gehts noch einen Schritt weiter. Er merkt sich, was gedrückt wurde mittels einer Variable, die mitgeschleift wird.
    Weil nur bool oder int Werte herumgeschickt werden können, hab ich eine int variabel genommen, wo jede Stelle, dem Wert des Buttons des jeweiligen Fensters entspricht. also je mehr Fenster, desto mehrstelliger wird die Variable.

    Ich hab mich mit dem Problem damals befasst und rätselte, wie man sowas bei CIV bewerkstelligen kann, und nach jahrzehntelangem Nachdenken, bin ich auf diese Lösung gekommen....
    Aber ich glaub, das war endlich ein sinnvoller Ausdunst, meiner verkorksten Erinnerungen aus der Studienzeit: Turingmaschine.

    kennst dich aus?
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  5. #50
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Gar nicht deine schnelle Antwort bemerkt.

    Warum war es für dein Söldnerfeature wichtig sich zu merken, was gedrückt wurde? Genau für sowas (barbarische Angriffe bei Feinden triggern) will ich das nämlich auch haben.
    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)

  6. #51
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.397
    Das aktuelle Söldnerfeature besteht aus 2 Teilen:
    erste Auswahl, ob wir eigene Söldner anheuern wollen, oder nen Haufen Barbaren zu nem Nachbarn schicken.
    Dann jenach erster Auswahl halt welche Art wir anheuern oder welche Mannschaftsstärke wir schicken etc.pp.

  7. #52
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    Flunky: kürzer kann man es gar nicht erklären

    Also, warum ich mir merken muss, was gedrückt wurde:
    Ich hab ja viele Folgefenster: Je ein Fenster für Mannschaftsstärke, Art der Mannschaft (Aggressiv, Passiv,...), ob Rammen mitgenommen werden sollen und was weiß ich.
    Ich muss ja am Ende wissen, was alles vorher gedrückt wurde, deshalb mach ich daraus ein merhstelliges INT. Ich glaub sowieso, es ist besser nachzuvollziehen, wenn man sich den Code aufmerksam durchliest. Aber vorsicht: mögliche Schwindelanfälle nicht ausgeschlossen!
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  8. #53
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.450
    Und wie lässt du bei sowas die KI entscheiden?
    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)

  9. #54
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.397
    Mit eigenem Code nur für KI. # +++++ AI Hires Units (mercenaries) im Eventmanager suchen.

  10. #55
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    Nach Geld und Zufallsprinzip und natürlich gegen Civs, wo die Attitude niedrig ist. KI muss immer extra programmiert werden.

    Und die KI ging in diesem Fall viel, viel, viel leichter zu programmieren
    Manchmal mach ich vorher die KI und danach die umständlichen PopUp onNetMessage Dinge für die HI. KI geht viel schneller zu proggen.
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  11. #56
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896

    Anleitung zum Einbau von Hintergrundmusik

    Kleine Reaktivierung des Threads nach sieben Jahren


    Mit den folgenden vier Schritten kann man einen Song zur Hintergrundmusik in einer Mod hinzufügen.
    Sollte eine der drei XML-Dateien, siehe Schritt 2.-4., in der Mod nicht vorhanden sein, muss man sie aus Civ4:BTS kopieren und sie innerhalb der Mod an der gleichen Stelle im Verzeichnisbaum einfügen.

    1. Als erstes kopiert man die mp3-Datei in ein passendes Verzeichnis innerhalb der Mod. Existiert das Verzeichnis nicht, legt man es einfach an.
    {MODNAME}\Assets\Sounds\Soundtrack\song1.mp3

    2. Als zweites verknüpfen wir einen Variablennamen in Civ4 mit der Datei. Dazu ergänzen wir
    {MODNAME}\Assets\XML\Audio\AudioDefines.xml um einen Eintrag.
    Achtung, bei „Filename“ wird die Endung weggelassen!
    Code:
    		<SoundData>
    			<SoundID>SONG_MOD_SONG1</SoundID>
    			<Filename>Sounds/Soundtrack/song1</Filename>
    			<LoadType>STREAMED</LoadType>
    			<bIsCompressed>1</bIsCompressed>
    			<bInGeneric>1</bInGeneric>
    		</SoundData>

    3. Als drittes definieren wir ein Audioskript, was man sich als eine Art Filter vorstellen kann. Hier kann man, wenn man möchte, die Tonhöhe oder Lautstärke beim Abspielen modifizieren ohne die mp3-Datei an sich zu ändern.
    In diesem Minimalbeispiel spielen wir die Mp3-Datei so ab wie sie ist. Das ist auch bei den meisten anderen Songs von Civ4 der Fall:

    Öffne {MODNAME}\Assets\XML\Audio\Audio2DScripts.xml und ergänze folgendes.
    Code:
    	<Script2DSound>
    		<ScriptID>AS2D_MOD_SONG1</ScriptID>
    		<SoundID>SONG_MOD_SONG1</SoundID>
    		<SoundType>GAME_MUSIC</SoundType>
    		<iMinVolume>70</iMinVolume>
    		<iMaxVolume>70</iMaxVolume>
    		<iPitchChangeDown>0</iPitchChangeDown>
    		<iPitchChangeUp>0</iPitchChangeUp>
    		<iMinLeftPan>-1</iMinLeftPan>
    		<iMaxLeftPan>-1</iMaxLeftPan>
    		<iMinRightPan>-1</iMinRightPan>
    		<iMaxRightPan>-1</iMaxRightPan>
    		<bLooping>0</bLooping>
    		<iMinTimeDelay>0</iMinTimeDelay>
    		<iMaxTimeDelay>0</iMaxTimeDelay>
    		<bTaperForSoundtracks>0</bTaperForSoundtracks>
    		<iLengthOfSound>0</iLengthOfSound>
    		<fMinDryLevel>1.0</fMinDryLevel>
    		<fMaxDryLevel>1.0</fMaxDryLevel>
    		<fMinWetLevel>0.0</fMinWetLevel>
    		<fMaxWetLevel>0.0</fMaxWetLevel>
    		<iNotPlayPercent>0</iNotPlayPercent>
    	</Script2DSound>
    4. Als letztes müssen wir Civ4 noch mitteilen dass es das Audioskript in einer Ära oder mehreren abspielen soll. Man kann die Audiodateien auch bei anderen Sachen wie Events, etc. einsetzen, aber darum soll es hier nicht gehen. Öffne dafür
    {MODNAME}\Assets\XML\GameInfo\CIV4EraInfos.xml
    Dort existiert für jede Ära ein Knoten und dort wiederum ein Unterknoten EraInfoSoundtracks. Dort dann einfach mit dem neuen Script ergänzen.
    Code:
    				<EraInfoSoundtrack>AS2D_MOD_SONG1</EraInfoSoundtrack>
    Viel Spaß
    Geändert von Ramkhamhaeng (12. Januar 2021 um 01:24 Uhr) Grund: Leere []-Tags bei Punkt 3 eingefügt, um Script-Tag-Filter zu umgehen.

  12. #57
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    Super! Hab einen Link ins erste Post dafür getan.

    Könntest du auch die STRG-P Funktion erklären? Das würd mir Zeit sparen *liebschau*
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  13. #58
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Das kann ich leider nicht. Ich habe zwar eure Diskussion darüber gelesen, weiß aber gar nicht was Strg+P im Spiel bewirkt.
    PAE ist auch nicht installiert

  14. #59
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    na gut.... dann machs ich halt...
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  15. #60
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    De- und Aktivieren von Spielerzug-Meldungen via STRG-P


    Dafür ist die Bearbeitung von nur einer Datei notwendig: CvEventManager.py im Assets/Python-Ordner

    (Hinweis: Das ist eine Python-Datei, also Vorsicht bei der Einrückung!)


    Schritt 1: Definieren einer Variable, um festzustellen, ob die Spielermeldung aktiv ist oder nicht

    In der Funktion def __init__(self): müssen diese Variablen definiert (initialisiert) werden:

    Code:
    	self.bPAE_ShowMessagePlayerTurn = False
    und damit der Spieler auch einen Hinweis bekommt, obs de/aktiviert ist (da die Spieler-ID wegen Szenarien abweichen kann, zu Beginn setzen wir die Variable auf 0, damit definieren wir sie als Zahl)

    Code:
            self.iPAE_ShowMessagePlayerHumanID = 0
    Zusammen sieht diese Funktion so aus:

    PHP-Code:
    class CvEventManager:

        
    def __init__(self):
            
    #################### ON EVENT MAP ######################
            # print "EVENTMANAGER INIT"
            # In CvEventManager.__init__:
            
    if CIV4_SHELL:
                
    self.glob globals()
                
    self.loc locals()
                
    civ4Console.init()

            
    # Show message which player is on turn
            
    self.bPAE_ShowMessagePlayerTurn False
            self
    .iPAE_ShowMessagePlayerHumanID 0

        
    #[usw...] 
    Schritt 2: Definieren des Tastenkürzels STRG + P (das kann mit anderen Buchstaben auch gemacht werden)

    Das muss in folgender Funktion gemacht werden:

    Code:
    def onKbdEvent(self, argsList):
    Darin wird gecheckt, ob überhaupt eine Taste gedrückt wird:

    Code:
    if eventType == self.EventKeyDown:
    	theKey = int(key)
    Dort vergleichen wir nun zuerst ob P und dann ob die STRG Taste gedrückt wird (das kann man auch umgekehrt prüfen)

    Code:
    	if theKey == int(InputTypes.KB_P):
    		if self.bCtrl:
    Und nun unsere Meldung:

    Code:
                        if self.bPAE_ShowMessagePlayerTurn:
                            self.bPAE_ShowMessagePlayerTurn = False
                            CyInterface().addMessage(gc.getGame().getActivePlayer(), True, 5, CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN_DEACTIVATED", ("",)), None, 2, None, ColorTypes(14), 0, 0, False, False)
                        else:
                            self.bPAE_ShowMessagePlayerTurn = True
                            self.iPAE_ShowMessagePlayerHumanID = gc.getGame().getActivePlayer()
                            CyInterface().addMessage(gc.getGame().getActivePlayer(), True, 5, CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN_ACTIVATED", ("",)), None, 2, None, ColorTypes(14), 0, 0, False, False)
                        return 1

    TXT_KEY_MESSAGE_PAE_CIV_TURN_DEACTIVATED und TXT_KEY_MESSAGE_PAE_CIV_TURN_ACTIVATED:

    dieses CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN_DEACTIVATED", ("",) könnt ihr auch ersetzen mit "Meldung deaktiviert" falls ihr es nicht in alle Sprachen übersetzt haben wollt und ihr diesen TXT_KEY in eine der XML-Textdateien schreiben möchtet.
    Das würde dann einfacherweise so aussehen:
    CyInterface().addMessage(gc.getGame().getActivePlayer(), True, 5, "Meldung deaktiviert"), None, 2, None, ColorTypes(14), 0, 0, False, False)

    Das müsstet ihr dann mit TXT_KEY_MESSAGE_PAE_CIV_TURN_ACTIVATED dann auch so machen:
    CyInterface().addMessage(gc.getGame().getActivePlayer(), True, 5, "Meldung aktiviert"), None, 2, None, ColorTypes(14), 0, 0, False, False)

    Mit ColorTypes(14) könnt ihr die Farbe der Meldung ändern. Einfach den Zahlenwert verändern.
    zB ColorTypes(2) ist weiß, ColorTypes(7) ist rot, hier die möglichen Farbwerte bei diesen Ingame-Meldungen:

    # ColorTypes()
    # 1,3 = schwarz
    # 2 = weiss
    # 4 = dunkelgrau
    # 5,6 = grau
    # 7 = rot
    # 8 = gruen
    # 9 = blau
    # 10 = tuerkis
    # 11 = gelb
    # 12 = lila
    # 13 = orange
    # 14 = graublau


    Mit return 1 verlässt ihr diese Funktion dann sofort wieder. (is ja klar, damit braucht man nicht mehr weiterprüfen, was gedrückt wird)


    Gemeinsam sieht das so aus, wenn sonst nichts anderes drin steht:
    PHP-Code:
    #################### ON EVENTS ######################
        
    def onKbdEvent(selfargsList):
            
    'keypress handler - return 1 if the event was consumed'

            
    eventTypekeymxmypxpy argsList
            
    # game = gc.getGame()

            
    if eventType == self.EventKeyDown:
                
    theKey int(key)

                if 
    theKey == int(InputTypes.KB_P):
                    if 
    self.bCtrl:
                        if 
    self.bPAE_ShowMessagePlayerTurn:
                            
    self.bPAE_ShowMessagePlayerTurn False
                            CyInterface
    ().addMessage(gc.getGame().getActivePlayer(), True5CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN_DEACTIVATED", ("",)), None2NoneColorTypes(14), 00FalseFalse)
                        else:
                            
    self.bPAE_ShowMessagePlayerTurn True
                            self
    .iPAE_ShowMessagePlayerHumanID gc.getGame().getActivePlayer()
                            
    CyInterface().addMessage(gc.getGame().getActivePlayer(), True5CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN_ACTIVATED", ("",)), None2NoneColorTypes(14), 00FalseFalse)
                        return 

    Eins ist dazu noch zu sagen:
    Mit self.iPAE_ShowMessagePlayerHumanID = gc.getGame().getActivePlayer() schreibe ich in die self.iPAE_ShowMessagePlayerHumanID Variable (die ich zuvor in den __inits__ definiert habe) die aktuelle ID des Spielers.
    Das wird dazu benötigt, dass auch nur der menschliche Spieler diese Meldungen angezeigt bekommen soll. Der KI bringts ja nix. Und wer schlampig programmiert, der könnte diese Variable auch weglassen und diese Meldungen immer dem gc.getGame().getActivePlayer() anzeigen lassen, dann ists aber wieder nicht für Multi-Player-Spiele geeignet!


    Schritt 3: Das Anzeigen der Spieler während der Wartephase

    Dazu müssen wir in die Funktion def onEndPlayerTurn, die so beginnt:

    Code:
        def onEndPlayerTurn(self, argsList):
            'Called at the end of a players turn'
            iGameTurn, iPlayer = argsList
            pPlayer = gc.getPlayer(iPlayer)

    Dort checken wir, ob die Meldung aktiv ist oder nicht:

    Code:
            if self.bPAE_ShowMessagePlayerTurn:
    Da der aktuelle Spieler, der grad an der Reihe war, mit iPlayer in dieser Funktion verfügbar ist, definieren wir den nächsten Spieler mit:

    Code:
                showPlayer = iPlayer + 1
    Nun wirds spannend. Zuerst überprüfe ich, ob der showPlayer-Wert den letzten Spieler (nach ID) überschritten hat und setze showPlayer auf 0, um den korrekten Spieler zu bekommen.
    Beispiel: kann ja sein, dass ich von 18 Spielern die Spieler-ID 16 habe und bei Spieler 18 muss dann Spieler 0, nach Spieler 0 dann Spieler 1 usw. genannt werden.

    Code:
                if showPlayer >= gc.getMAX_PLAYERS():
                    showPlayer = 0
    Desweiteren überprüfe ich, ob der Spieler noch am Spiel beteiligt ist. Mich interessiert ja nicht, einen bereits besiegten Spieler angezeigt zu bekommen:
    (auch hier muss ich mit Spieler 0 fortsetzen, wenn ich die ID des höchsten Spielers erreicht habe)

    Code:
                while not gc.getPlayer(showPlayer).isAlive():
                    showPlayer += 1
                    if showPlayer >= gc.getMAX_PLAYERS():
                        showPlayer = 0
    Und jetzt kümmern wir uns um die Meldung. Dazu brauche ich dessen Bezeichnung:

    Code:
                thisPlayer = gc.getPlayer(showPlayer).getCivilizationDescription(0)
    Die Meldung hab ich in zwei Teile geteilt:
    1. Hab ich den Cheat-Modus eingeschaltet (zB zum Testen), dann möcht ich alle Spieler aufgelistet bekommen, auch die, die meine CIV noch nicht getroffen hat

    Code:
                if self.bAllowCheats:
                    CyInterface().addMessage(self.iPAE_ShowMessagePlayerHumanID, True, 3, CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN", (thisPlayer, "")), None, 2, None, ColorTypes(14), 0, 0, False, False)

    2. Wenn ich normal spiele, dann möcht ich unterscheiden zwischen bekannten und unbekannten CIVs:

    Code:
                else:
                    iThisTeam = gc.getPlayer(showPlayer).getTeam()
                    if gc.getTeam(iThisTeam).isHasMet(pPlayer.getTeam()):
                        CyInterface().addMessage(self.iPAE_ShowMessagePlayerHumanID, True, 3, CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN", (thisPlayer, "")), None, 2, None, ColorTypes(14), 0, 0, False, False)
                    else:
                        CyInterface().addMessage(self.iPAE_ShowMessagePlayerHumanID, True, 3, CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN2", ("",)), None, 2, None, ColorTypes(14), 0, 0, False, False)

    Dafür verwende ich 2 Texte:
    TXT_KEY_MESSAGE_PAE_CIV_TURN = Spieler X sind am Zug. (zB Römer sind am Zug)
    TXT_KEY_MESSAGE_PAE_CIV_TURN2 = Ein noch unbekannter Spieler ist am Zug.

    Auch hier muss man die Texte nur dann als TXT_KEY einbauen, wenn man sie mehrsprachig anbieten möchte.

    Alternativ siehts so aus:
    CyInterface().addMessage(self.iPAE_ShowMessagePlayerHumanID, True, 3, u"%s sind am Zug." % thisPlayer), None, 2, None, ColorTypes(14), 0, 0, False, False)

    und so:
    CyInterface().addMessage(self.iPAE_ShowMessagePlayerHumanID, True, 3, "Ein unbekannter Spieler ist am Zug."), None, 2, None, ColorTypes(14), 0, 0, False, False)

    Auch hier kann die Farbe mit einer anderen Zahl von 1 bis 14 angepasst werden.


    Das ganze sieht dann so aus (falls nichts anderes drin steht):

    PHP-Code:
        def onEndPlayerTurn(selfargsList):
            
    'Called at the end of a players turn'
            
    iGameTurniPlayer argsList
            pPlayer 
    gc.getPlayer(iPlayer)

            
    # ----- CHECK CIV on Turn
            
    if self.bPAE_ShowMessagePlayerTurn:

                
    showPlayer iPlayer 1
                
    if showPlayer >= gc.getMAX_PLAYERS():
                    
    showPlayer 0
                
    while not gc.getPlayer(showPlayer).isAlive():
                    
    showPlayer += 1
                    
    if showPlayer >= gc.getMAX_PLAYERS():
                        
    showPlayer 0
                pShowPlayer 
    gc.getPlayer(showPlayer)
                
    thisPlayer pShowPlayer.getCivilizationDescription(0)
                if 
    self.bAllowCheats:
                    
    CyInterface().addMessage(self.iPAE_ShowMessagePlayerHumanIDTrue3CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN", (thisPlayer"")), None2NoneColorTypes(14), 00FalseFalse)
                else:
                    
    iThisTeam gc.getPlayer(showPlayer).getTeam()
                    if 
    gc.getTeam(iThisTeam).isHasMet(pPlayer.getTeam()):
                        
    CyInterface().addMessage(self.iPAE_ShowMessagePlayerHumanIDTrue3CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN", (thisPlayer"")), None2NoneColorTypes(14), 00FalseFalse)
                    else:
                        
    CyInterface().addMessage(self.iPAE_ShowMessagePlayerHumanIDTrue3CyTranslator().getText("TXT_KEY_MESSAGE_PAE_CIV_TURN2", ("",)), None2NoneColorTypes(14), 00FalseFalse
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

Seite 4 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

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