Version 4 (modified by jpawlick, 13 years ago) (diff) |
---|
This command sends the agent walking until it hits an obstacle it cannot pass or the given distance is up, whichever is sooner. It will walk off cliffs and into slime or lava. It will also slide along oblique walls or use jump pads. In all cases, moveby counts the total motion while it is running, not just the motion in the provided direction or motion due to walking. For example, if you ask an agent to moveby 50 and a rocket blast launches it 30 sideways, it counts this 30 against the total distance it is responsible for running. If this behavior is unwanted, the user may wish to use mt instead.
Parameters:
- 1: integer obstacle flag: 1 if the agent should hop over low obstacles, 0 if it should report blocked when it encounters them.
- 2: float theta, the heading in which the agent should walk relative to its current facing. 0 is straight ahead, 90 is strafe left, etc.
- 3: float speed, 1.0 = normal maximum bot movement speed (400 in game terms), 0 = stopped. -1 = reverse maximum speed. In the current version, values out of the [-1, 1] range are not supported.
- 4: float distance, how far the bot should walk. The bot will hit the spot precisely (if it is possible to), and will spend a few frames making sure that it does (usually by shuffling back and forth to deal with slippery surfaces, overshooting the distance, etc). Negative distances are reset to 0: if you want to move a "negative distance", just increase theta by 180 degrees.
Reports:
- blocked if movement ended due to striking a wall.
- popped if popped by po.
- forgotten if deleted by fa.
Example:
- User sends: "n mf 512 0 0 1"
- Bot moves straight ahead for 44 seconds at full speed and then strikes a wall it cannot slide along (not oblique, or in a corner),
- Bot replies "cp mf 512 blocked"