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
-
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.
-
Non, on ne peut pas, la police des TextDraw et des GameText est limitée.
++
Syg
-
D'accord.
EDIT: ABANDON
-
Nop possible j' ai vu un post ' hardcoder qui disait que Y less je pense avait creer un inc qui fixer le bug
-
je croit meme c'est sur un post de Mr C_30
-
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
-
ouep simpa :P mais comment a du eu les "id" de ces caracters ?
-
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