Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Forum archive | iddqd.ru
Wolf 3D
RulesRules SearchSearch
18+
ACS. Простой инвентарь с мышкой.Goto page 1, 2  Next
   Forum Index - Местечко мапперов и моддеров - ACS. Простой инвентарь с мышкой.Post a reply
AuthorMessage
bolon
- Lance Corporal -
Next rank: = Lance Corporal = after 8 points
152

Doom Rate: 9.5

Posts quality: +28
Link to post #1 Posted: 27.06.20 16:38:59

Сделал инвентарь с мышкой, на чистом ACS. Скачать его можно на MEGA. :pc:
Скачать 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.
3
soldierDude
= Master Corporal =
Next rank: - Sergeant - after 24 points
266

Doom Rate: 1.82

Posts quality: +123
Link to post #2 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 -
Next rank: = Lance Corporal = after 8 points
152

Doom Rate: 9.5

Posts quality: +28
Link to post #3 Posted: 27.06.20 19:00:12
soldierDude wrote:
Здорово. А насчет массивов, разве у ACS нет динамического распределения памяти?

В ACS такого не нашел, возможно плохо искал.
soldierDude wrote:
Да и кстати, можно связать выбор мышкой предметов, что на поясном инвентаре (который есть со времен Hexen или Heretic).

Не знаю как это делается и не уверен, что это возможно в ACS. Вот список комманд инвентаря Вики. Все что я там нашел, это дать, использовать, забрать предмет, а также узнать количество предмета в инвентаре. Ну, и выкинуть его. Как же, порой, не хватает функции которая бы возвращала массив предметов :pc:.

This post scores averagely at -1,00 point(s) with 0 commenters.
3
soldierDude
= Master Corporal =
Next rank: - Sergeant - after 24 points
266

Doom Rate: 1.82

Posts quality: +123
Link to post #4 Posted: 27.06.20 20:23:25
bolon
Можно попробовать в ZScript унаследовать класс инвентаря с вектором и перегрузить виртуальные методы добавления / удаления предметов.
В перегрузках вызывать из пространства имен базового класса эти методы, а после них сразу же забивать вектор тем же предметом.
https://zdoom.org/wiki/ZScript_virtual_functions#Inventory
bolon
- Lance Corporal -
Next rank: = Lance Corporal = after 8 points
152

Doom Rate: 9.5

Posts quality: +28
Link to post #5 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.
3
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsForum moderator
4170

Doom Rate: 1.87

Posts quality: +949
Link to post #6 Posted: 29.06.20 11:19:08
bolon wrote:
В ACS такого не нашел, возможно плохо искал.

На сколько я помню, не было динамических массивов из-за чего я когда писал инвентарь, намучился прилично =)
1 3 1
Shadowman
UAC General
Next rank: Unavailable after 0 points
8762

Doom Rate: 2.05

Posts quality: +2295
Link to post #7 Posted: 29.06.20 11:21:46
bolon
Интересный инвентарь, спасибо. Положил к себе в примеры скриптов, может пригодится.
Только не понял - там инвентарь для заданных предметов дума? Если создавать свои вещи, то нужно ли им в декорэйте что-то специфическое писать, чтобы скрипт понимал, как их правильно складывать в инвентарь?
1 7 2
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsForum moderator
6284

Doom Rate: 1.65

Posts quality: +1633
Link to post #8 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 =
Next rank: - Master Corporal - after 4 points
196

Doom Rate: 1.96

Posts quality: +22
Link to post #9 Posted: 30.06.20 07:59:20
Shadowman wrote:
Только не понял - там инвентарь для заданных предметов дума? Если создавать свои вещи, то нужно ли им в декорэйте что-то специфическое писать, чтобы скрипт понимал, как их правильно складывать в инвентарь?


Чекнул - да, вновь добавленные вещи придётся дописывать в код инвентаря.
bolon
- Lance Corporal -
Next rank: = Lance Corporal = after 8 points
152

