Exercice en Pawn - Avancй
#3

Code:
#define MAX_CHAR_BY_LINE                            50

new PlayerText:textdraw[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
    // CHARGEMENT DU TEXTDRAW
    textdraw[playerid] = CreatePlayerTextDraw(playerid,484.000000, 167.000000, "text");
    PlayerTextDrawBackgroundColor(playerid,textdraw[playerid], -1);
    PlayerTextDrawFont(playerid,textdraw[playerid], 1);
    PlayerTextDrawLetterSize(playerid,textdraw[playerid], 0.180000, 1.000000);
    PlayerTextDrawColor(playerid,textdraw[playerid], 255);
    PlayerTextDrawSetOutline(playerid,textdraw[playerid], 0);
    PlayerTextDrawSetProportional(playerid,textdraw[playerid], 1);
    PlayerTextDrawSetShadow(playerid,textdraw[playerid], 0);
    PlayerTextDrawSetSelectable(playerid,textdraw[playerid], 0);
    return 1;
}
stock ShowTextDrawForPlayer(playerid, text[])
{
    new str[256], line=0;
    [COLOR="DarkGreen"]// format(str, sizeof str, text);[/COLOR]
    strunpack(str, text); [COLOR="Green"]// EDIT - format remplacer par strunpack (plus rapide car  ne gиre pas les arguments)[/COLOR]
    for(new i = 0; i < strlen(str); i++){
        line++;
        if(line >= MAX_CHAR_BY_LINE && str[i] == ' ') strins(str, "~n~", i), line = 0;
    }
    convert_encoding(str);
    PlayerTextDrawSetString(playerid, textdraw[playerid], str);
    PlayerTextDrawShow(playerid, textdraw[playerid]);
    return 1;
}
stock convert_encoding(string[])    // CONVERSION DES CARACTERES SPECIAUX
{
    new original[50] = {192,193,194,196,198,199,200,201,202,203,204,205,206,207,210,211,212,214,217,218,219,220,223,224,225,226,228,230,231,232,233,234,235,236,237,238,239,242,243,244,246,249,250,251,252,209,241,191,161,176};
    new fixed[50] = {128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,94,124};
    new len = strlen(string);
    for (new i; i < len; i++) {
        for(new j;j < 50;j++) {
            if(string[i] == original[j]) {
                string[i] = fixed[j];
                break;
            }
        }
    }
}

Voila, alors pas eu besoin de '%', strins fait parfaitement l'affaire :).

- Je dйfinie une directive 'define' pour indiquer au bout de combien de caractиre ce fera mon retour а la ligne.
- Je charge les caractйristique du textdraw dans "OnPlayerConnect" puisque j'ai utilisй les textdraw propre au joueur.

- Je crйй une fonction avec un paramиtre 'text' pour indiquer le texte а afficher :
Dans cette fonction je stock sur 'str' mon paramиtre 'text' et je dйfinie une variable nommй 'line' qui m'indiquera quand le retour а la ligne doit ce faire sur cette ligne. je lance une boucle 'for' qui ce rйpйtera sur chaque caractиre de 'str', j'incrйmente 'line' а chaque lancement de la boucle et si line >= MAX_CHAR_BY_LINE et que je suis sur un caractиre qui est un espace alors j'insиre '~n~' avec strins et rйinitialise line а 0 pour la prochaine ligne.
Ensuite j'utilise la fonction 'convert_encoding' sur 'str' afin fixй les caractиres spйciaux (si il y en a) pour le textdraw, j'affecte la variable 'str' sur le textdraw et je l'affiche au joueur.

Voila j'espиre que c'est comprйhensible ^^.
Reply


Messages In This Thread
Exercice en Pawn - Avancй - by Dutheil - 16.04.2015, 20:40
Re : Exercice en Pawn - Avancй - by Z3N0N - 16.04.2015, 21:03
Re : Exercice en Pawn - Avancй - by Ivory - 17.04.2015, 15:01
Re : Exercice en Pawn - Avancй - by Dutheil - 17.04.2015, 15:16
Re : Exercice en Pawn - Avancй - by Ivory - 17.04.2015, 16:06
Re : Exercice en Pawn - Avancй - by Chipardeur - 17.04.2015, 16:17
Re : Exercice en Pawn - Avancй - by Ivory - 17.04.2015, 16:19
Re : Exercice en Pawn - Avancй - by Dutheil - 17.04.2015, 16:31
Re : Exercice en Pawn - Avancй - by Ivory - 17.04.2015, 18:52
Re : Exercice en Pawn - Avancй - by TheWWorld - 19.04.2015, 11:18
Re : Exercice en Pawn - Avancй - by Vukilore - 19.04.2015, 11:31
Re : Exercice en Pawn - Avancй - by Sunaxx - 22.04.2015, 18:50
Re : Exercice en Pawn - Avancй - by MrAlexisX2 - 24.04.2015, 12:19
Re : Exercice en Pawn - Avancй - by TheWWorld - 27.04.2015, 17:44
Re : Exercice en Pawn - Avancй - by nicolaskettler - 03.05.2015, 22:45
Re : Exercice en Pawn - Avancй - by nicolaskettler - 03.05.2015, 22:47
Re : Exercice en Pawn - Avancй - by S4t3K - 04.05.2015, 09:31
Re: Exercice en Pawn - Avancй - by Noliax8 - 04.05.2015, 09:36
Re : Exercice en Pawn - Avancй - by S4t3K - 04.05.2015, 09:40
Re : Exercice en Pawn - Avancй - by Chipardeur - 04.05.2015, 23:38
Re : Exercice en Pawn - Avancй - by S4t3K - 05.05.2015, 12:42
Re : Exercice en Pawn - Avancй - by Ivory - 05.05.2015, 14:46
Re : Exercice en Pawn - Avancй - by S4t3K - 05.05.2015, 15:08
Re : Exercice en Pawn - Avancй - by Ivory - 05.05.2015, 17:09
Re : Exercice en Pawn - Avancй - by Chipardeur - 06.05.2015, 02:12
Re: Exercice en Pawn - Avancй - by TheArrow - 06.05.2015, 07:34
Re : Exercice en Pawn - Avancй - by Ivory - 06.05.2015, 08:42
Re : Exercice en Pawn - Avancй - by S4t3K - 06.05.2015, 14:18
Re : Exercice en Pawn - Avancй - by Ivory - 06.05.2015, 15:35
Re : Exercice en Pawn - Avancй - by Dutheil - 20.05.2015, 19:25
Re : Exercice en Pawn - Avancй - by S4t3K - 06.11.2015, 10:29
Re : Exercice en Pawn - Avancй - by S4t3K - 08.11.2015, 15:36

Forum Jump:


Users browsing this thread: 2 Guest(s)