Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
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
48
3 года назад
0
Bergi_Bear:
к старому, он думал ещё идет
2
37
3 года назад
2
Справедливости ради, сопровождение и движение у зелёных огоньков прикольное.
1
11
3 года назад
1
N7 Molot:
Bergi_Bear:
к старому, он думал ещё идет
Я подумал, что это постоянная рубрика, типо делиться тем, что сделал
1
48
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 согласен, спеллы пока что не пригодны к импорту в свою карту, однозначно нужно дорабатывать

Справедливости ради, сопровождение и движение у зелёных огоньков прикольное.
0
11
3 года назад
0
Буду исправлять

зачем было приплетать мемхак ради 1ой строчки, не понятно. Да еще тааакой старый, который только на 1.26 работает. Сейчас есть 1.5 от айнрайза
Можно на него, пожалуйста, ссылку, я добавил тот МемХак который нашёл из-за того, что я планировал на эту карту в дальнейшем добавлять героев, которых придумаю, и заранее к ним добавил его. Да и интересно, что с ним можно сделать.

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

Перейди с точек на координаты
Имеется ввиду Х и У позиция?
1
27
3 года назад
Отредактирован rsfghd
1
Я не понял что имеется ввиду, можно поподробнее, пожалуйста?
видишь у меня на скрине в правом верхнем углу счётчик? это он (кэп)
Имеется ввиду Х и У позиция?
да

тут есть счётчик хэндлов, если не пользуешься сджассом оберни глобалку в globals..endglobals и можешь закидывать к себе в карту либу

счётчик хэндлов поможет определить норм ли всё со скиллами, а именно смотрит растёт ли кол-во хэндлов, если после каста их кол-во не уменьшается - значит это утечки, чем больше утечек тем хуже спелл, если их кол-во достигнет критической отметки - вар крашнет
хэндлы это группы, таймера, юниты, точки, эффекты, молнии, деревья те же на карте, короче вот: xgm.guru/p/wc3/optimisations
2
18
3 года назад
2
Ребята, такая обширная оценка именно по коду мне кажется немного не справедлива по отношению к другим участникам конкурса
0
32
3 года назад
0
Прошу оценит работы победителей, особенно 2 место
шучу, не надо, это всё уже устарело, но согласен с Влодом
2
11
3 года назад
2
Bergi_Bear:
Прошу оценит работы победителей, особенно 2 место
шучу, не надо, это всё уже устарело, но согласен с Влодом
А подобные конкурсы ещё планируются в ближайшее время?
0
27
3 года назад
0
Vlod, это ради какого-то конкурса? Тю, я даже не знал, сам бы хотел поучаствовать
2
32
3 года назад
2
А подобные конкурсы ещё планируются в ближайшее время?
Скорее всего нет, надо чтобы комьюнити изменило своё отношение к варкрафту, чтобы что-то подобное проводить, а этого никогда не произойдёт
0
11
3 года назад
0
Bergi_Bear:
А подобные конкурсы ещё планируются в ближайшее время?
Скорее всего нет, надо чтобы комьюнити изменило своё отношение к варкрафту, чтобы что-то подобное проводить, а этого никогда не произойдёт
Не понял, а что с отношением?
2
32
3 года назад
Отредактирован Берги
2
Есть 2 стула лагеря...
Одни не воспринимают рефордж как игру, потому что они слепые хейтеры без своего мнения, или бомжи с пк из 2005, у которых даже 1.26 лагает, не говоря о рефордже.
А есть другие, кто не воспринимает ни графику 1.26, ни ОСОБЕННО языки тех времён + их диалекты, а конкретно жас и всё что с ним связано (это про меня).
А первых примерно 90% процентов, ибо если у них комп начнёт тянуть рефордж, они сразу уйдут из варкрафта играть в ААА игры..
А должно быть совершенно иначе, мы должны быть полноценным комьюнити и развивать нашу любимую игру на любом патче. Но оценка на метакритике и отсутствие своего мнения говорит об обратном.
Ещё раз напомню, в конкурсе карт по конкурсу героев, посвященном рефорджу, 1 и 2 место заняли карты сделанные на 1.26 патче, одна на гуи, другая на джасс. Не было судей, а лица из комьюнити даже не были замотивированы призовым фондом, считая конкурс зашкварным в зашкварной игре. Это полнейший провал... кто-то хочет повторения чего-то подобного?
0
27
3 года назад
0
кто-то хочет повторения чего-то подобного?
если повторение подразумевается под всей этой дичью выше - нет, а вот просто посоревноваться за симпатию зрителей у кого герой прикольнее получился в плане скиллов - хочется, пускай даже без призового фонда, хотя бы очки опыта или значок какой-нибудь в статус, лол)
0
11
3 года назад
0
rsfghd:
кто-то хочет повторения чего-то подобного?
если повторение подразумевается под всей этой дичью выше - нет, а вот просто посоревноваться за симпатию зрителей у кого герой прикольнее получился в плане скиллов - хочется, пускай даже без призового фонда, хотя бы очки опыта или значок какой-нибудь в статус, лол)
Полностью согласен с тобой.
0
11
3 года назад
0
Обновление:
Убраны способности "Ярость мёртвых" и "Освобождение душ".
Способность "Похищение душ" доступна изначально.
Добавлены способности "Блуждающая душа" и "Атака банши".
Код более оптимизирован.
1
27
3 года назад
Отредактирован rsfghd
1
ArhiMEN, первая и третья абилка с одинаковыми названиями, а души он может призвать ещё до накопления 6 душ (вероятно кривое описание и должно быть он призывает не больше 6 накопленных душ)
дальше, порадовало добавление комбинации с тюрьмой душ и притягиванием, однако есть недоработка, притягивание ты сбрасываешь если Анашин сдвинется с места, вот только если к нему подбежит противник, а он будет притягивать кого-то - он пойдёт атаковать противника а связь не разорвётся

Утечек стало намного меньше, это здорово, но ты всё равно продолжаешь юзать BJ функции и локации, которые порой не удаляешь, как со спавном текстага, кста, насчёт него, зачем ты юзаешь бж функцию получения текстага если можно непосредственно к глобалке обратиться? и вообще можно даже не объявлять переменную Tekst
--->

А если вообще по красоте, создание текстага должно так выглядеть
0
11
3 года назад
0
rsfghd:
ArhiMEN, первая и третья абилка с одинаковыми названиями, а души он может призвать ещё до накопления 6 душ (вероятно кривое описание и должно быть он призывает не больше 6 накопленных душ)
дальше, порадовало добавление комбинации с тюрьмой душ и притягиванием, однако есть недоработка, притягивание ты сбрасываешь если Анашин сдвинется с места, вот только если к нему подбежит противник, а он будет притягивать кого-то - он пойдёт атаковать противника а связь не разорвётся

Утечек стало намного меньше, это здорово, но ты всё равно продолжаешь юзать BJ функции и локации, которые порой не удаляешь, как со спавном текстага, кста, насчёт него, зачем ты юзаешь бж функцию получения текстага если можно непосредственно к глобалке обратиться? и вообще можно даже не объявлять переменную Tekst
--->
Я знаю про этот баг с притягиванием, но я пока не придумал, как его решить, кроме того, что указать в способности "Следовать" 10 секунд, но тогда её нельзя будет отменить.
А с плавающим текстом я не разобрался, пытался сразу с нативками сделать, но у меня текст, тогда не появлялся вовсе.

А описание банши намного кривое, я имел ввиду, что не больше 2-6 банши можно сделать из душ.
0
27
3 года назад
Отредактирован rsfghd
0
ArhiMEN, помимо приказов желательно проверять разницу координат точек (сохраняемая и текущая), если разница больше 0 значит юнит сместился и соответственно прервать каст, но я бы на твоём месте просто выдал ему абилку 'Abun' пока он кастует спелл, а по завершении - удалял бы
0
11
3 года назад
Отредактирован ArhiMEN
0
А если вообще по красоте, создание текстага должно так выглядеть
Не работатет
1
27
3 года назад
1
хватит обнулять локальные целочисленные и реальные, оно не имеет смысла от слова совсем, проверь пожалуйста спелл SoulAttraction, у тебя создаётся таймер вначале, и если на цели не будет 'B000', то отменить каст абилки, а таймер удалить, если никаких действий больше не будет с ним? Утечка
Чтобы оставить комментарий, пожалуйста, войдите на сайт.