SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 19/06/2015, 04:31 PM   #1
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,571
Reputation: 332
Default PlayerTextDraw - Onde devemos usar? Pra que serve?

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(playerid296.111083165.407409"Seu nome: ipsLuan.");
    
PlayerTextDrawLetterSize(playerid, @_teste[playerid], 0.2816661.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, @_nomesizeof(@_nome); //Armazenamos o nome na string @_nome.
    
format(@_formatsizeof(@_format), "Seu nome: %s", @_nome); //Formatamos @_format.
    
PlayerTextDrawSetString(playerid, @_teste[playerid], @_format); //Setamos a PlayerTextDraw.
    
PlayerTextDrawShow(playeridPlayerText:@_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.0580.0"Bem vindo."); //Criamos a TextDraw.
    
SetTimerEx("@_esconder"2000false"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.
__________________

Precisando de algum sistema? Chame!

ipsLuan is offline   Reply With Quote
Old 19/06/2015, 04:37 PM   #2
ImperioHosting
Big Clucker
 
ImperioHosting's Avatar
 
Join Date: Apr 2015
Location: Brasil/EUA/Canadá
Posts: 144
Reputation: 49
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

Muito bom tutorial, +REP.
__________________
Seu servidor precisa de um bom hosting? Ele precisa da Império Host


Suporte 24/7!
Liberação rápida!
Ping Baixo!
Proteção DoS/DDoS
Painel de fácil utilização!

SA:MP EUA: http://www.imperiohost.com.br/site/samp-eua.html
SA:MP Brasil: http://www.imperiohost.com.br/site/samp-brasil.html
VPS LINUX/WINDOWS: http://www.imperiohost.com.br/site/clouds.html
Cloud Anti-DDos: http://www.imperiohost.com.br/site/cloud-ddos.html
ImperioHosting is offline   Reply With Quote
Old 19/06/2015, 04:38 PM   #3
GM_KoDi
Gangsta
 
GM_KoDi's Avatar
 
Join Date: Oct 2012
Location: Brazil
Posts: 824
Reputation: 266
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

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
__________________
Skills with GTA SA and SA-MP
[✔] TextDraws [✔] Mapper [✔] 3D Modeler [✔] Pawn Scripts [✔] Cleo Scripts

GM_KoDi is offline   Reply With Quote
Old 19/06/2015, 04:39 PM   #4
Lós
High-roller
 
Lós's Avatar
 
Join Date: Sep 2010
Location: Casterly Rock
Posts: 4,371
Reputation: 513
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

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.
Lós is offline   Reply With Quote
Old 19/06/2015, 04:42 PM   #5
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,571
Reputation: 332
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

Quote:
Originally Posted by Lós View Post
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.
__________________

Precisando de algum sistema? Chame!

ipsLuan is offline   Reply With Quote
Old 19/06/2015, 04:44 PM   #6
n0minal
High-roller
 
n0minal's Avatar
 
Join Date: Mar 2013
Location: Rio de Janeiro
Posts: 4,049
Reputation: 789
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

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.
n0minal is offline   Reply With Quote
Old 19/06/2015, 04:48 PM   #7
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,571
Reputation: 332
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

Quote:
Originally Posted by ipsLeon View Post
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.
__________________

Precisando de algum sistema? Chame!

ipsLuan is offline   Reply With Quote
Old 19/06/2015, 05:08 PM   #8
Jimmmy
Gangsta
 
Jimmmy's Avatar
 
Join Date: Jul 2014
Location: Rio de Janeiro
Posts: 533
Reputation: 66
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

Otimo tutorial parabêns
__________________



Hospedagem de Site, Host SA:MP, Revenda SA:MP, Host MTA, Host minecraft e VPS, Antiddos incluído em todos planos.

Viva Virtual - Em desenvolvimento...

Faço scripts de samp por encomenda. Entra em contato PM!.
Jimmmy is offline   Reply With Quote
Old 19/06/2015, 05:18 PM   #9
Sky™
High-roller
 
Sky™'s Avatar
 
Join Date: Aug 2012
Location: Apple Computer™
Posts: 1,782
Reputation: 351
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

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 !
__________________
Sky™ is offline   Reply With Quote
Old 19/06/2015, 05:50 PM   #10
PT
Godfather
 
PT's Avatar
 
Join Date: Nov 2012
Location: Europe
Posts: 7,185
Reputation: 803
Default Re: PlayerTextDraw - Onde devemos usar? Pra que serve?

Espero que agora aprendam a usar isso corretamente.
PT is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Oque devemos fazer agora ? zwoorelook Português/Portuguese 4 16/02/2015 06:31 PM
Why PlayerTextDraw In FS will replace a PlayerTextDraw In GM? VivianKris Scripting Help 3 16/10/2014 06:54 AM
[Ajuda] Por onde começar?(Quase desistindo já de fazer meu próprio serve) yuran Português/Portuguese 3 28/12/2012 11:49 AM
Que VPS Gratis posso usar para abrir um Samp Serve? Panico622 Português/Portuguese 7 20/02/2012 09:19 PM
[DUV]Poder usar só se usar tal nick... '-' Guilherme_Canani Português/Portuguese 3 05/05/2010 09:51 PM


All times are GMT. The time now is 04:21 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.