StepQ
Performs a single queued movement step in the specified direction without waiting for server confirmation.
Direction — direction to step (0–7). See ConstantsAndEnums for direction values.
Running — True to run, False to walk.
Returns the step request ID (non-negative) on success, or a negative value on failure:
| Value | Meaning |
|---|---|
>= 0 |
Step request queued (ID of the request) |
-1 |
Error (disconnected, script stopped, data not loaded, low stamina) |
-2 |
Client-side check failed: point not passable |
256 |
Character turned to face the direction without stepping (door-opening scenario) |
Unlike Step, StepQ does not wait for server confirmation. This allows queueing multiple steps for faster movement but provides less precise feedback.
Respects movement variables: moveOpenDoor (auto-opens doors, up to 3 attempts; marks tile as bad if door is locked), moveExitOnDisconnect, and moveCheckStamina.
The ID of a door opened during this step (if any) is stored internally and can be retrieved via LastStepQUsedDoor.
Выполняет один шаг в указанном направлении в режиме очереди, без ожидания подтверждения от сервера.
Direction — направление шага (0–7). См. ConstantsAndEnums.
Running — True для бега, False для ходьбы.
Возвращает ID запроса на шаг (неотрицательное) при успехе или отрицательное значение при ошибке:
| Значение | Смысл |
|---|---|
>= 0 |
Запрос на шаг поставлен в очередь (ID запроса) |
-1 |
Ошибка (отключён, скрипт остановлен, данные не загружены, мало stamina) |
-2 |
Клиентская проверка: точка непроходима |
256 |
Персонаж повернулся в нужном направлении без шага (сценарий открытия двери) |
В отличие от Step, StepQ не ждёт подтверждения сервера. Позволяет ставить несколько шагов в очередь для более быстрого перемещения, но с менее точной обратной связью.
Учитывает переменные перемещения: moveOpenDoor (автооткрытие дверей, до 3 попыток; помечает тайл как bad при заблокированной двери), moveExitOnDisconnect, moveCheckStamina.
ID двери, открытой во время этого шага, сохраняется и доступен через LastStepQUsedDoor.
function StepQ(Direction: Byte; Running: Boolean): Integer;
def StepQ(Direction: int, Running: bool) -> int: ...
var
Res: Integer;
begin
Res := StepQ(CalcDir(GetX(Self), GetY(Self), 1234, 5678), True);
if Res >= 0 then
AddToSystemJournal('Step queued, ID: ' + IntToStr(Res))
else if Res = -2 then
AddToSystemJournal('Point not passable')
else
AddToSystemJournal('Step failed');
end.
res = StepQ(CalcDir(GetX(Self()), GetY(Self()), 1234, 5678), True)
if res >= 0:
AddToSystemJournal(f'Step queued, ID: {res}')
elif res == -2:
AddToSystemJournal('Point not passable')
else:
AddToSystemJournal('Step failed')