SA-MP Forums Archive
Textdraw not working properly - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Textdraw not working properly (/showthread.php?tid=487407)



Textdraw not working properly - roar - 13.01.2014

So I am using my own ranking system that display the current rank and the exp points using a textdraw.

The problem is when 2 or more players connected, the textdraw string is messed with other people rank & experience points. It keeps updating. Please help me as I must have used the wrong function to display the textdraw to the player.

Here is my code:

Код:
new Text:Rank;
new Text:XPAmount;

Rank = TextDrawCreate(498.000000, 101.000000, "_"); //Rank Name
TextDrawBackgroundColor(Rank, 255);
TextDrawFont(Rank, 1);
TextDrawLetterSize(Rank, 0.190000, 1.599999);
TextDrawColor(Rank, -559194218);
TextDrawSetOutline(Rank, 0);
TextDrawSetProportional(Rank, 1);
TextDrawSetShadow(Rank, 0);
TextDrawUseBox(Rank, 1);
TextDrawBoxColor(Rank, 71);
TextDrawTextSize(Rank, 607.000000, 0.000000);

XPAmount = TextDrawCreate(582.000000, 101.000000, "_"); //XP Amount
TextDrawBackgroundColor(XPAmount, 255);
TextDrawFont(XPAmount, 1);
TextDrawLetterSize(XPAmount, 0.190000, 1.599999);
TextDrawColor(XPAmount, -16777066);
TextDrawSetOutline(XPAmount, 0);
TextDrawSetProportional(XPAmount, 1);
TextDrawSetShadow(XPAmount, 0);

//TIMER
SetTimer("EXP_Online", XPTime, 1);

//THE EXP_ONLINE
public EXP_Online(playerid)
{
	for(new i; i < MAX_PLAYERS; i++)
	{
   		if(IsPlayerConnected(i))
		{
	 		SetPlayerScore(i, GetPlayerScore(i) + XPPtsPlus);
   		}
	}
}

//ON PLAYER CONNECT
TextDrawShowForPlayer(playerid, Text:Rank);
TextDrawShowForPlayer(playerid, Text:XPAmount);

//ON PLAYER UPDATE
new string[ 128 ];
new XPTD;
XPTD = GetPlayerScore(playerid);
format( string, sizeof string, "%d", XPTD );
TextDrawSetString(XPAmount, string);

GetPlayerXP(playerid);
if(PlayerRank[playerid] == 1)
{
        new string1[ 128 ];
	format(string1, sizeof string1, "Newbie Stunter");
        TextDrawSetString(Rank, string1);
}
if(PlayerRank[playerid] == 2)
{
	new string2[ 128 ];
	format(string2, sizeof string2, "Regular Stunter");
        TextDrawSetString(Rank, string2);
}
The code above is just to show some of the important code of the ranking codes. If you want to know more informations I will add them.

Please help me.


Re: Textdraw not working properly - newbie scripter - 13.01.2014

pawn Код:
for(new i; i < MAX_PLAYERS; i++)
into
pawn Код:
for(new i = 0; i < MAX_PLAYERS; i++)
Edit use the timer in 50 MS, it may cause lag,


Re: Textdraw not working properly - UnknownOwner - 13.01.2014

Deleted