Показано с 1 по 4 из 4

Тема: Проблема с оружием.

  1. #1
    Пользователь Аватар для Apostoll
    Регистрация
    25.02.2013
    Возраст
    34
    Сообщений
    14
    Репутация: 0

    Звание: пока не определено

    Проблема с оружием.

    Проблема в том что когда Банды или Армия создают оружие , то бишь вводят команду
    /makegun [id игрока] [ид оружия] [кол-во патронов]
    то какое кол-во патронов ты не ввел всегда дает 121 боеприпас.
    Надо что бы давалось то кол-во которые ты ввел.
    Помогите решить проблему. Буду благодарен.

    PHP код:
        if(strcmp(cmd,"/makegun",true)==0){
                if(
    IsPlayerConnected(playerid)){
                if(!
    IsAGang(playerid) && !IsAArm(playerid)){
                
    SendClientMessage(playerid,COLOR_GREY,"Вам не доступна данная функция!");return 1;}
                new 
    x_weapon[256],weapon[MAX_PLAYERS],ammo[MAX_PLAYERS],price[MAX_PLAYERS];
                new 
    giveplayer[  MAX_PLAYER_NAME  ],giveplayerid,sendername[  MAX_PLAYER_NAME  ],string[   256   ];
                
    tmp strtok(cmdtextidx);
                if(!
    strlen(tmp)){
                
    ShowPlayerDialog(playerid,8321,DIALOG_STYLE_MSGBOX,"Доступное оружие","{01FCFF}ID Название\t\t\tМеталл\n\n{FFFFFF}1.Silinced 9mm\t\t\t3\n2.Desert Eagle\t\t\t6\n3.Shotgun\t\t\t8\n4.MP5\t\t\t\t9\n5.AK-47\t\t\t\t10\n6.M4\t\t\t\t10\n7.Sniper Rifle\t\t\t20\n\nДля добавления патронов к созданому оружию\nнеобходимо держать его в руках.","Закрыть","");
                
    SendClientMessage(playeridCOLOR_GRAD1" {ffa200}[INFO]:{ffffff} /makegun {33aa33}[ID] {ffffff}[Номер оружия] [кол-во патрон]");return 1;}
                
    giveplayerid ReturnUser(tmp);
                if (
    IsPlayerConnected(giveplayerid)){
                if(
    giveplayerid != INVALID_PLAYER_ID){
                
    x_weapon strtok(cmdtextidx);
                if(!
    strlen(tmp)){
                
    ShowPlayerDialog(playerid,8321,DIALOG_STYLE_MSGBOX,"Доступное оружие","{01FCFF}ID Название\t\t\tМеталл\n\n{FFFFFF}1.Silinced 9mm\t\t\t3\n2.Desert Eagle\t\t\t6\n3.Shotgun\t\t\t8\n4.MP5\t\t\t\t9\n5.AK-47\t\t\t\t10\n6.M4\t\t\t\t10\n7.Sniper Rifle\t\t\t20\n\nДля добавления патронов к созданому оружию\nнеобходимо держать его в руках.","Закрыть","");
                
    SendClientMessage(playeridCOLOR_GRAD1" {ffa200}[INFO]:{ffffff} /makegun {33aa33}[ID] {ffffff}[Номер оружия] [кол-во патрон]");return 1;}}
                    
    tmp strtok(cmdtextidx);
                    
    ammo[playerid] = strval(tmp);
                    if(!
    strlen(tmp)){
                    
    ShowPlayerDialog(playerid,8321,DIALOG_STYLE_MSGBOX,"Доступное оружие","{01FCFF}ID Название\t\t\tМеталл\n\n{FFFFFF}1.Silinced 9mm\t\t\t3\n2.Desert Eagle\t\t\t6\n3.Shotgun\t\t\t8\n4.MP5\t\t\t\t9\n5.AK-47\t\t\t\t10\n6.M4\t\t\t\t10\n7.Sniper Rifle\t\t\t20\n\nДля добавления патронов к созданому оружию\nнеобходимо держать его в руках.","Закрыть","");
                    
    SendClientMessage(playeridCOLOR_GRAD1" {ffa200}[INFO]:{ffffff} /makegun {33aa33}[ID] {ffffff}[Номер оружия] [кол-во патрон]");return 1;}
                    if(
    strcmp(x_weapon,"1",true) == 0) { if(PlayerInfo[playerid][pMats] > 3)  { weapon[playerid] = 23price[playerid] = 5ammo[playerid] = 121PlayerInfo[playerid][pAmmo2] = 121PlayerInfo[giveplayerid][pGun2] = 23PlayerInfo[giveplayerid][pAmmo2] = ammo[playerid];  } else { SendClientMessage(playerid,COLOR_GREY,"Недостаточно Материалов для этого Оружия!"); return 1; } }
                    else if(
    strcmp(x_weapon,"2",true) == 0) { if(PlayerInfo[playerid][pMats] > 6)  { weapon[playerid] = 24price[playerid] = 7ammo[playerid] = 80PlayerInfo[playerid][pAmmo2] = 80PlayerInfo[giveplayerid][pGun2] = 24PlayerInfo[giveplayerid][pAmmo2] = ammo[playerid];  } else { SendClientMessage(playerid,COLOR_GREY,"   Недостаточно Материалов для этого Оружия!"); return 1; } }
                    else if(
    strcmp(x_weapon,"3",true) == 0) { if(PlayerInfo[playerid][pMats] > 8)  { weapon[playerid] = 29price[playerid] = 9ammo[playerid] = 160PlayerInfo[playerid][pAmmo2] = 160PlayerInfo[giveplayerid][pGun2] = 29PlayerInfo[giveplayerid][pAmmo2] = ammo[playerid];  } else { SendClientMessage(playerid,COLOR_GREY,"Недостаточно Материалов для этого Оружия!"); return 1; } }
                    else if(
    strcmp(x_weapon,"4",true) == 0) { if(PlayerInfo[playerid][pMats] > 9)  { weapon[playerid] = 25price[playerid] = 11ammo[playerid] = 130PlayerInfo[playerid][pAmmo2] = 130PlayerInfo[giveplayerid][pGun2] = 25PlayerInfo[giveplayerid][pAmmo2] = ammo[playerid];  } else { SendClientMessage(playerid,COLOR_GREY,"Недостаточно Материалов для этого Оружия!"); return 1; } }
                    else if(
    strcmp(x_weapon,"5",true) == 0) { if(PlayerInfo[playerid][pMats] > 10)  { weapon[playerid] = 30price[playerid] = 13ammo[playerid] = 150PlayerInfo[playerid][pAmmo2] = 140PlayerInfo[giveplayerid][pGun2] = 30PlayerInfo[giveplayerid][pAmmo2] = ammo[playerid];  } else { SendClientMessage(playerid,COLOR_GREY,"Недостаточно Материалов для этого Оружия!"); return 1; } }
                    else if(
    strcmp(x_weapon,"6",true) == 0) { if(PlayerInfo[playerid][pMats] > 10)  { weapon[playerid] = 31price[playerid] = 14ammo[playerid] = 150PlayerInfo[playerid][pAmmo2] = 140PlayerInfo[giveplayerid][pGun2] = 31PlayerInfo[giveplayerid][pAmmo2] = ammo[playerid];  } else { SendClientMessage(playerid,COLOR_GREY,"Недостаточно Материалов для этого Оружия!"); return 1; } }
                    else if(
    strcmp(x_weapon,"7",true) == 0) { if(PlayerInfo[playerid][pMats] > 20) { weapon[playerid] = 33price[playerid] = 16ammo[playerid] = 120PlayerInfo[playerid][pAmmo2] = 120PlayerInfo[giveplayerid][pGun2] = 33PlayerInfo[giveplayerid][pAmmo2] = ammo[playerid];  } else { SendClientMessage(playerid,COLOR_GREY,"Недостаточно Материалов для этого Оружия!"); return 1; } }
                    else { 
    SendClientMessage(playerid,COLOR_GREY,"Неверный номер оружия!"); return 1; }
                    if (
    ProxDetectorS(5.0playeridgiveplayerid)){
                    
    GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
                    
    GetPlayerName(playeridsendernamesizeof(sendername));
                    
    format(stringsizeof(string), "%s изготовил оружие из %d кг. металла и передал его",sendername,price[playerid]);
                    
    SCM(playeridCOLOR_GRAD1string);
                    
    format(stringsizeof(string), "Вы получили оружие с %d боеприпасами"ammo[playerid]);
                    
    SCM(giveplayeridCOLOR_GRAD1string);
                    
    PlayerPlaySound(giveplayerid10520.00.00.0);
                    
    GivePlayerWeapon(giveplayerid,weapon[playerid],ammo[playerid]);
                    
    PlayerInfo[playerid][pMats] -= price[playerid];
                    
    PlayerInfo[playerid][pPatron] -= ammo[playerid];}}else{format(stringsizeof(string), "%d не активный игрок."giveplayerid);SCM(playeridCOLOR_GRAD1string);}}return 1;} 

  2. #2
    Пользователь Аватар для Apostoll
    Регистрация
    25.02.2013
    Возраст
    34
    Сообщений
    14
    Репутация: 0

    Звание: пока не определено

    Re: Проблема с оружием.

    Ребят , срочно

  3. #3
    Пользователь Аватар для Apostoll
    Регистрация
    25.02.2013
    Возраст
    34
    Сообщений
    14
    Репутация: 0

    Звание: пока не определено

    Re: Проблема с оружием.

    Подниму

  4. #4
    Пользователь Аватар для Rex_Doberman
    Регистрация
    31.07.2012
    Адрес
    Turino
    Сообщений
    85
    Репутация: 10

    Звание: на пути к лучшему

    Re: Проблема с оружием.

    Команду сами писали? Я не уверен, но вроде у вас считывание в x_weapon проходит неверно!

    И по сути, пока проверял Ваш код наткнулся на дублирование данного участка кода:
    PHP код:
    if(!strlen(x_weapon)){ 
                    
    ShowPlayerDialog(playerid,8321,DIALOG_STYLE_MSGBOX,"Доступное оружие","{01FCFF}ID Название\t\t\tМеталл\n\n{FFFFFF}1.Silinced 9mm\t\t\t3\n2.Desert Eagle\t\t\t6\n3.Shotgun\t\t\t8\n4.MP5\t\t\t\t9\n5.AK-47\t\t\t\t10\n6.M4\t\t\t\t10\n7.Sniper Rifle\t\t\t20\n\nДля добавления патронов к созданому оружию\nнеобходимо держать его в руках.","Закрыть",""); 
                    
    SendClientMessage(playeridCOLOR_GRAD1" {ffa200}[INFO]:{ffffff} /makegun {33aa33}[ID] {ffffff}[Номер оружия] [кол-во патрон]");return 1;} 
    Тут у Вас проверка видимо должны быть такая:
    PHP код:
    if(!strlen(tmp)){ 
                    
    ShowPlayerDialog(playerid,8321,DIALOG_STYLE_MSGBOX,"Доступное оружие","{01FCFF}ID Название\t\t\tМеталл\n\n{FFFFFF}1.Silinced 9mm\t\t\t3\n2.Desert Eagle\t\t\t6\n3.Shotgun\t\t\t8\n4.MP5\t\t\t\t9\n5.AK-47\t\t\t\t10\n6.M4\t\t\t\t10\n7.Sniper Rifle\t\t\t20\n\nДля добавления патронов к созданому оружию\nнеобходимо держать его в руках.","Закрыть",""); 
                    
    SendClientMessage(playeridCOLOR_GRAD1" {ffa200}[INFO]:{ffffff} /makegun {33aa33}[ID] {ffffff}[Номер оружия] [кол-во патрон]");return 1;} 
    А по главной проблеме:

    проверьте правильность strtok вызова.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •