Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Player Textdraw Fader Include (tdfader.inc)
- * Very simple and unique include to fade player textdraws, can be used as a screen fader too!
- Author: (creator)
- * Gammix
- (c) Copyright 2015
- * This file is provided as is (no warranties).
- */
- /*
- FUNCTIONS:
- native PlayerTextDrawFade(playerid, PlayerText:text, color, updatetick = 50, displaytime = 3000);
- native PlayerTextDrawUnfade(playerid, PlayerText:text);
- native IsPlayerTextDrawFading(playerid, PlayerText:text);
- CALLBACKS:
- public OnPlayerTextDrawFadeComplete(playerid, PlayerText:text)
- */
- //#include "GTIME\g_colors"
- #if ! defined COLOR_SetTransparency
- stock static COLOR_SetTransparency(color, alpha = 0xFF)
- {
- static newcolor;
- alpha = clamp(alpha, 0x00, 0xFF);
- newcolor = (color & ~0xFF) | alpha;
- return newcolor;
- }
- #endif
- #define MAX_FADES_AT_A_TIME 5//more tha value, more bigger the array, mor is the file size and more memory and maybe lag!
- //and after all i am using 3D arrays which normally increase the AMX size as well!
- #define FADE_UPDATE_VALUE 15//this is the value been set for td color on every timer update. THe update rate of color!
- enum TextDrawFadeEnum
- {
- PlayerText:fade_td,
- fade_color,
- fade_timer,
- fade_showtime,
- fade_updatetime
- }
- static gTextDrawFade[MAX_PLAYERS][MAX_FADES_AT_A_TIME][TextDrawFadeEnum];
- public OnPlayerConnect(playerid)
- {
- for(new i; i < MAX_FADES_AT_A_TIME; i++)
- {
- gTextDrawFade[playerid][i][fade_td] = PlayerText:INVALID_TEXT_DRAW;
- gTextDrawFade[playerid][i][fade_color] = -1;
- gTextDrawFade[playerid][i][fade_timer] = -1;
- gTextDrawFade[playerid][i][fade_showtime] = 3000;
- gTextDrawFade[playerid][i][fade_updatetime] = 50;
- }
- return CallLocalFunction("FADER_OnPlayerConnect", "i", playerid);
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect FADER_OnPlayerConnect
- forward FADER_OnPlayerConnect(playerid);
- public OnPlayerDisconnect(playerid, reason)
- {
- for(new i; i < MAX_FADES_AT_A_TIME; i++)
- {
- KillTimer(gTextDrawFade[playerid][i][fade_timer]);
- gTextDrawFade[playerid][i][fade_td] = PlayerText:INVALID_TEXT_DRAW;
- gTextDrawFade[playerid][i][fade_color] = -1;
- gTextDrawFade[playerid][i][fade_timer] = -1;
- gTextDrawFade[playerid][i][fade_showtime] = 3000;
- gTextDrawFade[playerid][i][fade_updatetime] = 50;
- }
- return CallLocalFunction("FADER_OnPlayerDisconnect", "i", playerid);
- }
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect FADER_OnPlayerDisconnect
- forward FADER_OnPlayerDisconnect(playerid, reason);
- stock PlayerTextDrawFade(playerid, PlayerText:text, color, updatetick = 30, displaytime = 1500)
- {
- for(new i; i < MAX_FADES_AT_A_TIME; i++)
- {
- if(IsPlayerTextDrawFading(playerid, text)) PlayerTextDrawUnfade(playerid, text);
- gTextDrawFade[playerid][i][fade_td] = text;
- gTextDrawFade[playerid][i][fade_showtime] = displaytime;
- gTextDrawFade[playerid][i][fade_updatetime] = updatetick;
- gTextDrawFade[playerid][i][fade_color] = color;
- PlayerTextDrawColor(playerid, text, COLOR_SetTransparency(color, 0));
- PlayerTextDrawShow(playerid, text);
- if(gTextDrawFade[playerid][i][fade_timer] != -1) KillTimer(gTextDrawFade[playerid][i][fade_timer]);
- gTextDrawFade[playerid][i][fade_timer] = SetTimerEx("FADER_OnPlayerTextDrawFade", updatetick, false, "iiii", playerid, i, 0, 0);
- return i;
- }
- return -1;
- }
- stock PlayerTextDrawUnfade(playerid, PlayerText:text)
- {
- for(new i; i < MAX_FADES_AT_A_TIME; i++)
- {
- if(gTextDrawFade[playerid][i][fade_td] == text)
- {
- KillTimer(gTextDrawFade[playerid][i][fade_timer]);
- PlayerTextDrawColor(playerid, text, gTextDrawFade[playerid][i][fade_color]);
- PlayerTextDrawShow(playerid, text);
- gTextDrawFade[playerid][i][fade_td] = PlayerText:INVALID_TEXT_DRAW;
- gTextDrawFade[playerid][i][fade_color] = -1;
- gTextDrawFade[playerid][i][fade_timer] = -1;
- gTextDrawFade[playerid][i][fade_showtime] = 3000;
- gTextDrawFade[playerid][i][fade_updatetime] = 50;
- return true;
- }
- }
- return false;
- }
- stock IsPlayerTextDrawFading(playerid, PlayerText:text)
- {
- for(new i; i < MAX_FADES_AT_A_TIME; i++)
- {
- if(gTextDrawFade[playerid][i][fade_td] == text) return true;
- }
- return false;
- }
- forward FADER_OnPlayerTextDrawFade(playerid, slot, alpha, type);
- public FADER_OnPlayerTextDrawFade(playerid, slot, alpha, type)
- {
- switch(type)
- {
- case 0:
- {
- alpha += FADE_UPDATE_VALUE;
- PlayerTextDrawColor(playerid, gTextDrawFade[playerid][slot][fade_td], COLOR_SetTransparency(gTextDrawFade[playerid][slot][fade_color], alpha));
- PlayerTextDrawShow(playerid, gTextDrawFade[playerid][slot][fade_td]);
- if(alpha >= 255)
- {
- PlayerTextDrawColor(playerid, gTextDrawFade[playerid][slot][fade_td], gTextDrawFade[playerid][slot][fade_color]);
- PlayerTextDrawShow(playerid, gTextDrawFade[playerid][slot][fade_td]);
- gTextDrawFade[playerid][slot][fade_timer] = SetTimerEx("FADER_OnPlayerTextDrawFade", gTextDrawFade[playerid][slot][fade_showtime], false, "iiii", playerid, slot, 255, 1);
- return 1;
- }
- gTextDrawFade[playerid][slot][fade_timer] = SetTimerEx("FADER_OnPlayerTextDrawFade", gTextDrawFade[playerid][slot][fade_updatetime], false, "iiii", playerid, slot, alpha, 0);
- }
- case 1:
- {
- PlayerTextDrawColor(playerid, gTextDrawFade[playerid][slot][fade_td], gTextDrawFade[playerid][slot][fade_color]);
- PlayerTextDrawShow(playerid, gTextDrawFade[playerid][slot][fade_td]);
- gTextDrawFade[playerid][slot][fade_timer] = SetTimerEx("FADER_OnPlayerTextDrawFade", gTextDrawFade[playerid][slot][fade_showtime], false, "iiii", playerid, slot, 255, 2);
- }
- case 2:
- {
- alpha -= FADE_UPDATE_VALUE;
- PlayerTextDrawColor(playerid, gTextDrawFade[playerid][slot][fade_td], COLOR_SetTransparency(gTextDrawFade[playerid][slot][fade_color], alpha));
- PlayerTextDrawShow(playerid, gTextDrawFade[playerid][slot][fade_td]);
- if(alpha <= 0)
- {
- PlayerTextDrawColor(playerid, gTextDrawFade[playerid][slot][fade_td], gTextDrawFade[playerid][slot][fade_color]);
- PlayerTextDrawHide(playerid, gTextDrawFade[playerid][slot][fade_td]);
- gTextDrawFade[playerid][slot][fade_timer] = -1;
- CallLocalFunction("OnPlayerTextDrawFadeComplete", "ii", playerid, slot);
- return 1;
- }
- gTextDrawFade[playerid][slot][fade_timer] = SetTimerEx("FADER_OnPlayerTextDrawFade", gTextDrawFade[playerid][slot][fade_updatetime], false, "iiii", playerid, slot, alpha, 2);
- }
- }
- return 1;
- }
- forward OnPlayerTextDrawFadeComplete(playerid, PlayerText:text);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement