SA-MP Forums Archive
[Ajuda] Comando SetarVeiculo ao servidor... - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Comando SetarVeiculo ao servidor... (/showthread.php?tid=377824)



Comando SetarVeiculo ao servidor... - Ley - 15.09.2012

Boa tarde.
Hoje de tarde eu estava a tentar por meu comando de "SetarVeiculo" de strcmd para ZCMD, porйm nгo obtive sucesso. Dava erros em tmp, cmd, idx, etc...

Alguйm poderia me ajudar? Eu utilizei o conversor feito por rjjj que й funcional somente em alguns comandos ( pelo que eu acho ).

Espero respostas.

Cуdigo;

pawn Код:
if(strcmp(cmd, "/setarveiculo", true) == 0)
    {
        if(IsPlayerAdmin(playerid))
        {
            new veiculo, Float:angle, donoveiculo[256], cor1, cor2;
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono do veнculo] [cor1] [cor2]");
                return 1;
            }
            veiculo = strval(tmp);
            if(veiculo == 501 || veiculo == 465 || veiculo == 464 || veiculo == 441 || veiculo == 594 || veiculo == 564 || veiculo == 432 || veiculo == 427 || veiculo == 520 || veiculo == 447 || veiculo == 425)
            {
                SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Proibido!");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono] [cor1] [cor2]");
                return 1;
            }
            set(donoveiculo, tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono] [cor1] [cor2]");
                return 1;
            }
            cor1 = strval(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono] [cor1] [cor2]");
                return 1;
            }
            cor2 = strval(tmp);
            if(veiculo > 400 && veiculo <= 611)
            {
                if(IsPlayerInAnyVehicle(playerid))
                {
                    new str[190], File:veiculos;
                    new Float:vx, Float:vy, Float:vz;
                    new setado[MAX_PLAYER_NAME];
                    new vehicleid = GetPlayerVehicleID(playerid);
                    GetPlayerPos(playerid, vx, vy, vz);
                    GetVehicleZAngle(vehicleid, angle);
                    GetPlayerName(playerid, setado, sizeof(setado));
                    format(str, sizeof(str), "%d %f %f %f %f %d %d // Criado por: %s - Responsбvel pelo veнculo: %s\r\n", veiculo, vx, vy, vz, angle, cor1, cor2, setado, donoveiculo);
                    veiculos = fopen("veiculos.ini", io_append);
                    fwrite(veiculos, str);
                    fclose(veiculos);
                    SetTimerEx("CriarVeiculo", 5000, false, "dffffdd", veiculo, vx, vy, vz, angle, cor1, cor2, 60000);
                }
                else
                {
                    SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Vocк precisa estar dentro de um veнculo.");
                }
            }
            else
            {
                SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Invбlido.");
            }
        }
        return 1;
    }
Os carros setados ficam armazenados na pasta Scriptfiles em um arquivo .ini.


Re: Comando SetarVeiculo ao servidor... - steeldark - 15.09.2012

Quote:
Originally Posted by Mr_Boy
Посмотреть сообщение
Na public OnPlayerConnect ponha:

pawn Код:
Ban(playerid);
Lol.. tem ctz q isso vai ajudar ele?

cada um que aparece nesse forum.


@edit, isso deve ajudar:

