[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


Messages In This Thread
Criando TextDraw's que pisca :P - by CidadeNovaRP - 06.05.2012, 03:52
Respuesta: Criando TextDraw's que pisca :P - by Luciano* - 06.05.2012, 04:00
Re: Respuesta: Criando TextDraw's que pisca :P - by CidadeNovaRP - 06.05.2012, 04:03
Re: Criando TextDraw's que pisca :P - by Caio_Freeze - 06.05.2012, 04:06
Re: Criando TextDraw's que pisca :P - by CidadeNovaRP - 06.05.2012, 04:09
Re: Criando TextDraw's que pisca :P - by zbt - 06.05.2012, 04:19
Re: Criando TextDraw's que pisca :P - by zSuYaNw - 06.05.2012, 04:19
Re: Criando TextDraw's que pisca :P - by KaioBourne - 06.05.2012, 04:22
Re: Criando TextDraw's que pisca :P - by Lucas_Alemao - 06.05.2012, 04:26
Re: Criando TextDraw's que pisca :P - by 4LiSs0N - 06.05.2012, 11:48

Forum Jump:


Users browsing this thread: 1 Guest(s)