[Ajuda] TextDraws muda de cor
#1

Queria saber como fazer as textdraws ficar mudando de cor.
Ex:
Forum SAMP
Ai a cada 2 Segundos ela vai mudando de cor, do Vermelho vai pro azul, do azul pro amarelo e assim em diante, eu achei um tutorial mais pra mensagem, queria saber se serve pra TextDraws e como posso fazer isso .
Reply
#2

Teste ai se ficou bom.
pawn Код:
#include <a_samp>


public OnFilterScriptInit()
{
    SetTimer("Mudarcor",500,1);   //configure como quiser, so nao abuse
    return 1;
}

new PlayerText:BarraNomeSever[MAX_PLAYERS][2];

new Cores[] =
{
    0x5EB7E3AA,
    0xCD6CF6F6,
    0x685000F6,
    0x00FF00AA,
    0xFFFF00AA,
    0x00FF80AA,
    0xFF00FFAA,
    0xFF0080AA,
    0xFF8000AA,
    0x008040AA,
    0xC0C0C0AA,
    0x00FF80AA,
    0x00A854AA,
    0xFF0080AA,
    0x20D1DFAA,
    0x03FC6CAA,
    0xDC51FFAA,
    0xFF00FFFF,
    0x000080AA,
    0xDDB322AA,
    0x70FEBAAA,
    0x26D98DAA,
    0x33ff33AA
};

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    LoadTextsDraws(playerid);
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    DeleteTextDraws(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    PlayerTextDrawShow(playerid,BarraNomeSever[playerid][0]);
    PlayerTextDrawShow(playerid,BarraNomeSever[playerid][1]);
    return 1;
}
stock DeleteTextDraws(playerid)
{
    PlayerTextDrawHide(playerid, BarraNomeSever[playerid][0]);
    PlayerTextDrawHide(playerid, BarraNomeSever[playerid][1]);
    return 1;
}
stock LoadTextsDraws(playerid)
{
    // Nome do sever
    BarraNomeSever[playerid][0] = CreatePlayerTextDraw(playerid, 0.0, 436, "~n~");
    PlayerTextDrawUseBox(playerid,BarraNomeSever[playerid][0],true);
    PlayerTextDrawBoxColor(playerid,BarraNomeSever[playerid][0],0x000000AA);
    PlayerTextDrawBackgroundColor(playerid,BarraNomeSever[playerid][0],30);

    BarraNomeSever[playerid][1] = CreatePlayerTextDraw(playerid, 319.000000,436.000000, "Nome do sever");
    PlayerTextDrawFont(playerid,BarraNomeSever[playerid][1],1);
    PlayerTextDrawSetOutline(playerid,BarraNomeSever[playerid][1],1);
    PlayerTextDrawAlignment(playerid,BarraNomeSever[playerid][1],2);
    return 1;
}
forward Mudarcor();
public Mudarcor()
{
    new i;
    new random2 = random(sizeof(Cores));
    PlayerTextDrawColor(i,BarraNomeSever[i][1], Cores[random2]);
    PlayerTextDrawShow(i,BarraNomeSever[i][1]);
    return 1;
}
Reply
#3

Faзa o uso de um timer, juntamente a uma lista de cores armazenadas em uma variбvel, e quando o timer for chamado, alterarб a cor da TextDraw consecutivamente.

Exemplo:
pawn Код:
new Text:TextDraw;
new Cor;

forward Alterarcolor();

new corestxd[2] =
{
    Cor1,
    Cor2
};

public OnGameModeInit()
{
    TextDraw = TextDrawCreate(240.0,580.0,"Welcome to my SA-MP server");
    TextDrawColor(TextDraw, 0x000000FF);

    SetTimer("Alterarcolor", 1000, true);
    return 1;
}

public OnPlayerConnect(playerid)
{
    TextDrawShowForPlayer(playerid, TextDraw);
    return 1;
}

public Alterarcolor()
{
    if(Cor > sizeof(corestxd)) Cor = 0;
    TextDrawColor(TextDraw, corestxd[cor]);
    Cor++;
}
Espero ter ajudado
Reply
#4

@EDIT
Marlon e Bruno
Valeu, usei os 2 como base(Principalmente do Marlon) E consegui fazer. Muito obrigado !
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)