M MY Multiplayer: Wiki
Lado
Tipo

dxDrawRectLight

Cliente

Acende uma luz que sai de um retângulo por um único quadro, sem criar elemento.

bool dxDrawRectLight(float x, y, z, float normalX, normalY, normalZ, float width, float height, float radius, color color [, float intensity = 1, float falloff = 4, float barnDoorAngle = 88, float barnDoorLength = 0.2, bool castShadow = false, float tangentX, tangentY, tangentZ = nil])

Parâmetros

NomeTipoDescrição
x, y, zfloatPosição da luz no mundo, três números ou um vec3.
normalX, normalY, normalZfloatPara onde a face do retângulo aponta. Três números ou um vec3, finito e não nulo; é normalizado. A luz só ilumina na frente.
widthfloatLargura do retângulo em metros, de 0.01 a 100.
heightfloatAltura do retângulo em metros, de 0.01 a 100.
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.
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
barnDoorAnglefloatÂngulo das abas a partir da normal, de 0 a 90 graus. De 88 para cima as abas não cortam nada.padrão 88
barnDoorLengthfloatComprimento das abas em metros, 0 ou mais.padrão 0.2
castShadowboolSe a luz projeta sombras.padrão false
tangentX, tangentY, tangentZfloatDireção da largura do retângulo, três números ou um vec3. Sem ela, é feita a partir da normal e do eixo vertical do mundo. Um vetor nulo ou paralelo à normal gera um aviso.padrão nil

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()
    dxDrawRectLight(1481.0, -1771.0, 22.0, 0, -1, 0, 4, 0.5, 12, 255, 60, 200, 3)
end)
Vindo do MTAO MTA não tem luzes dinâmicas.

Veja também