Textdraw panel showing for anyone except me, doesn't matter what playerid I have.
#1

Alright so this problem is kinda funky. Here is this timer that runs every 200ms updating textdraws and letting them show if necessary. THe problem is, if I change the for loop to i=0 it shows for me but not the rest.
if I just let it on i; the rest sees the panel but I dont. I already tried printing it. And it just printed it fine, but no textdraw showing up.


Main part of the panel starting at: if(!IsAFlyingVehicle(vid))
pawn Код:
public UpdateTextdraw()
{
    for(new i; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PreviewingSkin[i] == 1) { if(PreviewingSkinTime[i] == 0) { SetPlayerSkin(i, PreviewingSkinOld[i]); PreviewingSkin[i] = 0; } else { PreviewingSkinTime[i]=PreviewingSkinTime[i]-1; } }
            if(WantsRecording[i] == 1)
            {
                if(TimeTakenMins[i] == 59) { TimeTakenMins[i] = 0; TimeTakenHrs[i] += 1; }
                else
                {
                    TimeTakenMins[i] += 1;
                }
            }
            if(IsPlayerInAnyVehicle(i))
            {
                new vid = GetPlayerVehicleID(i);
                switch(GetVehicleModel(vid))
                {
                    case 520 , 577 , 511 , 592 , 512 , 513 , 519 , 593 , 553 , 476, 417 , 425, 447, 469, 487, 488, 497, 548, 563, 460:
                    {
                        PlayerTextDrawHide(i, Textdrawpanel0[i]);
                        PlayerTextDrawHide(i, Textdrawpanel1[i]);
                        PlayerTextDrawHide(i, Textdrawpanel2[i]);
                        PlayerTextDrawHide(i, Textdrawpanel3[i]);
                        PlayerTextDrawHide(i, Textdrawpanel4[i]);
                        PlayerTextDrawHide(i, Textdrawpanel5[i]);
                        PlayerTextDrawHide(i, Textdrawpanel6[i]);
                        PlayerTextDrawHide(i, Textdrawpanel7[i]);
                        PlayerTextDrawHide(i, Textdrawpanel8[i]);
                        new szString[128];
                        format(szString, 40, "%d Percent", vfuel[vid]);
                        TextDrawSetString(Textdraw4[i], szString);
                        TextDrawShowForPlayer(i, Textdraw4[i]);
                        TextDrawShowForPlayer(i, Textdraw5[i]);
                        if(vfuel[vid] < 21) //20 or under fuel
                        {
                            if(vfuel[vid] == 20 && FuelWarned[i] == 0) { FuelWarned[i] = 1; SendClientMessage(i, COLOR_ERROR, "[Instrument Panel] The vehicles fuel is running low ! Please refuel immediately! (/refuel)"); }
                        }
                        new Float:vhealth;
                        new Float: vX, Float:vY, Float:vZ;
                        format(szString, 128, "%s", GetPlayerArea(i));
                        TextDrawSetString(Textdraw0[i], szString);
                        TextDrawShowForPlayer(i, Textdraw0[i]);
                        TextDrawShowForPlayer(i, Textdraw2[i]);
                        GetVehicleHealth(vid, vhealth);
                        vhealth = vhealth/10;
                        format(szString, 40, "%d Percent", floatround(vhealth, floatround_round));
                        TextDrawSetString(Textdraw6[i], szString);
                        TextDrawShowForPlayer(i, Textdraw6[i]);
                        TextDrawShowForPlayer(i, Textdraw7[i]);
                        GetPlayerPos(i, vX, vY, vZ);
                        format(szString, 40, "%d", floatround(vZ, floatround_ceil));
                        TextDrawSetString(Textdraw10[i], szString);
                        TextDrawShowForPlayer(i, Textdraw10[i]);
                        TextDrawShowForPlayer(i, Textdraw9[i]);
                        format(szString, 40, "%d MPH", floatround(GetVehicleSpeed(vid, 0), floatround_round));
                        TextDrawSetString(Textdraw8[i], szString);
                        TextDrawShowForPlayer(i, Textdraw8[i]);
                        TextDrawShowForPlayer(i, Textdraw11[i]);
                        new Float:zangle;
                        GetVehicleZAngle(vid, zangle);
                        format(szString, 40, "%d", floatround(zangle, floatround_round));
                        TextDrawSetString(Textdraw12[i], szString);
                        TextDrawShowForPlayer(i, Textdraw12[i]);
                        TextDrawShowForPlayer(i, Textdraw13[i]);
                        if(StartedMission[i] == 1)
                        {
                            if(MissionStage[i] == 1)
                            {
                                new Float:DistanceCheck;
                                DistanceCheck = GetDistanceBetweenPoints(vX, vY, vZ,Pos1[i],Pos2[i],Pos3[i]);
                                format(szString, 40, "%s (%dm)", FirstAPName[i],floatround(DistanceCheck, floatround_round));
                                TextDrawSetString(Textdraw1[i], szString);
                                TextDrawShowForPlayer(i, Textdraw1[i]);
                                TextDrawShowForPlayer(i, Textdraw3[i]);
                            }
                            else if(MissionStage[i] == 2)
                            {
                                new Float:DistanceCheck;
                                DistanceCheck = GetDistanceBetweenPoints(vX, vY, vZ,Pos12[i],Pos22[i],Pos32[i]);
                                format(szString, 40, "%s (%dm)", FinalAPName[i],floatround(DistanceCheck, floatround_round));
                                TextDrawSetString(Textdraw1[i], szString);
                                TextDrawShowForPlayer(i, Textdraw1[i]);
                                TextDrawShowForPlayer(i, Textdraw3[i]);
                            }
                        }
                    }
                }
                if(!IsAFlyingVehicle(vid)) // It's about THIS part of the script.
                {
                    new szString[128];
                    new Float:vhealth;
                    // background box
                    PlayerTextDrawShow(i, Textdrawpanel0[i]);
                    // Speed
                    format(szString, 40, "%d KPH", floatround(GetVehicleSpeed(vid, 0), floatround_round));
                    PlayerTextDrawSetString(i,Textdrawpanel5[i], szString);
                    PlayerTextDrawShow(i, Textdrawpanel1[i]);
                    PlayerTextDrawShow(i, Textdrawpanel5[i]);
                    // Damage
                    GetVehicleHealth(vid, vhealth);
                    vhealth = vhealth/10;
                    format(szString, 40, "%d\%", floatround(vhealth, floatround_round));
                    PlayerTextDrawSetString(i,Textdrawpanel4[i], szString);
                    PlayerTextDrawShow(i, Textdrawpanel2[i]);
                    PlayerTextDrawShow(i, Textdrawpanel4[i]);
                    // Fuel
                    format(szString, 40, "%d\%", vfuel[vid]);
                    PlayerTextDrawSetString(i,Textdrawpanel6[i], szString);
                    PlayerTextDrawShow(i, Textdrawpanel3[i]);
                    PlayerTextDrawShow(i, Textdrawpanel6[i]);
                    // Area
                    format(szString, 128, "%s", GetPlayerArea(i));
                    PlayerTextDrawSetString(i,Textdrawpanel8[i], szString);
                    PlayerTextDrawShow(i, Textdrawpanel7[i]);
                    PlayerTextDrawShow(i, Textdrawpanel8[i]);

                    TextDrawHideForPlayer(i, Textdraw0[i]);
                    TextDrawHideForPlayer(i, Textdraw1[i]);
                    TextDrawHideForPlayer(i, Textdraw2[i]);
                    TextDrawHideForPlayer(i, Textdraw3[i]);
                    TextDrawHideForPlayer(i, Textdraw4[i]);
                    TextDrawHideForPlayer(i, Textdraw5[i]);
                    TextDrawHideForPlayer(i, Textdraw6[i]);
                    TextDrawHideForPlayer(i, Textdraw7[i]);
                    TextDrawHideForPlayer(i, Textdraw8[i]);
                    TextDrawHideForPlayer(i, Textdraw9[i]);
                    TextDrawHideForPlayer(i, Textdraw10[i]);
                    TextDrawHideForPlayer(i, Textdraw11[i]);
                    TextDrawHideForPlayer(i, Textdraw12[i]);
                    TextDrawHideForPlayer(i, Textdraw13[i]);
                }
            }
        }
    }
}
That's the function. Help me solve this funky problem!
Reply
#2

