Portal SAMP
[Ajuda] Sistema de Carro - 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] Sistema de Carro (/showthread.php?tid=2786)



Sistema de Carro - gbzin - 11/09/2022

Bom sou novo aqui e queria ajuda com meu codigo /car [nome veiculo]

so que queria incurtar na hora de escrever o nome do veiculo 
EX: em vez de /car cheetah usar apenas /car chee


Código:
CMD:car(playerid, params[])
{
    if(pAusente[playerid] == true) return pMensagem(playerid, Vermelho, "[PILOTS] Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playerid, Vermelho, "[PILOTS] Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playerid, Vermelho, "[PILOTS] Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playerid, Vermelho, "[PILOTS] Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params,"s[25]dd",Veiculo, Cor[0], Cor[1])) return pMensagem(playerid, Laranja, "[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao pode criar um Veiculo dentro de outro!");
    new bool:existe, VeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new r = 0;r < 212; r++)
        {
            if(!strcmp(Veiculo, sCars[r],true))
            {
                existe = true;
            }
            if(!strcmp(Veiculo, sCars[r],true)) VeiculoID = (r+400);
        }
    }

    if(!existe)
    {
        new String[256];
        format(String, sizeof(String), "[PILOTS] veiculo Não existe.", Veiculo);
        pMensagem(playerid, Vermelho, String);
        return 1;
    }
       if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
       {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1, "[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, Angle);
    CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], -1);
    return 1;
}



RE: Sistema de Carro - MarcosBrazz - 11/09/2022

Tente assim:
Código:
CMD:car(playerid, params[])
{
    if(pAusente[playerid] == true) return pMensagem(playerid, Vermelho, "[PILOTS] Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playerid, Vermelho, "[PILOTS] Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playerid, Vermelho, "[PILOTS] Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playerid, Vermelho, "[PILOTS] Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params,"s[25]dd",Veiculo, Cor[0], Cor[1])) return pMensagem(playerid, Laranja, "[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Vermelho, "[ ERRO ] Voce nao pode criar um Veiculo dentro de outro!");
    new bool:existe, VeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new r = 0;r < 212; r++)
        {
            if(strfind(Veiculo, sCars[r]) != -1)
            {
                existe = true;
                VeiculoID = (r+400);
                break;
            }
            else {
                existe = false;
            }
            
        }
    }

    if(!existe)
    {
        new String[256];
        format(String, sizeof(String), "[PILOTS] veiculo Não existe.", Veiculo);
        pMensagem(playerid, Vermelho, String);
        return 1;
    }
       if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
       {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1, "[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, Angle);
    CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], -1);
    return 1;
}



RE: Sistema de Carro - Device-Black - 11/09/2022

Na verdade isso pode ser muito mais simples
Código:
CMD:car(id, args[])
{
    static model, Float:pos[4];
    if(sscanf(args, "k<vehicle>", model))
        return SendClientMessage(id, -1, "Veiculo nao encontrado!");

    GetPlayerPos(id, pos[0], pos[1], pos[2]);
    GetPlayerFacingAngle(id, pos[3]);

    static vid;
    vid = CreateVehicle(model, pos[0], pos[1], pos[2], pos[3], 0, 0, -1);
    PutPlayerInVehicle(id, vid, 0);
    return 1;
}

Adapte ao seu comando ✌️


RE: Sistema de Carro - gbzin - 12/09/2022

e nao funcionou nenhum dos dois, mais obrigado


RE: Sistema de Carro - Device-Black - 12/09/2022

(12/09/2022 00:36)gbzin Escreveu: e nao funcionou nenhum dos dois, mais obrigado

Ve no Repositório do github do sscanf, la aparece algo semelhante sobre o que você quer

Mas creio que tem de usar o sscanf e o compilador atualizado


RE: Sistema de Carro - gbzin - 12/09/2022

tem dc?


RE: Sistema de Carro - Device-Black - 12/09/2022

DeviceBlack#3979


RE: Sistema de Carro - Dr Editor - 12/09/2022

