Raycasting::testCapsule: Difference between revisions
| (5 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
Raycast from point to point, where the ray has a radius. | Raycast from point to point, where the ray has a radius. | ||
==Syntax== | ==Syntax== | ||
< | <pre> | ||
mp.raycasting.testCapsule(pos1, pos2, radius, [ignoredEntity], [flags]); | |||
</pre> | |||
=== Required Arguments === | === Required Arguments === | ||
*'''pos1:''' Vector3 | *'''pos1:''' Vector3 | ||
*'''pos2:''' Vector3 | *'''pos2:''' Vector3 | ||
*'''radius:''' Float | *'''radius:''' Float | ||
*'''ignoreEntity:''' | *'''ignoreEntity:''' Array of entities handle or object | ||
*'''flags:''' | *'''flags:''' Array of ints | ||
===Return value=== | ===Return value=== | ||
*'''object:''' position (Entity Coordinates) , surfaceNormal, material (Entity Model) , entity (Handle) | *'''object:''' position (Entity Coordinates) , surfaceNormal, material (Entity Model) , entity (Handle) | ||
==Example== | ==Example== | ||
{{ClientsideCode| | |||
<pre> | |||
< | |||
mp.events.add('render', () => { | mp.events.add('render', () => { | ||
const startPosition = player.getBoneCoords(12844, 0.5, 0, 0); | const startPosition = player.getBoneCoords(12844, 0.5, 0, 0); | ||
| Line 26: | Line 30: | ||
} | } | ||
}); | }); | ||
</pre> | |||
</ | }} | ||
==See also== | ==See also== | ||
{{ | {{Raycast_functions_c}} | ||
[[Category:Clientside API]] | [[Category:Clientside API]] | ||
[[Category:TODO: Example]] | [[Category:TODO: Example]] | ||
Latest revision as of 17:43, 16 March 2025
Raycast from point to point, where the ray has a radius.
Syntax
mp.raycasting.testCapsule(pos1, pos2, radius, [ignoredEntity], [flags]);
Required Arguments
- pos1: Vector3
- pos2: Vector3
- radius: Float
- ignoreEntity: Array of entities handle or object
- flags: Array of ints
Return value
- object: position (Entity Coordinates) , surfaceNormal, material (Entity Model) , entity (Handle)
Example
Client-Side
mp.events.add('render', () => {
const startPosition = player.getBoneCoords(12844, 0.5, 0, 0);
const endPosition = new mp.Vector3(0, 0, 75);
const hitData = mp.raycasting.testCapsule(startPosition, endPosition, 0.5);
if (!hitData) {
mp.game.graphics.drawLine(startPosition.x, startPosition.y, startPosition.z, endPosition.x, endPosition.y, endPosition.z, 255, 255, 255, 255); // Is in line of sight
} else {
mp.game.graphics.drawLine(startPosition.x, startPosition.y, startPosition.z, endPosition.x, endPosition.y, endPosition.z, 255, 0, 0, 255); // Is NOT in line of sight
}
});