У меня некоторые предметы заменяются на другие версии этих предметов при проверке IsUnitType(u, UNIT_TYPE_RANGED_ATTACKER) или наоборот IsUnitType(u, UNIT_TYPE_MELEE_ATTACKER), дается та версия которая должна быть у ближнего или дальнего боя и всё работает хорошо, пока я случайно не обнаружил странный баг. Когда герой покупает орб с коррупцией (или как это там называется, тот орб что броню понижает), он становится одновременно мили и ренджед героем, обе функции возвращают true. Из-за этого происходит бесконечная рекурсия, забирается ренджед предмет, дается милишный, а ты у нас ренжовый, на тебе ренжед вместо мили, получил ренджед? ты мили, на тебе замену на мили версию и так по кругу, пока игра не вылетит через секунду молча. Каким образом оно делает милишного героя дальним боем? Причем де-факто герой и остался ближним и не должен становиться дальним. Почему вампиризм и ледяная атака так не делают? Как с этим бороться?

Принятый ответ

потому что орб заменяет индекс атаки по умолчание стоит 0 как береш орб заменяет на 1 а 1 это который может бить ближный а также бить летаюших дальным рендж
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
23
6 лет назад
0
потому что орб заменяет индекс атаки по умолчание стоит 0 как береш орб заменяет на 1 а 1 это который может бить ближный а также бить летаюших дальным рендж
Принятый ответ
0
32
6 лет назад
Отредактирован quq_CCCP
0
Все орбы предметов включают дальнюю атаку, лечится базой данных - кто есть кто, либо мемхаком.
0
21
6 лет назад
0
сделай бд таких предметов и перед проверкой вынимай их все
после проверки вкладывай обратно
0
26
6 лет назад
0
Drulia_san, имеешь ввиду орбы Сферы Льда и Маски смерти?
Почему вампиризм и ледяная атака так не делают?
Если да, то это интересное наблюдение. Близзард по-своему сделали все способности и запихнули их в редакторе в стандартную форму, потому многие поля не поддаются редактированию, просто способность не предполагает их установки. Так и со Сферой Проклятия, либо ей случайно поставили флаги обеих атак, либо такая особенность способности, что она иначе нормально не работает.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.