I solved a certain old format contest level exploiting this behavior.
This is still possible in new format NL though as the replay format didn't change.
Reproducing:
- Load a level.
- Assign a skill to a lemming.
- Assign a 2nd skill on the very next frame (for simplicity purposes) to another Lemming.
- Save the replay.
- Close NL and open the replay file with a texteditor.
- Look at the 2 skills assigned and change the frame of the 2nd skill to the frame of the first, while updating the 2nd Lemming's position to the position the Lemming had on the frame before:
Example:Original file:$ASSIGNMENT
FRAME 85
LEM_INDEX 1
LEM_X 111
LEM_Y 135
LEM_DIR left
ACTION builder
$END
$ASSIGNMENT
FRAME 86
LEM_INDEX 0
LEM_X 209
LEM_Y 151
LEM_DIR right
ACTION basher
$END
After editing:$ASSIGNMENT
FRAME 85
LEM_INDEX 1
LEM_X 111
LEM_Y 135
LEM_DIR left
ACTION builder
$END
$ASSIGNMENT
FRAME 85
LEM_INDEX 0
LEM_X 208
LEM_Y 151
LEM_DIR right
ACTION basher
$END
(I've attached an example file where the first 2 assignments are a double assign)
NL will accept and load the edited file and assign both skills in the same frame to their respective Lemmings.
Fix proposal:If we have multiple assignments in the same frame in a replay file: Only execute the first assignment, while all other assignments in the same frame will be ignored.
This fix will therefore trigger no NL error and it won't be noticable. This is only discovered anyways if a user deliberatly edits a replay file to do this, as double assignments are otherwise forbidden in the player.