19.06.2015, 16:31
Introduзгo
Visto que muita gente tem uma certa dificuldade neste ponto, resolvi entгo fazer este pequeno tutorial explicando um pouco das funзхes de cada tipo de TextDraw.
Qual a diferenзa dela para a TextDraw Global?
Como o prуpio nome jб fala, ela й global e й criada pra todos os jogadores que estгo conectados, jб as PlayerTextDraw sгo criadas pra um jogador especнfico.
* Exemplo: Se vocк for criar uma TextDraw colocando a quantidade de jogadores online, vocк terб que usar a global, mas se for usar apenas pra jogadores especнficos usarб a PlayerTextDraw.
Qual TextDraw devemos usar?
Quando se deve usar TextDraws estбticas (TextDraws):
O limite de PlayerTextDraw sгo de apenas 256 PER-PLAYER, enquanto as globais sгo de 2048.
Exemplo de cуdigo com PlayerTextDraw.
Exemplos de cуdigo com TextDraw global.
Perguntas frequentes
Pergunta: A TextDraw sу aparece pro ID 0, o que fazer?
Resposta: Use PlayerTextDraw.
Pergunta: Vou criar um sistema de informaзхes de cada jogador, qual devo usar?
Resposta: Use PlayerTextDraw.
Pergunta: Vou criar uma TextDraw pra mostrar o nome do servidor, qual devo usar?
Resposta: Use TextDraw global.
Crйditos
SA:MP Team - Pela include a_samp.
ipsLuan - Criador dos tutorial e pela maioria dos cуdigos.
Jimmmy - Pelo cуdigo @_teste. (Peguei de um sistema dele e adaptei).
ipsLeon - Por reportar algumas irregularidades.
*** ATENЗГO: Tуpico sujeito а alteraзхes.
Visto que muita gente tem uma certa dificuldade neste ponto, resolvi entгo fazer este pequeno tutorial explicando um pouco das funзхes de cada tipo de TextDraw.
Qual a diferenзa dela para a TextDraw Global?
Como o prуpio nome jб fala, ela й global e й criada pra todos os jogadores que estгo conectados, jб as PlayerTextDraw sгo criadas pra um jogador especнfico.
* Exemplo: Se vocк for criar uma TextDraw colocando a quantidade de jogadores online, vocк terб que usar a global, mas se for usar apenas pra jogadores especнficos usarб a PlayerTextDraw.
Qual TextDraw devemos usar?
Quando se deve usar TextDraws estбticas (TextDraws):
- TextDraws em geral que nгo precisem alterar seu valor ou outras instruзхes como cor, tamanho, sombra, cor da sombra, box, etc, para cada player, caso altere, tem que alterar para todos.
- Opostamente аs estбticas, sу use TextDraws dinвmicas caso seu valor ou outras informaзхes precisam ser modificadas para um player especнfico. Caso vocк queira que uma textdraw tenha uma string, cor, tamanho, etc, diferentes para cada player, aн vem a necessidade de textdraws dinвmicas.
O limite de PlayerTextDraw sгo de apenas 256 PER-PLAYER, enquanto as globais sгo de 2048.
Exemplo de cуdigo com PlayerTextDraw.
PHP Code:
/*
ipsLuan - since 2013
www.ipsteam.net
*/
#include <a_samp> //Incluimos a biblioteca a_samp.
/* vars */
new
PlayerText: @_teste[MAX_PLAYERS], //Criamos a variбvel e definimos como PlayerText.
@_format[34], //Criamos o variбvel @_format.
@_nome[24]; //Criamos a variбvel @_nome.
;
public OnPlayerConnect(playerid) {
/* PlayerTextDraw */
@_teste[playerid] = CreatePlayerTextDraw(playerid, 296.111083, 165.407409, "Seu nome: ipsLuan.");
PlayerTextDrawLetterSize(playerid, @_teste[playerid], 0.281666, 1.164445);
PlayerTextDrawAlignment(playerid, @_teste[playerid], 1);
PlayerTextDrawColor(playerid, @_teste[playerid], -1);
PlayerTextDrawSetShadow(playerid, @_teste[playerid], 0);
PlayerTextDrawSetOutline(playerid, @_teste[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, @_teste[playerid], 51);
PlayerTextDrawFont(playerid, @_teste[playerid], 3);
PlayerTextDrawSetProportional(playerid, @_teste[playerid], 1);
return 1;
}
public OnPlayerSpawn(playerid) {
GetPlayerName(playerid, @_nome, sizeof(@_nome); //Armazenamos o nome na string @_nome.
format(@_format, sizeof(@_format), "Seu nome: %s", @_nome); //Formatamos @_format.
PlayerTextDrawSetString(playerid, @_teste[playerid], @_format); //Setamos a PlayerTextDraw.
PlayerTextDrawShow(playerid, PlayerText:@_teste[playerid]);
print("DEBUG: Mostrou o nome"); //DEbug bбsico.
return 1;
}
PHP Code:
/*
ipsLuan - since 2013
www.ipsteam.net
*/
#include <a_samp> //Incluimos a biblioteca a_samp.
/* vars */
new
Text: @_teste, //Criamos a variбvel e definimos como Text global.
@_nome[24]; //Criamos a variбvel @_nome.
;
public OnGameModeInit() {
@_teste = TextDrawCreate(240.0, 580.0, "Bem vindo."); //Criamos a TextDraw.
SetTimerEx("@_esconder", 2000, false, "i", playerid); //Criamos um timer de 2 segundos.
return 1;
}
public OnPlayerConnect(playerid) {
TextDrawShowForPlayer(playerid, @_teste); //Mostramos a TextDraw.
return 1;
}
forward @_esconder(playerid);
public @_esconder(playerid) {
TextDrawHideForPlayer(playerid, @_teste); //Escondemos a TextDraw.
print("[DEBUG] TextDraw escondida."); //Debug bбsico.
return 1;
}
Pergunta: A TextDraw sу aparece pro ID 0, o que fazer?
Resposta: Use PlayerTextDraw.
Pergunta: Vou criar um sistema de informaзхes de cada jogador, qual devo usar?
Resposta: Use PlayerTextDraw.
Pergunta: Vou criar uma TextDraw pra mostrar o nome do servidor, qual devo usar?
Resposta: Use TextDraw global.
Crйditos
SA:MP Team - Pela include a_samp.
ipsLuan - Criador dos tutorial e pela maioria dos cуdigos.
Jimmmy - Pelo cуdigo @_teste. (Peguei de um sistema dele e adaptei).
ipsLeon - Por reportar algumas irregularidades.
*** ATENЗГO: Tуpico sujeito а alteraзхes.