Portal SAMP
[Ajuda] oq significa warning 213: tag mismatch - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] oq significa warning 213: tag mismatch (/showthread.php?tid=4177)



oq significa warning 213: tag mismatch - AngolaDev1 - 07/11/2023

eu queria resolver um problema da include nprogress
olha que tenho bastate tempo de programacao samp
e nao sei significado de warning 213: tag mismatch ja procurei na net nao achei nd relacionado de como resolve isso

aqui estar o codigo da include isso aconteceu pois eu atualizar as includes a_samp a_actor etc assim
Código:
/*==============================================================================


    Progress Bar 2.0.3

        A SA:MP UI library for rendering progress bars used to visualise all
        manner of data from health to a countdown timer.

        Library originally written by Flávio Toribio: [email protected]
        Now maintained by Southclaw in version 2+ with new features.


==============================================================================*/


#if defined _progress2_included
    #endinput
#endif

#if !defined _samp_included
    #tryinclude <a_samp>
    #if !defined _samp_included
        #error could not locate a_samp.inc file, please check your server includes
    #endif
#endif

#if !defined _samp_included
    #tryinclude <foreach>
    #if !defined _samp_included
        #error could not locate foreach.inc [version 19 (0.4.2)] file, please check your server includes
    #endif
#endif


#if !defined PB_DEBUG
    #define PB_DEBUG (false)
#endif


#define _progress2_included
#define _progress2_version 0x211

#define MAX_PLAYER_BARS             (MAX_PLAYER_TEXT_DRAWS / 3)
#define INVALID_PLAYER_BAR_VALUE    (Float:0xFFFFFFFF)
#define INVALID_PLAYER_BAR_ID       (PlayerBar:-1)

#if PB_DEBUG == true
    #define pb_debug(%0); printf(%0);
#else
    #define pb_debug(%0);
#endif


/*==============================================================================

    Setup

==============================================================================*/


enum
{
    BAR_DIRECTION_RIGHT,
    BAR_DIRECTION_LEFT,
    BAR_DIRECTION_UP,
    BAR_DIRECTION_DOWN
}

enum E_BAR_DATA
{
Float:        pbar_posX,
Float:        pbar_posY,
Float:        pbar_width,
Float:        pbar_height,
            pbar_colour,
Float:        pbar_maxValue,
Float:        pbar_progressValue,
            pbar_direction
}

enum E_BAR_TEXT_DRAW
{
PlayerText:    pbar_back,
PlayerText:    pbar_fill,
PlayerText:    pbar_main
}


static
            pbar_Data[MAX_PLAYERS][MAX_PLAYER_BARS][E_BAR_DATA],
            pbar_TextDraw[MAX_PLAYERS][MAX_PLAYER_BARS][E_BAR_TEXT_DRAW];

#if defined _Y_ITERATE_LOCAL_VERSION
    new Iterator:pbar_Index[MAX_PLAYERS]<MAX_PLAYER_BARS>;
#else
    static bool:pbar_Valid[MAX_PLAYERS][MAX_PLAYER_BARS];
#endif


forward PlayerBar:CreatePlayerProgressBar(playerid, Float:x, Float:y, Float:width=55.5, Float:height=3.2, colour = 0xFF1C1CFF, Float:max=100.0, direction=BAR_DIRECTION_RIGHT);
forward Float:GetPlayerProgressBarValue(playerid, PlayerBar:barid);


/*==============================================================================

    Utils

==============================================================================*/


stock Float:pb_percent(Float:x, Float:widthorheight, Float:max, Float:value, direction)
{
    new Float:result;

    switch(direction)
    {
        case BAR_DIRECTION_RIGHT:
            result = ((x - 3.0) + (((((x - 2.0) + widthorheight) - x) / max) * value));

        case BAR_DIRECTION_LEFT:
            result = ((x - 1.0) - (((((x + 2.0) - widthorheight) - x) / max) * -value)) - 4.0;

        case BAR_DIRECTION_UP:
            result = -((((((widthorheight / 10.0) - 0.45) * 1.02) / max) * value) + 0.55);

        case BAR_DIRECTION_DOWN:
            result = ((((((widthorheight / 10.0) - 0.45) * 1.02) / max) * value) - 0.55);
    }

    return result;
}

stock _bar_NewID(playerid)
{
#if defined _Y_ITERATE_LOCAL_VERSION
    return Iter_Free(pbar_Index[playerid]);
#else
    new i;

    for(i = 0; i < MAX_PLAYER_BARS; i++)
    {
        if(!pbar_Valid[playerid][i])
            break;
    }

    return (i == MAX_PLAYER_BARS) ? -1 : i;
#endif
}


/*==============================================================================

    Core

==============================================================================*/


stock PlayerBar:CreatePlayerProgressBar(playerid, Float:x, Float:y, Float:width = 55.5, Float:height = 3.2, colour = 0xFF1C1CFF, Float:max = 100.0, direction = BAR_DIRECTION_RIGHT)
{
    if(!IsPlayerConnected(playerid))
        return INVALID_PLAYER_BAR_ID;

    new barid = _bar_NewID(playerid);

    if(barid == -1)
    {
        print("[CreatePlayerProgressBar] ERROR: MAX_PLAYER_BARS limit reached.");
        return INVALID_PLAYER_BAR_ID;
    }

    pb_debug("[CreatePlayerProgressBar] Creating progress bar %d at %f,%f width:%f height:%f max:%f direction:%d", barid, x, y, width, height, max, direction);

    pbar_TextDraw[playerid][barid][pbar_back] = PlayerText:INVALID_TEXT_DRAW;
    pbar_TextDraw[playerid][barid][pbar_fill] = PlayerText:INVALID_TEXT_DRAW;
    pbar_TextDraw[playerid][barid][pbar_main] = PlayerText:INVALID_TEXT_DRAW;
    pbar_Data[playerid][barid][pbar_posX] = x;
    pbar_Data[playerid][barid][pbar_posY] = y;
    pbar_Data[playerid][barid][pbar_width] = width;
    pbar_Data[playerid][barid][pbar_height] = height;
    pbar_Data[playerid][barid][pbar_colour] = colour;
    pbar_Data[playerid][barid][pbar_maxValue] = max;
    pbar_Data[playerid][barid][pbar_progressValue] = 0.0;
    pbar_Data[playerid][barid][pbar_direction] = direction;

#if defined _Y_ITERATE_LOCAL_VERSION
    Iter_Add(pbar_Index[playerid], barid);
#else
    pbar_Valid[playerid][barid] = true;
#endif

    _RenderBar(playerid, barid);

    return PlayerBar:barid;
}

stock DestroyPlayerProgressBar(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][_:barid][pbar_back]);
    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][_:barid][pbar_fill]);
    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][_:barid][pbar_main]);

#if defined _Y_ITERATE_LOCAL_VERSION
    Iter_Remove(pbar_Index[playerid], _:barid);
#else
    pbar_Valid[playerid][_:barid] = false;
#endif

    return 1;
}

stock ShowPlayerProgressBar(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    PlayerTextDrawShow(playerid, pbar_TextDraw[playerid][_:barid][pbar_back]);
    PlayerTextDrawShow(playerid, pbar_TextDraw[playerid][_:barid][pbar_fill]);
    PlayerTextDrawShow(playerid, pbar_TextDraw[playerid][_:barid][pbar_main]);

    return 1;
}

