Author | Message |
bolon - Lance Corporal -
 | 152 |
 Doom Rate: 9.5 Posts quality: +28 |
Posted: 27.06.20 16:38:59 | |
|
Сделал инвентарь с мышкой, на чистом ACS. Скачать его можно на MEGA.
Скачать wad
Версия, для добавления в свои проекты: Скачать pk3
Настройка инвентаря
#define ITEM_NUMBER 6
ITEM_NUMBER - указывает максимальное количество предметов в инвентаре.
str posible_items[ITEM_NUMBER]
str item_icons[ITEM_NUMBER]
В этих строках хранится что-то типа словаря. Некая база данных, из которой инвентарь черпает информацию о предмете.
str your_items[ITEM_NUMBER];
int item_slots[ITEM_NUMBER];
your_items - главный массив, в котором содержаться все предметы инвентаря.
item_slots - массив, связанный с массивом your_items, указывающий наличие предмета в слоте.
int img_size = 64.0;
Размер ячейки в пикселях (64x64)
bool debug_on = true;
Переменная которая включает/отключает отладочную информацию.
Если хотите, поменять количество ячеек инвентаря, то в скрипте "DrawInventory" найдите функцию createTable и поменяйте количество столбцов и рядов, также можно задать изначальное смещение по следующему синтаксису
createTable(x, y, количество_рядов, количество_столбцов) |
This post scores averagely at 8,00 point(s) with 0 commenters. |
|
| |
soldierDude = Master Corporal =
 | 266 |
 Doom Rate: 1.82 Posts quality: +123 |
Posted: 27.06.20 18:41:52 | |
|
Здорово. А насчет массивов, разве у ACS нет динамического распределения памяти?
Да и кстати, можно связать выбор мышкой предметов, что на поясном инвентаре (который есть со времен Hexen или Heretic). |
This post scores averagely at 1,00 point(s) with 0 commenters. |
|
| |
bolon - Lance Corporal -
 | 152 |
 Doom Rate: 9.5 Posts quality: +28 |
Posted: 27.06.20 19:00:12 | |
|
soldierDude wrote: | Здорово. А насчет массивов, разве у ACS нет динамического распределения памяти? |
В ACS такого не нашел, возможно плохо искал.
soldierDude wrote: | Да и кстати, можно связать выбор мышкой предметов, что на поясном инвентаре (который есть со времен Hexen или Heretic). |
Не знаю как это делается и не уверен, что это возможно в ACS. Вот список комманд инвентаря Вики. Все что я там нашел, это дать, использовать, забрать предмет, а также узнать количество предмета в инвентаре. Ну, и выкинуть его. Как же, порой, не хватает функции которая бы возвращала массив предметов . |
This post scores averagely at -1,00 point(s) with 0 commenters. |
|
| |
soldierDude = Master Corporal =
 | 266 |
 Doom Rate: 1.82 Posts quality: +123 |
Posted: 27.06.20 20:23:25 | |
|
bolon
Можно попробовать в ZScript унаследовать класс инвентаря с вектором и перегрузить виртуальные методы добавления / удаления предметов.
В перегрузках вызывать из пространства имен базового класса эти методы, а после них сразу же забивать вектор тем же предметом.
https://zdoom.org/wiki/ZScript_virtual_functions#Inventory |
|
|
| |
bolon - Lance Corporal -
 | 152 |
 Doom Rate: 9.5 Posts quality: +28 |
Posted: 27.06.20 21:20:49 | |
|
soldierDude wrote: | Можно попробовать в ZScript унаследовать класс инвентаря с вектором и перегрузить виртуальные методы добавления / удаления предметов.
В перегрузках вызывать из пространства имен базового класса эти методы, а после них сразу же забивать вектор тем же предметом.
https://zdoom.org/wiki/ZScript_virtual_functions#Inventory |
Я плохо разбираюсь в ZScript, поэтому врядли смогу такое осуществить, но за совет, спасибо. |
This post scores averagely at -1,00 point(s) with 0 commenters. |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Posted: 29.06.20 11:19:08 | |
|
bolon wrote: | В ACS такого не нашел, возможно плохо искал. |
На сколько я помню, не было динамических массивов из-за чего я когда писал инвентарь, намучился прилично  |
|
|
1 |
3 |
1 |
 |
|
| |
Shadowman UAC General
 | 8762 |
Doom Rate: 2.05 Posts quality: +2295 |
Posted: 29.06.20 11:21:46 | |
|
bolon
Интересный инвентарь, спасибо. Положил к себе в примеры скриптов, может пригодится.
Только не понял - там инвентарь для заданных предметов дума? Если создавать свои вещи, то нужно ли им в декорэйте что-то специфическое писать, чтобы скрипт понимал, как их правильно складывать в инвентарь? |
|
|
1 |
7 |
2 |
 |
|
| |
ZZYZX - UAC Commissar -
 |  | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Posted: 29.06.20 15:11:11 | |
|
bolon wrote: | В ACS такого не нашел, возможно плохо искал. |
Динамическое распределение памяти существует для глобальных массивов (которые через циферку объявляются).
Ещё можно записывать нужные данные в строку. Но тогда есть шанс что-нибудь сломать внезапно) |
This post scores averagely at -9,00 point(s) with 0 commenters. |
|
2 |
2 |
1 |
 |
|
| |
Landsberg = Lance Corporal =
 | 196 |
 Doom Rate: 1.96 Posts quality: +22 |
Posted: 30.06.20 07:59:20 | |
|
Shadowman wrote: | Только не понял - там инвентарь для заданных предметов дума? Если создавать свои вещи, то нужно ли им в декорэйте что-то специфическое писать, чтобы скрипт понимал, как их правильно складывать в инвентарь? |
Чекнул - да, вновь добавленные вещи придётся дописывать в код инвентаря. |
|
|
| |
bolon - Lance Corporal -
 | 152 |
 Doom Rate: 9.5 Posts quality: +28 |
