[Tutorial] Criando TextDraw's que pisca :P
#1

Й isto ae, o Tнtulo jб diz tudo, leia os comentбrios do CODE atentamente, e depois poste

Agora temos 3 Modos, no Tutorial antigo, nгo iria funcionar corretamente, a cor nгo seria trocada .
MODO 1 (Apenas 2 Cores):
pawn Код:
#include <a_samp>

#define COR_TEXT_1 0xF60000AA //COR 1 da TextDraw
#define COR_TEXT_2 0x00F600AA //COR 2 da TextDraw

TrocarCor(playerid); //Definimos aqui para podermos usar a public
forward PararDePiscar(playerid); //Definimos aqui para podermos usar a public

new Text:Exemplo; //Necessario para criar a TextDraw
new bool:pText; //Serб usado a frente
new TimerForPlayer[MAX_PLAYERS]; //Iremos usar no KillTimer
new TimerForAll; //Iremos usar no KillTimer

public OnGameModeInit()
{
    Exemplo = TextDrawCreate(123.0, 123.0, "Tutorial by CidadeNovaRP -q"); //Criando a TetxDraw
    pText = false; //Setamos a variavel/bool pText a false
    return 1;
}

public TrocarCor(playerid) //public que troca a Text de cor de acordo com "playerid"
{
    if(playerid == -1)
    {
        if(pText == true) //Verifica se pText = true
        {
            TextDrawHideForAll(Exemplo); //Esconde a TextDraw para o "playerid"
            TextDrawColor(Exemplo, COR_TEXT_1); //Seta a cor de acordo com "COR_TEXT_1"
            TextDrawShowForAll(Exemplo); //Mostra a TextDraw pra vocк
            pText = false;
        }
        else //Se nгo for true...
        {
            TextDrawHideForAll(Exemplo); //Esconde a TextDraw para o "playerid"
            TextDrawColor(Exemplo, COR_TEXT_2); //Seta a cor de acordo com "COR_TEXT_2"
            TextDrawShowForAll(Exemplo); //Mostra a TextDraw pra vocк
            pText = true;
        }
    }
    if(pText == true) //Verifica se pText = true
    {
        TextDrawHideForPlayer(playerid, Exemplo); //Esconde a TextDraw para o "playerid"
        TextDrawColor(Exemplo, COR_TEXT_1); //Seta a cor de acordo com "COR_TEXT_1"
        TextDrawShowForPlayer(playerid, Exemplo); //Mostra a TextDraw pra vocк
        pText = false;
    }
    else //Se nгo for true...
    {
        TextDrawHideForPlayer(playerid, Exemplo); //Esconde a TextDraw para o "playerid"
        TextDrawColor(Exemplo, COR_TEXT_2); //Seta a cor de acordo com "COR_TEXT_2"
        TextDrawShowForPlayer(playerid, Exemplo); //Mostra a TextDraw pra vocк
        pText = true;
    }
    return 1;
}

public PararDePiscar(playerid) //public que para de piscar de acordo com o "playerid"
{
    if(playerid == -1) return TextDrawHideForAll(Exemplo), KillTimer(TimerForAll); //Esconde a TextDraw para todos e Mata/destroi o Timer se "playerid" == -1
    TextDrawHideForPlayer(playerid, Exemplo), KillTimer(TimerForPlayer[playerid]); //Esconde a TextDraw para o "playerid" e Mata/destroi o Timer
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/piscarparamim", cmdtext, true, 10) == 0)
    {
        TextDrawShowForPlayer(playerid, Exemplo); //Mostra a TextDraw pra vocк
        pText = false; //Setamos a variavel/bool pText a false
        TimerForPlayer[playerid] = SetTimerEx("TrocarCor", 1000, true, "i", playerid); //Chama a callback "TrocarCor"
        SetTimerEx("PararDePiscar", 30000, false, "i", playerid); //Timer para fazer parar de piscar para vocк
        return 1;
    }
    if (strcmp("/piscarparatodos", cmdtext, true, 10) == 0)
    {
        TextDrawShowForAll(Exemplo); //Mostra a TextDraw pra todos
        pText = false; //Setamos a variavel/bool pText a false
        TimerForAll = SetTimerEx("TrocarCor", 1000, true, "i", -1); //Chama a callback "TrocarCor"
        SetTimerEx("PararDePiscar", 30000, false, "i", -1); //Timer para fazer parar de piscar para todos
        return 1;
    }
    return 0;
}
MODO 2 (Cores variadas - [random]):
pawn Код:
#include <a_samp>

