Portal SAMP
[Ajuda] Cores veículos de inventário - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Cores veículos de inventário (/showthread.php?tid=5089)



Cores veículos de inventário - desconhecido123 - 05/09/2025

Bom dia!

Tô fazendo um sistema em que o player puxa o veículo de inventario venha cores aleatórias e quando player selecionar uma cor o veiculo vim so dá cor selecionada, a unicá coisa q não está fucionado e as cores aletorias fica vindo só carro preto q e a cor padrão do inventario

Código:
new Cor1 = 0;
if(PlayerInfo[playerid][pCarCorInv] == -1)
{
                Cor1 = random(255);
}
else if(PlayerInfo[playerid][pCarCorInv] >= 0)
{
                Cor1 = PlayerInfo[playerid][pCarCorInv];
}
CarroInventario[playerid] = AddStaticVehicleEx(item,X,Y,Z, 1,Cor1,Cor1,-1);
PutPlayerInVehicle(playerid, CarroInventario[playerid], 0);



RE: Cores veículos de inventário - xbruno1000x - 05/09/2025

Não sei por qual motivo, mas o random(255) sempre buga a cor e sai sempre preto. Altere para random(254) e deve funcionar corretamente. Certifique-se também de a váriavel PlayerInfo[playerid][pCarCorInv] estar sendo setada como -1, pois geralmente as variaveis inicializam como 0.


RE: Cores veículos de inventário - desconhecido123 - 05/09/2025

( 10:48)desconhecido123 Escreveu: Bom dia!

Tô fazendo um sistema em que o player puxa o veículo de inventario venha cores aleatórias e quando player selecionar uma cor o veiculo vim so dá cor selecionada, a unicá coisa q não está fucionado e as cores aletorias fica vindo só carro preto q e a cor padrão do inventario

Código:
new Cor1 = 0;
if(PlayerInfo[playerid][pCarCorInv] == -1)
{
                Cor1 = random(255);
}
else if(PlayerInfo[playerid][pCarCorInv] >= 0)
{
                Cor1 = PlayerInfo[playerid][pCarCorInv];
}
CarroInventario[playerid] = AddStaticVehicleEx(item,X,Y,Z, 1,Cor1,Cor1,-1);
PutPlayerInVehicle(playerid, CarroInventario[playerid], 0);

( 18:13)xbruno1000x Escreveu: Não sei por qual motivo, mas o random(255) sempre buga a cor e sai sempre preto. Altere para random(254) e deve funcionar corretamente. Certifique-se também de a váriavel PlayerInfo[playerid][pCarCorInv] estar sendo setada como -1, pois geralmente as variaveis inicializam como 0.


Código:
stock AtualizarInvCor(playerid)
{
if(PlayerInfo[playerid][pCorInv] == 0)
{
        PlayerInfo[playerid][pCorInv] = 0x00000050;
        PlayerInfo[playerid][pCarCorInv] = -1;
}

    PlayerTextDrawBoxColor(playerid, invText[playerid][0], PlayerInfo[playerid][pCorInv]);
    if(InventarioAberto[playerid] == 1)
    {
PlayerTextDrawShow(playerid, invText[playerid][0]);
}

if(PlayerInfo[playerid][pCorInv] == 0x0000003C)
{
        PlayerTextDrawBoxColor(playerid, textDoLadoInv[playerid][0], 95);
}
else
{
        PlayerTextDrawBoxColor(playerid, textDoLadoInv[playerid][0], PlayerInfo[playerid][pCorInv]);
}
return 0;
}

if(item > 399 && item < 610)
{
    if(AguardarVeiculo[playerid] >= 1){
format(stringZCMD, sizeof stringZCMD, "* Você pegou um veículo de inventário a pouco tempo! Aguarde 5:30 segundos.", AguardarVeiculo[playerid]);
SendClientMessage(playerid, COR_GRAD1, stringZCMD);
return 1;
}
        if(GetPlayerVirtualWorld(playerid) != 0)
        return SendClientMessage(playerid, COR_LIGHTRED, "ERRO: {FFFFFF}Você só pode pegar veículos de inventário no world [0]!");
        if(GetPlayerInterior(playerid) > 0)
        return SendClientMessage(playerid, COR_LIGHTRED, "ERRO: {FFFFFF}Você não pode pegar veículos de inventário em interior!");
        if(IsPlayerInAnyVehicle(playerid))
        return SendClientMessage(playerid, COR_LIGHTRED, "ERRO: {FFFFFF}Você já está em um veículo!");
    new Float:X,Float:Y,Float:Z;
  GetPlayerPos(playerid, X,Y,Z);
      //new arquivo[64];
//new arquivo2[64];
//new Cor1 = 1 + random(255);
//new Cor2 = 1 + random(255);
new Cor1 = 0;
if(PlayerInfo[playerid][pCarCorInv] == -1)
{
                Cor1 = random(255);
}
else if(PlayerInfo[playerid][pCarCorInv] >= 0)
{
                Cor1 = PlayerInfo[playerid][pCarCorInv];
}
CarroInventario[playerid] = AddStaticVehicleEx(item,X,Y,Z, 1,Cor1,Cor1,-1);
PutPlayerInVehicle(playerid, CarroInventario[playerid], 0);
//CarroInventario[playerid] = AddStaticVehicleEx(item,X,Y,Z, 1,Cor1,Cor2,-1);
//PutPlayerInVehicle(playerid, CarroInventario[playerid], 0);
/*for(new x = 1200; x != MAX_VEHICLES; ++x)
{
    format(arquivo, sizeof(arquivo), Pasta_CarrosVIP,x);
    format(arquivo2, sizeof(arquivo2), Pasta_CarrosFixo,x);
if(!DOF2_FileExists(arquivo) && !DOF2_FileExists(arquivo2))
{
CarroInventario[playerid] = AddStaticVehicleEx(item,X,Y,Z, 1,1,0,-1);
PutPlayerInVehicle(playerid, CarroInventario[playerid], 0);
break;
}
}*/
    if(item == 441 || item == 464 || item == 465 || item == 501 || item == 564 || item == 594)
{
  SendClientMessage(playerid, COR_LIGHTBLUE, "Carrinho: Você pegou seu brinquedo, quando quiser guarda-lo pressione F ou N");
  format(gstring, sizeof(gstring), "[BRINQUEDO]: %s Pegou um(a) %s de brinquedo.", PlayerName(playerid), Nomedosveiculos[item - 400]);
ProxDetector(30.0, playerid, gstring, COR_AZUL,COR_AZUL,COR_AZUL,COR_PURPLE,COR_PURPLE);
}
else
{
    SendClientMessage(playerid, COR_LIGHTBLUE, "Você pegou seu veículo de inventário, para guarda-lô, pressione a tecla F ou N.");
  format(gstring, sizeof(gstring), "[Veiculo de Inventário]: %s Pegou um(a) %s em seu inventário.", PlayerName(playerid), Nomedosveiculos[item - 400]);
ProxDetector(30.0, playerid, gstring, COR_AZUL,COR_AZUL,COR_AZUL,COR_PURPLE,COR_PURPLE);
}
            BoxAberto[playerid] = 0;
GetVehicleParamsEx(CarroInventario[playerid],engineZCMD,lightsZCMD,alarmZCMD,doorsZCMD,bonnetZCMD,bootZCMD,objectiveZCMD);
SetVehicleParamsEx(CarroInventario[playerid],VEHICLE_PARAMS_ON,lightsZCMD,alarmZCMD,doorsZCMD,bonnetZCMD,bootZCMD,objectiveZCMD);
SendClientMessage(playerid, 0xFFFFFFFF, "Veiculo: {228B22}Ligado!");
EngineCarro[CarroInventario[playerid]] = 1;
AguardarVeiculo[playerid] = 530;
Gas[CarroInventario[playerid]] = GasMax;
            FecharInventario(playerid);
}

if(dialogid == 1474)
{
if(response)
{
if(listitem == 0)
{
                PlayerInfo[playerid][pCorInv] = 0x00000050; PlayerInfo[playerid][pCarCorInv] = -1;
}
else
{
                PlayerInfo[playerid][pCorInv] = AllCarColorsI[listitem];
PlayerInfo[playerid][pCarCorInv] = listitem;
}
AtualizarInvCor(playerid);
//InventarioConfig(playerid);
    //if(InventarioAberto[playerid] == 1)
    //{
//FecharInventario(playerid);
//}
}
}

if(listitem == 12)
{
MEGAString[0] = EOS;
new color[30];
for(new i; i < 185; i++)
{
    if(i == 0)
{
    format(stringZCMD, 50, "{FFFFFF}Cor Padrão\n");
strcat(MEGAString, stringZCMD);
}
else
{
format(color, 7, "%06x", ConvertColour(AllCarColors[i], COLOUR_MODE_RGB, COLOUR_MODE_RGB));
format(stringZCMD, 50, "{%s}Cor %d\n", color, i);
strcat(MEGAString, stringZCMD);
}
}
ShowPlayerDialog(playerid, 1474, DIALOG_STYLE_LIST, "Paleta de Cores do Inventário:", MEGAString, "Alterar", "Voltar");
}



RE: Cores veículos de inventário - xbruno1000x - 06/09/2025

Testou trocar o
Código:
Cor1 = random(255);
por
Código:
Cor1 = random(254);
como eu havia dito?


RE: Cores veículos de inventário - desconhecido123 - 06/09/2025

( 00:14)xbruno1000x Escreveu: Testou trocar o
Código:
Cor1 = random(255);
por
Código:
Cor1 = random(254);
como eu havia dito?

 Sim, no caso tive que colocar o 0, e deu certo mais quando vou trocar a cor na dialog e muda para cor padrão fica saido só laranja