FfH2 BtS Conversion Beta

Man! this was fast. I have been wondering if I should keep playing my current game. It doesn't seem to be willing to CTD any time soon (almost 400 turns now).

So I guess I better download the new version.

Yeap, please delete the former "Fall from Heaven 2 024" directory before installing. From here on out all the updates will be patches (well... for a while).
 
CTDs were easy, (are we still required to report them only?). I understand that now we should test spells in the sense that whether they work or not, do they cause a problem when casted, etc.

I am playing Belseraph (excuse my spelling if it is wrong). I got my first hero Loko and he was able to cast a promotion spell successfully. Adepts don't seem to have any spells available yet. Cultists have two spells, one is supposed to allow them to walk on water and it doesn't work. the other spell works as expected they are sacrificed and their religion spreads to the target city.

Judging from the fact that some units don't have spells available (Adepts), I gathered that the spells available are the already implemented ones and they are supposed to work. Just asking for explanation to know better what I am supposed to look for and what I should report.
 
Yeah, its going to be hard to draw the line between broken things and things that arent implemented yet. For example that water walking spell does everything its supposed (it gives the unit the water walking promotion). But since I haven't coded the actual water walking ability yet it doesn't do much.

Right now just CtD's and error messages are still what we are looking for.
 
Loaded the AI up with spells, impressive! Played over 200 turns with the AI at war with each other the last 50(world builder forced) and can't crash it even toggling menus all over the place.

Einions pit beasts, meteors, and RoF vs Falamar's water elementals, djinn's, high priest heals and trebs make for a fun match. I don't even pay attention to my cities, just want to watch them duke it out :D
 
Yeah I loaded up AI casters with ring of flames and fireballs and watched it figure out which to use in each case. It did a good job of picking the ring when it would hurt more enemies with it and the fireball when it needed the range or didn't want to damage nearby friendly units.

No more ring of flames exploits, the ai is just as eager to use them. :p
 
Starting as Flauros, the game hangs on loading. Error message (in endless loop):

Code:
Traceback (most recent call last):

  File "CvScreensInterface", line 708, in forceScreenRedraw

  File "CvMainInterface", line 664, in redraw

  File "CvMainInterface", line 1102, in updateFlag

AttributeError: 'NoneType' object has no attribute 'getKFM'
ERR: Python function forceScreenRedraw failed, module CvScreensInterface


Edit: happening with all civs.
 
Starting as Flauros, the game hangs on loading. Error message (in endless loop):

Code:
Traceback (most recent call last):

  File "CvScreensInterface", line 708, in forceScreenRedraw

  File "CvMainInterface", line 664, in redraw

  File "CvMainInterface", line 1102, in updateFlag

AttributeError: 'NoneType' object has no attribute 'getKFM'
ERR: Python function forceScreenRedraw failed, module CvScreensInterface


Edit: happening with all civs.

They all load fine for me. I wonder whats going on with your game.

Any chance you have modular xml turned on?
 
Yep, but my CustomAssets folder is empty. Are there some issues with modular loading that people should know of?
 
Yep, but my CustomAssets folder is empty. Are there some issues with modular loading that people should know of?

Shouldn't be, but I have been reading your articles and thought that may be a difference between you and most people. But I turned on modular loading in my copy and it seems to be working fine. Hmm...
 
My other difference is that I converted quite some mods to BTS and frequently had to copy BTS files to use as a basis. Turns out I moved my CvMainInterface.py once instead of copying it... ;) Didn't notice it, since I only played mods, all of which have a custom CvMainInterface. Apparently, the game took my Warlords one instead. :lol:

I'll try again later, after having fixed my install...
 
Hi Kael!

Still only CtDs of importance, or also spells, that work not as they should?
I still hadn't a CtD, but the hope spell, my Royal Guards cast don't wear off, when the Unit that casted it leaves the city.
 
Are you interested in python errors ATM?

When casting earthquake:

Code:
Traceback (most recent call last):

  File "CvSpellInterface", line 13, in cast

  File "<string>", line 0, in ?

  File "CvSpellInterface", line 630, in spellEarthquake

NameError: global name 'startWar' is not defined
ERR: Python function cast failed, module CvSpellInterface

When casting escape:

Code:
Traceback (most recent call last):

  File "CvSpellInterface", line 13, in cast

  File "<string>", line 0, in ?

  File "CvSpellInterface", line 1564, in spellTeleport

