Single Player bugs and crashes v36 plus (SVN) - After the 24th of October 2015

Status
Not open for further replies.
Sorry, yeah, I was dumb and didn't read the first post about actually providing the requested basic minimum of information regarding AI bugging.

Revolutions not enabled, victories are Conq, Dom, Religious, Demo, Culture. Screenshots and current save game attached, AI BBAI log as well. I had to zip the savegame since it was very slightly over 2mb, which is the stated limit for the forum to accept save game uploads.

Incidentally, the only reason I have the BBAI log is because I had a "slow turn" issue many turns ago. It seemed as though the game had frozen or gotten stuck in a loop - taking several minutes, where previous turns were <1 minute - so I turned on AI logging to see whether I could identify the culprit back then. However, I instead left the game to process while doing other things, and it had resumed fine when I returned ~10 minutes later. Subsequent turns are back to their normal <1 minute processing time. I believe this was a few techs after the transition to Classical era, but I'm not 100% sure, nor what I might have research during that time (as I definitely had higher priorities than Mail, which is the first tech completion to show up in the BBAI log). Not sure if that excessively long turn is somehow related.



Unfortunately, my autosaves don't go far enough back to a time prior to the missing research, since I played a lot of turns figuring it was just an espionage issue before deciding to look more closely.

I'll probably end up orphaning this game and starting over at another step up in difficulty, since I've pulled so far ahead at this point that winning is just a matter of enough next turns (or conquering cities if I was so inclined).

Pretty sure I've solved this. I evaluated the code regarding tech assignment for the AI and my suspicions were valid regarding building requirements to research a tech being the culprit.

Since the AI must look many techs out to find the best target tech to research, it only checks a 'canEverResearch' function for picking the best target. Unfortunately, having picked the best target tech, with building requirements being inclusive on the general 'canResarch' function denying the AI's ability to ACTUALLY research the tech, it can continuously evaluate a best tech to research as being one it cannot and thus get stuck without any determined tech to research at all. I'm surprised it doesn't infinite loop here so it must mean there's no check to ensure that a valid selection has been made or there's a short circuit built in to pass this check if it keeps trying and finding itself with no tech selected.

Either way, the fix is simple enough. Adding the building check to canEverResearch should fix it up nicely. Doing that now and once it's compiled I'll verify the problem has been solved.

Thanks for the report! This is a bug that could certainly foul up a good game if left unaddressed.

EDIT: Yup... that fixes it. Hitting red button with the fixed dll and by the next turn, the AI has already selected a new tech path to research.
 
EDIT: Yup... that fixes it. Hitting red button with the fixed dll and by the next turn, the AI has already selected a new tech path to research.

Great job, as already TB, i am SOOOO glad you are so perceptive to working with C2C> thx. . SO
 
Please double check on this. Reviewing the code, it looks like the obvious culprit as suspected. I had not ensured that an RoP or Open Borders was established as a prerequisite for Amnesty to be in effect.

While there COULD be another unfound scenario, this one is obviously an issue with the current code and I'm fixing it now. But this makes it important to be sure this was all that was taking place there.

You can always see what options you're running while you're in the game via the Red Fist screen (but I'm sure you know that.)

If Amnesty isn't on... I'm not sure what the issue is so a save would be very useful.

You are right I have that option on.

edit save attached. Stalkers and foreign merchant just outside Byblos.
 

Attachments

Great job, as already TB, i am SOOOO glad you are so perceptive to working with C2C> thx. . SO
Thanks SO. Been working on some issue cleanup today. Lots more random fixes coming very soon.

You are right I have that option on.

edit save attached. Stalkers and foreign merchant just outside Byblos.
Run that with the latest SVN and you should be able to attack the merchant (with your Stalkers at least) as long as he's not in a city already. Since you've confirmed that you do have Amnesty on (which I highly suspected) the issue SHOULD be fixed already.
 
Been working on some issue cleanup today. Lots more random fixes coming very soon.

Thanks a lot for this. :)

I know how difficult it is to work on the boring stuff - like bug fixes. Especially when you have other ongoing projects - you want to work on. Much appreciated. :goodjob:
 
Thanks a lot for this. :)

I know how difficult it is to work on the boring stuff - like bug fixes. Especially when you have other ongoing projects - you want to work on. Much appreciated. :goodjob:

