Pular para o conteúdo

takePlayerScreenShot

Servidor Jogadores OOP jogador:takeScreenShot(...)

Pede ao cliente do jogador que capture a tela dele e envie a imagem de volta.

bool takePlayerScreenShot ( element oJogador, number largura, number altura [, string etiqueta = "", number qualidade = 30, number bandaMaxima = 5000, number tamanhoPacote = 500 ] )
NomeTipoPadrãoDescrição
oJogadorelement—Jogador (ou elemento acima dele na árvore).
larguranumber—Largura da captura, de 1 a 65535.
alturanumber—Altura da captura, de 1 a 65535.
etiquetastring""Texto livre devolvido junto com o resultado — útil para diferenciar várias capturas.
qualidadenumber30Qualidade da imagem, de 0 a 100. Quanto maior, maior a transferência.
bandaMaximanumber5000Limite da transferência, em bytes por segundo. Um valor negativo vale como 0.
tamanhoPacotenumber500Tamanho de cada pedaço em que a imagem é dividida, de 1 a 65535.

true quando o pedido foi enviado a pelo menos um jogador. Devolve false se o primeiro argumento não for um elemento válido ou se não houver jogador nenhum abaixo dele. Um tamanho, uma qualidade ou um tamanho de pacote fora da faixa gera erro e devolve false.

A captura é assíncrona: o true significa apenas que o pedido saiu. A imagem chega depois, no evento onPlayerScreenShot desse jogador:

PosiçãoValor
1Nome do resource que pediu a captura.
2Situação: "ok" quando a imagem chegou; caso contrário "minimized", "disabled" ou "error".
3Os dados da imagem, em texto, quando a situação é "ok"; false nos demais casos.
4Marca de tempo, em milissegundos, do momento em que a captura foi pedida.
5A etiqueta que você passou.
6Só aparece quando a situação não é "ok": o motivo informado pelo cliente.
addEventHandler("onPlayerScreenShot", root, function(oResource, situacao, imagem, momento, etiqueta)
if situacao ~= "ok" then
outputDebugString("Captura falhou para " .. getPlayerName(source) .. ": " .. situacao)
return
end
local arquivo = fileCreate("capturas/" .. getPlayerName(source) .. ".jpg")
if arquivo then
fileWrite(arquivo, imagem)
fileClose(arquivo)
end
end)
takePlayerScreenShot(jogador, 640, 480, "denuncia")