07:34
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Неработает команда
_Rage_Дата: Суббота, 12.04.2008, 02:29 | Сообщение # 1
Новенький
Группа: Пользователи
Сообщений: 61
Награды: 1
Репутация: 9
Замечания: 0%
Статус:
Вообщем это команда должна давать оружие выбранному игроку, если выбираешь себя, то можно любое оружие и любое кол-во патрон, но если другого, то дает только в том случае если:
1. Оружие запрещенное(ID указаны там где меняется переменная slot), тогда если конечное количество патрон не будет превышать 499.
2. Если не запрещенное, это типо m4, mp5 то сколько угодно.

А если проще, то чтобы админ не мог сделать игроку больше 500 патрон оружия которого в Godfather нету.

Надеюсь поняли, но она не работает почемуто, может где-то returnы нужно поставить, прошу поправить её, или хотябы объяснить в чем дело, с меня +.

Code


  if(strcmp(cmd, "/givegun", true) == 0)
  {
      if(IsPlayerConnected(playerid))
      {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
     SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /givegun [playerid/PartOfName] [weaponid(eg. 46 = Parachute)] [ammo]");
     return 1;
    }
    new playa;
    new gun;
    new ammo;
    new slot;
    new playerammo;
    new playergun;
    new banammo = 500;
    playa = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    gun = strval(tmp);
    if(!strlen(tmp))
    {
     SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /givegun [playerid/PartOfName] [weaponid] [ammo]");
     SendClientMessage(playerid, COLOR_GRAD4, "3(Club) 4(knife) 5(bat) 6(Shovel) 7(Cue) 8(Katana) 10-13(Dildo) 14(Flowers) 16(Grenades) 18(Molotovs) 22(Pistol) 23(SPistol)");
     SendClientMessage(playerid, COLOR_GRAD3, "24(Eagle) 25(shotgun) 29(MP5) 30(AK47) 31(M4) 33(Rifle) 34(Sniper) 37(Flamethrower) 41(spray) 42(exting) 43(Camera) 46(Parachute)");
     return 1;
    }
    if(gun < 0||gun > 50)
    { SendClientMessage(playerid, COLOR_GRAD1, "   такого оружия нету!"); return 1; }
    tmp = strtok(cmdtext, idx);
    ammo = strval(tmp);
    if(ammo <1||ammo > 9999||ammo == 500)
    { SendClientMessage(playerid, COLOR_GRAD1, " Кол-во патронов может быть от 1 до 9999 шт и не равно 500 !"); return 1; }
          if((gun >= 0) && (gun <= 1))
          {
              slot = 0;
              return 1;
    }
          if((gun >= 2) && (gun <= 9))
          {
              slot = 1;
              return 1;
    }
          if((gun >= 10) && (gun <= 15))
          {
              slot = 10;
              return 1;
    }
          if((gun >= 16) && (gun <= 19))
          {
              slot = 8;
              return 1;
    }
          if(gun == 22)
          {
              slot = 2;
              return 1;
    }
          if((gun >= 26) && (gun <= 27))
          {
              slot = 3;
              return 1;
    }
          if(gun == 28)
          {
              slot = 4;
              return 1;
    }
          if(gun == 32)
          {
              slot = 4;
              return 1;
    }
          if((gun >= 33) && (gun <= 34))
          {
              slot = 6;
              return 1;
    }
          if((gun >= 35) && (gun <= 38))
          {
              slot = 7;
              return 1;
    }
          if(gun == 39)
          {
              slot = 8;
              return 1;
    }
          if(gun == 40)
          {
              slot = 12;
              return 1;
    }
          if((gun >= 42) && (gun <= 43))
          {
              slot = 9;
              return 1;
    }
          if((gun >= 44) && (gun <= 46))
          {
              slot = 11;
              return 1;
    }
    GetPlayerWeaponData(playa, slot, playergun, playerammo);
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
        if(IsPlayerConnected(playa))
        {
            if(playa != INVALID_PLAYER_ID)
            {
             if(playa != playerid)
       {
                             if(gun == 23||gun == 24||gun == 25||gun == 29||gun == 30||gun == 31||gun == 41)
                             {
                    GivePlayerWeapon(playa, gun, ammo);
                             }
                             else if((slot >= 0) && (slot <= 12))
                             //else if(gun >0||gun <23||gun >25||gun <29||gun >31||gun <41||gun >41||gun <51)
                             {
                    if(playerammo + ammo >= banammo)
                    {
                    SendClientMessage(playerid, COLOR_GRAD1, " Игрок не может иметь больше чем 499 патрон запрещенного оружия !");
         }
         else
         {
             GivePlayerWeapon(playa, gun, ammo);
         }
        }
       }
       else
       {
        GivePlayerWeapon(playa, gun, ammo);
       }
      }
      else
      {
          SendClientMessage(playerid, COLOR_GRAD1, " Такого игрока не существует !");
      }
     }
    }
    else
    {
     SendClientMessage(playerid, COLOR_GRAD1, " Вы не можете использовать эту команду!");
    }
   }
   return 1;
  }

Лучше конечно pwn посмотреть.

slayerДата: Суббота, 12.04.2008, 11:48 | Сообщение # 2
Местный
Группа: I'm V.I.P.
Сообщений: 668
Награды: 12
Город: Tallinn
Репутация: 172
Замечания: 0%
Статус:
Короче попробуй вот этот код.
Code
if(strcmp(cmd, "/givegun", true) == 0)
        {
         tmp = strtok(cmdtext, idx);
         if(!strlen(tmp))
         {
          //SendClientMessage(playerid, COLOR_GRAD2, " ИСПОЛЬЗОВАНИЕ: /givegun [playerid/часть ника] [weaponid(eg. 46 = Parachute)] [ammo]");
          //SendClientMessage(playerid, COLOR_RED, " ВНИМАНИЕ: Invalid WeaponID's will crash the server");
          return 1;
         }
         new playa;
         new gun;
         new ammo;
         if(IsStringAName(tmp))
         {
          playa = GetPlayerID(tmp);
         }
         else
         {
          playa = strval(tmp);
         }
         tmp = strtok(cmdtext, idx);
         gun = strval(tmp);
         tmp = strtok(cmdtext, idx);
         ammo = strval(tmp);
         GetPlayerName(playa, giveplayer, sizeof(giveplayer));
         GetPlayerName(playerid, sendername, sizeof(sendername));
         if ((IsPlayerAdmin(playerid)) || PlayerInfo[playerid][pAdmin] >= 1337)
         {
          GivePlayerWeapon(playa, gun, ammo);
          printf("AdmCmd: %s gave %s Weapon %d",sendername,  giveplayer, gun);

         }
         else
         {
          //SendClientMessage(playerid, COLOR_GRAD1, "   у вас недостаточно прав на использование этой команды!");
         }
         return 1;

Вставлять вроде бы в public OnPlayerCommandText

Пишешь /givegun ID игрока IDоружия Патроны.
Вот пример /givegun 3 31 200


Сообщение отредактировал slayer - Суббота, 12.04.2008, 12:04
RAXДата: Суббота, 12.04.2008, 14:03 | Сообщение # 3
Новенький
Группа: Продвинутые
Сообщений: 24
Награды: 1
Репутация: 2
Замечания: 0%
Статус:
ему нето надо кажись


Сообщение отредактировал RAX - Суббота, 12.04.2008, 14:04
_Rage_Дата: Воскресенье, 13.04.2008, 06:50 | Сообщение # 4
Новенький
Группа: Пользователи
Сообщений: 61
Награды: 1
Репутация: 9
Замечания: 0%
Статус:
slayer, команда у меня есть, но я хочу еще модернизировать, как я описал выше в первом посте, я модернизировал, а неработает она..Компилится без ошибок.

Добавлено (12.04.2008, 19:34)
---------------------------------------------
Народ исправьте плз, там немного надо то, код правильный. Скорее всего ретурны нужны, я не умею с ними обращатся sorry

Добавлено (13.04.2008, 06:50)
---------------------------------------------
UP, ну посмотрите а, там немного же )

StelsДата: Воскресенье, 13.04.2008, 07:00 | Сообщение # 5
Группа: I'm V.I.P.
Сообщений: 3167
Награды: 32
Город: Каменск-Уральский
Репутация: 828
Замечания: 0%
Статус:
_Rage_, я твоё сообщение перечитал раз на 5...только понял,что это требования,а не ошибки lol
А зачем по 500 запрещённого?
В запрещённом:гранаты,самонаводка(гранатомёт),миниган.




