Добавлен MpW
У меня в карте очень криво работает система, просто замучила и не знаю в чем причина.
Есть пустой магазин. В него можно заложить на продажу кучу предметов (до 12 слотов на каждый тип итема). Когда продаешь два предмета с одинаковым типом, то складываются в стэк, и их становится два. Но когда покупаешь, то в стэке становится меньше на 1. Когда становится в стэке 0, то удаляешь нафиг.
ребят у меня варкрафт что-то криво работает. Делаю на гуи или на jass все верно по логике, а потом запускаю и что-то не работает так как надо.
основные фишки и ошибки:
- когда покупаешь вещь, то в магазине запускается кулдаун (интервал пополнения). Если его в РО поставить на ноль, то работает нормально. Но я использовал хитрость, перед каждой продажей или покупки триггерной коммандой изменяю это. То есть каждый раз добавляю в магазин итем с изменными стэками. (текущий стэк == максимальному стэку), и работает нормально. Однако не все итемы так работают, короче не всегда так работает что-то.
- Когда занятых слотов становится 11, то удаляется абилки. И закладывать в лавку больше нельзя, короче нельзя продать. но если купить итем, то освободится слот. Но бывало, что обратно не добавлялась эта абилка. Все дело в коде. Не знаю по каким-причинам но работает не очень. - баг варкрафта. При добавлении итема в магазин, он может заменить другой итем. Короче продает один итем в слотах магазина, и еще кое-что должно быть 4 итема, когда продаешь, по идее заменяет итем. Но получается так, заменяет не только итем, но итемов становится меньше, становится 3. Короче говоря появляется 1 пустой слот. Чтобы решиить эту проблему нужно запомнить все итемы которые есть в магазине. И самому выдавать. Раньше так делал, но потом возникла кое-какая ошибка и не помог понять. Короче удалил так, а зря
Не смогу объяснить своими словами, потому что что-то не так. Не понимаю, у меня кучу дебагов, а хрень какая-то. Помогите пожалуйста. Три недели кажись не могу норм сделать
Если вначале потыкать, то ничего не заметишь. Но если интенсивно потыкать, то получаются ошибки. Это происходит из-за бага варкрафта, когда закладываешь итем 1, он подменяет итем 2. Итем 2 походу пропадает.
Принятый ответ
Тестил, тестил. Думал найду ошибку. Короче не знаю в чем дело, видимо и в правду баг. Решил по-другому. Ловить поставку, и ловить продажу. То есть ловить то, что пришло, и то, что ушло.
событием - "юнит закладывает в лавку" (EVENT_PLAYER_UNIT_PAWN_ITEM) ловим продажу итемов.
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)
событием - "юнит закладывает из лавки (продает артефакт)" (EVENT_PLAYER_UNIT_SELL_ITEM) ловим покупку итемов
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Решил, я по-своему. Короче, видимо, итем в магазине исчезает при добавлении. Попробовал запоминать все добавленные итемы, и при добавлении я сначала удалю всё в магазине, а потом заново добавлю. Пришлось, еще порядок (номер слотов) запоминать, а то строятся ключи хэша на строгом порядке. Если возьму и заберу итем посередине, придется заново выстраивать порядок.
Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.
Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
не встречался с багами при использовании динамических продаж юнитов. если слотов в магазе нет, а ты пытаешься добавить еще кого-то в продажу, то хз что там произойдет
Отредактирован MpW
ну в этом то и хитрость, когда в лавке 5 стэков, покупаешь и становится 4 стэка и 1 еще в кулдауне. Чтобы этого кулдауна не было, я ему добавлял повторно этот же тип (текущий стэк == максимальный стэк == 4). Никогда проблем не было, но иногда что-то итемы пропадают.
Ну и на том и проверки у меня. Если кол-во слотов больше 11, то значит больше не давать.
Отредактирован MpW
Продаю "сапоги скорости", счетчик становится +7
если было бы известно какому магазину ты продаешь, а так сложно узнать. регулировать поставки итемов в магазин и их продажу.
Отредактирован MpW
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.