| Автор | Сообщение | 
|---|
| bolon - Lance Corporal -
 
 |  |  | 152 | 
  Doom Rate: 9.5
 Posts quality: +28
 | |  Отправлено: 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, количество_рядов, количество_столбцов) |  | 
 Рейтинг сообщения: +8 , отметил(и): Shadowman, Konrad_GRAU, BETEPAH[iddqd], VladGuardian, Артём, alekv, DeXiaZ, JSO x, StormCatcher77, Doomstalker, camper, Eagle_, Li$TeR | 
 | 
|  |  | 
| soldierDude = Master Corporal =
 
 |  |  | 266 | 
  Doom Rate: 1.82
 Posts quality: +123
 | |  Отправлено: 27.06.20 18:41:52 |  |  |  |  | Здорово. А насчет массивов, разве у ACS нет динамического распределения памяти? Да и кстати, можно связать выбор мышкой предметов, что на поясном инвентаре (который есть со времен Hexen или Heretic).
 |  | 
 Рейтинг сообщения: +1 , отметил(и): bolon | 
 | 
|  |  | 
| bolon - Lance Corporal -
 
 |  |  | 152 | 
  Doom Rate: 9.5
 Posts quality: +28
 | |  Отправлено: 27.06.20 19:00:12 |  |  |  |  |  	  | soldierDude пишет: |  	  | Здорово. А насчет массивов, разве у ACS нет динамического распределения памяти? | 
 В ACS такого не нашел, возможно плохо искал.
 
  	  | soldierDude пишет: |  	  | Да и кстати, можно связать выбор мышкой предметов, что на поясном инвентаре (который есть со времен Hexen или Heretic). | 
 Не знаю как это делается и не уверен, что это возможно в ACS. Вот список комманд инвентаря Вики. Все что я там нашел, это дать, использовать, забрать предмет, а также узнать количество предмета в инвентаре. Ну, и выкинуть его. Как же, порой, не хватает функции которая бы возвращала массив предметов
  . |  | 
 | 
 | 
|  |  | 
| soldierDude = Master Corporal =
 
 |  |  | 266 | 
  Doom Rate: 1.82
 Posts quality: +123
 | |  Отправлено: 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
 | |  Отправлено: 27.06.20 21:20:49 |  |  |  |  |  	  | soldierDude пишет: |  	  | Можно попробовать в ZScript унаследовать класс инвентаря с вектором и перегрузить виртуальные методы добавления / удаления предметов. В перегрузках вызывать из пространства имен базового класса эти методы, а после них сразу же забивать вектор тем же предметом.
 https://zdoom.org/wiki/ZScript_virtual_functions#Inventory
 | 
 Я плохо разбираюсь в ZScript, поэтому врядли смогу такое осуществить, но за совет, спасибо.
 |  | 
 | 
 | 
|  |  | 
| alekv - Colonel -
 
 |  |  |  | 4170 | 
  Doom Rate: 1.87
 Posts quality: +950
 | |  Отправлено: 29.06.20 11:19:08 |  |  |  |  |  	  | bolon пишет: |  	  | В ACS такого не нашел, возможно плохо искал. | 
 На сколько я помню, не было динамических массивов из-за чего я когда писал инвентарь, намучился прилично
  |  |  | 
 | 
| | 
| 1 | 3 | 1 |  |  | 
 |  | 
| Shadowman UAC General
 
 |  |  | 8856 | 
 Doom Rate: 2.03
 Posts quality: +2379
 | |  Отправлено: 29.06.20 11:21:46 |  |  |  |  | bolon Интересный инвентарь, спасибо. Положил к себе в примеры скриптов, может пригодится.
 Только не понял - там инвентарь для заданных предметов дума? Если создавать свои вещи, то нужно ли им в декорэйте что-то специфическое писать, чтобы скрипт понимал, как их правильно складывать в инвентарь?
 |  |  | 
 | 
| | 
| 1 | 7 | 2 |  |  | 
 |  | 
