Single Player bugs and crashes v37 plus (SVN) - After the 24th of December 2016

:sad: No luck, oh well. Thanks for your time, and good luck to all the team with the rest of your work on this awesome mod. Guess i will try v38 when it's ready and hope it works for me.
 
:sad: No luck, oh well. Thanks for your time, and good luck to all the team with the rest of your work on this awesome mod. Guess i will try v38 when it's ready and hope it works for me.
Did you do a Re-Calc Before you tried to play the turn? And Did you Update to latest SVN version as well?
 
Using the latest SVN (9752) and got this error:
upload_2017-11-19_9-8-33.png
 
So I'm able to click on the update unit button even if I can't afford the update - AND once I've clicked the button, I go to positive 999999 gold... Anyone else seen this?
No I have not. I have updated multiple units and am still waiting for the 999,999 deposit into my account.

How long has it been since you updated? And how old is that game?
Sure thing - just load up the save and find any of the enforcers hanging around most of my cities and update them.

And none of my enforcers when updated do this.

What is your "magic" trick?
 
Did you do a Re-Calc Before you tried to play the turn? And Did you Update to latest SVN version as well?

Thanks for trying to help JosEPh, i did indeed do both of those things.

To be honest, i really can't see why it would stop working at this point. Went back a few turns and it was fine up until that particular turn, so why it only happens on my machine i haven't the foggiest.
 
Thanks for trying to help JosEPh, i did indeed do both of those things.

To be honest, i really can't see why it would stop working at this point. Went back a few turns and it was fine up until that particular turn, so why it only happens on my machine i haven't the foggiest.
Try playing around with various BUG options. It may be you're using one that is causing the crash and I'm not.
 
Sure thing - just load up the save and find any of the enforcers hanging around most of my cities and update them.

No I have not. I have updated multiple units and am still waiting for the 999,999 deposit into my account.

How long has it been since you updated? And how old is that game?


And none of my enforcers when updated do this.

What is your "magic" trick?

It's not a magic trick. My Greater Gold (Millions of gold) amount hasn't been showing up properly and somehow he had 40 millions of gold we couldn't see. The question now becomes one I cannot answer, which is how he GOT 40 millions of gold, but I seem to recall there was a point where if you saved at just the right time during a bad commit you could get an erroneous gamestate with that value.

I've detailed the problem and what I could and have done about it further here: In the SVN Commit Log thread.
 
Got this error message with NEW SVN: each and every turn . .

Traceback (most recent call last):
File "BugEventManager", line 363, in _handleDefaultEvent
File "The_JMods", line 191, in onCombatResult
AttributeError: PyPlayer instance has no attribute 'getEffectiveGold'

also in the pic, something weird in the circled area (top left)??????
 

Attachments

  • Civ4ScreenShot0001.JPG
    Civ4ScreenShot0001.JPG
    188.4 KB · Views: 44
Last edited:
It's not a magic trick. My Greater Gold (Millions of gold) amount hasn't been showing up properly and somehow he had 40 millions of gold we couldn't see. The question now becomes one I cannot answer, which is how he GOT 40 millions of gold, but I seem to recall there was a point where if you saved at just the right time during a bad commit you could get an erroneous gamestate with that value.

I've detailed the problem and what I could and have done about it further here: In the SVN Commit Log thread.

It's probably right around the bad commit that the greater gold amount got borked... I remember reloading the game at some point after a SVN commit a few numbers back that gave me a lot of gold (999.999). I waited for an update of the SVN and reloaded the game a turn back, the surplus gold was gone.
Probably I'd just gone below zero, but hadn't noticed it and the greater gold amount has been borked for a while.

Which means -



The rest of the world is quite far ahead of me, at least two tech ages, I've got obsidian axemen while they've got muskets, so I think it's going to be ok. Maybe it'll prolong my survival a bit :D
 
Got this error message with NEW SVN: each and every turn . .

Traceback (most recent call last):
File "BugEventManager", line 363, in _handleDefaultEvent
File "The_JMods", line 191, in onCombatResult
AttributeError: PyPlayer instance has no attribute 'getEffectiveGold'

also in the pic, something weird in the circled area (top left)??????
I'm not sure why getEffectiveGold isn't working in that case. Can one of the Py guys take a look at the syntax and see if they can spot why all the other places I've used it are working but this one isn't?

