rkv
Изучающий
- Регистрация
- 12 Апр 2013
- Сообщения
- 468
- Лучшие ответы
- 0
- Репутация
- 208
Всем доброго времени суток господа и дамы.
Сегодня я хочу вам показать/научить как делаются инвентари [Подобие RakNet]
В пером уроке вы сделаем показ Инвентаря и Сделаем ядро нашего инвентаря.
Ну чтож давайте начнем ко всем new:
Здесь будет содержатся вся информация об объектах в инвентаре.
Далее добавим еще пару переменных:
И так с переменными мы закончили, это все что нужно для ядра системы )
Далее мы добавим сами TextDraw'ы в public OnPlayerConnect вставьте:
Теперь сделаем чтобы наш игрок смог открыть инвентарь, для этого в public OnPlayerKeyStateChange вставьте:
Ну а теперь создадим саму функцию:
В pInfo добавьте:
Далее в public OnPlayerConnect(playerid):
Теперь перейдем к главному сделаем передвижение объектов инвентарю, в OnPlayerClickTextDraw вставьте:
Все теперь мы можем перетаскивать наш объект по инвентарю, далее добавим еще основных функций:
На этом уроке все вы можете проверить то что мы сделали для этого вставьте команду:
Введите её в игре а после откройте инвентарь и проверяйте!
1. Если будут ошибки пишите.
2. Прошу сильно не кусаться )
3. От + Сика не откажусь.
4. Скоро будет следующий урок.
Ссылка на второй урок: Пишем инвентарь [Урок #2 - Drop]
Сегодня я хочу вам показать/научить как делаются инвентари [Подобие 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;
}
PHP:
pInventory[20],
PHP:
ClickInv[playerid] = 21;
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]