ArgumentError: Python argument types in
    CyUnit.setXY(CyUnit, int, int)
did not match C++ signature:
    setXY(class CyUnit {lvalue}, int, int, bool, bool, bool)
ERR: Python function cast failed, module CvSpellInterface

When casting trust:

Code:
Traceback (most recent call last):

  File "CvSpellInterface", line 13, in cast

  File "<string>", line 0, in ?

  File "CvSpellInterface", line 1647, in spellTrust

AttributeError: 'CyCity' object has no attribute 'setHasRealBuilding'
ERR: Python function cast failed, module CvSpellInterface

(The attribute is setNumRealBuildings now)
 
Im only interested in things that pop an error message, like Teg's post and CtD's. Things that just aren't working as you would expect (like buildings staying forever, and promotions not having any real effect) aren't of interest yet.

And thanks Teg, those are all fixed.
 
Please to be enjoying the following python exception popups.

when opening the victory screen
Code:
File "CvScreensInterface", line 187, in show VictoryScreen

File "CvVictoryScreen", line 118, in interfaceScreen

File "CvVictoryScreen", line 603, in showVictoryConditionScreen

ArgumentError: Python agruemnt types in
   CyGInterfaceScreen.setTableText(cyGInterfaceScreen, str, int, int, 
int, str, CvPythonExtensions.WidgetTypes, int, int, int)
did not match C++ signature:
   setTableText(class CyGInterfaceScreen {lvalue}, Char const*, int,
int, class std::basic_string[U],class std::allocator >. char const*, enum
WidgetTypes, int, int, int)[/U]

not exactly sure what cause the following, happened after I skipped (space) an adept who had just cast Spring

Code:
File "CvSpellInterface", line 18 in canCast

File "string", line 0, in ?

File "CvSpellInterface", line 261, in reqCommanderJoin

ArgumentError: Python argument types in
   CyUnit.baseCombatStr(CyUnit, bool)
did not match C++ signature:
   baseCombatStr(class CyUnit {lvalue})

The above needed to be cleared 3 times before I could continue. However after that and the first the game continued as "normal".

Thought I had a spin hang earlier but was unable to reproduce, was probably a conflict on my sound card between Civ IV and iTunes, it does that some times.

Hope this helps.
 
This might be a little out of context but I'd like to know how much you think you can go without Python. Theoretically, one can get rid of Python altogether, except may be the interface screens and pop-ups. I am asking as the previous few errors reported would have been compile time errors if everything is implemented in C++.
 
This might be a little out of context but I'd like to know how much you think you can go without Python. Theoretically, one can get rid of Python altogether, except may be the interface screens and pop-ups. I am asking as the previous few errors reported would have been compile time errors if everything is implemented in C++.

Yeah, its a point I've thought about quite a bit. Way way back I predicted that python would eventually become obsolete (outside of the interface) for exactly the reasons you mentioned.

But I think there is a use for an easy to use scripting language. C++ is hard to troubleshoot and write, but once its working it works beautifully. Python is quick and easy, but its slow. I won't rehash the whole SpeedMod and BtS story here, most people probably know it. But I think it has its place.

For me the perfect marriage of the two is a C++ engine that drops to python only when nessesary. That way I can write in python when that works better, but if Im not using python we don't waste cycles going out to check it. Which is what the spell system does, if we attach a python result to a spell it runs it, if there isnt one it doesn't even try.

I also like the python seperation for those that want to mod on the FfH engine for 2 reasons:

1. It makes it very easy for those that don't want to mess with the SDK to make up their own spells and functions.

2. I dont want to "hard code" anything in the SDK. With 0.23 I moved a lot of stuff into the SDK for performance. But that means there are hard coded FfH names in the SDK, which is fine unless you delete the "Water Walking" promotion and the game will start crashing. So Im doing things the right way this time, thats means functions and attributes in the SDK and anything FfH specific in python.
 
Thanks a lot Kael. This was educational. The reason I am asking is that I might become one of those who mod on the FfH engine. But I want to mess with the SDK. I am more familiar with C++ than python.

I am very interested in knowing how you get things going. I already owe it to you for learning a lot about modding through your articles all around the forum. So thanks again man and keep up the good work.
 
Back
Top Bottom