Pular para o conteúdo

createExplosion

Compartilhada Mundo

Cria uma explosão numa posição do mundo.

-- servidor
bool createExplosion ( number x, number y, number z, number tipo [, element criador ] )
-- cliente
bool createExplosion ( number x, number y, number z, number tipo [, bool comSom = true, number tremorDeCamera = -1.0, bool causaDano = true ] )

Parâmetros do servidor

NomeTipoPadrãoDescrição
x, y, znumber—Onde a explosão acontece.
tiponumber—Tipo da explosão, de 0 a 12.
criadorelement—O jogador a quem a explosão é atribuída. Qualquer outro elemento cria uma explosão para cada jogador entre os seus descendentes.

Parâmetros do cliente

NomeTipoPadrãoDescrição
x, y, znumber—Onde a explosão acontece.
tiponumber—Tipo da explosão, de 0 a 12.
comSombooltrueCom false, a explosão sai sem som.
tremorDeCameranumber-1.0Intensidade do tremor de câmera. Com -1.0, vale o tremor que o jogo já calcula pela distância.
causaDanobooltrueCom false, a explosão é só visual e não fere ninguém.

true se a explosão foi criada, false se o tipo estiver fora de 0–12 ou se ela não pôde ser criada. Nos dois lados, tipos fora dessa faixa são recusados e o motivo é registrado no console de debug.

No servidor, onExplosion dispara antes de a explosão ser enviada — com o criador como origem, ou o elemento raiz quando não há criador — e cancelá-lo faz a chamada devolver false. Quando o criador não é um jogador, a chamada devolve false mesmo que as explosões dos jogadores abaixo dele aconteçam.

Criada no servidor, a explosão é enviada para todos os jogadores conectados. Criada no cliente, ela acontece só naquela máquina.

-- servidor: todo mundo vê
addCommandHandler("boom", function(jogador)
local x, y, z = getElementPosition(jogador)
createExplosion(x, y, z + 2, 4)
end)
-- cliente: explosão silenciosa e inofensiva, só nesta tela
local x, y, z = getElementPosition(localPlayer)
createExplosion(x, y, z + 2, 4, false, -1.0, false)