Всем привет. Помучив первую тему теперь приступим к инвентарю... =)))
Данное решение инвентаря подходит только для ситуации когда у нас в инвентаре ограниченное количество слотов для вещей (может я ошибаюсь, но это не так важно, так как все равно нельзя будет реализовать ещё несколько штук см. ниже).
Сначала опишем каким образом это должно быть в самой игре.
Во первых мы заранее не знаем какое количество(ограничение на слоты) вещей у нас будет в инвентаре, тоесть у нас должен быть приличный запас на количество.
Во вторых должна быть возможность улучшать (изменять) параметры вещей, заточка оружия например. Возможность времменных модификаторов - наприммер улучшена атака меча на сутки. Важно , чтобы эти изменения были привязаны именно к оружию, тоесть если я его выкину , а потом ктото подберёт , то эти модификаторы остались на оружии.
вроде пока все...
Теперь как это будет у нас реализовано в MySQL.
Как все это унас будет отображаться в интерфейсе пользователя я считаю не так важно и кто как хочет может реализовывать, это не будет влиять на архитектуру хранения в MySQL.
1.Самый примитивный способ, я думаю, это все вещи зогнать в одну таблицу например item_list (я имею ввиду не види вещей а ВСЕ вещи). Тоесть будут столбцы item_id (уникальный номер вещи по всей игре) item_name, характеристики вещи(которые мы сможем потом менять - делать всякие заточки , улучшения ), другие параметры вещи и столбец - какому игроку принадлежит вещь.
В этой ситуации наверно придётся раскидывать разные виды вещей по разным таблицам (мечи в одной таблице щиты в другой и т.д.) ввиду разных характеристик предмета, у меча нет параметра брони , у шлема - параметра атаки. Но представьте сколько времени будет занимать формирование инвентаря, нужно будет сделать запросы ко всем таблицам и выбрать по параметру - принадлежность предмета. А таблицы то будут огромные...
Думаю этот вариант не подходит - ресурсоёмкое решение (хотя если таблици сортировать по принадлежности предметов.... ??? ).
2. У нас есть таблица Inventar, есть таблицы с видами вещей item_list (id вещи и её характеристики ). В ней храняться инвентари всех игроков, тоесть по количеству записей она будет соответствовать таблице users. Первый столбец - user_id. А потом содержимое инвентаря, ктоторое придётся хранить в текстовом виде : перечисление всех вещей и за каждой вещью её модификаторы
(id_123 min_attack=+7 max_attack=+4 mf_crit=-12, id_156 def=+50 mf_crit=+15, ...... - в данном случае мы имеем в инвентаре меч id_123 у которого есть свои параметры атаки и модификаторов, кот мы берём из таблицы item_list и к этим параметрам прибавляем индивидуальные модификаторы характерные именно для этой вещи - увеличиваем минимальную аттаку на 7 , максимальную аттаку на 4 и модификатор крита уменьшаем на 12 и так делаем со всеми перечисленными вещами).
Минус всего этого , в том что нам придётся каждый раз работатьс этой гигантской строчкой....
а также у нас нет уникального id вещи, с помощью которого мы могли бы просто выкинуть вещь или подобрать, нам придётся прикаждом действии с вещью передавать её параметры.
Нус... жду обсуждения всего этого....