well, I have some text draws but its personally for each player, but if I create Text:TextDraw[MAX_PLAYERS]; and I creating for each text draw, its makes some problems for me, like other text draw which are just Text:TextDraw1 not show when I use TextDrawShowForPlayer, what I should to do?
pawn Код:
OnGameModeInit(){
for(new i =0; i<MAX_PLAYERS;i++)
{
TextDrawPos[i] = TextDrawCreate(632.000000, 423.000000, "my position");
TextDrawAlignment(TextDrawPos[i], 3);
TextDrawBackgroundColor(TextDrawPos[i], -16711681);
TextDrawFont(TextDrawPos[i], 3);
TextDrawLetterSize(TextDrawPos[i], 0.350000, 2.000000);
TextDrawColor(TextDrawPos[i], -1);
TextDrawSetOutline(TextDrawPos[i], 1);
TextDrawSetProportional(TextDrawPos[i], 1);
TextDrawFuel[i] = TextDrawCreate(520.0, 302.0,": 100 ");
TextDrawLetterSize(TextDrawFuel[i], 0.3, 1.0);
TextDrawSetOutline(TextDrawFuel[i], 1);
TextDrawBag[i] = TextDrawCreate(140.000000, 380.000000, "Slot 1:~n~Slot 2:~n~Slot 3:~n~Slot 4:~n~Slot 5:");
TextDrawBackgroundColor(TextDrawBag[i], 255);
TextDrawFont(TextDrawBag[i], 1);
TextDrawLetterSize(TextDrawBag[i], 0.370000, 1.000000);
TextDrawColor(TextDrawBag[i], -1);
TextDrawSetOutline(TextDrawBag[i], 0);
TextDrawSetProportional(TextDrawBag[i], 1);
TextDrawUseBox(TextDrawBag[i], 1);
TextDrawBoxColor(TextDrawBag[i], 0x000000AA);
TextDrawTextSize(TextDrawBag[i], 332.000000, 10.000000);
TextDrawSpeed[i] = TextDrawCreate(520.0, 312.0,": 100 ");
TextDrawLetterSize(TextDrawSpeed[i], 0.3, 1.0);
TextDrawSetOutline(TextDrawSpeed[i], 1);
pee[i] = CreateProgressBar(56.00, 335.00, 55.50, 3.20, -65281, 100.0);
}return 1}
public OnPlayerUpdate(playerid)
{
new string[256],old[256],bagitem1[1550],bagitem[5][250];
if(GetPlayerGCash(playerid) >999999999)
{
format(string,256,"%d",GetPlayerGCash(playerid));
}
else if(GetPlayerGCash(playerid) >99999999)
{
format(string,256,"0%d",GetPlayerGCash(playerid));
}
else if(GetPlayerGCash(playerid) >9999999)
{
format(string,256,"00%d",GetPlayerGCash(playerid));
}
else if(GetPlayerGCash(playerid) >999999)
{
format(string,256,"000%d",GetPlayerGCash(playerid));
}
else if(GetPlayerGCash(playerid) >99999)
{
format(string,256,"0000%d",GetPlayerGCash(playerid));
}
else if(GetPlayerGCash(playerid) >9999)
{
format(string,256,"00000%d",GetPlayerGCash(playerid));
}
else if(GetPlayerGCash(playerid) >999)
{
format(string,256,"000000%d",GetPlayerGCash(playerid));
}
else if(GetPlayerGCash(playerid) >99)
{
format(string,256,"0000000%d",GetPlayerGCash(playerid));
}
else if(GetPlayerGCash(playerid) >9)
{
format(string,256,"00000000%d",GetPlayerGCash(playerid));
}
else
{
format(string,256,"000000000%d",GetPlayerGCash(playerid));
}
TextDrawSetString(TextDrawMoney,string);
if(PlayerInfo[playerid][pPee] < 50)
{
SetProgressBarColor(pee[playerid], 0xFFFFFFFF);
}
else
{
SetProgressBarColor(pee[playerid], 0xFFFF00FF);
}
SetProgressBarValue(pee[playerid], PlayerInfo[playerid][pPee]);
UpdateProgressBar(pee[playerid], playerid);
GetPlayer2DZone(playerid,old,sizeof(old));
if(ShitInfo[playerid][pBank] == 1)
{
format(old,sizeof(old),"LS Bank");
}
else if(ShitInfo[playerid][pJail] == 1)
{
format(old,sizeof(old),"Jail");
}
else if(ShitInfo[playerid][pAmmu] == 1)
{
format(old,sizeof(old),"Ammu-Nation");
}
else if(ShitInfo[playerid][pCity] == 1)
{
format(old,sizeof(old),"Job House");
}
TextDrawSetString(TextDrawPos[playerid],old);
format(bagitem[0], 250,"Slot 1: %s",ItemNames[Bags[playerid][0]]);
format(bagitem[1], 250,"Slot 2: %s",ItemNames[Bags[playerid][1]]);
format(bagitem[2], 250,"Slot 3: %s",ItemNames[Bags[playerid][2]]);
format(bagitem[3], 250,"Slot 4: %s",ItemNames[Bags[playerid][3]]);
format(bagitem[4], 250,"Slot 5: %s~n~",ItemNames[Bags[playerid][4]]);
format(bagitem1,sizeof(bagitem1),"%s~n~%s~n~%s~n~%s~n~%s",bagitem[0],bagitem[1],bagitem[2],bagitem[3],bagitem[4]);
TextDrawSetString(TextDrawBag[playerid],bagitem1);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new strgy[256];
if(GetPlayerSpeed(playerid,true) <= 60)
{
format(strgy,256,"Vehicle Speed:~g~%dKM/H",GetPlayerSpeed(playerid,true));
}
else if(GetPlayerSpeed(playerid,true) >60 && GetPlayerSpeed(playerid,true) <= 120)
{
format(strgy,256,"Vehicle Speed:~y~%dKM/H",GetPlayerSpeed(playerid,true));
}
else if(GetPlayerSpeed(playerid,true) >120)
{
format(strgy,256,"Vehicle Speed:~r~%dKM/H",GetPlayerSpeed(playerid,true));
}
TextDrawSetString(TextDrawSpeed[playerid],strgy);
BenzinUpdate(playerid);
}
}
any idea? maybe there are a way to make for each player his textdraw or a other thing
First of all, check IsPlayerConnected.
I already doing it, but when I use textdraw time ( server time ) its getting fucked after server restart, explain: if I restart server the textdraw of time is going to other text draw position and making problems, I'm asking if there are other way to set string for each player
Destroy each player's textdraw under OnPlayerDisconnect, and then try to restart.
maybe to create each textdraw when player connect? and destroy it when disconnect? or how?