Código PHP:
CMD:car(playeridparams[])
{
    if(pAusente[playerid] == true) return pMensagem(playeridVermelho"[PILOTS] Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playeridVermelho"[PILOTS] Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playeridVermelho"[PILOTS] Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playeridVermelho"[PILOTS] Você está no evento.");
    new Veiculo[30], Cor[2];
    if(sscanf(params,"s[30]dd",VeiculoCor[0], Cor[1])) return pMensagem(playeridLaranja"[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playeridVermelho"[ ERRO ] Voce nao pode criar um Veiculo dentro de outro!");
    new bool:existeVeiculoID,  index = -1;
    if(!IsNumeric(Veiculo))
    {
        for(new 
0len strlen(nome); sizeof veh++)
        {
            if(!
strcmp(nomeveh[i], truelen))
            {
                
index i;
                break;
            }
        }
    }

    if(
index == -1)    
    
{
        new String[256];
        format(Stringsizeof(String), "[PILOTS] veiculo Não existe."Veiculo);
        pMensagem(playeridVermelhoString);
        return 1;
    }
    
    if(
pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
    {
        
VeiculoID index 400;
        if(
VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        
VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447
            return 
pMensagem(playerid, -1"[INFO] Este veiculo Não é permitido neste Modo.");
    }
    
    GetPlayerPos
(playeridXYZ);
    GetPlayerFacingAngle(playeridAngle);
    CriarVeiculo(playeridVeiculoIDXYZ+1AngleCor[0], Cor[1], -1);
    return 1;


A variável "veh" nada mais é que a variável que contém o nome dos veículos, conforme abaixo:
Código PHP:
static veh[][] =
{
    
"Landstalker""Bravura""Buffalo""Linerunner""Perennial""Sentinel""Dumper""Fire Truck""Trashmaster""Stretch""Manana"
    
"Infernus""Voodoo""Pony""Mule""Cheetah""Ambulance""Leviathan""Moonbeam""Esperanto""Taxi""Washington""Bobcat"
    
"Mr. Whoopee""BF Injection""Hunter""Premier""Enforcer""Securicar""Banshee""Predator""Bus""Rhino""Barracks""Hotknife"
    
"Trailer 1""Previon""Coach""Cabbie""Stallion""Rumpo""RC Bandit""Romero""Packer""Monster""Admiral""Squalo"
    
"Seasparrow""Pizzaboy""Tram""Trailer 2""Turismo""Speeder""Reefer""Tropic""Flatbed""Yankee""Caddy""Solair"
    
"Berkley's RC Van""Skimmer""PCJ-600""Faggio""Freeway""RC Baron""RC Raider""Glendale""Oceanic""Sanchez""Sparrow""Patriot"
    
"Quadbike""Coastguard""Dinghy""Hermes""Sabre""Rustler""ZR-350""Walton""Regina""Comet""BMX""Burrito""Camper""Marquis"
    
"Baggage""Dozer""Maverick""News Chopper""Rancher""FBI Rancher""Virgo""Greenwood""Jetmax""Hotring Racer""Sandking"
    
"Blista Compact""Police Maverick""Boxville""Benson""Mesa""RC Goblin""Hotring Racer 2""Hotring Racer 3""Bloodring Banger"
    
"Rancher Lure""Super GT""Elegant""Journey""Bike""Mountain Bike""Beagle""Cropduster""Stuntplane""Tanker""Roadtrain""Nebula"
    
"Majestic""Buccaneer""Shamal""Hydra""FCR-900""NRG-500""HPV1000""Cement Truck""Towtruck""Fortune""Cadrona""FBI Truck"
    
"Willard""Forklift""Tractor""Combine Harvester""Feltzer""Remington""Slamvan""Blade""Freight""Brown Streak""Vortex""Vincent"
    
"Bullet""Clover""Sadler""Fire Truck Ladder""Hustler""Intruder""Primo""Cargobob""Tampa""Sunrise""Merit""Utility Van"
    
"Nevada""Yosemite""Windsor""Monster 2""Monster 3""Uranus""Jester""Sultan""Stratum""Elegy""Raindance""RC Tiger""Flash"
    
"Tahoma""Savanna""Bandito""Freight Train Flatbed""Streak Train Trailer""Kart""Mower""Dune""Sweeper""Broadway""Tornado"
    
"AT-400""DFT-30""Huntley""Stafford""BF-400""Newsvan""Tug""Trailer (Tanker Commando)""Emperor""Wayfarer""Euros""Hotdog"
    
"Club""Box Freight""Trailer 3""Andromada""Dodo""RC Cam""Launch""Police LS""Police SF""Police LV""Police Ranger"
    
"Picador""S.W.A.T.""Alpha""Phoenix""Glendale Damaged""Sadler Damaged""Baggage Trailer (covered)"
    
"Baggage Trailer (Uncovered)""Trailer (Stairs)""Boxville Mission""Farm Trailer""Street Clean Trailer"
}; 



RE: Sistema de Carro - CoelhaO_LokaO - 12/09/2022

tu tem que pegar e comparar a string com nome do carro se as 3 primeira letras forem igual chama ele