[Include] TextDrawFade nível hard

27 de dez. de 2012.

TextDrawFade

Criei agora pela madrugada em alguns minutos uma include para fazer textdrawfade de forma perfeita. Muito melhor que a minha última versão, pois essa tem os cálculos precisos e exatos funcionando com qualquer textdraw e qualquer combinação de cor ali colocada. 
Além do fácil uso.

Código da include:
pawn Code:
//================================================================= // // TEXT DRAW FADE // // Creado por Bruno da Silva // // // ips-team.tk/forum/ // brunodasilva.com // //================================================================= #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; }
Salve como textfade.inc

Modo de uso:
TextDrawFade( PLAYERIDTEXTDRAWTEMPODEFADE);

playerid = jogador que verá o textdraw
textdraw = id de vosso textdraw
tempofade = tempo para que a cor do textdraw final seja assumida


Demonstração:

Criado por Bruno da Silva

0 comentários:

Postar um comentário