stock HidePlayerProgressBar(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    PlayerTextDrawHide(playerid, pbar_TextDraw[playerid][_:barid][pbar_back]);
    PlayerTextDrawHide(playerid, pbar_TextDraw[playerid][_:barid][pbar_fill]);
    PlayerTextDrawHide(playerid, pbar_TextDraw[playerid][_:barid][pbar_main]);

    return 1;
}


/*==============================================================================

    Hooks and Internal

==============================================================================*/


stock _RenderBar(playerid, barid, update = false)
{
    if(!IsPlayerConnected(playerid))
        return false;

    if(!IsValidPlayerProgressBar(playerid, PlayerBar:barid))
        return false;

    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][barid][pbar_back]);
    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][barid][pbar_fill]);
    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][barid][pbar_main]);

    switch(pbar_Data[playerid][barid][pbar_direction])
    {
        case BAR_DIRECTION_RIGHT:
        {
            pbar_TextDraw[playerid][barid][pbar_back] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_posY], "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_back], pbar_Data[playerid][barid][pbar_posX] + pbar_Data[playerid][barid][pbar_width] - 4.0, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1.0, pbar_Data[playerid][barid][pbar_height] / 10);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 0x00000000 | (pbar_Data[playerid][barid][pbar_colour] & 0x000000FF));

            pbar_TextDraw[playerid][barid][pbar_fill] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] + 1.2, pbar_Data[playerid][barid][pbar_posY] + 2.15, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], pbar_Data[playerid][barid][pbar_posX] + pbar_Data[playerid][barid][pbar_width] - 5.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1.0, pbar_Data[playerid][barid][pbar_height] / 10 - 0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], (pbar_Data[playerid][barid][pbar_colour] & 0xFFFFFF00) | (0x66 & ((pbar_Data[playerid][barid][pbar_colour] & 0x000000FF) / 2)));

            pbar_TextDraw[playerid][barid][pbar_main] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] + 1.2, pbar_Data[playerid][barid][pbar_posY] + 2.15, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pb_percent(pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_width], pbar_Data[playerid][barid][pbar_maxValue], pbar_Data[playerid][barid][pbar_progressValue], pbar_Data[playerid][barid][pbar_direction]), 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1.0, pbar_Data[playerid][barid][pbar_height] / 10 - 0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_colour]);
        }

        case BAR_DIRECTION_LEFT:
        {
            pbar_TextDraw[playerid][barid][pbar_back] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_posY], "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_back], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 4.0, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1.0, pbar_Data[playerid][barid][pbar_height] / 10);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 0x00000000 | (pbar_Data[playerid][barid][pbar_colour] & 0x000000FF));

            pbar_TextDraw[playerid][barid][pbar_fill] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] + 2.15, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1.0, pbar_Data[playerid][barid][pbar_height] / 10 - 0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], (pbar_Data[playerid][barid][pbar_colour] & 0xFFFFFF00) | (0x66 & ((pbar_Data[playerid][barid][pbar_colour] & 0x000000FF) / 2)));

            pbar_TextDraw[playerid][barid][pbar_main] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] + 2.15, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pb_percent(pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_width], pbar_Data[playerid][barid][pbar_maxValue], pbar_Data[playerid][barid][pbar_progressValue], pbar_Data[playerid][barid][pbar_direction]), 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1.0, pbar_Data[playerid][barid][pbar_height] / 10 - 0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_colour]);
        }

        case BAR_DIRECTION_UP:
        {
            pbar_TextDraw[playerid][barid][pbar_back] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_posY], "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_back], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 4.0, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1.0, -((pbar_Data[playerid][barid][pbar_height] / 10) * 1.02) -0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 0x00000000 | (pbar_Data[playerid][barid][pbar_colour] & 0x000000FF));

            pbar_TextDraw[playerid][barid][pbar_fill] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] - 1.0, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1.0, -(pbar_Data[playerid][barid][pbar_height] / 10.0) * 1.02);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], (pbar_Data[playerid][barid][pbar_colour] & 0xFFFFFF00) | (0x66 & ((pbar_Data[playerid][barid][pbar_colour] & 0x000000FF) / 2)));

            pbar_TextDraw[playerid][barid][pbar_main] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] - 1.0, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1.0, pb_percent(pbar_Data[playerid][_:barid][pbar_posX], pbar_Data[playerid][_:barid][pbar_height], pbar_Data[playerid][_:barid][pbar_maxValue], pbar_Data[playerid][barid][pbar_progressValue], pbar_Data[playerid][barid][pbar_direction]));
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_colour]);
        }

        case BAR_DIRECTION_DOWN:
        {
            pbar_TextDraw[playerid][barid][pbar_back] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_posY], "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_back], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 4.0, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1.0, ((pbar_Data[playerid][barid][pbar_height] / 10)) -0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 0x00000000 | (pbar_Data[playerid][barid][pbar_colour] & 0x000000FF));

            pbar_TextDraw[playerid][barid][pbar_fill] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] + 1.0, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1.0, (pbar_Data[playerid][barid][pbar_height] / 10.0) - 0.55);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], (pbar_Data[playerid][barid][pbar_colour] & 0xFFFFFF00) | (0x66 & ((pbar_Data[playerid][barid][pbar_colour] & 0x000000FF) / 2)));

            pbar_TextDraw[playerid][barid][pbar_main] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] + 1.0, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1.0, pb_percent(pbar_Data[playerid][_:barid][pbar_posX], pbar_Data[playerid][_:barid][pbar_height], pbar_Data[playerid][_:barid][pbar_maxValue], pbar_Data[playerid][barid][pbar_progressValue], pbar_Data[playerid][barid][pbar_direction]));
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_colour]);
        }
    }

    if(update)
        ShowPlayerProgressBar(playerid, PlayerBar:barid);

    return true;
}

#if defined _Y_ITERATE_LOCAL_VERSION

    #if defined FILTERSCRIPT

        public OnFilterScriptInit()
        {
            Iter_Init(pbar_Index);

            #if defined ppb_OnFilterScriptInit
                return ppb_OnFilterScriptInit();
            #else
                return 1;
            #endif
        }
        #if defined _ALS_OnFilterScriptInit
            #undef OnFilterScriptInit
        #else
            #define _ALS_OnFilterScriptInit
        #endif
        
        #define OnFilterScriptInit ppb_OnFilterScriptInit
        #if defined ppb_OnFilterScriptInit
            forward ppb_OnFilterScriptInit();
        #endif

    #else

        public OnGameModeInit()
        {
            Iter_Init(pbar_Index);

            #if defined ppb_OnGameModeInit
                return ppb_OnGameModeInit();
            #else
                return 1;
            #endif
        }
        #if defined _ALS_OnGameModeInit
            #undef OnGameModeInit
        #else
            #define _ALS_OnGameModeInit
        #endif
        
        #define OnGameModeInit ppb_OnGameModeInit
        #if defined ppb_OnGameModeInit
            forward ppb_OnGameModeInit();
        #endif

    #endif

#endif

