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

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

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

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

Мануал Пишем инвентарь [Урок #1 - Ядро]

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

rkv

Изучающий
Регистрация
12 Апр 2013
Сообщения
468
Лучшие ответы
0
Репутация
208
Всем доброго времени суток господа и дамы.

Сегодня я хочу вам показать/научить как делаются инвентари [Подобие RakNet]
В пером уроке вы сделаем показ Инвентаря и Сделаем ядро нашего инвентаря.

Ну чтож давайте начнем ко всем new:

PHP:
enum ItemInfo
{
    ItemModel, // ID объекта
    ItemName[128], // Имя объекта
    Float:POSTDx, // Поворот по X [TextDraw]
    Float:POSTDy, // Поворот по y [TextDraw]
    Float:POSTDz, // Поворот по z [TextDraw]
    Float:POSTDc // Увеличение [TextDraw]
};
new ItemsInfo[2][ItemInfo] = {
    {1649, " ", 0.000000, 0.000000, 90.000000, 2.000000},
    {2223, "Разнос с едой", -16.000000, 0.000000, -55.000000, 1.000000}
};
Здесь будет содержатся вся информация об объектах в инвентаре.

Далее добавим еще пару переменных:

PHP:
new ClickInv[MAX_PLAYERS]; // Нужно будет для передвижения объектов по инвентарю
new Text:InvText[9][MAX_PLAYERS]; // ТекстДрав инвентаря
new Text:InvTextObj[20][MAX_PLAYERS]; // Клетки в инвентаре
И так с переменными мы закончили, это все что нужно для ядра системы )

Далее мы добавим сами TextDraw'ы в public OnPlayerConnect вставьте:

