18

» WarCraft 3 / Что быстрее, искать индекс структуры через loop или хештаблицей?

Sergarr:
Да, и для какой цели там сверху стоит "exitwhen true"?
Чтобы из loop выйти и не делать лишних "действий"
Просто юнит не может быть одновременно в нескольких regionBase[i]
18

» WarCraft 3 / Не опасная ли идея переделки стандартного заклинания

Чем сложнее модель снаряда - тем больше нагрузки в сумме
Например 100 обыкновенных кирпичей не будут сильно нагружать
А вот к примеру 100 болтов с "электрическим" эффектом ещё и с анимацией, ещё как будут нагружать
18

» WarCraft 3 / Способность

Перед тем как нажать "Проверить карту" - её нужно сохранить, карта должна быть обязательно там где нету русских букв в пути к ней
18

» WarCraft 3 / Триггерный автокаст?

8gabriel8:
Это тот же принцип для второго пункта, мне казалось, что могут быть способы изящнее. Лучше по другим пунктам подскажите.
первый вопрос так и не понял, насчет третьего вопроса:
там весь прикол в ивентах, есть начало когда наводишь на цель, тогда даже анимация не проигрывается и мана не забирается.
Приводит в действие это уже когда ману сняло и проигралась анимация.
Где то был текст на всё это, но я не могу найти.
Ну а далее чекаешь уровень бафа у цели, если он больше 0 - значит хиляешь и удаляешь баф
Хотя возможно это я неправильно понял, можно просто отловить начало каста абилки и восстанавливать ману триггерно.
18

» WarCraft 3 / Триггерный автокаст?

8gabriel8
ну на всякий случай) Я тут нашел свою карту столетней давности (когда я писал на GUI), вот скрин оттуда
Загруженные файлы
18

» WarCraft 3 / Триггерный автокаст?

8gabriel8:
Как, например, отсев произвести?
Вот на jass из ChargeOfDarkness
    private function FindFilter takes nothing returns boolean
        //Условия
        if (IsUnitEnemy( global_caster, GetOwningPlayer(GetFilterUnit()) ) and (GetUnitAbilityLevel( GetFilterUnit(), Marker ) == 0 and IsUnitType( GetFilterUnit(), UNIT_TYPE_STRUCTURE ) == false and IfUnitExist( GetFilterUnit() ) == false) and (IsUnitType( GetFilterUnit(), UNIT_TYPE_ANCIENT ) == false or Ancient_Exception(GetFilterUnit()) ) ) and IsUnitVisible( GetFilterUnit(), GetOwningPlayer(darkness_caster) ) == true then
            if DistanceBetweenUnits( darkness_target, GetFilterUnit() ) < find_distance then
                set find_distance = DistanceBetweenUnits( darkness_target, GetFilterUnit() )
                set foundUnit = GetFilterUnit()
            endif
        endif
        
        return false
    endfunction

    private function Find takes unit caster, unit target returns unit
        //Поиск ближайшей цели
        local group g = GetGroup()
        
        set global_caster   = caster
        set darkness_caster = caster
        set foundUnit       = null
        set find_distance   = 999999
        set darkness_target = target
        call GroupEnumUnitsInRange( g, GetUnitX(target), GetUnitY(target), 4000, Condition(function FindFilter) )
        call RecycleGroup( g )
        
        set g = null
        
        return foundUnit
    endfunction
И где то был скрин как это делается на GUI, ща найду
18

» WarCraft 3 / Триггерный автокаст?

8gabriel8:
UrsaBoss, лучше по вопросам сообрази) Ответы на них мне ещё пригодятся.
все эти вопросы автоматически решаются если написать наработку
18

» WarCraft 3 / Триггерный автокаст?

8gabriel8:
Не только, ещё срабатывает при клике лишённых маны по статуе, а не только при клике статуей по лишённым маны.
нашел одну способность
Это "Восстановить ману" её равкод Amb2
Ошибся, у неё минус - это то что она передает всю свою ману тому кому нужно восстановить ману
18