public OnPlayerDisconnect(playerid, reason)
{
#if defined _Y_ITERATE_LOCAL_VERSION
    Iter_Clear(pbar_Index[playerid]);
#else
    for(new i; i < MAX_PLAYER_BARS; i++)
        pbar_Valid[playerid][_:i] = false;
#endif

    #if defined ppb_OnPlayerDisconnect
        return ppb_OnPlayerDisconnect(playerid, reason);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
#else
    #define _ALS_OnPlayerDisconnect
#endif

#define OnPlayerDisconnect ppb_OnPlayerDisconnect
#if defined ppb_OnPlayerDisconnect
    forward ppb_OnPlayerDisconnect(playerid, reason);
#endif


/*==============================================================================

    Interface

==============================================================================*/


stock IsValidPlayerProgressBar(playerid, PlayerBar:barid)
{
#if defined _Y_ITERATE_LOCAL_VERSION
    return Iter_Contains(pbar_Index[playerid], _:barid);
#else
    if(!(PlayerBar:0 <= barid < PlayerBar:MAX_PLAYER_BARS))
        return false;

    return pbar_Valid[playerid][_:barid];
#endif
}

// pbar_posX
// pbar_posY
stock GetPlayerProgressBarPos(playerid, PlayerBar:barid, &Float:x, &Float:y)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    x = pbar_Data[playerid][_:barid][pbar_posX];
    y = pbar_Data[playerid][_:barid][pbar_posY];

    return 1;
}

stock SetPlayerProgressBarPos(playerid, PlayerBar:barid, Float:x, Float:y)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return false;

    pbar_Data[playerid][_:barid][pbar_posX] = x;
    pbar_Data[playerid][_:barid][pbar_posY] = y;

    _RenderBar(playerid, _:barid, true);

    return true;
}

// pbar_width
stock Float:GetPlayerProgressBarWidth(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return INVALID_PLAYER_BAR_VALUE;

    return pbar_Data[playerid][_:barid][pbar_width];
}

stock SetPlayerProgressBarWidth(playerid, PlayerBar:barid, Float:width)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_width] = width;

    _RenderBar(playerid, _:barid, true);

    return 1;
}

// pbar_height
stock Float:GetPlayerProgressBarHeight(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return INVALID_PLAYER_BAR_VALUE;

    return pbar_Data[playerid][_:barid][pbar_height];
}

stock SetPlayerProgressBarHeight(playerid, PlayerBar:barid, Float:height)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_height] = height;

    _RenderBar(playerid, _:barid, true);

    return 1;
}

// pbar_colour
stock GetPlayerProgressBarColour(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    return pbar_Data[playerid][_:barid][pbar_colour];
}

stock SetPlayerProgressBarColour(playerid, PlayerBar:barid, colour)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_colour] = colour;
    PlayerTextDrawBoxColor(playerid, pbar_TextDraw[playerid][_:barid][pbar_back], 0x00000000 | (colour & 0x000000FF));

    PlayerTextDrawBoxColor(playerid, pbar_TextDraw[playerid][_:barid][pbar_fill], (colour & 0xFFFFFF00) | (0x66 & ((colour & 0x000000FF) / 2)));

    PlayerTextDrawBoxColor(playerid, pbar_TextDraw[playerid][_:barid][pbar_main], colour);

    return 1;
}

// pbar_maxValue
stock Float:GetPlayerProgressBarMaxValue(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return INVALID_PLAYER_BAR_VALUE;

    return pbar_Data[playerid][_:barid][pbar_maxValue];
}

stock SetPlayerProgressBarMaxValue(playerid, PlayerBar:barid, Float:max)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_maxValue] = max;
    SetPlayerProgressBarValue(playerid, barid, pbar_Data[playerid][_:barid][pbar_progressValue]);

    return 1;
}

// pbar_progressValue
stock SetPlayerProgressBarValue(playerid, PlayerBar:barid, Float:value)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    value = (value < 0.0) ? (0.0) : (value > pbar_Data[playerid][_:barid][pbar_maxValue]) ? (pbar_Data[playerid][_:barid][pbar_maxValue]) : (value);

    PlayerTextDrawUseBox(playerid, pbar_TextDraw[playerid][_:barid][pbar_main], value > 0.0);

    pbar_Data[playerid][_:barid][pbar_progressValue] = value;

    switch(pbar_Data[playerid][_:barid][pbar_direction])
    {
        case BAR_DIRECTION_RIGHT, BAR_DIRECTION_LEFT:
        {

            PlayerTextDrawTextSize(playerid, pbar_TextDraw[playerid][_:barid][pbar_main],
                pb_percent(
                    pbar_Data[playerid][_:barid][pbar_posX],
                    pbar_Data[playerid][_:barid][pbar_width],
                    pbar_Data[playerid][_:barid][pbar_maxValue],
                    value,
                    pbar_Data[playerid][_:barid][pbar_direction]), 0.0);
        }

        case BAR_DIRECTION_UP, BAR_DIRECTION_DOWN:
        {
            PlayerTextDrawLetterSize(playerid, pbar_TextDraw[playerid][_:barid][pbar_main], 1.0,
                pb_percent(
                    pbar_Data[playerid][_:barid][pbar_posX],
                    pbar_Data[playerid][_:barid][pbar_height],
                    pbar_Data[playerid][_:barid][pbar_maxValue],
                    value,
                    pbar_Data[playerid][_:barid][pbar_direction]));
        }
    }

    ShowPlayerProgressBar(playerid, barid);

    return 1;
}

stock Float:GetPlayerProgressBarValue(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return INVALID_PLAYER_BAR_VALUE;

    return pbar_Data[playerid][_:barid][pbar_progressValue];
}

// pbar_direction
stock GetPlayerProgressBarDirection(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    return pbar_Data[playerid][_:barid][pbar_direction];
}

stock SetPlayerProgressBarDirection(playerid, PlayerBar:barid, direction)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_direction] = direction;

    _RenderBar(playerid, _:barid, true);

    return 1;
}

//=============================================================================//
//                             [Old Progress]                                  //
//=============================================================================//

#define INVALID_BAR_ID            (Bar:-1)
#define INVALID_BAR_VALUE        (Float:0xFFFFFFFF)
#define MAX_BARS                (MAX_TEXT_DRAWS / 3)
#define pb_percent(%1,%2,%3,%4)    ((%1 - 6.0) + ((((%1 + 6.0 + %2 - 2.0) - %1) / %3) * %4))

forward Bar:CreateProgressBar(Float:x, Float:y, Float:width=55.5, Float:height=3.2, color, Float:max=100.0);
forward Float:GetProgressBarValue(Bar:barid);

enum e_bar
{
    Float:pb_x,
    Float:pb_y,
    Float:pb_w,
    Float:pb_h,
    Float:pb_m,
    Float:pb_v,
    Text:pb_t1,
    Text:pb_t2,
    Text:pb_t3,
    pb_color,
    bool:pb_created
}

static Bars[MAX_BARS][e_bar];

stock Bar:CreateProgressBar(Float:x, Float:y, Float:width=55.5, Float:height=3.2, color, Float:max=100.0)
{
    new barid;

    for(barid = 0; barid < sizeof Bars; ++barid)
        if(!Bars[barid][pb_created]) break;

    if(Bars[barid][pb_created] || barid == sizeof Bars)
        return INVALID_BAR_ID;

    new Text:in_t = Bars[barid][pb_t1] = TextDrawCreate(x, y, "_");
    TextDrawUseBox        (in_t, 1);
    TextDrawTextSize    (in_t, x + width, 0.0);
    TextDrawLetterSize    (in_t, 1.0, height / 10);
    TextDrawBoxColor    (in_t, 0x00000000 | (color & 0x000000FF));

    in_t = Bars[barid][pb_t2] = TextDrawCreate(x + 1.2, y + 2.15, "_");
    TextDrawUseBox        (in_t, 1);
    TextDrawTextSize    (in_t, x + width - 2.0, 0.0);
    TextDrawLetterSize    (in_t, 1.0, height / 10 - 0.35);
    TextDrawBoxColor    (in_t, (color & 0xFFFFFF00) | (0x66 & ((color & 0x000000FF) / 2)));

    in_t = Bars[barid][pb_t3] = TextDrawCreate(x + 1.2, y + 2.15, "_");
    TextDrawTextSize    (in_t, pb_percent(x, width, max, 1.0), 0.0);
    TextDrawLetterSize    (in_t, 1.0, height / 10 - 0.35);
    TextDrawBoxColor    (in_t, color);

    Bars[barid][pb_x] = x;
    Bars[barid][pb_y] = y;
    Bars[barid][pb_w] = width;
    Bars[barid][pb_h] = height;
    Bars[barid][pb_m] = max;
    Bars[barid][pb_color] = color;
    Bars[barid][pb_created] = true;
    return Bar:barid;
}

stock DestroyProgressBar(Bar:barid)
{
    if(barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
    {
        if(!Bars[_:barid][pb_created])
            return 0;

        TextDrawDestroy(Bars[_:barid][pb_t1]);
        TextDrawDestroy(Bars[_:barid][pb_t2]);
        TextDrawDestroy(Bars[_:barid][pb_t3]);

        Bars[_:barid][pb_t1] = Text:0;
        Bars[_:barid][pb_t2] = Text:0;
        Bars[_:barid][pb_t3] = Text:0;
        Bars[_:barid][pb_x] = 0.0;
        Bars[_:barid][pb_y] = 0.0;
        Bars[_:barid][pb_w] = 0.0;
        Bars[_:barid][pb_h] = 0.0;
        Bars[_:barid][pb_m] = 0.0;
        Bars[_:barid][pb_v] = 0.0;
        Bars[_:barid][pb_color] = 0;
        Bars[_:barid][pb_created] = false;
        return 1;
    }
    return 0;
}

stock ShowProgressBarForPlayer(playerid, Bar:barid)
{
    if(IsPlayerConnected(playerid) && barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
    {
        if(!Bars[_:barid][pb_created])
            return 0;

        TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t1]);
        TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t2]);
        TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t3]);
        return 1;
    }
    return 0;
}

stock HideProgressBarForPlayer(playerid, Bar:barid)
{
    if(IsPlayerConnected(playerid) && barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
    {
        if(!Bars[_:barid][pb_created])
            return 0;

        TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t1]);
        TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t2]);
        TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t3]);
        return 1;
    }
    return 0;
}

stock SetProgressBarValue(Bar:barid, Float:value)
{
    if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
        return 0;

    if(Bars[_:barid][pb_created])
    {
        value = (value < 0.0) ? (0.0) : (value > Bars[_:barid][pb_m]) ? (Bars[_:barid][pb_m]) : (value);
        TextDrawUseBox(Bars[_:barid][pb_t3], value > 0.0);
        Bars[_:barid][pb_v] = value;

        TextDrawTextSize(Bars[_:barid][pb_t3], pb_percent(Bars[_:barid][pb_x], Bars[_:barid][pb_w], Bars[_:barid][pb_m], value), 0.0);
        return 1;
    }
    return 0;
}

stock Float:GetProgressBarValue(Bar:barid)
{
    if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
        return INVALID_BAR_VALUE;

    if(Bars[_:barid][pb_created])
        return Bars[_:barid][pb_v];

    return INVALID_BAR_VALUE;
}

stock SetProgressBarMaxValue(Bar:barid, Float:max)
{
    if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
        return 0;

    if(Bars[_:barid][pb_created])
    {
        Bars[_:barid][pb_m] = max;
        SetProgressBarValue(barid, Bars[_:barid][pb_v]);
        return 1;
    }
    return 0;
}

stock SetProgressBarColor(Bar:barid, color)
{
    if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
        return 0;

    if(Bars[_:barid][pb_created])
    {
        Bars[_:barid][pb_color] = color;
        TextDrawBoxColor(Bars[_:barid][pb_t1], 0x00000000 | (color & 0x000000FF));

        TextDrawBoxColor(Bars[_:barid][pb_t2],
            (color & 0xFFFFFF00) | (0x66 & ((color & 0x000000FF) / 2)));

        TextDrawBoxColor(Bars[_:barid][pb_t3], color);
        return 1;
    }
    return 0;
}

stock ShowProgressBarForAll(Bar:barid)
{
    foreach(new i : Player)
        if(!IsPlayerNPC(i))
            ShowProgressBarForPlayer(i, barid);
}

stock HideProgressBarForAll(Bar:barid)
{
    foreach(new i : Player)
        if(!IsPlayerNPC(i))
            HideProgressBarForPlayer(i, barid);
}

stock UpdateProgressBar(Bar: barid, playerid = INVALID_PLAYER_ID)
{
    if(playerid == INVALID_PLAYER_ID)
        return false;

    ShowProgressBarForPlayer(playerid, barid);
    return 1;
}



RE: oq significa warning 213: tag mismatch - Cifra Modder - 07/11/2023

(07/11/2023 13:57)AngolaDev1 Escreveu: eu queria resolver um problema da include nprogress
olha que tenho bastate tempo de programacao samp
e nao sei significado de warning 213: tag mismatch ja procurei na net nao achei nd relacionado de como resolve isso

aqui estar o codigo da include isso aconteceu pois eu atualizar as includes a_samp a_actor etc assim
Código:
/*==============================================================================


    Progress Bar 2.0.3

        A SA:MP UI library for rendering progress bars used to visualise all
        manner of data from health to a countdown timer.

        Library originally written by Flávio Toribio: [email protected]
        Now maintained by Southclaw in version 2+ with new features.


==============================================================================*/


#if defined _progress2_included
    #endinput
#endif

#if !defined _samp_included
    #tryinclude <a_samp>
    #if !defined _samp_included
        #error could not locate a_samp.inc file, please check your server includes
    #endif
#endif

#if !defined _samp_included
    #tryinclude <foreach>
    #if !defined _samp_included
        #error could not locate foreach.inc [version 19 (0.4.2)] file, please check your server includes
    #endif
#endif


#if !defined PB_DEBUG
    #define PB_DEBUG (false)
#endif


#define _progress2_included
#define _progress2_version 0x211

#define MAX_PLAYER_BARS             (MAX_PLAYER_TEXT_DRAWS / 3)
#define INVALID_PLAYER_BAR_VALUE    (Float:0xFFFFFFFF)
#define INVALID_PLAYER_BAR_ID       (PlayerBar:-1)

#if PB_DEBUG == true
    #define pb_debug(%0); printf(%0);
#else
    #define pb_debug(%0);
#endif


/*==============================================================================

    Setup

==============================================================================*/


enum
{
    BAR_DIRECTION_RIGHT,
    BAR_DIRECTION_LEFT,
    BAR_DIRECTION_UP,
    BAR_DIRECTION_DOWN
}

enum E_BAR_DATA
{
Float:        pbar_posX,
Float:        pbar_posY,
Float:        pbar_width,
Float:        pbar_height,
            pbar_colour,
Float:        pbar_maxValue,
Float:        pbar_progressValue,
            pbar_direction
}

enum E_BAR_TEXT_DRAW
{
PlayerText:    pbar_back,
PlayerText:    pbar_fill,
PlayerText:    pbar_main
}


static
            pbar_Data[MAX_PLAYERS][MAX_PLAYER_BARS][E_BAR_DATA],
            pbar_TextDraw[MAX_PLAYERS][MAX_PLAYER_BARS][E_BAR_TEXT_DRAW];

#if defined _Y_ITERATE_LOCAL_VERSION
    new Iterator:pbar_Index[MAX_PLAYERS]<MAX_PLAYER_BARS>;
#else
    static bool:pbar_Valid[MAX_PLAYERS][MAX_PLAYER_BARS];
#endif


forward PlayerBar:CreatePlayerProgressBar(playerid, Float:x, Float:y, Float:width=55.5, Float:height=3.2, colour = 0xFF1C1CFF, Float:max=100.0, direction=BAR_DIRECTION_RIGHT);
forward Float:GetPlayerProgressBarValue(playerid, PlayerBar:barid);


/*==============================================================================

    Utils

==============================================================================*/


stock Float:pb_percent(Float:x, Float:widthorheight, Float:max, Float:value, direction)
{
    new Float:result;

    switch(direction)
    {
        case BAR_DIRECTION_RIGHT:
            result = ((x - 3.0) + (((((x - 2.0) + widthorheight) - x) / max) * value));

        case BAR_DIRECTION_LEFT:
            result = ((x - 1.0) - (((((x + 2.0) - widthorheight) - x) / max) * -value)) - 4.0;

        case BAR_DIRECTION_UP:
            result = -((((((widthorheight / 10.0) - 0.45) * 1.02) / max) * value) + 0.55);

        case BAR_DIRECTION_DOWN:
            result = ((((((widthorheight / 10.0) - 0.45) * 1.02) / max) * value) - 0.55);
    }

    return result;
}

stock _bar_NewID(playerid)
{
#if defined _Y_ITERATE_LOCAL_VERSION
    return Iter_Free(pbar_Index[playerid]);
#else
    new i;

    for(i = 0; i < MAX_PLAYER_BARS; i++)
    {
        if(!pbar_Valid[playerid][i])
            break;
    }

    return (i == MAX_PLAYER_BARS) ? -1 : i;
#endif
}


/*==============================================================================

    Core

==============================================================================*/


stock PlayerBar:CreatePlayerProgressBar(playerid, Float:x, Float:y, Float:width = 55.5, Float:height = 3.2, colour = 0xFF1C1CFF, Float:max = 100.0, direction = BAR_DIRECTION_RIGHT)
{
    if(!IsPlayerConnected(playerid))
        return INVALID_PLAYER_BAR_ID;

    new barid = _bar_NewID(playerid);

    if(barid == -1)
    {
        print("[CreatePlayerProgressBar] ERROR: MAX_PLAYER_BARS limit reached.");
        return INVALID_PLAYER_BAR_ID;
    }

    pb_debug("[CreatePlayerProgressBar] Creating progress bar %d at %f,%f width:%f height:%f max:%f direction:%d", barid, x, y, width, height, max, direction);

    pbar_TextDraw[playerid][barid][pbar_back] = PlayerText:INVALID_TEXT_DRAW;
    pbar_TextDraw[playerid][barid][pbar_fill] = PlayerText:INVALID_TEXT_DRAW;
    pbar_TextDraw[playerid][barid][pbar_main] = PlayerText:INVALID_TEXT_DRAW;
    pbar_Data[playerid][barid][pbar_posX] = x;
    pbar_Data[playerid][barid][pbar_posY] = y;
    pbar_Data[playerid][barid][pbar_width] = width;
    pbar_Data[playerid][barid][pbar_height] = height;
    pbar_Data[playerid][barid][pbar_colour] = colour;
    pbar_Data[playerid][barid][pbar_maxValue] = max;
    pbar_Data[playerid][barid][pbar_progressValue] = 0.0;
    pbar_Data[playerid][barid][pbar_direction] = direction;

#if defined _Y_ITERATE_LOCAL_VERSION
    Iter_Add(pbar_Index[playerid], barid);
#else
    pbar_Valid[playerid][barid] = true;
#endif

    _RenderBar(playerid, barid);

    return PlayerBar:barid;
}

stock DestroyPlayerProgressBar(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][_:barid][pbar_back]);
    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][_:barid][pbar_fill]);
    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][_:barid][pbar_main]);

#if defined _Y_ITERATE_LOCAL_VERSION
    Iter_Remove(pbar_Index[playerid], _:barid);
#else
    pbar_Valid[playerid][_:barid] = false;
#endif

    return 1;
}

stock ShowPlayerProgressBar(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    PlayerTextDrawShow(playerid, pbar_TextDraw[playerid][_:barid][pbar_back]);
    PlayerTextDrawShow(playerid, pbar_TextDraw[playerid][_:barid][pbar_fill]);
    PlayerTextDrawShow(playerid, pbar_TextDraw[playerid][_:barid][pbar_main]);

    return 1;
}

stock HidePlayerProgressBar(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    PlayerTextDrawHide(playerid, pbar_TextDraw[playerid][_:barid][pbar_back]);
    PlayerTextDrawHide(playerid, pbar_TextDraw[playerid][_:barid][pbar_fill]);
    PlayerTextDrawHide(playerid, pbar_TextDraw[playerid][_:barid][pbar_main]);

    return 1;
}


/*==============================================================================

    Hooks and Internal

==============================================================================*/


