[AYUDA] Problema con los comandos
#1

Hola,

He creado unos comandos para sacar el tazer, linterna y armadura... pero hay un problema, si un user usa el comando /sacartazer, y luego yo intento tambiйn sacarlo, me dice que ya lo tengo sacado... їcуmo puede ser eso si yo no la saquй?
Luego si yo saco la linterna, y despuйs mi compaсero tambiйn intenta sacarla, le dice que ya tiene la linterna...

Los cуdigos los hice de la siguiente manera, puse los new:

Код:
new armaduraenmanot;
new armaduraenespalda;
new linternaenmano;
new tazerenmano;
Luego puse los comandos:

Код:
    if (strcmp("/sacararmadura", cmdtext, true, 10) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
           if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
           {
            new counter = 0;
             for(new i = 453; i <= 459; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 20; i <= 28; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 32; i <= 37; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 460; i <= 461; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 468; i <= 470; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 19; i <= 19; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             if(counter == 0)
             {
               SendClientMessage(playerid, COLOR_GREY, "No estбs cerca de ningъn vehнculo policial.");
               return 1;
             }
             if(armaduraenmano == 1)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "ЎYa tienes una armadura!");
               return 1;
            }
            if(armaduraenespalda == 1)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "ЎYa tienes una armadura, la tienes en la espalda!");
               return 1;
            }
              PutRiotShieldOnArm(playerid);
              format(string, sizeof(string), "* %s agarra la armadura anti-disturbios del maletero.", sendername);
            ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
            armaduraenmano = 1;
              return 1;
         }
         else
         {
            SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
         }
      }
      else
      {
         SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
      }
      return 1;
    }
    
    if (strcmp("/guardararmadura", cmdtext, true, 10) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
           if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
           {
            new counter = 0;
             for(new i = 453; i <= 459; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 20; i <= 28; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 32; i <= 37; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 460; i <= 461; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 468; i <= 470; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             for(new i = 19; i <= 19; i++)
             {
                 new dist = CheckPlayerDistanceToVehicle(7, playerid, i);
                 if(dist)
                 {
                     counter++;
                 }
             }
             if(counter == 0)
             {
               SendClientMessage(playerid, COLOR_GREY, "No estбs cerca de ningъn vehнculo policial.");
               return 1;
             }
             if(armaduraenmano == 0)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ninguna armadura en mano o lo tienes en la espalda.");
               return 1;
            }
              RemoveItems(playerid);
              format(string, sizeof(string), "* %s agarra la armadura anti-disturbios y lo guarda en el maletero.", sendername);
            ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
            armaduraenmano = 0;
              return 1;
         }
         else
         {
            SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
         }
      }
      else
      {
         SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
      }
      return 1;
    }
    
    if (strcmp("/colgararmadura", cmdtext, true, 10) == 0)
    {
       if(IsPlayerConnected(playerid))
        {
           if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
           {
               if(armaduraenmano == 0)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ninguna armadura en mano");
               return 1;
            }
                PutRiotShieldOnBack(playerid);
              format(string, sizeof(string), "* %s se cuelga la armadura anti-disturbios en su espalda.", sendername);
            ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
            armaduraenmano = 0;
            armaduraenespalda = 1;
              return 1;
         }
         else
         {
            SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
         }
      }
      else
      {
         SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
      }
      return 1;
    }
    
    if (strcmp("/descolgararmadura", cmdtext, true, 10) == 0)
    {
       if(IsPlayerConnected(playerid))
        {
           if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
           {
               if(armaduraenespalda == 0)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ninguna armadura en la espalda");
               return 1;
            }
                PutRiotShieldOnArm(playerid);
              format(string, sizeof(string), "* %s se cuelga la armadura anti-disturbios en su espalda.", sendername);
            ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
            armaduraenmano = 1;
            armaduraenespalda = 0;
              return 1;
         }
         else
         {
            SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
         }
      }
      else
      {
         SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
      }
      return 1;
    }
    
    if (strcmp("/sacarlinterna", cmdtext, true, 10) == 0)
    {
       if(IsPlayerConnected(playerid))
        {
           if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
           {
               if(linternaenmano == 1)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "Ya tienes el tazer en la mano...");
               return 1;
            }
            if(tazerenmano == 1)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "Tienes un tazer, por lo que no puedes sacar la linterna.");
               return 1;
            }
                GiveFlashLight(playerid);
              format(string, sizeof(string), "* %s agarra la linterna de su cinturуn.", sendername);
            ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
            linternaenmano = 1;
              return 1;
         }
         else
         {
            SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
         }
      }
      else
      {
         SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
      }
      return 1;
    }
    
    if (strcmp("/guardarlinterna", cmdtext, true, 10) == 0)
    {
       if(IsPlayerConnected(playerid))
        {
           if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
           {
               if(tazerenmano == 1)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "No tienes linterna, tienes tazer.");
               return 1;
            }
            if(linternaenmano == 0)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ningъna linterna para guardar.");
               return 1;
            }
                RemoveItems(playerid);
              format(string, sizeof(string), "* %s guarda la linterna en su cinturуn.", sendername);
            ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
            linternaenmano = 0;
              return 1;
         }
         else
         {
            SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
         }
      }
      else
      {
         SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
      }
      return 1;
    }
    
    if (strcmp("/sacartazer", cmdtext, true, 10) == 0)
    {
       if(IsPlayerConnected(playerid))
        {
           if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
           {
               if(tazerenmano == 1)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "Ya tienes el tazer en la mano...");
               return 1;
            }
            if(linternaenmano == 1)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "Tienes una linterna, por lo que no puedes sacar el tazer.");
               return 1;
            }
                GiveTazer(playerid);
              format(string, sizeof(string), "* %s agarra el tazer de su cinturуn y lo prepara para usarlo.", sendername);
            ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
            tazerenmano = 1;
              return 1;
         }
         else
         {
            SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
         }
      }
      else
      {
         SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
      }
      return 1;
    }
    
    if (strcmp("/guardartazer", cmdtext, true, 10) == 0)
    {
       if(IsPlayerConnected(playerid))
        {
           if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
           {
               if(linternaenmano == 1)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "No tienes tazer, tienes linterna.");
               return 1;
            }
               if(tazerenmano == 0)
            {
               SendClientMessage(playerid, 0xAFAFAFAA, "No tienes ningъn tazer para guardar.");
               return 1;
            }
                RemoveItems(playerid);
              format(string, sizeof(string), "* %s guarda el tazer en su cinturуn.", sendername);
            ProxDetector(30.0, playerid, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
            tazerenmano = 0;
              return 1;
         }
         else
         {
            SendClientMessage(playerid, COLOR_GRAD2, "Usted no es agente de policнa.");
         }
      }
      else
      {
         SendClientMessage(playerid, COLOR_GRAD2, "No estбs conectado.");
      }
      return 1;
    }
Como pueden ver, he usado un sistema MUY SIMPLE, y que son los tazerenmano = 0; o tazerenmano = 1; para que luego, si tiene ya un objeto en la mano, ya no le deja sacar nada porque ya tiene el tazer y despues, que sн le deje, porque no tiene el tazer.

Todo ese sistema lo tengo yo ya hecho y va perfecto. Pero la cosa se complica porque si mi compaсero saca un tazer /sacartazer y yo luego pongo /sacartazer me sale que ya lo tengo sacado, y no lo saquй...

No se si lo entienden, lo he explicado de la mejor forma, porfavor necesito que me ayuden e intenten que esto no se vaya abajo porque no desearнa revivir el tema haciendo doble post.

Gracias por adelantado y a la espera de vuestra ayuda.


Saludos.
Reply


Messages In This Thread
[AYUDA] Problema con los comandos - by Nallzeta - 09.01.2011, 19:43
Respuesta: [AYUDA] Problema con los comandos - by Coldness - 09.01.2011, 19:57
Respuesta: [AYUDA] Problema con los comandos - by [M]xFire - 09.01.2011, 19:58
Respuesta: [AYUDA] Problema con los comandos - by Nallzeta - 09.01.2011, 20:55
Respuesta: [AYUDA] Problema con los comandos - by TiNcH010 - 10.01.2011, 06:54
Respuesta: [AYUDA] Problema con los comandos - by leaNN! - 10.01.2011, 11:38
Respuesta: [AYUDA] Problema con los comandos - by Nallzeta - 10.01.2011, 12:15
Respuesta: [AYUDA] Problema con los comandos - by Coldness - 10.01.2011, 12:51

Forum Jump:


Users browsing this thread: 1 Guest(s)