Chiamala come
addon.Platform:GetPlayerMovementObservation()
Disponibile direttamente tramite addon; non serve alcuna dipendenza.
Cosa fa
Osserva la velocità di movimento attuale del giocatore sui client leggibili supportati. Interroga GetUnitSpeed solo per player, senza verificare un'altra unità né reindirizzare la proprietà dei veicoli. Zero significa fermo; le velocità positive, finite e frazionarie restano valide. Osservazioni mancanti, fallite, soggette a restrizioni o malformate restituiscono nil con un motivo.
Argomenti
| Nome | Tipo | Cosa fa |
|---|---|---|
self | RMPlatform | Adattatore di piattaforma di Rotation Master (implicito nelle chiamate con due punti). |
Valori restituiti
| 1 | table | nil | Record appena letto e leggibile con velocità finita e non negativa, oppure nil se non disponibile. |
|---|---|---|
| 2 | string | nil | Motivo di policy o di indisponibilità quando l'osservazione del movimento è nil. |
Edizioni
Le funzioni di supporto integrate sono registrate su ogni edizione. Ciò che cambia è l'API di gioco che leggono; dove ne manca una, la funzione di supporto ripiega su un'alternativa o restituisce nil con un motivo.
- Non disponibile su quell'edizione (il motivo è nel suggerimento)
- Solo mentre sono attivi i ripieghi di Blizzard per le API deprecate
| API di gioco | |||||
|---|---|---|---|---|---|
GetUnitSpeed | |||||
canaccessvalue |
Valori segreti (Retail e Forever)
Su Retail e Forever il gioco fornisce agli addon valori segreti. Questa funzione di supporto controlla ciò che legge (addon.Platform:CanReadValue) e restituisce nil con un motivo come restricted-value invece di un valore segreto che non può confrontare. Considera nil come non disponibile, non come false.
Esempio
local movement = addon.Platform:GetPlayerMovementObservation()
if not movement then return nil end
return movement.speed > 0Sorgente
Platform/player_movement.lua, riga 15. Nel gioco è in sola lettura; Duplica crea una copia modificabile.
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}




