Problems with marker
#1

Hello. I have a problem showing markers. Everything works fine, but sometimes all player markers become the same (same color). So maybe anyone knows what is the problem. Here is the code

pawn Код:
public OnPlayerStreamIn(playerid, forplayerid)
{
    if(SI[Started] > 0)
    {
        if(PI[InRound][playerid] == 1)
        {
            if(GetPlayerTeam(forplayerid) == TEAM_C)
            {
                if(IsPaused[playerid] == 0)
                {
                    SetPlayerMarkerForPlayer( forplayerid, playerid,   GetTeamColor(playerid,false));
                }
                else
                {
                    SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                }
            }
            else
            {
                if(GetPlayerTeam(forplayerid) == GetPlayerTeam(playerid))
                {
                    if(UsedSpotted[playerid] == 0)
                    {
                        if(IsPaused[playerid] == 0)
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,   GetTeamColor(playerid,false));
                        }
                        else
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                        }
                    }
                    else
                    {
                        if(IsPaused[playerid] == 0)
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_WHITE );
                        }
                        else
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                        }
                    }
                    ShowPlayerNameTagForPlayer(forplayerid,playerid,1);
                }
                else
                {
                    if(IsPaused[playerid] == 1)
                    {
                        SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK & 0xFFFFFF00 );
                    }
                    else
                    {
                        SetPlayerMarkerForPlayer( forplayerid, playerid,   GetTeamColor(playerid,true) );
                    }
                    new Float:PX,Float:PY,Float:PZ,Float:X,Float:Y,Float:Z;
                    GetPlayerPos(forplayerid,PX,PY,PZ);
                    GetPlayerPos(playerid, X,Y,Z);
                    new Float:Distance;
                    Distance = floatsqroot((PX-X)*(PX-X)+(PY-Y)*(PY-Y)+(PZ-Z)*(PZ-Z));
                    if(Distance < 40)
                    {
                        ShowPlayerNameTagForPlayer(forplayerid,playerid,1);
                    }
                    else
                    {
                        ShowPlayerNameTagForPlayer(forplayerid,playerid,0);
                    }
                }
            }
        }
        else
        {
            if(PI[InDM][playerid] == 0)
            {
                if(IsPaused[playerid] == 1)
                {
                    SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                }
                else
                {
                    SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_LOBBY );
                }
            }
            else
            {
                if(IsPaused[playerid] == 1)
                {
                    SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                }
                else
                {
                    SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_WHITE );
                }
            }
            ShowPlayerNameTagForPlayer(forplayerid,playerid,1);
        }
    }
    else
    {
        if(PI[InDM][playerid] == 0)
        {
            if(IsPaused[playerid] == 1)
            {
                SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
            }
            else
            {
                SetPlayerMarkerForPlayer( forplayerid, playerid,  GetTeamColor(playerid,false) );
            }
        }
        else
        {
            if(IsPaused[playerid] == 1)
            {
                SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
            }
            else
            {
                SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_WHITE );
            }
        }
        ShowPlayerNameTagForPlayer(forplayerid,playerid,1);
    }
    return 1;
}

function UpdateMarkers()
{
    ForEach(forplayerid,MAX_SLOTS)
    {
        if(PI[InRound][forplayerid] == 1)
        {
            SetPlayerVirtualWorld(forplayerid,10);
        }
        ForEach(playerid,MAX_SLOTS)
        {
            if(SI[Started] > 0)
            {
                if(PI[InRound][playerid] == 1)
                {
                    if(GetPlayerTeam(forplayerid) == TEAM_C)
                    {
                        if(IsPaused[playerid] == 0)
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,   GetTeamColor(playerid,false));
                        }
                        else
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                        }
                    }
                    else
                    {
                        if(GetPlayerTeam(forplayerid) == GetPlayerTeam(playerid))
                        {
                            if(UsedSpotted[playerid] == 0)
                            {
                                if(IsPaused[playerid] == 0)
                                {
                                    SetPlayerMarkerForPlayer( forplayerid, playerid,   GetTeamColor(playerid,false));
                                }
                                else
                                {
                                    SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                                }
                            }
                            else
                            {
                                if(IsPaused[playerid] == 0)
                                {
                                    SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_WHITE );
                                }
                                else
                                {
                                    SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                                }
                            }
                            ShowPlayerNameTagForPlayer(forplayerid,playerid,1);
                        }
                        else
                        {
                            if(IsPaused[playerid] == 1)
                            {
                                SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK & 0xFFFFFF00 );
                            }
                            else
                            {
                                SetPlayerMarkerForPlayer( forplayerid, playerid,   GetTeamColor(playerid,true) );
                            }
                            new Float:PX,Float:PY,Float:PZ,Float:X,Float:Y,Float:Z;
                            GetPlayerPos(forplayerid,PX,PY,PZ);
                            GetPlayerPos(playerid, X,Y,Z);
                            new Float:Distance;
                            Distance = floatsqroot((PX-X)*(PX-X)+(PY-Y)*(PY-Y)+(PZ-Z)*(PZ-Z));
                            if(Distance < 40)
                            {
                                ShowPlayerNameTagForPlayer(forplayerid,playerid,1);
                            }
                            else
                            {
                                ShowPlayerNameTagForPlayer(forplayerid,playerid,0);
                            }
                        }
                    }
                }
                else
                {
                    if(PI[InDM][playerid] == 0)
                    {
                        if(IsPaused[playerid] == 1)
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                        }
                        else
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_LOBBY );
                        }
                    }
                    else
                    {
                        if(IsPaused[playerid] == 1)
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                        }
                        else
                        {
                            SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_WHITE );
                        }
                    }
                    ShowPlayerNameTagForPlayer(forplayerid,playerid,1);
                }
            }
            else
            {
                if(PI[InDM][playerid] == 0)
                {
                    if(IsPaused[playerid] == 1)
                    {
                        SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                    }
                    else
                    {
                        SetPlayerMarkerForPlayer( forplayerid, playerid,  GetTeamColor(playerid,false) );
                    }
                }
                else
                {
                    if(IsPaused[playerid] == 1)
                    {
                        SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_AFK );
                    }
                    else
                    {
                        SetPlayerMarkerForPlayer( forplayerid, playerid,  COLOR_WHITE );
                    }
                }
                ShowPlayerNameTagForPlayer(forplayerid,playerid,1);
            }
        }
    }
    return 1;
}

function GetTeamColor(playerid,bool:alpha)
{
    if(alpha == false)
    {
        switch (GetPlayerTeam(playerid))
        {
            case TEAM_A:
            {
                return COLOR_A;
            }
            case TEAM_B:
            {
                return COLOR_B;
            }
            case TEAM_C:
            {
                return COLOR_C;
            }
        }
    }
    else
    {
        switch (GetPlayerTeam(playerid))
        {
            case TEAM_A:
            {
                return 0xEE292900;
            }
            case TEAM_B:
            {
                return 0x0055FF00;
            }
            case TEAM_C:
            {
                return 10027263;
            }
        }
    }
    return COLOR_LOBBY;
}
Function UpdateMarkes is called every 1 second with timer. There is no other code which uses marker command
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)