» WarCraft 3 / Триггерный автокаст?

8gabriel8 т.е просто нужен хил целителей только вместо хп чтобы по мане работал?
18

» WarCraft 3 / Spirit Breaker из DotA со всеми способностями

quq_CCCP:
Берсерк кстати не сочитается с другими берсерками, неважно какой длиннее или кто дает бонусов выше, который был активирован последним тот и будет работать, а в доте есть mask of madness, которая основана как раз на берсерке, собьет... Юзай виндвалк.
а фазы не будет сбивать? Я время входа на -1 поставил и длительность на 0.01
точнее бонус к скорости от фаз
18

» WarCraft 3 / Почему не отсеивается юнит из группы

8gabriel8
я переписал всё на jass - вроде работает как надо
MUI как побочный эффект от хештаблицы и таймера
проверь как работает, а то я сутками не спал
Я там если что поменял Set Life на UnitDamageTarget, чтобы золото капало с убитых гноллов
И если нужно будет поменять способность на другую - то просто в константе passiveAbility поменять равкод
и ещё я там расставил комментарии где можно редактировать волны
Загруженные файлы
18

» WarCraft 3 / Почему не отсеивается юнит из группы

8gabriel8
Где Point - это название точки в редакторе переменных
call RemoveLocation( udg_Point )
18

» WarCraft 3 / Почему не отсеивается юнит из группы

8gabriel8 DoNothing самая бесполезная BJ функция, ну прямо самая самая. Как бы объяснить.
Короче, исходя из названия "Ничего не делать" - тут всё просто, это просто вызов абсолютно пустой функции.
Будет в триггере DoNothing или не будет - без разницы, на действия и всё остальное это никак не появлияет.
А так как вызов любой функции требует затрат производительности, хоть и мизерных, то лучше не использовать DoNothing
18

» WarCraft 3 / Утечка памяти при создании и последующем удалении спец. эффекта.

zontik2012 нет, не является утечкой. Если бы ты крепил эффект к точке, к примеру в позиции юнита, причем не удалял бы эту точку потом - то это была бы утечка
18

» WarCraft 3 / Spirit Breaker из DotA со всеми способностями

quq_CCCP:
В том числе, а еще если жертва убежит, бара как идиот идет догонять и не стопится...
починил с помощью SPELL_ENDCAST
Обновил ресурс
18

» WarCraft 3 / Почему не отсеивается юнит из группы

8gabriel8 если нужно, я могу это всё переписать на jass, заодно и MUI автоматически получится
18

» WarCraft 3 / Почему не отсеивается юнит из группы

Там вместо DestroyGroup нужно GroupClear, т.к при повторном использовании эта наработка пытается добавить юнитов в несуществующие группы.
+сделай одну глобальную точку и ставь перед "Pick every units", там ей дашь позицию юнита, а в самом "Pick every units" удалишь точку.
+никогда не используй DoNothing
function DoNothing takes nothing returns nothing
endfunction
+ и не проще заносить юнитов в 1 группу?
18

» WarCraft 3 / Spirit Breaker из DotA со всеми способностями

quq_CCCP:
Кнопку ауры бы сделал из веера ножей, бара встает и танцует при касте усилялки ауры, что нафиг ненужно
вот только сейчас заметил что она и так сделана на основе веерного броска
quq_CCCP короче, сделал по своему с EmpoweringHaste, взял за основу способность "Берсерк", скопипастил все параметры, длительность на 0.01 и работает, приказ не сбивает, бара не танцует
починил ChargeOfDarkness по той инструкции, теперь можно изучать способность прямо во время разбега.
не совсем понял что с NetherStrike, там просто добавить отмену каста способности если юнит получил стан?
18

» WarCraft 3 / Spirit Breaker из DotA со всеми способностями

quq_CCCP а можно же вместо щита маны сделать вторую пустышку с вечным кд, а чтобы запустить кд - отдать приказ кастовать пустышку без цели?