• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
[Урок]Создание склада(тайника)
Arh_AngelДата: Четверг, 30.06.2011, 17:53:44 | Сообщение # 1

Группа: Пользователи
Сообщений: 45
Этот склад я больше предпочитаю чем общаги,потому что такой тайник будет доступен для всех игроков в одном месте,итак начну урок:
1.Нам нужно будет добавить несколько "define"(конечно же в самое начало мода,примерно где ваши дефайны туда добавляем эти):

Code
#define DIALOG_TSAVE 1000    
#define DIALOG_TINFO 1001    
#define DIALOG_TINPUT 1002    
#define DIALOG_TOUTPUT 1003    
#define DIALOG_TINMATS 1004    
#define DIALOG_TINDRUGS 1005    
#define DIALOG_TOUTMATS 1006    
#define DIALOG_TOUTDRUGS 1007  

Тут наверно понятно что цифры обозначают ид диалогов,продолжим:

2.Далее добавляем Пикап+3DТекст в OnGameModeInit:

Code
AddStaticPickup(1239,23,121.9291,-294.3183,1.5781,0); // 1239 - Модель пикапа, 23 - тип пикапа, 121.9291,-294.3183,1.5781 - координаты пикапа, 0 - виртуальны мир.     
Create3DTextLabel("Используй /sklad",COLOR_WHITE, 121.9291,-294.3183,1.5781, 20,0,1);


3.Далее создаём саму команду для вызова диалога склада(public OnPlayerCommandText):

Code
if(strcmp(cmd, "/sklad", true) == 0)  //Сама команда, название можете указать своё
{    
       if(IsPlayerConnected(playerid))     
       {    
           if(IsPlayerInRangeOfPoint(playerid, 5.0, 121.9291,-294.3183,1.5781)) //Проверка на Координаты игрока (Можете указать те же, которые были указаны в координатах пикапа    
           {    
               ShowPlayerDialog(playerid,DIALOG_TSAVE,DIALOG_STYLE_LIST,"Выберите функцию из списка (Хранилище):","* Информация\n* Положить вещи в хранилище\n* Достать вещи из хранилища","ACCEPT","CANCEL"); //Сам диалог. DIALOG_TSAVE - ID диалога, который мы указали в #define, DIALOG_STYLE_LIST - Стиль (Тип) диалога. Далее идёт само меню    
           }     
       }     
       return 1;     
}


4.Итак, создаём сами диалоги в OnDialogResponse:

Code
if(dialogid == DIALOG_TSAVE) //ID диалога из #define    
{    
       if(response)    
       {    
           if(listitem == 0)    
       {    
           new dptMats = PlayerInfo[playerid][ptMats]; //Объявляем новые переменны для ptMats и ptDrugs (Их можно и не добавлять)    
               new dptDrugs = PlayerInfo[playerid][ptDrugs];    
           format(string,sizeof(string),"Количество Материалов на Складе: %d\n\nКоличество Наркотиков на Складе: %d", dptMats,dptDrugs);    
           ShowPlayerDialog(playerid,DIALOG_TINFO,DIALOG_STYLE_MSGBOX,"Информация о Складе",string,"ACCEPT","");    
       }    
       if(listitem == 1)    
       {    
           ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }    
           if(listitem == 2)    
       {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_INPUT,"Взять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }    
       }    
}

Code
if(dialogid == DIALOG_TINPUT)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext)) //Если ничего не введено, то...    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
               }    
               else if(!strcmp(inputtext, "Материалы", true)) //Если введено Материалы, то...    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINMATS,DIALOG_STYLE_INPUT,"Положить Материалы на Склад","Введите кол-во материалов, которое вы хотите положить на склад","ACCEPT","BACK");    
               }    
               else if(!strcmp(inputtext, "Наркотики", true))//Если введено Наркотики, то...    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINDRUGS,DIALOG_STYLE_INPUT,"Положить Наркотики на Склад","Введите кол-во наркотиков, которое вы хотите положить на склад","ACCEPT","BACK");    
               }    
               else //Если введена какая-то чушь, то....    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TSAVE,DIALOG_STYLE_LIST,"Выберите функцию из списка (Хранилище):","* Информация\n* Положить вещи в хранилище\n* Достать вещи из хранилища","ACCEPT","CANCEL");    
       }    
       if(dialogid == DIALOG_TOUTPUT)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_INPUT,"Взять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
               }    
               else if(!strcmp(inputtext, "Материалы", true))    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTMATS,DIALOG_STYLE_INPUT,"Взять Материалы со Склада","Введите кол-во материалов, которое вы хотите взять со склада","ACCEPT","BACK");    
               }    
               else if(!strcmp(inputtext, "Наркотики", true))    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTDRUGS,DIALOG_STYLE_INPUT,"Взять Наркотики со Склада","Введите кол-во наркотиков, которое вы хотите взять на склада","ACCEPT","BACK");    
               }    
               else    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_ INPUT,"В зять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TSAVE,DIALOG_STYLE_LIST,"Выберите функцию из списка (Хранилище):","* Информация\n* Положить вещи в хранилище\n* Достать вещи из хранилища","ACCEPT","CANCEL");    
       }