stock _RenderBar(playerid, barid, update = false)
{
    if(!IsPlayerConnected(playerid))
        return false;

    if(!IsValidPlayerProgressBar(playerid, PlayerBar:barid))
        return false;

    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][barid][pbar_back]);
    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][barid][pbar_fill]);
    PlayerTextDrawDestroy(playerid, pbar_TextDraw[playerid][barid][pbar_main]);

    switch(pbar_Data[playerid][barid][pbar_direction])
    {
        case BAR_DIRECTION_RIGHT:
        {
            pbar_TextDraw[playerid][barid][pbar_back] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_posY], "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_back], pbar_Data[playerid][barid][pbar_posX] + pbar_Data[playerid][barid][pbar_width] - 4.0, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1.0, pbar_Data[playerid][barid][pbar_height] / 10);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 0x00000000 | (pbar_Data[playerid][barid][pbar_colour] & 0x000000FF));

            pbar_TextDraw[playerid][barid][pbar_fill] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] + 1.2, pbar_Data[playerid][barid][pbar_posY] + 2.15, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], pbar_Data[playerid][barid][pbar_posX] + pbar_Data[playerid][barid][pbar_width] - 5.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1.0, pbar_Data[playerid][barid][pbar_height] / 10 - 0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], (pbar_Data[playerid][barid][pbar_colour] & 0xFFFFFF00) | (0x66 & ((pbar_Data[playerid][barid][pbar_colour] & 0x000000FF) / 2)));

            pbar_TextDraw[playerid][barid][pbar_main] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] + 1.2, pbar_Data[playerid][barid][pbar_posY] + 2.15, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pb_percent(pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_width], pbar_Data[playerid][barid][pbar_maxValue], pbar_Data[playerid][barid][pbar_progressValue], pbar_Data[playerid][barid][pbar_direction]), 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1.0, pbar_Data[playerid][barid][pbar_height] / 10 - 0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_colour]);
        }

        case BAR_DIRECTION_LEFT:
        {
            pbar_TextDraw[playerid][barid][pbar_back] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_posY], "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_back], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 4.0, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1.0, pbar_Data[playerid][barid][pbar_height] / 10);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 0x00000000 | (pbar_Data[playerid][barid][pbar_colour] & 0x000000FF));

            pbar_TextDraw[playerid][barid][pbar_fill] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] + 2.15, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1.0, pbar_Data[playerid][barid][pbar_height] / 10 - 0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], (pbar_Data[playerid][barid][pbar_colour] & 0xFFFFFF00) | (0x66 & ((pbar_Data[playerid][barid][pbar_colour] & 0x000000FF) / 2)));

            pbar_TextDraw[playerid][barid][pbar_main] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] + 2.15, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pb_percent(pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_width], pbar_Data[playerid][barid][pbar_maxValue], pbar_Data[playerid][barid][pbar_progressValue], pbar_Data[playerid][barid][pbar_direction]), 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1.0, pbar_Data[playerid][barid][pbar_height] / 10 - 0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_colour]);
        }

        case BAR_DIRECTION_UP:
        {
            pbar_TextDraw[playerid][barid][pbar_back] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_posY], "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_back], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 4.0, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1.0, -((pbar_Data[playerid][barid][pbar_height] / 10) * 1.02) -0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 0x00000000 | (pbar_Data[playerid][barid][pbar_colour] & 0x000000FF));

            pbar_TextDraw[playerid][barid][pbar_fill] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] - 1.0, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1.0, -(pbar_Data[playerid][barid][pbar_height] / 10.0) * 1.02);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], (pbar_Data[playerid][barid][pbar_colour] & 0xFFFFFF00) | (0x66 & ((pbar_Data[playerid][barid][pbar_colour] & 0x000000FF) / 2)));

            pbar_TextDraw[playerid][barid][pbar_main] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] - 1.0, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1.0, pb_percent(pbar_Data[playerid][_:barid][pbar_posX], pbar_Data[playerid][_:barid][pbar_height], pbar_Data[playerid][_:barid][pbar_maxValue], pbar_Data[playerid][barid][pbar_progressValue], pbar_Data[playerid][barid][pbar_direction]));
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_colour]);
        }

        case BAR_DIRECTION_DOWN:
        {
            pbar_TextDraw[playerid][barid][pbar_back] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX], pbar_Data[playerid][barid][pbar_posY], "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_back], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 4.0, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_back], 1.0, ((pbar_Data[playerid][barid][pbar_height] / 10)) -0.35);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_back], 0x00000000 | (pbar_Data[playerid][barid][pbar_colour] & 0x000000FF));

            pbar_TextDraw[playerid][barid][pbar_fill] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] + 1.0, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_fill], 1.0, (pbar_Data[playerid][barid][pbar_height] / 10.0) - 0.55);
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_fill], (pbar_Data[playerid][barid][pbar_colour] & 0xFFFFFF00) | (0x66 & ((pbar_Data[playerid][barid][pbar_colour] & 0x000000FF) / 2)));

            pbar_TextDraw[playerid][barid][pbar_main] = CreatePlayerTextDraw(playerid, pbar_Data[playerid][barid][pbar_posX] - 1.2, pbar_Data[playerid][barid][pbar_posY] + 1.0, "_");
            PlayerTextDrawUseBox        (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1);
            PlayerTextDrawTextSize        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_posX] - pbar_Data[playerid][barid][pbar_width] - 2.5, 0.0);
            PlayerTextDrawLetterSize    (playerid, pbar_TextDraw[playerid][barid][pbar_main], 1.0, pb_percent(pbar_Data[playerid][_:barid][pbar_posX], pbar_Data[playerid][_:barid][pbar_height], pbar_Data[playerid][_:barid][pbar_maxValue], pbar_Data[playerid][barid][pbar_progressValue], pbar_Data[playerid][barid][pbar_direction]));
            PlayerTextDrawBoxColor        (playerid, pbar_TextDraw[playerid][barid][pbar_main], pbar_Data[playerid][barid][pbar_colour]);
        }
    }

    if(update)
        ShowPlayerProgressBar(playerid, PlayerBar:barid);

    return true;
}

#if defined _Y_ITERATE_LOCAL_VERSION

    #if defined FILTERSCRIPT

        public OnFilterScriptInit()
        {
            Iter_Init(pbar_Index);

            #if defined ppb_OnFilterScriptInit
                return ppb_OnFilterScriptInit();
            #else
                return 1;
            #endif
        }
        #if defined _ALS_OnFilterScriptInit
            #undef OnFilterScriptInit
        #else
            #define _ALS_OnFilterScriptInit
        #endif
        
        #define OnFilterScriptInit ppb_OnFilterScriptInit
        #if defined ppb_OnFilterScriptInit
            forward ppb_OnFilterScriptInit();
        #endif

    #else

        public OnGameModeInit()
        {
            Iter_Init(pbar_Index);

            #if defined ppb_OnGameModeInit
                return ppb_OnGameModeInit();
            #else
                return 1;
            #endif
        }
        #if defined _ALS_OnGameModeInit
            #undef OnGameModeInit
        #else
            #define _ALS_OnGameModeInit
        #endif
        
        #define OnGameModeInit ppb_OnGameModeInit
        #if defined ppb_OnGameModeInit
            forward ppb_OnGameModeInit();
        #endif

    #endif

#endif

public OnPlayerDisconnect(playerid, reason)
{
#if defined _Y_ITERATE_LOCAL_VERSION
    Iter_Clear(pbar_Index[playerid]);
#else
    for(new i; i < MAX_PLAYER_BARS; i++)
        pbar_Valid[playerid][_:i] = false;
#endif

    #if defined ppb_OnPlayerDisconnect
        return ppb_OnPlayerDisconnect(playerid, reason);
    #else
        return 1;
    #endif
}
#if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
#else
    #define _ALS_OnPlayerDisconnect
#endif

#define OnPlayerDisconnect ppb_OnPlayerDisconnect
#if defined ppb_OnPlayerDisconnect
    forward ppb_OnPlayerDisconnect(playerid, reason);
#endif


/*==============================================================================

    Interface

==============================================================================*/


stock IsValidPlayerProgressBar(playerid, PlayerBar:barid)
{
#if defined _Y_ITERATE_LOCAL_VERSION
    return Iter_Contains(pbar_Index[playerid], _:barid);
#else
    if(!(PlayerBar:0 <= barid < PlayerBar:MAX_PLAYER_BARS))
        return false;

    return pbar_Valid[playerid][_:barid];
#endif
}

