Hi, erst mal danke für eure Hinweise.
Zum Punkt 1#
@rucivfan Im BUG Mod gibt es eine XML die auf FontButtonIndex in Gamefont verweist ? Wäre ja ein Traum aber ich suche mir echt ein Wolf
Den Punkt 3# habe ich jetzt aufgebröselt. Die Fehlermeldung kommt mit der BTS CvEventManager.py nicht mit der Next War dann schon. Der Fehler liegt bei dieser Funktion:
Code:
def onNukeExplosion(self, argsList):
'Nuke Explosion'
pPlot, pNukeUnit = argsList
CvUtil.pyPrint('Nuke detonated at %d, %d'
%(pPlot.getX(), pPlot.getY()))
self.changeGameNumNukes(1)
und gehört zu diesem Script in Next War welches dafür verantwortlich ist das die Welt zerbricht wenn 20 Nukes oder so eingesetzt wurden.
Code:
import pickle
g_iNumNukesWarningMessage = 7
g_iNumNukesGameOver = 20
def initScriptData(self):
# Set default script data manually since we need defaults for all values in the array before any functions can be called on them
iDefaultNumNukesFired = 0
aScriptData = [iDefaultNumNukesFired]
gc.getGame().setScriptData(pickle.dumps(aScriptData))
def getGameNumNukes(self):
aszScriptData = pickle.loads(gc.getGame().getScriptData())
iNumNukes = aszScriptData[0] # Num Nukes Fired is 0th element
return iNumNukes
def setGameNumNukes(self, iValue):
aszScriptData = pickle.loads(gc.getGame().getScriptData())
aszScriptData[0] = iValue
gc.getGame().setScriptData(pickle.dumps(aszScriptData))
self.checkNukeStuff(aszScriptData[0])
def changeGameNumNukes(self, iChange):
aszScriptData = pickle.loads(gc.getGame().getScriptData())
aszScriptData[0] = aszScriptData[0] + iChange
gc.getGame().setScriptData(pickle.dumps(aszScriptData))
self.checkNukeStuff(aszScriptData[0])
def checkNukeStuff(self, iNumNukes):
print("iNumNukes")
print(iNumNukes)
print("g_iNumNukesGameOver")
print(g_iNumNukesGameOver)
# Amount of nukes matches Warning message
if (CyMap().plot(0,0).getScriptData() == "Scenario"):
if (iNumNukes == g_iNumNukesWarningMessage):
self.addPopup("", localText.getText("TXT_KEY_ROUND_THREE_NUKE_WARNING", ()))
# Amount of nukes matches Game over
elif (iNumNukes == g_iNumNukesGameOver):
# Show the screen that shows the world 'sploding
CvScreensInterface.showNextWarScreen()
gc.getGame().setWinner(18, 3)
Da ich dieses script sowieso nicht mag und immer mittels
# g_iNumNukesWarningMessage = 7
# g_iNumNukesGameOver = 20
deaktiviert habe musste ich zusätzlich noch
# self.changeGameNumNukes(1)
setzen. Nun ist die Fehlermeldung weg !!!
Das hängt wohl alles mit dem BUG Mod Assets\Python\BUG\BugEventManager.py
zusammen der vermutlich diese nuke Funktion nicht kennt.
Code:
class BugEventManager(CvEventManager.CvEventManager):
"""
Extends the standard event manager by adding support for multiple
handlers for each event.
Theortisch könnte ich doch eigentlich auch den ganzen code in blau vom CvEventManager.py entfernen
wenn ich dieses Script eh nicht will, oder ?