Any chance there will be a 'siege breaker' addition to DFHack to help end sieges if everything else fails?
Use Runesmith, it has an option to kill every creature of a type on the map. You can also select a creature in Runesmith and activate the "dead" flag.
Runesmith is a great way of MAKING the Siege tag stick:
Step One: A Vile force of Darkness has arrived!
Step Two: Kill all Goblins (Say with the nice Nuke Icon)
Result - Siege tag sticks around forever.
Dead tagging is great when you HAVE a Giant Cave Spider, but want the others gone... can't nuke... so individual dead tags for the win. I'd like "Bleeding out in 4 Urist Seconds" personally
Of course dfcleanoffmydwarves.exe is right up there with World Peace some days...
EDIT:
Of course when you misread 83 as 82 you miss others responses... So we shouldn't use "Dead". 'Left Map' is... wonky (works best on merchants who get lost trying to find your depot because they'd rather be at a party)... 'Killed' is sometimes ignored (ignored here being similar to setting happiness on a miserable dwarf)...
I've had magma crash my process... tried to burn out a 'dumb merchant', set fire to the map. Got migrants as the fire spread... boom. Hadn't saved since I'd plotted out the initial digging, so nothing to debug. Perhaps dfdropsyndromestone.exe targetted nearby enough. But that's my Populous itch talking.
Ok, I didn't actually try that myself, never ended a siege with the nuke button yet... How about writing a routine that kills all but one of the goblins on the map? When the last one flees or is killed, the SIEGE tag might be deleted... I think I'm going to try that.
I wonder if the dead flag is enough or if we also need the kill flag ('killed by kill function').
After extensive testing that just ate itself -.-;
Runesmith does not unset the following:
Active Invader (sets if they are just about the invade, as Currently Invading removes this one)
Hidden Ambusher (Just in Case, however it is still set when an Active Invader)
Hidden in Ambush (Just in Case, however it is still set when an Active Invader, until discovery)
Incoming (Sets if something is here yet... wave X of a siege here)
Invader -Fleeing/Leaving
Currently Invading
When it nukes something it basically just sets them to 'dead'. It does not also set them to 'killed'. Show dead will show everything (short of 'vanished'/'deleted' I'd suspect) so one CAN go through the intensive process to revive a broken siege. These particular flags are not visible at the same exact time so multiple passes -even through a narrow segment- are advised.
Problem I ran into (last thing before I mention something more DFHack related):
I set the Killed Flag (but not dead), and I got mortally wounded siegers that refused to just pift in Magma. Likely missing upper torsoes on examination.
And so... a dfremovesiege.exe might only have to zap a few flags to drop that big nasty SIEGE banner. Sadly any random buttock that has been cut off because someone was fishing next to the siegers and was surprised... will still be left by or in the water.
I've played my castle since this discussion started and only just got my second siege... The first one was so quickly over, that I forgot to do some investigation. So, some observations:
When the siege started, the invaders had the following flags:
ID: 662, Troll, B�x, Standard, Job: No Job, Happiness: 100
Flag: Marauder
Flag: Can Swap
Flag: Active Invader
Flag: Invader Origin
Flag: Coward
Flag: Hidden Ambusher
Flag: Invades
Flag: Important Historical Figure
Flag: Calculated Nerves
Flag: Calculated Bodyparts
Flag: Important Historical Figure
Flag: Calculated Insulation
Flag: Vision Good
Flag: Breathing Good
ID: 663, Troll, Aslot, Standard, Job: No Job, Happiness: 100
Flag: Marauder
Flag: Can Swap
Flag: Active Invader
Flag: Invader Origin
Flag: Coward
Flag: Hidden Ambusher
Flag: Invades
Flag: Important Historical Figure
Flag: Calculated Nerves
Flag: Calculated Bodyparts
Flag: Important Historical Figure
Flag: Calculated Insulation
Flag: Vision Good
Flag: Breathing Good
After the battle turned (about 1/4 of them killed in the traps, all invaders begin to retreat), many of them lose their flag "Active Invader", plus many of them lose quite a couple of flags:
ID: 662, Troll, B�x, Standard, Job: No Job, Happiness: 100
Flag: Important Historical Figure
Flag: Vision Good
Flag: Breathing Good
ID: 663, Troll, Aslot, Standard, Job: No Job, Happiness: 100
Flag: Marauder
Flag: Can Swap
Flag: Invader Origin
Flag: Coward
Flag: Hidden Ambusher
Flag: Invades
Flag: Important Historical Figure
Flag: Calculated Nerves
Flag: Calculated Bodyparts
Flag: Important Historical Figure
Flag: Calculated Insulation
Flag: Vision Good
Flag: Breathing Good
I then simply killed all invaders, because I wanted to know what happens. I set the following flags (I used my own program, didn't click in Runesmith 1000 times):
f1.bits.dead = 1;
f2.bits.killed = 1;
f1.bits.active_invader = 0; /* Active invader (for organized ones) */
f1.bits.hidden_ambusher = 0; /* Active marauder/invader moving inward? */
f1.bits.hidden_in_ambush = 0;
f1.bits.invades = 0; /* Marauder resident/invader moving in all the way */
The result was that they lost all their flags, except for the two that I had set:
ID: 662, Troll, B�x, Standard, Job: No Job, Happiness: 100
Flag: Dead
Flag: Killed by kill function
ID: 663, Troll, Aslot, Standard, Job: No Job, Happiness: 100
Flag: Dead
Flag: Killed by kill function
Most importantly though, the SIEGE tag stayed there, making my efforts meaningless.
I then tried to revive the two trolls, but without success. Removing the dead and kill flag did nothing, and they still showed up dead. After I set the invader/hidden/... flags, they even didn't show up on my map any more. They may well be hidden (well, I wanted them to be), so let's see.
Another funny thing to note is that they suddenly got some basic skills like Crutch-Walking, Shearing, Buildling Design and Would Dressing that they didn't have before. So I guess something just got messed up, I don't think they trained 'Crutch-Walking' and 'Wound Dressing' up.