triggerLatentClientEvent
Envia um evento à máquina dos jogadores com banda limitada.
Sintaxe
Seção intitulada “Sintaxe”bool triggerLatentClientEvent ( [ element/table paraQuem = root, ] string nomeDoEvento [, int banda = 50000, bool persistir = false ], element origem [, ... ] )Parâmetros
Seção intitulada “Parâmetros”| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
paraQuem | element ou table | root | Um jogador, uma tabela de jogadores, ou um elemento pai — todos os jogadores abaixo dele recebem o evento. Se for omitido, o primeiro argumento é o nome do evento, enviado a todo mundo. |
nomeDoEvento | string | — | Evento a disparar no cliente. |
banda | number | 50000 | Bytes por segundo que o envio pode usar. 0 pula a fila e funciona como triggerClientEvent. |
persistir | bool | false | Com false, um envio que não terminou é descartado se o seu resource parar. true deixa ele terminar mesmo assim. |
origem | element | — | Elemento de origem, que vira source no cliente. |
... | any | — | Argumentos repassados ao manipulador. |
Retorno
Seção intitulada “Retorno”true quando o envio entra na fila — inclusive quando paraQuem não bateu com nenhum jogador. Um argumento inválido registra um aviso e devolve false; um nome de evento vazio devolve false sem aviso.
A função não devolve um identificador. Para acompanhar ou cancelar o envio, chame getLatentEventHandles para aquele jogador logo em seguida: o envio novo é a última entrada.
Cada jogador tem uma fila, e os envios saem dela em ordem, um de cada vez. A fila anda na maior banda entre os envios que esperam nela, nunca abaixo de 500 bytes por segundo. Um envio é entregue inteiro quando o tempo de transferência dele acaba: o cliente não vê nada antes disso, e o manipulador dele recebe o evento exatamente como se tivesse vindo de triggerClientEvent. A mesma regra vale do lado que recebe: o script do cliente precisa ter registrado o nome com addEvent(nomeDoEvento, true).
Um jogador que se desconecta leva a fila dele junto.
Exemplo
Seção intitulada “Exemplo”-- uma tabela grande, enviada sem entupir a conexão do jogadortriggerLatentClientEvent(jogador, "onDadosDoMapaRecebidos", 20000, false, resourceRoot, dadosDoMapa)
local identificadores = getLatentEventHandles(jogador)local identificador = identificadores[#identificadores]
setTimer(function() local estado = getLatentEventStatus(jogador, identificador) if estado then outputDebugString(("dados do mapa: %d%%"):format(estado.percentComplete)) endend, 1000, 10)Veja também
Seção intitulada “Veja também”triggerClientEvent— Dispara um evento na máquina dos jogadores.getLatentEventHandles— Lista os envios latentes ainda na fila de um jogador.getLatentEventStatus— Diz até onde chegou um envio latente na fila.cancelLatentEvent— Tira um envio latente da fila de um jogador.