PHP:
        InvText[0][playerid] = TextDrawCreate(193.500000, 127.500000, "usebox");
        TextDrawLetterSize(InvText[0][playerid], 0.000000, 19.579181);
        TextDrawTextSize(InvText[0][playerid], 20.500000, 27.125000);
        TextDrawAlignment(InvText[0][playerid], 1);
        TextDrawColor(InvText[0][playerid], 0);
        TextDrawUseBox(InvText[0][playerid], true);
        TextDrawBoxColor(InvText[0][playerid], 102);
        TextDrawSetShadow(InvText[0][playerid], 0);
        TextDrawSetOutline(InvText[0][playerid], 0);
        TextDrawFont(InvText[0][playerid], 0);

        InvText[1][playerid] = TextDrawCreate(191.000000, 129.687500, "usebox");
        TextDrawLetterSize(InvText[1][playerid], 0.000000, 17.504175);
        TextDrawTextSize(InvText[1][playerid], 23.000000, 0.000000);
        TextDrawAlignment(InvText[1][playerid], 1);
        TextDrawColor(InvText[1][playerid], 0);
        TextDrawUseBox(InvText[1][playerid], true);
        TextDrawBoxColor(InvText[1][playerid], 16777007);
        TextDrawSetShadow(InvText[1][playerid], 0);
        TextDrawSetOutline(InvText[1][playerid], 0);
        TextDrawFont(InvText[1][playerid], 0);

        InvText[2][playerid] = TextDrawCreate(191.000000, 292.875000, "usebox");
        TextDrawLetterSize(InvText[2][playerid], 0.000000, 0.926389);
        TextDrawTextSize(InvText[2][playerid], 23.000000, 0.000000);
        TextDrawAlignment(InvText[2][playerid], 1);
        TextDrawColor(InvText[2][playerid], 0);
        TextDrawUseBox(InvText[2][playerid], true);
        TextDrawBoxColor(InvText[2][playerid], 16777007);
        TextDrawSetShadow(InvText[2][playerid], 0);
        TextDrawSetOutline(InvText[2][playerid], 0);
        TextDrawFont(InvText[2][playerid], 0);

        InvText[3][playerid] = TextDrawCreate(27.000000, 290.937500, "HAND");
        TextDrawLetterSize(InvText[3][playerid], 0.317000, 1.153750);
        TextDrawTextSize(InvText[3][playerid], 61.500000, 14.437500);
        TextDrawAlignment(InvText[3][playerid], 1);
        TextDrawColor(InvText[3][playerid], -1);
        TextDrawSetShadow(InvText[3][playerid], 0);
        TextDrawSetOutline(InvText[3][playerid], 0);
        TextDrawBackgroundColor(InvText[3][playerid], 51);
        TextDrawFont(InvText[3][playerid], 2);
        TextDrawSetProportional(InvText[3][playerid], 1);
        TextDrawSetSelectable(InvText[3][playerid], true);

        InvText[4][playerid] = TextDrawCreate(75.000000, 291.062500, "USE");
        TextDrawLetterSize(InvText[4][playerid], 0.317000, 1.153750);
        TextDrawTextSize(InvText[4][playerid], 98.000000, 14.437500);
        TextDrawAlignment(InvText[4][playerid], 1);
        TextDrawColor(InvText[4][playerid], -1);
        TextDrawSetShadow(InvText[4][playerid], 0);
        TextDrawSetOutline(InvText[4][playerid], 0);
        TextDrawBackgroundColor(InvText[4][playerid], 51);
        TextDrawFont(InvText[4][playerid], 2);
        TextDrawSetProportional(InvText[4][playerid], 1);
        TextDrawSetSelectable(InvText[4][playerid], true);

        InvText[5][playerid] = TextDrawCreate(113.000000, 291.187500, "DROP");
        TextDrawLetterSize(InvText[5][playerid], 0.317000, 1.153750);
        TextDrawTextSize(InvText[5][playerid], 145.000000, 14.437500);
        TextDrawAlignment(InvText[5][playerid], 1);
        TextDrawColor(InvText[5][playerid], -1);
        TextDrawSetShadow(InvText[5][playerid], 0);
        TextDrawSetOutline(InvText[5][playerid], 0);
        TextDrawBackgroundColor(InvText[5][playerid], 51);
        TextDrawFont(InvText[5][playerid], 2);
        TextDrawSetProportional(InvText[5][playerid], 1);
        TextDrawSetSelectable(InvText[5][playerid], true);

        InvText[6][playerid] = TextDrawCreate(159.000000, 290.875000, "Info");
        TextDrawLetterSize(InvText[6][playerid], 0.317000, 1.153750);
        TextDrawTextSize(InvText[6][playerid], 186.500000, 14.437500);
        TextDrawAlignment(InvText[6][playerid], 1);
        TextDrawColor(InvText[6][playerid], -1);
        TextDrawSetShadow(InvText[6][playerid], 0);
        TextDrawSetOutline(InvText[6][playerid], 0);
        TextDrawBackgroundColor(InvText[6][playerid], 51);
        TextDrawFont(InvText[6][playerid], 2);
        TextDrawSetProportional(InvText[6][playerid], 1);
        TextDrawSetSelectable(InvText[6][playerid], true);

        InvText[7][playerid] = TextDrawCreate(24.500000, 118.187500, "Inventory");
        TextDrawLetterSize(InvText[7][playerid], 0.317000, 1.153750);
        TextDrawTextSize(InvText[7][playerid], 186.500000, 14.437500);
        TextDrawAlignment(InvText[7][playerid], 1);
        TextDrawColor(InvText[7][playerid], -1523963137);
        TextDrawSetShadow(InvText[7][playerid], 0);
        TextDrawSetOutline(InvText[7][playerid], 0);
        TextDrawBackgroundColor(InvText[7][playerid], 51);
        TextDrawFont(InvText[7][playerid], 2);
        TextDrawSetProportional(InvText[7][playerid], 1);

        InvText[8][playerid] = TextDrawCreate(425.000000, 429.625000, "Press: ~g~ESC~w~ TO exit inventory");
        TextDrawLetterSize(InvText[8][playerid], 0.321000, 1.320000);
        TextDrawAlignment(InvText[8][playerid], 1);
        TextDrawColor(InvText[8][playerid], -1);
        TextDrawSetShadow(InvText[8][playerid], 0);
        TextDrawSetOutline(InvText[8][playerid], 1);
        TextDrawBackgroundColor(InvText[8][playerid], 51);
        TextDrawFont(InvText[8][playerid], 2);
        TextDrawSetProportional(InvText[8][playerid], 1);
        //======================================================================
        InvTextObj[0][playerid] = TextDrawCreate(27.500000, 130.187500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[0][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[0][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[0][playerid], 1);
        TextDrawColor(InvTextObj[0][playerid], -1);
        TextDrawUseBox(InvTextObj[0][playerid], true);
        TextDrawBoxColor(InvTextObj[0][playerid], 0);
        TextDrawSetShadow(InvTextObj[0][playerid], 0);
        TextDrawSetOutline(InvTextObj[0][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[0][playerid], 103);
        TextDrawFont(InvTextObj[0][playerid], 5);
        TextDrawSetProportional(InvTextObj[0][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[0][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[0][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[1][playerid] = TextDrawCreate(67.500000, 130.187500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[1][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[1][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[1][playerid], 1);
        TextDrawColor(InvTextObj[1][playerid], -1);
        TextDrawUseBox(InvTextObj[1][playerid], true);
        TextDrawBoxColor(InvTextObj[1][playerid], 0);
        TextDrawSetShadow(InvTextObj[1][playerid], 0);
        TextDrawSetOutline(InvTextObj[1][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[1][playerid], 103);
        TextDrawFont(InvTextObj[1][playerid], 5);
        TextDrawSetProportional(InvTextObj[1][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[1][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[1][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[2][playerid] = TextDrawCreate(107.500000, 130.187500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[2][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[2][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[2][playerid], 1);
        TextDrawColor(InvTextObj[2][playerid], -1);
        TextDrawUseBox(InvTextObj[2][playerid], true);
        TextDrawBoxColor(InvTextObj[2][playerid], 0);
        TextDrawSetShadow(InvTextObj[2][playerid], 0);
        TextDrawSetOutline(InvTextObj[2][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[2][playerid], 103);
        TextDrawFont(InvTextObj[2][playerid], 5);
        TextDrawSetProportional(InvTextObj[2][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[2][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[2][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[3][playerid] = TextDrawCreate(147.500000, 130.187500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[3][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[3][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[3][playerid], 1);
        TextDrawColor(InvTextObj[3][playerid], -1);
        TextDrawUseBox(InvTextObj[3][playerid], true);
        TextDrawBoxColor(InvTextObj[3][playerid], 0);
        TextDrawSetShadow(InvTextObj[3][playerid], 0);
        TextDrawSetOutline(InvTextObj[3][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[3][playerid], 103);
        TextDrawFont(InvTextObj[3][playerid], 5);
        TextDrawSetProportional(InvTextObj[3][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[3][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[3][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[4][playerid] = TextDrawCreate(27.500000, 161.500000, "New Textdraw");
        TextDrawLetterSize(InvTextObj[4][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[4][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[4][playerid], 1);
        TextDrawColor(InvTextObj[4][playerid], -1);
        TextDrawUseBox(InvTextObj[4][playerid], true);
        TextDrawBoxColor(InvTextObj[4][playerid], 0);
        TextDrawSetShadow(InvTextObj[4][playerid], 0);
        TextDrawSetOutline(InvTextObj[4][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[4][playerid], 103);
        TextDrawFont(InvTextObj[4][playerid], 5);
        TextDrawSetProportional(InvTextObj[4][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[4][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[4][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[5][playerid] = TextDrawCreate(67.500000, 161.500000, "New Textdraw");
        TextDrawLetterSize(InvTextObj[5][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[5][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[5][playerid], 1);
        TextDrawColor(InvTextObj[5][playerid], -1);
        TextDrawUseBox(InvTextObj[5][playerid], true);
        TextDrawBoxColor(InvTextObj[5][playerid], 0);
        TextDrawSetShadow(InvTextObj[5][playerid], 0);
        TextDrawSetOutline(InvTextObj[5][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[5][playerid], 103);
        TextDrawFont(InvTextObj[5][playerid], 5);
        TextDrawSetProportional(InvTextObj[5][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[5][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[5][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[6][playerid] = TextDrawCreate(107.500000, 161.500000, "New Textdraw");
        TextDrawLetterSize(InvTextObj[6][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[6][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[6][playerid], 1);
        TextDrawColor(InvTextObj[6][playerid], -1);
        TextDrawUseBox(InvTextObj[6][playerid], true);
        TextDrawBoxColor(InvTextObj[6][playerid], 0);
        TextDrawSetShadow(InvTextObj[6][playerid], 0);
        TextDrawSetOutline(InvTextObj[6][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[6][playerid], 103);
        TextDrawFont(InvTextObj[6][playerid], 5);
        TextDrawSetProportional(InvTextObj[6][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[6][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[6][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[7][playerid] = TextDrawCreate(147.500000, 161.500000, "New Textdraw");
        TextDrawLetterSize(InvTextObj[7][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[7][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[7][playerid], 1);
        TextDrawColor(InvTextObj[7][playerid], -1);
        TextDrawUseBox(InvTextObj[7][playerid], true);
        TextDrawBoxColor(InvTextObj[7][playerid], 0);
        TextDrawSetShadow(InvTextObj[7][playerid], 0);
        TextDrawSetOutline(InvTextObj[7][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[7][playerid], 103);
        TextDrawFont(InvTextObj[7][playerid], 5);
        TextDrawSetProportional(InvTextObj[7][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[7][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[7][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[8][playerid] = TextDrawCreate(27.500000, 193.062500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[8][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[8][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[8][playerid], 1);
        TextDrawColor(InvTextObj[8][playerid], -1);
        TextDrawUseBox(InvTextObj[8][playerid], true);
        TextDrawBoxColor(InvTextObj[8][playerid], 0);
        TextDrawSetShadow(InvTextObj[8][playerid], 0);
        TextDrawSetOutline(InvTextObj[8][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[8][playerid], 103);
        TextDrawFont(InvTextObj[8][playerid], 5);
        TextDrawSetProportional(InvTextObj[8][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[8][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[8][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[9][playerid] = TextDrawCreate(67.500000, 193.062500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[9][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[9][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[9][playerid], 1);
        TextDrawColor(InvTextObj[9][playerid], -1);
        TextDrawUseBox(InvTextObj[9][playerid], true);
        TextDrawBoxColor(InvTextObj[9][playerid], 0);
        TextDrawSetShadow(InvTextObj[9][playerid], 0);
        TextDrawSetOutline(InvTextObj[9][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[9][playerid], 103);
        TextDrawFont(InvTextObj[9][playerid], 5);
        TextDrawSetProportional(InvTextObj[9][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[9][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[9][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[10][playerid] = TextDrawCreate(107.500000, 193.062500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[10][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[10][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[10][playerid], 1);
        TextDrawColor(InvTextObj[10][playerid], -1);
        TextDrawUseBox(InvTextObj[10][playerid], true);
        TextDrawBoxColor(InvTextObj[10][playerid], 0);
        TextDrawSetShadow(InvTextObj[10][playerid], 0);
        TextDrawSetOutline(InvTextObj[10][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[10][playerid], 103);
        TextDrawFont(InvTextObj[10][playerid], 5);
        TextDrawSetProportional(InvTextObj[10][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[10][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[10][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[11][playerid] = TextDrawCreate(147.500000, 193.062500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[11][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[11][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[11][playerid], 1);
        TextDrawColor(InvTextObj[11][playerid], -1);
        TextDrawUseBox(InvTextObj[11][playerid], true);
        TextDrawBoxColor(InvTextObj[11][playerid], 0);
        TextDrawSetShadow(InvTextObj[11][playerid], 0);
        TextDrawSetOutline(InvTextObj[11][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[11][playerid], 103);
        TextDrawFont(InvTextObj[11][playerid], 5);
        TextDrawSetProportional(InvTextObj[11][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[11][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[11][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[12][playerid] = TextDrawCreate(27.500000, 224.625000, "New Textdraw");
        TextDrawLetterSize(InvTextObj[12][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[12][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[12][playerid], 1);
        TextDrawColor(InvTextObj[12][playerid], -1);
        TextDrawUseBox(InvTextObj[12][playerid], true);
        TextDrawBoxColor(InvTextObj[12][playerid], 0);
        TextDrawSetShadow(InvTextObj[12][playerid], 0);
        TextDrawSetOutline(InvTextObj[12][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[12][playerid], 103);
        TextDrawFont(InvTextObj[12][playerid], 5);
        TextDrawSetProportional(InvTextObj[12][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[12][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[12][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[13][playerid] = TextDrawCreate(67.500000, 224.625000, "New Textdraw");
        TextDrawLetterSize(InvTextObj[13][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[13][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[13][playerid], 1);
        TextDrawColor(InvTextObj[13][playerid], -1);
        TextDrawUseBox(InvTextObj[13][playerid], true);
        TextDrawBoxColor(InvTextObj[13][playerid], 0);
        TextDrawSetShadow(InvTextObj[13][playerid], 0);
        TextDrawSetOutline(InvTextObj[13][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[13][playerid], 103);
        TextDrawFont(InvTextObj[13][playerid], 5);
        TextDrawSetProportional(InvTextObj[13][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[13][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[13][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[14][playerid] = TextDrawCreate(107.500000, 224.625000, "New Textdraw");
        TextDrawLetterSize(InvTextObj[14][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[14][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[14][playerid], 1);
        TextDrawColor(InvTextObj[14][playerid], -1);
        TextDrawUseBox(InvTextObj[14][playerid], true);
        TextDrawBoxColor(InvTextObj[14][playerid], 0);
        TextDrawSetShadow(InvTextObj[14][playerid], 0);
        TextDrawSetOutline(InvTextObj[14][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[14][playerid], 103);
        TextDrawFont(InvTextObj[14][playerid], 5);
        TextDrawSetProportional(InvTextObj[14][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[14][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[14][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[15][playerid] = TextDrawCreate(147.500000, 224.625000, "New Textdraw");
        TextDrawLetterSize(InvTextObj[15][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[15][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[15][playerid], 1);
        TextDrawColor(InvTextObj[15][playerid], -1);
        TextDrawUseBox(InvTextObj[15][playerid], true);
        TextDrawBoxColor(InvTextObj[15][playerid], 0);
        TextDrawSetShadow(InvTextObj[15][playerid], 0);
        TextDrawSetOutline(InvTextObj[15][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[15][playerid], 103);
        TextDrawFont(InvTextObj[15][playerid], 5);
        TextDrawSetProportional(InvTextObj[15][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[15][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[15][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[16][playerid] = TextDrawCreate(27.500000, 256.187500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[16][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[16][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[16][playerid], 1);
        TextDrawColor(InvTextObj[16][playerid], -1);
        TextDrawUseBox(InvTextObj[16][playerid], true);
        TextDrawBoxColor(InvTextObj[16][playerid], 0);
        TextDrawSetShadow(InvTextObj[16][playerid], 0);
        TextDrawSetOutline(InvTextObj[16][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[16][playerid], 103);
        TextDrawFont(InvTextObj[16][playerid], 5);
        TextDrawSetProportional(InvTextObj[16][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[16][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[16][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[17][playerid] = TextDrawCreate(67.500000, 256.187500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[17][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[17][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[17][playerid], 1);
        TextDrawColor(InvTextObj[17][playerid], -1);
        TextDrawUseBox(InvTextObj[17][playerid], true);
        TextDrawBoxColor(InvTextObj[17][playerid], 0);
        TextDrawSetShadow(InvTextObj[17][playerid], 0);
        TextDrawSetOutline(InvTextObj[17][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[17][playerid], 103);
        TextDrawFont(InvTextObj[17][playerid], 5);
        TextDrawSetProportional(InvTextObj[17][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[17][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[17][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[18][playerid] = TextDrawCreate(107.500000, 256.187500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[18][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[18][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[18][playerid], 1);
        TextDrawColor(InvTextObj[18][playerid], -1);
        TextDrawUseBox(InvTextObj[18][playerid], true);
        TextDrawBoxColor(InvTextObj[18][playerid], 0);
        TextDrawSetShadow(InvTextObj[18][playerid], 0);
        TextDrawSetOutline(InvTextObj[18][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[18][playerid], 103);
        TextDrawFont(InvTextObj[18][playerid], 5);
        TextDrawSetProportional(InvTextObj[18][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[18][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[18][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

        InvTextObj[19][playerid] = TextDrawCreate(147.500000, 256.187500, "New Textdraw");
        TextDrawLetterSize(InvTextObj[19][playerid], 0.449999, 1.600000);
        TextDrawTextSize(InvTextObj[19][playerid], 39.000000, 30.625000);
        TextDrawAlignment(InvTextObj[19][playerid], 1);
        TextDrawColor(InvTextObj[19][playerid], -1);
        TextDrawUseBox(InvTextObj[19][playerid], true);
        TextDrawBoxColor(InvTextObj[19][playerid], 0);
        TextDrawSetShadow(InvTextObj[19][playerid], 0);
        TextDrawSetOutline(InvTextObj[19][playerid], 1);
        TextDrawBackgroundColor(InvTextObj[19][playerid], 103);
        TextDrawFont(InvTextObj[19][playerid], 5);
        TextDrawSetProportional(InvTextObj[19][playerid], 1);
        TextDrawSetPreviewModel(InvTextObj[19][playerid], 0);
        TextDrawSetPreviewRot(InvTextObj[19][playerid], 0.000000, 0.000000, 0.000000, 1.000000);

Теперь сделаем чтобы наш игрок смог открыть инвентарь, для этого в public OnPlayerKeyStateChange вставьте:

PHP:
    if(newkeys & KEY_YES) // ID кнопки в нашем случае это клавиша Y [Н RUS].
    {
        ShowInventory(playerid); // Вызываем функцию показа инвентаря.
        SetPVarInt(playerid, "gInv", 1); // Даем значение 1 что мы открыли инвентарь.
    }
Ну а теперь создадим саму функцию:

PHP:
stock ShowInventory(playerid) // Функция
{
    for(new j = 0; j < 20; j++) // Цикл.
    {
        new ID = PlayerInfo[playerid][pInventory][j]; // Сделано для удобности
        TextDrawSetPreviewModel(InvTextObj[j][playerid], ItemsInfo[ID][ItemModel]); // Меняем модель в инвентаре.
        TextDrawSetPreviewRot(InvTextObj[j][playerid], ItemsInfo[ID][POSTDx], ItemsInfo[ID][POSTDy], ItemsInfo[ID][POSTDz], ItemsInfo[ID][POSTDc]); // Меняем положение модели.
    }
    for(new i; i < sizeof(InvText); i++) // Еще один цикл.
    {
        TextDrawShowForPlayer(playerid,InvText[i][playerid]); // Показываем TextDraw Игроку.
    }
    for(new i; i < sizeof(InvTextObj); i++) // Еще один цикл.
    {
        TextDrawSetSelectable(InvTextObj[i][playerid], true); // По моей глупости я забыл сделать это стандартным(
        TextDrawShowForPlayer(playerid,InvTextObj[i][playerid]); // Показываем TextDraw Игроку.
    }
    SelectTextDraw(playerid,0x2641FEAA); // Вызываем экранную мышку и меняем цвет TextDraw'а при наводке на него.
    return true;
}
В pInfo добавьте:

PHP:
pInventory[20],
Далее в public OnPlayerConnect(playerid):

PHP:
ClickInv[playerid] = 21;
Теперь перейдем к главному сделаем передвижение объектов инвентарю, в OnPlayerClickTextDraw вставьте:

PHP:
    if(_:clickedid == INVALID_TEXT_DRAW) // Если игрок нажал ESC
    {
        if(GetPVarInt(playerid, "gInv") == 1) // Проверяем запущен ли инвентарь.
        {
            if(ClickInv[playerid] != 21) // Если игрок выбрал объект в инвентаре то..
            {
                TextDrawBackgroundColor(InvTextObj[ClickInv[playerid]][playerid], 103); // Меняем фон объекта.
            }
            ClickInv[playerid] = 21; // Обнуляем переменную.
            HideInventory(playerid); // Вызываем функцию закрытия инвентаря.
            SetPVarInt(playerid, "gInv", 0); // Обнуляем pVar.
        }
    }
    for(new j = 0; j < 20; j++) // Цикл.
    {
        if(clickedid == InvTextObj[j][playerid])
        {
            if(ClickInv[playerid] == 21) // Если игрок не выделил объект то...
            {
                if(PlayerInfo[playerid][pInventory][j] != 0) // Если данная ячейка не пуста то..
                {
                    ClickInv[playerid] = j; // Записываем в переменную ID иконки
                    TextDrawBackgroundColor(InvTextObj[j][playerid], 0x00000034); // Меняем цвет фона объекта.
                    TextDrawHideForPlayer(playerid,InvTextObj[j][playerid]); // Скрываем иконку. [Для обновления]
                    TextDrawShowForPlayer(playerid,InvTextObj[j][playerid]); // Показываем иконку. [Для обновления]
                }
            }
            else // Если игрок уже выбрал объект то...
            {
                if(PlayerInfo[playerid][pInventory][j] == 0) // Если данная ячейка пуста то..
                {
                    new ID = ClickInv[playerid];
                    PlayerInfo[playerid][pInventory][j] = PlayerInfo[playerid][pInventory][ID]; // Записываем новое значени.
                    PlayerInfo[playerid][pInventory][ID] = 0; // Обнуляем иконку которую выбрали изначально.
                    //==========================================================
                    TextDrawBackgroundColor(InvTextObj[ID][playerid], 103); // Меняем цвет фона объекта.
                    //==========================================================
                    InvUpdate(playerid, ID, PlayerInfo[playerid][pInventory][ID]); // Обновлем иконку.
                    InvUpdate(playerid, j, PlayerInfo[playerid][pInventory][j]); // Обновлем иконку.
                    ClickInv[playerid] = 21; // Обнуляем переменную.
                    PlayerPlaySound(playerid, 17803, 0.0, 0.0, 0.0); // Воспроизводим звук.
                }
                if(j == ClickInv[playerid]) // Если же объекты схожи то..
                {
                    ClickInv[playerid] = 21; // Обнуляем переменную.
                    TextDrawBackgroundColor(InvTextObj[j][playerid], 103); // Меняем цвет фона объекта.
                    TextDrawHideForPlayer(playerid,InvTextObj[j][playerid]); // Скрываем иконку. [Для обновления]
                    TextDrawShowForPlayer(playerid,InvTextObj[j][playerid]); // Показываем иконку. [Для обновления]
                }
            }
        }
    }
Все теперь мы можем перетаскивать наш объект по инвентарю, далее добавим еще основных функций:

PHP:
stock HideInventory(playerid) // Скрываем инвентарь.
{
    for(new i; i < sizeof(InvText); i++)
    {
        TextDrawHideForPlayer(playerid,InvText[i][playerid]);
    }
    for(new i; i < sizeof(InvTextObj); i++)
    {
        TextDrawHideForPlayer(playerid,InvTextObj[i][playerid]);
    }
    CancelSelectTextDraw(playerid);
    return true;
}
stock InvUpdate(playerid, td, jdk) // Обновляем инвентарь.
{
    TextDrawSetPreviewModel(InvTextObj[td][playerid], ItemsInfo[jdk][ItemModel]);
    TextDrawSetPreviewRot(InvTextObj[td][playerid], ItemsInfo[jdk][POSTDx], ItemsInfo[jdk][POSTDy], ItemsInfo[jdk][POSTDz], ItemsInfo[jdk][POSTDc]);
    if(GetPVarInt(playerid, "gInv") == 1)
    {
        TextDrawHideForPlayer(playerid,InvTextObj[td][playerid]);
        TextDrawShowForPlayer(playerid,InvTextObj[td][playerid]);
    }
    return true;
}
На этом уроке все вы можете проверить то что мы сделали для этого вставьте команду:

PHP:
CMD:test(playerid, params[])
{
PlayerInfo[playerid][pInventory][0] = 1;
return true;
}
Введите её в игре а после откройте инвентарь и проверяйте!


1. Если будут ошибки пишите.
2. Прошу сильно не кусаться )
3. От + Сика не откажусь.
4. Скоро будет следующий урок.


Ссылка на второй урок: Пишем инвентарь [Урок #2 - Drop]
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу