[Tutorial] Criando relуgio com TextDraw
#1




1єPasso- Bom primeiramente Vamos baixar O Zamaroths TextDraw Editor
ou qualquer outro Editor de Textdraw que voзe usa.


Apos Ter feito isso , abra o TextDraw editor e crie duas draws Uma para Hora e outra Para data. Como na imagem a baixo.


Entao definimos elas no inicio Sao 2

pawn Код:
new Text:Textdraw0;
new Text:Textdraw1;
O nome da Draw pode ser qualquer 1 so to dando um Exemplo

Agora em OngameModeInit Jogaremos a textdraw feita debaixo do dinheiro


pawn Код:
Textdraw0 = TextDrawCreate(491.000000, 129.000000, "00:00:00");
    TextDrawBackgroundColor(Textdraw0, 255);
    TextDrawFont(Textdraw0, 1);
    TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
    TextDrawColor(Textdraw0, -1);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawSetProportional(Textdraw0, 1);
    TextDrawSetShadow(Textdraw0, 1);

    Textdraw1 = TextDrawCreate(489.000000, 115.000000, "00/00/00");
    TextDrawBackgroundColor(Textdraw1, 255);
    TextDrawFont(Textdraw1, 1);
    TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
    TextDrawColor(Textdraw1, -1);
    TextDrawSetOutline(Textdraw1, 0);
    TextDrawSetProportional(Textdraw1, 1);
    TextDrawSetShadow(Textdraw1, 1);
Feito isso Vamos para a parte do Script.

2єPasso- Vamos Definir uma Forward qualquer para O SetTimer da date e a hora.


pawn Код:
forward hora(playerid);
3єPasso- Vamos criar um Timer para que atualize a cada 1 segundo a hora e a data.

na callback OnGameModeInit coloque isso

pawn Код:
SetTimer("hora",1000,1);
4єPasso- Vamos criar A public que definimos na forward la emcima! a parte + importante para que o codigo funcione 100%

pawn Код:
public hora(playerid)
{
     new str[128],//criamos a primeira string
          str2[128],//criamos a segunda string
               year, //criamos a variavel Ano
                    month,//criamos a Varivel mes
                        day,//criamos a Variavel dia
                            hour,//criamos  a Variavel hora
                               minute,//criamos a Variavel minutos
                                   second;//criamos a variavel segundos

    getdate(year, month, day);//getamos a data em ANO:MES:DIA
    gettime(hour,minute,second);//getamos o tempo em HORAS:MINUTOS:SEGUNDOS
    new mes[12];//definimos uma Array para armarzenar os meses

    if(month == 1) { mes = "1"; }//criamos a primeira IF do mes 1 Voce poderia EX:colocar janeiro no lugar de '1'
    else if(month == 2) {mes = "2";}//getamos o mes 2
    else if(month == 3) {mes = "3";}//getamos o mes 3
    else if(month == 4) {mes = "4";}// Assim em diante lembrando, voce podera colocar o mes em nome! Nao em numeros ai fica a criterio!
    else if(month == 5) {mes = "5";}
    else if(month == 6) {mes = "6";}
    else if(month == 7) {mes = "7";}
    else if(month == 8) {mes = "8";}
    else if(month == 9) {mes = "9";}
    else if(month == 10) {mes = "10";}
    else if(month == 11) {mes = "11";}
    else if(month == 12) {mes= "12";}
    format(str, sizeof(str), "%d/%s/%d", day, mes,year);//criamos o formato da string sempre usando o '%d' no caso'DIA/MES/ANO' por isso %d/%d/%d
        TextDrawSetString(Text:Textdraw0, str);//aki a Draw para definir a string,Text:Textdraw0 e o nome da draw la no inicio, a 'str' e a que colocamos no inicio
        format(str2, sizeof(str2), "%d:%d:%d", hour, minute, second);//aqui usaremos a str2 usamos '%d:%d:%d' de Horas:minutos:segundos
    TextDrawSetString(Text:Textdraw1, str2);//se seu GM usa outra Draw no lugar da Text:Textdraw1 mude
}

5єPasso- Na callback onplayerconnect Vamos mostrar a draw pro player

pawn Код:
public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid, Textdraw0);//nome da draw no caso a que definimos la emcima
    TextDrawShowForPlayer(playerid, Textdraw1);
    return 1;
    }

Veja o resultado final




CREDITOS : JOKERBOY e zbt
Reply
#2

Desculpe se o codigo ficou mal indentado e por que ele foi feito rapido em um Bloco de notas! ai ja sabe neh Mais a intenзao foi ajudar! qualquer duvida pergunte ae
Reply
#3

sim sim utilizar 128 de string onde nгo se utilizaria nem 10? isso nгo vai ensinar um novato, no mбximo vai ensina-lo a fazer cуdigos errados.
Reply
#4

nao na verdade voce que esta errado colokei 128 caso ele Escreva demasiadas coisas portanto colokei 128 .
Reply
#5

128 nгo й o limite de uma string numa textdraw. de qualquer forma estб errado.
Reply
#6

Textdraws Limit
String Length 1024 characters
Reply
#7

Nossa, nуs fazemos para ajudar.
e ainda reclamam...
Reply
#8

month = Vai checar a mкs no getdate.
mes = vai exibir no textdraw oque inserimos "Janeiro" ou "01" ou "PrimeiroMes"..
pawn Код:
if(month == 1) mes = "Janeiro";
format(str, sizeof(str), "%d/%s/%d", day, mes,year);
Ficou Legal, bom trabalho ^^
Reply
#9

vlws
Reply
#10

Ficou legal.
Parabens
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)