| 1 | This [[ProtocolZero]] command tells the agent to shove the object directly in front of it. The object that is shoved is called the "target". It is selected by effectively shooting a mode-8 rangefinder in the direction of the quagent's current facing, so if the quagent is looking down it will usually immediately hit the floor and report "invalid_target". On the other hand, if the quagent is looking at a level pitch, it will pick up any objects sitting on the floor that a mode-4 rangefinder would pass over. |
| 2 | |
| 3 | '''Parameters:''' |
| 4 | * 1: float strength, the power of the shove. 500 is usually more than sufficient for most tasks: 5000 is usually enough to catapult someone outside of the level. A shove of 400 will move an object as fast as a normal quagent can run (though unless the object is arched upward, friction will quickly stop it). |
| 5 | * 2: float shove_yaw, the direction in degrees to shove the target relative to the quagent's facing. A yaw of 0 is straight ahead, a yaw of 90 is straight to the left. This does not change the target selection, merely the direction of the imparted motion. |
| 6 | * 3: float shove_pitch, the direction in degrees to shove the target relative to the quagent's facing. A pitch of 0 is straight where the quagent is looking. Negative pitches are up, and positive pitches are down. To get a good shove it is wise to angle it slightly up from the ground, much like tossing a ball somewhat upward will result in a longer throw. |
| 7 | |
| 8 | '''Reports:''' |
| 9 | * ''done'' after the shove is attempted. This does not guarantee that the shoved object will move, however: for example, shoving something directly into a wall or the floor does not guarantee motion (though most objects will bounce). |
| 10 | * ''invalid_target'' if the object that would be selected as a target is not something that can be shoved (such as a wall or floor). |
| 11 | * ''nothing_there'' if no target (valid or invalid) exists. |
| 12 | * ''popped'' if popped by [[po]]. |
| 13 | * ''forgotten'' if deleted by [[fa]] or [[fm]]. |
| 14 | * ''replaced'' if replaced by a command scheduled with 'r'. |
| 15 | |
| 16 | '''Example:''' |
| 17 | * User sends: "n sv 512 500 0 -45" |
| 18 | * Bot replies: "cp sv 512 done" |
| 19 | * Object goes flying forward and up at velocity 500 during the game update phase. |