Chame como
addon.Platform:GetPlayerMovementObservation()
Disponível diretamente por meio de addon; nenhuma dependência é necessária.
O que faz
Observa a velocidade de movimento atual do jogador em clientes legíveis suportados. Consulta GetUnitSpeed apenas para player, sem testar outra unidade nem redirecionar a propriedade de veículos. Zero significa parado; velocidades positivas finitas fracionárias continuam válidas. Observações ausentes, com falha, restritas ou malformadas retornam nil com um motivo.
Argumentos
| Nome | Tipo | O que faz |
|---|---|---|
self | RMPlatform | Adaptador de plataforma do Rotation Master (implícito nas chamadas com dois-pontos). |
Retornos
| 1 | table | nil | Registro novo e legível com velocidade finita não negativa, ou nil quando indisponível. |
|---|---|---|
| 2 | string | nil | Motivo de política ou disponibilidade para uma observação de movimento nil. |
Edições
As funções auxiliares integradas são registradas em todas as edições. O que muda é a API do jogo que elas leem; quando uma está ausente, a função auxiliar recorre a uma alternativa ou retorna nil com um motivo.
- Indisponível nessa edição (o motivo está na dica)
- Só enquanto as alternativas da Blizzard para APIs obsoletas estiverem ativas
| API do jogo | |||||
|---|---|---|---|---|---|
GetUnitSpeed | |||||
canaccessvalue |
Valores secretos (Retail e Forever)
No Retail e no Forever, o jogo entrega valores secretos aos addons. Esta função auxiliar verifica o que lê (addon.Platform:CanReadValue) e retorna nil com um motivo como restricted-value em vez de um valor secreto que não consegue comparar. Trate nil como indisponível, não como false.
Exemplo
local movement = addon.Platform:GetPlayerMovementObservation()
if not movement then return nil end
return movement.speed > 0Código-fonte
Platform/player_movement.lua, linha 15. Somente leitura no jogo; Duplicar cria uma cópia editável.
Platform.player_movement.GetPlayerMovementObservation(self)
local policy=self:GetCombatDataPolicy()
if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
if type(GetUnitSpeed)~='function' then return nil,'missing-api' end
local ok,speed=pcall(GetUnitSpeed,'player')
if not ok then return nil,'api-error' end
if not self:CanReadValue(speed) then return nil,'restricted-value' end
if canaccessvalue and not canaccessvalue(speed) then return nil,'restricted-value' end
if speed==nil then return nil,'movement-data-unavailable' end
if type(speed)~='number' or speed~=speed or speed==math.huge or speed==-math.huge or speed<0 then return nil,'invalid-api-result' end
return {speed=speed}




