Créer des dialogues menu avec une action.
Présentation.
Tout d'abord, nous allons voir la différence entre les trois sortes de dialogue menu.
Voici les trois sortes de dialogue :
• DIALOG_STYLE_MSGBOX
• DIALOG_STYLE_LIST
• DIALOG_STYLE_INPUT
Le MSGBOX est à utiliser pour un message d'accueil etc. Exemple : Bienvenue sur mon serveur !!
Le LIST sert à établir une liste (utile pour les téléportations)
Le INPUT est l'endroit où vous devez écrire quelques chose avant d'appuyer sur le bouton (système de register/login)
Le ShowPlayerDialog se présente ainsi :
ShowPlayerDialog(playerid, dialogid, dialogstyle, "titre", "message", "bouton1", "bouton2");
Voyons à quoi correspond chaque critère :
• playerid : La personne qui va voir le ShowPlayerDialog.
• dialogid : Ici on met un chiffre ou un mot, exemple : 1. C'est utile pour ensuite se servir de OnDialogResponse.
• dialogstyle : On les a vu tout à l'heure, c'est : DIALOG_STYLE_MSGBOX, DIALOG_STYLE_LIST et DIALOG_STYLE_INPUT.
• titre : C'est là où vous mettrez votre titre.
• message : C'est ici que vous placerez votre message.
• bouton1 : En général c'est : Continuer.
• bouton2 : En général c'est : Quitter.
Dans votre message, utilisez \n pour revenir à la ligne et \t pour effectuer une tabulation.
Créer un message lors de la connexion d'un joueur.
Nous allons créer un message lors de la connexion du joueur. Il accepte, il entre sur le serveur et si il refuse, il est kické.
Dans la callback OnPlayerConnect, nous ajoutons :
public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Bienvenue", "Bienvenue sur mon serveur !", "Continuer", "Quitter");
return 1;
}
Dans OnDialogResponse nous ajoutons ceci :
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1) //On prend l'id du dialog que l'on a créé juste avant
{
if(response)
{
SendClientMessage(playerid,0x008000FF, "Bon jeu sur mon serveur"); //Le joueur a cliqué sur "Continuer"
}
else
{
SendClientMessage(playerid, 0xFF0000FF, "Tu as choisi 'Quitter' donc au revoir :)");
Kick(playerid); //On kick le joueur
}
return 1;
}
return 0;
}
Créer une commande pour voir les commandes du serveur.
Dans le exemple précédent, nous avons utilisé le DIALOG_STYLE_MSGBOX. Nous allons maintenant utiliser le DIALOG_STYLE_LIST.
Ca fonctionne comme le MSGBOX. Voici un exemple :
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/cmd", true) == 0)
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_LIST, "Menu des commandes", "Kill : Cela vous tue \n Armure : Cela vous donne une armure", "Ok", "Ok");
return 1;
}
return 0;
}
Dans le OnDialogResponse :
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 2)
{
if(response)
{
if(listitem == 0) //Le joueur clique sur la première ligne.
{
SetPlayerHealth(playerid, 0);
}
if(listitem == 1)//Le joueur clique sur la deuxième ligne.
{
SetPlayerArmour(playerid, 100.0);
return 1;
}
}
}
return 0;
}
Pour le DIALOG_STYLE_INPUT je ne le connais aps encore, je bais l'étudier et j'éditerais mon tuto si j'arrive à bien l'expliquer.