[Pedido] Conveter
#1

Bom dia.

Alguйm por favor poderia converter os cmds abaixo para zcmd e sscanf2? Me ajudem pf.

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new
        cmd[128], idx, tmp[128];

    cmd = strtok(cmdtext, idx);
   
    GetPlayerPos(playerid, PlayerGetPos[0], PlayerGetPos[1], PlayerGetPos[2]);
    new
        Float:iAngulo
    ;
    GetPlayerFacingAngle(playerid, iAngulo);

    if(strcmp(cmd, "/veh", true) == 0 || strcmp(cmd, "/criarveiculo", true) == 0)
    {
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 1;
        }
        new veiculo = GetVehicleModelID(tmp);
        if(veiculo == -1)
        {
            veiculo = strval(tmp);
            if(veiculo < 400 || veiculo > 611)
            {
                SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
                return 1;
            }
        }
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 1;
        }
        new color1 = strval(tmp);
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 1;
        }
        new color2 = strval(tmp);
        if(veiculo < 400 || veiculo > 611)
        {
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Somente veнculos entre 400 б 611!");
            return 1;
        }
        DestroyVehicle(VeiculoID[playerid]);
        PutPlayerInVehicle(playerid, Modelo[ playerid ] = CreateVehicle(veiculo, PlayerGetPos[0], PlayerGetPos[1], PlayerGetPos[2], iAngulo, color1, color2, -1), 0);
        VeiculoID[playerid] = GetPlayerVehicleID(playerid);
        CriouVeiculo[playerid] = true;
        format(g_string, sizeof(g_string), "| INFO | %s criado com sucesso! (Somente vocк pode dirigi-lo)", Veiculos[GetVehicleModel(Modelo[ playerid ])-400]);
        SendClientMessage(playerid, 0xFFFF33AA, g_string);
        format(g_string, sizeof(g_string), "%s [%d]", PlayerName(playerid), playerid);
        VLabel3D[playerid] = Create3DTextLabel(g_string, 0x00FF00AA, 0.0, 0.0, 0.0, 40.0, 0, 1);
        Attach3DTextLabelToVehicle(VLabel3D[playerid], Modelo[ playerid ], 0.0, -2.5, 0.5);
        format(Veiculopp[VeiculoID[playerid]][Nome], 20, PlayerName(playerid));
        return 1;
    }
    if(strcmp(cmd, "/vehtrazer", true) == 0)
    {
        if(CriouVeiculo[playerid] == true)
        {
            SendClientMessage(playerid, 0xCCFF33AA, "| INFO | Vocк trouxe seu veнculo atй vocк.");
            GetPlayerPos(playerid, PlayerGetPos[0], PlayerGetPos[1], PlayerGetPos[2]);
            SetVehiclePos(VeiculoID[playerid], PlayerGetPos[0], PlayerGetPos[1], PlayerGetPos[2]+1);
            SetVehicleZAngle(VeiculoID[playerid], iAngulo);
            PutPlayerInVehicle(playerid, VeiculoID[playerid], 0);
            return 1;
        }
        else
        {
            SendClientMessage(playerid, 0xFF6633AA, "| ERRO | Vocк nгo criou um veнculo prуprio para vocк!");
            return 1;
        }
    }
    return 0;
}
Reply
#2

Amigo tenho uma pergunta, vocк sabe usar zcmd? vocк sabe usar sscanf? vocк sabe usar uma variбvel? vocк sabe o que й uma variбvel? vocк sabe usar uma string? vocк sabe o que й uma string? vocк sabe o bбsico do pawn?

Se vocк utiliza zcmd e sscanf deve saber como fazer. Se nгo sabe o bбsico do pawn e nгo busca aprender sу estб perdendo tempo.

Olhe este tutorial.

[Quick-List] SA:MP Tutoriais

Video Aulas PAWN
Reply
#3

Sim eu sei, mais esse comando tem muitas chaves e eu simplesmente nao entendi ele e eu preciso muito dele cara.

pawn Код:
CMD:ir(playerid, params[])
{
new ID;
if(sscanf(params, "u", ID)) return [...]
if(!IsPlayerConnected(ID) return [....]
return 1;
}
Fiz isso agora, eu sei usar zcmd e sscanf mas nгo entendi esse comando, pode me ajudar?
Reply
#4

Olhe bem o tutorial, se nгo entendeu vai tentando fazer outros comandos bбsicos, se vocк viu no formato o d ou i й para nъmeros inteiros, o s й para strings, o u й para jogador se vocк colocar um nome ele procura um jogador online com o mesmo nome e pega o id se nгo achar retorna a um id invбlido, e o f й para float ( ex: 30.0 ), entгo tente fazer um comando bбsico de criar um veнculo que vocк vai entender como fazer ou vai atй mesmo fazer um melhor. Nгo vou dar o cуdigo, vou tentar fazer vocк entender.
Reply
#5

Multi isso eu sei cara mas eu nгo entendi o comando ele tem muitas chaves e coisas q nгo entendo, porfavor.
Reply
#6

Analise o cуdigo.
pawn Код:
tmp = strtok(cmdtext, idx); // aqui й separado modelo do veнculo ou nome
        if(!strlen(tmp)) // й verificado se tem alguma coisa armazenado na string tmp ou sу tem o EOS
        // Caso nгo saiba EOS significa: End Of String - fim de string
        {
            // Caso tiver sу o EOS
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 1; // retorna a 1 e para a execuзгo do comando
        }
        new veiculo = GetVehicleModelID(tmp); // Dentro da funзгo GetVehicleModelID deve ocorrer se ele digitou um nome de um veнculo caso digitou um nome retorna a um id, e caso nгo for um nome retorna a -1
       // E esse id й armazenado na variбvel veнculo.
       
       
        if(veiculo == -1)// Caso o valor armazenado na variбvel veiculo for -1
        {
            // Ele compreende que foi digitado um id em vez de um nome
            veiculo = strval(tmp); // Este valor que й numйrico e estб armazenado na string tmp й convertido para um variбvel do tipo inteiro e armazenado na variбvel veiculo.
            if(veiculo < 400 || veiculo > 611) // й verificado se o id do modelo nгo й menor que 400 e maior que 611
            {
                // caso for menor que 400 e maior que 611 й enviado uma mensagem e retornado a 1 e para a execuзгo do comando.
                SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
                return 1;
            }
        }

        tmp = strtok(cmdtext, idx); // aqui й separado a cor 1
        if(!strlen(tmp)) // й verificado sem a string tmp onde foi armazenado o id da cor estб vazнo sу com o EOS
        {
            // Caso tiver vazio й enviado uma mensagem e retornado a 1 parando a execuзгo do comando
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 1;
        }
        new color1 = strval(tmp); // o valor nъmero que estб armazenado na string tmp й convertido e armazenado para uma variбvel chamada color1.
       
       tmp = strtok(cmdtext, idx); // й separado a cor 2 e armazenado na string tmp
        if(!strlen(tmp)) // verifica se a string tmp estб vazia
        {
            // caso tiver vazia envia uma mensagem e retorna a 1, parando a execuзгo do comando
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Uso correto: /CriarVeiculo [Veнculo ID / Nome] [Cor 1] [Cor 2]");
            return 1;
        }
        new color2 = strval(tmp); // o valor nъmerico armazenado na string tmp й convertido e armazenado na variбvel color2
 
      if(veiculo < 400 || veiculo > 611) // й verificado se o valor armazenado na variбvel veнculo й menor que 400 e maior que 611
        {
            // caso for menor que 400 e maior que 611 й enviado uma mensagem e retornado a 1, parando a execuзгo do comando.
            SendClientMessage(playerid, 0xFF3300AA, "| ERRO | Somente veнculos entre 400 б 611!");
            return 1;
        }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)