L'utilisation de variable globale dans un environnement multitâche est fortement déconseillé.
Voici une solution pour afficher de longs textes dans une boite de dialogue (nécessite #pragma dynamic si le compilateur se plaint) :
MaBoiteDeDialogueAide (playerid)
{
new Global[2048];
/* Construction de la chaine a mettre dans le boite de dialogue */
/* On commence par un strcpy */
strcpy (Global, "Voir les crédits ... (/credits)");
/* On enchaîne avec autant de format que l'on veut (dans la limite de la taille de la chaîne) */
format (Global, sizeof Global, "%s\n%s", Global, "But du mode ... (/but)");
format (Global, sizeof Global, "%s\n%s", Global, "Règles ... (/regles)");
format (Global, sizeof Global, "%s\n%s", Global, "Commandes générales ... (/plus)");
format (Global, sizeof Global, "%s\n%s", Global, "Téléportation ... (/telep)");
format (Global, sizeof Global, "%s\n%s", Global, "Animations ... (/anim ou /animlist)");
format (Global, sizeof Global, "%s\n%s", Global, "Système de compte ... (/caide)");
format (Global, sizeof Global, "%s\n%s", Global, "Death Match ... (/dm)");
/* On affiche la boite de dialogue */
ShowPlayerDialog (playerid, TYPE_DIALOG_AIDE, DIALOG_STYLE_LIST, "Aide en ligne", Global, "Afficher", "Fermer");
}Ce code est bien évidement adaptable.
Concernant le #pragma dynamic, il ne faut pas hésiter à s'en servir, la pile par défaut de PAWN est minuscule en comparaison à la taille de la mémoire sur un PC.
Sinon, les boites de dialogue sont limitées à 4096 caractères ( 4Ko).
++
Syg