Добавлен 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
Кроме того, функция StringHash() весьма медленная, лучше использовать GetHandleId() от контекстной сущности.
и потом проверяй его
ну а вообще кламп дело говорит
бд в студию
Ред. avuremybe
Т.е. у меня есть какие-то данные
Как и указал нвц
Ред. avuremybe
Иначе у меня страница магазина будет формироваться туеву хучу времени.
Делай структурами и храни данные в них, это будет и удобнее, и проще.
Кроме того, при заполнении можно создавать каждому магазину/инвентарю свой пул всех доступных предметов и переносить предметы из него, а не копировать.