I killed all the humans before the elves arrived and it did not register.
So I tried waiting with one human unit left (not Morvin). When the elves appeared I kill the human but the achievement did not trigger.
I looked at the event code in the scenario, which is as below:
Code:
[event] #achievement for killing all humans name=last breath first_time_only=no [filter] side=2 [/filter] [filter_condition] [have_unit] id=Lord Logalmier [/have_unit] [/filter_condition] [if] [have_unit] side=2 [not] id=$unit.id [/not] [/have_unit] [then] [/then] [else] [set_achievement] content_for=RTL_SP id=RTL_humans [/set_achievement] [/else] [/if][/event]
If I read that right for the event to trigger you would have to kill "Lord Logalmier"? That would be impossible without moving enough troops to surround where he spawns (3,44) before he appears and then kill him when he does. The Elves spawn endlessly which would make this suicidal. "Lord Logalmier" is not a human but an elf so referencing him with the achievement doesn't make sense to me.
This event may work better if the event Should that not be "Morvin"? However, it says kill all humans so if there were other humans left then the objective has not been met.
An alternative could be:
1) Making the Elves side 3.
2) The logic could then trigger when side 2 *the humans" have 0 units.
My WSL markup is not very good but could something like this might work:
Maybe use an "attack end" event and count the number of units.
If the count is 0 then they are all dead.
Code:
[event] name=attack_end human_count = wesnoth.get_units { side = 2, filter = { } } [if] [variable] name=human_count equals=0 [/variable] [then] [set_achievement] content_for=RTL_SP id=RTL_humans [/set_achievement] [/then] [/if][/event]