A full fledged tutorial does not yet exist for how to make a scenario for FfH2, AFAIK.
But here are the basics that I figured out on my own. BUT BEFORE YOU DO ANY MODDING, BE SURE TO BACK UP YOUR FILES! Sometimes while fiddling around with xml and python files you can inadvertantly bork up the game. I've done it several times, and it is always nice to have the original files to fall back on again.
Anyway, additions to the following files make up a bare bones scenario:
1. A World Builder save game file
To follow the format used for FfH2 scenarios, save the WB file in the Assets/XML/Scenarios folder. This is where the other official scenario WB saves reside.
2. ScenarioFunctions.py in the Assets/python folder. This python file has all of the python functions that have been exposed to the scenario system. It contains the more commonly used python calls for things like onTurn and onUnitKilled. If you look at this file, you will see that after each "def BlahBlah:" the code looks for the specific scenario by WB save name and then executes scenario specific code chunks. For your scenario though, be sure to use the condition
Code:
if gc.getGame().isOption(GameOptionTypes.GAMEOPTION_WB_EXTRA):
3. CIV4EventTriggerInfos.XML, CIV4EventInfos.XML, and CVRandomEventInterface.py are the three files that work together to make custom events for your scenario. If you search in the regular forums, you can find lots of threads about how to design events. generally speaking, however, CIV4EventTriggerInfos.XMLdefines the triggering conditions and what the choices will be; CIV4EventInfos.XML defines the choices themselves and what happens if you choose them; and CVRandomEventInterface.py can contain python code chunks that executed by the individual choices. Generally, the XML files have options to make common things happen, but if the thing you want isn't available in the "pre-packaged" XML, you can have an event trigger a custom python snippet. Also, keep in mind that scripted events wil likely be triggered by a condition contained in the ScenarioFunctions.py file. Random events, can just be defined by the three above.
4. CIV4GameText.XML contains all of the text entries for interface items and help. The previous files have references to entries in this file, and the CIV4GameText.XML is where you put all the "texty" things. I call this the "flavor file," because it is where you put all of the creative writing!
5. If you want to be really hardcore, you can hack into the CvEspionageAdvisor.py file, which is what the FfH2 team re-purposed to act as the scenario selector screen. (Pretty sneaky, guys!) I figured out how to add in my scenario so that it shows up as a choice on the screen, and launches correctly.
That, in a nutshell, is it!
Good luck with your scenario design!