Doom Rate: 9.5

Posts quality: +28
Link to post #10 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.
3
Li$TeR
- Lance Corporal -
Next rank: = Lance Corporal = after 18 points
142

Doom Rate: 0.55

Posts quality: +170
Link to post #11 Posted: 01.07.20 12:24:28
Как говорится, шах и мат, братан(цэ).



Возможности меню:
->ПКМ выбрать слот, и дропнуть все вещи из слота
->ЛКМ юзать вещи или оружки из слота
->Меню вещей автоматически закрывается, если лезешь в меню оружек, и наоборот
->возможность биндить вещи из меню
->Возможность скроллинга меню
->Возможность увеличивать или умешать ячейки, в зависимости от твоего желания CVAR'ом(для разных разрешений)
И эт так, что просто первое вспомнил.

This post scores averagely at -2,00 point(s) with 0 commenters.
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsForum moderator
6284

Doom Rate: 1.65

Posts quality: +1633
Link to post #12 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
Link to post #13 Posted: 01.07.20 12:46:16
ZZYZX wrote:
это конечно красивая менюшка
но надо заминусить её, потому что листер. как обычно.

This post scores averagely at 0,00 point(s) with 0 commenters.
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsForum moderator
6284

Doom Rate: 1.65

Posts quality: +1633
Link to post #14 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 -
Next rank: = Lance Corporal = after 18 points
142

Doom Rate: 0.55

Posts quality: +170
Link to post #15 Posted: 01.07.20 16:43:05
ZZYZX wrote:
Не, это конечно красивая менюшка, но выглядит как если бы какой-нибудь архитектор пришёл, показал свой проект и сказал что это круче чем карточный домик.

Ага, а еще сдается мне, что меню сделано на основе нашего, т.к. тело создавшее топик, подозрительно похоже на то, что я пустил в дискорд. Так что котенька, н ея выебнулся, а возможно тут кто-то очередной раз что-то пытается выдать за свое.

This post scores averagely at 0,00 point(s) with 0 commenters.
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsForum moderator
4170

Doom Rate: 1.87

Posts quality: +949
Link to post #16 Posted: 01.07.20 17:20:31
Как насчет кастомизации и простоты интеграции в проекты?
1 3 1
bolon
- Lance Corporal -
Next rank: = Lance Corporal = after 8 points
152

Doom Rate: 9.5

Posts quality: +28
Link to post #17 Posted: 01.07.20 17:23:24
Li$TeR wrote:
Ага, а еще сдается мне, что меню сделано на основе нашего, т.к. тело создавшее топик, подозрительно похоже на то, что я пустил в дискорд.

Твой код, я даже не смотрел. Весь код я писал сам и с нуля. Единственное, поглядывал на инвентарь alexv, что существенно ускорило написание кода.

This post scores averagely at -1,00 point(s) with 0 commenters.
3
Li$TeR
- Lance Corporal -
Next rank: = Lance Corporal = after 18 points
142

Doom Rate: 0.55

Posts quality: +170
Link to post #18 Posted: 01.07.20 17:27:01
Короч ясно, в дискорде послан нахуй. Всегда обожал это гниломунити: "всех всегда так ВНЕЗАПНО осеняет, когда доберутся до LSD", а еще потом реально " не понимаете" почему я всех вас шлю?)

This post scores averagely at -3,00 point(s) with 0 commenters.
bolon
- Lance Corporal -
Next rank: = Lance Corporal = after 8 points
152

Doom Rate: 9.5

Posts quality: +28
Link to post #19 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.
3
Li$TeR
- Lance Corporal -
Next rank: = Lance Corporal = after 18 points
142

Doom Rate: 0.55

Posts quality: +170
Link to post #20 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.
Page 1 of 2Go to topGoto page 1, 2  Next
   Forum Index - Местечко мапперов и моддеров - ACS. Простой инвентарь с мышкой.