Graphics::drawSpotLightWithShadow: Difference between revisions

From RAGE Multiplayer Wiki
(yay)
Line 21: Line 21:
*'''Undefined'''
*'''Undefined'''
==Example==
==Example==
This draws a spotlight with shadow from the source to the target, like a helicopter spotlight.
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
// todo
// Clientside
let veh = mp.vehicles.at(0); // Example, use any vehicle
let target = mp.players.at(0);  // Example, use any player
 
mp.events.add('render', () => {
    let forward = veh.getForwardVector(); // returns the entity forward vector; Example: {"x": 0.5455624, "y": 0.00233556, "z": 0.00021313}
   
    let dist = Math.round(mp.game.system.vdist2(veh.position.x, veh.position.y, veh.position.z, target.position.x, target.position.y, target.position.z) / 3);
    // Calculates the distance between the given coords; you can also use mp.game.gameplay.getDistanceBetweenCoords(), but it's slower
 
    let dest = new mp.Vector3((target.position.x - veh.position.x - forward.x * 3.4), (target.position.y - veh.position.y - forward.y * 3.4), (target.position.z - veh.position.z - forward.z * 3.4));
    // This is the destinated direction of the spotlight relative to the starting point (start.pos - target.pos - forward.pos * 3.4); "3.4" is just a multiplier to get the correct starting point of the spotlight
    // These are NOT the destinated coordinations, it's the direction where the spotlight have to aim at, relative to the global coordinate system
 
    let origin = new mp.Vector3(veh.position.x + forward.x * 3.4, veh.position.y + forward.y * 3.4, (veh.position.z + forward.z * 3.4) - 1);
    // Starting point
                                       
    mp.game.graphics.drawSpotLightWithShadow(origin.x, origin.y, origin.z, dest.x, dest.y, dest.z, 255, 255, 255, dist + 10, 10, 1, 5, 1, 0);
    // Draws the spotlight every frame.
}); 
</syntaxhighlight>
</syntaxhighlight>
==See also==
==See also==
{{Graphics_s_function_c}}
{{Graphics_s_function_c}}
[[Category:Clientside API]]
[[Category:Clientside API]]
[[Category:TODO: Example]]
[[Category:TODO: Example]]

Revision as of 17:50, 30 November 2017

Syntax

mp.game.graphics.drawSpotLightWithShadow(posX, posY, posZ, dirX, dirY, dirZ, colorR, colorG, colorB, distance, brightness, roundness, radius, falloff, shadow);

Required Arguments

  • posX: float
  • posY: float
  • posZ: float
  • dirX: float
  • dirY: float
  • dirZ: float
  • colorR: int
  • colorG: int
  • colorB: int
  • distance: float
  • brightness: float
  • roundness: float
  • radius: float
  • falloff: float
  • shadow: float

Return value

  • Undefined

Example

This draws a spotlight with shadow from the source to the target, like a helicopter spotlight.

// Clientside
let veh = mp.vehicles.at(0); // Example, use any vehicle
let target = mp.players.at(0);  // Example, use any player

mp.events.add('render', () => {
    let forward = veh.getForwardVector(); // returns the entity forward vector; Example: {"x": 0.5455624, "y": 0.00233556, "z": 0.00021313}
    
    let dist = Math.round(mp.game.system.vdist2(veh.position.x, veh.position.y, veh.position.z, target.position.x, target.position.y, target.position.z) / 3);
    // Calculates the distance between the given coords; you can also use mp.game.gameplay.getDistanceBetweenCoords(), but it's slower

    let dest = new mp.Vector3((target.position.x - veh.position.x - forward.x * 3.4), (target.position.y - veh.position.y - forward.y * 3.4), (target.position.z - veh.position.z - forward.z * 3.4));
    // This is the destinated direction of the spotlight relative to the starting point (start.pos - target.pos - forward.pos * 3.4); "3.4" is just a multiplier to get the correct starting point of the spotlight
    // These are NOT the destinated coordinations, it's the direction where the spotlight have to aim at, relative to the global coordinate system

    let origin = new mp.Vector3(veh.position.x + forward.x * 3.4, veh.position.y + forward.y * 3.4, (veh.position.z + forward.z * 3.4) - 1);
    // Starting point
                                         
    mp.game.graphics.drawSpotLightWithShadow(origin.x, origin.y, origin.z, dest.x, dest.y, dest.z, 255, 255, 255, dist + 10, 10, 1, 5, 1, 0);
    // Draws the spotlight every frame.
});

See also