Полезные ссылки:
GTA:SA спецсборка для SA-MP / GTA:SA-MP ver. 0.3a / GTA:SA-MP ver. 0.2x / Руссификатор геймтекста в GTA:SA(рекомендуется) / Классная игрушка!(Рекомендую!) / Пак русских шрифтов.
MIRДата: Воскресенье, 13.04.2008, 08:46 | Сообщение # 6
Новенький
Группа: Пользователи
Сообщений: 4
Награды: 1
Репутация: 1
Замечания: 0%
Статус:
lol Мда....вдумайтесь чё пишите
_Rage_Дата: Воскресенье, 13.04.2008, 19:34 | Сообщение # 7
Новенький
Группа: Пользователи
Сообщений: 61
Награды: 1
Репутация: 9
Замечания: 0%
Статус:
[Mi8]Stels, хоть откликнулись и то хорошо, никто непоймет наверно что требуется. хотя достаточно было посмотреть pwn файл..и прочитать первый пост. Пойду куда нибуть еще обращусь.. mda
OKStyle™Дата: Среда, 16.04.2008, 15:25 | Сообщение # 8
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2444
Награды: 16
Город: Оренбург
Репутация: 1174
Замечания: 40%
Статус:
Должно работать:
Code
if(strcmp(cmd, "/givegun", true) == 0)  
{  
tmp = strtok(cmdtext, idx);
if(IsPlayerConnected(playerid))  
{  
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, " Синтаксис: /givegun [id] [weaponid (пример: 46 = Паращют)] [ammo]");
}
new playa;  
new gun;  
new ammo;  
new slot;  
new playerammo;  
new playergun;  
new banammo = 500;  
playa = ReturnUser(tmp);  
tmp = strtok(cmdtext, idx);  
gun = strval(tmp);  
if(!strlen(tmp))  
{  
SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /givegun [playerid/PartOfName] [weaponid] [ammo]");  
SendClientMessage(playerid, COLOR_GRAD4, "3(Club) 4(knife) 5(bat) 6(Shovel) 7(Cue) 8(Katana) 10-13(Dildo) 14(Flowers) 16(Grenades) 18(Molotovs) 22(Pistol) 23(SPistol)");  
SendClientMessage(playerid, COLOR_GRAD3, "24(Eagle) 25(shotgun) 29(MP5) 30(AK47) 31(M4) 33(Rifle) 34(Sniper) 37(Flamethrower) 41(spray) 42(exting) 43(Camera) 46(Parachute)");  
return 1;  
}  
     if(gun < 0||gun > 50) return SendClientMessage(playerid, COLOR_GRAD1, " такого оружия нет!");  
ammo = strval(tmp);  
if(ammo <1||ammo > 9999||ammo == 500) return SendClientMessage(playerid, COLOR_GRAD1, " Кол-во патронов может быть от 1 до 9999 шт и не равно 500!");
           if((gun >= 0) && (gun <= 1))  
           {  
               slot = 0;  
               return 1;  
     }  
           if((gun >= 2) && (gun <= 9))  
           {  
               slot = 1;  
               return 1;  
     }  
           if((gun >= 10) && (gun <= 15))  
           {  
               slot = 10;  
               return 1;  
     }  
           if((gun >= 16) && (gun <= 19))  
           {  
               slot = 8;  
               return 1;  
     }  
           if(gun == 22)  
           {  
               slot = 2;  
               return 1;  
     }  
           if((gun >= 26) && (gun <= 27))  
           {  
               slot = 3;  
               return 1;  
     }  
           if(gun == 28)  
           {  
               slot = 4;  
               return 1;  
     }  
           if(gun == 32)  
           {  
               slot = 4;  
               return 1;  
     }  
           if((gun >= 33) && (gun <= 34))  
           {  
               slot = 6;  
               return 1;  
     }  
           if((gun >= 35) && (gun <= 38))  
           {  
               slot = 7;  
               return 1;  
     }  
           if(gun == 39)  
           {  
               slot = 8;  
               return 1;  
     }  
           if(gun == 40)  
           {  
               slot = 12;  
               return 1;  
     }  
           if((gun >= 42) && (gun <= 43))  
           {  
               slot = 9;  
               return 1;  
     }  
           if((gun >= 44) && (gun <= 46))  
           {  
               slot = 11;  
               return 1;  
     }  
GetPlayerWeaponData(playa, slot, playergun, playerammo);  
if (PlayerInfo[playerid][pAdmin] >= 4)  
{  
if(IsPlayerConnected(playa))  
{  
if(playa != INVALID_PLAYER_ID)  
{  
if(playa != playerid)  
{  
if(gun == 23||gun == 24||gun == 25||gun == 29||gun == 30||gun == 31||gun == 41) return GivePlayerWeapon(playa, gun, ammo);  
else if((slot >= 0) && (slot <= 12))  
//else if(gun >0||gun <23||gun >25||gun <29||gun >31||gun <41||gun >41||gun <51)  
{  
if(playerammo + ammo >= banammo) return SendClientMessage(playerid, COLOR_GRAD1, " Игрок не может иметь больше чем 499 патрон запрещенного оружия!");
else return GivePlayerWeapon(playa, gun, ammo);
}  
}  
else return SendClientMessage(playerid, COLOR_GRAD1, " Вы не можете дать оружие себе!");  
}
else return SendClientMessage(playerid, COLOR_GRAD1, " Такого игрока не существует!");  
}  
else return SendClientMessage(playerid, COLOR_GRAD1, " Вы не можете использовать эту команду!");  
}  
return 1;  
}



Да потому что когда человек делает на заказ он не старается. © kRiSyo
Кланяимся нофаму королю анимаций =))))))) © Manusya
В MTA - для вас все багоюзеры. Не юзают там +с только EFO и ACF. © SeWeR
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua