Алгоритмы, Наработки и Способности
Способ реализации:
Lua
Тип:
Наработка
Версия Warcraft:
1.32+
Герой создан в рамках Конкурса героев
Скачать демонстрационную карту
Напишите -test, чтобы пропустить введение и получить плюшки. Тестировать рекомендую в HD режиме.
Осталось 0 дней (100%) - до завершения конкурса
5 / 5 (100%) - готовность способностей

Концепт персонажа

Изначально концепт героя был придуман 6 лет назад для карты PDArena, которую делал легендарный в узких кругах YellowStar (по крайне мере говорил, что это он) для не менее легендарного сообщества продоты.
Легенды гласят, что темные тролли были неповоротливыми и очень жестокими, бросались в атаку без каких-либо сомнений. Но однажды некоторые племена по наставлению Элуны стали жить у берегов Колодца Вечности. Впоследствии они превратились в Ночных Эльфов, черпая бесконечную и опасную силу из глубин мироздания. Сегодня темных осталось так мало, что их существование считается сомнительным...

Ментальное истощение / Mental Erosion

Герой рассекает физические тела группы противников, оголяя их ментальную оболочку. Цели теряют способность атаковать, но могут применять заклинания. Физические атаки не наносят вреда таким целям, но магические атаки и заклинания наносят больше урона на 30/35/40/45/50%.
анимация
эффект от способности "Пожиратель душ"
После смерти героя на ближайших врагов накладывается эффект "Ментального истощения" текущего уровня.
Радиус: 200/225/250/275/300 (от героя).
(на гифке радиус больше для демонстрации)
подробное описание
Длительность: 4/6/8/10/12 секунд.
Радиус: 125/150/175/200/225 ед.
Мана: 75/90/105/120/135 ед.
Перезарядка: 16/15/14/13/12 секунд.
Дальность применения: 600 ед.
  • возможность атаковать цели остается для юнитов с любым типом урона
  • нельзя наложить на цели, на которых применены заклинания «Изгнание», «Астральный облик» или «Фазовый сдвиг»
  • увеличение урона не работает для способностей с эффектом лечения
  • эффект не работает на зданиях и механических юнитах

Обжигающие цепи / Burning Chains

Обездвиживает указанного врага магическими цепями и перекачивает вам 25/30/35/40/45 ед. маны в секунду. Перекачка от цели под эффектом "Ментального истощения" дополнительно отнимает у нее 5 ед. маны в секунду.
анимация
эффект от способности "Пожиратель душ"
Одна из душ вселяется во врага, позволяя видеть его глазами. Душа умирает, а эффект продолжается после "Обжигающих цепей".
Продолжительность: 15/20/25/30/35 секунд.
анимация
подробное описание
Длительность: 4/5/6/7/8 секунд.
Мана: 25/50/75/100/125 ед.
Перезарядка: 12/11/10/9/8 секунд.
Дальность применения: 600 ед.
  • эффект не работает на зданиях и механических юнитах
  • перекачка маны прерывается, если отойти от цели на расстояние более 650 ед.
  • воздушные юниты становятся доступными для атаки наземными

Извержение / Ejection

Герой извергает потоки энергии, каждый из которых наносит одному случайному врагу 45/60/75/90/105 урона. Максимальное число целей: 3.
анимация
эффект от способности "Пожиратель душ"
Каждая душа выпускает один снаряд "Извержения" в случайную цель с уроном 30/35/40/45/50. После этого душа умирает.
Радиус: как у способности (от героя).
Тип урона: магический.
анимация
подробное описание
Радиус: 400/450/500/550/600 (от героя).
Мана: 100/125/150/175/200 ед.
Перезарядка: 20/18/16/14/12 секунд.
  • эффект не работает на зданиях и механических юнитах
  • целью может быть один и тот же юнит несколько раз подряд

Истинная форма / True Shape

Герой отбрасывает физическое тело и принимает свой настоящий облик. Во время действия тип атаки меняется на атаку хаоса, а перезарядка остальных способностей сокращается на 5/6/7 секунд. Захваченные души переходят в материальный мир и не могут уйти в другой.
анимация
эффект от способности "Пожиратель душ"
Души переполняются гневом и атакуют цель, которую атакует ваш герой.
Урон: 2/4/6/8/10 ед.
Радиус: как у героя.
Тип урона: магический.
  • атака происходит в момент нанесения врагу урона
анимация
подробное описание
Длительность: 18/21/25 секунд.
Мана: 150/200/250 ед.
Перезарядка: 180/195/210 секунд.
  • нельзя отменить
  • в этом режиме способности "Другой мир" и "Материальный мир" недоступны