// pbar_posX
// pbar_posY
stock GetPlayerProgressBarPos(playerid, PlayerBar:barid, &Float:x, &Float:y)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    x = pbar_Data[playerid][_:barid][pbar_posX];
    y = pbar_Data[playerid][_:barid][pbar_posY];

    return 1;
}

stock SetPlayerProgressBarPos(playerid, PlayerBar:barid, Float:x, Float:y)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return false;

    pbar_Data[playerid][_:barid][pbar_posX] = x;
    pbar_Data[playerid][_:barid][pbar_posY] = y;

    _RenderBar(playerid, _:barid, true);

    return true;
}

// pbar_width
stock Float:GetPlayerProgressBarWidth(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return INVALID_PLAYER_BAR_VALUE;

    return pbar_Data[playerid][_:barid][pbar_width];
}

stock SetPlayerProgressBarWidth(playerid, PlayerBar:barid, Float:width)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_width] = width;

    _RenderBar(playerid, _:barid, true);

    return 1;
}

// pbar_height
stock Float:GetPlayerProgressBarHeight(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return INVALID_PLAYER_BAR_VALUE;

    return pbar_Data[playerid][_:barid][pbar_height];
}

stock SetPlayerProgressBarHeight(playerid, PlayerBar:barid, Float:height)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_height] = height;

    _RenderBar(playerid, _:barid, true);

    return 1;
}

// pbar_colour
stock GetPlayerProgressBarColour(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    return pbar_Data[playerid][_:barid][pbar_colour];
}

stock SetPlayerProgressBarColour(playerid, PlayerBar:barid, colour)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_colour] = colour;
    PlayerTextDrawBoxColor(playerid, pbar_TextDraw[playerid][_:barid][pbar_back], 0x00000000 | (colour & 0x000000FF));

    PlayerTextDrawBoxColor(playerid, pbar_TextDraw[playerid][_:barid][pbar_fill], (colour & 0xFFFFFF00) | (0x66 & ((colour & 0x000000FF) / 2)));

    PlayerTextDrawBoxColor(playerid, pbar_TextDraw[playerid][_:barid][pbar_main], colour);

    return 1;
}

// pbar_maxValue
stock Float:GetPlayerProgressBarMaxValue(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return INVALID_PLAYER_BAR_VALUE;

    return pbar_Data[playerid][_:barid][pbar_maxValue];
}

stock SetPlayerProgressBarMaxValue(playerid, PlayerBar:barid, Float:max)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_maxValue] = max;
    SetPlayerProgressBarValue(playerid, barid, pbar_Data[playerid][_:barid][pbar_progressValue]);

    return 1;
}

// pbar_progressValue
stock SetPlayerProgressBarValue(playerid, PlayerBar:barid, Float:value)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    value = (value < 0.0) ? (0.0) : (value > pbar_Data[playerid][_:barid][pbar_maxValue]) ? (pbar_Data[playerid][_:barid][pbar_maxValue]) : (value);

    PlayerTextDrawUseBox(playerid, pbar_TextDraw[playerid][_:barid][pbar_main], value > 0.0);

    pbar_Data[playerid][_:barid][pbar_progressValue] = value;

    switch(pbar_Data[playerid][_:barid][pbar_direction])
    {
        case BAR_DIRECTION_RIGHT, BAR_DIRECTION_LEFT:
        {

            PlayerTextDrawTextSize(playerid, pbar_TextDraw[playerid][_:barid][pbar_main],
                pb_percent(
                    pbar_Data[playerid][_:barid][pbar_posX],
                    pbar_Data[playerid][_:barid][pbar_width],
                    pbar_Data[playerid][_:barid][pbar_maxValue],
                    value,
                    pbar_Data[playerid][_:barid][pbar_direction]), 0.0);
        }

        case BAR_DIRECTION_UP, BAR_DIRECTION_DOWN:
        {
            PlayerTextDrawLetterSize(playerid, pbar_TextDraw[playerid][_:barid][pbar_main], 1.0,
                pb_percent(
                    pbar_Data[playerid][_:barid][pbar_posX],
                    pbar_Data[playerid][_:barid][pbar_height],
                    pbar_Data[playerid][_:barid][pbar_maxValue],
                    value,
                    pbar_Data[playerid][_:barid][pbar_direction]));
        }
    }

    ShowPlayerProgressBar(playerid, barid);

    return 1;
}

stock Float:GetPlayerProgressBarValue(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return INVALID_PLAYER_BAR_VALUE;

    return pbar_Data[playerid][_:barid][pbar_progressValue];
}

// pbar_direction
stock GetPlayerProgressBarDirection(playerid, PlayerBar:barid)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    return pbar_Data[playerid][_:barid][pbar_direction];
}

stock SetPlayerProgressBarDirection(playerid, PlayerBar:barid, direction)
{
    if(!IsValidPlayerProgressBar(playerid, barid))
        return 0;

    pbar_Data[playerid][_:barid][pbar_direction] = direction;

    _RenderBar(playerid, _:barid, true);

    return 1;
}

//=============================================================================//
//                             [Old Progress]                                  //
//=============================================================================//

#define INVALID_BAR_ID            (Bar:-1)
#define INVALID_BAR_VALUE        (Float:0xFFFFFFFF)
#define MAX_BARS                (MAX_TEXT_DRAWS / 3)
#define pb_percent(%1,%2,%3,%4)    ((%1 - 6.0) + ((((%1 + 6.0 + %2 - 2.0) - %1) / %3) * %4))

forward Bar:CreateProgressBar(Float:x, Float:y, Float:width=55.5, Float:height=3.2, color, Float:max=100.0);
forward Float:GetProgressBarValue(Bar:barid);

enum e_bar
{
    Float:pb_x,
    Float:pb_y,
    Float:pb_w,
    Float:pb_h,
    Float:pb_m,
    Float:pb_v,
    Text:pb_t1,
    Text:pb_t2,
    Text:pb_t3,
    pb_color,
    bool:pb_created
}

static Bars[MAX_BARS][e_bar];

stock Bar:CreateProgressBar(Float:x, Float:y, Float:width=55.5, Float:height=3.2, color, Float:max=100.0)
{
    new barid;

    for(barid = 0; barid < sizeof Bars; ++barid)
        if(!Bars[barid][pb_created]) break;

    if(Bars[barid][pb_created] || barid == sizeof Bars)
        return INVALID_BAR_ID;

    new Text:in_t = Bars[barid][pb_t1] = TextDrawCreate(x, y, "_");
    TextDrawUseBox        (in_t, 1);
    TextDrawTextSize    (in_t, x + width, 0.0);
    TextDrawLetterSize    (in_t, 1.0, height / 10);
    TextDrawBoxColor    (in_t, 0x00000000 | (color & 0x000000FF));

    in_t = Bars[barid][pb_t2] = TextDrawCreate(x + 1.2, y + 2.15, "_");
    TextDrawUseBox        (in_t, 1);
    TextDrawTextSize    (in_t, x + width - 2.0, 0.0);
    TextDrawLetterSize    (in_t, 1.0, height / 10 - 0.35);
    TextDrawBoxColor    (in_t, (color & 0xFFFFFF00) | (0x66 & ((color & 0x000000FF) / 2)));

    in_t = Bars[barid][pb_t3] = TextDrawCreate(x + 1.2, y + 2.15, "_");
    TextDrawTextSize    (in_t, pb_percent(x, width, max, 1.0), 0.0);
    TextDrawLetterSize    (in_t, 1.0, height / 10 - 0.35);
    TextDrawBoxColor    (in_t, color);

    Bars[barid][pb_x] = x;
    Bars[barid][pb_y] = y;
    Bars[barid][pb_w] = width;
    Bars[barid][pb_h] = height;
    Bars[barid][pb_m] = max;
    Bars[barid][pb_color] = color;
    Bars[barid][pb_created] = true;
    return Bar:barid;
}

