Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    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;

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

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

    Steve Pavlina

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

 

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

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

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

Ваши права

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