• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
It is time to make a separate thread for my Small Improvement Pack (SIP) for CDCP and also to anonce my next project - Enhanced Improvement Pack (EIP). Both of them are and will be fully compatable with latest Armageddon patch and latest version CDCP. I'll not make them compatible with any other mods, but all my changes will be well documented to help anyone who have knowleage and desire to import/use them into/with other mods.

What are these mods about?
Gormadoc's CDCP mod is focused at fixing of all possible to fix bugs with minimal changes to vanilla files and PI concept of the game and this is why I and many other people love and use CDCP. This decision puts strict limits of what and how can be fixed and leaves a room for Small Improvement Pack.
In SIP I'll try to be as close as possible to original HOI and to latest CDCP but will not limit myself so hard in changes to game files. The main difference from CDCP is that I use add_corps commands to move leaders from one country to another to preserve all their new traits, expirience and battle history and also as workaround for non-working wakeleader command. To make these changes as transperent as possible to the user I created an off-map contry where to send temporary these leaders. Currently SIP is focused on fixing of "no leaders after CHI release" and wakeleader bugs + some tweaks for CHI AI when CHI is Japan puppet. All wakeleader commands (and leaders) are fixed and CHI/Warlords states will have their leaders if puppeted by Japan. Also I move all Vichy leaders from France to Vichy after the fall of France. Doing this I came into other ideas to improvements but they are too big to be implemented in SIP, so I decide to make them in a separate mod:
Enhanced Improvement Pack (EIP) . In EIP I'll allow myself to do even more changes in the original game files (mostly some new events for moving leaders), but again I'll not go too far from original HOI2 DDA concept. My first ideas for EIP are to move some CHI leaders to Warlords States (they have very few leaders - mostly russians) if this option is selected by Japan and to sleep all russian and western leaders they have. Also I'll move Warlords leaders to CHI if their countries are inherited by events into CHI. May be some tweaks to their AI files to make them better puppets will be implemented too.

This left out because of the complexity of "No leaders after release" bug: :(
The other BIG change from SIP will be a workaround for "no leaders after release" for ALL countries in the game. They can be annexed and released as many times as you want and will ALWAYS have their leaders available after that (no need to save/reload).
I decided to release my workaround for "No leaders after release" for all countries as a separate fix - General(s) Mega FIX (GMF). This fix is compatible with original DD:A 1.2 (and may be with older versions too) and it's propose is to be easy to implement into other mods. There are only one changed file (ai_revolters.txt) and one new (Duplicated leaders.csv) in this fix. I also fixed missing free resourses after second release in GMF.


For those of you who are curious about how all this starts and what are these bugs/workarounds - please take a look at my original Easy fixes and workarounds for “No leaders after release” bug and broken wakeleader thread. I posted all new things I found/know about these two bugs here and here.

So here is the thread where you can ask questions, make proposals, add requests and report problems/bugs in SIP, EIP and GMF.

PS I really wanted to call EIP - General(s) Improvement Pack (GIP), but this acronym is already taken by other mod :mad: :p
 
Last edited:

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
Small Improvement Pack for CDCP

Small Improvement Pack (SIP) for CDCP

The bigest difference from CDCP is that I'll use add_corps commands to move leaders from one country to another and this way to preserve all new traits, experience and battle history they gained so far in game. To make this process as transparent as possible for the player I decided to add an off-map country where to store temporary leaders I want to save and activate later. This country has no name and flags and is well hidden in Africa, so it presence in-game will be nearly unnoticed by the player.

I made an easy to use installation program with latest CDCP and SIP versions + backup and uninstall options.
CDCP_0.55a_and_SIP_0.03.exe (8.6 MB)
A list with all changes is included into the archive.

Installation notes:​

1. Install Armageddon + patch 1.2 (checksum VBVL)
2. Install CDCP 0.55 (checksum ALFX)
3. Install SIP 0.03 (checksum YLSX)
(steps 2 and 3 can be combined using my installer)

!!!NOTE for DAIM users!!!
1. Install Armageddon + patch 1.2 (checksum VBVL)
2. Install CDCP 0.55 (checksum ALFX)
3. Install SIP 0.03 (checksum YLSX)
4. Install DAIM without the extra events
5. Edit all scenario files by adding at the end:
include = "scenarios\1936\u00.inc"
6. Delete the folowing line from nationalist_china.txt (event 3819):
command = { type = ai which = "switch/chi_JAP_puppet.ai" }
(steps 2 and 3 can be combined using my installer)

History:​
Change log for the next version of SIP:
Note! Some of these fixes/changes may fall off if they are included into CDCP.
...


SIP 0.03 for CDCP 0.55a
\ai\switch\chi_JAP_puppet.ai (SIP)
- removed wrong "escort = 0" entry - SIP error
Cosmetic:
Added pop-up info message for JSGME (SIP.jsgme).


Previous versions:
SIP 0.02a for CDCP 0.54
- event names for all SIP events was changed to AI_EVENT
- removed sleepminister commands for Chiang Kai-shek and his team in event 3814 - they already exist in event 3819 and also caused CTD sometimes
- added sleepleader commands for Zhang Xueliang and Yang Hucheng in event 3819 - they were too contumacious to be Japan puppets
- fixed an error in event 90 - Zhang Xuezhong was slept instead of Zhang Xueliang

Download CDCP_0.54_and_SIP_0.02a.exe (2.28 MB) at FileFront
Download SIP_0.02a_for_CDCP_0.54.exe (315 KB) at FileFront
Download SIP_0.02a_for_CDCP_0.54.exe (315 KB) at RapidShare
Download SIP_0.02a_for_CDCP_0.54.rar (206 KB) at FileFront
Download SIP_0.02a_for_CDCP_0.54.rar (206 KB) at RapidShare


SIP 0.02 for CDCP 0.53
- NEW friendly towards Japan AI for CHI after release!!! Now Japan will recieve for free CHI's Blue Prints and can make good trade deals with its puppet. Also CHI will not garrison its borders with Japan, but with potential Japan enemies and will not send spies to Japan.
- Alexander von Falkenhausen and Claire Chennault tech teams are slept after release of CHI
- Chiang Kai-Shek (minister and tech team) is slept in event 3819.
- changed start years for CHI ministers 52088 and 52030 to 1936 so CHI to have CoS and HoG if was early puppeted by Japan
- added Khryukin and Chennault for CHI (they used broken wakeleader command)
- added Batov and Lukacz for Rep. Spain (they used broken wakeleader command)

Download SIP_0.02_for_CDCP_0.53.rar (211 KB)

SIP 0.01a for CDCP 0.52 - quick fix - non critical
- sleepleader commands for all Anschluss leaders (to remove them from the game memory in case there is no Anschluss) in event 2020 option_b and in event 2100 option_b and option_c
Download SIP_0.01a_for_CDCP_0.52.rar (152 KB)

SIP 0.01 for CDCP 0.52
- Fixed Anschluss leaders for Germany
- Vlassov is now available for Germany after Molotov-Ribbentrop Pact
- Fixed missing leaders for CHI, CYN, CGX, CSX and CXB after puppeting from Japan. They preserve their new trait and experience.
- Move deflected French leaders to Vichy after the fall of France to preserve their experience and traits gained during the battles with Germany. Their duplicates from Vichy leaders file are deleted.

Download SIP_0.01_for_CDCP_0.52.rar (151 KB)
 
Last edited:

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
Enhanced Improvement Pack

Enhanced Improvement Pack (EIP)

This project is currently on hold until I collect some more good ideas what to include in it.

In this mod I'll add more extras then in SIP and will allow to me to do more changes to game files if they are needed. This mod will remain fully compatible with Armageddon 1.2 + last version of CDCP. First version will be soon available, but you still have time to make suggestions or requests what do you want to see into it.

Change Log:

EIP 0.01

All features of SIP 0.03 +



**********

To do list:
1. Make all events in ai_revolters.txt persistent.
2. Add dissent to most of the countries when released as puppets (currently only few of them get this hit)
3. ....
 
Last edited:

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
General(s) Mega FIX

General(s) Mega FIX (GMF)

This project was abandoned because of the complexity of "No leaders after release bug" and the random results I recieved in different situations from all the workarounds I knew and found for this bug. Sorry for that. :(
If anyone is interested from my findings and test files, then he can post here or send me a PM with his questions or an e-mail to send him my files.


This fix is free for anyone to use. If you want to include it or part of it into your public mod please let me know about this by posting here. Thank you! :)

General(s) Mega FIX (GMF) is not a mod. It is just a fix for one of the most old and also most annoying bugs in HOI2 and all its expansions/patches - the famous "No leaders after release". There were couple of workarounds for this bug, but none of them was universal or transparent for the gamer. This fix will solve the bug in (nearly) all possible situations and for all countries in the game. You can annex and release a country as many times as you want and this country will always have its leaders back. No need for save/reload workaround or other tricks, it just works. The only difference you'll see from vanilla is that at every scenario start you'll receive numerous "Our leader has died" messages. This can and will be fixed in my EIP mod + many other fixes/improvements and I would recommend you to use it instead of these 2 files. GMF is mostly for other modders to help them to implement the fix into their mods or for people that want to play vanilla DD:A. The fix is tested with HOI2 Doomsday Armageddon 1.2, but it should be compatible and with older patches/versions of the game. GMF also includes fix for the free resources and dissent that many countries receive after release. Original events doing that can be fired only once in a game so after a second release the country wouldn't get them. I resolve that by including them into my new events, so they will be applied after every release of that country. I left 5 of the original ai_revolters.txt events unchanged to keep GMF as close as possible to vanilla, but in EIP I'll change them too to make them possible to fire after every release.

FAQ:

Q: What is this "No leaders after release" bug?
A: Shortly the bug is that after annex leaders of annexed country remains into game memory until next game restart or save/reload cycle and because of this if we release this country it will be without leaders exept these KIA, slept by events or dormant. For countries that are annexed and released with events we have two possible solutions:
1. Sleep all leaders before annexation - this is used in CDCP
2. Move all leaders temporary to other country before anexation and move them back after release. This way all expirience, new traits and battle history will be preserved. This is used in SIP for Chinese leaders when after release by Japan and for French leaders moved to Vichy.
For all other countries there is only one solution - annex, save, reload, release. This "workaround" isn't very user-friendly and in many cases is not applicable (as multiplayer games, countries released by AI) and even expirienced players can forget to do it, so we have to fix this! :D

Q: How to install GMF?
A: It is very simple:
1. Copy "Duplicate leaders.csv" into your db\leaders\ folder
2. Make a back-up copy of the original ai_revolters.txt (from db\events folder)
3. Copy GMF ai_revolters.txt into db\events folder replacing the original one.
4. Play the game. :)

