rsfghd, ну условие взял же у тебя в коде из твоей карты примера. Гляди:
Если инвертировать условие, то цель та, но тогда рядом стоящие юниты не получают урон. А у тебя на карте не могу проверить, потому что если что-то поменять и пытаться стартануть карту, то редактор сразу выбрасывать кучи ошибок, а жаль, хотелось бы проверить. Ну сейчас отрою xgm'cкий редактор, попробую им.
Блин, слушай, и верно, у тебя тоже тогда рядом стоящие не дамажатся, как от сферы огня, а было бы круто, ну это ничего, достаточно добавить будет после этой строки
if (abilityLevel > 0) then
// Горение
call GroupEnumUnitsInRange(udg_TempGroup, GetUnitX(target), GetUnitY(target), 150.00, null)
только кастера по моему или атакера по твоему, придется все же вынести в глобалку, потому что GetTriggerUnit() мне тут совсем не нравится.
Осталось на вечер самое трудное, добавить еще мощные удары и заставить это сообща работать, по всей видимости будет перебиваться яд. Раз ты сказал, что потребуются разные хэш-таблицы, то нужно будет осознать и сделать работу с двумя таблицами. Хотя хотелось бы конечно через одну, потому как читал в статьях тут, что создание хэш-таблицы дорогое и лучше создавать одну на всю игру в карте.
rsfghd, пока что переписываю без некоторых эффектов для простоты и без мощных ударов. Яд не добавяю в способности в РО, а триггерно добавляю своей той функцией, что скидывал в карте. В общем оно заработало даже, но работает определенно криво, хотя бы потому что, я вывожу при ударах цель и игра выводит не того юнита, которого бьет в данный момент герой, а соседнего. Карту приложил, увидишь. Завтра попробую разобраться, в чем я накосячил и добавить мощные удары. Но все равно, даже так, я уже в восторге от того, что задумка притворяется в жизнь и очень тебе благодарен!
Есть у меня предположение, что триггер NegateDamage, отменяет урон с руки, для того, чтобы потом триггерно продамажить от удара... Это безумие какое то =D
rsfghd, благодарю за пояснения. Так, завтра продолжу, доброй тебе ночи, дружище!
Что за способность 'Bssd', на которую ты проверяешь вначале?
Я не вижу, чтобы где то инициализировалось значение EffectStructKey. Чем я могу это заменить?
Не понимаю назначения начинки триггера NegateDamage.
Переменная r в poisonDamage - это, так сказать, период действия яда, верно? Типо урон от яда может быть нанес 5 раз после удара. Получается, в течении 5-ти секунд еще дамажит.
Пока пора укладываться спать, я более-менее осознал остальной код, пока не заглядывал в 2 нижних триггера, ну так, мельком только, там я так понял красота просто с анимациями и эффектами. Завтра буду пытаться адаптировать под себя и думать, как скрестить со своей способностью.
rsfghd, ну вот, а я думал у тебя объявлена хэш-таблица в глобалках в константах, это как на обычном джассе просто в глобалках создать хэш-таблицу и усе. Понял, значит все сложнее... Попытаюсь понять тогда где какая используется, если не дойду сам, спрошу.
rsfghd, сейчас только добрался снова до кода карты с твоими спеллами для демона. Я начал переписывать твой код на чистый jass, потому как пишу на нем, без всяких дополнительных наворотов. Сложновато конечно, особенно фокусы с получением хэндлов юнитов и сохранение их в хэш-таблицу, до этого во всех примерах я видел только работу с хэндлами таймеров и по ним и велось сохранение и это было просто и понятно. Сейчас гляну твой код, что ты скинул, огромное тебе спасибо, не факт конечно, что за этот час до сна, что решил сесть пораскуривать, разберусь, но если что, еще завтра попробую добить.
Кстати удары громовые, что ты сделал, выглядят впечатляюще. Тоже пригодятся. Благодарю.
rsfghd, благодарю, завтра вечером посижу поразбираюсь, возможно даже пригодится для моей задумки, за реализацию которой я пока боюсь браться, сделать виды стихийных атак и соответственно дамажить кого надо, потому как я переделал способность благословение элуны и у меня маги могут атаковать юнитов с иммунитетом к магии, но при этом наносят 0 урона(всегда бесило, что в варкрафте они просто запретили атаковать и все, в реальной жизни же никто не мешает нам в танк с пистолета стрелять или швыряться горохом в стену, даже не смотря на то, что смысла в этом 0).
rsfghd, имеешь в виду как то отлавливать юнита, которого бьет герой и на него триггерно вешать яд по таймеру? Попробую поразбираться, как можно определить юнита, по которому наносит удары герой...
rsfghd, вот. Там несколько сложнее, чем описано, но не думаю, что это влияет. Способность яда я специально откатил до дефолтных значений, полагая, что испортил все переделыванием под горение, но нет. Оно не работало изначально.
Нашел причину случайно, занимаясь теперь уже заменой моделек некоторых предметов из пака от Sergant1000 на найденные на хайве модели из пака предметов. Это проблема не игры в целом и не архива, а конкретной карты. Чтобы все отображалось как надо, нужно в редакторе у карты по пути Сценарий->Параметры в последнем пункте "Набор" выбрать "Сражение(Последняя версия)".
rsfghd, спасибо, добил реализацию вашего совета, пришлось помучаться с временем каста, сократив его и поиграться с величиной периодичности таймера, но вроде бы получилось более-менее сносно, отмена работает корректно. Так как вопрос многогранный, то трудно выбрать верный ответ, так как и ваши советы и советы Vlod сильно помогли довести до ума спелл. Выберу, пожалуй, ваш ответ, так как он был дан первым и охватил все темы вопроса, не в обиду, товарищу Vlod, его помощь точно также не может быть не оценена по достоинству, так как именно его совет помог сократить количество кода и убрать лишнюю логику в спелле. Теперь мне предстоит научиться работать с дамми-юнитами(снова привет близзам-наркоманам, что мешало просто сделать метод смены высоты созданного в точке эффекта и все¯\_(ツ)_/¯)
Vlod, благодарю, да, нужно будет поизучать тему с даммиками. Я их еще ни разу не использовал. А тут использовать придется однозначно, потому как не дело это, что взрыв воспроизводится на земле почему то, хотя взрывается юнит с измененной высотой, но игру это абсолютно не смущает. К тому же, придется искать модель взрыва без брызг крови, которые ложатся на землю, потому как они тогда горизонтально висят в воздухе и выглядит это уродливо...
rsfghd, я думал плясать от события EVENT_PLAYER_UNIT_SPELL_ENDCAST, но оказалось что оно срабатывает даже при успешном завершении спелла, а не только при отмене. В общем копал не в ту сторону.
Хотя мне казалось логичным, что раз есть 2 разных события EVENT_PLAYER_UNIT_SPELL_FINISH и EVENT_PLAYER_UNIT_SPELL_ENDCAST, то они должны отрабатывать при разных условиях. Но у близзов другая логика)
rsfghd, да, ваш рецепт с таймером на 0 помог. Так же я еще раз теперь перестартовываю таймер, чтобы добиться синхронизации между проигрыванием анимации и поднятием жертвы в воздух. Итого, 3 функции, которые запускают друг друга по истечению таймера, порой мгновенному, рестартуя его... Это работает, однако какое же все же это извращение) Не могу представить, чтобы в каком-нибудь другом яп нужно было стартовать таймер с временем 0, просто, чтобы добиться корректной работы. Остается лишь проблема финальной стадии заклинания, когда жертву разрывает на кусочки и она мгновенно оказывается на земле, есть идея попробовать удалять юнита, запомнив перед этим высоту и точку его нахождения и в этом месте создавать на высоте эффект этих самых разлетающихся кишков...
Ну и написать код на отмену заклинания и на случай оглушения, если только он не входит в случай отмены, это сейчас и пробую реализовать. Сдается мне, что я напрасно привязал заклинание к событию EVENT_PLAYER_UNIT_SPELL_CHANNEL, нужно было использовать все же EVENT_PLAYER_UNIT_SPELL_FINISH...
Vlod, в самом деле, сейчас вчитался еще раз в ваш комментарий и поставил в течение времени - секунду. Анимация стала воспроизводится адекватно, соответственно, код можно будет упростить, исключив функцию проигрывания анимации.
Да, теперь я исключил вовсе проигрывание анимации в коде, анимация воспроизводится юнитом самостоятельно по настройке канала, кода стало меньше, однако привязаться к EVENT_PLAYER_UNIT_SPELL_FINISH не выходит, потому как в таком случае не отлавливается GetSpellTargetUnit(), возвращается null, посему с отменой придется еще покумекать...
С последней фазой тоже пока не выходит, я так понял, что нельзя создать эффект на высоте в старом патче(1.26), пробую создать даммика и над ним создать эффект, работает только если даммик имеет модель, если модель убираешь, эффект не отображается...
rsfghd, ExecuteFunc еще не пробовал ни разу, попробую, благодарю. Как будет возможность вернуться к редактору, проверю ваш вариант. Vlod, спасибо за ваше время. Я ориентировался на огненный столб, у которого время подготовки не 0 и чародей крови воспроизводит анимацию без проблем.
Всем доброго времени суток! Если кто то может взяться за, то буду благодарен, необходимо сделать модель для способности аля Молот Бурь, только с топором этого парня. Топор желательно крутить в полете, на подобие того, как это сделано в дистанционной атаке Рексара, ну если, если с этим топором будет сложно, то хотя бы взять топор Рексара и увеличить его, чтобы был соразмерен топорам этой модели. Спасибо!
Lord_Teo, с кубами нравится головоломка, первую прошел легко, вторую тоже прошел, думал, но забыл, что перегородил кубом проход в комнату, орк то прошел её, а механик не может. Интересно, буду пытаться сначала.
Lord_Teo, вот теперь и я столкнулся с этим багом. В инвентаре у гоблина лежат 2 комплекта деревянных заготовок, но он не крафтит их в качественные. Обе были подняты уже после портала.
Lord_Teo, ладно блин замаскировать рычаг где то среди бочек или еще что, чтобы игрок догадался сломать их и его найти, но е мае, просто невидимый рычаг??? Почему? Потому что блин... Ладно, это уже второй раз, когда я не могу понять такой логики.
Lord_Teo, если ты имеешь в виду, что опять надо взрывчатку, то мешочка с порохом мне больше не попадалось. Я надеялся, что в лавке гоблина будет продаваться, но там тоже нет. Я конкретно встрял, поэтому просто скажи уже.
Ред. Meddin
» WarCraft 3 / Проблема с ядом
Ред. Meddin
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Проблема с ядом
» WarCraft 3 / Нюансы добавления иконок в архив с игрой
Ред. Meddin
» WarCraft 3 / Канал, таймер и анимация. Адская смесь
» WarCraft 3 / Канал, таймер и анимация. Адская смесь
» WarCraft 3 / Канал, таймер и анимация. Адская смесь
Ред. Meddin
» WarCraft 3 / Канал, таймер и анимация. Адская смесь
Ну и написать код на отмену заклинания и на случай оглушения, если только он не входит в случай отмены, это сейчас и пробую реализовать. Сдается мне, что я напрасно привязал заклинание к событию EVENT_PLAYER_UNIT_SPELL_CHANNEL, нужно было использовать все же EVENT_PLAYER_UNIT_SPELL_FINISH...
» WarCraft 3 / Канал, таймер и анимация. Адская смесь
Vlod, спасибо за ваше время. Я ориентировался на огненный столб, у которого время подготовки не 0 и чародей крови воспроизводит анимацию без проблем.
» WarCraft 3 / Не работает модель? - Вам сюда!
» WarCraft 3 / Не работает модель? - Вам сюда!
» WarCraft 3 / Не работает модель? - Вам сюда!
» WarCraft 3 / Иконки на заказ
» WarCraft 3 / Нужна модель? - Вам сюда!
» WarCraft 3 / Замок (The Castle)
» WarCraft 3 / Замок (The Castle)
» WarCraft 3 / Замок (The Castle)
» WarCraft 3 / Замок (The Castle)
» WarCraft 3 / Замок (The Castle)
» WarCraft 3 / Замок (The Castle)