PDA

View Full Version : [Rewrite] For those not on 2.0 timescale: Making events occur when you want them to



FactionHeir
05-07-2007, 12:09
Hello.
My original tutorial (https://forums.totalwar.org/vb/showthread.php?t=74279) is found in the citadel since about the time M2TW was released, but I figured I should repost it in this part of the forum where people actually look for modding tutorials.

As such, find a slightly modified version of it here:

Introduction:
Have you ever been frustrated at the way turns to years is handled in M2TW, leaving your original royal family still reigning over your lands when the mongols invade or even when the black plague hits?
Do you find it unrealistic how characters age by 0.5 years every winter but each turn makes 2 years pass?
Have you thus changed your timescale to another value (i.e. 0.5 or 1.0 or any other) for more immersion factor?
Have you wondered or been annoyed that this change then made mongols, timurids and all the other late game goodies never appear or appear when you already conquered the world?
Or do you simply want to make things happen when you want them to?
If so, this tutorial is for you.

Please note that this only has an effect on new campaigns, not currently running ones due to the nature of the files involved

The method:
For this purpose, you want to be looking at the following files, that are found in your imperial_campaign folder, where your descr_strat.txt is also found.
The files you need to change are the following:
descr_events.txt
campaign_script.txt
desc_mercenaries.txt

Note that all of these are read-only, so to fix that, just right-click, properties, uncheck read-only.

Each of these files controls a different aspect of the events. The descr_events.txt is the main culprit and decides when what happens. The campaign script is mainly for when the actual mongol/timurid invasions occur and their waves, and descr_mercenaries controls when you get to hire certain mercenaries.

descr_events.txt
You will find a lot of words and numbers in that file. The numbers after the word "date" mean when those events appear.
Note that date here refers to years, not turns. That means if you play under timescale 2.0 (the default), those dates mean [turns played]/2 and for timescale 1.0 means [turns played].
Sometimes there is a second date given: this is the last date that this event will possibly occur (boundary)
That is really the interesting part as you can modify those numbers to fit your needs and thus determine when you want which events to occur!

Example:


event historic mongols_invasion_warn
date 128 144

This means that you get the mongol invasion warning (not the actual invasion) after playing 128 to 144 years. That on default timescale means 64 to 72 turns. If you were playing on timescale 0.5, you'd have to play 256 to 288 turns, which is probably never.

Thus, if you play on 0.5 for instance, you want it to look like this:


event historic mongols_invasion_warn
date 32 36


If you play on 1.0, like this:


event historic mongols_invasion_warn
date 64 72


Note you can use any numbers there really and can make them appear wherever you want. Just keep in mind that the number is in years passed, not turns played and you need to use the appropriate conversion factor if any.

campaign_script.txt
This file controls when after the mongol_invasion_warn (or timurid warn) the actual invasion occurs. The format is the same as above, so date means years. As you can see, the first batch of mongols will invade:


event counter mongols_invasion
date 4 8

4 to 8 years after the warn event occurs. Thus, if you play on 0.5 timescale, that is 8 to 16 years after the warning. To change this, do as above:

For 0.5:


event counter mongols_invasion
date 1 2

For 1.0:


event counter mongols_invasion
date 2 4

Or again, any number you wish. For extra challenge you'd want to have them all appear 1 turn away from each other. Note that you not only change this single counter in this file but need to change all occurences of the various dates. The simplest way to do this is to continuously search for the word "date" and then change the numbers accordingly.

descr_mercenaries.txt
When you look at this file, you may feel slightly intimidated by the structure. It is fairly simple however, don't worry. Basically, you can see several things of importance. Some mercs become available as soon as gunpowder is developed. Those have the following tag:


events { gunpowder_discovered }

Then some mercenaries are only available at certain times:


unit Mercenary Pavise Crossbowmen exp 0 cost 930 replenish 0.04 - 0.13 max 2 initial 0 start_year 1250 end_year 1450

Which means this unit becomes available (i.e. starts pooling) at year 1250 and will no longer be available at 1450. Note that it refers to the game year, not years played.
Considering the default start year is 1080 and the default timescale is 2.0, 1250 for instance means 85 turns played. So if you are playing on timescale 1.0 for instance, you want to change the above to this:



unit Mercenary Pavise Crossbowmen exp 0 cost 930 replenish 0.04 - 0.13 max 2 initial 0 start_year 1165 end_year 1265

Note that you simply add the turn to year conversion onto 1080 to give the desired year number.
Of course you might not even want mercenaries to disappear, so in this case simply delete that part of the code to make it look like this:



unit Mercenary Pavise Crossbowmen exp 0 cost 930 replenish 0.04 - 0.13 max 2 initial 0 start_year 1250

Or you might want them to appear when the game starts, in which case you can also delete the start_year similar to the end_year.

Further, you don't have to make it historical and as such you could just set the year you want them to appear. The game doesn't mind either way.

Notes:
I hope you enjoyed the more detailed rewrite of my original tutorial and if you have any questions or problems with this tutorial, please let me know by posting here or PMing me.

If you are too lazy to make those changes, I am willing to send you my personal copy (for timescale 1.0) which is more modified than the above but fun to play. In that case PM me your email address so I can send it to you.

TeutonicKnight
05-09-2007, 14:40
FactionHeir, can I change this and have it affect a current game? Or will it only kick in on a new game?

FactionHeir
05-09-2007, 19:02
Those changes will sadly only affect a new game, not a running one.

[edit]
Updated first post to reflect this

Iavorios
05-15-2007, 13:12
I have 1.02 and gunpowder event is in 210-220 not like in 1.1 where is 160-170 or somthing like that. Did any one have the same poblem?

Lusted
05-15-2007, 13:36
Yeah CA changed the date gunpwoder happens in 1.2.

Iavorios
05-17-2007, 15:25
Well i doesnt bother me at all. I like killing things whithout gunpowder anyway. That is the good thing about the medieval times. Otherways way playng the Medieval?

Captain Pugwash
08-20-2007, 12:04
can you create a second wave of mogols say 20 years after the first wave playing on the basic turn basis?

FactionHeir
08-23-2007, 18:49
Yes you could.

All you'd have to do is create a new event in the events file and then copy the exisiting mongol invasion in the campaign script and do some minor modifications to fit to your new event and other factors.

Thats outside the scope of this particular tutorial though. Alpaca wrote something on the camapign script file a while back which you can read for details.

Albion Adrien
05-03-2010, 16:26
Sorry to bump an old topic, but would I be right in just assuming you divide all the numbers by 4 seeing as you're also dividing the turn length by 4?