Q: How to uninstall?
A: Again very simple to do:
1. Delete "Duplicate leaders.csv" from your db\leaders\ folder
2. Restore the original ai_revolters.txt into db\events folder from your back-up

Q: You use a lot of new events. Doesn't this slow down my game?
A: Yes, in this mod I use over 380 new events, but they are checked only once in 60 days and besides this I removed ~ 100 original events that were checked every day. In result my test games with and without GMF gives les then 30 sec difference in time for 6 game months on my very old PC (and this is the worse test case because in this time were executed ~8000 sleepleader commands, which happens only once - at scenario start).

Q: 60 days?! Isn't this to much?
A: Yes and No. These events will fire anytime between 1 and 60 days after release. Even if an event fires on the 60th day it is not a problem, because the bonuses that it gives to minors are not so important (these minors will be minors with or without these bonuses). Same may apply and for the dissent hit – it rarely can do anything to an AI country.

Q: Well, why not use bigger then 60 days offset in this case?
A: Because after ~60 days the released country may have its first new units ready and we do not want to see them lead by twins (after release there is possibility all leaders - original and duplicates, to be available at the same time).

Q: OK. Is there even a theoretical chance that a country will be without leaders after release with GMF installed?
A: Yes. There is one because of the relatively big offset I use. Here is the situation: if a country release happens after save/reload or this country was never released before then it will have all leaders available. If this country gets annexed before my event fires (to sleep half of them) and released in the same game session (no save/reload), then after the second release this country will be without any leaders. Because this is nearly impossible to happen in a regular game I'll keep my events offset at 60 days. If any one thinks that this can be a problem in his games, then he can change the offset for each event to less then 60 days.


Change Log

GMF 0.01 for DD:A 1.2

db\leaders\
-Duplicate leaders.csv - a new file containing duplicates all original leaders (ID + 1000000) from DDA 1.2. Leaders from fantasy Arm. scenarios are not and will not be included!

