Доступ к готовым решениям

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

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

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

Мануал Динамический инвентарь | Онова | Копия Lumi RP

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

ToPsxmirex

Компетентный
Привет всем. Я, наверное, уже известен Lum'овцам по данному мануалу. И, так как я увидел инвентарь на текстдравах, я решил показать Вам инвентарь на диалогах. Я, и как некоторые люди, не люблю системы на текстдравах. Ну и по этому использую максимум диалоги. Сразу хочу написать, что данный инвентарь есть в пабликах: в виде отдельной оптимизированной системы ( продаётся ) и в виде мода, где вы его можете спокойно вырезать. Я же буду писать Вам систему с нуля, не взяв быдлокод с мода. ​

* Если Вы увидите быдлокод с моей стороны - опишите его в комментариях и напишите как сделать лучше.
** Набивателей постов со смыслом "норм", "пойдёт", "мне не нравится" и т.д., прошу пойти на мой большой...
*** Пишу код сразу в теме, так что прошу прощения за то, что он без табуляции.
**** Передачи / уничтожения / использования инвентаря делать не буду. Вам дана основа динамического инвентаря - продолжение за Вами. =)

Автор: ToPsxmirex


PHP:
#define MAX_ITEM 5
new ItemsName[][] =
{
    "Яблоко", "Банан", "Мандарин", "Кактус", "Виноград"
};
enum pInfo
{
	pItem[MAX_ITEM], // Обязательно сохранять, чтобы инвентарь не пропал.
	varItemNumber[MAX_ITEM] // Сохранять не нужно
};
new PlayerInfo[MAX_PLAYERS][pInfo];
PHP:
SetPlayerItems(playerid)
{
	new String[84], Number = -1;
	for(new i; i < MAX_ITEM; i ++)
	{
		if(PlayerInfo[playerid][pItem] == 0) continue;
		PlayerInfo[playerid][varItemNumber][i] = -1;
    		format(String, sizeof(String), "%s%s ( %d )\n", String, ItemsName[i], PlayerInfo[playerid][uItem][i]);
    		Number ++, PlayerInfo[playerid][varItemNumber][Number] = i;
	}
	if(Number == -1) return SendClientMessage(playerid, -1, "* Ваш инвентарь пуст.");
	ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, "Инвентарь", String, "Далее", "Закрыть");
	return true;
}
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case 0:
        {
            if(!response) return SendClientMessage(playerid, -1, "* Вы закрыли свой инвентарь.");
            SetPVarInt(playerid, "LISTITEM", PlayerInfo[playerid][varItemNumber][listitem]);
            ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "Инвентарь", "Использовать\nПередать\nВыбросить", "Далее", "Назад");
            return true;
        }
        case 1:
        {
            if(!response) return SetPlayerItems(playerid);
            switch(GetPVarInt(playerid, "LISTITEM"))
            {
                case 0: SendClientMessage(playerid, -1, "* Вы выбрали яблоко.");
                case 1: SendClientMessage(playerid, -1, "* Вы выбрали банан.");
                case 2: SendClientMessage(playerid, -1, "* Вы выбрали мандарин.");
                case 3: SendClientMessage(playerid, -1, "* Вы выбрали кактус.");
                case 4: SendClientMessage(playerid, -1, "* Вы выбрали виноград.");
            }
            return true;
        }
    }
    return true;
}
PHP:
COMMAND:items(playerid) return SetPlayerItems(playerid);
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу