M MY Multiplayer: Wiki
Lado
Tipo

dxDrawSpotLight

Cliente

Acende uma luz dentro de um cone por um único quadro, sem criar elemento.

bool dxDrawSpotLight(float x, y, z, float dirX, dirY, dirZ, float radius, color color [, float cone = 30, float hardness = 0.5, float intensity = 1, float falloff = 4, float sourceRadius = 0.1, bool castShadow = false])

Parâmetros

NomeTipoDescrição
x, y, zfloatPosição da luz no mundo, três números ou um vec3.
dirX, dirY, dirZfloatPara onde a luz aponta. Três números ou um vec3, finito e não nulo; é normalizado.
radiusfloatAlcance em metros, maior que 0 e até 1000.
colorcolorTrês números r, g, b (inteiros de 0 a 255) ou um valor de tocolor. O alfa é ignorado.
conefloatMetade da abertura do cone, em graus a partir do eixo, maior que 0 e até 90.padrão 30
hardnessfloatParte do cone iluminada por inteiro, de 0 a 1. Acima de 0.99 vale 0.99.padrão 0.5
intensityfloatMultiplicador de brilho, de 0 a 1000. Em 1, uma luz branca brilha com 12 de radiância HDR.padrão 1
fallofffloatExpoente do desvanecimento até o raio, de 0.1 a 32. Valores maiores mantêm a luz forte até mais perto da borda.padrão 4
sourceRadiusfloatRaio do bulbo em metros, de 0 até o alcance da luz. Sem ele, 0.1 ou o alcance, o que for menor.padrão 0.1
castShadowboolSe a luz projeta sombras.padrão false

Retorno

true se a luz entrou na fila do quadro. false quando 256 luzes já estão na fila, ou com um argumento errado.

A luz vale para um único quadro. Uma chamada feita antes de o mundo ser desenhado (por exemplo em onClientPreRender ou onClientRender) ilumina esse quadro; uma feita depois ilumina o próximo. Chamadas feitas enquanto nenhum quadro roda são descartadas. Passar de 256 luzes num quadro registra um aviso uma vez, até um quadro sobrar espaço na fila.

Exemplo

addEventHandler("onClientPreRender", root, function()
    local pos = getElementPosition(localPlayer)
    local a = math.rad(getElementRotation(localPlayer).z)
    dxDrawSpotLight(pos.x, pos.y, pos.z + 0.6, -math.sin(a), math.cos(a), -0.2, 30, 255, 250, 230, 20)
end)
Vindo do MTAO MTA não tem luzes dinâmicas.

Veja também