Вот мы и пришли к тому, что УХ не лучше Пос, а просто иной вариант. Если ты юзаешь поинт для Пос, разница вообще не двигать юнита чисто посом? Поинты то спокойно удаляются, как и этот.
SetUnitPosition работает гораздо медленнее, вот и все что нужно знать.
Руками тоже можно проверить проходимость. А для предотвращения застреваний юнита имхо лучше юзать создание разрушаемого с текстурой пути 1х1, поскольку на примере доты - юниты имеют свойство застревать в ну очень уж кривых местах.
Офк, вариант с 7 раз юзнуть SetUnitX/Y и 1 раз SetUnitPosition никто не отменял для слайда по клиффам.
NekoriDes:
Darknessay, необязательно, тащемта. И я все еще не понял, при чем здесь вообще гуи. Не стоит людей дезинформировать и внушать то, что гуи в чем-то обходит jass, это не так.
Прекратите иметь мой головной мозг, сударь.
>Бросился защищать свой джасс, как собака мать родную.
Джасс - это зачастую мультиюз, на нем не юзают удгшки, а на ГУИ в основном глобалки юзаются. Смысл в том, чтобы точка обновлялась при каждом приказе, а для этого нужно юзать глобальную точку(при мультиюзе будут баги, т.к. юнита будет двигать одновременно ко всем воткнутым точкам). Можно конечно всякие хэши юзать, но в данном случае, глобалка лучше.
Тут есть баг, заключается в столкновениях с препятствиями. А самое интересное то, что, как мне кажется, на гуи это будет работать верно, заменяя точку, а на джассе - нет. Для крипов слишком сложно, но для нескольких персонажей - почему бы и нет, если баг с препятствиями не проблема.
Как бы SetUnitPosition, или как там его, сбивает текущий приказ юнита, в отличии от SetUnitX, SetUnitY. Так что гуи - не вариант.
По теме дуэли:
Во-первых имхо стоит уточнить что (дительность 0.01 сек) = длительность (нормальная), а не длительность (герой).
Во-вторых - метод предотвращения эдакой дуэли без неуязвимости и хайда
под катом
call UnitAddAbility( u, 'Aave' )
call IssueImmediateOrderById( u, OrderStop )//Обязательно. Иначе приказ на движение заставит юнита сперва побегать, а затем применить способность(если наспамить приказов во время движения - юнит забудет про приказ морфа)
call UnitAddAbility( u, 'Abun')
call IssueImmediateOrderById( u, 852531 )//Cast avenger morph ('Aave')
call UnitRemoveAbility( u, 'Abun')
//Удалять способность вроде не надо, т.к. она не постоянная и исчезнет при морфе.
Хотя имхо добавлять лучше заблоченный спеллбук, поскольку 0.01 сек иногда умудряется попасть в кадр как активный скилл(я юзаю 0.02, весьма заметно)
Правда на этом моменте я и остановился не разобравшись. Если добавлять спеллбук и сразу экзекутить - приказ на морф не проходит. Пока забил.
В третьих - у летающей цели в которую морфим изначально надо поставить базовый манапул 99к, иначе на время морфа мана юнита (текущая) будет равна нулю. Как минимум - выглядит упорото. Не изучил до конца влияние нулевого манапула на манопул после второго морфа, т.к. использовал 99к манапула на первом.
В четвертых - с героями разобрались, положим. А если я захочу применить такой костыль к обычному юниту, добавив ему на мгновение инвентарь героя? (долго возиться с этой темой самому, авось ты уже все перепробовал?) Нужно ли, например, менять морф в героя на морф в юнита?
Баг с морфом возможен только для рун или можно обойтись без них? Пробовал удалять скилл через 0.00(что округляется до минимального периода) секунд, но эффект все равно не тот.
IsTriggerWaitOnSleeps - предположу что если в триггере сейчас активен TriggerSleepAction - вернет true
RestTrigger - понятия не имею что делает. Оно не очищает события или действия.
TriggerEvaluate - запускает проверку условия триггера. Вернет true если условие прокнуло.
Ну я как бы и имел ввиду что к одному триггеру относятся несколько событий, лол. Не спорю, такие цифры не реальны, но вдруг кто-то углублялся в эту тему.
событие это 4 байта вроде
50к событий тогда занимают целые 200кб
так что можно особо не волноваться
но вообще если ты удаляешь триггеры значит ты криво написал код
при нормальной архитектуре в этом нету необходимости
Идея наличия триггера на получение урона для каждого юнита не нова. Все юниты, которым не нужен специальный триггер, который бы учитывал их особенности, получают свой дефолтный триггер. Такой триггер, потенциально - сплошная утечка ивентов. Поэтому и интересует.
Хотя меня заинтересовал непосредственно факт того что сохраняет вар3 данные без оставшегося в памяти мусора.
Быть может адекватный мусорщик все-таки есть, но используется лишь когда вару не хватает памяти? Все-таки медленная штука.
Ну, если врубать режим экстрасенса, то ты при объявлении глобалок что-то нехорошее создал. Вроде хештейбла.
Если я не прав - или кидай сабж или я продолжу отгадывать.
Так же советую сделать всех юнитов суммонами, чтобы они не разлагались
call UnitApplayTimedLife( unit, 'BFig', 0.00 ) это существенно снизит нагрузку на движок
darkowlom, вот только восстанавливать её потом как
было бы всё так просто я бы уже давно закрыл вопрос
или удалил его
Вообще - все что нужно, так это переменная с белым мсом юнита и переменная на которую этот мс будет умножаться (1 - процент замедления). В UnitUserData хранить номер юнита в массиве и норм.
» WarCraft 3 / Как превысить порог скорости?
» WarCraft 3 / Как превысить порог скорости?
Офк, вариант с 7 раз юзнуть SetUnitX/Y и 1 раз SetUnitPosition никто не отменял для слайда по клиффам.
» WarCraft 3 / Как превысить порог скорости?
» WarCraft 3 / Как превысить порог скорости?
Отредактирован Diaboliko
» WarCraft 3 / Как превысить порог скорости?
Отредактирован Diaboliko
» WarCraft 3 / Предметы, интересные баги и фитчи!
Во-первых имхо стоит уточнить что (дительность 0.01 сек) = длительность (нормальная), а не длительность (герой).
Во-вторых - метод предотвращения эдакой дуэли без неуязвимости и хайда
Правда на этом моменте я и остановился не разобравшись. Если добавлять спеллбук и сразу экзекутить - приказ на морф не проходит. Пока забил.
В четвертых - с героями разобрались, положим. А если я захочу применить такой костыль к обычному юниту, добавив ему на мгновение инвентарь героя? (долго возиться с этой темой самому, авось ты уже все перепробовал?) Нужно ли, например, менять морф в героя на морф в юнита?
» WarCraft 3 / Предметы, интересные баги и фитчи!
» WarCraft 3 / Как обьединить способность на точку и на юнита
» WarCraft 3 / Как обьединить способность на точку и на юнита
Отредактирован Diaboliko
» WarCraft 3 / Как обьединить способность на точку и на юнита
Просто не ризон открывать редактор чтобы тыкать кнопки в GUI
» Pin's Journal / Может ли лазер расплавить стальные балки? (devlog)
» WarCraft 3 / Малоизвестные функции для типа переменной trigger
RestTrigger - понятия не имею что делает. Оно не очищает события или действия.
TriggerEvaluate - запускает проверку условия триггера. Вернет true если условие прокнуло.
» WarCraft 3 / Освобождается ли память корректно после удаления триггера
» WarCraft 3 / Atama In War версия 2.2d
Отредактирован Diaboliko
» WarCraft 3 / Освобождается ли память корректно после удаления триггера
Быть может адекватный мусорщик все-таки есть, но используется лишь когда вару не хватает памяти? Все-таки медленная штука.
» WarCraft 3 / Освобождается ли память корректно после удаления триггера
Отредактирован Diaboliko
» WarCraft 3 / Fatal Error при загрузке карты?
» WarCraft 3 / Fatal Error при загрузке карты?
Если я не прав - или кидай сабж или я продолжу отгадывать.
» WarCraft 3 / Смена оружия.
» WarCraft 3 / Утечка при вызове функции
» WarCraft 3 / Недоступная книга заклинаний
» WarCraft 3 / Как бороться с утечкой Handle при волнах
» WarCraft 3 / Замедление с малым периодом
» WarCraft 3 / Замедление с малым периодом
» WarCraft 3 / Всплывающий урон.