db\events
- ai_revolters.txt - added new events needed to sleep duplicated leaders (starting from event ID 1000010 to event 1000391). Most of the original events are imported into these new events so bonuses/dissent to be applied after every release. 5 events are left unchanged to keep GMF most compatible with vanilla DD:A and other mods.
 
Last edited:

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
To fix "No leaders after release bug" for all countries in EIP, I'll use modification of the workaround I found few months ago. I'm not the only one who found this workaround as it seems from Kristof73's post here. :)

What is this "No leaders after release" bug?
Shortly the bug is that after annex leaders of annexed country remains into game memory until next game restart or save/reload cycle and because of this if we release this country it will be without leaders exept these KIA, slept by events or dormant. For countries that are annexed and released with events we have two possible solutions:
1. Sleep all leaders before annexation - this is used in CDCP
2. Move all leaders temporary to other country before anexation and move them back after release. This way all expirience, new traits and battle history will be preserved. This is used in SIP for Chinese leaders when after release by Japan and for French leaders moved to Vichy.
For all other countries there is only one solution - annex, save, reload, release. This "workaround" isn't very user-friendly and in many cases is not applicable (as multiplayer games, countries released by AI) and even expirienced players can forget to do it, so we have to fix this! :D

How this will be fixed?
Plan A:
I will create a new CSV file with copies of all leaders, but with different ID so at the begining of the scenario every country will have all leaders x2. I can avoid this by adding all duplicates into "dormant_leaders" list for each country, but I still do not want to change so many vanilla files, so I'll use an event to sleep all duplicates exept 1 - he is special :p. Actually there will be 2 special leaders for each country. Their start years will be something like 1999 and they will be used instead of flags. They are needed if someone annex a country, then save, reload and release - in this case that country will have again all leaders x2 (original and duplicates). So I'll check are these 2 special leaders present in the game at the same time - if they do, I'll fire the event that sleeps again all duplicates. The event will be something like this:
Code:
event = {
	id = XXXXXXX
	random = no 
             persistent = yes
	country = XXX
	
	trigger = {
		AND = {
				leader = XXXXX1 # "Special" leader 1
				leader = XXXXX2 # "Special" leader 2
			}
	}

	name = "AI_EVENT"
	style = 0	
	
	date = { day = 1 month = january year = 1936 }
	offset = 30
	deathdate = { day = 29 month = december year = 1999 }

	action_a = { 
		command = { type = sleepleader which = .........} #all duplicates
		command = { type = sleepleader which = XXXXX2 } #Special leader 2
	}
}

The success of this workaround depends on the functionallity of "leader = xxxx" trigger. If this trigger reads leaders left into game memory after annexation, then this will not work well in case of annex/release in the same game session (it will fire).
I'll test this soon and if I'm not satisfied from the results, I'll use other ways to fix this.

EDIT:
Well, my worse suggestions came true - "leader = XXXX" trigger returns TRUE after annex. :mad:


Plan B:
It's time for plan B. I give up the idea to use "leader = XXXX" as trigger for sleepleaders events and will use 3 flags for each country instead - 1 local (which will be automaticaly deleted on annex - I hope) and 2 global - 1 for each of sleepleader events. First event will be called at scenario start to set the flags and to delete duplicates. The second event will fire only if the local_flag is lost (i.e. after annexation), will delete original leaders and will reset flags so first event to be able to fire again (but only if local_flag is lost, so first this country must be annexed again). This should work in any situation even on multiple annex/release cycles. Downside of this solution is that I will use a lot of new events (2 for each country) and this may slow down game speed. To resolve this I'll use bigger offset (like 45-60 days) between every event check. Actually there is no need for smaller offset because after release countries are without armies, so these duplicated leaders have no impact in the game. :)

************************************************

Plan B works perfectly! :cool:
After 10 annex/release cycles with and without save/reload my test country always has its leaders. It's time to implement it in the EIP. :D

This is an example of my new events:
Code:
event = {
	id = 10000002
	random = no
	country = CGX
	persistent = no

	date = { day = 1 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1999 }


	name = "set flag 2"
	style = 0	
	
	date = { day = 1 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1999 }

	name = "set flag 2"
	desc = "set flag 2"
	style = 0
	picture = "set flag 2"

	action_a = {
		name = "set flag 2"
		command = { type = setflag which = 2 }
	}
}


event = {
	id = 950000
	random = no 
	country = CGX
	persistent =yes
	
	trigger = {
		not = {local_flag = active}
		flag = 2
	}

	name = "Duplicates"
	style = 0	
	
	date = { day = 3 month = january year = 1936 }
	offset = [COLOR=DarkOrange]60[/COLOR] # I think that this value is good
	deathdate = { day = 29 month = december year = 1999 }

	action_a = { 
		command = { type = setflag which = 1 }
		command = { type = clrflag which = 2 }
		command = { type = local_setflag which = active }
		command = { type = sleepleader which = 502100 }
		command = { type = sleepleader which = 502101 }
		command = { type = sleepleader which = 502102 }
		command = { type = sleepleader which = 502103 }
		command = { type = sleepleader which = 502104 }
		command = { type = sleepleader which = 502105 }
		command = { type = sleepleader which = 502106 }
		command = { type = sleepleader which = 502107 }
		command = { type = sleepleader which = 502108 }
		command = { type = sleepleader which = 502109 }
		command = { type = sleepleader which = 502110 }
		command = { type = sleepleader which = 502111 }
		command = { type = sleepleader which = 502112 }
		command = { type = sleepleader which = 502113 }
		command = { type = sleepleader which = 502114 }
		command = { type = sleepleader which = 502115 }
		command = { type = sleepleader which = 502116 }
		command = { type = sleepleader which = 502117 }
		command = { type = sleepleader which = 502118 }
		command = { type = sleepleader which = 502119 }
		command = { type = sleepleader which = 502120 }
		command = { type = sleepleader which = 502121 }
	}
}

