Aller au contenu principal

OnDialogResponse

Paramètres​

Cette callback est appelée lorsqu'un joueur lorsqu'un joueur répond à une boîte de dialogue affichée à l'aide de ShowPlayerDialog en cliquant sur un bouton, en appuyant sur ENTRÉE / ÉCHAP ou en double-cliquant sur un élément de liste (si vous utilisez un DIALOG_STYLE_LIST).

NomDescription
int playeridID du joueur qui a répondu au dialog
int dialogidID du dialog auquel le joueur répond, assigné dans ShowPlayerDialog
int response1 pour le bouton de gauche, 0 pour celui de droite (s'il n'y a qu'un bouton apparent = toujours 1)
int listitemID de l'item sélectionné par le joueur _(commence à 0, seulement dans les DIALOG_STYLE_LIST, pour le reste c'est -1)
string inputtext[]Texte inséré dans la boîte de saisie par le joueur, ou le texte de l'élément de l'item sélectionné

Valeur de retour​

Return 1 à la fin de chaque boîte de dialogue manipulée. En revanche, return 0 à la fin de la callback.

Exemple​

// Dans un premier temps, définir l'ID du dialog concerné.
#define DIALOG_REGLES 1

// À mettre à la suite d'une commande, par exemple. Dans notre cas, il s'agit d'un style de dialog MSGBOX (n'affiche qu'un message).
ShowPlayerDialog(playerid, DIALOG_REGLES, DIALOG_STYLE_MSGBOX, "Serveur / Règlement", "- Pas de cheat\n- Pas de spam\n- Respect d'autrui\n\nAcceptez-vous ces règles ?", "Oui", "Non !");

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == DIALOG_REGLES)
{
if (response) // Si le joueur a cliqué sur "Oui"
{
SendClientMessage(playerid, COLOR_GREEN, "Merci d'avoir accepté les règles du serveur ! :)");
}
else // Si le joueur a fait ECHAP ou a cliqué sur "Non !"
{
Kick(playerid);
}
return 1; // Nous avons manipulé un dialog, donc return 1. Tout comme dans OnPlayerCommandText.
}

return 0; // Vous DEVEZ faire un return 0! Comme dans OnPlayerCommandText.
}

Notes​

remarque

Les paramètres peuvent changer selon le style de dialog (voir plus de styles de dialog).

astuce

C'est approprié d'utiliser switch à travers les différents IDs de dialog/listitem si vous en avez beaucoup.

attention

Le dialog ouvert par un joueur ne se cache pas quand le serveur redémarre, le serveur va afficher "Warning: PlayerDialogResponse PlayerId: 0 dialog ID doesn't match last sent dialog ID" si un joueur répond à ce dialog après le redémarrage.

Fonctions connexes​

Les fonctions suivantes peuvent être utiles, car elles sont liées à ce rappel d'une manière ou d'une autre.