Envoyer un message à la console sur Gmod

Découvre comment utiliser correctement la bibliothèque net sur Gmod

Niveau Débutant
6 minutes de lecture
Utiliser la bibliothèque net sur Gmod

Dans cette partie, nous allons créer un message net qui affichera "Hello, World!" dans la console de tous les joueurs connectés sur le serveur.

L'identifiant d'un message net.

Tous les messages net ont un identifiant unique qui vous permet d'exécuter une fonction lorsqu'il est reçu. Celui-ci est un string, une chaîne de caractères. Il doit obligatoirement être chargé côté serveur via la fonction util.AddNetworkString():

Cette fonction attribue un nombre unique entre 0 et 65535 à cet identifiant, qui sera transmis aux clients du serveur. Ce nombre sera l'en-tête de tous les messages net pour dire au client ou au serveur de quel message il s'agit.

Il est indispensable d'utiliser un identifiant unique pour éviter les collisions avec les autres addons d'un serveur qui pourraient utiliser le même identifiant. Une norme habituelle est d'utiliser le format suivant pour chaque net "NomUniqueDeVotreAddon:CeQueFaitVotreNet" comme par exemple "CreatorsArea:StartLearning", pour éviter toute collision.

Commencer un message net

Nous allons d'abord commencer le message net. Comme nous l'avons vu plus haut, un message net commence par son identifiant :

La fonction net.Start() nous permet de commencer un message. Faites attention, vous ne pouvez pas commencer un nouveau message sans en avoir fini un autre. Si cela se passe, vous aurez une erreur de ce type dans votre console :

Finir un message net

Un message net est considéré terminé lorsqu'il est envoyé, alors il est interdit d'en commencer un si vous n'êtes pas sûr de le finir : faites vos conditions avant de le lancer. Il existe trois fonctions pour envoyer (et donc terminer) un message:

Seul le serveur peut envoyer un message aux clients, les clients ne peuvent pas communiquer entre eux directement. Si nécessaire, vous devez envoyer le message au serveur puis le renvoyer au bon joueur. Pour notre cas, nous allons envoyer le message aux joueurs connectés :

Recevoir un message net

La bibliothèque net contient une fonction pour raccorder un nom de message à une fonction :

Dans cet exemple ci-dessus, nous ajoutons un callback au message Net.HelloWorld. Celui-ci affichera Hello, World! dans la console. La signature de la fonction du callback contient len, la taille en bits du message, et ply, le joueur qui a envoyé le message. Côté client, celui-ci sera nil comme le serveur est l'expéditeur.

Tester notre code

Nous allons maintenant tester notre message net. Voici une façon simple de le tester: addons/helloworld/lua/autorun/server/sv_hello.lua

addons/helloworld/lua/autorun/client/cl_hello.lua

Relancez votre serveur, et tapez un message dans le chat : vous devriez voir Hello, World! dans la console de votre client ! Félicitations, vous avez envoyé votre premier message net. Dans la prochaine partie, nous allons voir comment écrire des données dans nos messages net et les lire quand elles sont reçues.

Rejoindre la communauté de développeurs

Rejoins notre communauté de développeurs pour progresser et t'améliorer

Passer au chapitre suivant :