Mit welchem Filterausdruck? Es gibt ja genügend legitime [Newline] in den Dateien. Ich möchte nur die entfernen, die außerhalb von <text></text> stehen.
Mit welchem Filterausdruck? Es gibt ja genügend legitime [Newline] in den Dateien. Ich möchte nur die entfernen, die außerhalb von <text></text> stehen.
Ist folgender Issue bereits bekannt? Kommt wenn man den Trade Advisor aufruft. Ich hab noch keinen Handel aufgesetzt. Sollte also auch direkt beim Spielstart da sein!
Falls noch offen, kann ich gerne übernehmen.Code:Traceback (most recent call last): File "CvScreensInterface", line 783, in handleInput File "CvMainInterface", line 6694, in handleInput File "CvTradeRouteAdvisor", line 74, in interfaceScreen File "CvTradeRouteAdvisor", line 102, in drawContents AttributeError: 'NoneType' object has no attribute 'getTeam' ERR: Python function handleInput failed, module CvScreensInterface
der resourcemanager ist über folgende texturen nicht glücklich (die meisten fehlen, beim skirmisher ist es evtl. groß/klein)
Code:RESMGR: Scene file failed to load. Reason: (code:1) Cannot open file. RESMGR: Texture FlagDECAL.dds failed to load RESMGR: Texture Great_Spy_Ancient_DIFF.dds failed to load RESMGR: Texture HorseArcher-horse.dds failed to load RESMGR: Texture HorseArcher_128.dds failed to load RESMGR: Texture PlayerColor01.tga failed to load RESMGR: Texture PlayerColor02.tga failed to load RESMGR: Texture Skirmisher_128.dds failed to load RESMGR: Texture Skirmisher_weapons_64.dds failed to load RESMGR: Texture celtic_chariot_horse_128.dds failed to load RESMGR: Texture celtic_chariot_horse_second_128.dds failed to load RESMGR: Texture tiger_blink.dds failed to load RESMGR: Texture transparent.dds failed to load
Das Audiosystem meldet ein Problem mit
Ob das Ende in Zeile 3 abgeschnitten ist oder auf das Problem verweist kann ich nicht sagen. Betrifft alle 5 'variation' Evtl. deutet die Meldung auf ein lokales Problem bei mir hin (fehlendes Sample)?Code:[8695.885] WRN: FAudioSystemMiles::Acquire3DSampleId: Could not acquire Id [8695.885] ERR: FSound3D::InitHandle(): SoundId 690 could not initialize handle for variation 1 [8695.885] ERR: FSound3D::DoLoad: Could not initialize handle for sound Sounds/Units/FootForest. [8695.885] WRN: FAudioManager::Do3DSound(): Could not load scriptId 138./n
Beim XML laden kommt zigtausendmal Beschwerden über in allen möglichen Dateien. Bsp.
Dieses NONE ist aber auch im BtS Grundspiel zu finden und scheint nicht PAE spezifisch!?Code:[5671.322] info type NONE not found, Current XML file is: xml\Events/CIV4EventInfos.xml
Was das mit dem NONE soll, bin ich auch noch nicht durchgestiegen. Die Infos haben eigentlich alle ein Enum-Element NO_XY, vielleicht sollte das da rein?
@CvTradeRouteAdvisor:
Code:lCities = PAE_Trade.lCitiesSpecialBonus for pCity in lCities: if pCity and not pCity.isNone(): iCityOwner = pCity.getOwner() pPlayer = gc.getPlayer(iCityOwner) pTeam = gc.getTeam(pPlayer.getTeam())
pPlayer ist None, das sollte nicht passieren können.
Geändert von Flunky (21. Januar 2017 um 11:41 Uhr)
@NONE:
NONE und leerer String werden akzeptiert, ansonsten muss der Eintrag mittels getInfoTypeForString gefunden werden. Da sind die NO_XY-Enums aber nicht drin und würden auch nicht akzeptiert. NONE ist also richtig, einfach nix in die Tags schreiben geht auch und damit ist auch <Tag/> statt <Tag>NONE</Tag> in Ordnung.PHP-Code:
int CvXMLLoadUtility::FindInInfoClass(const TCHAR* pszVal, bool hideAssert)
{
int idx = GC.getInfoTypeForString(pszVal, hideAssert);
// if we found a match in the list we will return the value of the loop counter
// which will hold the location of the match in the list
if (idx != -1)
{
return idx;
}
if(!hideAssert)
{
if (_tcscmp(pszVal,"NONE")!=0 && _tcscmp(pszVal,"")!=0)
{
char errorMsg[1024];
sprintf(errorMsg, "Tag: %s in Info class was incorrect \n Current XML file is: %s", pszVal, GC.getCurrentXMLFile().GetCString());
gDLL->MessageBox(errorMsg, "XML Error");
}
}
return idx;
}
Wem's Spaß macht: Suchen und Ersetzen ">NONE</\w*>" durch "/>"
Geändert von Flunky (21. Januar 2017 um 11:53 Uhr)
Ich spiel so vor mich hin und schwups
Code:Traceback (most recent call last): File "CvEventInterface", line 23, in onEvent File "CvEventManager", line 303, in handleEvent File "CvEventManager", line 6544, in onEndPlayerTurn File "PAE_Trade", line 1352, in doUpdateCitiesWithSpecialBonus File "CvUtil", line 481, in getScriptData RuntimeError: unidentifiable C++ exception ERR: Python function onEvent failed, module CvEventInterface'lCitiesSpecialBonus' ist wieder involviert! Fehler evtl. in oranger Fkt?Code:if gc.getGame().getGameTurnYear() > -2400: if iGameTurn % 20 == 0: PAE_Barbaren.setGoodyHuts() PAE_Trade.addCityWithSpecialBonus() ?evtl.? # --- PAE Trade: PAE_Trade.doUpdateCitiesWithSpecialBonus() def doUpdateCitiesWithSpecialBonus(): global lCitiesSpecialBonus # Max 3 cities for pCity in lCitiesSpecialBonus: if pCity and not pCity.isNone(): iTurn = int(CvUtil.getScriptData(pCity, ["TradeSpecialTurns"], "-1")) def getScriptData(pOwner, keylist = None, default=""): sData = pOwner.getScriptData()
weiter machen ist leider auch nicht, nun mit Speicherproblem
Ich verwende die 40er dll, ist das OK? Ein Neustart behebt das Problem vorerst.Code:Traceback (most recent call last): File "CvEventInterface", line 23, in onEvent File "CvEventManager", line 303, in handleEvent File "CvEventManager", line 6544, in onEndPlayerTurn File "PAE_Trade", line 1352, in doUpdateCitiesWithSpecialBonus File "CvUtil", line 481, in getScriptData MemoryError ERR: Python function onEvent failed, module CvEventInterface
Geändert von redge (21. Januar 2017 um 12:58 Uhr)
Ist der Spielstand ungewöhnlich groß?
Ich würde sagen, dass sorgt ein Fehler für einen immer größeren String und das fliegt einem irgendann um die Ohren.
Beispielsweise weil im Code etwas von der Form
...
liste = [irgendwie aus dem Scriptdata-String]
liste.append(...)
genutzt wird immer nur Eintrag 0 und das Array wird immer länger.
eigentlich nicht 670kb zur zeit bin allerdings erst 2200 bc
Also ja, der Scriptdata-String fliegt uns um die Ohren. Aber über addScriptData wird jeder key nur einmal belegt. Ich kann mir vorstellen, dass der key "TradeSpecialTurns" einfach zu lang ist, oder dass irgendwo direkt setScriptData aufgerufen wird.
€: habs glaub ich gefunden: an diversen Stellen wird direkt auf der Entität setScriptData aufgerufen und so das dict-Prinzip umgangen. Korrektur folgt.
@Explodierende Strings: bei hohem Handelsaufkommen kann der hier problematisch werden
€³: wie üblich völlig ungetestet - zumindest startet das Spiel^^PHP-Code:
# City can use bonus for x turns
def doCityProvideBonus(pCity, eBonus, iTurns):
# ScriptDataString (e.g.) = "43,4;23,8;12,10" (bonus index + ',' + num turns + ';' + bonus index + ...)
sScriptDataString = CvUtil.getScriptData(pCity, ["freeBonus"])
if sScriptDataString != "": sScriptDataString += ";" + str(eBonus) + "," + str(iTurns)
else: sScriptDataString = str(eBonus) + "," + str(iTurns) # prevent semicolon at the beginning of string
CvUtil.addScriptData(pCity, "freeBonus", sScriptDataString)
pCity.changeFreeBonus(eBonus, 1)
Für den möglicher Weise sehr langen String der aktuell in einer Stadt vorhandenen temporären Bonusgüter hab ich jetzt noch keine Lösung gefunden.
Auch bin ich mir nicht sicher, ob die ScriptData-Zugriffe im WB alle sauber sind, da hab ich mal TODOs drangesetzt (wahrscheinlich nicht bei allen Kandidaten)
Geändert von Flunky (21. Januar 2017 um 15:47 Uhr)
Danke für Eure Hilfe.
Ich spiele Karthago auf EuropeXL 40/Monarch/Normal und hab 4 Städte(10,6,6,3), in jeder ein Tradepost, nicht übermässig Einheiten, alle Fertility und muss 55% Taxes machen. Die 3er ist vlt. 13 Felder von der HS und kostet 10 Gold Unterhaltung. Tech bin ich nun beim Segelschiff (aka Colonization) was aber nur Unterhalt bei der Anzahl der Städte reduziert und die ist nicht dramatisch. 6,8 Gold für die Entfernung zum HS und dann am Ende noch ein 25% Aufschlag (kommt der vom Level?). Für mein Empfinden stehe ich gut da, wenn nicht die Steuern wären. Jetzt alles über Goldkarren oder Händler zu kompensieren ist mühsam. Ich hoffe es kommt bald 4.8 rum und einigen Balacingtweaks. Vlt. sollte ich ja auf Siedler spielen.![]()
Einfach Steuern auf 50% lassen0/100 ist in PAE nicht empfehlenswert, weil bei über 50% Goldgenerierung Revolten entstehen können. Damit man aber überhaupt versucht ist, die Forschung unter 50% zu stellen, muss der ausgeglichene Haushalt irgendwo in der Ecke liegen.
Flunky ich habe die Phyton Dateien in Antwort 1047 getestet und in Runde 141 folgende Fehlermeldung erhalten
Traceback (most recent call last):
File "CvGameInterface", line 185, in AI_unitUpdate
File "CvGameUtils", line 1123, in AI_unitUpdate
File "PAE_Trade", line 1285, in doAssignTradeRoute_AI
AttributeError: 'CyPlot' object has no attribute 'getID'
ERR: Python function AI_unitUpdate failed, module CvGameInterface
Markus1978
PAE-Neuling
Storys:
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Julius Caesar - Sieg oder Niederlage Ergebnis: Niederlage
Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Szenario: PAE_LimesGermanicusSmall - Chaos ohne Ende wie man es nicht macht! Ergebnis: Sieg