event = {
	id = 950001
	random = no 
	country = CGX
	persistent =yes
	
	trigger = {
		not = {local_flag = active}
		flag = 1
	}

	name = "Original"
	style = 0	
	
	date = { day = 3 month = january year = 1936 }
	offset = 60
	deathdate = { day = 29 month = december year = 1999 }

	action_a = { 
		command = { type = setflag which = 2 }
		command = { type = clrflag which = 1 }
		command = { type = local_setflag which = active }
		command = { type = sleepleader which = 502000 }
		command = { type = sleepleader which = 502001 }
		command = { type = sleepleader which = 502002 }
		command = { type = sleepleader which = 502003 }
		command = { type = sleepleader which = 502004 }
		command = { type = sleepleader which = 502005 }
		command = { type = sleepleader which = 502006 }
		command = { type = sleepleader which = 502007 }
		command = { type = sleepleader which = 502008 }
		command = { type = sleepleader which = 502009 }
		command = { type = sleepleader which = 502010 }
		command = { type = sleepleader which = 502011 }
		command = { type = sleepleader which = 502012 }
		command = { type = sleepleader which = 502013 }
		command = { type = sleepleader which = 502014 }
		command = { type = sleepleader which = 502015 }
		command = { type = sleepleader which = 502016 }
		command = { type = sleepleader which = 502017 }
		command = { type = sleepleader which = 502018 }
		command = { type = sleepleader which = 502019 }
		command = { type = sleepleader which = 502020 }
		command = { type = sleepleader which = 502021 }
	}
}
And this is my new leaders file:
Code:
Belov;502100;CGX;1930;1990;1990;1990;3;2;256;0;0;5;0;L502000;1930;1960;x
Chen Jitang;502101;CGX;1930;1930;1930;1938;0;2;513;1;0;1;0;L50031;1930;1944;x
Kravelkin;502102;CGX;1930;1990;1990;1990;3;2;4;0;0;5;0;L502002;1930;1960;x
Li Jishen;502103;CGX;1930;1930;1930;1990;1;3;16;1;0;5;0;L502003;1930;1960;x
Li Zongren;502104;CGX;1930;1939;1941;1944;1;4;4;3;0;4;0;L50186;1930;1960;x
Golukjin;502105;CGX;1930;1930;1990;1990;2;2;0;0;0;5;0;L502005;1930;1960;x
Bai Chongxi;502106;CGX;1930;1939;1941;1990;1;4;16;2;0;3;0;L50247;1930;1960;x
Shermentcheff;502107;CGX;1930;1930;1990;1990;2;2;4;0;0;4;0;L502007;1930;1960;x
Tschevelkov;502108;CGX;1930;1990;1990;1990;3;2;0;0;0;5;0;L502008;1930;1960;x
von Appel;502109;CGX;1930;1942;1990;1990;3;3;128;1;0;5;0;L502009;1930;1960;x
Yu Hanmou;502110;CGX;1930;1939;1990;1990;2;2;0;1;0;4;0;L502010;1930;1960;x
Belov;502111;CGX;1930;1990;1990;1990;3;2;0;0;0;5;1;L502000;1930;1960;x
Dranilov;502112;CGX;1930;1990;1990;1990;3;2;0;0;0;5;1;L502012;1930;1960;x
Ertelkin;502113;CGX;1930;1930;1990;1990;2;3;8192;1;0;5;1;L502013;1930;1960;x
Bai Chongxi;502114;CGX;1930;1939;1941;1990;1;2;0;1;0;3;1;L50247;1930;1960;x
Kulchin;502115;CGX;1930;1990;1990;1990;3;2;0;0;0;5;1;L502015;1930;1960;x
Beryakin;502116;CGX;1930;1990;1990;1990;3;2;0;0;0;5;2;L502016;1930;1960;x
Khripin;502117;CGX;1930;1990;1990;1990;3;2;4096;0;0;5;2;L502017;1930;1960;x
Li Zongren;502118;CGX;1930;1930;1941;1990;1;2;0;1;0;4;2;L50186;1930;1960;x
Lindemann;502119;CGX;1930;1930;1990;1990;2;4;10;0;0;5;0;L502019;1930;1940;x
Hoffmann;502120;CGX;1940;1940;1990;1990;2;4;516;1;0;5;0;L502020;1930;1944;x
Vorbrugg;502121;CGX;1930;1930;1990;1990;2;4;129;1;0;5;0;L502021;1930;1960;x


There are couple of ways to implement it in the game and some comments will be highly appreciated:

I. Minimal changes to other files - one new and one modified file:
1. Create e new .csv file with duplicated leaders for all countries
2. Copy all new events needed for sleep duplicated leaders in one existing vanilla events file (like japanese_fascism.txt for example)
3. Create an event that will fire on the 1st day of the campain to initialize all needed flags

II. 2 new files, some changes to all scenario files
1. Create e new .csv file with duplicated leaders for all countries
2. Create a separate file for new events
3. Include my new events file in all scenario files along with initial flags

III. Many files with minimal changes + 1(2) new files
1. Create e new .csv file with duplicated leaders for all countries
2. Create a separate file for new events
or
2. Copy all new events needed for sleep duplicated leaders in one existing vanilla events file (like japanese_fascism.txt for example)
3. Edit some (or all?) inc files to add in dormant_leaders list all duplicates

IV. Combination of the above. In my personal mod I'll go with dormant_leaders option for the countries I play most (majors and some interesting minors) to avoid numerious "Our leader has died" messages when first event fires. I preffer to use separate file for my events and will include it in all scenario files + the initial flags.

There is one problem - in some original events are used sleep leader commands. I can ignore them completely (most of these events are not so important or are for majors which rarely get released), can add linies with duplicated leaders into (some or in all of) these events, or can make duplicated events with both leaders (original and duplicate) + an event that will sleep all original events at scenario start.

What do you think? Which option is most acceptable for you guys?

**********************************************************

Because of the many responces in this tread :( I lag a little behind in EIP schedule. Nevertheless version 0.01 of EIP is very close! :cool:

I'm ready with duplicate leaders file (it's HUGE :D) and with all events that sleep leaders to avoid duplicates and original to be active at the same time (more then 300 events in 1.6 MB TXT file :rofl: ) in the game. Last night I ran a couple of test to find out is there any serious slow-down of the game because of these new events and I'm very optimistic from the results. There is slow down, but not so huge as I expected. IIRC on my ancient computer 6 game months takes ~ 20 seconds more when offset is 60 days and ~ 40 seconds more when offset is 1 day compared with no EIP. This is in 1936 GC arm. 1.2 + CDCP 0.53, extreme game speed.

Taking in consideration all posts and opinions from future EIP users in this thread so far :rofl:, I decide to do it my way :p:

1. New file - Duplicate leaders.csv (~900KB)
2. One replaced file - ai_revolters.txt ; I'll incorporate all bonuces from this file into my already created events for each country, so these bonuses to be given even after multiple annex/releases (currently they are applied only once - I didn't know about this bug before Kristof73's post in CDCP thread where he posted and a workaround)

