10.07.2012, 13:54
Text Draws - How to
Por Kuddy
Quando eu comecei a codar, senti muita falta de um bom tutorial no assunto e embora este seja o meu primeiro, espero que seja de grande utilidade para alguйm.
1 - Introduзгo: - ui
Bom, antes de mais nada, vamos precisar criar uma textdraw.
Para criar o design da textdraw vamos utilizar o Zamaroth Text Draw Editor. Para carregar o Zamaroth й muito simples, primeiro baixe o FS, compile-o e coloque como Filterscript, sу isso.
2 - Zamaroth Text Draw Editor 1.0:
Para iniciarmos a nossa ediзгo de texts, vamos precisar ter o FS carregado, digitaremos /text e aparecerб o seguinte:
Criaremos um novo projeto, clique em New Project. Colocaremos o nome do nosso projeto, no meu caso eu coloquei Tutorial.
Agora iremos criar e selecionar nossas textdraws:
Agora vamos editar nossa textdraw, que apareceu encima da nossa tela.
Й muito importante, para facilitar nosso trabalho, criar as textdraws que variam separadas das texts que sempre terгo o mesmo texto. Tambйm й importante que vocк coloque um valor guia e algo que demarque o que aquela textdraw mostrarб
Terminei de fazer nossas text draws, nada muito bonito:
Apуs termos criado, editado e finalizado nossas texts, como em qualquer programa de ediзгo, teremos que exportar nosso projeto, recomendo fazerem desta maneira, fica mais fбcil para a nossa compreensгo depois
Apуs exportar, eu obtive o seguinte cуdigo na pasta scriptfiles (Como eu salvei com o nome Tutorial, ele aparecerб Tutorial.pwn):
Como o nosso objetivo nгo й fazer um filterscript, utilizaremos apenas uma parte do cуdigo gerado, uma parte do OnFilterScriptInit, de // Create The Textdraws atй for(new i....)
O cуdigo acima й o nosso design, vamos utilizar apenas ele do cуdigo gerado pelo Zamaroth Textdraw Editor.
3 - Pawnealizando:
Agora vamos comeзar a criar o nosso cуdigo para mudar o score e printar o valor de alguma variбvel qualquer.
Vamos fazer com que cada player veja um Score diferenciado, para os Scores nгo se confundirem, digo, para o player 0 nгo ver o score do player 10
Vamos colocar as definiзхes das textdraws com [MAX_PLAYERS], para que sejam criadas uma para cada player e tambйm vamos criar as textdraws na hora que o player conectar ao invez de ao gamemode iniciar, ficarб assim:
Para score, iremos pegar o valor atual do score e seta-lo na mesma hora. Como o score que eu estou utilizando serб por morte, irei colocar em OnPlayerDeath:
Agora caso queiramos mostrar alguma coisa na nossa textdraw Variбvel expecнfica, basta colocarmos:
Bom, estб pronto, o nosso cуdigo final poderia ser:
Print de como ficou:
Pronto, terminamos de criar algumas variбveis comuns.
4 - Textdraws selecionбveis:
Primeiramente, vamos fazer o mesmo que o anterior sу que agora com um design diferente, nгo vou explicar novamente pois basta subir, aprender a usar o Zamaroth e fazer um design de sua preferencia.
Irei fazer com um design muito parecido com o de um menu:
bom, agora vamos pegar o code gerado:
Para as textdraws selecionбveis nгo bugarem, й de suma importвncia colocar uma BOX.
Procure a ъltima linha da geraзгo de cada textdraw, para que ela possa ser selecionбvel, altere:
TextDrawTextSize(Textdraw3, 586.000000, 0.000000);
Altere o ъltimo valor para 10, como o exemplo:
TextDrawTextSize(Textdraw3, 586.000000, 10.000000);
O codigo ficarб:
Vamos fazer com que as textdraws se tornem selecionбveis:
E finalmente vamos fazer o comando para mostra-las:
Agora vamos colocar o que vai acontecer quando clicarmos na TextDraw:
De preferencia, para economizar linhas, coloque a funзгo para esconder as textdraws em public ou stock
Pronto, agora vocк jб poderб fazer uma textdraw selecionбvel e uma textdraw comum para mostrar variбveis in-game!Por Kuddy
Quando eu comecei a codar, senti muita falta de um bom tutorial no assunto e embora este seja o meu primeiro, espero que seja de grande utilidade para alguйm.
1 - Introduзгo: - ui
Bom, antes de mais nada, vamos precisar criar uma textdraw.
Para criar o design da textdraw vamos utilizar o Zamaroth Text Draw Editor. Para carregar o Zamaroth й muito simples, primeiro baixe o FS, compile-o e coloque como Filterscript, sу isso.
2 - Zamaroth Text Draw Editor 1.0:
Para iniciarmos a nossa ediзгo de texts, vamos precisar ter o FS carregado, digitaremos /text e aparecerб o seguinte:
Criaremos um novo projeto, clique em New Project. Colocaremos o nome do nosso projeto, no meu caso eu coloquei Tutorial.
Agora iremos criar e selecionar nossas textdraws:
Agora vamos editar nossa textdraw, que apareceu encima da nossa tela.
Й muito importante, para facilitar nosso trabalho, criar as textdraws que variam separadas das texts que sempre terгo o mesmo texto. Tambйm й importante que vocк coloque um valor guia e algo que demarque o que aquela textdraw mostrarб
Terminei de fazer nossas text draws, nada muito bonito:
Apуs termos criado, editado e finalizado nossas texts, como em qualquer programa de ediзгo, teremos que exportar nosso projeto, recomendo fazerem desta maneira, fica mais fбcil para a nossa compreensгo depois
Apуs exportar, eu obtive o seguinte cуdigo na pasta scriptfiles (Como eu salvei com o nome Tutorial, ele aparecerб Tutorial.pwn):
pawn Код:
/*
Filterscript generated using Zamaroht's TextDraw Editor Version 1.0.
Designed for SA-MP 0.3a.
Time and Date: 2012-7-10 @ 8:26:55
Instructions:
1- Compile this file using the compiler provided with the sa-mp server package.
2- Copy the .amx file to the filterscripts directory.
3- Add the filterscripts in the server.cfg file (more info here:
https://sampwiki.blast.hk/wiki/Server.cfg)
4- Run the server!
Disclaimer:
You have full rights over this file. You can distribute it, modify it, and
change it as much as you want, without having to give any special credits.
*/
#include <a_samp>
new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
public OnFilterScriptInit()
{
print("Textdraw file generated by");
print(" Zamaroht's textdraw editor was loaded.");
// Create the textdraws:
Textdraw0 = TextDrawCreate(18.000000, 116.000000, "Mano Tutorialz");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 1);
TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
TextDrawColor(Textdraw0, 16711935);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
Textdraw1 = TextDrawCreate(18.000000, 128.000000, "Score:");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 1);
TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
TextDrawColor(Textdraw1, 16711935);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
Textdraw2 = TextDrawCreate(18.000000, 140.000000, "Nossa variavel:");
TextDrawBackgroundColor(Textdraw2, 255);
TextDrawFont(Textdraw2, 1);
TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
TextDrawColor(Textdraw2, 16711935);
TextDrawSetOutline(Textdraw2, 0);
TextDrawSetProportional(Textdraw2, 1);
TextDrawSetShadow(Textdraw2, 1);
Textdraw3 = TextDrawCreate(148.000000, 140.000000, "255 [ variavel ]");
TextDrawBackgroundColor(Textdraw3, 255);
TextDrawFont(Textdraw3, 1);
TextDrawLetterSize(Textdraw3, 0.500000, 1.000000);
TextDrawColor(Textdraw3, 65535);
TextDrawSetOutline(Textdraw3, 0);
TextDrawSetProportional(Textdraw3, 1);
TextDrawSetShadow(Textdraw3, 1);
Textdraw4 = TextDrawCreate(71.000000, 128.000000, "255 [ score ]");
TextDrawBackgroundColor(Textdraw4, 255);
TextDrawFont(Textdraw4, 1);
TextDrawLetterSize(Textdraw4, 0.500000, 1.000000);
TextDrawColor(Textdraw4, 65535);
TextDrawSetOutline(Textdraw4, 0);
TextDrawSetProportional(Textdraw4, 1);
TextDrawSetShadow(Textdraw4, 1);
for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
TextDrawShowForPlayer(i, Textdraw0);
TextDrawShowForPlayer(i, Textdraw1);
TextDrawShowForPlayer(i, Textdraw2);
TextDrawShowForPlayer(i, Textdraw3);
TextDrawShowForPlayer(i, Textdraw4);
}
}
return 1;
}
public OnFilterScriptExit()
{
TextDrawHideForAll(Textdraw0);
TextDrawDestroy(Textdraw0);
TextDrawHideForAll(Textdraw1);
TextDrawDestroy(Textdraw1);
TextDrawHideForAll(Textdraw2);
TextDrawDestroy(Textdraw2);
TextDrawHideForAll(Textdraw3);
TextDrawDestroy(Textdraw3);
TextDrawHideForAll(Textdraw4);
TextDrawDestroy(Textdraw4);
return 1;
}
public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid, Textdraw0);
TextDrawShowForPlayer(playerid, Textdraw1);
TextDrawShowForPlayer(playerid, Textdraw2);
TextDrawShowForPlayer(playerid, Textdraw3);
TextDrawShowForPlayer(playerid, Textdraw4);
return 1;
}
pawn Код:
public OnGameModeInit()
{
// Create the textdraws:
Textdraw0 = TextDrawCreate(18.000000, 116.000000, "Mano Tutorialz");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 1);
TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
TextDrawColor(Textdraw0, 16711935);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
Textdraw1 = TextDrawCreate(18.000000, 128.000000, "Score:");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 1);
TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
TextDrawColor(Textdraw1, 16711935);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
Textdraw2 = TextDrawCreate(18.000000, 140.000000, "Nossa variavel:");
TextDrawBackgroundColor(Textdraw2, 255);
TextDrawFont(Textdraw2, 1);
TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
TextDrawColor(Textdraw2, 16711935);
TextDrawSetOutline(Textdraw2, 0);
TextDrawSetProportional(Textdraw2, 1);
TextDrawSetShadow(Textdraw2, 1);
Textdraw3 = TextDrawCreate(148.000000, 140.000000, "255 [ variavel ]");
TextDrawBackgroundColor(Textdraw3, 255);
TextDrawFont(Textdraw3, 1);
TextDrawLetterSize(Textdraw3, 0.500000, 1.000000);
TextDrawColor(Textdraw3, 65535);
TextDrawSetOutline(Textdraw3, 0);
TextDrawSetProportional(Textdraw3, 1);
TextDrawSetShadow(Textdraw3, 1);
Textdraw4 = TextDrawCreate(71.000000, 128.000000, "255 [ score ]");
TextDrawBackgroundColor(Textdraw4, 255);
TextDrawFont(Textdraw4, 1);
TextDrawLetterSize(Textdraw4, 0.500000, 1.000000);
TextDrawColor(Textdraw4, 65535);
TextDrawSetOutline(Textdraw4, 0);
TextDrawSetProportional(Textdraw4, 1);
TextDrawSetShadow(Textdraw4, 1);
}
3 - Pawnealizando:
Agora vamos comeзar a criar o nosso cуdigo para mudar o score e printar o valor de alguma variбvel qualquer.
Vamos fazer com que cada player veja um Score diferenciado, para os Scores nгo se confundirem, digo, para o player 0 nгo ver o score do player 10
Vamos colocar as definiзхes das textdraws com [MAX_PLAYERS], para que sejam criadas uma para cada player e tambйm vamos criar as textdraws na hora que o player conectar ao invez de ao gamemode iniciar, ficarб assim:
pawn Код:
new Text:Textdraw3[MAX_PLAYERS];// Topo do mode
new Text:Textdraw4[MAX_PLAYERS];// Topo do mode
public OnPlayerConnect(playerid)
{
Textdraw3[playerid] = TextDrawCreate(148.000000, 140.000000, "255"); // Variбvel
TextDrawBackgroundColor(Textdraw3[playerid], 255);
TextDrawFont(Textdraw3[playerid], 1);
TextDrawLetterSize(Textdraw3[playerid], 0.500000, 1.000000);
TextDrawColor(Textdraw3[playerid], 65535);
TextDrawSetOutline(Textdraw3[playerid], 0);
TextDrawSetProportional(Textdraw3[playerid], 1);
TextDrawSetShadow(Textdraw3[playerid], 1);
Textdraw4[playerid] = TextDrawCreate(71.000000, 128.000000, "255"); // Score
TextDrawBackgroundColor(Textdraw4[playerid], 255);
TextDrawFont(Textdraw4[playerid], 1);
TextDrawLetterSize(Textdraw4[playerid], 0.500000, 1.000000);
TextDrawColor(Textdraw4[playerid], 65535);
TextDrawSetOutline(Textdraw4[playerid], 0);
TextDrawSetProportional(Textdraw4[playerid], 1);
TextDrawSetShadow(Textdraw4[playerid], 1);
return 1;
}
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
new Str[10]; // Deixei a string apenas com 10 celulas pois acho que o score do player nгo vai passar de 9 caracteres :D
SetPlayerScore(killerid, GetPlayerScore(playerid) + 1);
// %d pois й um nъmero: %s = Texto, %i = int, %f = float etc
format(Str,sizeof(Str),"%d", GetPlayerScore(killerid); // Vamos converter nosso score para um texto
TextDrawSetString(Textdraw4[killerid], Str); // Setar o texto da textdraw
TextDrawShowForPlayer(killerid, Textdraw4[killerid]); // Mostrar / atualizar o valor da nossa text
// Demos um de score para o matador e este serб mostrado no TAB e no valor da nossa textdraw :D
return 1;
}
pawn Код:
new Str[10]; // Mude para a quantidade de valores mбximos da textdraw, exemplo: 123 seria 4 celulas pois o ъltimo valor deve ser nulo :D ( '\0' )
format(Str,sizeof(Str),"%d", Variavel[playerid]); // Variavel a ser utilizada
TextDrawSetString(Textdraw4[playerid], Str); // Setar o texto da textdraw
TextDrawShowForPlayer(playerid, Textdraw4[playerid]); // Mostrar / atualizar o valor da nossa text
pawn Код:
#include <a_samp>
new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3[MAX_PLAYERS];
new Text:Textdraw4[MAX_PLAYERS];
new Variavel[MAX_PLAYERS] = 3;
main()
{
print("\n \n Gamemode que so tem texdraws \n \n");
}
public OnGameModeInit()
{
AddPlayerClass(1,0,0,0,0,31,100,0,0,0,0);
Textdraw0 = TextDrawCreate(18.000000, 116.000000, "Mano Tutorialz");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 1);
TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
TextDrawColor(Textdraw0, 16711935);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
Textdraw1 = TextDrawCreate(18.000000, 128.000000, "Score:");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 1);
TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
TextDrawColor(Textdraw1, 16711935);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
Textdraw2 = TextDrawCreate(18.000000, 140.000000, "Nossa variavel:");
TextDrawBackgroundColor(Textdraw2, 255);
TextDrawFont(Textdraw2, 1);
TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
TextDrawColor(Textdraw2, 16711935);
TextDrawSetOutline(Textdraw2, 0);
TextDrawSetProportional(Textdraw2, 1);
TextDrawSetShadow(Textdraw2, 1);
return 1;
}
public OnPlayerConnect(playerid)
{
Textdraw3[playerid] = TextDrawCreate(148.000000, 140.000000, "255"); // Variбvel
TextDrawBackgroundColor(Textdraw3[playerid], 255);
TextDrawFont(Textdraw3[playerid], 1);
TextDrawLetterSize(Textdraw3[playerid], 0.500000, 1.000000);
TextDrawColor(Textdraw3[playerid], 65535);
TextDrawSetOutline(Textdraw3[playerid], 0);
TextDrawSetProportional(Textdraw3[playerid], 1);
TextDrawSetShadow(Textdraw3[playerid], 1);
Textdraw4[playerid] = TextDrawCreate(71.000000, 128.000000, "255"); // Score
TextDrawBackgroundColor(Textdraw4[playerid], 255);
TextDrawFont(Textdraw4[playerid], 1);
TextDrawLetterSize(Textdraw4[playerid], 0.500000, 1.000000);
TextDrawColor(Textdraw4[playerid], 65535);
TextDrawSetOutline(Textdraw4[playerid], 0);
TextDrawSetProportional(Textdraw4[playerid], 1);
TextDrawSetShadow(Textdraw4[playerid], 1);
// Vamos mostrar as textdraws!
new Str[10]; // Mude para a quantidade de valores mбximos da textdraw, exemplo: 123 seria 4 celulas pois o ъltimo valor deve ser nulo :D ( '\0' )
format(Str,sizeof(Str),"%d", Variavel[playerid]); // Variavel a ser utilizada
TextDrawSetString(Textdraw3[playerid], Str); // Setar o texto da textdraw
TextDrawShowForPlayer(playerid, Textdraw3[playerid]); // Mostrar / atualizar o valor da nossa text
new Str2[10];
format(Str2,sizeof(Str2),"%d", GetPlayerScore(playerid)); // Vamos converter nosso score para um texto
TextDrawSetString(Textdraw4[playerid], Str2); // Setar o texto da textdraw
TextDrawShowForPlayer(playerid, Textdraw4[playerid]); // Mostrar / atualizar o valor da nossa text
// Demos um de score para o matador e este serб mostrado no TAB e no valor da nossa textdraw :D
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
TextDrawDestroy(Textdraw3[playerid]); // Vamos destruнlas para poderem ser criadas novamente
TextDrawDestroy(Textdraw4[playerid]); // quando o player conectar :D
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
new Str[10]; // Deixei a string apenas com 10 celulas pois acho que o score do player nгo vai passar de 9 caracteres :D
SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
format(Str,sizeof(Str),"%d", GetPlayerScore(killerid)); // Vamos converter nosso score para um texto
TextDrawSetString(Textdraw4[killerid], Str); // Setar o texto da textdraw
TextDrawShowForPlayer(killerid, Textdraw4[killerid]); // Mostrar / atualizar o valor da nossa text
// Demos um de score para o matador e este serб mostrado no TAB e no valor da nossa textdraw :D
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/variavel", cmdtext, true, 10) == 0)
{
Variavel[playerid] = 10;
new Str[10]; // Mude para a quantidade de valores mбximos da textdraw, exemplo: 123 seria 4 celulas pois o ъltimo valor deve ser nulo :D ( '\0' )
format(Str,sizeof(Str),"%d", Variavel[playerid]); // Variavel a ser utilizada
TextDrawSetString(Textdraw3[playerid], Str); // Setar o texto da textdraw
TextDrawShowForPlayer(playerid, Textdraw3[playerid]); // Mostrar / atualizar o valor da nossa text
return 1;
}
return 0;
}
Pronto, terminamos de criar algumas variбveis comuns.
4 - Textdraws selecionбveis:
Primeiramente, vamos fazer o mesmo que o anterior sу que agora com um design diferente, nгo vou explicar novamente pois basta subir, aprender a usar o Zamaroth e fazer um design de sua preferencia.
Irei fazer com um design muito parecido com o de um menu:
bom, agora vamos pegar o code gerado:
pawn Код:
new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
public OnGameModeInit()
{
Textdraw4 = TextDrawCreate(433.000000, 123.000000, "_");
TextDrawBackgroundColor(Textdraw4, 255);
TextDrawFont(Textdraw4, 1);
TextDrawLetterSize(Textdraw4, 0.500000, 10.500002);
TextDrawColor(Textdraw4, -1);
TextDrawSetOutline(Textdraw4, 0);
TextDrawSetProportional(Textdraw4, 1);
TextDrawSetShadow(Textdraw4, 1);
TextDrawUseBox(Textdraw4, 1);
TextDrawBoxColor(Textdraw4, 167773490);
TextDrawTextSize(Textdraw4, 632.000000, 0.000000);
Textdraw0 = TextDrawCreate(449.000000, 122.000000, "Menu de chessus");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 0);
TextDrawLetterSize(Textdraw0, 0.889998, 2.399998);
TextDrawColor(Textdraw0, -1);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
Textdraw1 = TextDrawCreate(494.000000, 160.000000, "Opcao 1");
TextDrawBackgroundColor(Textdraw1, 503319240);
TextDrawFont(Textdraw1, 2);
TextDrawLetterSize(Textdraw1, 0.500000, 1.299999);
TextDrawColor(Textdraw1, -1);
TextDrawSetOutline(Textdraw1, 1);
TextDrawSetProportional(Textdraw1, 1);
TextDrawUseBox(Textdraw1, 1);
TextDrawBoxColor(Textdraw1, 842150500);
TextDrawTextSize(Textdraw1, 586.000000, 0.000000);
Textdraw2 = TextDrawCreate(494.000000, 179.000000, "Opcao 2");
TextDrawBackgroundColor(Textdraw2, 503319240);
TextDrawFont(Textdraw2, 2);
TextDrawLetterSize(Textdraw2, 0.500000, 1.299999);
TextDrawColor(Textdraw2, -1);
TextDrawSetOutline(Textdraw2, 1);
TextDrawSetProportional(Textdraw2, 1);
TextDrawUseBox(Textdraw2, 1);
TextDrawBoxColor(Textdraw2, 842150500);
TextDrawTextSize(Textdraw2, 586.000000, 0.000000);
Textdraw3 = TextDrawCreate(494.000000, 199.000000, "Opcao 3");
TextDrawBackgroundColor(Textdraw3, 503319240);
TextDrawFont(Textdraw3, 2);
TextDrawLetterSize(Textdraw3, 0.500000, 1.299999);
TextDrawColor(Textdraw3, -1);
TextDrawSetOutline(Textdraw3, 1);
TextDrawSetProportional(Textdraw3, 1);
TextDrawUseBox(Textdraw3, 1);
TextDrawBoxColor(Textdraw3, 842150500);
TextDrawTextSize(Textdraw3, 586.000000, 0.000000);
return 1;
}
Procure a ъltima linha da geraзгo de cada textdraw, para que ela possa ser selecionбvel, altere:
TextDrawTextSize(Textdraw3, 586.000000, 0.000000);
Altere o ъltimo valor para 10, como o exemplo:
TextDrawTextSize(Textdraw3, 586.000000, 10.000000);
O codigo ficarб:
pawn Код:
Code:
Textdraw4 = TextDrawCreate(433.000000, 123.000000, "_");
TextDrawBackgroundColor(Textdraw4, 255);
TextDrawFont(Textdraw4, 1);
TextDrawLetterSize(Textdraw4, 0.500000, 10.500002);
TextDrawColor(Textdraw4, -1);
TextDrawSetOutline(Textdraw4, 0);
TextDrawSetProportional(Textdraw4, 1);
TextDrawSetShadow(Textdraw4, 1);
TextDrawUseBox(Textdraw4, 1);
TextDrawBoxColor(Textdraw4, 167773490);
TextDrawTextSize(Textdraw4, 632.000000, 0.000000);
Textdraw0 = TextDrawCreate(449.000000, 122.000000, "Menu de chessus");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 0);
TextDrawLetterSize(Textdraw0, 0.889998, 2.399998);
TextDrawColor(Textdraw0, -1);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
Textdraw1 = TextDrawCreate(494.000000, 160.000000, "Opcao 1");
TextDrawBackgroundColor(Textdraw1, 503319240);
TextDrawFont(Textdraw1, 2);
TextDrawLetterSize(Textdraw1, 0.500000, 1.299999);
TextDrawColor(Textdraw1, -1);
TextDrawSetOutline(Textdraw1, 1);
TextDrawSetProportional(Textdraw1, 1);
TextDrawUseBox(Textdraw1, 1);
TextDrawBoxColor(Textdraw1, 842150500);
TextDrawTextSize(Textdraw1, 586.000000, 10.000000);
Textdraw2 = TextDrawCreate(494.000000, 179.000000, "Opcao 2");
TextDrawBackgroundColor(Textdraw2, 503319240);
TextDrawFont(Textdraw2, 2);
TextDrawLetterSize(Textdraw2, 0.500000, 1.299999);
TextDrawColor(Textdraw2, -1);
TextDrawSetOutline(Textdraw2, 1);
TextDrawSetProportional(Textdraw2, 1);
TextDrawUseBox(Textdraw2, 1);
TextDrawBoxColor(Textdraw2, 842150500);
TextDrawTextSize(Textdraw2, 586.000000, 10.000000);
Textdraw3 = TextDrawCreate(494.000000, 199.000000, "Opcao 3");
TextDrawBackgroundColor(Textdraw3, 503319240);
TextDrawFont(Textdraw3, 2);
TextDrawLetterSize(Textdraw3, 0.500000, 1.299999);
TextDrawColor(Textdraw3, -1);
TextDrawSetOutline(Textdraw3, 1);
TextDrawSetProportional(Textdraw3, 1);
TextDrawUseBox(Textdraw3, 1);
TextDrawBoxColor(Textdraw3, 842150500);
TextDrawTextSize(Textdraw3, 586.000000, 10.000000);
Vamos fazer com que as textdraws se tornem selecionбveis:
pawn Код:
// Logo abaixo da criaзгo delas, coloque as que serгo selecionбveis (ainda em OnGMinit)
TextDrawSetSelectable(Textdraw1, true); // Opзгo 1
TextDrawSetSelectable(Textdraw2, true); // Opзгo 2
TextDrawSetSelectable(Textdraw3, true); // Opзгo 3
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/chessus", cmdtext, true, 10) == 0)
{
TextDrawShowForPlayer(playerid, Textdraw4); // Como a box ficarб de fundo, crie-a em primeiro lugar ^^
TextDrawShowForPlayer(playerid, Textdraw0);
TextDrawShowForPlayer(playerid, Textdraw1);
TextDrawShowForPlayer(playerid, Textdraw2);
TextDrawShowForPlayer(playerid, Textdraw3);
SelectTextDraw(playerid, 0xC0C0C0AA); // 0xC0C0C0AA Й a cor que aparece quando passamos o mouse por cima dela
// SelectTextDraw й a funзгo para o mouse ficar livre para selecionar a textdraw :D
return 1;
}
return 0;
}
pawn Код:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Textdraw1)
{
SendClientMessage(playerid, 0xFFFFFFAA, "Vocк selecionou Textdraw1");
EsconderTexts(playerid);
return 1;
}
if(clickedid == Textdraw2)
{
SendClientMessage(playerid, 0xFFFFFFAA, "Vocк selecionou Textdraw2");
EsconderTexts(playerid);
return 1;
}
if(clickedid == Textdraw3)
{
SendClientMessage(playerid, 0xFFFFFFAA, "Vocк selecionou Textdraw3");
EsconderTexts(playerid);
return 1;
}
return 1;
}
pawn Код:
stock EsconderTexts(playerid)
{
TextDrawHideForPlayer(playerid, Textdraw0);
TextDrawHideForPlayer(playerid, Textdraw1);
TextDrawHideForPlayer(playerid, Textdraw2);
TextDrawHideForPlayer(playerid, Textdraw3);
TextDrawHideForPlayer(playerid, Textdraw4);
CancelSelectTextDraw(playerid); // Funзгo para voltar o mouse ao normal
return 1;
}
Crйditos:
Kuddy - Pelo tutorial
Zamaroth - Pelo editor
Dropbox - Hospedagem das imagens
Minha alergia - Por me deixar internado em um hospital e com tempo para fazer este tutorial.
Se o tutorial estб meio confuso, informe-me para que eu possa arruma-lo