GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: D3nko le 24 Septembre 2009, 11:05:19

Titre: Question [ABANDON] : J'aimerai savoir comment afficher les accents "éêûô etc"
Posté par: D3nko le 24 Septembre 2009, 11:05:19
Bonjour, j'ai terminé mon serveur gta presque entièrement traduit et j'ai enlevé tous les accents dans les message en gros car lorsque j'écris "ê" ça m'affiche "ù" lorsque j'écris "é" ça m'affiche "û", "û" = "ì" etc.
Bref, je voulais savoir si on pouvais les afficher d'une manière ou d'une autre.
Titre: Re : Question : J'aimerai savoir comment afficher les accents "éêûô etc"
Posté par: Syg le 24 Septembre 2009, 11:21:21
Non, on ne peut pas, la police des TextDraw et des GameText est limitée.

++
Syg
Titre: Re : Question : J'aimerai savoir comment afficher les accents "éêûô etc"
Posté par: D3nko le 24 Septembre 2009, 11:37:36
D'accord.

EDIT: ABANDON
Titre: Re : Question [ABANDON] : J'aimerai savoir comment afficher les accents "éêûô etc"
Posté par: Ssk le 24 Septembre 2009, 16:59:46
Nop possible j' ai vu un post ' hardcoder qui disait que Y less je pense avait creer un inc qui fixer le bug
Titre: Re : Question [ABANDON] : J'aimerai savoir comment afficher les accents "éêûô etc"
Posté par: cristab le 24 Septembre 2009, 19:28:58
je croit meme c'est sur un post de Mr C_30
Titre: Re : Question [ABANDON] : J'aimerai savoir comment afficher les accents "éêûô etc"
Posté par: Syg le 29 Septembre 2009, 11:58:34
Effectivement, c'est possible, les caractères accentuées existent dans la police mais ne sont pas au bon endroit, il faut donc faire une fonction de conversion.

Voici une fonction (faîte et testée par mes soins) qui converti un texte pour qu'il s'affiche correctement dans un GameText ou un TextDraw :
/*******************************************************
* FONCTION DE CONVERSION DE TEXTE POUR GAMETEXT ET TEXTDRAW *
************************************************************/
ConvertirTextePourGameText (Texte[])
{
new i;

for (i=0 ; i<strlen (Texte) ; i++)
{
switch (Texte[i])
{
case 'à': Texte[i] = 128;
case 'â': Texte[i] = 130;
case 'ä': Texte[i] = 131;
case 'ç': Texte[i] = 133;
case 'è': Texte[i] = 134;
case 'é': Texte[i] = 135;
case 'ê': Texte[i] = 136;
case 'ë': Texte[i] = 137;
case 'î': Texte[i] = 140;
case 'ï': Texte[i] = 141;
case 'ô': Texte[i] = 144;
case 'ö': Texte[i] = 145;
case 'ù': Texte[i] = 146;
case 'û': Texte[i] = 148;
case 'ü': Texte[i] = 149;
}
}
}

Attention : Elle ne fonctionne que pour les caractères accentués français.

Exemples d'utilisation :
new Texte[255] = "~r~B éèàöô GAUCHE SOURIS ~w~suivante~n~~r~ENTREE        ~w~precedente~n~~r~SHIFT DROIT          ~w~fin";
ConvertirTexte (Texte);
txtDanceHelper = TextDrawCreate (100.0, 400.0,Texte);

cmd = strtok (cmdtext, idx);

if(strcmp(cmd, "/aff", true)==0)
{
/* On récupère le caractère */
ConvertirTexte (cmdtext[idx]);
GameTextForPlayer (playerid, cmdtext[idx], 8000, 5);
return 1;
}

++
Syg
Titre: Re : Question [ABANDON] : J'aimerai savoir comment afficher les accents "éêûô etc"
Posté par: Mr_C30 le 29 Septembre 2009, 12:36:05
ouep simpa  :P mais comment a du eu les "id" de ces caracters ?
Titre: Re : Question [ABANDON] : J'aimerai savoir comment afficher les accents "éêûô etc"
Posté par: Syg le 29 Septembre 2009, 14:18:20
Peut-être parce que je suis omniscient .....

En fait, question d'habitude (ou d'expérience), j'ai juste fait une commande qui permet d'afficher le caractère correspondant à un code donné.

++
Syg