This version of EIP should be compatible with most of the mods out there. What is left to do before release is to incorporate ai_revolters.txt events into mine and to do some more testing.

Here is a game log from one of my tests as Albania:
Code:
        [COLOR=DarkOrange]name = "0:00 January 2, 1936 : Germany had Flag initializations ." [/COLOR] - This event sets a flag for all countries to enable "Delete duplicate leaders." events to each of them.
        name = "0:00 January 4, 1936 : Republican Spain had Delete duplicate leaders ." 
        name = "0:00 January 4, 1936 : Iraq had Delete duplicate leaders ." 
        name = "0:00 January 4, 1936 : Honduras had Delete duplicate leaders ." 
        name = "0:00 January 7, 1936 : Norway had Delete duplicate leaders ." 
        name = "0:00 January 8, 1936 : France had Delete duplicate leaders ." 
        name = "0:00 January 10, 1936 : USA had Delete duplicate leaders ." 
        name = "0:00 January 11, 1936 : Xibei San Ma had Delete duplicate leaders ." 
        name = "0:00 January 12, 1936 : Austria had Delete duplicate leaders ." 
        name = "0:00 January 12, 1936 : Denmark had Delete duplicate leaders ." 
        name = "0:00 January 13, 1936 : El Salvador had Delete duplicate leaders ." 
        name = "0:00 January 14, 1936 : Nicaragua had Delete duplicate leaders ." 
        name = "0:00 January 14, 1936 : Afghanistan had Delete duplicate leaders ." 
        name = "0:00 January 15, 1936 : Cuba had Delete duplicate leaders ." 
        name = "0:00 January 16, 1936 : Sweden had Delete duplicate leaders ." 
        name = "0:00 January 17, 1936 : Shanxi had Delete duplicate leaders ." 
        name = "0:00 January 18, 1936 : Hungary had Delete duplicate leaders ." 
        name = "0:00 January 18, 1936 : Dominican Republic had Delete duplicate leaders ." 
        name = "0:00 January 19, 1936 : Brazil had Delete duplicate leaders ." 
        name = "0:00 January 21, 1936 : Ireland had Delete duplicate leaders ." 
        name = "0:00 January 21, 1936 : South Africa had Delete duplicate leaders ." 
        name = "0:00 January 22, 1936 : Bulgaria had Delete duplicate leaders ." 
        name = "0:00 January 22, 1936 : Paraguay had Delete duplicate leaders ." 
        name = "0:00 January 24, 1936 : New Zealand had Delete duplicate leaders ." 
        name = "0:00 January 24, 1936 : Guatemala had Delete duplicate leaders ." 
        name = "0:00 January 25, 1936 : Yugoslavia had Delete duplicate leaders ." 
        name = "0:00 January 26, 1936 : Ethiopia had Delete duplicate leaders ." 
        name = "0:00 January 27, 1936 : Portugal had Delete duplicate leaders ." 
        name = "0:00 January 28, 1936 : Haiti had Delete duplicate leaders ." 
        name = "0:00 January 28, 1936 : Peru had Delete duplicate leaders ." 
        name = "0:00 January 30, 1936 : Italy had Delete duplicate leaders ." 
        name = "0:00 January 30, 1936 : Oman had Delete duplicate leaders ." 
        name = "0:00 February 1, 1936 : Colombia had Delete duplicate leaders ." 
        name = "0:00 February 2, 1936 : Costa Rica had Delete duplicate leaders ." 
        name = "0:00 February 3, 1936 : Canada had Delete duplicate leaders ." 
        name = "0:00 February 3, 1936 : Guangxi Clique had Delete duplicate leaders ." 
        name = "0:00 February 4, 1936 : Bhutan had Delete duplicate leaders ." 
        name = "0:00 February 5, 1936 : Netherlands had Delete duplicate leaders ." 
        name = "0:00 February 5, 1936 : Greece had Delete duplicate leaders ." 
        name = "0:00 February 6, 1936 : Switzerland had Delete duplicate leaders ." 
        name = "0:00 February 7, 1936 : Japan had Delete duplicate leaders ." 
        name = "0:00 February 8, 1936 : United Kingdom had Delete duplicate leaders ." 
        name = "0:00 February 9, 1936 : Venezuela had Delete duplicate leaders ." 
        name = "0:00 February 12, 1936 : Uruguay had Delete duplicate leaders ." 
        name = "0:00 February 12, 1936 : Delete duplicate leaders happened to us." 
        name = "0:00 February 12, 1936 : Agimi has died." 
        name = "0:00 February 12, 1936 : Agolli has died." 
        name = "0:00 February 12, 1936 : Bicaku has died." 
        name = "0:00 February 12, 1936 : Musai has died." 
        name = "0:00 February 12, 1936 : Bushati has died." 
        name = "0:00 February 12, 1936 : Cajupi has died." 
        name = "0:00 February 12, 1936 : Floxhi has died." 
        name = "0:00 February 12, 1936 : Frashлri has died." 
        name = "0:00 February 12, 1936 : Hoxha has died." 
        name = "0:00 February 12, 1936 : Jaxha has died." 
        name = "0:00 February 12, 1936 : Komani has died." 
        name = "0:00 February 12, 1936 : Zog I has died." 
        name = "0:00 February 12, 1936 : Kristo has died." 
        name = "0:00 February 12, 1936 : Malлshova has died." 
        name = "0:00 February 12, 1936 : Moisiu has died." 
        name = "0:00 February 12, 1936 : Mori has died." 
        name = "0:00 February 12, 1936 : Musai has died." 
        name = "0:00 February 12, 1936 : Nergutti has died." 
        name = "0:00 February 12, 1936 : Percy has died." 
        name = "0:00 February 12, 1936 : Pervizi has died." 
        name = "0:00 February 12, 1936 : Shatun has died." 
        name = "0:00 February 12, 1936 : Shehu has died." 
        name = "0:00 February 12, 1936 : Trajce has died." 
        name = "0:00 February 12, 1936 : Ypi has died." 
        name = "0:00 February 12, 1936 : Delvinл has died." 
        name = "0:00 February 12, 1936 : Ghaxa has died." 
        name = "0:00 February 12, 1936 : Kristo has died." 
        name = "0:00 February 12, 1936 : Pakazi has died." 
        name = "0:00 February 12, 1936 : Agolli has died." 
        name = "0:00 February 12, 1936 : Delvinл has died." 
        name = "0:00 February 12, 1936 : Floxhi has died." 
        name = "0:00 February 12, 1936 : Pervizi has died." 
        name = "0:00 February 13, 1936 : Yunnan had Delete duplicate leaders ." 
        name = "0:00 February 14, 1936 : Germany had Delete duplicate leaders ." 
        name = "0:00 February 14, 1936 : Belgium had Delete duplicate leaders ." 
        name = "0:00 February 15, 1936 : Mexico had Delete duplicate leaders ." 
        name = "0:00 February 15, 1936 : Turkey had Delete duplicate leaders ." 
        name = "0:00 February 15, 1936 : Lithuania had Delete duplicate leaders ." 
        name = "0:00 February 15, 1936 : Nepal had Delete duplicate leaders ." 
        name = "0:00 February 16, 1936 : Soviet Union had Delete duplicate leaders ." 
        name = "0:00 February 17, 1936 : Mongolia had Delete duplicate leaders ." 
        name = "0:00 February 19, 1936 : Communist China had Delete duplicate leaders ." 
        name = "0:00 February 20, 1936 : Tannu Tuva had Delete duplicate leaders ." 
        name = "0:00 February 21, 1936 : Australia had Delete duplicate leaders ." 
        name = "0:00 February 22, 1936 : Finland had Delete duplicate leaders ." 
        name = "0:00 February 22, 1936 : Latvia had Delete duplicate leaders ." 
        name = "0:00 February 22, 1936 : Chile had Delete duplicate leaders ." 
        name = "0:00 February 24, 1936 : Ecuador had Delete duplicate leaders ." 
        name = "0:00 February 24, 1936 : Luxemburg had Delete duplicate leaders ." 
        name = "0:00 February 24, 1936 : Persia had Delete duplicate leaders ." 
        name = "0:00 February 25, 1936 : Tibet had Delete duplicate leaders ." 
        name = "0:00 February 25, 1936 : Yemen had Delete duplicate leaders ." 
        name = "0:00 February 26, 1936 : Sinkiang had Delete duplicate leaders ." 
        name = "0:00 February 26, 1936 : Philippines had Delete duplicate leaders ." 
        name = "0:00 February 28, 1936 : Nationalist China had Delete duplicate leaders ." 
        name = "0:00 February 28, 1936 : Saudi Arabia had Delete duplicate leaders ." 
        name = "0:00 February 29, 1936 : Poland had Delete duplicate leaders ." 
        name = "0:00 February 29, 1936 : Argentina had Delete duplicate leaders ." 
        name = "0:00 February 29, 1936 : Panama had Delete duplicate leaders ." 
        name = "0:00 February 30, 1936 : Romania had Delete duplicate leaders ." 
        name = "0:00 February 30, 1936 : Siam had Delete duplicate leaders ." 
        name = "0:00 February 30, 1936 : Manchukuo had Delete duplicate leaders ." 
        name = "0:00 March 1, 1936 : Bolivia had Delete duplicate leaders ." 
        name = "0:00 March 3, 1936 : Estonia had Delete duplicate leaders ." 
        name = "0:00 March 3, 1936 : Liberia had Delete duplicate leaders ."

