20.04.2013, 10:52
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
Textdraws
EXPUpdate
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);
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);
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;
}