Seite 7 von 7 ErsteErste ... 34567
Ergebnis 91 bis 103 von 103

Thema: Hilfe bei Modding, historische Richtigkeit Szenario

  1. #91
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Ich nehme an, daran hast du dich gehalten: You do not have to change anything in this file
    Und hierdran: ###This file has to be in the same folder like the CvEventManager.py.
    Ich vertraue The_J, dass er das dann sauber programmiert hat, von ihm habe ich viel über Python gelernt, und was er mir zwischendruch programmiert hat, hat immer funktioniert.
    Ja, ich habe nichts verändert. Beide sind im Python-Ordner, sollte ich einen Unterordner erschaffen und beide dorthin tun?

    Dann Dann bleibt nur noch, einen Blick auf ###spawnUnit part 1 start### (in CvEventmanager) zu werden. Und eventuell, falls es das geben sollte, auf ###spawnUnit part 4 start###, ###spawnUnit part n start### (für n > 4).

    Aber es gibt ja keine Fehlermeldung mehr an im CvEventManager.py.

    SpawnUnit part 1:
    PHP-Code:
    from CvPythonExtensions import *
    import CvUtil
    import CvScreensInterface
    import CvDebugTools
    import CvWBPopups
    import PyHelpers
    import Popup 
    as PyPopup
    import CvCameraControls
    import CvTopCivs
    import sys
    import CvWorldBuilderScreen
    import CvAdvisorUtils
    import CvTechChooser
    ###SpawnUnit part 1 start###
    import SpawnUnitUtil
    ###SpawnUnit part 1 end###
    import GodsOfOld
    import pickle 
    SpawnUnit part 4:

    PHP-Code:
    def onBeginGameTurn(selfargsList):
            
    'Called at the beginning of the end of each turn'
            
    iGameTurn argsList[0]
            
    ###spawnUnit part 4 start###         
                    
    SpawnUnitUtil.process(iGameTurn+1)
                    
    ###spawnUnit part 4 end###        
            
    CvTopCivs.CvTopCivs().turnChecker(iGameTurn
    Hier könnte man noch etwas ändern.

    Spawn unit gibt's nur bis part 4.

  2. #92
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.920
    Bei Part 4 muss natürlich auch "SpawnUnitUtil.process(iGameTurn+1)" auf die selbe Höhe wie "iGameTurn = argsList[0] ".
    Meiner Meinung nach müsstest du dafür eine Fehlermeldung bekommen, wenn es so aussieht wie es hier dargestellt ist.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  3. #93
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Genau das stimmt eben nicht, ich hab es natürlich auch so ausprobiert. Es gibt mir aber dann eine Fehlermeldung für Zeile 398.
    Code:
    def onBeginGameTurn(self, argsList):
    	'Called at the beginning of the end of each turn'
    	iGameTurn = argsList[0]
    	###spawnUnit part 4 start###         
            SpawnUnitUtil.process(iGameTurn+1)
                    ###spawnUnit part 4 end###		
    398     CvTopCivs.CvTopCivs().turnChecker(iGameTurn)
    Nehme ich die Zeile nach vorne, ist sie nicht definiert.
    Code:
    def onBeginGameTurn(self, argsList):
    	'Called at the beginning of the end of each turn'
    	iGameTurn = argsList[0]
    		###spawnUnit part 4 start###         
            SpawnUnitUtil.process(iGameTurn+1)
                    ###spawnUnit part 4 end###		
    CvTopCivs.CvTopCivs().turnChecker(iGameTurn)


    Und stelle ich die Zeile dahinter, gibt es den selben Syntaxfehler.

    Code:
    	
    def onBeginGameTurn(self, argsList):
    	'Called at the beginning of the end of each turn'
    	iGameTurn = argsList[0]
    		###spawnUnit part 4 start###         
            SpawnUnitUtil.process(iGameTurn+1)
                    ###spawnUnit part 4 end###		
    	     CvTopCivs.CvTopCivs().turnChecker(iGameTurn)

    Ich kann die Mod wirklich nur so fehlerfrei starten:

    Code:
    def onBeginGameTurn(self, argsList):
    		'Called at the beginning of the end of each turn'
    		iGameTurn = argsList[0]
    		###spawnUnit part 4 start###         
    				SpawnUnitUtil.process(iGameTurn+1)
                                    ###spawnUnit part 4 end###		
    		CvTopCivs.CvTopCivs().turnChecker(iGameTurn)

  4. #94
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Zitat Zitat von Dolans Beitrag anzeigen
    Ich kann die Mod wirklich nur so fehlerfrei starten:
    Das glaub ich nicht.


    Code:
    def onBeginGameTurn(self, argsList):
    		'Called at the beginning of the end of each turn'
    		iGameTurn = argsList[0]
    		###spawnUnit part 4 start###         
    		SpawnUnitUtil.process(iGameTurn+1)
                    ###spawnUnit part 4 end###		
    		CvTopCivs.CvTopCivs().turnChecker(iGameTurn)
    Das muss ohne Probleme gehen, oder es gibt einen Fehler tiefer, den man erst findet, wenn man das so richtig macht.

  5. #95
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Zitat Zitat von rucivfan Beitrag anzeigen
    Das glaub ich nicht.


    Code:
    def onBeginGameTurn(self, argsList):
    		'Called at the beginning of the end of each turn'
    		iGameTurn = argsList[0]
    		###spawnUnit part 4 start###         
    		SpawnUnitUtil.process(iGameTurn+1)
                    ###spawnUnit part 4 end###		
    		CvTopCivs.CvTopCivs().turnChecker(iGameTurn)
    Das muss ohne Probleme gehen, oder es gibt einen Fehler tiefer, den man erst findet, wenn man das so richtig macht.
    Also, wenn ich es mit dieser Anordnung starte, erhalte ich diese Fehlermeldung:

    Traceback(most recent call last):
    File"<string>", line1, in?
    File"<string>", line 52, in load_module
    File"CvEventInterface" line 12, in?
    File"<string>", line 52, in load_module
    File"CvCustomEventManager", line 7, in?
    File"<string>", line 35, in load_module
    File"<string>", line 13, in _get_code
    File"
    CvEventManger
    ", line
    398


    CvTopCivs.CvTopCivs().turnChecker(iGameTurn)

    ^
    SyntaxError
    :
    invalid syntax

    Failed to load python module CvEventInterface




    Ich werde nicht schlau daraus.

  6. #96
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Der Fehler ist offensichtlich. Ich habe ja nur auf die Zeilen geachtet.

    CvTopCivs.CvTopCivs().turnChecker(iGameTurn) ist falsch. CvTopCivs.turnChecker(iGameTurn) müsste es nur sein. CvTopCivs.CvTopCivs() sieht sehr komisch aus.

  7. #97
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Nun, ich habe nun vier Variationen ausprobiert:

    CvTopCivs.turnChecker(iGameTurn)
    CvTopCivs().turnChecker(iGameTurn)
    Mit dieser Anordnung,
    sowie mit der vom Spiel als richtig empfundenen Anordnung.

    Mit dieser Anordnung, kommt die gleiche Fehlermeldung, mit der vom Spiel als richtig empfundenen Anordnung kommt keine Fehlermeldung, aber es spawnt nichts.

  8. #98
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Was meinst du mit als vom Spiel als richtig empfunden?

  9. #99
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Nun ja, bei dieser Anordnung erscheint keine Fehlermeldung:

    Code:
    def onBeginGameTurn(self, argsList):
    		'Called at the beginning of the end of each turn'
    		iGameTurn = argsList[0]
    		###spawnUnit part 4 start###         
    				SpawnUnitUtil.process(iGameTurn+1)
                                    ###spawnUnit part 4 end###		
    		CvTopCivs.CvTopCivs().turnChecker(iGameTurn)

  10. #100
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.920
    Zitat Zitat von Dolans Beitrag anzeigen
    Nun ja, bei dieser Anordnung erscheint keine Fehlermeldung:

    Code:
    def onBeginGameTurn(self, argsList):
    		'Called at the beginning of the end of each turn'
    		iGameTurn = argsList[0]
    		###spawnUnit part 4 start###         
    				SpawnUnitUtil.process(iGameTurn+1)
                                    ###spawnUnit part 4 end###		
    		CvTopCivs.CvTopCivs().turnChecker(iGameTurn)
    Tun wir mal so, als wäre es richtig - auch wenn rucivfan und ich das beide für unmöglich halten: Was passiert, wenn du jetzt CvTopCivs.CvTopCivs().turnChecker(iGameTurn) in rucivfans Sinne änderst? Also zu CvTopCivs.turnChecker(iGameTurn)? Oder CvTopCivs().turnChecker(iGameTurn)?
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  11. #101
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Es ist bei beiden das gleiche. Ob ich es so mache:

    PHP-Code:
    def onBeginGameTurn(selfargsList):
            
    'Called at the beginning of the end of each turn'
            
    iGameTurn argsList[0]
            
    ###spawnUnit part 4 start###         
                    
    SpawnUnitUtil.process(iGameTurn+1)
                    
    ###spawnUnit part 4 end###        
            
    CvTopCivs.turnChecker(iGameTurn
    oder so:

    PHP-Code:
    def onBeginGameTurn(selfargsList):
            
    'Called at the beginning of the end of each turn'
            
    iGameTurn argsList[0]
            
    ###spawnUnit part 4 start###         
                    
    SpawnUnitUtil.process(iGameTurn+1)
                    
    ###spawnUnit part 4 end###        
            
    CvTopCivs().turnChecker(iGameTurn
    Beide lassen sich ohne Fehler starten, nur spawnt kein römischer Siedler in Rom in der zweiten Runde. Ich habe die Einheit mittlerweile in der CIV4 SpawnUnitInfos.XML-Datei gewechselt, weil ich dachte, es können nur Einheiten spawnen, deren erforderliche Technologie man bereits erforscht hat. Ich lag falsch.


    PHP-Code:
    <Civ4SpawnInfos>
        <
    SpawnInfos>
            <
    SpawnInfo>
                <
    UnitType>UNIT_SETTLER</UnitType>
                <
    Promotions>
                    <
    Promotion>PROMOTION_COMBAT1</Promotion>            
                    <
    Promotion>PROMOTION_COMBAT2</Promotion>                
                </
    Promotions>
                <
    iNumUnit>1</iNumUnit>
                <
    CivType>CIVILIZATION_ROME</CivType>
                <
    Scenario>Earth 35 Civs</Scenario>
                <
    iTurn>2</iTurn>
                <
    StartX>61</StartX>
                <
    StartY>43</StartY>
            </
    SpawnInfo
    Das mit den Beförderungen ist kein Problem, erstens weil schon die Panzer mit diesen Beförderungen nicht spawnen wollten und zweitens weil

    - There's no logic check for promotions, so you can give invalid promotions to the units
    von The_J

    Vielleicht gibt es noch irgend eine Bedingung, die wir übersehen.

  12. #102
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.920
    Also, ich kann dir definitiv sagen, dass das spawnen der Einheit mit der falschen Technologie kein Problem ist, da Python Regeln nicht überprüft (genau genommen ist jeder Python-Code ein Regelbruch).

    Ich wundete mich weiterhin, dass die Varianten mit dem verschobenen SpawnUnitUtil.process(iGameTurn+1) sich starten lassen, das dürfte nicht sein.

    Zudem verweist die Fehlermeldung
    Traceback(most recent call last):
    File"<string>", line1, in?
    File"<string>", line 52, in load_module
    File"CvEventInterface" line 12, in?
    File"<string>", line 52, in load_module
    File"CvCustomEventManager", line 7, in?
    File"<string>", line 35, in load_module
    File"<string>", line 13, in _get_code
    File"
    CvEventManger
    ", line
    398


    CvTopCivs.CvTopCivs().turnChecker(iGameTurn)

    ^
    SyntaxError
    :
    invalid syntax
    ganz offensichtlich auf den von rucivfan beanstandeten Code.

    CvTopCivs.CvTopCivs().turnChecker(iGameTurn)
    ist Originalcode und verursacht bei mir allerdings keine Probleme. Es scheint also, dass irgend etwas an der Reihe davor
    SpawnUnitUtil.process(iGameTurn+1)
    das Programm an dieser Stelle fehlt, so dass das Programm ein Syntaxproblem mit der nächsten Reihe hat. Alles sehr seltsam.
    Hast du einmal The_J bei den Fanatics dazu gefragt? Hier ist er nicht mehr aktiv, leider.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  13. #103
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Zitat Zitat von Kathy Beitrag anzeigen
    Hast du einmal The_J bei den Fanatics dazu gefragt? Hier ist er nicht mehr aktiv, leider.
    Das habe ich jetzt mal gemacht. Mal schauen wie's so weitergeht.

Seite 7 von 7 ErsteErste ... 34567

Berechtigungen

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