[Ajuda] O que hб de errado neste sistema ?
#1

Fiz um sistema para que o player possa ver a lataria do carro em cima do mesmo, por 3D Label. Porйm nada aparece no carro.

pawn Код:
new Text3D:vehicle3Dtext[MAX_VEHICLES],vehicle_id;

public OnPlayerUpdate(playerid)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        if(GetPlayerState(playerid == PLAYER_STATE_DRIVER))
        {
            new Carro = GetPlayerVehicleID(playerid);
            new Float:vHealth = GetVehicleHealth(Carro, vHealth);
       
            new String[60];
       
            if(vHealth > 250) String = "_";
            else if(vHealth > 250 && vHealth < 500) String = "__";
            else if(vHealth > 500 && vHealth < 700) String = "___";
            else if(vHealth > 700 && vHealth < 850) String = "_____";
            if(vHealth > 850) String = "______";
           
            new Bar[80];
            format(Bar, sizeof(Bar), "%s", String);
           
            vehicle3Dtext[ Carro ] = Create3DTextLabel( Bar, 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
            Attach3DTextLabelToVehicle( vehicle3Dtext[ Carro ] , Carro, 0.0, 0.0, 2.0);
        }
    }
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(oldstate == PLAYER_STATE_DRIVER)
    {
        Delete3DTextLabel( vehicle3Dtext[ vehicle_id ] );
    }
    return 1;
}
Era pra ser assim :

Se a lataria tivesse boa ficaria em cima do carro uma linha cheia ( ________ )
Caso ele fosse batendo o carro, a linha ia diminuindo atй ficar sу uma barra ( _ )
Sу que a 3D label nгo estб sendo criada em cima do carro como esperado.

Alguйm sabe o por que disto nгo estar funcionado corretamente ?
Reply
#2

format(String,10,"ostracosquequeres");

Usa ito em vez de igualares strings n fiz codigo ja eitibho ok ta to tablet.
String = "wdff"; nao existe nem tem cavimento ve um tutorial para melhor eppicacao pois n to em condicoes de ta dar
Reply
#3

O que Nгo entendi nada mano
Reply
#4

Tenta desse jeito

pawn Код:
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        if(GetPlayerState(playerid == PLAYER_STATE_DRIVER))
        {
            new Carro = GetPlayerVehicleID(playerid);
            new Float:vHealth;
            GetVehicleHealth(Carro, vHealth);

            new Bar[80];
            if(vHealth > 250){
            format(Bar, sizeof(Bar), "_");
            }
             if(vHealth > 250 && vHealth < 500){
            format(Bar, sizeof(Bar), "__");
            }
            if(vHealth > 500 && vHealth < 700){
            format(Bar, sizeof(Bar), "___");
            }
            if(vHealth > 700 && vHealth < 850){
            format(Bar, sizeof(Bar), "_____");
            }
            if(vHealth > 850){
            format(Bar, sizeof(Bar), "______");
            }
            vehicle3Dtext[ Carro ] = Create3DTextLabel( Bar, 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
            Attach3DTextLabelToVehicle( vehicle3Dtext[ Carro ] , Carro, 0.0, 0.0, 2.0);
        }
    }
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(oldstate == PLAYER_STATE_DRIVER)
    {
        Delete3DTextLabel( vehicle3Dtext[ vehicle_id ] );
    }
    return 1;
}
Reply
#5

Nгo sei se acontece a mesma coisa com a label, mas com o GameTextForPlayer, o _ server para dar espaзo, faзa testes:
pawn Код:
if(vHealth > 250) String = "_";
else if(vHealth > 250 && vHealth < 500) String = "_T_";
else if(vHealth > 500 && vHealth < 700) String = "_E__";
else if(vHealth > 700 && vHealth < 850) String = "___S__";
if(vHealth > 850) String = "___T___";
Se aparecer as letras o problema й com o _
Reply
#6

Desculpa ve o que estes jovens postaram, tablet fode tudo
Reply
#7

Quote:
Originally Posted by Jimmmy
Посмотреть сообщение
Tenta desse jeito

pawn Код:
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        if(GetPlayerState(playerid == PLAYER_STATE_DRIVER))
        {
            new Carro = GetPlayerVehicleID(playerid);
            new Float:vHealth;
            GetVehicleHealth(Carro, vHealth);

            new Bar[80];
            if(vHealth > 250){
            format(Bar, sizeof(Bar), "_");
            }
             if(vHealth > 250 && vHealth < 500){
            format(Bar, sizeof(Bar), "__");
            }
            if(vHealth > 500 && vHealth < 700){
            format(Bar, sizeof(Bar), "___");
            }
            if(vHealth > 700 && vHealth < 850){
            format(Bar, sizeof(Bar), "_____");
            }
            if(vHealth > 850){
            format(Bar, sizeof(Bar), "______");
            }
            vehicle3Dtext[ Carro ] = Create3DTextLabel( Bar, 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
            Attach3DTextLabelToVehicle( vehicle3Dtext[ Carro ] , Carro, 0.0, 0.0, 2.0);
        }
    }
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(oldstate == PLAYER_STATE_DRIVER)
    {
        Delete3DTextLabel( vehicle3Dtext[ vehicle_id ] );
    }
    return 1;
}
Fiz assim, mais a barra nгo se atualiza com os danos, sempre fica a mesma coisa e quando sai do carro a barra fica :\
Reply
#8

Ai mano agora pega se nгo pegar me mato talvez

Coloquei == Pra Evitar que fique atualizando toda hora .. mais no caso ta fazendo a funзгo da mesma .

pawn Код:
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        if(GetPlayerState(playerid == PLAYER_STATE_DRIVER))
        {
            new Carro = GetPlayerVehicleID(playerid);
            new Float:vHealth;
            GetVehicleHealth(Carro, vHealth);
            vehicle_id = Carro;

            new Bar[80];
            if(vHealth == 250 || vHealth == 300 || vHealth == 350){
            Delete3DTextLabel( vehicle3Dtext[ Carro ] );
            format(Bar, sizeof(Bar), "_");
            }
            if(vHealth == 400 || vHealth == 450 || vHealth == 500){
            Delete3DTextLabel( vehicle3Dtext[ Carro ] );
            format(Bar, sizeof(Bar), "__");
            }
            if(vHealth == 550 || vHealth == 600 || vHealth == 650){
            Delete3DTextLabel( vehicle3Dtext[ Carro ] );
            format(Bar, sizeof(Bar), "___");
            }
            if(vHealth == 700 || vHealth == 750 || vHealth == 800){
            Delete3DTextLabel( vehicle3Dtext[ Carro ] );
            format(Bar, sizeof(Bar), "_____");
            }
            if(vHealth >= 850){
            Delete3DTextLabel( vehicle3Dtext[ Carro ] );
            format(Bar, sizeof(Bar), "______");
            }
            vehicle3Dtext[ Carro ] = Create3DTextLabel( Bar, 0xFF0000AA, 0.0, 0.0, 0.0, 50.0, 0, 1 );
            Attach3DTextLabelToVehicle( vehicle3Dtext[ Carro ] , Carro, 0.0, 0.0, 2.0);
        }
    }
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(oldstate == PLAYER_STATE_DRIVER)
    {
        Delete3DTextLabel( vehicle3Dtext[ vehicle_id ] );
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)