Salut,
un petit truc pour faire de belles listes de commandes:
#define DIALOG_CMDS (2345)//changer pour n'avoir aucun conflit de dialog
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_CMD)
{
if(response)
{
if(inputtext[0] == '/')
{
CallRemoteFunction("OnPlayerCommandText", "is", playerid, inputtext);
}
}
}
return 1;
}
CMD:cmds(playerid, params[])
{
ShowPlayerDialog(playerid, DIALOG_CMD, DIALOG_STYLE_LIST, "Commands", "/menu\n/dance\n/handsup\n/sit\n/cell\n/beer\n/smoke\n/wine\n/sprunk\n/cmd2", "Ok", "Cancel");
return 1;
}
NB. j'utilise zcmd dans cet exemple, mais le système est compatible avec tous les systèmes de commandes.
En gros, il s'agit d'une liste de commande en dialog qui permet d'exécuter les commandes en cliquant dessus.
Il est possible aussi de mettre des description aux commandes avec cette version:
#define CARACTERE_DE_SEPARATION " "
#define DIALOG_CMDS (2345)//changer pour n'avoir aucun conflit de dialog
public OnDialogResponse()
{
new idx = 0;
if(dialogid == DIALOG_CMDS)
{
if(response)
{
if(inputtext[0] == '/')
{
idx = strfind(inputtext, CARACTERE_DE_SEPARATION);//cherche le caractère de séparation et permet de couper si description il y a
if(idx != -1)//found the char
{
inputtext[idx] = '\0';//on retire la partie de description
}
CallRemoteFunction("OnPlayerCommandText", "is", playerid, inputtext);
}
}
}
return 1;
}
CMD:cmds(playerid, params[])
{
ShowPlayerDialog(playerid, DIALOG_CMD, DIALOG_STYLE_LIST, "Commands", "/menu Menu des options joueurs\n/dance Pour dancer!\n/handsup Pour lever les mains\n/sit Pour s'asseoir\n/cell Pour utiliser le cellulaire\n/beer Pour boire de la bière\n/smoke Pour fumer(pas recommandé)\n/wine Pour boire du vin\n/sprunk Pour boire une boisson gazeuse\n/cmd2 La suite des commandes", "Ok", "Cancel");
return 1;
}
PS. je n'ai pas testé cette version mais elle devrait fonctionner normalement...
Voilà, amusez vous
++Sim++