Anyone?
Reply
#3

Maybe you have some problems with your pc? Graphics problem can make this happend.
Reply
#4

Nope. As I said, other can see it, and when I set the for loop to i=0; It shows up for me, but not for the rest, so it's kinda weird, but that's how this issue is going.
Reply
#5

Out of curiosity, have you tried using Foreach? It's all I ever use and I've never run into issues like this.

https://sampforum.blast.hk/showthread.php?tid=92679
Reply
#6

I have, and I hate. I dont know why I just don't like it. I know it comes in handy for these things. But I just like to use the for loop.
Reply
#7

pawn Код:
for(new i = 0; i < MAX_PLAYERS; i++)
I think you've said you tried it, but I would implore you to try one more time and see if you didn't make a mistake initially.
Reply
#8

pawn Код:
new i;
and
pawn Код:
new i=0;
are equivalent. If a variable isn't explicitly initialized its value will be 0.

I recommend running crashdetect plugin as I suspect some kind of data corruption.
Reply
#9

Quote:
Originally Posted by Vince
Посмотреть сообщение
pawn Код:
new i;
and
pawn Код:
new i=0;
are equivalent. If a variable isn't explicitly initialized its value will be 0.

I recommend running crashdetect plugin as I suspect some kind of data corruption.
I have runned crashdetect, nothing came up.

EDIT: I've changed this lastnight to TextDrawCreate so, no playertext. and then it DOES show up. it gets kinda funky now.
Reply
#10

Not fixed yet as I want it to be PlayerTextdraw.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)