need help with text draw !
#1

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
Reply
#2

First of all, check IsPlayerConnected.
Second of all, use TextDrawShowForPlayer for each textdraw..
Reply
#3

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
Reply
#4

Destroy each player's textdraw under OnPlayerDisconnect, and then try to restart.
Reply
#5

I added ongamemodeexit to destroy all textdraws, and same :/
maybe to create each textdraw when player connect? and destroy it when disconnect? or how?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)