| ZZYZX - UAC Commissar -
 
 |  |  |  | 6284 | 
  Doom Rate: 1.65
 Posts quality: +1633
 | |  Отправлено: 29.06.20 15:11:11 |  |  |  |  |  	  | bolon пишет: |  	  | В ACS такого не нашел, возможно плохо искал. | 
 Динамическое распределение памяти существует для глобальных массивов (которые через циферку объявляются).
 Ещё можно записывать нужные данные в строку. Но тогда есть шанс что-нибудь сломать внезапно)
 |  | 
 | 
 | 
| | 
| 2 | 2 | 1 |  |  | 
 |  | 
| Landsberg = Lance Corporal =
 
 |  |  | 196 | 
  Doom Rate: 1.96
 Posts quality: +22
 | |  Отправлено: 30.06.20 07:59:20 |  |  |  |  |  	  | Shadowman пишет: |  	  | Только не понял - там инвентарь для заданных предметов дума? Если создавать свои вещи, то нужно ли им в декорэйте что-то специфическое писать, чтобы скрипт понимал, как их правильно складывать в инвентарь? | 
 
 Чекнул - да, вновь добавленные вещи придётся дописывать в код инвентаря.
 |  |  | 
 | 
|  |  | 
| bolon - Lance Corporal -
 
 |  |  | 152 | 
  Doom Rate: 9.5
 Posts quality: +28
 | |  Отправлено: 30.06.20 19:20:40 |  |  |  |  |  	  | Shadowman пишет: |  	  | Только не понял - там инвентарь для заданных предметов дума? | 
 Да, предметы задаются в массиве posible_items
 
  	  | Shadowman пишет: |  	  | Если создавать свои вещи, то нужно ли им в декорэйте что-то специфическое писать, чтобы скрипт понимал, как их правильно складывать в инвентарь? | 
 В декорейте ничего писать не нужно. Чтобы добавить в инвентарь новый предмет, нужно в массив posible_items добавить название_класса оружия, и, в массиве item_icons добавить название иконки. Разумеется, индексы у названия_класса_оружия и иконка_оружия - должны совпадать.
 |  | 
 | 
 | 
|  |  | 
| Li$TeR - Lance Corporal -
 
 |  |  | 142 | 
 Doom Rate: 0.55
 Posts quality: +170
 | |  Отправлено: 01.07.20 12:24:28 |  |  |  |  | Как говорится, шах и мат, братан(цэ). 
   
   
   Возможности меню:
 ->ПКМ выбрать слот, и дропнуть все вещи из слота
 ->ЛКМ юзать вещи или оружки из слота
 ->Меню вещей автоматически закрывается, если лезешь в меню оружек, и наоборот
 ->возможность биндить вещи из меню
 ->Возможность скроллинга меню
 ->Возможность увеличивать или умешать ячейки, в зависимости от твоего желания CVAR'ом(для разных разрешений)
 И эт так, что просто первое вспомнил.
 |  | 
 | 
 | 
|  |  | 
| ZZYZX - UAC Commissar -
 
 |  |  |  | 6284 | 
  Doom Rate: 1.65
 Posts quality: +1633
 | |  Отправлено: 01.07.20 12:36:16 |  |  |  |  | Выебнулся. Не, это конечно красивая менюшка, но выглядит как если бы какой-нибудь архитектор пришёл, показал свой проект и сказал что это круче чем карточный домик.
 |  | 
 Рейтинг сообщения: -7 , отметил(и): alekv, StormCatcher77, Doomstalker, CYCJIUK, Landsberg, Li$TeR, soldierDude, UnknDoomer, HellWalker557, ElgerElg | 
 | 
| | 
| 2 | 2 | 1 |  |  | 
 |  | 
| Eagle_ Читатель
 
  Doom Rate: 0
 Posts quality: +33
 | |  Отправлено: 01.07.20 12:46:16 |  |  |  |  | но надо заминусить её, потому что листер. как обычно. 	  | ZZYZX пишет: |  	  | это конечно красивая менюшка | 
 |  | 
 Рейтинг сообщения: 0 , отметил(и): ZeTores | 
 | 
|  |  | 
| ZZYZX - UAC Commissar -
 
 |  |  |  | 6284 | 
  Doom Rate: 1.65
 Posts quality: +1633
 | |  Отправлено: 01.07.20 13:18:49 |  |  |  |  | Eagle_ Я написал, за что заминусил.
 |  | 
 | 
 | 
