[Ajuda] Ajuda em um erro
#1

Bem pessoal, jб estou programando a uma semana e estou bem avanзado, quase terminado um Gang War. Mas estou com dъvida em um comando que fiz para pegar os equipamentos da gangue, aqui estб:

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[256], idx;
    cmd = strtok(cmdtext, idx);

    if(strcmp(cmd,  "/equiparballas", true) == 0)
    {
        if(gTeam[playerid] == TEAM_BALLAS)
        {
            if(IsPlayerInRangeOfPoint(playerid, 2.0, 2079.4646,-1155.3173,23.8752))
            {
                GivePlayerWeapon(playerid, 35, 100);
                SendClientMessage(playerid, -1, "Vocк pegou seus equipamentos e pagou R$1000,00");
                GivePlayerMoney(playerid, -1000);
                }
            }
        return 1;
    }

    if(strcmp(cmd,  "/equipargroove", true) == 0)
   {
     if(gTeam[playerid] == TEAM_GROVE)
     {
        if(IsPlayerInRangeOfPoint(playerid, 2.0, 2512.3162,-1670.8052,13.4790))
        {
            GivePlayerWeapon(playerid, 35, 100);
            SendClientMessage(playerid, -1, "Vocк pegou seus equipamentos e pagou R$1000,00");
            GivePlayerMoney(playerid, -1000);
        }
     }
     return 1;
   }

    if(strcmp(cmd,  "/equiparvagos", true) == 0)
   {
     if(gTeam[playerid] == TEAM_VAGOS)
     {
         if(IsPlayerInRangeOfPoint(playerid, 2.0, 2349.8677,-1162.2516,27.3652))
         {
            GivePlayerWeapon(playerid, 35, 100);
            SendClientMessage(playerid, -1, "Vocк pegou seus equipamentos e pagou R$1000,00");
            GivePlayerMoney(playerid, -1000);
         }
     }
     return 1;
   }

    if(strcmp(cmd, "/equiparpolicia", true) == 0)
   {
     if(gTeam[playerid] == TEAM_POLICIA)
     {
         if(IsPlayerInRangeOfPoint(playerid, 2.0, 1552.7638,-1675.6663,16.1953))
         {
            GivePlayerWeapon(playerid, 35, 100);
            SendClientMessage(playerid, -1, "Vocк pegou seus equipamentos e pagou R$1000,00");
            GivePlayerMoney(playerid, -1000);
         }
     }
     return 1;
   }

    if(strcmp(cmd,  "/equiparazteca", true) == 0)
   {
     if(gTeam[playerid] == TEAM_AZTECAS)
     {
         if(IsPlayerInRangeOfPoint(playerid, 2.0, 1882.9657,-2015.8688,13.5469))
         {
            GivePlayerWeapon(playerid, 35, 100);
            SendClientMessage(playerid, -1, "Vocк pegou seus equipamentos e pagou R$1000,00");
            GivePlayerMoney(playerid, -1000);
         }
     }
     return 1;
   }
Quando eu compilo, aparecem esses 3 erros:

Код:
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(430) : error 017: undefined symbol "strtok"
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(430) : error 033: array must be indexed (variable "cmd")
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(501) : error 030: compound statement not closed at the end of file (started at line 429)
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Errors.
Ao tirar esta linha:

pawn Код:
cmd = strtok(cmdtext, idx); // Linha 430
Fica sу este erro:

Код:
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(500) : error 030: compound statement not closed at the end of file (started at line 429)
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
Fiquei tentando resolver isto por um tempinho, mas nгo consegui dai decidi pedir ajuda aqui... Entгo, alguйm?
Reply
#2

Vocк sу precisa de strtok ou sscanf se for usar um comando com parвmetros.

Pelo que vi, no seu caso nгo й necessбrio.
Reply
#3

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
Vocк sу precisa de strtok ou sscanf se for usar um comando com parвmetros.

Pelo que vi, no seu caso nгo й necessбrio.
Amigo, tentei transferir para ZCMD, nгo sei se ficou certo e outra, aproveitando o tуpico, para equipar tem que apertar a letra F, o meu OnPlayerKeyStateChange estava deste jeito:

pawn Код:
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
    if ((newkeys==KEY_SECONDARY_ATTACK)) /* Letra F */
    {
        OnPlayerCommandText(playerid,"/equiparpolicia");
        OnPlayerCommandText(playerid,"/equipargrove");
        OnPlayerCommandText(playerid,"/equiparaztecas");
        OnPlayerCommandText(playerid,"/equiparvagos");
    OnPlayerCommandText(playerid,"/equiparballas");
    }
    return 1;
}
Como faзo para coloca-lo em ZCMD?

Por exemplo com este aqui:

pawn Код:
CMD:equiparballas(playerid)
{
        if(gTeam[playerid] == TEAM_BALLAS)
        {
            if(IsPlayerInRangeOfPoint(playerid, 2.0, 2079.4646,-1155.3173,23.8752))
            {
                GivePlayerWeapon(playerid, 35, 100);
                SendClientMessage(playerid, -1, "Vocк pegou seus equipamentos e pagou R$1000,00");
                GivePlayerMoney(playerid, -1000);
                }
            }
        return 1;
}
Reply
#4

Alguйm...?
Reply
#5

Vocк pode usar 1 comando sу para todos.

pawn Код:
CMD:equipar(playerid)
{
    if(gTeam[playerid] == TEAM_BALLAS)
    {
        if(IsPlayerInRangeOfPoint(playerid, 2.0, 2079.4646,-1155.3173,23.8752))
        {
            GivePlayerWeapon(playerid, 35, 100);
        } else return SendClientMessage(playerid, -1, "Vocк nгo estб no local correto.");
    }
    else if(gTeam[playerid] == TEAM_OUTRO)
    {
        if(IsPlayerInRangeOfPoint(playerid, 2.0, OutroX, OutroY, OutroX))
        {
            GivePlayerWeapon(playerid, 35, 100);
        }else return SendClientMessage(playerid, -1, "Vocк nгo estб no local correto.");
    }
    //etc
    SendClientMessage(playerid, -1, "Vocк pegou seus equipamentos e pagou R$1000,00");
    GivePlayerMoney(playerid, -1000);
    return 1;
}
Reply
#6

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
Vocк pode usar 1 comando sу para todos.

pawn Код:
CMD:equipar(playerid)
{
    if(gTeam[playerid] == TEAM_BALLAS)
    {
        if(IsPlayerInRangeOfPoint(playerid, 2.0, 2079.4646,-1155.3173,23.8752))
        {
            GivePlayerWeapon(playerid, 35, 100);
        } else return SendClientMessage(playerid, -1, "Vocк nгo estб no local correto.");
    }
    else if(gTeam[playerid] == TEAM_OUTRO)
    {
        if(IsPlayerInRangeOfPoint(playerid, 2.0, OutroX, OutroY, OutroX))
        {
            GivePlayerWeapon(playerid, 35, 100);
        }else return SendClientMessage(playerid, -1, "Vocк nгo estб no local correto.");
    }
    //etc
    SendClientMessage(playerid, -1, "Vocк pegou seus equipamentos e pagou R$1000,00");
    GivePlayerMoney(playerid, -1000);
    return 1;
}
Obrigado ViniBorn, mas enquanto a minha outra dъvida?

pawn Код:
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
    if ((newkeys==KEY_SECONDARY_ATTACK)) /* Letra F */
    {
        OnPlayerCommandText(playerid,"/equiparpolicia");
        OnPlayerCommandText(playerid,"/equipargrove");
        OnPlayerCommandText(playerid,"/equiparaztecas");
        OnPlayerCommandText(playerid,"/equiparvagos");
    OnPlayerCommandText(playerid,"/equiparballas");
    }
    return 1;
}
Como faзo para trasnferir isso para ZCMD? Por que ao compilar da estes erros:

Код:
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(373) : error 004: function "zcmd_OnPlayerCommandText" is not implemented
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(374) : error 004: function "zcmd_OnPlayerCommandText" is not implemented
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(375) : error 004: function "zcmd_OnPlayerCommandText" is not implemented
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(376) : error 004: function "zcmd_OnPlayerCommandText" is not implemented
C:\Users\usuario\Desktop\Servidor\gamemodes\gangwar.pwn(377) : error 004: function "zcmd_OnPlayerCommandText" is not implemented
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


5 Errors.
Reply
#7

Usando ZCMD vocк faz assim :

pawn Код:
cmd_equipar(playerid);
Reply
#8

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
Usando ZCMD vocк faz assim :

pawn Код:
cmd_equipar(playerid);
Vocк й muito perfeito xD
Sйrio, obrigado mesmo, dei uma estudada nos cуdigos e estou entendendo agora, й isso que importa, valeu!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)