Multijoueur
Page 1 sur 1 • Partagez
Multijoueur
Programmer sur Script
Multijoueur
Multijoueur
Le multijoueur de Script utilise de nombreuses fonctions de l'extension 39dll. Ces fonctions sont simplifiées et majoritairement gérées par Script afin de faciliter l'utilisation et les performances du multijoueur.
Le multijoueur se compose de 8 fonctions qui vous permettrons de créer des clients et des serveurs pour vos jeux et logiciels. Vous apprendrez à utiliser l'intégralité de ces fonctions dans ce tutoriel.
Activation du multijoueur
La fonction la plus importante du multijoueur se nomme:
multiplayer(etat,ip,port);
- etat: nombre réel déterminant l'état global du multijoueur
- 0 = Multijoueur désactivé (revient à laisser le jeu en solo)
- 1 = Multijoueur activé en mode serveur (relai qui assure la connexion entre les utilisateurs)
- 2 = Multijoueur activé en mode client (utilisateur)
- ip: chaine de caractères déterminant l'adresse IP du serveur
Pour une connexion Distant: l'ip sera l'adresse ip du pc hébergeant le serveur (utilisez le site monip.org pour voir votre adresse ip).
Vous devez préciser au client l'ip du serveur, mais le serveur n'a pas besoin de connaitre d'adresse ip particulière. Vous pouvez donc laisser cette valeur vide. Exemple: "" (guillemets vides)
- port: nombre déterminant le port auquel le client et le serveur se connecteront. N'utilisez pas un port déjà utilisé par un autre logiciel. Exemple: 12345 (pas de guillemets)
La fonction multiplayer(etat,ip,port); ne s'utilise qu'une seule fois, à lecture constante (dans le fichier script0.script par exemple) et sans aucune condition pouvant empêcher la lecture de cette ligne de code. Si vous souhaitez stopper une connexion multijoueur ne faites pas comme ceci:
- Code:
if connexion=1
{
multiplayer(1,"12.34.56.78",23456);
}
Faites plutôt comme ceci:
- Code:
if button(50,50,200,100,"Se connecter")
{
connexion=2;
}
if button(50,150,200,200,"Se deconnecter")
{
connexion=0;
}
multiplayer(connexion,"12.34.56.78",23456);
Pseudo en ligne
online_set_pseudo(pseudo);
Fonction permettant de modifier son pseudo en ligne. La fonction peut s'utiliser hors-connexion comme pendant une connexion. Le pseudo sera renommé sur tous les clients connectés au même serveur, le serveur s'occupera tout seul de relayer cette information.
Envoi et réception de données
writeonline(valeur,destinataire);
Fonction permettant d'envoyer une valeur à un client. Le destinataire se définit par un identifiant. Les clients sont numérotés de 1 à get_nb_players();
Utilisez la fonction get_player(id); pour obtenir le pseudo de la personne correspondant à l'identifiant donné.
Les clients n'ont pas besoin de préciser le destinataire puisque c'est toujours le serveur. Le serveur, en revanche, doit préciser le destinataire du message. S'il ne le précise pas, le message sera envoyé à tout le monde. Exemple: writeonline(valeur);
readonline();
Fonction vérifiant s'il y a de nouveaux messages reçu (attention, la fonction lis le premier message en attente de lecture, puis le supprime aussitôt). Ce nombre peut être interpréter dans une condition comme ceci:
- Code:
if readonline()
{
show_message("Message recu");
}
- Code:
variable=readonline();
show_message("Nombres de messages recus: "+string(variable));
La variable online_value contient la valeur reçu, et la variable online_id contient l'identifiant du client ayant envoyé ce message. l'identifiant zéro est le serveur.
Quelques fonctions importantes
get_connexions();
Fonction servant à prévenir les connexions et les déconnexions des clients.
- Code:
if get_connexions()
{
if online_etat=1
show_message(string(online_name)+" s'est connecté");
else if online_etat=0
show_message(string(online_name)+" s'est deconnecté");
}
Fonction servant de témoin de connexion. La fonction retourne 0 si le status est déconnecté, 1 si le status est serveur, ou 2 si le status est client. La fonction est utilisable dans une condition, mais peut aussi remplir une variable.
- Code:
if get_online()=0
{
show_message("Vous etes deconnecte");
}
- Code:
variable=get_online();
Retourne le pseudo du joueur correspondant à l'identifiant donné.
get_nb_players();
Retourne le nombre de joueurs connectés au même serveur. Fonction très utile lors de l'utilisation des identifiants.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|