| | 
| 2 | 2 | 1 |  |  | 
 |  | 
| Li$TeR - Lance Corporal -
 
 |  |  | 142 | 
 Doom Rate: 0.55
 Posts quality: +170
 | |  Отправлено: 01.07.20 16:43:05 |  |  |  |  |  	  | ZZYZX пишет: |  	  | Не, это конечно красивая менюшка, но выглядит как если бы какой-нибудь архитектор пришёл, показал свой проект и сказал что это круче чем карточный домик. | 
 Ага, а еще сдается мне, что меню сделано на основе нашего, т.к. тело создавшее топик, подозрительно похоже на то, что я пустил в дискорд. Так что котенька, н ея выебнулся, а возможно тут кто-то очередной раз что-то пытается выдать за свое.
 |  | 
 Рейтинг сообщения: 0 , отметил(и): alekv | 
 | 
|  |  | 
| alekv - Colonel -
 
 |  |  |  | 4170 | 
  Doom Rate: 1.87
 Posts quality: +950
 | |  Отправлено: 01.07.20 17:20:31 |  |  |  |  | Как насчет кастомизации и простоты интеграции в проекты? |  |  | 
 | 
| | 
| 1 | 3 | 1 |  |  | 
 |  | 
| bolon - Lance Corporal -
 
 |  |  | 152 | 
  Doom Rate: 9.5
 Posts quality: +28
 | |  Отправлено: 01.07.20 17:23:24 |  |  |  |  |  	  | Li$TeR пишет: |  	  | Ага, а еще сдается мне, что меню сделано на основе нашего, т.к. тело создавшее топик, подозрительно похоже на то, что я пустил в дискорд. | 
 Твой код, я даже не смотрел. Весь код я писал сам и с нуля. Единственное, поглядывал на инвентарь alexv, что существенно ускорило написание кода.
 |  | 
 | 
 | 
|  |  | 
| Li$TeR - Lance Corporal -
 
 |  |  | 142 | 
 Doom Rate: 0.55
 Posts quality: +170
 | |  Отправлено: 01.07.20 17:27:01 |  |  |  |  | Короч ясно, в дискорде послан нахуй. Всегда обожал это гниломунити: "всех всегда так ВНЕЗАПНО осеняет, когда доберутся до LSD", а еще потом реально " не понимаете" почему я всех вас шлю?) |  | 
 | 
 | 
|  |  | 
| bolon - Lance Corporal -
 
 |  |  | 152 | 
  Doom Rate: 9.5
 Posts quality: +28
 | |  Отправлено: 01.07.20 17:33:13 |  |  |  |  |  	  | Li$TeR пишет: |  	  | Короч ясно, в дискорде послан нахуй. Всегда обожал это гниломунити: "всех всегда так ВНЕЗАПНО осеняет, когда доберутся до LSD" | 
 А вот это было обидно. Я в правду не воровал твой код. Принцип создания я понял покопавшись в коде инвентаря alexv. Оказалось что он прост как 2 копейки, SetWepon выбирает оружие, через GetInput получаем yaw/pitch мышки, а также проверяем нажата ли кнопка. И с помощью цикла проверяем мышку, на нахождение в любой из ячеек.
 |  | 
 | 
 | 
|  |  | 
| Li$TeR - Lance Corporal -
 
 |  |  | 142 | 
 Doom Rate: 0.55
 Posts quality: +170
 | |  Отправлено: 01.07.20 17:38:05 |  |  |  |  |  	  | bolon пишет: |  	  | А вот это было обидно. Я в правду не воровал твой код. Принцип создания я понял покопавшись в коде инвентаря alexv. Оказалось что он прост как 2 копейки, SetWepon выбирает оружие, через GetInput получаем yaw/pitch мышки, а также проверяем нажата ли кнопка. И с помощью цикла проверяем мышку, на нахождение в любой из ячеек. | 
 Да мне по барабану. До LSD инвентаря с мышкой не существовало вообще на Зандре как минимум. И я только что и делаю, что вижу ,как "всех" ВНЕЗАПНО осеняет, только тогда, когда файл с LSD получат. Удачи в "разработках", но без нас уже.
 |  | 
 | 
 | 
|  |  |