It was strange for me that these events (same conditions) were not ran in at the same day but executed by the game engine in 2 months. Actually this is good, because do not make a huge load to the system at the same time.


EDIT:
May be I found a way to remove the need of first flag initialization event, but I'll have to check if it will work. My idea is to change trigger conditions for "Delete duplicates" event from:

Code:
	trigger = {
		not = {local_flag = active}
		flag = GER2
	}

TO
	trigger = {
		not = {local_flag = active}
		not= {flag = GER2}
	}
And actions in this event from:
Code:
		command = { type = setflag which = GER1 }
		command = { type = clrflag which = GER2 }
		command = { type = local_setflag which = active }

TO
		command = { type = setflag which = GER1 }
		command = { type = setflag which = GER2 }
		command = { type = local_setflag which = active }

The second event (delete original leaders) actions will be changed from:
Code:
		command = { type = setflag which = GER2 }
		command = { type = clrflag which = GER1 }
		command = { type = local_setflag which = active }
TO

                command = { type = [COLOR=DarkOrange]clrflag[/COLOR] which = GER2 }
		command = { type = clrflag which = GER1 }
		command = { type = local_setflag which = active }

Trigger conditions for it will remain unchanged:
Code:
	trigger = {
		not = {local_flag = active}
		flag = GER1
	}

Looks good "on paper", will see if it will work.
 
Last edited:

Gormadoc

Darkest Hour Developer (Semi-Retired)
19 Badges
Sep 1, 2004
3.765
4
  • Hearts of Iron II: Beta
  • Battle for Bosporus
  • Hearts of Iron IV: La Resistance
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Field Marshal
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV Sign-up
  • Hearts of Iron II: Armageddon
  • 500k Club
  • Semper Fi
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Hearts of Iron III
  • For the Motherland
  • Europa Universalis III Complete
  • Deus Vult
This sounds like excactly what most people have expressed a wish for in many treads over the past couple of years.

You should go and talk with the various mods makers about implementing this fix into their specific mods. I think most people play mods these days.

It should be pretty straight forward to add this to DAIM. The mayor mods like Core, TRP & Stoney road with their own setup will probably require additional tweaking. Atleast TRP has removed some leaders, mostly ones that retired during the 1930'ties.

To make this run in the background i suggest you change the name to AI_EVENT so no log message is created.
 

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
Last changes to trigger conditions works just perfect and there is no more need to initialize flags in a separate event. :cool:
I found yet another thing - if I set events start year before scenario start (say 1930) then all sleepleader events fire on the second day with a lightning speed (all for 4-5 sec)!!! :eek: :D
Tonight I'll incorporate AI_revolters.txt events into mine and may be tomorrow first beta of EIP will be ready. :rolleyes:

Gormadoc, very good idea to change the name to AI_EVENT! I'll do it before release, but first I want to finish my tests. What do you think about offset in these events? Are 60 days too much? IMO offset should be from 30-60 days. No need to be less then 30 days even if we take into account the free resources/IC that some minors gets from AI_revolters.txt events (30-60 days with or without these resources wouldn't make big difference for these countries anyway). More then 60 is may be too much because about this time they will have their first units ready.
 

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
There are 5 different from the others events in the original ai_revolters.txt, that should be treated other ways in EIP:

Code:
#######################################################################

event = {
	id = 15072
	trigger = { 
		NOT = { 
			event = 2032  #does not happen if already set free by GER
		      }
		  }
	random = no

	country = CRO

	name = "AI_EVENT"
	desc = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1999 }

	action_a = {
		name = ""
		command = { type = free_ic value = 3 }
		command = { type = free_energy value = 20 }
		command = { type = free_metal value = 10 }
		# command = { type = free_oil value = 10 }
		command = { type = free_rare_materials value = 5 }
		}
	}

event = {
	id = 15076
	trigger = {  
		ispuppet = USA 
		}

	random = no

	country = USA

	name = "AI_EVENT"
	desc = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1999 }

	action_a = {
		name = ""
		command = { type = dissent value = 10 } #  The resistance & 'The Right to Bear Arms'
		}
	}

event = {
	id = 15077
	trigger = {  
		ispuppet = CAN 
		}

	random = no

	country = CAN

	name = "AI_EVENT"
	desc = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1999 }

	action_a = {
		name = ""
		command = { type = dissent value = 4 } #  The resistance
		}
	}

event = {
	id = 15078
	trigger = {  
		puppet = { country = PHI country = JAP }
		}

	random = no

	country = PHI

	name = "AI_EVENT"
	desc = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1999 }

	action_a = {
		name = ""
		command = { type = dissent value = 5 } #  The resistance
		command = { type = sleepteam which = 6904 } #Douglas MacArthur
		command = { type = sleepleader which = 430043 } # MacArthur
		command = { type = sleepleader which = 430044 } # Wainwright

		}
	}

event = {
	id = 15079
	trigger = {  
		puppet = { country = POL country = GER }
		}

	random = no

	country = POL

	name = "AI_EVENT"
	desc = "AI_EVENT"
	style = 0

	date = { day = 0 month = january year = 1936 }
	offset = 1
	deathdate = { day = 29 month = december year = 1999 }

	action_a = {
		name = ""
		command = { type = dissent value = 5 } #  The resistance
		}
	}


The rest of the event are for countries that do not exist at the start for all scenarios and I just move their commands into my new events.
This 5 are for countries that exist in 1 or more scenarios and if I import them directly into my events they will be executed at scenario start.

I can leave these events as they are - and this will work, but they will fire only once in the game and I don't like that (when I do something I want it to be done right! :p ). So the possible solutions:

USA, CAN and POL dissent commands will be moved into my new events for these countries. At scenario start my events will fire to delete duplicates, but also they will add this dissent. To solve that I'll create 3 new events for every of these countries. This events wouldn't be persistent and will be check every day from 1st of January 1930 to the end 1999 for USA and CAN and from 1st of January 1930 to 1st of September 1939 for Poland. As trigger I'll use only local_flag = active. This will delete any dissent added by my previous events on the 2-3 day after scenario start. If any of these countries be annexed and then released they will be someone's puppet, so they'll get the dissent.

For Croatia I think that the best solution is to move all free resources/IC to my new events and to edit event 2032 in croatia.txt by removing the last lines:
Code:
#########################################################################
#  Independent Croatia
#########################################################################
event = { 
	id = 2032
	random = no
	country = CRO
	
	#Triggered by GER2031
	
	name = "EVT_2032_NAME"
	desc = "EVT_2032_DESC"
        picture = "independent_croatia"
	style = 0
	

	action_a = {
		name = "ACTIONNAME2032A" # We got Independence!
		command = { type = manpowerpool value = 20 }
		command = { type = supplies value = 200 }
		command = { type = headofstate which = 30001 }
		command = { type = headofgovernment which = 30002 }
		command = { type = foreignminister which = 30003 }
		command = { type = armamentminister which = 30004 }
		command = { type = ministerofsecurity which = 30005 }
		command = { type = ministerofintelligence which = 30006 }
		command = { type = chiefofstaff which = 30007 }
		command = { type = chiefofarmy which = 30008 }
		command = { type = chiefofnavy which = 30009 }
		command = { type = chiefofair which = 30010 } 
		command = { type = trigger which = 2033 } # GER

[COLOR=Wheat]		command = { type = free_ic value = 3 }
		command = { type = free_energy value = 20 }
		command = { type = free_metal value = 10 }
		# command = { type = free_oil value = 10 }
		command = { type = free_rare_materials value = 5 }

		command = { type = sleepevent which = 15072 } #AI_Event for free_stuff[/COLOR]		
	}
}
This will force me to replace yet another vanilla file, but I think that this is not so bad in this case (only one event).

I'm not shure what to do with the PHI event. As minimum I can add sleepleader commands for duplicates too (IDs 1430043 and 1430044) and leave it as it is, but I really don't like that. Any other ideas?

EDIT:
Thinking about the dissent when releasing USA, CAN and some other countries, may be it will be reasonable to add such dissent hit to every country after release as puppet? I'll use the same approach - add dissent in my new events at scenario start and remove it with non-persistent events 1-2 days later. What do you think about that?
 
Last edited:

Gormadoc

Darkest Hour Developer (Semi-Retired)
19 Badges
Sep 1, 2004
3.765
4
  • Hearts of Iron II: Beta
  • Battle for Bosporus
  • Hearts of Iron IV: La Resistance
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Expansion Pass
  • Hearts of Iron IV: Death or Dishonor
  • Hearts of Iron IV: Field Marshal
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV Sign-up
  • Hearts of Iron II: Armageddon
  • 500k Club
  • Semper Fi
  • Europa Universalis III Complete
  • Europa Universalis III Complete
  • Hearts of Iron III
  • For the Motherland
  • Europa Universalis III Complete
  • Deus Vult
Many puppets are overstrenght in my opinion. So adding a bit of dissent will be good in my opinion.

Some players do like to have the puppets spawning mass units to help in world conquest though.

Btw the CDCP file at rapidshare seems to be corrupted. Some have reported a critical error when loading game. After redownloading from filefront problem disappeared.

I had a similar problem not so long ago with filefront. Think its just bad luck when uploading file to these servers.
 

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
Gormadoc said:
Many puppets are overstrenght in my opinion. So adding a bit of dissent will be good in my opinion.

Some players do like to have the puppets spawning mass units to help in world conquest though.
I'm not sure what to do with the EIP mod - to release its core as it is now, or to improve it further? The workarounds I use into it gives to the moders a lot of possibilties. We can add anything we want into these events and the result will be always the same after release. It just works! May be I'll release 2 versions of it - one with minimal changes to vanilla files and one with SIP + few more additions. But before that I want to see more responses here from other people...
Gormadoc said:
Btw the CDCP file at rapidshare seems to be corrupted. Some have reported a critical error when loading game. After redownloading from filefront problem disappeared.

I had a similar problem not so long ago with filefront. Think its just bad luck when uploading file to these servers.

The CDCP archive at rapidshare is OK. I always download my uploads to check if they are uploaded correctly before I post the link :)
 

richie

Major
95 Badges
May 12, 2003
759
7
  • Victoria 2: A House Divided
  • Hearts of Iron III Collection
  • Heir to the Throne
  • Europa Universalis III Complete
  • Magicka
  • Europa Universalis III Complete
  • Europa Universalis IV: Res Publica
  • Victoria: Revolutions
  • Europa Universalis: Rome
  • Semper Fi
  • Sengoku
  • Teleglitch: Die More Edition
  • Victoria 2
  • Hearts of Iron III: Their Finest Hour
  • Victoria 2: Heart of Darkness
  • Warlock: Master of the Arcane
  • 500k Club
  • Cities: Skylines
  • Europa Universalis III: Collection
  • Europa Universalis IV: El Dorado
  • Europa Universalis IV: Pre-order
  • Pride of Nations
  • Crusader Kings II: Way of Life
  • Pillars of Eternity
  • Europa Universalis IV: Common Sense
  • Stellaris: Ancient Relics
  • Deus Vult
  • Cities in Motion
  • Cities in Motion 2
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Darkest Hour
  • Arsenal of Democracy
  • Europa Universalis III
  • Europa Universalis III Complete
  • Divine Wind
  • Europa Universalis IV
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • For The Glory
  • For the Motherland
MartinBG said:
I'm not sure what to do with the EIP mod - to release its core as it is now, or to improve it further? The workarounds I use into it gives to the moders a lot of possibilties. We can add anything we want into these events and the result will be always the same after release. It just works! May be I'll release 2 versions of it - one with minimal changes to vanilla files and one with SIP + few more additions. But before that I want to see more responses here from other people...

ekhm *raises hand*
In my opinion, every released country should be given a some base, the same dissent. There is always some turmoil while getting independece (or even limited autonomy). I think 5% is quite good number.
Then, we should gather some special cases where extra dissent should be applied - because of historical and game reasons. Generally, there shouldn't be extra dissent (except this 5%) if the released country was "liberated" - that is, it didn't exist before the war (should be easy to check) or were annexed by master's enemy (now that could be the problem). Some obvious exceptions from this rule would be Germany releasing England, Russia or even Scandinavia, Allies releasing West Germany or Soviet releasing East Germany.
The countries released by their previous aggressor should be hit by additional dissent - how big it is good topic for debate. Some examples of this were already included (releasing POL by GER, or PHI by JAP). I'd say any major country (Germany, Italy, UK, France, USSR, Japan, China, USA) being released by it's victorious enemy should suffer extra large dissent.

Ah, and one thing more. How about dissent removal bonuses for our puppets when we end our mastery over them? :D

edit: almost forgot to thank you for good work. I'm afraid I am not good modder and from reading all the details and scripts got a headache but somehow I have an impression all you have done here is good :)
 

MartinBG

Darkest Hour Developer
2 Badges
Nov 16, 2007
5.634
257
  • Hearts of Iron II: Beta
  • Hearts of Iron IV Sign-up
richie, thanks for your support. :)

"No leaders after release" bug is a big and nearly random mess!!! :wacko: :mad: :mad: :mad:
At some point I was close to abandon GMF project, but after hundreds of tests I finally feel that I'm close to the release of the 1st version. :D
I will completely redo my initial ideas how to make it work because of the things I found about this bug lately. If no new problems appears :eek: the final solution will be better than my initial plans were: will work for numerious annex/release cycles in the same game session, will use less events and will have (hopefully) only one disadvantage (but this depends of the point of view) - all leaders that are in command at the time of annexation will be not reactivated if their country's release is during the same game session. After save/reload cycle all leaders of the annexed previously country will be available after release. No dormant leaders would be used, the number of duplicates will be reduced drasticly.
Now back to testing...

EDIT:
Officially I give up from making GMF. :(
This bug can not be fixed and there is no universal work around for it. I found many ways to have leaders after release, but none of them was universal or bugs free. Some of the workarounds were:
- use duplicates in dormant_leaders list - doesn't work well for countries with many leaders and doesn't work always even for countries with less leaders.
- use duplicates of the original and sleep them with persistent event + another persistent event for the original leaders. If such event fires after annex/release in the same game session the game may CTD (because previous leaders are still into game memory and can not be slept correctly). I found workaround for this and make my events to fire only once in a game session, but even then I receive random results - sometimes after annex/release just annexed leaders reappears, sometimes - a mix of duplicates, dormant and original leaders and sometimes - no leaders at all.
I found that if I sleep a leader of a country, then annex and release it - this country will have its leaders back (without dormant, leaders in command and just slept leader) - this was great (shows that actually there are some rare situations when the game handles leaders after release correctly), but if before release I annex another country then the old "No leaders after release" bug is back. Very good example for that is CHI annex by Japan events chain. In event 3814 Chiang Kai-Chek (sp?) was slept and CHI will have all not currently assigned to units leaders after release if we comment out iheriting commands for Warlord states in event 3815:
Code:
event = {
	id = 3815
	random = no
	country = JAP

	name = "EVT_3815_NAME"
	desc = "EVT_3815_DESC"
	style = 0
        picture = "japanese_reinforcments"

	action_a = {
		name = "EVT_3815_ACTA" #
		ai_chance = 80
		command = { type = inherit which = CHI } 
[COLOR=DarkOrange]		#command = { type = inherit which = CSX } 
		#command = { type = inherit which = CGX } 
		#command = { type = inherit which = CXB } 
		#command = { type = inherit which = CYN }[/COLOR]
The same is happen if I send a leader with add_corps command to another country before annex - after release the country will have its leaders, but only if no other annexes/releases were done before its release. And so on... hundreds of tests in tens of variations… all in vain. Well I learned a lot of new things doing this, but the result is not what I wanted to be and what I promised to do, so I have to apologize to all of you who expected better results from this project. :(
 
Last edited: