Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Способность
Версия Warcraft:
1.26 (default)
Название: Похититель душ
Имя: Анашин
Описание/лор:
Лор
Анашин - один из семи Рыцарей Смерти, служащих повелителю Мёртвых Земель. Благодаря особенностям своих способностей он является лучшим охотником на врагов Повелителя. Даже могущественный противник не сможет скрыться от него. "Ты можешь тренировать тело сколько угодно, но твоя душа останется слабой и жалкой" - последние слова, которые слышат жертвы Анашина.

Способности:

Базовые способности

Нет - [[Похищение душ]]]
Описание
Анашин похищает души убитых живых противников (не больше 20). (!) Задача: после убийства 50 противников Анашин получит способность "Блуждающая душа"
. . .
F - Блуждающая душа
Описание
Душа Анашина отделяется от тела на 5 секунд. При окончании действия способности тело Анашина переносится к его душе. Душа и сам Анашин неуязвимы в этот момент.
Перезарядка 15 секунд

Героические способности

Q - Притягивание Души
Описание
В течении 10 секунд Анашин притягивает к себе указанного врага. Если ему удалось притянуть противника, он уничтожает часть его души и замедляет. Противник восстанавливает целостность души в течении 30 секунд. Чем выше уровень у цели, тем сложнее её притянуть, души усиливают притяжение.
Уровень 1 - 20% замедления. 75 маны, перезарядка 30 секунд
Уровень 2 - 40% замедления. 100 маны, перезарядка 30 секунд
Уровень 3 - 60% замедления. 125 маны, перезарядка 30 секунд
Нельзя повторно применить к воину пока он не восстановил душу.
. . .
W - Обнажение Душ
Описание
Анашин стирает грань между миром мертвых и миром живых в указанной области, отправляя врагов в мир мёртвых, а их души в мир живых на 10 секунд (+1 секунда за душу). Душа, находящаяся в мире живых получает на 50% урона больше. Если уничтожить душу, то воин погибнет.
Уровень 1 - Небольшая область (150 АОЕ). 75 маны, перезарядка 30 секунд
Уровень 2 - Средняя область (225 АОЕ). 100 маны, перезарядка 30 секунд
Уровень 3 - Большая область (300 АОЕ). 125 маны, перезарядка 30 секунд
На душу, находящуюся в мире живых, нельзя использовать способность "Тюрьма душ".
. . .
E - Атака банши
Описание
Анашин создаёт из похищенных душ Банши и отправляет их в атаку на указанного противника. Банши атакуют цель в течении 10 секунд, после чего исчезают.
Уровень 1 - до 2 Банши. 75 маны, перезарядка 30 секунд
Уровень 2 - до 4 Банши. 75 маны, перезарядка 30секунд
Уровень 3 - до 6 Банши. 75 маны, перезарядка 30секунд
. . .
R - Тюрьма Душ
Описание
Анашин создаёт вокруг указаного противника тюрьму, из которой он не может выйти. Тюрьма существует 8 секунд и наносит 400 ед. магического урона (+20 урона за душу), при попытке её покинуть противник возвращается в её центр и получает 100 магического урона (+5 урона за душу).
Пока противник находится в тюрьме к нему нельзя применить способность "Притягивание души".
150 маны, перезарядка 60 секунд

Как импортировать

Выполняем следующие действия по очереди:
[ ] Импортировать модели/иконки и прописать пути
[ ] Скопировать всех нестандартных юнитов
[ ] Скопировать все нестандартные способности
[ ] Скопировать все нестандартные баффы
[ ] Скопировать триггеры, также скопировать код из самого верха.

Послесловие

Способность поддержки союзников
Способность, ослабляющая врага
Пассивная способность
Способность, наносящая урон
Способности "Атака банши" и "Тюрьма душ" не подходят для MUI, чтобы это исправить в верхнем коде карты удаляем глобальные переменные SoulGroup и PrisonGroup и сохраняем на ID юнита группы с такими же названиями.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
3 года назад
0
А к какому это конкурсу?
0
47
3 года назад
0
Bergi_Bear:
к старому, он думал ещё идет
2
37
3 года назад
2
Справедливости ради, сопровождение и движение у зелёных огоньков прикольное.
1
11
3 года назад
1
N7 Molot:
Bergi_Bear:
к старому, он думал ещё идет
Я подумал, что это постоянная рубрика, типо делиться тем, что сделал
1
47
3 года назад
1
ArhiMEN:
было бы забавно)
3
27
3 года назад
Отредактирован rsfghd
3
Я посмотрел карту, мне кажется то, что нельзя притягивать юнита во время тюрьмы душ было лишним, хорошая убийственная комбинация могла бы получится, да и потом, молнии порой криво спавнятся

