Добавлен 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
Иначе у меня страница магазина будет формироваться туеву хучу времени.
Делай структурами и храни данные в них, это будет и удобнее, и проще.
Кроме того, при заполнении можно создавать каждому магазину/инвентарю свой пул всех доступных предметов и переносить предметы из него, а не копировать.
Отредактирован avuremybe
Там же parentKey - GetUnitUserData().
А чем удобнее и проще то?
То есть единственное преимущество структуры над хэш-таблицей - это разница в скорости обращения к глобалке и к хэшу. И на сколько я знаю, она не велика.
Циклом легче подбирать если такого есть хеша счетчик
Подбор цико вот как выглядит...
Отредактирован Ige
Ige, а у меня в примерах не то же самое?
У тебя в примере в таблицу сохраняется только код предмета
Отредактирован avuremybe
Проморгал, что ты в качестве childKey использовал ID предмета.
Действительно, я могу на этой основе построить решение моей проблемы.
Спасибо!