Цент карты = нет юнита, значит либо нет юнита (ошибка в реализации) либо он умер.
Вейты плз не юзай, себе дороже - такие баги часто и бывают из за неправильного использования ветов + глобальных переменных.
Мб карту в студию, то не видя всей карты нельзя сказать определенно где ошибся, а гадать можно долго...
Altf40160, еще раз повторяю - ГДЕ ГАРАНТИЯ ЧТО ЮНИТ МОЖЕТ ВЫПОЛНИТЬ ПРИКАЗ?
Прошу прощения за капс, но ваш контроль юнитом и триггерный приказ не одно и тоже, как показала практика нельзя надеятся на то что я могу кастануть, а сам он не кастует - увы, но нужно проверять на то что может ли юнит выполнить приказ. Проверки приказов на гуи вроде нет только на jass
if IssueTargetOrderBy( кастер, "chainligthing", цель ) then
call BJDebugMsg("приказ выполнен!")
else
call BJDebugMsg("невозможно выполнить приказ!")
endif
Может быть туча причин почему юнит не кастует скилл, так что внятный дебаг в студию, в момент срабатывания триггера выводите на экран кто кастанул, кто цель, видит ли кастер цель, проходит ли приказ каста.
Это типа какой будет отддан приказ, при таком то действии. Но толку от этого мало, ибо мы не можем менять приказы способностям, редактирование тех полей ничего не дает.
Приказ можно изменить только у канала и еще пары абилок, так что не обращай внимание.
Создаешь группу
Выбираешь всех юнитов на карте и добавляешь в эту группу
Выбираешь всех в группе и добавляешь в триггер Damage Event ивент "выбранный юнит получает урон"
Создаешь триггер с событием "юнит входит в зону игровой карты"
-Если юнит не в группе
-Добавить юнита в группу
-Добавить в Damage Event ивент "триггеринг юнит получает урон"
В самом демедж ивенте делай что тебе вздумается. Для того, чтобы отличить атаку с руки от урона от способности, просто кастуй способности через даммиков(если это триггерные спеллы, то трудностей не возникнет). Чтобы отличить ближника от дальника, дай тем или иным какую то пустышку на основе абилок предметов и сверяй уровень этой способности у юнита(если он равен 0 - значит у него ее нет)
Достаточно добавить событие урона на того, на кого ты замахнулся и ждать урона + поставить таймер на случай промаха.
Отличить физический урон с атаки от прочих довольно сложно без мемхака (там тоже не в 3 строчки), но есть фишка с рунными браслетами которая описывалась не раз, гуглите системы отлова физического урона.
Что за хрень? Фильтр всегда оформляется отдельной функцией, без вашего Г
Функции нужны не ваша строчка а code.
Тип code может быть только function ссылка на кастом функцию объявленную выше в коде.
Я знаю, я об этом и спрашивал, а в скобки условие я вставил уже отчаявшись)
Ну ты jass API то хоть смотрел?
Функция Condition() просит тип "code" и примет только "code".
цитата
globals
unit bj_lastFilterUnit = null
boolexpr OnlyEnemyOrgAlive = null
endglobals
function OnlyEnemyOrganicAlive_Filter takes nothing returns boolean
set bj_lastFilterUnit = GetFilterUnit()
return GetUnitState( bj_lastFilterUnit, UNIT_STATE_LIFE ) > 0.405 and IsUnitEnemy( bj_lastFilterUnit, bj_groupEnumOwningPlayer ) and not IsUnitType( bj_lastFilterUnit, UNIT_TYPE_STRUCTURE )
endfunction
// При инициализации
***
set OnlyEnemyOrgAlive = Condition( function OnlyEnemyOrganicAlive_Filter )
***
// При переборе
set bj_groupEnumOwningPlayer = GetOwningPlayer( GetSpellAbilityUnit() ) // любой нужный тебе игрок, чтобы определи кто ему враг.
call GroupEnumUnitsInRange(g,X,Y,100, OnlyEnemyOrgAlive) //х и у - координаты
call ForGroup( g, function A ) // фунция A твоя функция где ты будешь совершать действия с юнитами в группе, передавать туда значения можно глобалками.
Москиты ни поподают в группу, GroupEnumUnitsInRange и прочее не пикает москитов, вообще никак... Москиты не взаимодействуют со скиллами и прочим, на них реагируют только события входа\выхода в зону или к юниту, а так же при переборе всех юнитов игрока GroupEnumUnitsOfPlayer, все остальное что ищет юнитов на москитов не реагирует...
2 пункта от GF RaiseD: 2.2 (троллинг) Добрее быть надо
Массивы работают нормально, у вас где то ошибка.
Тем более ваш скриншот не очем не говорит, где проверка что цель существует и даммик может выполнить приказ? Он может банально не видеть цели, у цели может быть иммунитет к магии или инвиз.
Что за хрень? Фильтр всегда оформляется отдельной функцией, без вашего Г
Функции нужны не ваша строчка а code.
Тип code может быть только function ссылка на кастом функцию объявленную выше в коде.
что мешает юзнуть берсерк, манащит, канал, да хоть виндвалк?
Мешает то, что берсерк и виндвалк уже использованы, переключаемые абилки - хурма, а канал не моментальный.
Ты станишь юнита, какая тебе разница?
Канал пойдет с тем же успехом, юнит его кастанет в любом случае.
Переключаемые абилки работают нормально, если уметь немного искать и читать, как их юзать в качестве простых есть инфа в статьях на форуме.
Еще всякие вееры ножей, не сбивают приказ идти куда либо. Юзай его в качестве основы.
Настройки стана - относится к герою, треб. уровень 2 и выше, доп цели, уязвимые\неуязвимые.
Божественный щит лучше не юзать как основу, что мешает юзнуть берсерк, манащит, канал, да хоть виндвалк?
Станить можно и руной и даммиком,
Просто не морочь себе голову и юзай стандартную систему сборки предметов, на сайте их не одна, те что на vjass по удобнее в плане настройки.
Так же могу дать другие наработки на тему предметов.
Там и защиты то никакой нету, деоптимизатором прошёлся да и все, код редактируешь одтельно и вставляешь в уже подготовленную карту.
Вот опен карта, там все изи...
Если бы было изи, я бы здесь не писал) депротектор не помогает. Можно поподробнее?
Как это не помогает? Руки из не того места вытащите сударь, я опен карту кинул, из неё код удали, все имена перепеши, сохрани, код из оригинала запихай mpq редактором и играй на здоровье в русскую версию.
DracoL1ch, а при деформации 0 точно не будет лага? Просто казалось, что даже при нуле будет, но мб ошибаюсь, пробовалось очень давно, ну в любом случае потом проверю, спс
Будет, как же не будет.
Пробуй паузой, но нужно обязательно заносить всех запауженных в группу и создавать триггер который будет следить за смертями запауженных, перед паузой нужно будет снимать все сны и желательно всякие дизейблы (станы, циклоны, сетки).
При смерти юнита в паузе, мгновенно снимаем с него паузу.
Там и защиты то никакой нету, деоптимизатором прошёлся да и все, код редактируешь одтельно и вставляешь в уже подготовленную карту.
Вот опен карта, там все изи...
Ландшафт считается плохим если сделан хреново, а кол-во импорта на этот показатель никак не влияет, не нужно возлагать больших надежд на это, посмотрите аниме карты с их супер моделями и Funny Bunny Egg Hunt, а затем скажите что вам больше понравилось в визуальном плане?
Нужно найти равновесие, чтобы ланд смотрелся уместно и красиво.
Переодик таймер не? Он вызывает одну и ту же функцию где ты ветвлением делаешь все что заблагорассудится...
Да и довольно странная организация кода, ии можно реализовать и попроще без этих таймеров.
Не лучше, лимит операций в который врезалесь не раз такие картоделы, так что лучше не надо, если вы не будите 100% уверены что в групу не попадет слишком много юнитов, да и действия будут примитивными (нанести 100 урона).
Насколько помню мемхак позволяет прередавать аргументы в каллбеки, но это походу не быстро да и не обязательно (используется в основном для работы с памятью) в спеллах, тупо передаем аргументы глобалками, или функциями типа GetTriggerUnit(), GetExpiredTimer() (forgroup наследует параметры потока, т.е кто был GetTriggerUnit() и прчее, но не должно быть вейтов) и так далее.
» WarCraft 3 / Коректно ли работает массив юнитов?
Вейты плз не юзай, себе дороже - такие баги часто и бывают из за неправильного использования ветов + глобальных переменных.
Мб карту в студию, то не видя всей карты нельзя сказать определенно где ошибся, а гадать можно долго...
» WarCraft 3 / Коректно ли работает массив юнитов?
Прошу прощения за капс, но ваш контроль юнитом и триггерный приказ не одно и тоже, как показала практика нельзя надеятся на то что я могу кастануть, а сам он не кастует - увы, но нужно проверять на то что может ли юнит выполнить приказ. Проверки приказов на гуи вроде нет только на jass
» WarCraft 3 / Фильтр, еще раз
» WarCraft 3 / Для чего нужны эти строки?
Приказ можно изменить только у канала и еще пары абилок, так что не обращай внимание.
» WarCraft 3 / Как определить момент атаки и урона у дальнобойных юнитов
Отличить физический урон с атаки от прочих довольно сложно без мемхака (там тоже не в 3 строчки), но есть фишка с рунными браслетами которая описывалась не раз, гуглите системы отлова физического урона.
Ред. Raised
» WarCraft 3 / Фильтр, еще раз
Функция Condition() просит тип "code" и примет только "code".
» WarCraft 3 / Коректно ли работает массив юнитов?
Тем более ваш скриншот не очем не говорит, где проверка что цель существует и даммик может выполнить приказ? Он может банально не видеть цели, у цели может быть иммунитет к магии или инвиз.
» WarCraft 3 / Фильтр, еще раз
Функции нужны не ваша строчка а code.
Тип code может быть только function ссылка на кастом функцию объявленную выше в коде.
» WarCraft 3 / Как снять бафф Божественного Щита \ Как застанить неуязвимого
Канал пойдет с тем же успехом, юнит его кастанет в любом случае.
Переключаемые абилки работают нормально, если уметь немного искать и читать, как их юзать в качестве простых есть инфа в статьях на форуме.
Еще всякие вееры ножей, не сбивают приказ идти куда либо. Юзай его в качестве основы.
» WarCraft 3 / Прозрачность декораций
» WarCraft 3 / Как снять бафф Божественного Щита \ Как застанить неуязвимого
Божественный щит лучше не юзать как основу, что мешает юзнуть берсерк, манащит, канал, да хоть виндвалк?
Станить можно и руной и даммиком,
» WarCraft 3 / Сварка предметов при использовании рун пустышек
Так же могу дать другие наработки на тему предметов.
» WarCraft 3 / Независимость маны
» WarCraft 3 / Редактирование имен войск в защищенной карте
» WarCraft 3 / Редактирование имен войск в защищенной карте
После сохранения код будет не тот уже.
» WarCraft 3 / Редактирование имен войск в защищенной карте
» WarCraft 3 / Редактирование имен войск в защищенной карте
» WarCraft 3 / Массовый временный таймстоп для всех в игре, кроме кастера
Пробуй паузой, но нужно обязательно заносить всех запауженных в группу и создавать триггер который будет следить за смертями запауженных, перед паузой нужно будет снимать все сны и желательно всякие дизейблы (станы, циклоны, сетки).
При смерти юнита в паузе, мгновенно снимаем с него паузу.
» WarCraft 3 / Редактирование имен войск в защищенной карте
Вот опен карта, там все изи...
» WarCraft 3 / Вопрос к ландшафтерам
Нужно найти равновесие, чтобы ланд смотрелся уместно и красиво.
» WarCraft 3 / Forward декларация функции в Jass
Да и довольно странная организация кода, ии можно реализовать и попроще без этих таймеров.
» WarCraft 3 / call ForGroup()
Насколько помню мемхак позволяет прередавать аргументы в каллбеки, но это походу не быстро да и не обязательно (используется в основном для работы с памятью) в спеллах, тупо передаем аргументы глобалками, или функциями типа GetTriggerUnit(), GetExpiredTimer() (forgroup наследует параметры потока, т.е кто был GetTriggerUnit() и прчее, но не должно быть вейтов) и так далее.
» WarCraft 3 / Скилл прыжок