hmm a bit a half-harted solution. This won't allow you to keep walking in one direction by holding one key. It also doesn't allow walking north-east, south-east, ..
If you want to work exactly, you should make 4 boolean variables, each for one direction (i.e. Key_Left, Key_Right, ..). If a player presses a key, you set the linked boolean to true, as soon as the player releases that key, set its bool to false.
Then you need a countdown timer (I'll call it mTimer) and a trigger (Call it "Movement Trigger"), that has the event "A Timer [mTimer] expires" and the condition (real) "Remaining Time for [mTimer] == 0". Add each of the key related events/triggers at the end the line "Run [Movement Trigger] checking conditions."
Now in this movement trigger, add for every direction (8) an IF/THEN/ELSE condition asking for the special set of keys that must be pressed to move into that direction. The THEN action orders the unit to move there, activates the "mTimer" to count-down and skipps remaining actions (this saves pc capacity).
The distance between where you send your unit and its actual position and the countdown time depend on your units movement speed and the duration of 1 animation cycle of the "walk" animation. The distance is less important than the animation duration, try adjusting the countdown time first. (You should store both into variables so you can adjust them more easily.)
Moving units diagonally works by multiplying both x and y distances with the squareroot of 2, thus about 1.4142. Use -1.4142 on the coordinates you need to flip. The correct line should look like this:
Unit - Order unit_here to Move To ((Position of unit_here) offset by ((1.4142 * move_offset), (1.4142 * move_offset)))
When used correctly, this allows you to smoothly move your unit across a world. Since the move_offset (= distance) is rather small and the triggers check quite often, you don't have your unit walk over all the map because it had been ordered to walk over a river. Can be seen in my bomberman map.
klovadis