19.06.2010, 04:41
(
Последний раз редактировалось Lуs; 18.11.2016 в 01:28.
)
Aprendendo a mexer com textdraw
Introduзгo:
Eu estive vendo em alguns tуpicos recentes a quantidade de usuбrios que tinham dificuldades em utilizar Texdraw. Nгo й algo difнcil para um novato, hoje tem alguns pequenos aplicativos que nos ajudam bastante como o Zamaroth Textdraw editor ou iPleomax Textdraw Editor.
Este tutorial й para conhecimento do usuбrio, para ele saber como cada funзгo funciona e como ela se comporta no servidor.
Principais funзхes:
Funзгo | Explicaзгo |
TextDrawShowForPlayer | Serve para mostrar o textdraw somente ao player. |
TextDrawShowForAll | Mostra-rб para todos |
TextDrawHideForPlayer | Desligara o textdraw somente para o do Player (playerid) |
TextDrawHideForAll | Desligarб o TextDraw De Todos |
TextDrawDestroy | Apagarб o TextDraw,isto й mais usado no OnPlayerDisconnect |
Brasil=TextDrawCreate | criarб um novo text draw |
TextDrawAlignment | definirб se vai ser no Centro ou nos Lados |
TextDrawBoxColor | definirб se vai ter uma caixa no textdraw |
TextDrawBackgroundColor | definirб cor de fundo do textdraw |
TextDrawFont | Nem Preciso dizer que й a fonte do TextDraw |
TextDrawLetterSize | define o tamanho da letra do textdraw |
TextDrawColor | define a cor do textdraw |
TextDrawSetOutline | define se usarб uma estrutura |
TextDrawSetProportional | define a escala do texto se serб desproporcional ou nгo |
TextDrawSetShadow | Sombra do textdraw |
TextDrawUseBox | Se o textdraw usarб Um BOx ou nгo |
TextDrawSetString | Define uma string no textdraw |
Utilizando:
Para nуs criarmos qualquer textdraw, devemos primeiro criar uma variбvel aonde irб armazenar o ID do nosso textdraw!
pawn Код:
new Text:Brasil; //
A Funзгo TextDrawCreate cria um textdraw. quando o textdraw й criado ela й armazenada na variбvel Brasil o ID dela, para nуs termos total controle sobre ela.
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
return 1;
}
Quando determinamos que nosso textdraw nгo tem mais utilidade, precisaremos deletar ele para liberar a memуria armazenada na variбvel Brasil
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
TextDrawDestroy(Brasil);
return 1;
}
Para que nosso textdraw possa ser enxergado para todos, devemos exibi-la podendo usar duas funзхes, TextDrawShowForPlayer aonde й exibida somente para um jogador ou TextDrawShowForAll aonde й exibido hб todos ao mesmo tempo:
pawn Код:
public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid,Brasil);
TextDrawShowForAll(Brasil);
}
Quando queremos esconder um textdraw hб um jogador, usamos a funзгo TextDrawHidForPlayer, quando queremos esconder de todos os jogadores, usamos a funзгo TextDrawHideForAll:
pawn Код:
if (strcmp("/desligar", cmdtext, true) == 0)
{
TextDrawHideForPlayer(playerid,Brasil);
TextDrawHideForAll(Brasil);
return 1;
}
Com a funзгo TextdrawAlignment, podemos alinhar nosso texto ao tamanho dele!
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawAlignment(Brasil, 2); //
return 1;
}
Jб a funзгo TextdrawBoxColor gera uma "Caixa" atrбs do nosso textraw:
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawBoxColor(Brasil,0x000000FF);
return 1;
}
A Funзгo TextDrawBackgroundColor modifica a "sombra" de nosso textraw.
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawUseBox(Brasil,1);
TextDrawBackgroundColor(Brasil, 0xFFFFFFFF);//branco
return 1;
}
A Funзгo TextDrawFont, define o estilo da fonte que iremos exibir na tela do jogador, tendo disponнvel 3 estilos:
[img]http://i.imgur.com/hftLSbE.png[img]
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawFont(Brasil,1);
return 1;
}
A Funзгo TextDrawLetterSize define o tamanho do nosso texto. Quando utilizamos algum texto para ser clicado, devemos sempre definir essa funзгo! Caso tenha alguma dificuldade, sugiro ir ao нndice do post e usar o FilterScript do iPleomax.
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawLetterSize(Brasil, 3.2 ,5.1);
return 1;
}
A Funзгo TextDrawColor modifica a cor do texto da nossa textdraw, podendo ser usado nъmeros hexadecimais ou decimais e tambйm cores da funзгo GameTextForPlayer:
Код:
~n~ Nova linha ~r~ Vermelho ~g~ Verde ~b~ Azul ~w~ Branco ~y~ Amarelo ~p~ Roxo ~l~ Preto( L em minъsculo ) ~h~ Deixa seu texto mais claro(nгo funciona na cor preto).
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao ~r~H~h~e~h~x~~h~a");
TextDrawColor(Brasil,0xFFFFFFFF);//branco
return 1;
}
A Funзгo TextDrawSetOutline define o contorno nosso textdraw.
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawSetOutline(Brasil,1);//Define a espessura do Contorno
return 1;
}
A Funзгo TextDrawSetProportional deixa todas as letras em tamanho iguais e proporcionais ao resto da frase
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawSetProportional(Brasil,1);//booleano que indica se o TextDraw й proporcional
return 1;
}
Com a funзгo TextDrawSetShadow, й possнvel definir o tamanho da sombra no textdraw!
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawSetShadow(Brasil,1);//O tamanho da sombra
return 1;
}
A Funзгo TextDrawUseBox habilita uma "caixa" atrбs do nosso textdraw!
pawn Код:
public OnGameModeInit()
{
Brasil = TextDrawCreate(240.0,580.0,"Brasil Rumo Ao Hexa");
TextDrawUseBox(Brasil,1);
TextDrawBackgroundColor(Brasil, 0xFFFFFFFF);//branco
return 1;
}
A Funзгo TextDrawSetString modifica o texto original de uma textdraw, normalmente essa funзгo й utilizada
pawn Код:
new texto;
forward TrocarTexto();
public TrocarTexto(){
if(texto == 0) TextDrawSetString(Brasil, "Santa Catarina");
if(texto == 1) TextDrawSetString(Brasil, "Sao Ludgero");
if(texto == 2) TextDrawSetString(Brasil, "Braco do Norte");
if(texto == 3) TextDrawSetString(Brasil, "Orleans");
if(texto == 4) TextDrawSetString(Brasil, "Criciuma");
texto ++;
return SetTimer("TrocarTexto", 5000, false);
}
Novas funзхes:
Na versгo 0.3c foram adicionado vбrias funзхes extras para textdraw e tambйm criado uma seзгo para textdraw para apenas jogadores, chamado PlayerTextdraw aonde facilitam muito a vida do programador quando precisa de funзхes para apenas o jogador.
Todos os exemplos citados acima podem ser usados para PlayerTextDraw, a ъnica diferenзa й que em cada funзгo й adicionado um "Player":
Funзгo | Explicaзгo |
CreatePlayerTextDraw | Cria um textdraw |
PlayerTextDrawAlignment | Define um alinhamento em nossa textdraw. |
PlayerTextDrawBackgroundColor | Muda acorda da sombra de nosso textdraw |
PlayerTextDrawBoxColor | Modifica acorda "caixa" de nosso textdraw |
PlayerTextDrawColor | Define acordo nosso textdraw |
PlayerTextDrawDestroy | Destrуi a textdraw |
PlayerTextDrawFont | Definea fonte do textdraw |
PlayerTextDrawHide | Esconde a textdraw |
PlayerTextDrawLetterSize | Modificao tamanho do nosso textdraw |
PlayerTextDrawSetOutline | Habilita contorno de nosso textdraw |
PlayerTextDrawSetProportional | Modifica a escaladas letras, tornando todas alinhadas |
PlayerTextDrawSetShadow | Define a sombra em nosso textdraw |
PlayerTextDrawSetString | Modifica a frase do nosso textdraw |
PlayerTextDrawShow | Exibe o Textdraw para o jogador |
PlayerTextDrawTextSize | Modifica o tamanho do texto da nossa textdraw |
PlayerTextDrawUseBox | Habilita uma "Caixa" atrбs do nosso textdraw |
PlayerTextDrawSetSelectable | Define se a nossa textdraw pode ser clicada |
PlayerTextDrawSetPreviewModel | Define um modelo 3D para ser exibido em textdraw |
PlayerTextDrawSetPreviewRot | Define a rotaзгo de nosso textdraw 3D |
PlayerTextDrawSetPreviewVehCol | Modifica acordo nossoTextdraw 3D |
Como eu havia dito, as funзхes "PlayerTextdraw" sгo basicamente as mesmas que as citadas no inнcio do tуpico, exceto que algumas funзхes foram adicionadas como PlayerTextDrawSetSelectable aonde ativa um textdraw que pode ser clicado.
Como criar um textdraw clicбvel
Para fazer este feito, primeiro devemos criar um textdraw qualquer, neste exemplo vou usar para o PlayerTextdraw:
PHP код:
#include <a_samp>
new PlayerText:BemVindo[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
// Criando um textdraw, com as funзхes do nosso tutorial
BemVindo[playerid] = CreatePlayerTextDraw(playerid, 10.000000, 141.000000, "MyTextDraw");
PlayerTextDrawTextSize(playerid, BemVindo[playerid], 60.000000, 20.000000);
PlayerTextDrawAlignment(playerid, BemVindo[playerid],0);
PlayerTextDrawBackgroundColor(playerid, BemVindo[playerid],0x000000ff);
PlayerTextDrawFont(playerid, BemVindo[playerid], 1);
PlayerTextDrawLetterSize(playerid, BemVindo[playerid], 0.250000, 1.000000);
PlayerTextDrawColor(playerid, BemVindo[playerid], 0xffffffff);
PlayerTextDrawSetProportional(playerid, BemVindo[playerid], 1);
PlayerTextDrawSetShadow(playerid, BemVindo[playerid], 1);
// Habilitando que este textdraw й clicбvel
PlayerTextDrawSetSelectable(playerid, BemVindo[playerid], 1);
// Exibindo para o jogador
PlayerTextDrawShow(playerid, BemVindo[playerid]);
return 1;
}
Para nуs criar uma "reaзгo" para nosso textdraw, vamos usar a callback prуpria dele chamada OnPlayerClickPlayerTextDraw!
PHP код:
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid == BemVindo[playerid])
{
SendClientMessage(playerid, 0xFFFFFFAA, "Vocк clicou no textdraw!");
CancelSelectTextDraw(playerid);
}
return 1;
}
Ttransparкncia
Quote:
Em textdraws pode-se definir uma certa intensidade da cor, aonde podemos atй deixar um textdraw totalmente claro ou totalmente forte. Veja um exemplo:
Veja um exemplo: Aqui temos uma cor verde, eu ainda nгo defini nenhuma transparкncia para ela: Код:
0x00FF00 Код:
0x00FF0055 |
Crйditos:
#zSuYaNw @ 2016