Предположим у тебя делится налог на 3 игроков. То есть из 10 монет тебе приходит 3, синему и бирюзовому тоже по 3 монеты. 1 теряется. Вопрос, ты хочешь, чтобы в результаты записало 10 монет за эту добычу а не 3, верно? Тому кто добыл, а не кто получил от другого игрока налог.
Все правильно понял?
Далее запускаешь цикл loop и первым действие выбираешь ПЕРВОГО юнита в группе. Тут очень важно слово "первого". Запомним на будущее.
Если юнит не существует, что выбрали, то выход из цикла. То есть если группа пустая, мы не сможем получить первого юнита, и тут мы выйдем.
Делаем какие-то проверки (это не важно) и входим в тело if (и это важно).
Если мы вошли в тело if пройдя проверки, ты удаляешь группу. А что было в 3 действии? Если группа пустая - мы не получаем первого юнита и выходим из цикла. Поэтому у тебя обрабатывался только первый юнит.
Если же условия if не прошли и попали в else, то ты удаляешь юнита из группы. А значит в следующий раз первый юнит будет НОВЫЙ юнит, который раньше был вторым (первого же мы удалили).
А теперь предположим, мы удалим 5 действие, то есть не будем чистить группу. Проверили ПЕРВОГО юнита, он попал под условие, мы задамажили но не удалили его. Далее цикл повторяется, снова выбирает того-же самого ПЕРВОГО юнита, и снова повторяем те-же самые действия и так до бесконечности, ибо из группы мы его не удаляем. Поэтому и зависает, ибо бесконечный цикл у тебя был :)
Поэтому удалять юнита из группы надо ВСЕГДА в конце цикла, чтобы следующий выбор был с новым юнитом а не старым (не важно, прошел он твои условия или нет для действий).
И поэтому чистить группу тоже нельзя во время перебора, ибо мы тогда не чекнем остальных юнитов, что были в группе на этот момент.
В переборах нельзя использовать wait, ибо все эти переменные PickedUnit являются глобальными для всей карты, то есть такая переменная ОДНА на всю карту, и с каждым использованием функции перебора она перезаписывается.
Как ты можешь решить задачу здесь:
1 вариант - подождать изначально 3 сек а потом начать перебор и удалить ядовитое жало (но проблема будет в том, что удалится только у тех, кто остался в этом регионе)
2 вариант - сохрани юнита в переменную, потом подожди 3 сек (после перебора), и по своей переменной удаляй способку.
mistwood, Чел, ты все прочитал, что написали выше и что Joma прикрепил? Он карту прикрепил, которая показывает, что умерший юнит не имеет бафа. Я тоже прикрепил модифицированную его карту с большими проверками, которые тоже доказывают, что бафа нету у умершего юнита.
Joma, я тоже об этом подумал. Но у тебя наработка не совсем правильная, ибо в момент смерти баф еще мог бы быть, чем через секунду когда пропишешь текст)
+ ты не проверил на других юнитах, если раздающий бафы будет жив.
Но все равно при смерти бафа нет, даже если аурник живой рядом и баф перед смертью был.
Подделал твою наработку :D
Ты должен устанавливать ХП в значениях, а пытаешься установить в процентах. (нет конверта у тебя)
А не, функция верная, если не работает - можешь кинуть наработку эту?
По алгоритму вроде нормально, но чтобы понять, что варику не нравится, надо потестить и потыкать эту способку. Мб затуп не в скрине а что-то другое косячно используешь.
Ну например я бы поставил проверку выводом текста в действиях, перед условием и после условия, чтобы проверить, а попадаем ли мы в триггер, и если да, то попадаем ли мы в действия условий.
SсRealm, ну да с ним весело :D
Кстати у способки если ставить спецэффект, то тоже есть анимация уничтожения. Так что триггерный способ добавления эффекта ничем не отличается от способки.
SсRealm, еще раз, опиши задачу, зачем тебе сфера. В чем проблема триггерно давать эффект, сохранить в переменную этот эффект, и удалить его в нужный момент? Почему у тебя не удаляется моментально, что ты для этого делал?
Сфера сама по себе влияет на тип атаки, поэтому лучше использовать другую абилку... тебе надо просто добавить эффект на юнита? Опиши изначальную задачу. А этот костыль явно не тот путь, что тебе нужен.
Эффекты можно давать триггерно.
Ред. konvan5
» WarCraft 3 / Доходы от налогов других игроков не отображаются в рекордах
Все правильно понял?
» WarCraft 3 / MEATT alpha v0.3
» WarCraft 3 / Атака Jass
И поэтому чистить группу тоже нельзя во время перебора, ибо мы тогда не чекнем остальных юнитов, что были в группе на этот момент.
Ред. konvan5
» WarCraft 3 / Атака Jass
» WarCraft 3 / Атака Jass
» WarCraft 3 / Атака Jass
» WarCraft 3 / Dungeon Generator & Stamp
» WarCraft 3 / Ai Icon Pack 3.0
» WarCraft 3 / Не удаляется абилка с выбранного юнита
Ред. konvan5
» WarCraft 3 / Не удаляется абилка с выбранного юнита
1 вариант - подождать изначально 3 сек а потом начать перебор и удалить ядовитое жало (но проблема будет в том, что удалится только у тех, кто остался в этом регионе)
2 вариант - сохрани юнита в переменную, потом подожди 3 сек (после перебора), и по своей переменной удаляй способку.
» WarCraft 3 / Фатальная ошибка у артилерии
» WarCraft 3 / Пак моделей от -Grendel
» Администрация XGM / Починить просмотрщик mdx
» WarCraft 3 / поомогите разобраться с тригером для ауры
» WarCraft 3 / Фатальная ошибка у артилерии
» WarCraft 3 / поомогите разобраться с тригером для ауры
» WarCraft 3 / поомогите разобраться с тригером для ауры
+ ты не проверил на других юнитах, если раздающий бафы будет жив.
Подделал твою наработку :D
Ред. konvan5
» WarCraft 3 / поомогите разобраться с тригером для ауры
А не, функция верная, если не работает - можешь кинуть наработку эту?
По алгоритму вроде нормально, но чтобы понять, что варику не нравится, надо потестить и потыкать эту способку. Мб затуп не в скрине а что-то другое косячно используешь.
» WarCraft 3 / Фатальная ошибка у артилерии
Ред. konvan5
» WarCraft 3 / Фатальная ошибка у артилерии
Кстати у способки если ставить спецэффект, то тоже есть анимация уничтожения. Так что триггерный способ добавления эффекта ничем не отличается от способки.
» WarCraft 3 / Фатальная ошибка у артилерии
Ред. konvan5
» Classic Asset Kit Extention / Мастерская
Ред. konvan5
» WarCraft 3 / Фатальная ошибка у артилерии
Ред. konvan5
» WarCraft 3 / Toxic Weed
Прикольная моделька.
Ред. konvan5
» WarCraft 3 / Фатальная ошибка у артилерии
Эффекты можно давать триггерно.