Если у кого-то будут советы по оптимизации кода, буду рад выслушать.
--->

Если делаешь спеллпак, соизволь закинуть счётчик хэндлов в карту, чтобы проверить свои триггеры на наличие утечек. Я понимаю, он не точен, это само собой, но если что-то без конца растёт он даст понять. Например при касте тюрьмы душ у тебя из 300- хэндлов растёт до 1500+

Да и потом, способ реализации у тебя Jass/vJass, мемхак, объявление нативных функций, глобальные переменные объявляемые в коде и т.д. - это всё фишки вджасса

Если ты закинул мемхак в карту только ради щита, то мог воспользоваться библиотекой Negate Damage library от PT153 (сорян за антирекламу мемхака)
3
11
3 года назад
Отредактирован Konstantin19
3
Плюсы:
  • в целом визуал у скиллов выполнен хорошо
  • проработка героя хорошая
Нейтрально
  • я еще никогда не видел настолько противоречивого кода. Вроде код выполнен нормально, но местами выглядит так как будто сделано на гуи, а потом нажата кнопка - конвертировать в текст и брошено за недостатком времени.
Минусы
  • глобалки можно было бы объявлять в самом триггере через global, и если ты их объявляешь, то не делай имена P и R, серьезно? Такие скилы практически невозможно новичку скопировать себе на карту. Если делаешь скилы для всех, то сделай так что бы это можно было ctr+c ctr+v и изменять только в 2-х строках вначале. К примеру:
  • зачем было приплетать мемхак ради 1ой строчки, не понятно. Да еще тааакой старый, который только на 1.26 работает. Сейчас есть 1.5 от айнрайза, который почти весь работает вплоть до версии 1.28
Вывод:
  • Скилы не рекомендуются для копирования новичками к себе на карту. Нуждаются в сильной доработке
Загруженные файлы
2
27
3 года назад
Отредактирован rsfghd
2
Перейди с точек на координаты, они быстрее работают и их не нужно обнулять в конце кода, раскрывай BJ функции, зажми ctrl и кликни по ним левой кнопкой мыши, вытащи с них ту функцию, что тебе нужна
к примеру ты юзаешь
function CreateNUnitsAtLoc takes integer count, integer unitId, player whichPlayer, location loc, real face returns group
    call GroupClear(bj_lastCreatedGroup)
    loop
        set count = count - 1
        exitwhen count < 0
        call CreateUnitAtLocSaveLast(whichPlayer, unitId, loc, face)
        call GroupAddUnit(bj_lastCreatedGroup, bj_lastCreatedUnit)
    endloop
    return bj_lastCreatedGroup
endfunction
всё что тебе нужно в данном случае оттуда это
set bj_lastCreatedUnit = CreateUnitAtLoc(id, unitid, loc, face)
которую лучше заменить на
native CreateUnit takes player id, integer unitid, real x, real y, real face returns unit

Ну и дальше, твои спеллы не пригодны для муи, их может юзать лишь один юнит на карте по сути, иначе возможна похожая несостыковка

а, сорян, это не в муи дело, это недоработка автора, что если цель в тюрьме то её можно сделать душой и тюрьма поломается и на юнита в тюрьме можно будет юзануть притягивание души

обнулять локальные целочисленные конечно мощно

в таком предложении
можно обойтись без else

В общем дальше мне лень осматривать, ошибки одни и те же по сути, автору советую почитать больше статей по джассу или обучающих гайдов на ютубе и переделать/доработать скиллы, лайк конечно ставлю за труды, но всё же надеюсь что ты накопаешь больше информации о хорошем коде, с Konstantin19 согласен, спеллы пока что не пригодны к импорту в свою карту, однозначно нужно дорабатывать

Справедливости ради, сопровождение и движение у зелёных огоньков прикольное.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.