EXP System bug
#1

So I have a wierd bug with my EXP System

When I go ingame, I have a timer for my EXP system to update itself every three seconds.... so every three seconds the values go from 0 to 200 then to my actual EXP which is 1900... then it just keeps going into a pattern.

Timer for it
pawn Код:
SetTimerEx("EXPUpdate", 3000, 1, "i", playerid);
Textdraws
pawn Код:
// EXP
    EXP0 = TextDrawCreate(250.000000, -24.000000, "  ");
    TextDrawBackgroundColor(EXP0, 255);
    TextDrawFont(EXP0, 1);
    TextDrawLetterSize(EXP0, 0.500000, 1.000000);
    TextDrawColor(EXP0, -1);
    TextDrawSetOutline(EXP0, 0);
    TextDrawSetProportional(EXP0, 1);
    TextDrawSetShadow(EXP0, 1);

    EXP1 = TextDrawCreate(611.000000, 3.000000, "   ");
    TextDrawBackgroundColor(EXP1, 255);
    TextDrawFont(EXP1, 1);
    TextDrawLetterSize(EXP1, 0.500000, 1.000000);
    TextDrawColor(EXP1, -1);
    TextDrawSetOutline(EXP1, 0);
    TextDrawSetProportional(EXP1, 1);
    TextDrawSetShadow(EXP1, 1);
    TextDrawUseBox(EXP1, 1);
    TextDrawBoxColor(EXP1, 255);
    TextDrawTextSize(EXP1, 496.000000, 0.000000);

    EXP2 = TextDrawCreate(608.000000, 7.000000, "  ");
    TextDrawBackgroundColor(EXP2, 255);
    TextDrawFont(EXP2, 1);
    TextDrawLetterSize(EXP2, 0.500000, 1.000000);
    TextDrawColor(EXP2, -1);
    TextDrawSetOutline(EXP2, 0);
    TextDrawSetProportional(EXP2, 1);
    TextDrawSetShadow(EXP2, 1);
    TextDrawUseBox(EXP2, 1);
    TextDrawBoxColor(EXP2, 65535);
    TextDrawTextSize(EXP2, 500.000000, 0.000000);

    EXP3 = TextDrawCreate(528.000000, 6.000000, " ");
    TextDrawBackgroundColor(EXP3, 255);
    TextDrawFont(EXP3, 1);
    TextDrawLetterSize(EXP3, 0.260000, 1.000000);
    TextDrawColor(EXP3, -1);
    TextDrawSetOutline(EXP3, 0);
    TextDrawSetProportional(EXP3, 1);
    TextDrawSetShadow(EXP3, 1);

    EXP4 = TextDrawCreate(545.000000, 27.000000, " ");
    TextDrawBackgroundColor(EXP4, 255);
    TextDrawFont(EXP4, 2);
    TextDrawLetterSize(EXP4, 0.290000, 1.300000);
    TextDrawColor(EXP4, -1);
    TextDrawSetOutline(EXP4, 0);
    TextDrawSetProportional(EXP4, 1);
    TextDrawSetShadow(EXP4, 1);
EXPUpdate
pawn Код:
public EXPUpdate(playerid)
{
    new newtext[32];
    TextDrawShowForPlayer(playerid, EXP0);
    TextDrawShowForPlayer(playerid, EXP1);
    TextDrawShowForPlayer(playerid, EXP2); // 3 and 4
    format(newtext, sizeof(newtext), "EXP: %d", PlayerInfo[playerid][pEXP]);
    TextDrawSetString(EXP3, newtext);
    TextDrawShowForPlayer(playerid, EXP3);
    format(newtext, sizeof(newtext), "Level: %d", PlayerInfo[playerid][pLevel]);
    TextDrawSetString(EXP4, newtext);
    TextDrawShowForPlayer(playerid, EXP4);
   
    new string[128];
    if(GetPlayerExp(playerid) >= 1359*3/2-0.5)
    {
        if(GetPlayerLevel(playerid) <= 16)
        {
            GivePlayerLevel(playerid, 1);
            format(string, sizeof(string), "Congratulations! Your level has been increased to {FFFFFF}%d", GetPlayerLevel(playerid));
            SendClientMessage(playerid, COLOR_GREEN, string);
            GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~w~Updating Score List...",3000,3);
            GivePlayerExp(playerid, - 1000);
        }
    }
    if(GetPlayerLevel(playerid) >= 16)
    {
        format(string, sizeof(string), "You have reached the maximum level", GetPlayerLevel(playerid));
        SendClientMessage(playerid, COLOR_GREEN, string);
    }
    return 1;
}
Reply
#2

bump
Reply
#3

SetTimerEx("EXPUpdate", 3000, 0, "i", playerid);
Reply
#4

If I use that code, my EXP won't update.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)