Seite 5 von 7 ErsteErste 1234567 LetzteLetzte
Ergebnis 61 bis 75 von 103

Thema: Hilfe bei Modding, historische Richtigkeit Szenario

  1. #61
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.916
    Frage 1) Existiert Rom schon? Der Code erlaubt nämlich nur, für existierende Civs etwas zu spawnen.
    Frage 2) Liegt dein Mod ordnungsgemäß unter Mods/ModName
    und die Datei unter: /Assets/XML/CustomXML/CIV4SpawnUnitInfos.xml
    Wenn die Dateien unter "Custom Asset" liegen, wird es nicht funktionieren

    Ansonsten habe ich keine Idee, die Datei sieht correct aus, und im Eventmanager wird sie meiner Meinung nach korrekt verlinkt. Allerdings habe ich noch nie mit Python eine xml-Datei ausgelesen.

    Mein Tip: Geh mal in die CivilizationIV.ini (unter MyGames/BeyondtheSword) und aktivier dort die Python-Fehlermeldungen.

    Einfach
    ; Set to 1 for no python exception popups
    HidePythonExceptions = 1
    umstellen auf 0.

    Dann teste erneut, eventuell kommt in der Runde, wo die Einheit kommen soll, ein blaues Fenster mit einer Fehlermeldung. Die könnte eventuell weiterhelfen.
    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

  2. #62
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Frage 1) Existiert Rom schon? Der Code erlaubt nämlich nur, für existierende Civs etwas zu spawnen.
    Ich lasse Rom als Römer in der ersten Runde gründen. Dazu ne Frage, wie steht es mit ausgestorbenen Civs? Lässt der Code Civs spawnen die zwar existierten, aber ausgestorben sind? Sprich: Ich lasse alle Einheiten die bei Runde null spawnen sterben.


    Frage 2) Liegt dein Mod ordnungsgemäß unter Mods/ModName
    und die Datei unter: /Assets/XML/CustomXML/CIV4SpawnUnitInfos.xml
    C:\Program Files (x86)\Steam\SteamApps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\Mods\Earth 35 Civs
    Ja ich denke, das stimmt so.
    Und die Datei CIV4SpawnUnitInfos.xml lag zuerst mit dem CustomXML Ordner im Assets-Ordner, habe sie nun aber in den XML-Ordner verschoben, was auch nichts geändert hat.

    Wenn die Dateien unter "Custom Asset" liegen, wird es nicht funktionieren
    Meines Wissens gibt es kein Custom Asset im 35 Civs-Ordner


    ; Set to 1 for no python exception popups
    HidePythonExceptions = 1
    WOW, nachdem ich das gemacht hatte hatte ich schon nur beim Starten der Mod 34 Fehlermeldungen, von denen auf etwa der Hälfte nichts, nur ein Komma oder eine Zahl stand und auf der anderen Hälte auf das File String hingewiesen wird. Dann beim Spielen des Szenarios kamen immer wieder zwei Fehlermeldungen

    1. Traceback (most recent call last):
    File "CvScreensInterface, line 657, in handleInput
    File "CvMainInterface", line 3379, in handleInput
    AttributeError: 'module' object has no attribute 'GetEventManager'

    2. Traceback (most recent call last):
    File "CvAppInterface, line 47, in onSave
    AttributeError: 'module' object has no attribute 'onEvent'


    Diese Cv-Dateien und die String-Datei konnte ich nicht finden.

  3. #63
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.916
    Zitat Zitat von Dolans Beitrag anzeigen
    Ich lasse Rom als Römer in der ersten Runde gründen. Dazu ne Frage, wie steht es mit ausgestorbenen Civs? Lässt der Code Civs spawnen die zwar existierten, aber ausgestorben sind? Sprich: Ich lasse alle Einheiten die bei Runde null spawnen sterben.




    C:\Program Files (x86)\Steam\SteamApps\common\Sid Meier's Civilization IV Beyond the Sword\Beyond the Sword\Mods\Earth 35 Civs
    Ja ich denke, das stimmt so.
    Und die Datei CIV4SpawnUnitInfos.xml lag zuerst mit dem CustomXML Ordner im Assets-Ordner, habe sie nun aber in den XML-Ordner verschoben, was auch nichts geändert hat.



    Meines Wissens gibt es kein Custom Asset im 35 Civs-Ordner




    WOW, nachdem ich das gemacht hatte hatte ich schon nur beim Starten der Mod 34 Fehlermeldungen, von denen auf etwa der Hälfte nichts, nur ein Komma oder eine Zahl stand und auf der anderen Hälte auf das File String hingewiesen wird. Dann beim Spielen des Szenarios kamen immer wieder zwei Fehlermeldungen

    1. Traceback (most recent call last):
    File "CvScreensInterface, line 657, in handleInput
    File "CvMainInterface", line 3379, in handleInput
    AttributeError: 'module' object has no attribute 'GetEventManager'

    2. Traceback (most recent call last):
    File "CvAppInterface, line 47, in onSave
    AttributeError: 'module' object has no attribute 'onEvent'


    Diese Cv-Dateien und die String-Datei konnte ich nicht finden.
    "Custom Asset" ist kein Ordner in einem bestimmten Mod, sondern - ich weiß gar nicht wo. Ich weiß nur, dass man da besser nichts mit macht.

    Die 34 Fehlermeldungen sind schon einmal wichtig - denn die übrigen sind vermutlich Folgefehler. Starte noch einmal, und schau diesmal auf 2 Dinge: 1) Welche Datei (das ist nicht "String"! "String" bedeutet soviel wie "Textzeile" und ist schon einen Schritt weiter. Ich vermute, es ist CvEventManager.py oder SpawnUnit.py. Dann kommt danach irgendwann "line..." und diese Zeile wird wichtig. Such diese Zeile im Texteditor und poste den Absatz, wobei du die Zeile hier markieren solltest, damit wir die auch finden. Und schreib dazu, was er danach noch sagt. Invalid Syntax oder oder oder.

    Die Datei erlaubt übrigens nur aktuell lebende Zivilisationen. Das kann man aber anpassen, wobei es dann welche sein müssen, die schon einmal gelebt haben, also in der ersten Runde getötet wurden.
    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

  4. #64
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Also, hier sind die wichtigsten Fehlermeldungen:

    1. Traceback (most recent call last)
    2. File "<string>, line 1, in?
    3. File "<string>, line 52, in load_module
    4. File "CvEventInterface, line12, in?
    5. File "<string>, line 52, in load_module
    6. File"CvCostumEventManager", line 7 in?
    7. File "<string>, line 35, in load_module
    8. File "<string>, line 13, in _get_code
    10. CvEventManager
    16.CvAdvisorUtils.resetNoLiberateCities()
    31. Identitation Error
    33. expected an indented block
    35. Failed to load python module CvEventInterface

  5. #65
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Zu Fehler vier:
    Auf Zeile 12 steht import CvCustomEventManager

    Code:
    # Sid Meier's Civilization 4
    # Copyright Firaxis Games 2005
    #
    # CvEventInterface.py
    #
    # These functions are App Entry Points from C++
    # WARNING: These function names should not be changed
    # WARNING: These functions can not be placed into a class
    #
    # No other modules should import this
    
    import CvCustomEventManager
    
    # **********************************
    # GJD modifications start here
    # **********************************
    
    customEventManager = CvCustomEventManager.CvCustomEventManager()
    
    def getEventManager():
        return customEventManager
    
    # **********************************
    # GJD modifications end here
    # **********************************
    
    def onEvent(argsList):
        """Called when a game event happens - return 1 if the event was consumed."""
        return getEventManager().handleEvent(argsList)
    
    def applyEvent(argsList):
        context, playerID, netUserData, popupReturn = argsList
        return getEventManager().applyEvent(argsList)
    
    def beginEvent(context, argsList = -1):
        return getEventManager().beginEvent(context, argsList)
    Ich denke, das Programm weiss nicht wohin importieren.



    Zu Fehler sechs:

    Auf Zeile sieben steht import CvEventManager

    Code:
    ## Sid Meier's Civilization 4
    ## Copyright Firaxis Games 2005
    ## Fully Extended CustomEventManager v1
    ## By Impaler, based on original CustomEventManager by dsplaisted
    
    from CvPythonExtensions import *
    import CvEventManager
    import AIAutoPlay
    import ChangePlayer
    import Tester
    import InquisitionEvents
    #INSERT IMPORTS
    
    
    gc = CyGlobalContext()
    #INSERT DEFINES

    Beide, CvCustom-und CvEventManager sind im Python-Ordner auf der gleichen Ebene.
    Geändert von Dolans (15. März 2015 um 22:15 Uhr)

  6. #66
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.916
    Fehlermeldung 6 und 4 sind beide Folgefehler. Die jeweiligen Module können nicht importiert werden, weil in "CvEventManager, Zeile 13, ein Fehler vorliegt. Es ist ein Fehler im Blocksatz, das kann ich aus der Fehlermeldung entnehmen. Poste mal den ersten Abschnitt aus deiner CvEventManager.py.
    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

  7. #67
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Code:
    ## Sid Meier's Civilization 4
    ## Copyright Firaxis Games 2006
    ## 
    ## CvEventManager
    ## This class is passed an argsList from CvAppInterface.onEvent
    ## The argsList can contain anything from mouse location to key info
    ## The EVENTLIST that are being notified can be found 
    
    
    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

    Voilà, die ersten 27 Zeilen des CvEventManagers, in rot Zeile 13.
    Ich habe keine Ahnung, was das heissen soll.

  8. #68
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Das soll heißen, CvDebugTools kann nicht importiert werde, zum Beispiel, die Datei fehlt.

  9. #69
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Zitat Zitat von rucivfan Beitrag anzeigen
    Das soll heißen, CvDebugTools kann nicht importiert werde, zum Beispiel, die Datei fehlt.
    Hmm, also dieses CvDebugTools gibt es im Beyond the Sword Python-Ordner, nicht aber im 35 Civ Mod Python-Ordner. Kann es sein, dass es in der Mod fehlt?

  10. #70
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.015
    Wenn es sie im BTS ORdner gibt, wird sie auch gefunden, aber es kann sein, dass sie nicht mehr kompatibel zu den Moddateien ist.

  11. #71
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Wie könnte man das ganze kompatibel machen?

  12. #72
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.916
    Normalerweise ist der Fehler bei Python etwas klarer.
    Kommt zwischen Fehler 16 und Fehler 31 noch irgend etwas? ich weiß, es ist ein wenig blöd, dass die Fehlermeldung beim Spielstart so zerstückelt sind. Aber ich denke, dass in dieser Lücke noch eine weitere Datei (vermutlich CvDebugTools, da die nicht importiert werden kann) und eine Zeile genannt werden, in der der Fehler mit dem
    31. Identitation Error
    33. expected an indented block
    auftritt.
    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. #73
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Hier alle Fehlermeldungen:

    1. Traceback (most recent call last)
    2. File "<string>, line 1, in?
    3. File "<string>, line 52, in load_module
    4. File "CvEventInterface, line12, in?
    5. File "<string>, line 52, in load_module
    6. File"CvCostumEventManager", line 7 in?
    7. File "<string>, line 35, in load_module
    8. File "<string>, line 13, in _get_code
    9. File"
    10. CvEventManager
    11.", line
    12. 350
    13. leer
    14. leer
    15. CvAdvisorUtils.resetNoLiberateCities()
    16. leer
    17. leer
    18.
    19.
    20.
    21.
    22.
    23.
    24.
    25.
    26.
    27.
    28.
    29.alles bis hier leer
    30.^ (Nur dieses Zeichen)
    31. IdentatationError (ist wirklich so geschrieben!!!)
    32. : (Doppelpunkt)
    33. expected an indented block
    34. leer
    35. Failed to load python module CvEventInterface

  14. #74
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.916
    Okay. Dann zeig uns doch bitte einmal: CvEventManager, line 350 + Umgebung
    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

  15. #75
    Registrierter Benutzer
    Registriert seit
    04.03.15
    Beiträge
    65
    Code:
    def onLoadGame(self, argsList):
    	CvAdvisorUtils.resetNoLiberateCities()
    		###spawnUnit 2 start###
    		####replace the "SpawnUnit" with the path of your mod.
    		####the folder name is meant.
                    SpawnUnitUtil.init("Earth 35 Civs")                        
                    ###spawnUnit part 2 end###	
    		return 0
    
    	def onGameStart(self, argsList):
    		'Called at the start of the game'
    		###spawnUnit part 3 start###
                    ####replace the "SpawnUnit" with the path of your mod.
    		####the folder name is meant.		
                    SpawnUnitUtil.init("Earth 35 Civs")                        
                    ###spawnUnit part 3 end###
    		if (gc.getGame().getGameTurnYear() == gc.getDefineINT("START_YEAR") and not gc.getGame().isOption(GameOptionTypes.GAMEOPTION_ADVANCED_START)):
    			for iPlayer in range(gc.getMAX_PLAYERS()):
    				player = gc.getPlayer(iPlayer)
    				if player.isHuman():
    					popupInfo = CyPopupInfo()
    					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_PYTHON_SCREEN)
    					popupInfo.setText(u"showDawnOfMan")
    					popupInfo.addPopup(iPlayer)
    		else:
    			CyInterface().setSoundSelectionReady(true)
    
    		if gc.getGame().isPbem():
    			for iPlayer in range(gc.getMAX_PLAYERS()):
    				player = gc.getPlayer(iPlayer)
    				if  player.isHuman():
    					popupInfo = CyPopupInfo()
    					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_DETAILS)
    					popupInfo.setOption1(true)
    					popupInfo.addPopup(iPlayer)
    
    		CvAdvisorUtils.resetNoLiberateCities()
    Ich muss dazu vielleicht noch etwas sagen. Ich habe unüberlegt, beim rot markierten Teil einen Teil gelöscht. Nämlich stand da noch, if Player is alive, wie im Originalcode:

    Code:
    def onLoadGame(self, argsList):
    		CvAdvisorUtils.resetNoLiberateCities()
    		###spawnUnit 2 start###
    		####replace the "SpawnUnits" with the path of your mod.
    		####the folder name is meant.
                    SpawnUnitUtil.init("SpawnUnits")                        
                    ###spawnUnit part 2 end###		
    		return 0
    
    	def onGameStart(self, argsList):
    		'Called at the start of the game'
    		###spawnUnit part 3 start###
                    ####replace the "SpawnUnits" with the path of your mod.
    		####the folder name is meant.		
                    SpawnUnitUtil.init("SpawnUnits")                        
                    ###spawnUnit part 3 end###
    		if (gc.getGame().getGameTurnYear() == gc.getDefineINT("START_YEAR") and not gc.getGame().isOption(GameOptionTypes.GAMEOPTION_ADVANCED_START)):
    			for iPlayer in range(gc.getMAX_PLAYERS()):
    				player = gc.getPlayer(iPlayer)
    				if (player.isAlive() and player.isHuman()):
    					popupInfo = CyPopupInfo()
    					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_PYTHON_SCREEN)
    					popupInfo.setText(u"showDawnOfMan")
    					popupInfo.addPopup(iPlayer)
    		else:
    			CyInterface().setSoundSelectionReady(true)
    
    		if gc.getGame().isPbem():
    			for iPlayer in range(gc.getMAX_PLAYERS()):
    				player = gc.getPlayer(iPlayer)
    				if (player.isAlive() and player.isHuman()):
    					popupInfo = CyPopupInfo()
    					popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_DETAILS)
    					popupInfo.setOption1(true)
    					popupInfo.addPopup(iPlayer)
    
    		CvAdvisorUtils.resetNoLiberateCities()
    Das hätt ich besser nicht gemacht.

Seite 5 von 7 ErsteErste 1234567 LetzteLetzte

Berechtigungen

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