So the 'something weird' is that you have 2 millions of gold. Like Septimius, the game has somehow given you a couple Greater Gold (which is the solution that should resolve all future potential overflows in gold amounts.) This could be due to the changes to introduce this amount not being quite as savegame compatible as I'd hoped. I'm not sure how some games are picking up Greater Gold amounts when they shouldn't but I had to make sure I fixed it so it was visible, which it hasn't been until now.

If you can, please try to read as much of my notes on that as possible in my latest SVN commit.

It's probably right around the bad commit that the greater gold amount got borked... I remember reloading the game at some point after a SVN commit a few numbers back that gave me a lot of gold (999.999). I waited for an update of the SVN and reloaded the game a turn back, the surplus gold was gone.
Probably I'd just gone below zero, but hadn't noticed it and the greater gold amount has been borked for a while.

Which means -



The rest of the world is quite far ahead of me, at least two tech ages, I've got obsidian axemen while they've got muskets, so I think it's going to be ok. Maybe it'll prolong my survival a bit :D
Hilarious!

We've gotta try to keep an eye out for any moments in the game that bring on Greater Gold amounts that shouldn't be there and capture it if we find a bug. It could, as stated above, just be a savegame incompatibility issue.
 
So the 'something weird' is that you have 2 millions of gold. .
I believe i only have around 200,000 but i dont know why the gold icon or the gold coin icons are there?
 
I believe i only have around 200,000 but i dont know why the gold icon or the gold coin icons are there?
The first stands for Greater Gold (millions of gold) and the second for the normal amount of gold.
 
I'm not sure why getEffectiveGold isn't working in that case. Can one of the Py guys take a look at the syntax and see if they can spot why all the other places I've used it are working but this one isn't?
I see the problem. playerY is defined as a PyPlayer python class object in PyHelpers.py.

import PyHelpers
PyPlayer = PyHelpers.PyPlayer
...
def onCombatResult():
playerY = PyPlayer(pLoser.getOwner())
iGold = playerY.getEffectiveGold( )​

The PyPlayer python class imitates the CyPlayer dll object class acting as a middle man so to speak, and it doesn't have the new function defined as one of its python class functions.

There are two ways to fix this, we can add the new function to the PyPlayer python class:
it would simply look like this:

def getEffectiveGold(self, CyPlayer):
return CyPlayer.getEffectiveGold(CyPlayer)​

OR
This is my preferance, stop using PyPlayer python class altogether and do stuff directly instead of having this python script tell another python script to do a dll function because this python script is too lazy or shy to communicate with the dll directly.
 
Last edited:
I see the problem. playerY is defined as a PyPlayer python class object in PyHelpers.py.

import PyHelpers
PyPlayer = PyHelpers.PyPlayer
...
def onCombatResult():
playerY = PyPlayer(pLoser.getOwner())
iGold = playerY.getEffectiveGold( )​

The PyPlayer python class imitates the CyPlayer dll object class acting as a middle man so to speak, and it doesn't have the new function defined as one of its python class functions.

There are two ways to fix this, we can add the new function to the PyPlayer python class:
it would simply look like this:

def getEffectiveGold(self, CyPlayer):
return CyPlayer.getEffectiveGold(CyPlayer)​

OR
This is my preferance, stop using PyPlayer python class altogether and do stuff directly instead of having this python script tell another python script to do a dll function because this python script is too lazy or shy to communicate with the dll directly.
This is exactly the stuff I don't get about python... urgh.

Is there any reason to use the PyHelpers instead of going directly to the dll?
 
This is exactly the stuff I don't get about python... urgh.

Is there any reason to use the PyHelpers instead of going directly to the dll?
I don't really get it either, but some PyHelper functions do have additional code that could provide some utility value.
But in most cases it would be best to deal directly with the dll from the python script that needs the dll's help.

Should I fix this J_Mods issue?
(I won't delete the PyHelper PyPlayer object as it is used too many places for me to commit to that right now.)
 
So I'm having other issues, but I've just updated to the latest SVN and this has happened.

No gold displayed outside of city view either. I can see that you're working on interface, but couldn't see anything detailing a problem specifically. There are other problems like no combat odds.

Is it just me?
Civ4ScreenShot0004.JPG
 
Last edited:
So I'm having other issues, but I've just updated to the latest SVN and this has happened.

No gold displayed outside of city view either. I can see that you're working on interface, but couldn't see anything detailing a problem specifically. There are other problems like no combat odds.

Is it just me?View attachment 481308
You had another issue as well... I might advise to get a fresh SVN repository setup.
 
Back
Top Bottom