stock DestroyProgressBar(Bar:barid)
{
    if(barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
    {
        if(!Bars[_:barid][pb_created])
            return 0;

        TextDrawDestroy(Bars[_:barid][pb_t1]);
        TextDrawDestroy(Bars[_:barid][pb_t2]);
        TextDrawDestroy(Bars[_:barid][pb_t3]);

        Bars[_:barid][pb_t1] = Text:0;
        Bars[_:barid][pb_t2] = Text:0;
        Bars[_:barid][pb_t3] = Text:0;
        Bars[_:barid][pb_x] = 0.0;
        Bars[_:barid][pb_y] = 0.0;
        Bars[_:barid][pb_w] = 0.0;
        Bars[_:barid][pb_h] = 0.0;
        Bars[_:barid][pb_m] = 0.0;
        Bars[_:barid][pb_v] = 0.0;
        Bars[_:barid][pb_color] = 0;
        Bars[_:barid][pb_created] = false;
        return 1;
    }
    return 0;
}

stock ShowProgressBarForPlayer(playerid, Bar:barid)
{
    if(IsPlayerConnected(playerid) && barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
    {
        if(!Bars[_:barid][pb_created])
            return 0;

        TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t1]);
        TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t2]);
        TextDrawShowForPlayer(playerid, Bars[_:barid][pb_t3]);
        return 1;
    }
    return 0;
}

stock HideProgressBarForPlayer(playerid, Bar:barid)
{
    if(IsPlayerConnected(playerid) && barid != INVALID_BAR_ID && Bar:-1 < barid < Bar:MAX_BARS)
    {
        if(!Bars[_:barid][pb_created])
            return 0;

        TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t1]);
        TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t2]);
        TextDrawHideForPlayer(playerid, Bars[_:barid][pb_t3]);
        return 1;
    }
    return 0;
}

stock SetProgressBarValue(Bar:barid, Float:value)
{
    if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
        return 0;

    if(Bars[_:barid][pb_created])
    {
        value = (value < 0.0) ? (0.0) : (value > Bars[_:barid][pb_m]) ? (Bars[_:barid][pb_m]) : (value);
        TextDrawUseBox(Bars[_:barid][pb_t3], value > 0.0);
        Bars[_:barid][pb_v] = value;

        TextDrawTextSize(Bars[_:barid][pb_t3], pb_percent(Bars[_:barid][pb_x], Bars[_:barid][pb_w], Bars[_:barid][pb_m], value), 0.0);
        return 1;
    }
    return 0;
}

stock Float:GetProgressBarValue(Bar:barid)
{
    if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
        return INVALID_BAR_VALUE;

    if(Bars[_:barid][pb_created])
        return Bars[_:barid][pb_v];

    return INVALID_BAR_VALUE;
}

stock SetProgressBarMaxValue(Bar:barid, Float:max)
{
    if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
        return 0;

    if(Bars[_:barid][pb_created])
    {
        Bars[_:barid][pb_m] = max;
        SetProgressBarValue(barid, Bars[_:barid][pb_v]);
        return 1;
    }
    return 0;
}

stock SetProgressBarColor(Bar:barid, color)
{
    if(barid == INVALID_BAR_ID || Bar:MAX_BARS < barid < Bar:-1)
        return 0;

    if(Bars[_:barid][pb_created])
    {
        Bars[_:barid][pb_color] = color;
        TextDrawBoxColor(Bars[_:barid][pb_t1], 0x00000000 | (color & 0x000000FF));

        TextDrawBoxColor(Bars[_:barid][pb_t2],
            (color & 0xFFFFFF00) | (0x66 & ((color & 0x000000FF) / 2)));

        TextDrawBoxColor(Bars[_:barid][pb_t3], color);
        return 1;
    }
    return 0;
}

stock ShowProgressBarForAll(Bar:barid)
{
    foreach(new i : Player)
        if(!IsPlayerNPC(i))
            ShowProgressBarForPlayer(i, barid);
}

stock HideProgressBarForAll(Bar:barid)
{
    foreach(new i : Player)
        if(!IsPlayerNPC(i))
            HideProgressBarForPlayer(i, barid);
}

stock UpdateProgressBar(Bar: barid, playerid = INVALID_PLAYER_ID)
{
    if(playerid == INVALID_PLAYER_ID)
        return false;

    ShowProgressBarForPlayer(playerid, barid);
    return 1;
}

Coloque na include:

Código:
#pragma warning disable 213



RE: oq significa warning 213: tag mismatch - pushline - 07/11/2023

Não desabilite warnings, não tem nem o do porquê, ainda mais que se desabilitar você não vai saber resolver o erro.
Sua include progress2 (n sei pq tá nprogress) é desatualizada.

Pegue a versão recente: https://github.com/Southclaws/progress2/blob/master/progress2.inc


RE: oq significa warning 213: tag mismatch - zBreno - 07/11/2023

na folha 150 https://github.com/pawn-lang/compiler/blob/master/doc/pawn-lang.pdf

https://forums.alliedmods.net/showthread.php?t=201044

213 - tag mismatch
A tag mismatch occurs when:
- assigning to a tagged variable a value that is untagged or that has a different tag
- the expressions on either side of a binary operator have different tags
- in a function call, passing an argument that is untagged or that has a different tag than what the function argument was defined with
- indexing an array which requires a tagged index with no tag or a wrong tag name

213 - incompatibilidade de tags
Uma incompatibilidade de tags ocorre quando:
- se atribui a uma variável marcada um valor que não é marcado ou que tenha uma tag diferente
- As expressões de ambos os lados de um operador binário têm tags diferentes
- em uma chamada de função, é passado um argumento sem a gravação ou que tenha uma tag diferente do que o argumento da função foi definido com
- Indexação de uma matriz que requer um índice marcado sem tag ou um nome de tag errado

https://sampwiki.blast.hk/wiki/Errors_List

213: tag mismatch

A tag mismatch occurs when:

Assigning to a tagged variable a value that is untagged or that has a different tag
The expressions on either side of a binary operator have different tags
In a function call, passing an argument that is untagged or that has a different tag than what the function argument was defined with
Indexando uma matriz que requer um índice marcado sem tag ou um nome de tag errado
Geralmente acontecem em uma nova variável criada com a falta de tags na função necessária, como Float:, Text3D:, Text:, etc. Example,

Bad

new health;
GetPlayerHealth(playerid, health);

God

new Float:health;
GetPlayerHealth(playerid, health);