Files
Docs/docs/fr/scripting/mod-reference.md
T
2026-08-13 21:56:04 +01:00

63 lines
3.6 KiB
Markdown

!!! warning "Ce site est en cours de construction !"
```
Ce site est actuellement en cours de développement.
Vous pensez pouvoir aider ? N'hésitez pas à le faire en cliquant sur l'icône représentant un crayon à droite de la page !
Cela est possible sur **n'importe quelle page**.
```
# Référence du scripting des mods / en jeu
BeamMP vous permet également de créer vos propres **plugins côté client**. Nous avons mis à votre disposition plusieurs fonctions permettant de communiquer avec d'autres mods multijoueurs ainsi qu'avec les autres joueurs via le serveur.
# Fonctions
Voici la liste des fonctions disponibles pour le scripting :
| Fonction | Description |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `TriggerServerEvent("eventName", "data")` | Déclenche un événement dans l'environnement Lua du serveur. Les deux paramètres doivent être des chaînes de caractères. |
| `TriggerClientEvent("eventName", "data")` | Déclenche un événement dans l'environnement Lua local. Les deux paramètres doivent être des chaînes de caractères. Utile pour communiquer entre différents plugins. |
| `AddEventHandler("eventName", Function)` | Ajoute le deuxième paramètre à la liste des fonctions à exécuter lorsqu'un événement est reçu, localement ou depuis le serveur. La fonction reçoit **un paramètre**, contenant les données de l'événement sous forme de chaîne de caractères. |
# Exemples de code
Par exemple, pour analyser les messages du chat, vous pouvez utiliser l'événement `ChatMessageReceived` fourni par BeamMP :
```lua
local function chatReceived(msg) -- Reçoit l'événement avec ses paramètres
print("chat received: "..msg)
local i = string.find(msg, ":") -- Recherche le premier ':' servant à séparer l'expéditeur du message
if i == nil then
print("error parsing message: separator could not be found!")
return -- Le séparateur n'a pas été trouvé, on annule la fonction
end
print("index of separator: "..tostring(i))
local sender = string.sub(msg, 1, i-1) -- Sépare la chaîne en deux parties pour récupérer l'expéditeur
local message = string.sub(msg, i+1, -1) -- Récupère le contenu du message
print("sender: " .. sender)
print("message: ".. message)
end
AddEventHandler("ChatMessageReceived", chatReceived) -- Ajoute notre gestionnaire d'événement à la liste gérée par BeamMP
```
### Fonctionnement de l'exemple
L'événement `ChatMessageReceived` transmet le message du chat à la fonction `chatReceived`.
Le message reçu est ensuite séparé en deux parties :
* `sender` → le nom de l'expéditeur ;
* `message` → le contenu du message.
Le caractère `:` est utilisé comme séparateur entre les deux.
> **Remarque :** dans le code original, `string.find(s, ":")` semble être une erreur : la variable utilisée pour le message reçu est `msg`. Il faut donc utiliser `string.find(msg, ":")`, comme dans l'exemple corrigé ci-dessus.