new Cores[8] = //Criamos a varivel que serб usada no Random
{
    0xFF0000AA, //VERMELHO
    0xFFFFFFAA, //BRANCO
    0x00FFFFAA, //AZUL MARINHO
    0x88FF9FAA, //VERDE
    0xFF9900AA, //LARANJA
    0xFFFF00AA, //AMARELO
    0x0000FFAA //AZUL
}; //Trocar o "[8]" pelo nъmero de suas cores + 1

TrocarCor(playerid); //Definimos aqui para podermos usar a public
forward PararDePiscar(playerid); //Definimos aqui para podermos usar a public

new Text:Exemplo; //Necessario para criar a TextDraw
new bool:pText; //Serб usado a frente
new TimerForPlayer[MAX_PLAYERS]; //Iremos usar no KillTimer
new TimerForAll; //Iremos usar no KillTimer

public OnGameModeInit()
{
    Exemplo = TextDrawCreate(123.0, 123.0, "Tutorial by CidadeNovaRP -q"); //Criando a TetxDraw
    pText = false; //Setamos a variavel/bool pText a false
    return 1;
}

public TrocarCor(playerid) //public que troca a Text de cor de acordo com "playerid"
{
    new rand = random(sizeof(Cores)); //Criamos a variavel Random das Cores
    if(playerid == -1)
    {
        if(pText == true) //Verifica se pText = true
        {
            TextDrawHideForAll(Exemplo); //Esconde a TextDraw para o "playerid"
            TextDrawColor(Exemplo, Cores[rand]); //Seta a cor de acordo com o Random
            TextDrawShowForAll(Exemplo); //Mostra a TextDraw pra vocк
            pText = false;
        }
        else //Se nгo for true...
        {
            TextDrawHideForAll(Exemplo); //Esconde a TextDraw para o "playerid"
            TextDrawColor(Exemplo, Cores[rand]); //Seta a cor de acordo com o Random
            TextDrawShowForAll(Exemplo); //Mostra a TextDraw pra vocк
            pText = true;
        }
    }
    if(pText == true) //Verifica se pText = true
    {
        TextDrawHideForPlayer(playerid, Exemplo); //Esconde a TextDraw para o "playerid"
        TextDrawColor(Exemplo, Cores[rand]); //Seta a cor de acordo com o Random
        TextDrawShowForPlayer(playerid, Exemplo); //Mostra a TextDraw pra vocк
        pText = false;
    }
    else //Se nгo for true...
    {
        TextDrawHideForPlayer(playerid, Exemplo); //Esconde a TextDraw para o "playerid"
        TextDrawColor(Exemplo, Cores[rand]); //Seta a cor de acordo com o Random
        TextDrawShowForPlayer(playerid, Exemplo); //Mostra a TextDraw pra vocк
        pText = true;
    }
    return 1;
}

public PararDePiscar(playerid) //public que para de piscar de acordo com o "playerid"
{
    if(playerid == -1) return TextDrawHideForAll(Exemplo), KillTimer(TimerForAll); //Esconde a TextDraw para todos e Mata/destroi o Timer se "playerid" == -1
    TextDrawHideForPlayer(playerid, Exemplo), KillTimer(TimerForPlayer[playerid]); //Esconde a TextDraw para o "playerid" e Mata/destroi o Timer
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/piscarparamim", cmdtext, true, 10) == 0)
    {
        TextDrawShowForPlayer(playerid, Exemplo); //Mostra a TextDraw pra vocк
        pText = false; //Setamos a variavel/bool pText a false
        TimerForPlayer[playerid] = SetTimerEx("TrocarCor", 1000, true, "i", playerid); //Chama a callback "TrocarCor"
        SetTimerEx("PararDePiscar", 30000, false, "i", playerid); //Timer para fazer parar de piscar para vocк
        return 1;
    }
    if (strcmp("/piscarparatodos", cmdtext, true, 10) == 0)
    {
        TextDrawShowForAll(Exemplo); //Mostra a TextDraw pra todos
        pText = false; //Setamos a variavel/bool pText a false
        TimerForAll = SetTimerEx("TrocarCor", 1000, true, "i", -1); //Chama a callback "TrocarCor"
        SetTimerEx("PararDePiscar", 30000, false, "i", -1); //Timer para fazer parar de piscar para todos
        return 1;
    }
    return 0;
}
MODO 3 (Sequencia de Cores):
pawn Код:
#include <a_samp>

#define COR_TEXT_1 0xFF0000AA //COR 1 da TextDraw
#define COR_TEXT_2 0xFFFF00AA //COR 2 da TextDraw
#define COR_TEXT_3 0x00FFFFAA //COR 3 da TextDraw
#define COR_TEXT_4 0x88FF9FAA //COR 4 da TextDraw
#define COR_TEXT_5 0xFF9900AA //COR 5 da TextDraw

TrocarCor(playerid); //Definimos aqui para podermos usar a public
forward PararDePiscar(playerid); //Definimos aqui para podermos usar a public

new Text:Exemplo; //Necessario para criar a TextDraw
new pText; //Serб usado a frente
new TimerForPlayer[MAX_PLAYERS]; //Iremos usar no KillTimer
new TimerForAll; //Iremos usar no KillTimer

public OnGameModeInit()
{
    Exemplo = TextDrawCreate(123.0, 123.0, "Tutorial by CidadeNovaRP -q"); //Criando a TetxDraw
    pText = false; //Setamos a variavel/bool pText a false
    return 1;
}

public TrocarCor(playerid) //public que troca a Text de cor de acordo com "playerid"
{
    if(playerid == -1) //Se for para Todos
    {
        #define TextDrawHide TextDrawHideForAll(Exemplo); //Define TextDrawHideForAll
        #define TextDrawShow TextDrawShowForAll(Exemplo); //Define TextDrawShowForAll
    }
    else //Se nгo for para todos
    {
        #undef TextDrawHide //Undefine TextDrawHide
        #undef TextDrawShow //Undefine TextDrawShow
        #define TextDrawHide TextDrawHideForPlayer(playerid, Exemplo); //Define TextDrawHideForPlayer
        #define TextDrawShow TextDrawShowForPlayer(playerid, Exemplo); //Define TextDrawShowForPlayer
    }
    if(pText == 0) //Verifica se pText = 0
    {
        TextDrawHide //Esconde a TextDraw para o "playerid" ou for all (de acordo com a #define)
        TextDrawColor(Exemplo, COR_TEXT_1); //Seta a cor de acordo com "COR_TEXT_1"
        TextDrawShow //Mostra a TextDraw para o "playerid" ou for all (de acordo com a #define)
        pText = 1;
    }
    else if(pText == 1) //Verifica se pText = 1
    {
        TextDrawHide //Esconde a TextDraw para o "playerid" ou for all (de acordo com a #define)
        TextDrawColor(Exemplo, COR_TEXT_2); //Seta a cor de acordo com "COR_TEXT_2"
        TextDrawShow //Mostra a TextDraw para o "playerid" ou for all (de acordo com a #define)
        pText = 2;
    }
    else if(pText == 2) //Verifica se pText = 2
    {
        TextDrawHide //Esconde a TextDraw para o "playerid" ou for all (de acordo com a #define)
        TextDrawColor(Exemplo, COR_TEXT_3); //Seta a cor de acordo com "COR_TEXT_3"
        TextDrawShow //Mostra a TextDraw para o "playerid" ou for all (de acordo com a #define)
        pText = 3;
    }
    else if(pText == 3) //Verifica se pText = 3
    {
        TextDrawHide //Esconde a TextDraw para o "playerid" ou for all (de acordo com a #define)
        TextDrawColor(Exemplo, COR_TEXT_4); //Seta a cor de acordo com "COR_TEXT_4"
        TextDrawShow //Mostra a TextDraw para o "playerid" ou for all (de acordo com a #define)
        pText = 4;
    }
    else if(pText == 4) //Verifica se pText = 4
    {
        TextDrawHide //Esconde a TextDraw para o "playerid" ou for all (de acordo com a #define)
        TextDrawColor(Exemplo, COR_TEXT_5); //Seta a cor de acordo com "COR_TEXT_5"
        TextDrawShow //Mostra a TextDraw para o "playerid" ou for all (de acordo com a #define)
        pText = 0;
    }
    return 1;
}

public PararDePiscar(playerid) //public que para de piscar de acordo com o "playerid"
{
    if(playerid == -1) return TextDrawHideForAll(Exemplo), KillTimer(TimerForAll); //Esconde a TextDraw para todos e Mata/destroi o Timer se "playerid" == -1
    TextDrawHideForPlayer(playerid, Exemplo), KillTimer(TimerForPlayer[playerid]); //Esconde a TextDraw para o "playerid" e Mata/destroi o Timer
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/piscarparamim", cmdtext, true, 10) == 0)
    {
        TextDrawShowForPlayer(playerid, Exemplo); //Mostra a TextDraw pra vocк
        pText = false; //Setamos a variavel/bool pText a false
        TimerForPlayer[playerid] = SetTimerEx("TrocarCor", 1000, true, "i", playerid); //Chama a callback "TrocarCor"
        SetTimerEx("PararDePiscar", 30000, false, "i", playerid); //Timer para fazer parar de piscar para vocк
        return 1;
    }
    if (strcmp("/piscarparatodos", cmdtext, true, 10) == 0)
    {
        TextDrawShowForAll(Exemplo); //Mostra a TextDraw pra todos
        pText = false; //Setamos a variavel/bool pText a false
        TimerForAll = SetTimerEx("TrocarCor", 1000, true, "i", -1); //Chama a callback "TrocarCor"
        SetTimerEx("PararDePiscar", 30000, false, "i", -1); //Timer para fazer parar de piscar para todos
        return 1;
    }
    return 0;
}
Vнdeo:
http://*********/ADrnrYyJr1U

Espero que gostem , comentem!
Reply
#2

hehe obrigado cara +rep.
Reply
#3

Quote:
Originally Posted by Luciano*
Посмотреть сообщение
hehe obrigado cara +rep.
De nada .
Reply
#4

codigo util.

й para samp 0.3e ?
Reply
#5

Quote:
Originally Posted by Caio_Freeze
Посмотреть сообщение
codigo util.

й para samp 0.3e ?
Qualquer SA-MP e se fosse Cуdigo Ъtil eu teria postado lб ("CУDIGOS ЪTEIS" e nгo "TUTORIAIS ЪTEIS").
Reply
#6

LOl, pra que tudo isso.

pawn Код:
new cores[] = {
    //cor1,
    //cor2,
    //cor3
};

//ongamemodeinit
TextDrawColor(Text:text, cores[random(sizeof cores)]);
SetTimer("NovaCor", 500, true);

//final
forward NovaCor();
public NovaCor() {
    TextDrawColor(Text:text, cores[random(sizeof cores)]);
    TextDrawShowForAll(Text:text);
    return true;
}
Reply
#7

Quote:
Originally Posted by zbt
Посмотреть сообщение
LOl, pra que tudo isso.

pawn Код:
new cores[] = {
    //cor1,
    //cor2,
    //cor3
};

//ongamemodeinit
TextDrawColor(Text:text, cores[random(sizeof cores)]);
SetTimer("NovaCor", 500, true);

//final
forward NovaCor();
public NovaCor() {
    TextDrawColor(Text:text, cores[random(sizeof cores)]);
    TextDrawShowForAll(Text:text);
    return true;
}
Digo o mesmo para vocк, criar um settimer em menos de 1 segundo,
o player nem vai notar a diferenзa
e tambйm, para quк criar varбveis desnecessбrias?

pawn Код:
// Crate Textdraw blablablб
SetTimer("NovaCor", 2500, true);

// EndGM
forward NovaCor(); public NovaCor()
{
    switch(random(3))
    {
        case 0: SetTextDrawColor(Text, 0xFF0000FF);
        case 1: SetTextDrawColor(Text, 0xFF00FFFF);
        case 2: SetTextDrawColor(Text, 0xFFFFFFFF);
    }
    TextDrawShowForAll(Text:text);
    return true;
}




Tуpico:
Coloca para FS, Bom trabalho.
Reply
#8

Pode postar uma screenshot?
Reply
#9

acho q dava pra explicar melhor..
Reply
#10

Entendi alguma coisa '--'
queria saber como faz pra ficar piscando a cor do nick
com somente duas cor
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)