Пожиратель душ / Soulflayer

Герой высасывает энергию убитых врагов. Каждая поглощенная душа увеличивает интеллект на 1/2/3/4/5 ед. Максимальное количество душ: 5. При смерти героя все души безвозвратно исчезают. Поглощенные души летают над героем и влияют на эффекты его способностей в зависимости от уровня "Пожирателя душ".
анимация
подробное описание
  • эффект не работает на нежити, зданиях, призванных и механических юнитах

Другой мир / Материальный мир

Other World / Другой мир
Порабощенные души переходят в другое измерение и становятся невидимыми для глаз врагов. В этом режиме все дополнительные эффекты способностей не работают.
Material World / Материальный мир
Порабощенные души возвращаются в наш мир и становятся видимыми для глаз врагов. В этом режиме все дополнительные эффекты способностей снова работают.
анимация
подробное описание
Длительность: бесконечно.
Перезарядка: нет.
Мана: нет.

Импорт

  1. Переключить карту в режим Lua
Если вы уже пишите на Lua и хукнули функцию InitGlobalsOrigin() в нужном вам месте
do
	-- не забудьте закоммментировать хук функции InitGlobalsOrigin() в самом начале кода наработки
	-- вставляйте код героя после вашего хука объявления глобалок карты
	-- local InitGlobalsOrigin = InitGlobals
	-- function InitGlobals()
		-- InitGlobalsOrigin()
		local status, err = pcall(function() -- check errors
			-- code
		end
	-- end
end
  1. Импортировать юнитов, способности и баффы:
  1. Импортировать необходимые модели и иконки. Можно скачать импорт и переместить содержимое в архив вашей карты с помощью MPQ-редактора или в режиме папки.
  1. Скачайте скрипт карты и скопируйте код в любой пустой блок custom scripts или в нестандартный код карты.

Кастомизация и особенности

  • Если нужно больше одного Заклинателя Маны:
Инструкция
-- найдите это место в коде карты
-- Caster of Mana Heroes
local hero_1 = FourCC('Tcom')
-- раскомментируйте эту строку и измените Abcd на id вашего героя (посмотреть id можно в редакторе, если нажать Ctrl + D)
-- раскомментировать - это убрать два дефиса перед строкой
-- аналогично можно добавить сколько угодно героев
-- local hero_2 = FourCC('Abcd') -- your hero id

-- Spell Stats
-- Mental Erosion
local dmg_inc = {
	[1] = 1.30,
	[2] = 1.35,
	[3] = 1.40,
	[4] = 1.45,
	[5] = 1.50
}	
local hero_table = {
	-- это герой с id Tcom
	-- скопируйте переменные внутри массива [hero_1] и вставьте их в массив вашего героя, например, в [hero_2]
	[hero_1] = { 
		-- копировать от этого места
		-- Mental Erosion
		...
		-- Burning Chains
		...
		-- Ejection
		...
		-- True Shape
		...
		-- Soulflayer
		...
		-- до этого
	}
	-- [hero_2] = {
		-- вставьте сюда аналогичные переменные, как в массиве [hero_1]
		-- можно изменить значение переменных для другого героя по вашему желанию
	--},
	-- [hero_3] = {
		-- не забудьте раскомментировать строки, если добавляете еще одного героя
		-- и поставить запятые после закрытия массивов, если после переменной идет еще одна
	--}
}
end
Пример, где добавлен один дополнительный герой
local hero_1 = FourCC('Tcom')
local hero_2 = FourCC('Qwer')

-- Spell Stats
-- Mental Erosion
local dmg_inc = {
	[1] = 1.30,
	[2] = 1.35,
	[3] = 1.40,
	[4] = 1.45,
	[5] = 1.50
}	
local hero_table = {
	[hero_1] = {
		-- Mental Erosion
		me_lvl = 0,
		me_range = {
			[1] = 200.0,
			[2] = 25.0
		},
		-- Burning Chains
		bc_timeout_drain = 1.0,
		bc_mana_drain = {
			[1] = 25.0,
			[2] = 30.0,
			[3] = 35.0,
			[4] = 40.0,
			[5] = 45.0
		},
		bc_lightnings = {},
		bc_timers_drain = {},
		bc_add_mana = {
			[1] = 5.0,
			[2] = 5.0,
			[3] = 5.0,
			[4] = 5.0,
			[5] = 5.0
		},
		-- Ejection
		ej_max_targets = {
			[1] = 3,
			[2] = 3,
			[3] = 3,
			[4] = 3,
			[5] = 3
		},
		-- True Shape
		-- ts_lvl = 0,
		ts_cooldown_dec = {
			[1] = 5.0,
			[2] = 6.0,
			[3] = 7.0
		},
		-- Soulflayer
		sf_lvl = 0,
		sf_max_souls = {
			[1] = 5,
			[2] = 5,
			[3] = 5,
			[4] = 5,
			[5] = 5
		},
		sf_int_inc = {
			[1] = 1,
			[2] = 2,
			[3] = 3,
			[4] = 4,
			[5] = 5
		},
		sf_state = 0,
		sf_units = {},
		sf_move_timers = {},
		sf_trigger_attack = nil
	},
	[hero_2] = {
		-- Mental Erosion
		me_lvl = 0,
		me_range = {
			[1] = 100.0,
			[2] = 50.0
		},
		-- Burning Chains
		bc_timeout_drain = 1.0,
		bc_mana_drain = {
			[1] = 99.0,
			[2] = 999.0,
			[3] = 9999.0,
			[4] = 99999.0,
			[5] = 999999.0
		},
		bc_lightnings = {},
		bc_timers_drain = {},
		bc_add_mana = {
			[1] = 10.0,
			[2] = 50.0,
			[3] = 100.0,
			[4] = 500.0,
			[5] = 1000.0
		},
		-- Ejection
		ej_max_targets = {
			[1] = 1,
			[2] = 5,
			[3] = 8,
			[4] = 10,
			[5] = 33
		},
		-- True Shape
		-- ts_lvl = 0,
		ts_cooldown_dec = {
			[1] = 5.0,
			[2] = 15.0,
			[3] = 20.0
		},
		-- Soulflayer
		sf_lvl = 0,
		sf_max_souls = {
			[1] = 5,
			[2] = 9,
			[3] = 10,
			[4] = 15,
			[5] = 25
		},
		sf_int_inc = {
			[1] = 21,
			[2] = 22,
			[3] = 23,
			[4] = 24,
			[5] = 25
		},
		sf_state = 0,
		sf_units = {},
		sf_move_timers = {},
		sf_trigger_attack = nil
	}
}
  • В наработке используются только локальные переменные и функции. Если вам нужно использовать какую-то функцию из разных областей видимости: как один из вариантов - это переместить ее в нестандартный код карты и сделать глобальной.
Известные недоработки
  • Не полностью отображается описание изученной способности "Обжигающие цепи". Триггерно это не затрагивается. Пока не могу понять, почему конкретно. У других способностей описание длиннее. Возможно, это из-за того, что спелл сделан на основе авто-кастовой "Ледяной брони".
  • В SD режиме модель героя в Истинной форме не отображается. Так что тестируйте в HD.

Использованные материалы

Список

Dark Troll Shadow Priest
icon by ivanbakavan
original Blizzard Entertainment

Burning Chains
icon by ivanbakavan
art by Dr.Robo
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
22
4 года назад
0
Ууух, жаришка )
Анимаций тут явно не хватает, конеш, ждёмс

Оформление ресурса пожалуй подстырю) сделано грамотно
0
32
4 года назад
0
Больше всего хочется посмотреть на реализацию
Поглощенные души летают над героем и влияют на эффекты его способностей
1
27
4 года назад
1
Вот это прям огонь! Уже не терпится посмотреть на реализацию
1
30
4 года назад
1
Добавил гифки (не все), но пока все выглядит очень сыро.
0
22
4 года назад
0
Оформление ресурса пожалуй подстырю) сделано грамотно
хотя так гифки получаются слишком маленькими, ничего не разглядеть
0
30
4 года назад
0
Proshel_Doty:
Оформление ресурса пожалуй подстырю) сделано грамотно
хотя так гифки получаются слишком маленькими, ничего не разглядеть
Правая кнопка мыши => "Открыть изображение"...
0
22
4 года назад
Отредактирован PROSHELDOTU
0
Правая кнопка мыши => "Открыть изображение".
ну камооон, хочеца же прям в ресурсе всё видеть
к тому же, вот Скорп не любит так много нажимать)0 ему сложно было открыть 6 катов, а тут надо на каждую гифку правой кнопкой нажимать и там ещё нажать открыть изображение левой!! )0
3
30
4 года назад
Отредактирован ivanbakavan
3
Новые жирные гифки подъехали
Ментальное истощение
Обжигающие цепи
Извержение
Истинная форма
Пожиратель душ
1
32
4 года назад
1
Это победа
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.