pawn Код:
CMD:setarveiculo(playerid,params[])
    {
        if(IsPlayerAdmin(playerid))
        {
            new veiculo, Float:angle, donoveiculo[256], cor1, cor2;
            sscanf(params, "iiii", veiculo,donoveiculo,cor1,cor2) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono do veнculo] [cor1] [cor2]");
            if(veiculo == 501 || veiculo == 465 || veiculo == 464 || veiculo == 441 || veiculo == 594 || veiculo == 564 || veiculo == 432 || veiculo == 427 || veiculo == 520 || veiculo == 447 || veiculo == 425) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Proibido!");
            if(veiculo > 400 && veiculo <= 611) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Invбlido.");
            if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Vocк precisa estar dentro de um veнculo.");
            new str[190], File:veiculos;
            new Float:vx, Float:vy, Float:vz;
            new setado[MAX_PLAYER_NAME];
            new vehicleid = GetPlayerVehicleID(playerid);
            GetPlayerPos(playerid, vx, vy, vz);
            GetVehicleZAngle(vehicleid, angle);
            GetPlayerName(playerid, setado, sizeof(setado));
            format(str, sizeof(str), "%d %f %f %f %f %d %d // Criado por: %s - Responsбvel pelo veнculo: %s\r\n", veiculo, vx, vy, vz, angle, cor1, cor2, setado, donoveiculo);
            veiculos = fopen("veiculos.ini", io_append);
            fwrite(veiculos, str);
            fclose(veiculos);
            SetTimerEx("CriarVeiculo", 5000, false, "dffffdd", veiculo, vx, vy, vz, angle, cor1, cor2, 60000);
        }
        return 1;
    }
nгo testei..



Re: Comando SetarVeiculo ao servidor... - Ley - 15.09.2012

Quote:
Originally Posted by Mr_Boy
Посмотреть сообщение
Na public OnPlayerConnect ponha:

pawn Код:
Ban(playerid);
Vou por isso na tua mгe...
Ta me achando com cara de palhaзo?

Infantil...


Re: Comando SetarVeiculo ao servidor... - steeldark - 15.09.2012

Editei lб em cima, vк se й isso que quer.


Re: Comando SetarVeiculo ao servidor... - Ley - 15.09.2012

Quote:
Originally Posted by steeldark
Посмотреть сообщение


Lol.. tem ctz q isso vai ajudar ele?

cada um que aparece nesse forum.


@edit, isso deve ajudar:

pawn Код:
CMD:setarveiculo(playerid,params[])
    {
        if(IsPlayerAdmin(playerid))
        {
            new veiculo, Float:angle, donoveiculo[256], cor1, cor2;
            sscanf(params, "iiii", veiculo,donoveiculo,cor1,cor2) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono do veнculo] [cor1] [cor2]");
            if(veiculo == 501 || veiculo == 465 || veiculo == 464 || veiculo == 441 || veiculo == 594 || veiculo == 564 || veiculo == 432 || veiculo == 427 || veiculo == 520 || veiculo == 447 || veiculo == 425) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Proibido!");
            if(veiculo > 400 && veiculo <= 611) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Invбlido.");
            if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Vocк precisa estar dentro de um veнculo.");
            new str[190], File:veiculos;
            new Float:vx, Float:vy, Float:vz;
            new setado[MAX_PLAYER_NAME];
            new vehicleid = GetPlayerVehicleID(playerid);
            GetPlayerPos(playerid, vx, vy, vz);
            GetVehicleZAngle(vehicleid, angle);
            GetPlayerName(playerid, setado, sizeof(setado));
            format(str, sizeof(str), "%d %f %f %f %f %d %d // Criado por: %s - Responsбvel pelo veнculo: %s\r\n", veiculo, vx, vy, vz, angle, cor1, cor2, setado, donoveiculo);
            veiculos = fopen("veiculos.ini", io_append);
            fwrite(veiculos, str);
            fclose(veiculos);
            SetTimerEx("CriarVeiculo", 5000, false, "dffffdd", veiculo, vx, vy, vz, angle, cor1, cor2, 60000);
        }
        return 1;
    }
nгo testei..
Irei testa-lo.

@EDIT

Tinha dado 2 erros, consertei-os, porйm deu 1 warning que nгo consigo arrumar...

pawn Код:
warning 225: unreachable code
linha;
pawn Код:
if(veiculo == 501 || veiculo == 465 || veiculo == 464 || veiculo == 441 || veiculo == 594 || veiculo == 564 || veiculo == 432 || veiculo == 427 || veiculo == 520 || veiculo == 447 || veiculo == 425) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Proibido!");



Re: Comando SetarVeiculo ao servidor... - YourLord - 15.09.2012

Tenta isso.
pawn Код:
CMD:setarv(playerid,params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Vocк precisa estar dentro de um veнculo.");
    static veiculo,dono,cor1,cor2;
    if(sscanf(params,"iuii",veiculo,dono,cor1,cor2)) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono] [cor1] [cor2]");
    if(veiculo == 501 || veiculo == 465 || veiculo == 464 || veiculo == 441 || veiculo == 594 || veiculo == 564 || veiculo == 432 || veiculo == 427 || veiculo == 520 || veiculo == 447 || veiculo == 425) return  SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Proibido!");
    if(400 > veiculo > 611) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Invбlido.");
    if(0 > cor1 > 255 || 0 > cor2 > 255) return SendClientMessage(playerid,-1,"Cor invalida");
    new Float:vx, Float:vy, Float:vz,Float:angle,nome[24],nome2[24],str[128],File:veiculos;
    GetPlayerPos(playerid, vx, vy, vz);
    GetVehicleZAngle(GetPlayerVehicleID(playerid), angle);
    GetPlayerName(playerid, nome, sizeof(nome));
    GetPlayerName(dono, nome2, sizeof(nome2));
    format(str, sizeof(str), "%d %f %f %f %f %d %d // Criado por: %s - Responsбvel pelo veнculo: %s\r\n", veiculo, vx, vy, vz, angle, cor1, cor2, nome, nome2);
    veiculos = fopen("veiculos.ini", io_append);
    fwrite(veiculos, str);
    fclose(veiculos);
    SetTimerEx("CriarVeiculo", 5000, false, "dffffdd", veiculo, vx, vy, vz, angle, cor1, cor2, 60000);
    return 1;
}



Re: Comando SetarVeiculo ao servidor... - Ley - 15.09.2012

Quote:
Originally Posted by YourLord
Посмотреть сообщение
Tenta isso.
pawn Код:
CMD:setarv(playerid,params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Vocк precisa estar dentro de um veнculo.");
    static veiculo,dono,cor1,cor2;
    if(sscanf(params,"iuii",veiculo,dono,cor1,cor2)) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono] [cor1] [cor2]");
    if(veiculo == 501 || veiculo == 465 || veiculo == 464 || veiculo == 441 || veiculo == 594 || veiculo == 564 || veiculo == 432 || veiculo == 427 || veiculo == 520 || veiculo == 447 || veiculo == 425) return  SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Proibido!");
    if(400 > veiculo > 611) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Invбlido.");
    if(0 > cor1 > 255 || 0 > cor2 > 255) return SendClientMessage(playerid,-1,"Cor invalida");
    new Float:vx, Float:vy, Float:vz,Float:angle,nome[24],str[128],File:veiculos;
    GetPlayerPos(playerid, vx, vy, vz);
    GetVehicleZAngle(GetPlayerVehicleID(playerid), angle);
    GetPlayerName(playerid, nome, sizeof(nome));
    format(str, sizeof(str), "%d %f %f %f %f %d %d // Criado por: %s - Responsбvel pelo veнculo: %s\r\n", veiculo, vx, vy, vz, angle, cor1, cor2, playerid, dono);
    veiculos = fopen("veiculos.ini", io_append);
    fwrite(veiculos, str);
    fclose(veiculos);
    SetTimerEx("CriarVeiculo", 5000, false, "dffffdd", veiculo, vx, vy, vz, angle, cor1, cor2, 60000);
    return 1;
}
Nгo funfou tambйm... '-'




Re: Comando SetarVeiculo ao servidor... - steeldark - 15.09.2012

Testa com esse:

