Добавлен avuremybe
БД содержит равкоды юнитов, хранится в хэше.
Какие есть варианты проверить содержится ли уже такое значение в БД, кроме перебора?
Какие есть варианты проверить содержится ли уже такое значение в БД, кроме перебора?
Принятый ответ
avuremybe, как тебе такой вариант?
function HaveItem takes unit shop, integer itemid returns boolean
return LoadBoolean(ht, GetUnitUserData(shop), itemid)
endfunction
function ShopAddItem takes unit shop, integer itemid returns nothing
if not HaveItem(shop, itemid) then
//...
set lastItem = lastItem + 1
call SaveInteger(ht, GetUnitUserData(shop), lastItem, itemid)
call SaveBoolean(ht, GetUnitUserData(shop), itemid, true)
//...
endif
endfunction
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован avuremybe
У меня инвентарь бесконечный.
+ хэштейбл тоже не бесконечный
Хотя скорее 8192, но да не важно
Отредактирован avuremybe
Я понятия не имею, сколько у меня будет предметов, но т.к. карта - рпг, то всякой чепухи типа ингридиентов будет не мало. Поэтому мне нравится идея бесконечного инвентаря.
Отредактирован nvc123
а про слово "бесконечность" вообще лучше забудь
т.к. это абстрактный математический термин придуманный математиками для математиков и не имеющий никакого отношения к данному вопросу
и в программировании и в реальности слово "бесконечность" используется как замена слова "много"
а много это конечное значение
так что все твои аргументы вида "бесконечный инвентарь" полный бред
можно же до 3 поднять
Отредактирован scopterectus
128512 предметов, этого будет более чем достаточно..))юзаем списки и всё
Отредактирован avuremybe
Вместимость инвентаря не ограничивается кол-вом предметов на карте.