Code
if(dialogid == DIALOG_TINMATS)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TINMATS,DIALOG_STYLE_INPUT,"Положить Материалы на Склад","Введите кол-во материалов, которое вы хотите положить на склад","ACCEPT","BACK");    
               }    
               new input = strval(inputtext); //Объявляем переменной input введённый текст    
               if(input > PlayerInfo[playerid][pMats] || input < 1) //Если введённый текст больше реального кол-во материалов у персонажа, то будет писать об ошибке    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINMATS,DIALOG_STYLE_INPUT,"Положить Материалы на Склад","У вас нету столько Материалов. Повторите попытку","ACCEPT","");    
               }    
               else    
               {    
                   PlayerInfo[playerid][pMats] -= input; //Отнимаем наркотики    
                   PlayerInfo[playerid][ptMats] += input; //Добавляем их на склад    
                   format(string,sizeof(string),"* Вы успешно положили %d материалов на склад. Всего материалов: %d", input,PlayerInfo[playerid][ptMats]);    
                   SendClientMessage(playerid,COLOR_WHITE, string); //Сообщение об успешной опреции    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }

Code
if(dialogid == DIALOG_TINDRUGS)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TINDRUGS,DIALOG_STYLE_INPUT,"Положить Наркотики на Склад","Введите кол-во наркотиков, которое вы хотите положить на склад","ACCEPT","BACK");    
               }    
               new input = strval(inputtext);    
               if(input > PlayerInfo[playerid][pDrugs] || input < 1)     
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINDRUGS,DIALOG_STYLE_INPUT,"Положить Наркотики на Склад","У вас нету столько Наркотиков. Повторите попытку","ACCEPT","");    
               }    
               else    
               {    
                   PlayerInfo[playerid][pDrugs] -= input;    
                   PlayerInfo[playerid][ptDrugs] += input;    
                   format(string,sizeof(string),"* Вы успешно положили %d наркотиков на склад. Всего наркотиков: %d", input,PlayerInfo[playerid][ptDrugs]);    
                   SendClientMessage(playerid,COLOR_WHITE, string);    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }

Code
if(dialogid == DIALOG_TOUTMATS)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TOUTMATS,DIALOG_STYLE_INPUT,"Взять Материалы со Склада","Введите кол-во материалов, которое вы хотите взять со склада","ACCEPT","BACK");    
               }    
               new input = strval(inputtext);    
               if(input > PlayerInfo[playerid][ptMats] || input < 1) //Если введёные цифры больше того, сколько на складе, выдаст ошибку    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTMATS,DIALOG_STYLE_INPUT,"Взять Материалы со Склада","У вас нету столько Материалов на Складе. Повторите Попытку","ACCEPT","");    
               }    
               else    
               {    
                   PlayerInfo[playerid][pMats] += input; //Прибавляем материалов    
                   PlayerInfo[playerid][ptMats] -= input; //Отнимает их со склада    
                   format(string,sizeof(string),"* Вы успешно взяли %d материалов со склада. Материалов Осталось: %d", input,PlayerInfo[playerid][ptMats]);    
                   SendClientMessage(playerid,COLOR_WHITE, string); //Сообщение об успешной операции    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_INPUT,"Взять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }

Code
if(dialogid == DIALOG_TOUTDRUGS)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TOUTDRUGS,DIALOG_STYLE_INPUT,"Взять Наркотики со Склада","Введите кол-во наркотиков, которое вы хотите взять на склада","ACCEPT","BACK");    
               }    
               new input = strval(inputtext);    
               if(input > PlayerInfo[playerid][ptDrugs] || input < 1)    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTDRUGS,DIALOG_STYLE_INPUT,"Взять Наркотики со Склада","У вас нету столько Наркотиков на Складе. Повторите Попытку","ACCEPT","");    
               }    
               else    
               {    
                   PlayerInfo[playerid][pDrugs] += input;    
                   PlayerInfo[playerid][ptDrugs] -= input;    
                   format(string,sizeof(string),"* Вы успешно взяли %d наркотиков со склада. Наркотиков Осталось: %d", input,PlayerInfo[playerid][ptDrugs]);    
                   SendClientMessage(playerid,COLOR_WHITE, string);    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_INPUT,"Взять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }


* Примечение(незабываем добавить):
В PlayerInfo:

Code
ptMats,    
ptDrugs,


OnPlayerRegister и в OnPlayerUpdate:

Code
format(var, 32, "tMaterials=%d\n",PlayerInfo[playerid][ptMats]);fwrite(hFile, var);    
format(var, 32, "tDrugs=%d\n",PlayerInfo[playerid][ptDrugs]);fwrite(hFile, var);


В OnPlayerLogin:

Code
if( strcmp( key , "tMaterials" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptMats] = strval( val ); }    
if( strcmp( key , "tDrugs" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptDrugs] = strval( val ); }


Также можно сделать вызов диалога на клавишу "ALT"(кому нужно тому думаю понадобится)OnPlayerKeyStateChange:

Code
{   
      if (newkeys == 1024) //ID Клавиши   
      {   
          OnPlayerCommandText(playerid,"/sklad"); //Какая команда будет вызываться при нажатии на клавишу   
      }   
          return 1;   
}


Урок взял с:forum.pawno.ru
Автор этого склада:Ross


Сообщение отредактировал Arh_Angel - Четверг, 30.06.2011, 17:58:01
 
СообщениеЭтот склад я больше предпочитаю чем общаги,потому что такой тайник будет доступен для всех игроков в одном месте,итак начну урок:
1.Нам нужно будет добавить несколько "define"(конечно же в самое начало мода,примерно где ваши дефайны туда добавляем эти):

Code
#define DIALOG_TSAVE 1000    
#define DIALOG_TINFO 1001    
#define DIALOG_TINPUT 1002    
#define DIALOG_TOUTPUT 1003    
#define DIALOG_TINMATS 1004    
#define DIALOG_TINDRUGS 1005    
#define DIALOG_TOUTMATS 1006    
#define DIALOG_TOUTDRUGS 1007  

Тут наверно понятно что цифры обозначают ид диалогов,продолжим:

2.Далее добавляем Пикап+3DТекст в OnGameModeInit:

Code
AddStaticPickup(1239,23,121.9291,-294.3183,1.5781,0); // 1239 - Модель пикапа, 23 - тип пикапа, 121.9291,-294.3183,1.5781 - координаты пикапа, 0 - виртуальны мир.     
Create3DTextLabel("Используй /sklad",COLOR_WHITE, 121.9291,-294.3183,1.5781, 20,0,1);


3.Далее создаём саму команду для вызова диалога склада(public OnPlayerCommandText):

Code
if(strcmp(cmd, "/sklad", true) == 0)  //Сама команда, название можете указать своё
{    
       if(IsPlayerConnected(playerid))     
       {    
           if(IsPlayerInRangeOfPoint(playerid, 5.0, 121.9291,-294.3183,1.5781)) //Проверка на Координаты игрока (Можете указать те же, которые были указаны в координатах пикапа    
           {    
               ShowPlayerDialog(playerid,DIALOG_TSAVE,DIALOG_STYLE_LIST,"Выберите функцию из списка (Хранилище):","* Информация\n* Положить вещи в хранилище\n* Достать вещи из хранилища","ACCEPT","CANCEL"); //Сам диалог. DIALOG_TSAVE - ID диалога, который мы указали в #define, DIALOG_STYLE_LIST - Стиль (Тип) диалога. Далее идёт само меню    
           }     
       }     
       return 1;     
}


4.Итак, создаём сами диалоги в OnDialogResponse:

Code
if(dialogid == DIALOG_TSAVE) //ID диалога из #define    
{    
       if(response)    
       {    
           if(listitem == 0)    
       {    
           new dptMats = PlayerInfo[playerid][ptMats]; //Объявляем новые переменны для ptMats и ptDrugs (Их можно и не добавлять)    
               new dptDrugs = PlayerInfo[playerid][ptDrugs];    
           format(string,sizeof(string),"Количество Материалов на Складе: %d\n\nКоличество Наркотиков на Складе: %d", dptMats,dptDrugs);    
           ShowPlayerDialog(playerid,DIALOG_TINFO,DIALOG_STYLE_MSGBOX,"Информация о Складе",string,"ACCEPT","");    
       }    
       if(listitem == 1)    
       {    
           ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }    
           if(listitem == 2)    
       {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_INPUT,"Взять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }    
       }    
}

Code
if(dialogid == DIALOG_TINPUT)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext)) //Если ничего не введено, то...    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
               }    
               else if(!strcmp(inputtext, "Материалы", true)) //Если введено Материалы, то...    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINMATS,DIALOG_STYLE_INPUT,"Положить Материалы на Склад","Введите кол-во материалов, которое вы хотите положить на склад","ACCEPT","BACK");    
               }    
               else if(!strcmp(inputtext, "Наркотики", true))//Если введено Наркотики, то...    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINDRUGS,DIALOG_STYLE_INPUT,"Положить Наркотики на Склад","Введите кол-во наркотиков, которое вы хотите положить на склад","ACCEPT","BACK");    
               }    
               else //Если введена какая-то чушь, то....    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TSAVE,DIALOG_STYLE_LIST,"Выберите функцию из списка (Хранилище):","* Информация\n* Положить вещи в хранилище\n* Достать вещи из хранилища","ACCEPT","CANCEL");    
       }    
       if(dialogid == DIALOG_TOUTPUT)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_INPUT,"Взять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
               }    
               else if(!strcmp(inputtext, "Материалы", true))    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTMATS,DIALOG_STYLE_INPUT,"Взять Материалы со Склада","Введите кол-во материалов, которое вы хотите взять со склада","ACCEPT","BACK");    
               }    
               else if(!strcmp(inputtext, "Наркотики", true))    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTDRUGS,DIALOG_STYLE_INPUT,"Взять Наркотики со Склада","Введите кол-во наркотиков, которое вы хотите взять на склада","ACCEPT","BACK");    
               }    
               else    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_ INPUT,"В зять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TSAVE,DIALOG_STYLE_LIST,"Выберите функцию из списка (Хранилище):","* Информация\n* Положить вещи в хранилище\n* Достать вещи из хранилища","ACCEPT","CANCEL");    
       }

Code
if(dialogid == DIALOG_TINMATS)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TINMATS,DIALOG_STYLE_INPUT,"Положить Материалы на Склад","Введите кол-во материалов, которое вы хотите положить на склад","ACCEPT","BACK");    
               }    
               new input = strval(inputtext); //Объявляем переменной input введённый текст    
               if(input > PlayerInfo[playerid][pMats] || input < 1) //Если введённый текст больше реального кол-во материалов у персонажа, то будет писать об ошибке    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINMATS,DIALOG_STYLE_INPUT,"Положить Материалы на Склад","У вас нету столько Материалов. Повторите попытку","ACCEPT","");    
               }    
               else    
               {    
                   PlayerInfo[playerid][pMats] -= input; //Отнимаем наркотики    
                   PlayerInfo[playerid][ptMats] += input; //Добавляем их на склад    
                   format(string,sizeof(string),"* Вы успешно положили %d материалов на склад. Всего материалов: %d", input,PlayerInfo[playerid][ptMats]);    
                   SendClientMessage(playerid,COLOR_WHITE, string); //Сообщение об успешной опреции    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }

Code
if(dialogid == DIALOG_TINDRUGS)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TINDRUGS,DIALOG_STYLE_INPUT,"Положить Наркотики на Склад","Введите кол-во наркотиков, которое вы хотите положить на склад","ACCEPT","BACK");    
               }    
               new input = strval(inputtext);    
               if(input > PlayerInfo[playerid][pDrugs] || input < 1)     
               {    
                   ShowPlayerDialog(playerid,DIALOG_TINDRUGS,DIALOG_STYLE_INPUT,"Положить Наркотики на Склад","У вас нету столько Наркотиков. Повторите попытку","ACCEPT","");    
               }    
               else    
               {    
                   PlayerInfo[playerid][pDrugs] -= input;    
                   PlayerInfo[playerid][ptDrugs] += input;    
                   format(string,sizeof(string),"* Вы успешно положили %d наркотиков на склад. Всего наркотиков: %d", input,PlayerInfo[playerid][ptDrugs]);    
                   SendClientMessage(playerid,COLOR_WHITE, string);    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TINPUT,DIALOG_STYLE_INPUT,"Положить вещи в Склад","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }

Code
if(dialogid == DIALOG_TOUTMATS)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TOUTMATS,DIALOG_STYLE_INPUT,"Взять Материалы со Склада","Введите кол-во материалов, которое вы хотите взять со склада","ACCEPT","BACK");    
               }    
               new input = strval(inputtext);    
               if(input > PlayerInfo[playerid][ptMats] || input < 1) //Если введёные цифры больше того, сколько на складе, выдаст ошибку    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTMATS,DIALOG_STYLE_INPUT,"Взять Материалы со Склада","У вас нету столько Материалов на Складе. Повторите Попытку","ACCEPT","");    
               }    
               else    
               {    
                   PlayerInfo[playerid][pMats] += input; //Прибавляем материалов    
                   PlayerInfo[playerid][ptMats] -= input; //Отнимает их со склада    
                   format(string,sizeof(string),"* Вы успешно взяли %d материалов со склада. Материалов Осталось: %d", input,PlayerInfo[playerid][ptMats]);    
                   SendClientMessage(playerid,COLOR_WHITE, string); //Сообщение об успешной операции    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_INPUT,"Взять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }

Code
if(dialogid == DIALOG_TOUTDRUGS)    
       {    
           if(response)    
           {    
               if(!strlen(inputtext))    
               {    
                   S  howPlayerDialog(playerid,DIALOG_TOUTDRUGS,DIALOG_STYLE_INPUT,"Взять Наркотики со Склада","Введите кол-во наркотиков, которое вы хотите взять на склада","ACCEPT","BACK");    
               }    
               new input = strval(inputtext);    
               if(input > PlayerInfo[playerid][ptDrugs] || input < 1)    
               {    
                   ShowPlayerDialog(playerid,DIALOG_TOUTDRUGS,DIALOG_STYLE_INPUT,"Взять Наркотики со Склада","У вас нету столько Наркотиков на Складе. Повторите Попытку","ACCEPT","");    
               }    
               else    
               {    
                   PlayerInfo[playerid][pDrugs] += input;    
                   PlayerInfo[playerid][ptDrugs] -= input;    
                   format(string,sizeof(string),"* Вы успешно взяли %d наркотиков со склада. Наркотиков Осталось: %d", input,PlayerInfo[playerid][ptDrugs]);    
                   SendClientMessage(playerid,COLOR_WHITE, string);    
               }    
           }    
           else ShowPlayerDialog(playerid,DIALOG_TOUTPUT,DIALOG_STYLE_INPUT,"Взять вещи из Склада","Введите наименование вещи (Наркотики/Материалы)","DONE","BACK");    
       }


* Примечение(незабываем добавить):
В PlayerInfo:

Code
ptMats,    
ptDrugs,


OnPlayerRegister и в OnPlayerUpdate:

Code
format(var, 32, "tMaterials=%d\n",PlayerInfo[playerid][ptMats]);fwrite(hFile, var);    
format(var, 32, "tDrugs=%d\n",PlayerInfo[playerid][ptDrugs]);fwrite(hFile, var);


В OnPlayerLogin:

Code
if( strcmp( key , "tMaterials" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptMats] = strval( val ); }    
if( strcmp( key , "tDrugs" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptDrugs] = strval( val ); }


Также можно сделать вызов диалога на клавишу "ALT"(кому нужно тому думаю понадобится)OnPlayerKeyStateChange:

Code
{   
      if (newkeys == 1024) //ID Клавиши   
      {   
          OnPlayerCommandText(playerid,"/sklad"); //Какая команда будет вызываться при нажатии на клавишу   
      }   
          return 1;   
}


Урок взял с:forum.pawno.ru
Автор этого склада:Ross

Автор - Arh_Angel
Дата добавления - 30.06.2011 в 17:53:44
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
03:09:57
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: