Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Unknown
    Пользователь

    Статус
    Оффлайн
    Регистрация
    15.07.2014
    Сообщений
    106
    Репутация:
    0 ±

    сократить код..

    Можно ли как нить по проще сделать ?)

    пробывал вызывать 1 диалог и там делать case но если я выбирал 2 пункт из списка то все равно выполнялся 1й пункт..

    PHP код:
    if(dialogid == 5467)
        {
             new 
    nark PlayerInfo[playerid][pSNark];
            if(
    response)
            {
            switch(
    listitem)
            {
            case 
    0:
            {
            
    format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
            
    Dialog(playerid,5468,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
            }
            case 
    1:
              {
              
    format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
              
    Dialog(playerid,5469,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
        }
        }
        }
        }
         if(
    dialogid == 5468)
         {
         new 
    kolvo1 strval(inputtext);
         if(
    strlen(inputtext))
            {
             if(
    kolvo1 1) return error(playerid"Невозможное действие.");
            if(
    kolvo1 PlayerInfo[playerid][pDrugs]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас нет при себе столько наркотиков.");
              
    GetPlayerName(playeridsendernamesizeof(sendername));
            
    PlayerInfo[playerid][pDrugs] -= kolvo1;
            
    PlayerInfo[playerid][pSNark] += kolvo1;
            
    format(string,sizeof(string), "Вы положили %d грамм наркотиков в сейф.",kolvo1);
            
    SendClientMessage(playerid,COLOR_LIGHTBLUEstring);
            
    OnPlayerSave(playerid);
            return 
    Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
            }
              }
        if(
    dialogid == 5469)
         {
         new 
    kolvo1 strval(inputtext);
         if(
    strlen(inputtext))
            {
              if(
    kolvo1 1) return error(playerid"Невозможное действие.");
            if(
    kolvo1 PlayerInfo[playerid][pSNark]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас в сейфе нет столько наркотиков.");
            
    GetPlayerName(playeridsendernamesizeof(sendername));
            
    format(string,sizeof(string), "Вы забрали %d грамм наркотиков с сейфа.",kolvo1);
            
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
            
    PlayerInfo[playerid][pSNark] -= kolvo1;
            
    PlayerInfo[playerid][pDrugs] += kolvo1;
            
    OnPlayerSave(playerid);
            return 
    Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
            }
            } 
    - - - Добавлено - - -

     Более читабильней
    PHP код:
    if(dialogid == 5467)
        {
            new 
    nark PlayerInfo[playerid][pSNark];
            if(
    response)
            {
                switch(
    listitem)
                {
                case 
    0:
                    {
                        
    format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
                        
    Dialog(playerid,5468,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
                    }
                case 
    1:
                    {
                        
    format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark);
                        
    Dialog(playerid,5469,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
                    }
                }
            }
        }
        if(
    dialogid == 5468)
        {
            new 
    kolvo1 strval(inputtext);
            if(
    strlen(inputtext))
            {
                if(
    kolvo1 1) return error(playerid"Невозможное действие.");
                if(
    kolvo1 PlayerInfo[playerid][pDrugs]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас нет при себе столько наркотиков.");
                
    GetPlayerName(playeridsendernamesizeof(sendername));
                
    PlayerInfo[playerid][pDrugs] -= kolvo1;
                
    PlayerInfo[playerid][pSNark] += kolvo1;
                
    format(string,sizeof(string), "Вы положили %d грамм наркотиков в сейф.",kolvo1);
                
    SendClientMessage(playerid,COLOR_LIGHTBLUEstring);
                
    OnPlayerSave(playerid);
                return 
    Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
            }
        }
        if(
    dialogid == 5469)
        {
            new 
    kolvo1 strval(inputtext);
            if(
    strlen(inputtext))
            {
                if(
    kolvo1 1) return error(playerid"Невозможное действие.");
                if(
    kolvo1 PlayerInfo[playerid][pSNark]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас в сейфе нет столько наркотиков.");
                
    GetPlayerName(playeridsendernamesizeof(sendername));
                
    format(string,sizeof(string), "Вы забрали %d грамм наркотиков с сейфа.",kolvo1);
                
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
                
    PlayerInfo[playerid][pSNark] -= kolvo1;
                
    PlayerInfo[playerid][pDrugs] += kolvo1;
                
    OnPlayerSave(playerid);
                return 
    Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть");
            }
        } 

  2. #2
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Если я правильно понял..
    PHP код:
    if(dialogid == 5467
        { 
             new 
    nark PlayerInfo[playerid][pSNark]; 
            if(!
    response) return 1;
            if(
    listitem == 0SetPVarInt(playerid,"SAFE",1); 
            else 
    SetPVarInt(playerid,"SAFE",2);
            
    format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",nark); 
            
    Dialog(playerid,5468,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад"); 
         } 
    PHP код:
    if(dialogid == 5468
         { 
         if(
    GetPVarInt(playerid,"SAFE") == 1)
         {
               new 
    kolvo1 strval(inputtext); 
               if(
    strlen(inputtext)) 
               { 
                     if(
    kolvo1 1) return error(playerid"Невозможное действие."); 
                      if(
    kolvo1 PlayerInfo[playerid][pDrugs]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас нет при себе столько наркотиков."); 
                      
    GetPlayerName(playeridsendernamesizeof(sendername)); 
                      
    PlayerInfo[playerid][pDrugs] -= kolvo1
                       
    PlayerInfo[playerid][pSNark] += kolvo1
                       
    format(string,sizeof(string), "Вы положили %d грамм наркотиков в сейф.",kolvo1); 
                       
    SendClientMessage(playerid,COLOR_LIGHTBLUEstring); 
                       
    OnPlayerSave(playerid); 
                       
    DeletePVar(playerid,"SAFE");
                       return 
    Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть"); 
            } 
       }
       else if(
    GetPVarInt(playerid,"SAFE") == 2)
         { 
         new 
    kolvo1 strval(inputtext); 
         if(
    strlen(inputtext)) 
            { 
              if(
    kolvo1 1) return error(playerid"Невозможное действие."); 
            if(
    kolvo1 PlayerInfo[playerid][pSNark]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас в сейфе нет столько наркотиков."); 
            
    GetPlayerName(playeridsendernamesizeof(sendername)); 
            
    format(string,sizeof(string), "Вы забрали %d грамм наркотиков с сейфа.",kolvo1); 
            
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string); 
            
    PlayerInfo[playerid][pSNark] -= kolvo1
            
    PlayerInfo[playerid][pDrugs] += kolvo1
            
    OnPlayerSave(playerid); 
            
    DeletePVar(playerid,"SAFE");
            return 
    Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть"); 
            } 
      }  

    Последний раз редактировалось #Vito; 13.09.2014 в 12:39. Причина: Скобку забыл :)
    Skype: vitya.saveliev


  3. #3
    Аватар для Valera_Trefilov
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    35
    Репутация:
    7 ±
    PHP код:
    #define PutDrugsNark(%0,%1) PlayerInfo[%0][pSNark] += %1 && PlayerInfo[%0][pDrugs] -= %1 && GetPlayerName(%0, sendername, sizeof(sendername)) && OnPlayerSave(%0)
            #define GetDrugsNark(%0,%1) PlayerInfo[%0][pSNark] -= %1 && PlayerInfo[%0][pDrugs] += %1 && GetPlayerName(%0, sendername, sizeof(sendername)) && OnPlayerSave(%0)
        #define SendClientMessageEx(%0,%1,%2,%3)  format(string5, sizeof(string5),%2,%3) && SendClientMessage(%0, %1, string5)
        #define DialogNark(playerid) Dialog(playerid,5467,DIALOG_STYLE_LIST,"Сейф",string5,"Выбрать","Закрыть")

        
    if(dialogid == 5467)
            {
                if(!
    response) return true;
                
    format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков",PlayerInfo[playerid][pSNark]);
                switch(
    listitem)
                {
                         case 
    0Dialog(playerid,5468,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
                         case 
    1Dialog(playerid,5469,DIALOG_STYLE_INPUT,"Введите кол-во",string5,"Ок","Назад");
                }
            }
            if(
    dialogid == 5468)
            {
            
            if(!
    response || !strlen(inputtext) || strval(inputtext) < || strval(inputtext) > PlayerInfo[playerid][pDrugs]) return true;
            
    PutDrugsNark(playeridstrval(inputtext);
                
    SendClientMessageEx(playeridCOLOR_LIGHTBLUE"Вы положили %d грамм наркотиков с сейфа."strval(inputtext));
                return 
    DialogNark(playerid);
            }
            if(
    dialogid == 5469)
            {
            if(!
    response || !strlen(inputtext) || strval(inputtext) < || strval(inputtext) > PlayerInfo[playerid][pDrugs]) return true;
                
    SendClientMessageEx(playerid,COLOR_LIGHTBLUE,"Вы забрали %d грамм наркотиков с сейфа.",strval(inputtext));
                
    GetDrugsNark(playeridstrval(inputtext));
                   return 
    DialogNark(playerid);
            } 

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    if(dialogid == 5467)
    {
        if(!
    response || !(<= listitem <= 1)) return 1;
        
    format(string5,sizeof(string5),"{00FFFF}В сейфе - {FF0000}%d {FFFFFF}{00FFFF}Наркотиков"PlayerInfo[playerid][pSNark]);
        
    Dialog(playerid5468DIALOG_STYLE_INPUT"Введите кол-во"string5"Ок""Назад");
        
    SetPVarInt(playerid"Safe_ID"listitem+1);
        return 
    1;
    }
    else if(
    dialogid == 5468)
    {
        new 
    kolvo1 strval(inputtext);
        if(
    strlen(inputtext))
        {
            if(
    kolvo1 1) return error(playerid"Невозможное действие.");
            switch(
    GetPVarInt(playerid"Safe_ID"))
            {
                case 
    1:
                {
                    if(
    kolvo1 PlayerInfo[playerid][pDrugs]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас нет при себе столько наркотиков.");
                    
    PlayerInfo[playerid][pDrugs] -= kolvo1;
                    
    PlayerInfo[playerid][pSNark] += kolvo1;
                    
    format(string,sizeof(string), "Вы положили %d грамм наркотиков в сейф."kolvo1);
                }
                case 
    2:
                {
                    if(
    kolvo1 PlayerInfo[playerid][pSNark]) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"У Вас в сейфе нет столько наркотиков.");
                    
    PlayerInfo[playerid][pSNark] -= kolvo1;
                    
    PlayerInfo[playerid][pDrugs] += kolvo1;
                    
    format(string,sizeof(string), "Вы забрали %d грамм наркотиков с сейфа."kolvo1);
                }
            }
            
    DeletePVar(playerid"Safe_ID");
            
    SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
            
    OnPlayerSave(playerid);
            
    Dialog(playerid5467DIALOG_STYLE_LIST"Сейф"string5"Выбрать""Закрыть");
        }
        return 
    1;

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. Пользователь сказал cпасибо:
    Unknown (13.09.2014)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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