Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Создание склада для матов/накро [ для новичков ]

Статус
В этой теме нельзя размещать новые ответы.

maksimosina

Изучающий
Пользователь
Регистрация
24 Ноя 2011
Сообщения
165
Лучшие ответы
0
Репутация
13
Здравствуйте пользователи Pawno-Info
Я Максим.
Сегодня я бы хотел сделать свой первый урок!!!
Под названием " Создание склада для матов/накро [ для новичков ] "
Я знаю что на этом форуме есть тема про создание складов но, мой урок более проще и подходит для более начинающих людей в павно!!!
И так что то я далеко ушел от темы приступим!!!

Открываем мод и ищем строчку

PHP:
enum pInfo
После того как вы её нашли добавляем туда (желательно в конец спмска переменных)
Две новые строчки

PHP:
pSkladnark,
pSkladmats,
Это должно выглядеть примерно так:

PHP:
enum pInfo
{
	pKey[128],
	pLevel,
	pAdmin,
    pHelper,
	pDonateRank,
	gPupgrade,
	pConnectTime,
	pReg,
	pSex,
	pAge,
	pOrigin,
	pCK,
	pMuted,
	pExp,
	pCash,
	pCrimes,
	pKills,
	pDeaths,
	pArrested,
	pWantedDeaths,
	pPhoneBook,
	pLottoNr,
	pFishes,
	pBiggestFish,
	pJob,
	pPayCheck,
	pHeadValue,
	pJailed,
	pJailTime,
	pMats,
	pDrugs,
	pLeader,
	pMember,
	pRank,
	pChar,
	pContractTime,
	pDetSkill,
	pSexSkill,
	pBoxSkill,
	pLawSkill,
	pMechSkill,
	pJackSkill,
	pCarSkill,
	pNewsSkill,
	pDrugsSkill,
	pCookSkill,
	pFishSkill,
	pTrailSkill,
	Float:pHealth,
	Float:pSHealth,
	Float:Armour,
	pInt,
	pLocal,
	pTeam,
	pModel,
	pKosti,
	pPhousekey,
	pPbiskey,
	Float:pPos_x,
	Float:pPos_y,
	Float:pPos_z,
	pCarLicA,
	pCarLicB,
	pCarLicC,
	pFlyLic,
	pBoatLic,
	pFishLic,
	pGunLic,
	pCarTime,
	pPayDay,
	pPayDayHad,
	pOtmichka,
	pWins,
	pLoses,
	pAlcoholPerk,
	pDrugPerk,
	pMiserPerk,
	pPainPerk,
	pTraderPerk,
	pTut,
	pWarns,
	pAdjustable,
	pFuel,
	pMarried,
	pMarriedTo[128],
	pChulok,
	pLom,
	pVig,
	pMuteTime,
	pNameTime,
	pMed,
	pBank,
	pSkladnark,
	pSkladmats,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
Идем далее

Ищем два паблика

PHP:
OnPlayerRegister
и
PHP:
OnPlayerUpdate
И вставляем в концы этих пабликов вот такие строки

PHP:
format(var, 32, "Skladnark=%d\n",PlayerInfo[playerid][pSkladnark]);fwrite(hFile, var);
format(var, 32, "Skladmats=%d\n",PlayerInfo[playerid][pSkladmats]);fwrite(hFile, var);
Далее ищем паблик

PHP:
OnPlayerLogin
И вставляем в него вот такие строки
PHP:
 if( strcmp( key , "Skladnark" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSkladnark] = strval( val ); }
 if( strcmp( key , "Skladmats" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSkladmats] = strval( val ); }
Теперь приступаем к самому интересному

Ищем паблик
PHP:
OnGameModeInit
И вставляему в него

PHP:
CreatePickup(1239,23,-557.6370,-505.3829,24.6036);//склад
Create3DTextLabel("{00bfff}=========================\n\n{FFFFFF}Склад\n{00bfff}/Введите /sklad{ffffff} что бы открыть.\n{00bfff}=========================",0xFFA500FF,-557.6370, -505.3829, 24.6036,40.0,0,0);
Теперь создаем команду
Ищем в моде

PHP:
OnPlayerCommandText
И вставляем туда команду!!!

PHP:
	if(strcmp(cmd, "/sklad", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			if(PlayerToPoint(2.0,playerid,-557.6370,-505.3829,24.6036))// Ставим проверку на местораспложение
            {
                new listitems[] = "Материалы\nНаркота";
        		ShowPlayerDialog(playerid, 5000, DIALOG_STYLE_LIST, "Склад", listitems, "Далее", "Выход");
			}
			else
			{
   				SendClientMessage(playerid, COLOR_GRAD1, "Вы не рядом со складом!");
				return 1;
			}
		}
		return 1;
	}
Внимание убедитесь что ид диалогов "свободен"

Теперь ставим диалоги

Идем в паблик
PHP:
OnDialogResponse
И вставляем вот это

PHP:
//------**********************Система склада********************------------
    else if(dialogid == 5000)
    {
        if(response)
        {
            if(listitem == 0)
            {
                new listitems[] = "Количество\nСнять\nПоложить";
        		ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_LIST, "Материалы", listitems, "Далее", "Выход");
            }
            else if(listitem == 1)
            {
                new listitems[] = "Количество\nСнять\nПоложить";
        		ShowPlayerDialog(playerid, 5002, DIALOG_STYLE_LIST, "Наркота", listitems, "Далее", "Выход");
            }
        }
        else
        {
            return 1;
        }
    }
    else if(dialogid == 5001)//МАТЕРИАЛы
    {
        if(response)
        {
            if(listitem == 0)
            {
                format(string, sizeof(string), "У тебя на складе %d материалов", PlayerInfo[playerid][pSkladmats]);
    			SendClientMessage(playerid, COLOR_GREY, string);
            }
            else if(listitem == 1)
            {
   				format(string,sizeof(string), "Введите количество материалов которые хочеш снять ");
                ShowPlayerDialog(playerid,5003,DIALOG_STYLE_INPUT,"Снятие",string,"Ok","Cancel");
            }
            else if(listitem == 2)
            {
   				format(string,sizeof(string), "Введите количество материалов которые хочеш положить ");
                ShowPlayerDialog(playerid,5005,DIALOG_STYLE_INPUT,"Положить",string,"Ok","Cancel");
            }
        }
        else
        {
            return 1;
        }
    }
    else if(dialogid == 5002)//нарко
    {
        if(response)
        {
            if(listitem == 0)
            {
                format(string, sizeof(string), "У тебя на складе %d наркоты", PlayerInfo[playerid][pSkladnark]);
    			SendClientMessage(playerid, COLOR_GREY, string);
            }
            else if(listitem == 1)
            {
   				format(string,sizeof(string), "Введите количество наркоты которые хочеш снять ");
                ShowPlayerDialog(playerid,5004,DIALOG_STYLE_INPUT,"Снятие",string,"Ok","Cancel");
            }
            else if(listitem == 2)
            {
   				format(string,sizeof(string), "Введите количество наркоты которые хочеш положить ");
                ShowPlayerDialog(playerid,5006,DIALOG_STYLE_INPUT,"Положить",string,"Ok","Cancel");
            }
        }
        else
        {
            return 1;
        }
    }
    else if(dialogid == 5003)
    {
        if(response)
        {
            if(!strlen(inputtext))// если оставляет пустую строку, выводим ему опять окно
           	{
   				format(string,sizeof(string), "Введите количество материалов которые хочеш снять ");
                ShowPlayerDialog(playerid,5003,DIALOG_STYLE_INPUT,"Снятие",string,"Ok","Cancel");
            }
            new moneys;
			moneys = strval(inputtext);
			if(moneys < 0 || moneys > 100000)
		 	{
			 	SendClientMessage(playerid, COLOR_GREY, "Нельзя снять больше 100000 материалов!");
   				format(string,sizeof(string), "Введите количество материалов которые хочеш снять ");
                ShowPlayerDialog(playerid,5003,DIALOG_STYLE_INPUT,"Снятие",string,"Ok","Cancel");
			  	return 1;
		  	}
            if(PlayerInfo[playerid][pSkladmats] < moneys)
			{
  				SendClientMessage(playerid, COLOR_GRAD1, "[Benon]:У тебя нету столько материалов!");
       			return 1;
   			}
			PlayerInfo[playerid][pSkladmats] -= moneys;
			PlayerInfo[playerid][pMats] += moneys;
			format(string, sizeof(string), "Вы сняли со склада %d материалов.", moneys);
			SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		}
		return 1;
    }
    else if(dialogid == 5004)
    {
        if(response)
        {
            if(!strlen(inputtext))// если оставляет пустую строку, выводим ему опять окно
           	{
   				format(string,sizeof(string), "Введите количество наркоты которые хочеш снять ");
                ShowPlayerDialog(playerid,5004,DIALOG_STYLE_INPUT,"Снятие",string,"Ok","Cancel");
            }
            new moneys;
			moneys = strval(inputtext);
			if(moneys < 0 || moneys > 100000)
		 	{
			 	SendClientMessage(playerid, COLOR_GREY, "Нельзя снять больше 100000 грам!");
   				format(string,sizeof(string), "Введите количество наркоты которые хочеш снять ");
                ShowPlayerDialog(playerid,5004,DIALOG_STYLE_INPUT,"Снятие",string,"Ok","Cancel");
			  	return 1;
		  	}
            if(PlayerInfo[playerid][pSkladnark] < moneys)
			{
  				SendClientMessage(playerid, COLOR_GRAD1, "[Benon]:У тебя нету столько наркоты!");
       			return 1;
   			}
			PlayerInfo[playerid][pSkladnark] -= moneys;
			PlayerInfo[playerid][pDrugs] += moneys;
			format(string, sizeof(string), "Вы сняли со склада %d наркоты.", moneys);
			SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		}
		return 1;
    }
    else if(dialogid == 5005)
    {
        if(response)
        {
            if(!strlen(inputtext))// если оставляет пустую строку, выводим ему опять окно
           	{
   				format(string,sizeof(string), "Введите количество материалов которые хочеш положить ");
                ShowPlayerDialog(playerid,5005,DIALOG_STYLE_INPUT,"Положить",string,"Ok","Cancel");
            }
            new moneys;
			moneys = strval(inputtext);
			if(moneys < 0 || moneys > 100000)
		 	{
			 	SendClientMessage(playerid, COLOR_GREY, "Нельзя положить больше 100000 материалов!");
   				format(string,sizeof(string), "Введите количество материалов которые хочеш положить ");
                ShowPlayerDialog(playerid,5005,DIALOG_STYLE_INPUT,"Положить",string,"Ok","Cancel");
			  	return 1;
		  	}
            if(PlayerInfo[playerid][pMats] < moneys)
			{
  				SendClientMessage(playerid, COLOR_GRAD1, "[Benon]:У тебя нету столько материалов!");
       			return 1;
   			}
			PlayerInfo[playerid][pSkladmats] += moneys;
			PlayerInfo[playerid][pMats] -= moneys;
			format(string, sizeof(string), "Вы вы положили на склад %d материалов.", moneys);
			SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		}
		return 1;
    }
    else if(dialogid == 5006)
    {
        if(response)
        {
            if(!strlen(inputtext))// если оставляет пустую строку, выводим ему опять окно
           	{
   				format(string,sizeof(string), "Введите количество наркоты которые хочеш положить ");
                ShowPlayerDialog(playerid,5006,DIALOG_STYLE_INPUT,"Положить",string,"Ok","Cancel");
            }
            new moneys;
			moneys = strval(inputtext);
			if(moneys < 0 || moneys > 100000)
		 	{
			 	SendClientMessage(playerid, COLOR_GREY, "Нельзя положить больше 100000 наркоты!");
   				format(string,sizeof(string), "Введите количество наркоты которые хочеш положить ");
                ShowPlayerDialog(playerid,5006,DIALOG_STYLE_INPUT,"Положить",string,"Ok","Cancel");
			  	return 1;
		  	}
            if(PlayerInfo[playerid][pDrugs] < moneys)
			{
  				SendClientMessage(playerid, COLOR_GRAD1, "[Benon]:У тебя нету столько наркоты!");
       			return 1;
   			}
			PlayerInfo[playerid][pSkladnark] += moneys;
			PlayerInfo[playerid][pDrugs] -= moneys;
			format(string, sizeof(string), "Вы вы положили на склад %d материалов.", moneys);
			SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		}
		return 1;
    }
//------------------------------------*******************------------------------------------
[ Внимание ] не забудте проверить иды диалогов!!!

Ну вот я думаю и все!!!
Это система очень простая (не сложная)
Думаю новичкам пригодится


Если вам понравилось ставте +


И еще раз скажу это мой первый урок не судите строго
Если кто то будет размещать этот урок на других сайтах прошу подписывать автора!!!
Если возникли вопросы или проблемы пишите!!!
Спасибо за внимание.​


---------- Post added at 16:12 ---------- Previous post was at 16:10 ----------

Извиняюсь за ошибку в названии темы))))
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу