[AJUDA]Comando Bugando Outro
#1

Iai pessoal estes dias tive aqui pedindo como usar STRTOK e me ensinaram por isso aprendo mas estou fazendo um GM do 0 e fiz 2 comandos ja(isso mesmo 2 comandos )й que as vezes me da preguiзa de ficar codando e nгo testo os comandos as vezes mas esse nгo й o caso:

й o seguinte eu fiz um comando de criar carro que esta funcionando perfeitamnete mas tambem criei um comando de dar vida que nгo esta sequer a funcionar entгo pessoa a juda de vocкs no que esta errado pois para mim esta perfeito

Aqui Fiz o Seguinte comando

/carro [ID] [COR 1] [COR 2]
e quando digito /carro sem colocar nada mais a frente ele da uma mensagem
USO: /carro [ID] [COR 1] [COR 2]
Este esta funcionado perfeito

mas quando digito /vida (ou qualquer outra coisa que comeзe com /)
ele da a mesma mensagem do carro:
USO: /carro [ID] [COR 1] [COR 2]

Por que serб se esta parecendo perfeito (pelo menos para mim)

Alguem ae me ajuda

Olha a public inteira

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new idx;
    new tmp[128];
    new cmd[128];
    if(strcmp(cmd, "/carro", true) == 0)
    {
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /carro [ID] [COR 1] [COR 2]");
            return 1;
        }
        new ID;
        tmp = strtok(cmdtext, idx);
        ID = strval(tmp);
        new Cor1;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /carro [ID] [COR 1] [COR 2]");
            return 1;
        }
        Cor1 = strval(tmp);
        new Cor2;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /carro [ID] [COR 1] [COR 2]");
            return 1;
        }
        Cor2 = strval(tmp);
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        new Carro = CreateVehicle(ID, X, Y, Z, 0.0, Cor1, Cor2,60000);
        AddVehicleComponent(Carro, 1079);
        PutPlayerInVehicle(playerid, Carro,ID);
        new string[22];
        format(string, sizeof(string), "Veiculo ID:%d Criado", ID);
        SendClientMessage(playerid, VERDE,string);
        return 1;
    }
    if(strcmp(cmd, "/vida", true) == 0)
    {
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /vida [ID] [0 - 100]");
            return 1;
        }
        new ID;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /vida [ID] [0 - 100]");
            return 1;
        }
        ID = strval(tmp);
        new Vida;
        tmp = strtok(cmdtext, idx);
        Vida = strval(tmp);
        SetPlayerHealth(ID,Vida);
        new string[44];
        format(string, sizeof(string), "A Vida Do ID:%d Foi Setada Para %d", ID, Vida);
        SendClientMessage(playerid, VERDE,string);
        return 1;
        }
    return 0;
}
O comando /vida nгo funciona nem digitando todos os elementos xertos mas o /carro funciona perfeito
OBRIGADO a quem me ajudar
Reply
#2

Simples:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new idx;
    new tmp[128];
    new cmd[128];
    cmd = strtok(cmdtext, idx);// define a array 'cmd' que й cmdtext vocк nгo colocou!.

    if(strcmp(cmd, "/carro", true) == 0)
    {
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /carro [ID] [COR 1] [COR 2]");
            return 1;
        }
        new ID;
        tmp = strtok(cmdtext, idx);
        ID = strval(tmp);
        new Cor1;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /carro [ID] [COR 1] [COR 2]");
            return 1;
        }
        Cor1 = strval(tmp);
        new Cor2;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /carro [ID] [COR 1] [COR 2]");
            return 1;
        }
        Cor2 = strval(tmp);
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        new Carro = CreateVehicle(ID, X, Y, Z, 0.0, Cor1, Cor2,60000);
        AddVehicleComponent(Carro, 1079);
        PutPlayerInVehicle(playerid, Carro,ID);
        new string[22];
        format(string, sizeof(string), "Veiculo ID:%d Criado", ID);
        SendClientMessage(playerid, VERDE,string);
        return 1;
    }
    if(strcmp(cmd, "/vida", true) == 0)
    {
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /vida [ID] [0 - 100]");
            return 1;
        }
        new ID;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, VERMELHO, "USO: /vida [ID] [0 - 100]");
            return 1;
        }
        ID = strval(tmp);
        new Vida;
        tmp = strtok(cmdtext, idx);
        Vida = strval(tmp);
        SetPlayerHealth(ID,Vida);
        new string[44];
        format(string, sizeof(string), "A Vida Do ID:%d Foi Setada Para %d", ID, Vida);
        SendClientMessage(playerid, VERDE,string);
        return 1;
        }
    return 0;
}
Reply
#3

Aloks, eu tava com um problema parecido. Nгo sei o que aconteceu que todo o cmd que usava numeros tipo /depositar [VALOR] ele aparecia assim: SERVER: UKNOW COMMAND (Sei lб como se escreve), porйm no meu GM eu jб deifini para nos erros aparecerem a mensagem de erro e tal. Tive que refazer tudo em cima de um GM de beckup.
Reply
#4

Quote:
Originally Posted by [NWD]Tweener_
Посмотреть сообщение
Aloks, eu tava com um problema parecido. Nгo sei o que aconteceu que todo o cmd que usava numeros tipo /depositar [VALOR] ele aparecia assim: SERVER: UKNOW COMMAND (Sei lб como se escreve), porйm no meu GM eu jб deifini para nos erros aparecerem a mensagem de erro e tal. Tive que refazer tudo em cima de um GM de beckup.
Isso acontecequando o return 0; la de baixo esta 1 isso ja aconteceu comigo para contornar esta situaзгo apenas colo return 0; la no final

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/HESOYAM", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0x00FF00AA,"Isso Nгo e GTA:SA OFF seu N00B");
        return 1;
    }
    return 0;<-----Esse aqui й o causador do BUG coloque um 0 se tiver um 1 aqui ou se preferir coloque uma mensagem para quando o player digitar uma mensagem que nгo existe aparecer a mensagem se quiser que aparesca uma mensagem coloque no lugar do 0 um SendClientmessage(playerid,cor,"mensagem aqui");
}

@EDIT

E garfield agora bugou os dois cmds ate o do carro nгo da de fazer mais carros o que sera que pode ser para mim os comando estгo perfeitos agora a aprece a mensagem da vida mas digito os componentes e nгo acontece nada o do carro a mesma coisa

@EDIT 2

Eu axo que descobri o problema mas nгo sei como resolver:

tipo ele nгo ta conseguindo "fechar" o comando e pensa que todos os comando й o primeiro que eu iz ou seja o do carro, mas ele esta certo ja estive ate comparando com outros GM e esta aberto e fechado todas as {} nos seus devidos lugares como podem ver ai no primeiro post e quendo coloco quele negocio que o garfield falou ele bagunзa tudo os 2 comando coloca o codigo ele nгo aconetece nada e aparece tudo bugado a mensagem na tela o lugar da Vida no ID mas no char nгo muda nada ai nem faz carro quando coloco quele codigo que o garfield falou e quando o retiro so funciona o primeiro comando que й o /carro me ajudem pessoal o que pode ser ??
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)