Posted: 30.06.20 19:20:40 | |
|
Shadowman wrote: | Только не понял - там инвентарь для заданных предметов дума? |
Да, предметы задаются в массиве posible_items
Shadowman wrote: | Если создавать свои вещи, то нужно ли им в декорэйте что-то специфическое писать, чтобы скрипт понимал, как их правильно складывать в инвентарь? |
В декорейте ничего писать не нужно. Чтобы добавить в инвентарь новый предмет, нужно в массив posible_items добавить название_класса оружия, и, в массиве item_icons добавить название иконки. Разумеется, индексы у названия_класса_оружия и иконка_оружия - должны совпадать. |
This post scores averagely at 0,00 point(s) with 0 commenters. |
|
| |
Li$TeR - Lance Corporal -
 | 142 |
Doom Rate: 0.55 Posts quality: +170 |
|
| |
ZZYZX - UAC Commissar -
 |  | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Posted: 01.07.20 12:36:16 | |
|
Выебнулся.
Не, это конечно красивая менюшка, но выглядит как если бы какой-нибудь архитектор пришёл, показал свой проект и сказал что это круче чем карточный домик. |
This post scores averagely at -7,00 point(s) with 0 commenters. |
|
2 |
2 |
1 |
 |
|
| |
Eagle_ Читатель
 Doom Rate: 0 Posts quality: +33 |
Posted: 01.07.20 12:46:16 | |
|
ZZYZX wrote: | это конечно красивая менюшка | но надо заминусить её, потому что листер. как обычно. |
This post scores averagely at 0,00 point(s) with 0 commenters. |
|
| |
ZZYZX - UAC Commissar -
 |  | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Posted: 01.07.20 13:18:49 | |
|
Eagle_
Я написал, за что заминусил. |
This post scores averagely at -10,00 point(s) with 0 commenters. |
|
2 |
2 |
1 |
 |
|
| |
Li$TeR - Lance Corporal -
 | 142 |
Doom Rate: 0.55 Posts quality: +170 |
Posted: 01.07.20 16:43:05 | |
|
ZZYZX wrote: | Не, это конечно красивая менюшка, но выглядит как если бы какой-нибудь архитектор пришёл, показал свой проект и сказал что это круче чем карточный домик. |
Ага, а еще сдается мне, что меню сделано на основе нашего, т.к. тело создавшее топик, подозрительно похоже на то, что я пустил в дискорд. Так что котенька, н ея выебнулся, а возможно тут кто-то очередной раз что-то пытается выдать за свое. |
This post scores averagely at 0,00 point(s) with 0 commenters. |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Posted: 01.07.20 17:20:31 | |
|
Как насчет кастомизации и простоты интеграции в проекты? |
|
|
1 |
3 |
1 |
 |
|
| |
bolon - Lance Corporal -
 | 152 |
 Doom Rate: 9.5 Posts quality: +28 |
Posted: 01.07.20 17:23:24 | |
|
Li$TeR wrote: | Ага, а еще сдается мне, что меню сделано на основе нашего, т.к. тело создавшее топик, подозрительно похоже на то, что я пустил в дискорд. |
Твой код, я даже не смотрел. Весь код я писал сам и с нуля. Единственное, поглядывал на инвентарь alexv, что существенно ускорило написание кода. |
This post scores averagely at -1,00 point(s) with 0 commenters. |
|
| |
Li$TeR - Lance Corporal -
 | 142 |
Doom Rate: 0.55 Posts quality: +170 |
Posted: 01.07.20 17:27:01 | |
|
Короч ясно, в дискорде послан нахуй. Всегда обожал это гниломунити: "всех всегда так ВНЕЗАПНО осеняет, когда доберутся до LSD", а еще потом реально " не понимаете" почему я всех вас шлю?) |
This post scores averagely at -3,00 point(s) with 0 commenters. |
|
| |
bolon - Lance Corporal -
 | 152 |
 Doom Rate: 9.5 Posts quality: +28 |
Posted: 01.07.20 17:33:13 | |
|
Li$TeR wrote: | Короч ясно, в дискорде послан нахуй. Всегда обожал это гниломунити: "всех всегда так ВНЕЗАПНО осеняет, когда доберутся до LSD" |
А вот это было обидно. Я в правду не воровал твой код. Принцип создания я понял покопавшись в коде инвентаря alexv. Оказалось что он прост как 2 копейки, SetWepon выбирает оружие, через GetInput получаем yaw/pitch мышки, а также проверяем нажата ли кнопка. И с помощью цикла проверяем мышку, на нахождение в любой из ячеек. |
This post scores averagely at 3,00 point(s) with 0 commenters. |
|
| |
Li$TeR - Lance Corporal -
 | 142 |
Doom Rate: 0.55 Posts quality: +170 |
Posted: 01.07.20 17:38:05 | |
|
bolon wrote: | А вот это было обидно. Я в правду не воровал твой код. Принцип создания я понял покопавшись в коде инвентаря alexv. Оказалось что он прост как 2 копейки, SetWepon выбирает оружие, через GetInput получаем yaw/pitch мышки, а также проверяем нажата ли кнопка. И с помощью цикла проверяем мышку, на нахождение в любой из ячеек. |
Да мне по барабану. До LSD инвентаря с мышкой не существовало вообще на Зандре как минимум. И я только что и делаю, что вижу ,как "всех" ВНЕЗАПНО осеняет, только тогда, когда файл с LSD получат. Удачи в "разработках", но без нас уже. |
This post scores averagely at -2,00 point(s) with 0 commenters. |
|
| |