Resource:Custom coronas: Difference between revisions
No edit summary |
No edit summary |
||
Line 19: | Line 19: | ||
*'''float posX, posY, posZ:''' Position in world space. | *'''float posX, posY, posZ:''' Position in world space. | ||
*'''float size:''' Size of the corona. | *'''float size:''' Size of the corona. | ||
*'''int colorR,colorG,colorB,colorA:''' | *'''int colorR,colorG,colorB,colorA:''' RGBA color (0 - 255). | ||
===Optional Arguments=== | ===Optional Arguments=== | ||
*'''bool isSoftParticle:''' The aim with soft particles is to remove the ugly artifact that appears when the particle quad intersects the scene. The option requires DepthBuffer access. | *'''bool isSoftParticle:''' The aim with soft particles is to remove the ugly artifact that appears when the particle quad intersects the scene. The option requires DepthBuffer access. | ||
Line 34: | Line 34: | ||
*'''float posX, posY, posZ:''' Position in world space. | *'''float posX, posY, posZ:''' Position in world space. | ||
*'''float size:''' Size of the corona. | *'''float size:''' Size of the corona. | ||
*'''int colorR,colorG,colorB,colorA:''' | *'''int colorR,colorG,colorB,colorA:''' RGBA color (0 - 255). | ||
===Optional Arguments=== | ===Optional Arguments=== | ||
*'''bool isSoftParticle:''' The aim with soft particles is to remove the ugly artifact that appears when the particle quad intersects the scene. The option requires DepthBuffer access. | *'''bool isSoftParticle:''' The aim with soft particles is to remove the ugly artifact that appears when the particle quad intersects the scene. The option requires DepthBuffer access. | ||
Line 101: | Line 101: | ||
===Required Arguments=== | ===Required Arguments=== | ||
*'''element coronaElement:''' A previously declared corona element. | *'''element coronaElement:''' A previously declared corona element. | ||
*'''float colorR,colorG,colorB,colorA:''' | *'''float colorR,colorG,colorB,colorA:''' RGBA color (0 - 255). | ||
===Returns=== | ===Returns=== | ||
The function returns true if set successfully, false otherwise. | The function returns true if set successfully, false otherwise. | ||
Line 118: | Line 118: | ||
==Examples== | ==Examples== | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua">function addStuff() | ||
function addStuff() | |||
for i=1,30 do | for i=1,30 do | ||
for j=1,30 do | for j=1,30 do | ||
exports.custom_coronas:createCorona(i * 7,j * 7,10,4,math.random()*255,math.random()*255,math.random()*255,1*255,false) | |||
end | end | ||
end | end |
Revision as of 10:54, 27 September 2014
This resource lets You create some coronas. Not just your typical gtasa coronas that often times fail to appear. Since in this case corona Elements are created using dxDrawMaterialLine3d MTA function. I have changed the behaviour of the material to act as cylindrical billboards do.
Overview
It is easy to use, gives a few options to manage coronas.
The resource itself adds exported clientside functions:
Exported functions
createCorona
This function creates a shadered materialLine3d Corona.
bool exports.custom_coronas:createCorona(float posX,posY,posZ,size,int colorR,colorG,colorB,colorA,[bool isSoftParticle = false])
Required Arguments
- float posX, posY, posZ: Position in world space.
- float size: Size of the corona.
- int colorR,colorG,colorB,colorA: RGBA color (0 - 255).
Optional Arguments
- bool isSoftParticle: The aim with soft particles is to remove the ugly artifact that appears when the particle quad intersects the scene. The option requires DepthBuffer access.
Returns
The function returns true if set successfully, false otherwise.
createMaterialCorona
This function creates a shadered materialLine3d Corona with a custom material.
bool exports.custom_coronas:createMaterialCorona(element material,float posX,posY,posZ,size,int colorR,colorG,colorB,colorA,[bool isSoftParticle = false])
Required Arguments
- element material: Material to replace the standard corona texture with.
- float posX, posY, posZ: Position in world space.
- float size: Size of the corona.
- int colorR,colorG,colorB,colorA: RGBA color (0 - 255).
Optional Arguments
- bool isSoftParticle: The aim with soft particles is to remove the ugly artifact that appears when the particle quad intersects the scene. The option requires DepthBuffer access.
Returns
The function returns true if set successfully, false otherwise.
destroyCorona
This function destroys a shadered materialLine3d Corona element.
bool exports.custom_coronas:destroyCorona(element coronaElement)
Required Arguments
- element coronaElement: A previously declared corona element.
Returns
The function returns true if set successfully, false otherwise.
setCoronaMaterial
This function sets custom material for the corona.
bool exports.custom_billboards:setCoronaMaterial(element coronaElement,element material)
Required Arguments
- element coronaElement: A previously declared corona element.
- element material: Material to replace the standard corona texture with.
Returns
The function returns true if set successfully, false otherwise.
setCoronaSize
This function sets size of the corona.
bool exports.custom_billboards:setCoronaSize(element coronaElement,float size)
Required Arguments
- element coronaElement: A previously declared corona element.
- float size: Size of the corona.
Returns
The function returns true if set successfully, false otherwise.
setCoronaSizeXY
This function sets size of the corona (width and height).
bool exports.custom_billboards:setCoronaSizeXY(element coronaElement,float width,height)
Required Arguments
- element coronaElement: A previously declared corona element.
- float width, height: Size of the corona.
Returns
The function returns true if set successfully, false otherwise.
setCoronaPosition
This function sets corona position.
bool exports.custom_coronas:setCoronaPosition(element coronaElement,float posX,posY,posZ)
Required Arguments
- element coronaElement: A previously declared corona element.
- float posX, posY, posZ: Position in world space.
Returns
The function returns true if set successfully, false otherwise.
setCoronaColor
This function sets light color values.
bool exports.custom_coronas:setCoronaColor(element coronaElement,float colorR,colorG,colorB,colorA)
Required Arguments
- element coronaElement: A previously declared corona element.
- float colorR,colorG,colorB,colorA: RGBA color (0 - 255).
Returns
The function returns true if set successfully, false otherwise.
setCoronasDistFade
Set the Max distance of the corona to sync and the distance on which the it starts to fade out.
bool exports.custom_coronas:setCoronasDistFade(int MaxEffectFade,int MinEffectFade)
Required Arguments
- int MaxEffectFade: Set the Max distance of the corona to sync.(Must be greater than MinEffectFade).
- int MinEffectFade: Set the distance on which the corona starts to fade out.
Returns
The function returns true if set successfully, false otherwise.
Examples
function addStuff() for i=1,30 do for j=1,30 do exports.custom_coronas:createCorona(i * 7,j * 7,10,4,math.random()*255,math.random()*255,math.random()*255,1*255,false) end end end addEventHandler("onClientResourceStart", getResourceRootElement( getThisResource()), addStuff)
This creates a 400 coronas near position (0,0,0)
local vehicle1 = nil addEventHandler("onClientVehicleEnter", getRootElement(), function(thePlayer, seat) if thePlayer == getLocalPlayer() then vehicle1 = source end end ) local carLight = exports.custom_coronas:createCorona(0,0,0,4,math.random()*255,math.random()*255,math.random()*255,1*255) addEventHandler("onClientPreRender", root, function() if vehicle1 then xxx1,yyy1,zzz1 = getElementPosition(vehicle1) exports.custom_coronas:setCoronaPosition(carLight,xxx1,yyy1,zzz1) end end )
This creates a corona and attaches it to a vehicle that the player enters.
Of course when you want to use these functions in your resources you have to include the custom_coronas resource in meta.