Portal SAMP
[Ajuda] Ajuda veiculo(pawno) - 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] Ajuda veiculo(pawno) (/showthread.php?tid=2315)



Ajuda veiculo(pawno) - agi.exe - 21/04/2022

E possivel getar a cor e a vida do veiculo numa variavel?


RE: Ajuda veiculo(pawno) - CoelhaO_LokaO - 21/04/2022

(21/04/2022 06:33)SkayBR Escreveu: E possivel getar a cor e a vida do veiculo numa variavel?

Código PHP:
/**
 * <summary>
 *    Gets the color combination for the given vehicle model ID.
 * </summary>
 *
 * <param name="modelID">
 *    The ID of the vehicle model.
 * </param>
 *
 * <param name="color1">
 *    The first color.
 * </param>
 *
 * <param name="color2">
 *    The second color.
 * </param>
 */

GetVehicleColor(modelID, &color1, &color2)
{
    if (
modelID 400 || modelID 611)
    {
        return 
false;
    }

    new 
arrayIndex modelID 400;
    new 
maxColorIndex = -1;
    
Count(colorIndexMAX_VEHICLE_COLORS)
    {
        if (
vehicleColors[arrayIndex][colorIndex][0] == -|| vehicleColors[arrayIndex][colorIndex][1] == -1)
        {
            break;
        }
        
maxColorIndex colorIndex;
    }

    if (
maxColorIndex 0)
    {
        return 
false;
    }

    new 
randomColorIndex random(maxColorIndex 1);// random returns a value between 0 and max (Excluding the max value) -> maxColorIndex + 1 will return a value between 0 and maxColorIndex

    
color1 vehicleColors[arrayIndex][randomColorIndex][0];
    
color2 vehicleColors[arrayIndex][randomColorIndex][1];

    return 
true;




RE: Ajuda veiculo(pawno) - Dath - 21/04/2022

Para getar as cores do veiculo você usa a stock que o Coelhao citou acima e para a saúde do veiculo você usa a seguinte função

https://sampwiki.blast.hk/wiki/GetVehicleHealth


RE: Ajuda veiculo(pawno) - agi.exe - 21/04/2022

Código PHP:
/**
 * <summary>
 *    Gets the color combination for the given vehicle model ID.
 * </summary>
 *
 * <param name="modelID">
 *    The ID of the vehicle model.
 * </param>
 *
 * <param name="color1">
 *    The first color.
 * </param>
 *
 * <param name="color2">
 *    The second color.
 * </param>
 */

GetVehicleColor(modelID, &color1, &color2)
{
    if (
modelID 400 || modelID 611)
    {
        return 
false;
    }

    new 
arrayIndex modelID 400;
    new 
maxColorIndex = -1;
    
Count(colorIndexMAX_VEHICLE_COLORS)
    {
        if (
vehicleColors[arrayIndex][colorIndex][0] == -|| vehicleColors[arrayIndex][colorIndex][1] == -1)
        {
            break;
        }
        
maxColorIndex colorIndex;
    }

    if (
maxColorIndex 0)
    {
        return 
false;
    }

    new 
randomColorIndex random(maxColorIndex 1);// random returns a value between 0 and max (Excluding the max value) -> maxColorIndex + 1 will return a value between 0 and maxColorIndex

    
color1 vehicleColors[arrayIndex][randomColorIndex][0];
    
color2 vehicleColors[arrayIndex][randomColorIndex][1];

    return 
true;


USO?


RE: Ajuda veiculo(pawno) - k2bi_YT - 21/04/2022

Se o sistema estiver correto, pode ser usado como:
Código PHP:
new VehColor1[MAX_VEHICLES], VehColor2[MAX_VEHICLES];
GetVehicleColor(GetVehicleModel(vehicleid), VehColor1[veicleid], VehColor2[vehicleid]); 



RE: Ajuda veiculo(pawno) - agi.exe - 22/04/2022

Quando uso a stock da erro


RE: Ajuda veiculo(pawno) - CoelhaO_LokaO - 22/04/2022

Posta seu código vai ficar mas fácil de tentar te ajudar.


Codigo - agi.exe - 22/04/2022

Também quero getar a cor do veiculo para salvar (DOF2)

Código PHP:
forward SalvarCarro(playerid);
public 
SalvarCarro(playerid)
{
    new 
Float:PosSC[4];
        if(!DOF2_FileExists(PachCarro(playerid))) DOF2_CreateFile(PachCarro(playerid));
    
        Veiculo 
GetPlayerVehicleID(playerid);

    
GetVehiclePos(VeiculoPosSC[0],PosSC[1],PosSC[2]);
    
GetVehicleZAngle(VeiculoPosSC[3]);
    
    
/*===============[ SAVAR CARRO ]=================*/
    
DOF2_SetInt(PachCarro(playerid),"CarID",GetVehicleModel(Veiculo));
    
DOF2_SetFloat(PachCarro(playerid),"PosX",PosSC[0]);
    
DOF2_SetFloat(PachCarro(playerid),"PosY",PosSC[1]);
    
DOF2_SetFloat(PachCarro(playerid),"PosZ",PosSC[2]);
    
DOF2_SetFloat(PachCarro(playerid),"PosA",PosSC[3]);
    
DOF2_SaveFile();
    return 
1;




RE: Ajuda veiculo(pawno) - k2bi_YT - 22/04/2022

Fiz esse code aqui para você ver se atende sua necessidade:

Ai para "getar" a cor do veiculo basta usar a variavel VehicleColor[...]
Exemplo:
Código PHP:
if((VehicleColor[vehicleid][0] & VehicleColor[vehicleid][1]) == 1) {...}
//Ira verificar se a cor 1 e a cor 2 é igual a cor Branca(1) 

CODE
Código PHP:
new VehicleColor[MAX_VEHICLES][2];
stock ChangeVehicleColor_(vehicleidcolor1color2)
{
    VehicleColor[vehicleid][0] = color1;
    VehicleColor[vehicleid][1] = color2;
    return ChangeVehicleColor(vehicleidcolor1color2);
}

#define ChangeVehicleColor ChangeVehicleColor_


//Você também pode adicionar na criação ddo veiculo, assim o veiculo será criado e a cor já será salva

stock AddStaticVehicleEx_(modelidFloat:spawn_xFloat:spawn_yFloat:spawn_zFloat:z_anglecolor1color2respawn_delayaddsiren=0)
{
    VehicleColor[vehicleid][0] = color1;
    VehicleColor[vehicleid][1] = color2;
    return AddStaticVehicleEx(modelidFloat:spawn_xFloat:spawn_yFloat:spawn_zFloat:z_anglecolor1color2respawn_delayaddsiren=0);
}

stock AddStaticVehicle_(modelidFloat:spawn_xFloat:spawn_yFloat:spawn_zFloat:z_anglecolor1color2)
{
    VehicleColor[vehicleid][0] = color1;
    VehicleColor[vehicleid][1] = color2;
    return AddStaticVehicle(modelidFloat:spawn_xFloat:spawn_yFloat:spawn_zFloat:z_anglecolor1color2);
}

stock CreateVehicle_(vehicletypeFloat:xFloat:yFloat:zFloat:rotationcolor1color2respawn_delayaddsiren=0)
{
    VehicleColor[vehicleid][0] = color1;
    VehicleColor[vehicleid][1] = color2;
    return CreateVehicle(vehicletypeFloat:xFloat:yFloat:zFloat:rotationcolor1color2respawn_delayaddsiren=0);
}

#undef AddStaticVehicleEx
#undef AddStaticVehicle
#undef CreateVehicle

#define AddStaticVehicle            AddStaticVehicle_
#define AddStaticVehicleEx          AddStaticVehicleEx_
#define CreateVehicle               CreateVehicle_ 

Se você usar as "novas" opção de criar veiculo, não será necessario definir na variavel, será definido a cor automaticamente ao criado o veiculo, e usando a ChangeVehicleColor, será a mesma coisa.
Em suma, "não é necessario" definir a variavel, basta apenas utilizar em alguma condição etc, os valores é definido automaticamente...


RE: Ajuda veiculo(pawno) - CoelhaO_LokaO - 22/04/2022

new VehColor1[MAX_VEHICLES], VehColor2[MAX_VEHICLES];
GetVehicleColor(GetVehicleModel(vehicleid), VehColor1[veicleid], VehColor2[vehicleid]);
DOF2_SetInt(PachCarro(playerid),"Cor1",VehColor1[veicleid]);
DOF2_SetInt(PachCarro(playerid),"Cor1",VehColor2[veicleid]);