I would first deal with the initial halt logic before trying to implement the knight detecting other knights. It's not as easy as it sounds to do this kind of stuff for multiple enemies, sure it will work perfectly for one instance but then seem to break when you add more. You have to ensure the picking logic is sound, I usually do this with functions and you can pass UID through this to ensure you are picking the correct sprite. When a knight reaches the end of the level you need to then pick all knights and stop them. If the other issue is that knights move with the move variables and override the general halt logic then you need to add another variable with a condition that makes sure this logic isnt used when everyone has stopped.