Don't know if such a function exists, especially in lower versions of TFS. But you could script a teleport script that uses a timer to move the creature in order to achieve a wanted speed.
local function moveLeft(cid)
local p = getThingPos(cid)
local newp = {x = p.x-1, y= p.y, z = p.z}
doTeleportThing(cid, newp, true)
end
Then in your main function, use:
addEvent(moveLeft, 0, cid)
addEvent(moveLeft, 200, cid)
addEvent(moveLeft, 400, cid)
etc.
Some things worth mentioning:
- You'd need to make functions like moveLeft for every direction you want available (left, right, down, up, maybe even diagonal ones)
- You'd need to make the player/monster unable to move with regular controls while the script takes action
- You could make a 'for' loop for the addEvents to avoid cramping the script with a ton of addEvent lines
- Speed of pushing the creature to a tile is determined by the delays between addEvents and every time they are pushed, they will walk with their regular movement speed
This is not the most efficient way to do this, but just putting it out there. Best way would be to make a function for this (with all rules included) in source with the help of pathfinding algorithms.