PlayerTextDraw - Onde devemos usar? Pra que serve? -
ipsLuan - 19.06.2015
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):
- 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.
Quando se deve usar TextDraws dinвmicas (PlayerTextDraws):
- 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.
Quais sгo os seus limites?
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;
}
Exemplos de cуdigo com TextDraw global.
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;
}
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.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
ImperioHosting - 19.06.2015
Muito bom tutorial, +REP.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
GM_KoDi - 19.06.2015
Muito bom Luan, bem explicado e organizado o tуpico, vai ajudar muito a galera que estб aprendendo ou que ainda tem duvidas relacionadas a TextDraw e PlayerTextDraw
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
Lуs - 19.06.2015
Essa nomenclatura de variбveis fica confuso, fora do padrгo, estranho e atй mesmo "feio" no script em si.
Do mais, bom tutorial, apesar de simples.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
ipsLuan - 19.06.2015
Quote:
Originally Posted by Lуs
Essa nomenclatura de variбveis fica confuso, fora do padrгo, estranho e atй mesmo "feio" no script em si.
Do mais, bom tutorial, apesar de simples.
|
Costumo a usar ela, e acho um tesгo, fora dos padrхes porйm perfeita.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
n0minal - 19.06.2015
Quote:
new
Text: @_teste[MAX_PLAYERS],
|
Textdraws globais
nгo devem ser indexadas com MAX_PLAYERS, visto que criando assim vocк terб 500 textdraws criadas, quando na verdade sу precisa de 1.
Textdraws tкm que ser divididas em estбticas e dinвmicas, sendo respectivamente textdraws globais e playertextdraws.
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.
Quando se deve usar TextDraws dinвmicas (PlayerTextDraws):
- 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.
Limites:
TextDraws estбticas: 2048 <- Nгo й recomendado indexar valores altos.
TextDraws dinвmicas: 256
POR PLAYER, ou seja, vocк pode
indexar 256 PlayerTextDraws com MAX_PLAYERS.
Espero ter esclarecido, bom tutorial apesar de alguns erros.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
ipsLuan - 19.06.2015
Quote:
Originally Posted by ipsLeon
Textdraws globais nгo devem ser indexadas com MAX_PLAYERS, visto que criando assim vocк terб 500 textdraws criadas, quando na verdade sу precisa de 1.
Textdraws tкm que ser divididas em estбticas e dinвmicas, sendo respectivamente textdraws globais e playertextdraws.
Quando se deve usar TextDraws estбticas (TextDraws):
- TextDraws em geral que nгo precisem alterar seu valor para cada player, caso altere, tem que alterar para todos.
Quando se deve usar TextDraws dinвmicas (PlayerTextDraws):
- 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.
Limites:
TextDraws estбticas: 2048 <- Nгo й recomendado indexar valores altos.
TextDraws dinвmicas: 256 POR PLAYER, ou seja, vocк pode indexar 256 PlayerTextDraws com MAX_PLAYERS.
Espero ter esclarecido, bom tutorial apesar de alguns erros.
|
Correto, esqueci de retirar o MAX_PLAYERS e de citar algumas caracterнsticas.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
Jimmmy - 19.06.2015
Otimo tutorial parabкns
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
Sky™ - 19.06.2015
Saudaзхes !
Nгo esqueзa de citar que PlayerTextDraw costumam bugar com algumas sprites ... ao entrar uma quantidade de players ela buga ...
@recomendaзгo: nгo use muitos sprites em playertext ...
Bem legal, parabйns !
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
PT - 19.06.2015
Espero que agora aprendam a usar isso corretamente.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
FallweN - 19.06.2015
Bem explicado e organizado, parabйns.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
D3sconn3ct - 19.06.2015
Muitos nгo sabem mesmo sobre isso.
Bom tutorial
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
GetCode - 19.06.2015
Bom tutorial.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
n0minal - 19.06.2015
Quote:
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.
|
Se a textdraw sу aparecer pro ID 0 provavelmente й algum erro no script do jogador e nгo do id ou tipo da textdraw em si. Caso o scripter faзa um loop incorreto ou passe parвmetros incorretos na instruзгo de mostrar a textdraw pode causar o erro.
Ao criar qualquer tipo de sistema dinвmico (onde hб playertextdraws) geralmente vocк tambйm poderб usar textdraws estбticas para economizar, por exemplo, uma box de fundo padrгo pra todos os usuбrios nгo precisa ser em PlayerText, dб pra fazer uma boa economia de textdraws dinвmicas com isso.
Muito bom tutorial Luan, espero que continue a trazer conteъdos assim
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
ipsLuan - 19.06.2015
Sim, geralmente faзo isso.
Os boxs crio como global, mas as informaзхes coloco em PlayerTextDraw.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
HaRdiiZin - 19.06.2015
Parabйns.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
Monotox - 19.06.2015
Boas dicas, serб de grande utilidade em caso de dъvidas.
Respuesta: PlayerTextDraw - Onde devemos usar? Pra que serve? -
AndreLuiz - 19.06.2015
Bom tutorial
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
LockedLucas - 19.06.2015
Muito bom o tutorial luan.
Re: PlayerTextDraw - Onde devemos usar? Pra que serve? -
ipsLuan - 19.06.2015
Grato pelos feedbacks.