🛠️Module Utils (Client / Shared)

Le module Eko.Utils regroupe des fonctions utilitaires génériques utilisées par l’ensemble du framework. Il est composé de sous-modules spécialisés (Math, Table, String, Streaming, Sprites) et d’outil


📦 API globale

Eko.Utils:Draw3DText(coords, text, size?, distance, linebreak?)

Affiche du texte en 3D dans le monde.

  • Paramètres

    • coords (vector3): Position.

    • text (string): Contenu.

    • size (number, optionnel): Taille du texte.

    • distance (number): Distance maximale d’affichage.

    • linebreak (boolean, optionnel): Autoriser les retours à la ligne.


Eko.Utils:Draw2DText(screenX, screenY, text, size, linebreak?)

Affiche du texte en 2D à l’écran.


Eko.Utils:KeyRegister(control, controlName, description, callback)

Enregistre un raccourci clavier.

  • Paramètres

    • control (string): Nom du contrôle (ex.: "INPUT_CONTEXT").

    • controlName (string): Libellé.

    • description (string): Description.

    • callback (function): Fonction appelée lors de l’appui.


Affiche une saisie clavier bloquante.

  • Retour

    • string?: Texte saisi ou nil.


Affiche un popup de paiement.

  • Paramètres

    • price (integer): Montant.

    • onSuccess (function): Callback en cas de validation.

    • onFail (function): Callback en cas d’échec.

    • reason (any): Informations complémentaires.


Convertit une couleur hexadécimale en RGB.

  • Retour

    • table: { r, g, b }


Exécute une fonction en capturant les erreurs.

  • Retour

    • boolean: Succès.

    • ...: Valeur(s) retournée(s) par la fonction.


Désactive les contrôles joueur pour l’UI.


Récupère le hash d’un contrôle GTA.

  • Retour

    • number: Hash unique.


Affiche une confirmation de suppression.

  • Paramètres

    • cb (function): Fonction appelée si validé.


🧮 Sous-module : Utils.Math

  • RotationToDirection(rotation) : Transforme une rotation en direction (vector3).

  • Clamp(value, min, max) : Limite une valeur.

  • Distance(v1, v2) : Distance entre deux vecteurs.

  • RotateVector(vector, angleDegrees) : Tourne un vecteur.

  • Dot(v1, v2) : Produit scalaire.


🗂️ Sous-module : Utils.Table

  • compare(a, b) : Compare deux tables.

  • compareMetadatas(a, b) : Compare deux tables de métadonnées.

  • count(tbl) : Nombre d’éléments.

  • map(tbl, cb) : Transforme chaque élément.

  • PairsByKeys(t, f) : Trie les paires par clé.

  • find(table, cb) : Trouve un élément.

  • has(table, value, key?) : Contient une valeur.

  • index(table, value) : Index d’un élément.

  • diff(t1, t2) : Différence entre deux tables.

  • IsEmpty(tbl) : Vérifie si vide.


📝 Sous-module : Utils.String

  • split(str, sep) : Divise une chaîne.


📦 Sous-module : Utils.Streaming

  • RequestAnimDict(animDict, timeout?)

  • RequestAnimSet(animSet, timeout?)

  • RequestModel(model, timeout?)

  • RequestStreamedTextureDict(textureDict, timeout?)

  • RequestNamedPtfxAsset(fxName, timeout?)

  • LoadCollisionsAroundEntity(entity)

Chaque méthode télécharge la ressource et retourne un identifiant.


🖼️ Sous-module : Utils.Sprites

  • Scale(ratio, dist, max) : Ajuste la taille selon la distance.

  • Draw(textureDict, textureName, width, height, coords, maxDist)

  • DrawNoColor(textureDict, textureName, width, height, coords, maxDist)

  • DrawNoScale(textureDict, textureName, width, height, coords, maxDist)

  • DrawCrosshair() : Affiche un réticule.


🛠️ Exemple d’utilisation


⚠️ Notes

  • Ces fonctions sont disponibles côté client et côté shared, sauf les méthodes d’affichage qui sont client uniquement.

  • Les modules Streaming et Sprites nécessitent un environnement GTA actif.

  • try() permet de capturer les erreurs sans interrompre l’exécution.

Last updated