Kailric
Jack of All Trades
Maybe the 2.0h patch isn't correct. Ill check more into it soon as I can.
Today I've been experiencing lots of drops to the desktop in the first 10 turns. So much so that I can't play the game. I will get an error log.
It would be nice if you'd fix those XML source bugs in XML\Buildings\Civ4Buildinginfos.xml. I'm getting a sore finger!![]()
I finally downloaded 2.0h. I suspect the problem was mine, a bad cached url for the mod.
Now I'm getting an XML error:
"Tag: MODER_CODE_TRADING_POST in info class was incorrect. Current XML file is: xml\Buildings/Civ4Buildinginfos.xml"
And I got a ton more XML errors. Did I screw up in applying the update? The game does start, but not, I'm guessing, for long.
EDIT: But this only happened the first time. I have a screwy hunch this had to do with a cached map or something. So, I'm guessing, no worries.
So, have you not been able to play since installing 2.0h? As I am not quite understanding the bugs you have been reporting. You stated once that it would not load and then you stated everything was fine here...
Edit CivilizationIV.ini and set both DisableFileCaching and DisableCaching to 1. That should eliminate that problem, though the game starts slower.[EDIT:] My current guess is that I had been playing the TAC mod and these were my first M:C games after restarting the game -- in other words, some weird kind of caching issue. I'll test this.
Another game, just started. It seems like the commands to the characters aren't working. Two items were highlit for promotion, but you could press the star button four or five times and nothing would happen. Finally the star button took effect and I could promote them. I'm guessing there was a lot of silent error processing behind the scenes, and I'm attaching the PythonErr.log.
Likewise my pedlar is wounded and I can't set him to healing.
I'm guessing this is related to the action buttons not appearing at all, the other game. I'm going on strike until the 12 xml text errors are fixed.![]()
Maybe you could try reinstalling everything and apply the updates one at a time in order again.
I noticed the AI is to some extend the vanilla one and as a result of this the AI import/export suffers from this:
On top of that I haven't figured out if/how the AI uses the different trade routes. It's possible exports are hardcoded to ships.
- There is only one European price. Planning stage doesn't take price modifiers into account.
- The AI either imports or exports a yield. It can't really do both for the same yield.
- Inland cities will never export yields, only transport them to port cities.
- Can't export on land routes if civ has no port cities. (result of previous issue)
There is no easy fix for this. We are looking into AI assumptions, which are coded deep into the code and takes some effort to solve. Luckily it would appear the AI somehow gets strong enough to provide the correct difficulty anyway, but maybe they only do that if they happen to start next to the sea.
I would suspect this problem increases with map size as big maps can place some civs rather far from the sea. On the other hand the "European" trade screens are less important in M:C meaning maybe the AI survives without using them at all.
I have spend the last few days studying the AI and how it treats yields. I found a few glitches where I fixed some of them. One example is if the AI is short on money it will increase production of what it sells in Europe. It had one list for what to produce and one for what to sell and those two were different. Now they both use Check_YieldGroup_AI_Sell_To_Europe() to prevent they ever get out of sync again.I noticed some of that as well when working on making the AI produce Nobles. I have succeeded in that to some degree as the AI will build Butchers houses in appropriate cities and start to move all their Beef and Spices there.
Sounds interesting but do remember that most economic theory is invented in post medieval times. The view on economics has changed ALOT. Also remember that you educate yourself to get a job, not to become a better modder, though they can easily coexist. This comes from a guy who took a welding class at uni "because it sounded fun"Edit: I am starting to learn Economics in my college studies now. I am excited about it as maybe I can use what I learn to improve the economy of M:C![]()
YIELD_STONE has little special code. I wonder if the AI really cares about it and if it is able to use stone as intended.
I wondered about changing the code to merge behavior with YIELD_LUMBER, but if I do that I'm scared that it could start to produce stone instead of lumber.
I'm unhappy with the code to produce luxury goods. Somehow it looks wrong and I highly suspect the AI values luxury food much different from what we do. However I haven't figured out if I can do anything about it. Also for some reason the code appears a bit messy and possibly a bit random. Rather than do something about it, somebody should take the time to really look into the AI and plan what the AI is supposed to do.
Well, I myself want to buy Spices from the natives and sell it to Europe because it is good profit in it and it is the way I designed it. How the AI handles any yield is fairly simple really.The AI appears to be happy to trade YIELD_SPICES. It wants to buy it from natives and Europe, but at the same time it wants to sell it to Europe. I'm considering adding an assert to check for both buying and selling in Europe as the code appears to hardcode a yield for either import or export. Doing both with a yield appears to be unsupported and I'm unsure how the AI actually handle spices at the moment.
After all it's fairly limited what kind of yield modding you can do without recompiling anyway and the in-dll solution is designed for speed where XML isn't. Anything which is more complex than on/off should still be done in XML.
Sounds interesting but do remember that most economic theory is invented in post medieval times. The view on economics has changed ALOT. Also remember that you educate yourself to get a job, not to become a better modder, though they can easily coexist. This comes from a guy who took a welding class at uni "because it sounded fun"Well now I do know some stuff about welding, casting and stuff and you never know when it might be useful.
I never learned anything useful for ingame stuff like that when I attended university. However I was a really novice programmer when I started... but not anymore![]()
That sounds reasonable. However the bug I referred to is that the AI is coded to buy spice in Europe and then sell it in Europe. However there is a piece of code in CvPlayerAI.cpp which I think assumes the AI will never buy and sell the same yield in Europe. Because of this the AI's behavior is in undefined territory.Well, I myself want to buy Spices from the natives and sell it to Europe because it is good profit in it and it is the way I designed it. How the AI handles any yield is fairly simple really.
I think it would be a good idea to go though all groups in Yields_Medieval_Tech.cpp and see if all yields are defined as intended.
Come to think of it, we shouldn't allow more than one of YieldGroup_AI_Raw_Material, YieldGroup_AI_Sell_To_Europe and YieldGroup_AI_Buy_From_Europe to be set.
It is, but are you going to do it?![]()
The thread 'Win32 Thread' (0x19bc) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0xcdc) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x15c8) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x678) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x1ba8) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x7dc) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x17c4) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x1b90) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x1824) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0xa80) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x8ec) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0xb74) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x12c8) has exited with code 1073741855 (0x4000001f).
The thread 'Win32 Thread' (0x1d04) has exited with code 1073741855 (0x4000001f).
The program '[5428] Colonization.exe: Native' has exited with code 1073741855 (0x4000001f).