I just completed a major step in development so I'm happy to let it settle for a day or two to see if it comes up with any new bug reports before I get to moving on too far. I have a list that's been developing for a bit here. Not all of it is fixes... some are just commitments to do some projects for others. We're getting the mod cleaner and cleaner as we go though. This is what has been allowing for such dramatic forward progress recently, which has been VERY nice to be clear to do for the most part. But when I'm working on cutting edge development, naturally some issues are brought up in the meantime so they go on the list and get taken care of as soon as I hit a project juncture like the one I'm at.
 
Run that with the latest SVN and you should be able to attack the merchant (with your Stalkers at least) as long as he's not in a city already. Since you've confirmed that you do have Amnesty on (which I highly suspected) the issue SHOULD be fixed already.

Yes, it is fixed. Thanks.
 
The Montreal Biodome produces both land and sea animals (which is good). In an inland city you can´t do anything with subdued sea animal except air transport them away (if you have an airport there). Therefore I would suggest that the Montreal Biodome should only be built in a coast city.
 
If you capture a city with Neanders (-> Barbarian) and capture the city again with a regular unit, the native culture is lost.

If that mechanism is meant to make sure Barbarians cannot develop a culture, perhaps that could be achieved by "giving" Barbarians a native culture suppressor.
 
If you capture a city with Neanders (-> Barbarian) and capture the city again with a regular unit, the native culture is lost.

If that mechanism is meant to make sure Barbarians cannot develop a culture, perhaps that could be achieved by "giving" Barbarians a native culture suppressor.

Don't know... the change that was made was to make HN units take cities as barbarians. Apparently it has an interesting side-effect I was unaware of (that may or may not be a good thing?) I'll have to see in-game how it operates. But I'll be looking out for it now.
 
If you capture a city with Neanders (-> Barbarian) and capture the city again with a regular unit, the native culture is lost.

This is normal. If barbarians capture a city which has a culture it will lost when you take it. I thought to capture a city that had been Asian but had been conquered first by a South American and then the barbarians. It should have had both the cultures but it had none.
 
Hello everyone

My game CTDs after ~8992 svn update, tried checking everything in RevDCM off and errors still persist. The error code changes are due to update from 8996 to the newest one.
 

Attachments

  • error.jpg
    error.jpg
    20 KB · Views: 47
  • error2.jpg
    error2.jpg
    18.7 KB · Views: 52
  • Kwota AD-1601-Winter.rar
    Kwota AD-1601-Winter.rar
    9.5 MB · Views: 51
Hello everyone

My game CTDs after ~8992 svn update, tried checking everything in RevDCM off and errors still persist. The error code changes are due to update from 8996 to the newest one.

Since that is a Python error including the PythonErr.log file if you have it would be useful.

edit I have downloaded the save and I am trying to load it now. I am not sure my computer can handle it.

This is the full error I get in the PythonErr.Log file
Code:
Traceback (most recent call last):
  File "BugEventManager", line 363, in _handleDefaultEvent
  File "Revolution", line 627, in onEndPlayerTurn
  File "Revolution", line 6259, in launchRevolution
  File "Revolution", line 6983, in spawnRevolutionaries
RuntimeError: unidentifiable C++ exception

Now to see if I can track it down. I forgot to count how many civs you had in that game.

All I can tell is that it is trying to place the best Spy unit available for the rebel civ. It checks that there is one available first.

edit It is trying to spawn the spy inside the city and put it on fortify (=counter espionage).
 
The Montreal Biodome produces both land and sea animals (which is good). In an inland city you can´t do anything with subdued sea animal except air transport them away (if you have an airport there). Therefore I would suggest that the Montreal Biodome should only be built in a coast city.

It´s even worse, some subdued animals can´t be air transported at all, e.g. the saltwater crocodile.
 
Thanks for the help.