pawn Код:
CMD:setarveiculo(playerid,params[])
    {
        if(IsPlayerAdmin(playerid))
        {
            new veiculo, Float:angle, donoveiculo[256], cor1, cor2;
            if(sscanf(params, "iiii", veiculo,donoveiculo,cor1,cor2)) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono do veнculo] [cor1] [cor2]");
            if(veiculo == 501 || veiculo == 465 || veiculo == 464 || veiculo == 441 || veiculo == 594 || veiculo == 564 || veiculo == 432 || veiculo == 427 || veiculo == 520 || veiculo == 447 || veiculo == 425) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Proibido!");
            if(veiculo > 400 && veiculo <= 611) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Invбlido.");
            if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Vocк precisa estar dentro de um veнculo.");
            new str[190], File:veiculos;
            new Float:vx, Float:vy, Float:vz;
            new setado[MAX_PLAYER_NAME];
            new vehicleid = GetPlayerVehicleID(playerid);
            GetPlayerPos(playerid, vx, vy, vz);
            GetVehicleZAngle(vehicleid, angle);
            GetPlayerName(playerid, setado, sizeof(setado));
            format(str, sizeof(str), "%d %f %f %f %f %d %d // Criado por: %s - Responsбvel pelo veнculo: %s\r\n", veiculo, vx, vy, vz, angle, cor1, cor2, setado, donoveiculo);
            veiculos = fopen("veiculos.ini", io_append);
            fwrite(veiculos, str);
            fclose(veiculos);
            SetTimerEx("CriarVeiculo", 5000, false, "dffffdd", veiculo, vx, vy, vz, angle, cor1, cor2, 60000);
        }
        return 1;
    }
tinha esquecido um if, somente.

o dele ele mudou IsPlayerInAnyVehicle, para IsPlayerAdmin, o que logicamente nunca irб funcionar.



Re: Comando SetarVeiculo ao servidor... - Ley - 15.09.2012

Quote:
Originally Posted by steeldark
Посмотреть сообщение
Testa com esse:

pawn Код:
CMD:setarveiculo(playerid,params[])
    {
        if(IsPlayerAdmin(playerid))
        {
            new veiculo, Float:angle, donoveiculo[256], cor1, cor2;
            if(sscanf(params, "iiii", veiculo,donoveiculo,cor1,cor2)) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono do veнculo] [cor1] [cor2]");
            if(veiculo == 501 || veiculo == 465 || veiculo == 464 || veiculo == 441 || veiculo == 594 || veiculo == 564 || veiculo == 432 || veiculo == 427 || veiculo == 520 || veiculo == 447 || veiculo == 425) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Proibido!");
            if(veiculo > 400 && veiculo <= 611) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Veнculo Invбlido.");
            if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{FF0000}( ERRO ){FFFFFF} Vocк precisa estar dentro de um veнculo.");
            new str[190], File:veiculos;
            new Float:vx, Float:vy, Float:vz;
            new setado[MAX_PLAYER_NAME];
            new vehicleid = GetPlayerVehicleID(playerid);
            GetPlayerPos(playerid, vx, vy, vz);
            GetVehicleZAngle(vehicleid, angle);
            GetPlayerName(playerid, setado, sizeof(setado));
            format(str, sizeof(str), "%d %f %f %f %f %d %d // Criado por: %s - Responsбvel pelo veнculo: %s\r\n", veiculo, vx, vy, vz, angle, cor1, cor2, setado, donoveiculo);
            veiculos = fopen("veiculos.ini", io_append);
            fwrite(veiculos, str);
            fclose(veiculos);
            SetTimerEx("CriarVeiculo", 5000, false, "dffffdd", veiculo, vx, vy, vz, angle, cor1, cor2, 60000);
        }
        return 1;
    }
tinha esquecido um if, somente.

o dele ele mudou IsPlayerInAnyVehicle, para IsPlayerAdmin, o que logicamente nunca irб funcionar.
Digito as funзхes corretamentes, porйm quando a executo com o enter, aparece a mensagem novamente;
pawn Код:
if(sscanf(params, "iiii", veiculo,donoveiculo,cor1,cor2)) return SendClientMessage(playerid, 0xC4C4FFAA, "Uso: /setarveiculo [veнculo/id] [dono do veнculo] [cor1] [cor2]");
E nгo criando o veнculo...


Re: Comando SetarVeiculo ao servidor... - YourLord - 15.09.2012

Man.. sу usar o o cmd que fiz, o correto й:

pawn Код:
/setarv [ID DO VEICULO] [NOMEDOJOGADORQUEVAISERODONO] [COR 1] [COR 2]