Little Help
#1

Hello everybody. I have problem with 3D text label. I made rank system which is using 3D labels to displey which is player rank. Also when player with ID 0 joins he have label on his head but when player with ID 1 he don`t have also when player get promote then one rank is writted behind another. So please help me here is the code:
pawn Код:
//OnPlayerConnect  
 Delete3DTextLabel(playertextid[playerid]);
    new color[MAX_PLAYERS];
    if(GetPlayerTeam(playerid) == 1)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            color[playerid] = 0xFF4600FF;
        }
        else
        {
            color[playerid] = 0xB33100FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[GetPlayerRank(playerid)][rName]);
        playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 2)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            color[playerid] = 0x0091FFFF;
        }
        else
        {
            color[playerid] = 0x0066B3FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[GetPlayerRank(playerid)][rName]);
        playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 3)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            SetPlayerColor(playerid,0xFFE77AFF);
            color[playerid] = 0xFFE77AFF;
        }
        else
        {
            SetPlayerColor(playerid,0xFFD92EFF);
            color[playerid] = 0xFFD92EFF;
        }
        format(slova,sizeof(slova),"%s",Ranks[GetPlayerRank(playerid)][rName]);
        playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 4)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            SetPlayerColor(playerid,0x4ADE18FF);
            color[playerid] = 0x4ADE18FF;
        }
        else
        {
            SetPlayerColor(playerid,0x339911FF);
            color[playerid] = 0x339911FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[GetPlayerRank(playerid)][rName]);
        playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
//when player is promoted
        Delete3DTextLabel(playertextid[playerid]);
    if(GetPlayerTeam(playerid) == 1)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            color[playerid] = 0xFF4600FF;
        }
        else
        {
            color[playerid] = 0xB33100FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[GetPlayerRank(playerid)][rName]);
        playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 2)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            color[playerid] = 0x0091FFFF;
        }
        else
        {
            color[playerid] = 0x0066B3FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[GetPlayerRank(playerid)][rName]);
        playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 3)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            SetPlayerColor(playerid,0xFFE77AFF);
            color[playerid] = 0xFFE77AFF;
        }
        else
        {
            SetPlayerColor(playerid,0xFFD92EFF);
            color[playerid] = 0xFFD92EFF;
        }
        format(slova,sizeof(slova),"%s",Ranks[GetPlayerRank(playerid)][rName]);
        playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 4)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            SetPlayerColor(playerid,0x4ADE18FF);
            color[playerid] = 0x4ADE18FF;
        }
        else
        {
            SetPlayerColor(playerid,0x339911FF);
            color[playerid] = 0x339911FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[GetPlayerRank(playerid)][rName]);
        playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
Reply
#2

Are your variables for 3D Text labels taged as Text3D

ex.
pawn Код:
new Text3D:playertextid[MAX_PLAYERS];
Reply
#3

Yep
pawn Код:
new Text3D:playertextid[MAX_PLAYERS];
Reply
#4

I'm not sure but try to move
pawn Код:
Delete3DTextLabel(playertextid[playerid]);
from OnPlayerConnect to OnPlayerDisconnect.
Reply
#5

Quote:
Originally Posted by [MG]Dimi
Посмотреть сообщение
I'm not sure but try to move
pawn Код:
Delete3DTextLabel(playertextid[playerid]);
from OnPlayerConnect to OnPlayerDisconnect.
Where to move it?
Reply
#6

he told u see his last line
delete that line from OnPlayerConnect and add it on OnPlayerDiscoccect
Reply
#7

pawn Код:
//At the top of the script:
new color[MAX_PLAYERS];

    //OnPlayerConnect
    switch(GetPlayerTeam(playerid))
    {
        case 1: color[playerid] = (pInfo[playerid][pVip]) ? (0xB33100FF) : (0xFF4600FF);
        case 2: color[playerid] = (pInfo[playerid][pVip]) ? (0x0066B3FF) : (0x0091FFFF);
        case 3:
        {
            color[playerid] = (pInfo[playerid][pVip]) ? (0xFFD92EFF) : (0xFFE77AFF);
            SetPlayerColor(playerid, color[playerid]);
        }
        case 4:
        {
            color[playerid] = (pInfo[playerid][pVip]) ? (0x339911FF) : (0x4ADE18FF);
            SetPlayerColor(playerid, color[playerid]);
        }
    }
    playertextid[playerid] = Create3DTextLabel(Ranks[GetPlayerRank(playerid)][rName], color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);

    //when player is promoted
    Update3DTextLabelText(playertextid[playerid], color[playerid], Ranks[GetPlayerRank(playerid)][rName]);
Then OnPlayerDisconnect:
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    if(playertextid[playerid]) Delete3DTextLabel(playertextid[playerid]);
    return 1;
}
Reply
#8

I have same problem new rank created and old is behind new..
pawn Код:
public OnPlayerRankChange(playerid, oldrank, newrank, bool:promoted)
{
    new color[MAX_PLAYERS];
    format(slova, sizeof(slova),"{1EA2D6}[%s] {FFFFFF}You are %s from %s to %s !",
                                promoted ? ("Promoted") : ("Demoted"),
                                promoted ? ("promoted") : ("demoted"),
                                Ranks[oldrank][rName],
                                Ranks[newrank][rName]);
                               
    SendClientMessage(playerid, green, slova);
    Delete3DTextLabel(playertextid[playerid]);
    if(GetPlayerTeam(playerid) == 1)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            color[playerid] = 0xFF4600FF;
        }
        else
        {
            color[playerid] = 0xB33100FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[newrank][rName]);
        //playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        //Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
        //Update3DTextLabelText(playertextid[playerid], color[playerid], slova);
        //Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 2)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            color[playerid] = 0x0091FFFF;
        }
        else
        {
            color[playerid] = 0x0066B3FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[newrank][rName]);
        //playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        //Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
        //Update3DTextLabelText(playertextid[playerid], color[playerid], slova);
        //Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 3)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            SetPlayerColor(playerid,0xFFE77AFF);
            color[playerid] = 0xFFE77AFF;
        }
        else
        {
            SetPlayerColor(playerid,0xFFD92EFF);
            color[playerid] = 0xFFD92EFF;
        }
        format(slova,sizeof(slova),"%s",Ranks[newrank][rName]);
        //playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        //Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
        //Update3DTextLabelText(playertextid[playerid], color[playerid], slova);
        //Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    else if(GetPlayerTeam(playerid) == 4)
    {
        if(pInfo[playerid][pVip] == 0)
        {
            SetPlayerColor(playerid,0x4ADE18FF);
            color[playerid] = 0x4ADE18FF;
        }
        else
        {
            SetPlayerColor(playerid,0x339911FF);
            color[playerid] = 0x339911FF;
        }
        format(slova,sizeof(slova),"%s",Ranks[newrank][rName]);
        //playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
        //Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
        //Update3DTextLabelText(playertextid[playerid], color[playerid], slova);
        //Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    }
    playertextid[playerid] = Create3DTextLabel(slova, color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    return 1;
}
Reply
#9



Take a look what is problem sorry for double post please don`t delete this .
Reply
#10

Take a look at my post...
there's enough information in it to fix this...

EDIT:
pawn Код:
//Top of the script
new color[MAX_PLAYERS];
new Text3D:playertextid[MAX_PLAYERS];
pawn Код:
public OnPlayerSpawn(playerid)
{
    switch(GetPlayerTeam(playerid))
    {
        case 1: color[playerid] = (pInfo[playerid][pVip]) ? (0xB33100FF) : (0xFF4600FF);
        case 2: color[playerid] = (pInfo[playerid][pVip]) ? (0x0066B3FF) : (0x0091FFFF);
        case 3:
        {
            color[playerid] = (pInfo[playerid][pVip]) ? (0xFFD92EFF) : (0xFFE77AFF);
            SetPlayerColor(playerid, color[playerid]);
        }
        case 4:
        {
            color[playerid] = (pInfo[playerid][pVip]) ? (0x339911FF) : (0x4ADE18FF);
            SetPlayerColor(playerid, color[playerid]);
        }
    }
    if(playertextid[playerid]) Delete3DTextLabel(playertextid[playerid]);
    playertextid[playerid] = Create3DTextLabel(Ranks[GetPlayerRank(playerid)][rName], color[playerid], 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(playertextid[playerid], playerid, 0.0, 0.0, 0.5);
    return 1;
}
pawn Код:
public OnPlayerRankChange(playerid, oldrank, newrank)
{
    new fstr[100];
    format(fstr, sizeof(fstr), (newrank >= oldrank) ? ("{1EA2D6}[Promoted] {FFFFFF}You are promoted from %s to %s !") : ("{1EA2D6}[Demoted] {FFFFFF}You are demoted from %s to %s !"), Ranks[oldrank][rName], Ranks[newrank][rName]);
    SendClientMessage(playerid, green, fstr);
    Update3DTextLabelText(playertextid[playerid], color[playerid], Ranks[newrank][rName]);
    return 1;
}
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    if(playertextid[playerid]) Delete3DTextLabel(playertextid[playerid]);
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)