Ir para o conteúdo

Funções de Viewport

O sistema de viewport controla quais objetos (jogadores, monstros, itens) são visíveis para cada jogador. Essas funções gerenciam a criação, destruição e sincronização do viewport.

Uso Avançado

Funções de viewport são de baixo nível e usadas principalmente para lógica de teletransporte customizada, mapas de instância ou atualizações forçadas de aparência. Uso incorreto pode causar jogadores invisíveis ou dessincronia no cliente.


gObjSetViewport(aIndex, state)

Define o estado do viewport para um objeto específico, atualizando como jogadores próximos o veem.

  • Parâmetros:
    • aIndex (integer): Índice do objeto.
    • state (integer): Estado do viewport (VIEWPORT_CREATE, VIEWPORT_DESTROY, VIEWPORT_SEND).
  • Retorna: void
-- Force a viewport state change
gObjSetViewport(aIndex, 1)

gObjViewportClose(lpObj)

Fecha o viewport para um jogador. Remove sua visibilidade de todos os jogadores e itens próximos.

  • Parâmetros:
    • lpObj (GameObject): Objeto do jogador.
  • Retorna: void
-- Close viewport before teleporting
gObjViewportClose(player)
gObjTeleport(aIndex, 0, 130, 130)

gObjClearViewport(lpObj)

Limpa completamente todos os dados de viewport para o objeto fornecido — remove todos os jogadores, monstros e itens rastreados de sua lista de viewport.

  • Parâmetros:
    • lpObj (GameObject): Objeto do jogador.
  • Retorna: void
gObjClearViewport(player)

gObjClearViewportOfMine(lpObj)

Remove este objeto dos viewports de todos os outros jogadores. Outros jogadores deixarão de ver este objeto até que o viewport seja reconstruído.

  • Parâmetros:
    • lpObj (GameObject): Objeto do jogador.
  • Retorna: void
-- Make a player temporarily invisible to others
gObjClearViewportOfMine(player)

gObjViewportListProtocolDestroy(lpObj)

Envia pacotes de destruição de viewport para o cliente, removendo objetos próximos da tela do jogador.

  • Parâmetros:
    • lpObj (GameObject): Objeto do jogador.
  • Retorna: void
gObjViewportListProtocolDestroy(player)

gObjViewportListProtocolCreate(lpObj)

Envia pacotes de criação de viewport para o cliente, atualizando a aparência de todos os objetos próximos. Útil após mudar equipamento, classe ou estado visual de um jogador.

  • Parâmetros:
    • lpObj (GameObject): Objeto do jogador.
  • Retorna: void
-- Refresh a player's appearance for everyone nearby
gObjViewportListProtocolCreate(player)

gObjViewportListProtocol(aIndex)

Envia os dados completos do protocolo de viewport para um jogador — destrói viewport antigo, depois envia todos os dados de jogadores, monstros, invocações, itens, guilda e gens.

  • Parâmetros:
    • aIndex (integer): Índice do objeto.
  • Retorna: void
-- Full viewport rebuild for a player
gObjViewportListProtocol(aIndex)

gObjViewportListDestroy(aIndex)

Destrói todas as entradas de viewport dentro do alcance de visão do mapa. Processa viewports de jogadores, monstros e itens.

  • Parâmetros:
    • aIndex (integer): Índice do objeto.
  • Retorna: void
gObjViewportListDestroy(aIndex)

gObjViewportListCreate(aIndex)

Cria entradas de viewport para todos os objetos dentro do alcance de visão do mapa. Adiciona jogadores, monstros e itens próximos ao viewport.

  • Parâmetros:
    • aIndex (integer): Índice do objeto.
  • Retorna: void
gObjViewportListCreate(aIndex)

gObjViewportAttackAreaUsed(aIndex, bIndex)

Verifica se a área de ataque entre dois objetos está dentro do alcance do viewport.

  • Parâmetros:
    • aIndex (integer): Índice do objeto atacante.
    • bIndex (integer): Índice do objeto alvo.
  • Retorna: booleantrue se o alvo está dentro do viewport do atacante.
if gObjViewportAttackAreaUsed(aIndex, bIndex) then
    -- Target is in viewport range, proceed with attack
end