
Waypoint
Des points de passage sous forme de marqueurs 3D dans le monde. Le point de passage GTA de la carte s'affiche automatiquement, d'autres scripts placent leurs propres points de passage via des exports côté client ou côté serveur. Le script n'a besoin d'aucun framework.
Prérequis
- OneSync, uniquement si des scripts serveur utilisent
onArrive(le serveur vérifie alors la distance)
Fonctionnalités
- Point de passage GTA en marqueur 3D avec la distance. Il est supprimé à l'arrivée.
- Deux types :
checkpointavec une ligne jusqu'au sol etsmallcomme marqueur flottant. - Réglable par point de passage : couleur, icône ou image, texte, distance, blip avec itinéraire GPS, durée de vie et une fonction à l'arrivée.
- Exports pour le client et le serveur.
- Économe : Seuls les points de passage les plus proches sont dessinés (
maxVisible), les instances de navigateur sont réutilisées et nettoyées quand elles ne servent plus.
Installation
- Place le dossier
off_waypointdans ton dossierresources. - Dans le
server.cfg:
ensure off_waypointConfiguration
config/settings/config.lua
| Option | Par défaut | Description |
|---|---|---|
serverInfo.name | 'OFF SCRIPTS' | Nom du serveur, affiché dans l'interface à la place de « OFF SCRIPTS » |
serverInfo.locale | 'de' | Langue : de, en, pl, fr, es ou it |
serverInfo.color | { 155, 89, 255 } | Couleur du serveur (RGB), aussi pour les points de passage sans color propre |
serverInfo.design | 3 | Design de l'interface : 1 = Classique, 2 = Ticket, 3 = Storefront |
type | 'checkpoint' | Type par défaut : 'checkpoint' ou 'small' |
drawDistance | 500.0 | Distance d'affichage par défaut en mètres |
displayDistance | true | Afficher la distance par défaut |
maxVisible | 6 | Nombre de points de passage affichés en même temps, les plus proches d'abord |
blip | { sprite = 162, color = 17, scale = 0.8 } | Valeurs par défaut des blips des points de passage |
mapWaypoint.enabled | true | Afficher le point de passage GTA en marqueur 3D |
mapWaypoint.type | 'checkpoint' | Type du point de passage GTA |
mapWaypoint.drawDistance | 10000.0 | Distance d'affichage du point de passage GTA |
mapWaypoint.arriveDistance | 25.0 | En dessous de cette distance, le point de passage GTA est supprimé, 0 = jamais |
Langues
Le texte par défaut des points de passage et les messages de la console se trouvent dans config/locales/ (un fichier par langue).
Options des points de passage
Tu peux passer ces champs à la création et à la modification. Seul coords est obligatoire.
| Champ | Description |
|---|---|
coords | vector3, vector4 ou { x, y, z } |
type | 'checkpoint' ou 'small' |
label | Texte sous la distance, false = pas de texte |
color | '#9b59ff' ou { 155, 89, 255 } |
icon / iconColor | Icône Phosphor (p. ex. 'ph-flag', par défaut 'ph-map-pin') et une couleur d'icône propre |
image | URL d'image au lieu d'une icône |
displayDistance | Afficher la distance |
size | Taille, par défaut 1.0 |
drawDistance / fadeDistance | Distance d'affichage et distance à partir de laquelle le point de passage s'estompe |
dynamicScaling | Devient plus grand et plus haut avec la distance, comme le point de passage GTA |
arriveDistance | Rayon d'arrivée en mètres, par défaut 5.0 |
onArrive | Fonction à l'arrivée : côté client (id, metadata), côté serveur (source, id) |
removeDistance | Supprimé dès que tu es aussi proche |
duration | Millisecondes avant la suppression du point de passage |
blip | true ou { sprite, color, scale, name, shortRange } |
route / routeColor | Itinéraire GPS vers le point de passage (place automatiquement un blip) et sa couleur |
groundZ / minHeight / maxHeight | Uniquement checkpoint : hauteur du sol de la ligne et limites de sa hauteur |
metadata | Données libres, renvoyées dans onArrive et GetWaypoint |
Pour les développeurs
-- Client
local id = exports.off_waypoint:AddWaypoint({
coords = vector3(215.0, -810.0, 30.7),
label = 'Retrait',
icon = 'ph-package',
color = '#3B9EFF',
route = true,
onArrive = function(id)
exports.off_waypoint:RemoveWaypoint(id)
end,
})
exports.off_waypoint:UpdateWaypoint(id, { label = 'Abgabe', coords = vector3(300.0, -900.0, 29.3) })
exports.off_waypoint:RemoveWaypoint(id) -- avec fondu, RemoveWaypoint(id, true) immédiatement
exports.off_waypoint:RemoveAllWaypoints() -- tous les points de passage de ton script
local waypoint = exports.off_waypoint:GetWaypoint(id)
local exists = exports.off_waypoint:HasWaypoint(id)
-- Serveur
local id = exports.off_waypoint:AddWaypoint(source, {
coords = vector3(215.0, -810.0, 30.7),
label = 'Lieferung',
onArrive = function(source, id)
exports.off_waypoint:RemoveWaypoint(source, id)
end,
})
exports.off_waypoint:UpdateWaypoint(source, id, { label = 'Neue Adresse' })
exports.off_waypoint:RemoveWaypoint(source, id)
exports.off_waypoint:RemoveAllWaypoints(source) -- tous les points de passage de ton script pour ce joueur
local exists = exports.off_waypoint:HasWaypoint(source, id)- Quand un script s'arrête, ses points de passage sont supprimés automatiquement.
onArrivecôté serveur ne se déclenche que si le joueur est vraiment à proximité selon le serveur.
Problèmes fréquents
| Problème | Solution |
|---|---|
| Les points de passage sont invisibles | web/dist manque – lance npm install et npm run build dans le dossier web. |
| Tous les points de passage ne sont pas visibles | Seuls les maxVisible plus proches sont affichés, augmente la valeur dans la config. |
| L'icône manque | Vérifie le nom sur phosphoricons.com, p. ex. ph-flag. |
onArrive côté serveur ne se déclenche pas | OneSync doit être activé et arriveDistance doit correspondre au lieu. |
Pas encore acheté ?
Voir Waypoint dans la boutique