Textdraw FR

From SA-MP Wiki

Jump to: navigation, search


Image:32px-Ambox_warning_orange.png Cet article n'est pas achevé(e). Il est possible que son contenu soit erroné ou incomplet.


Contents

Qu'est ce qu'un TextDraw ?

Un TextDraw est un texte qui sera dessiné sur l'écran. A l'instat de SendClientMessage ou encore GameTextForPlayer, les TextDraws peuvent être affichés sur l'écran n'importe où, à n'importe quel moment et pendant une durée illimitée. Les TextDraws peuvent être de simples textes tels qu'une adresse de site, ou encore être plus complexes tels qu'une barre de progression;

Déclaration de variable

Lorsque vous créez un TextDraw, vous pouvez décider si le TextDraw que vous venez de créer sera global (ex: l'adresse de votre site, une annonce globable) ou si il sera différent pour chaque joueur (ex: nombre de tués, nombre de morts, score).

TextDraws Globaux

Un TextDraw global est facile à faire et ne requiert qu'une variable. Cette variable peut être utilisée pour modifier le TextDraw ou ne l'afficher qu'à certains joueurs. La variable doit donc être une variable globale, créée en dehors de toute fonction ou callback, possédant le préfixe Text:.

new Text:gMyText = Text:INVALID_TEXT_DRAW;

TextDraw par joueur

Un TextDraw par joueur est exactemement la même chose qu'un TextDraw Global, à la différence que le TextDraw n'est crée que pour un seul joueur. C'est utile pour les TextDraws qui sont uniques aux joueurs, tels que des statistiques. Ils peuvent être utilisés pour outrepasser la limite de TextDraw globaux, actuellement vous pouvez créer 256 TextDraws au maximum par joueur. C'est aussi meilleur à gérer, ils se détruisent automatiquement lorsque le joueur se déconnecte.

new PlayerText:gMyPlayerText[MAX_PLAYERS] = {PlayerText:INVALID_TEXT_DRAW, ...};
Image:32px-Circle-style-warning.png

Note
Importante

Un tableau est toujours nécessaire pour le variable, les ID de TextDraws diffèrent d'un joueur à l'autre !



Les noms de fonctions ne changent pas beaucoup, 'TextDraw' devient 'PlayerTextDraw', à une exception: CreatePlayerTextDraw ('TextDrawSetString' devient'PlayerTextDrawSetString').

Créer le TextDraw

Dimension map.
Enlarge
Dimension map.

Après avoir crée la variable/le tableau où stocker les ID de vos TextDraws, vous pouvez procéder pour créer le TextDraw lui-même. Pour les TextDraws globaux, la création doit s'effectuer dans OnGameModeInit. Pour créer le TextDraw, la fonction TextDrawCreate doit être utilisée.

Notez que cette fonction ne fait que créer le TextDraw, les autres fonctions doivent être utilisées pour modifier et/ou afficher le TextDraw au(x) joueur(s).


Paramètres:
(TextDrawCreate(Float:x, Float:y, text[]))
xLes coordonnées X où créer le TextDraw.
yLes coordonnées Y où créer le TextDraw.
text[]Le texte du TextDraw.


Retourne:

L'ID du TexDraw crée.


Processons maintenant à la création du TextDraw:

public OnGameModeInit()
{
    gMyText = TextDrawCreate(320.0, 240.0, "Salut tout le monde !");
    return 1;
}

On a crée un TextDraw au centre de l'écran où il est écrit "Salut tout le monde !".

Modifier la police

Il y a 4 polices utilisables dans un TextDraw:

Image:Textdraw_font_styles.png

ID Info Astuce
0 La police de San Andreas. Utilisez le en haut d'un TextDraw ou en guise de titre, pas en tant que police principale.
1 Inclut des lettres minuscules et majuscules. Peut être utilisée pour beaucoup de texte
2 N'inclut que des lettres majuscules. Peut être utilisée à divers moments.
3 Police de GTA Conserve sa qualité si agrandie. Utile pour des textes larges.

Depuis SA-MP 0.3d, une nouvelle police (id 4) peut être utilisée. This is used in combination with the TextDrawCreate and TextDrawTextSize functions to show a texture 'sprite' on the player's screen. We'll cover this later.

Afficher le TextDraw

Dans cet exemple, le TextDraw a été crée globablement dans OnGameModeInit, et sera affiché au joueur quand il se connectera.

Pour afficher un TextDraw pour un seul joueur, la fonction TextDrawShowForPlayer doit être utilisée.


Paramètres:
(TextDrawShowForPlayer(playerid, Text:text))
playeridL'ID du joueur qui verra le TextDraw s'afficher.
textL'ID du TextDraw à afficher.


RetourneCette fonction ne retourne pas de valeur spécifique.


public OnGameModeInit()
{
    gMyText = TextDrawCreate(320, 320, "Hello World!");
    return 1;
}
 
public OnPlayerConnect(playerid)
{
    TextDrawShowForPlayer(playerid, gMyText);
    return 1;
}
Personal tools
Navigation
Toolbox