Someway, I agree HouseOfHam, it is hard to use battle scripts in campaign, but it is sometimes possible.
If I remember right, it is possible to label units, even when they do not exist in battle, and the game doesn't crash. And it is also possible to check some conditions from these units without ctds. It is when you try to execute a command over the unit when it ctd. I'm not sure, but I think it worked this way latest time I tried it.
This way it is possible to use some commands without risk of ctds, if you previously check a condition like I_UnitFormation.
This is an example of battle script that was working for me, to half the size of general units. Regretably itcrashed when the general was an elephant unit so I never used it:
Maybe you can find some similar working scripts to avoid general suicidals, or to change the melee_state of the generals in the middle of the battle. I have never tried with units other than generals, though.script
label_unit 0 0 0 general_00
label_unit 0 1 0 general_01
label_unit 1 0 0 general_11
label_unit 1 1 0 general_12
if I_UnitFormation general_00 = horde
reduce_unit_strength general_00 51
end_if
if I_UnitFormation general_01 = horde
reduce_unit_strength general_01 51
end_if
if I_UnitFormation general_11 = horde
reduce_unit_strength general_11 51
end_if
if I_UnitFormation general_12 = horde
reduce_unit_strength general_12 51
end_if
end_script
This is something I would like to test in the future, but I don't expect much of these kind of scripts.
Bookmarks