03.05.2013, 01:58
Preciso criar um efeito fade-in e fade-out em um textdraw.. Achei uma include do ipsBruno, porйm, ela sу faz o efeito fade-in.. Alguйm consegue implementar o fade-out na include ou alguma forma de fazer isso?
pawn Code:
#if defined _textfade_included
#endinput
#endif
#define _textfade_included
stock fade__TextDrawDestroy(Text:draw) {
deleteproperty( _: draw, "fade_textColor");
return TextDrawDestroy (draw);
}
stock fade__TextDrawColor(Text:draw, color) {
setproperty( _: draw, "fade_textColor", color );
return TextDrawColor(draw,color);
}
#define TextDrawDestroy \
fade__TextDrawDestroy
#define TextDrawColor \
fade__TextDrawColor
forward FadeTextDrawTimer ( playerid, textdraw, cor, tempo );
public FadeTextDrawTimer ( playerid, textdraw, cor, tempo ) {
static alpha ;
alpha = 1+ ((cor) & 0xFF);
cor = ( ((cor >> 24) & 0xFF) << 24 |((cor >> 16) & 0xFF) << 16 | ((cor >> 08) & 0xFF) << 8 | alpha);
if(alpha != 255)
{
SetTimerEx ( "FadeTextDrawTimer", tempo, false,
"dddd",
// playerid
// textdraw
// redbluegreenalpha
// tempo
playerid, _: textdraw, cor, tempo
);
}
TextDrawColor( Text: textdraw, cor );
TextDrawShowForPlayer( playerid, Text: textdraw);
return true;
}
stock TextDrawFade( playerid, Text:textdraw, tempo)
{
static cor;
cor = getproperty( _: textdraw, "fade_textColor" );
// essa parte do cуdigo remove a transparкncia
cor = (((cor >> 24) & 0xFF)<<24|((cor >> 16) & 0xFF)<<16|((cor >> 08) & 0xFF)<<8);
// coloca a cor do textdraw para transparкncia zero
TextDrawColor(textdraw, 0);
TextDrawShowForPlayer( playerid, textdraw);
// inicia a contagem para ir mudando a transparencia gradativamente
tempo /= 0xff;
if( tempo == 0 ) {
printf("Para o uso correto da funзгo use um valor maior que 255 em \"tempo\"");
return false;
}
SetTimerEx ( "FadeTextDrawTimer", tempo , false,
"dddd",
// playerid
// textdraw
// redbluegreenalpha
// tempo
playerid, _: textdraw, cor, tempo
);
return true;
}