Riferimento › Riferimento delle funzioni › Platform

Platform.player_movement.GetPlayerMovementObservation

pubblica

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

NomeTipoCosa fa
selfRMPlatformAdattatore di piattaforma di Rotation Master (implicito nelle chiamate con due punti).

Valori restituiti

1table | nilRecord appena letto e leggibile con velocità finita e non negativa, oppure nil se non disponibile.
2string | nilMotivo 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 giocoClassic EraTBC AnniversaryClassic progressionForeverRetail
GetUnitSpeedClassic EraTBC AnniversaryClassic progressionForeverRetail
canaccessvalueClassic EraTBC AnniversaryClassic progressionForeverRetail

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 > 0

Sorgente

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}

Torna a Riferimento delle funzioni