Spoiler :
sys.path = ['..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\email', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\encodings', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\build', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\py', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\tools', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\colourchooser', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\editor', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\floatcanvas', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\masked', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\mixins', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\lib\\ogl', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\af', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ca', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\cs', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\da', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\de', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\el', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\es', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\eu', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\fi', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\fr', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\hi', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\hu', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\id', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\it', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ja', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\lv', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\nb', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\nl', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\pl', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\pt_BR', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ru', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\sl', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\sv', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\tr', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\uk', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\zh_CN', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\zh_TW', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\af\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ca\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\cs\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\da\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\de\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\el\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\es\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\eu\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\fi\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\fr\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\hi\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\hu\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\id\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\it\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ja\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\lv\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\nb\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\nl\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\pl\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\pt_BR\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\ru\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\sl\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\sv\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\tr\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\uk\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\zh_CN\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\locale\\zh_TW\\LC_MESSAGES', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\py\\tests', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\tools\\XRCed', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM\\wx\\tools\\XRCed\\src-images', '..\\WARLORDS\\ASSETS\\PYTHON\\SYSTEM']

sys.modules = {'zipimport': <module 'zipimport' (built-in)>, 'signal': <module 'signal' (built-in)>, '__builtin__': <module '__builtin__' (built-in)>, 'sys': <module 'sys' (built-in)>, '__main__': <module '__main__' (built-in)>, 'exceptions': <module 'exceptions' (built-in)>, 'CvPythonExtensions': <module 'CvPythonExtensions' (built-in)>}

sys.builtin_module_names = ('CvPythonExtensions', '__builtin__', '__main__', '_bisect', '_codecs', '_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_csv', '_heapq', '_hotshot', '_locale', '_multibytecodec', '_random', '_sre', '_subprocess', '_symtable', '_weakref', '_winreg', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'md5', 'mmap', 'msvcrt', 'nt', 'operator', 'parser', 'regex', 'rgbimg', 'sha', 'signal', 'strop', 'struct', 'sys', 'thread', 'time', 'xxsubtype', 'zipimport')
load_module CvEventInterface
load_module BugEventManager
load_module CvEventManager
load_module CvUtil
load_module traceback
load_module CvScreensInterface
load_module CvMainInterface
load_module ScreenInput
load_module CvScreenEnums
load_module time
load_module ProcessUpgrades
load_module BugUtil
load_module BugPath
load_module BugConfigTracker
load_module ColorUtil
load_module Immigration
load_module CvTechChooser
load_module PyHelpers
load_module pickle
load_module CvGameUtils
load_module BugDll
load_module BugOptions
load_module BugConfig
load_module BugCore
load_module BugInit
load_module BugTypes
load_module xmllib
..\WARLORDS\ASSETS\PYTHON\SYSTEM\xmllib.py:9: DeprecationWarning: The xmllib module is obsolete. Use xml.sax instead.
22:43:39 DEBUG: BugConfig - registering xml handler BugConfig.RootHandler
22:43:39 DEBUG: BugConfig - registering bug handler BugConfig.BugHandler
22:43:39 DEBUG: BugConfig - registering load handler BugConfig.LoadHandler
22:43:39 DEBUG: BugConfig - registering config handler BugConfig.ConfigHandler
22:43:39 DEBUG: BugConfig - registering arg handler BugConfig.ArgHandler
load_module configobj
load_module __future__
load_module codecs
load_module validate
validate import failed
load_module RevInstances
load_module BugOptionsScreen
load_module BugErrorOptionsTab
load_module BugOptionsTab
load_module BugHelp
load_module Popup
22:43:39 INFO : BugCore - creating uninitialized mod Core
22:43:39 INFO : BugCore - creating uninitialized mod MainInterface
load_module CityUtil
22:43:39 INFO : BugCore - creating uninitialized mod NJAGC
22:43:39 INFO : BugCore - creating uninitialized mod Scores
22:43:39 INFO : BugCore - creating uninitialized mod CityScreen
22:43:39 INFO : BugCore - creating uninitialized mod Revolution
load_module ReligionUtil
load_module FontUtil
load_module MonkeyTools
load_module AStarTools
22:43:39 INFO : BugCore - creating uninitialized mod PLE
load_module UnitUtil
load_module PlayerUtil
load_module TradeUtil
load_module DiplomacyUtil
load_module AttitudeUtil
load_module GameUtil
load_module Scoreboard
load_module DealUtil
load_module BugUnitPlot
load_module ReminderEventManager
load_module SdToolKit
load_module BugData
load_module cPickle
load_module autolog
load_module CvModName
22:43:39 INFO : BugCore - creating uninitialized mod Autolog
22:43:39 INFO : BugCore - creating uninitialized mod Reminder
load_module CvAppInterface
load_module GGUtil
load_module GPUtil
load_module ProgressBarUtil
load_module PLE
load_module CvMADNukesManager
load_module math
load_module RawYields
load_module CvForeignAdvisor
load_module CvExoticForeignAdvisor
load_module IconGrid_BUG
load_module DomPyHelpers
load_module TechTree
load_module FavoriteCivicDetector
22:43:39 INFO : BugCore - creating uninitialized mod Advisors
load_module CvReligionScreen
load_module CvCorporationScreen
load_module CvCivicsScreen
load_module CvVictoryScreen
load_module TechUtil
load_module GameSetUpCheck
load_module AutoSave
load_module MapFinder
load_module MapFinderStatusScreen
22:43:39 INFO : BugCore - creating uninitialized mod MapFinder
22:43:39 INFO : BugCore - creating uninitialized mod AutoSave
load_module Buffy
22:43:39 INFO : BugCore - creating uninitialized mod BUFFY
load_module CvEspionageAdvisor
load_module SpyUtil
load_module BugScreen
22:43:39 INFO : BugCore - creating uninitialized mod BetterEspionage
load_module CvOptionsScreen
load_module CvReplayScreen
load_module CvHallOfFameScreen
load_module CvDanQuayle
load_module CvUnVictoryScreen
load_module CvDawnOfMan
load_module CvTechSplashScreen
load_module CvTopCivs
load_module random
load_module CvInfoScreen
load_module CvIntroMovieScreen
load_module CvVictoryMovieScreen
load_module CvWonderMovieScreen
load_module CvEraMovieScreen
load_module CvSpaceShipScreen
load_module SevoScreenEnums
load_module CvWorldBuilderScreen
load_module CvDebugTools
load_module CvDebugInfoScreen
load_module CvMapGeneratorUtil
load_module NaturalWonders
load_module CvGFCScreen
load_module BuildListScreen
load_module CvPopupInterface
load_module CvScreenUtilsInterface
load_module CvOverlayScreenUtils
load_module CvDotMapOverlayScreen
load_module CvStrategyOverlay
22:43:39 INFO : BugCore - creating uninitialized mod StrategyOverlay
22:43:39 INFO : BugCore - creating uninitialized mod CustDomAdv
22:43:39 INFO : BugCore - creating uninitialized mod TechWindow
load_module C2CMainOptions
load_module C2CNationAdvisor
load_module Forgetful
load_module TimeKeeper
init-ing world builder screen
load_module CvWBPopups
load_module CvCameraControls
load_module CvAdvisorUtils
load_module InputUtil
22:43:39 DEBUG: BugUtil - extending BugEventManager.preGameStart instead CvAppInterface
22:43:39 DEBUG: BugEventManager - adding event 'PreGameStart'
22:43:39 DEBUG: BugEventManager - adding event 'BeginActivePlayerTurn'
22:43:39 DEBUG: BugEventManager - adding event 'SwitchHotSeatPlayer'
22:43:39 DEBUG: BugEventManager - adding event 'LanguageChanged'
22:43:39 DEBUG: BugEventManager - adding event 'ResolutionChanged'
22:43:39 DEBUG: BugEventManager - adding event 'PythonReloaded'
22:43:39 DEBUG: BugEventManager - adding event 'unitUpgraded'
22:43:39 DEBUG: BugEventManager - adding event 'unitCaptured'
22:43:39 DEBUG: BugEventManager - adding event 'combatWithdrawal'
22:43:39 DEBUG: BugEventManager - adding event 'combatRetreat'
22:43:39 DEBUG: BugEventManager - adding event 'combatLogCollateral'
22:43:39 DEBUG: BugEventManager - adding event 'combatLogFlanking'
22:43:39 DEBUG: BugEventManager - adding event 'playerRevolution'
22:43:39 DEBUG: BugEventManager - adding event 'addTeam'
22:43:39 DEBUG: BugInit - init() called
22:43:39 DEBUG: BugInit - game not fully initialized
PY:OnInit


Posting in a spoiler since attaching a file gave me errors too.
 
That is not the PythonErr.log it is the PythonErr2.log which has totally different stuff in it but is not useful in this instance.
 
That is not the PythonErr.log it is the PythonErr2.log which has totally different stuff in it but is not useful in this instance.

I'm a little confused... do you need me to look at this with the debugger or not?
 
I'm a little confused... do you need me to look at this with the debugger or not?

Yes, I do. I can only get as far as seeing that there is a valid Spy unit - a unit with an AI defined as UNITAI_SPY and then it crashes when trying to place the spy. It is repeatable.
 
Status
Not open for further replies.
Back
Top Bottom