Добавлен Берги,
не публикуется
Алгоритмы, Наработки и Способности
Способ реализации:
Lua
Тип:
Наработка
Версия Warcraft:
1.32.10+
Всем привет, вам надоело однообразное управление в 99% карт? надоело выделять квадратом и двигаться правой кнопкой мыши? А в триггерах только стрелочки? Пришло время сделать WASD управление в 1 строчку
InitWASD(UDG_unit)
Но предварительно нужно будет id юнита добавить в базу анимаций
раскрыть
if GetUnitTypeId(data.UnitHero) == FourCC("Hpal") then
--паладин
data.AnimDurationWalk = 0.767 --длительность анимации движения, полный круг
data.IndexAnimationWalk = 12 -- индекс анимации движения
data.ResetDuration = 2.667 -- время сброса для анимации stand, длительность анимации stand
data.IndexAnimationQ = 5 -- анимация сплеш удара
data.IndexAnimationSpace = 12 -- анимация для рывка, если анимации нет, ставь индекс аналогичный бегу
data.IndexAnimationAttackInDash = 3 --анимация удара в рывке
data.IndexAnimationThrow = 4 -- индекс анимациии броска чего либо
data.IndexAnimationAttack1 = 4 --индекс анимации атаки в серии
data.IndexAnimationAttack2 = 4 --индекс анимации атаки в серии
data.IndexAnimationAttack3 = 5 --индекс анимации атаки в серии
data.IndexAnimationSpin = 3 -- индекс анимации для удара во вращении
elseif GetUnitTypeId(data.UnitHero) == FourCC("Ewar") then
-- смотрящая в ночь
data.AnimDurationWalk = 0.733 --длительность анимации движения, полный круг
data.IndexAnimationWalk = 2 -- индекс анимации движения
data.ResetDuration = 2.667 -- время сброса для анимации stand, длительность анимации stand
data.IndexAnimationQ = 6 -- анимация сплеш удара
data.IndexAnimationSpace = 2 -- анимация для рывка, если анимации нет, ставь индекс аналогичный бегу
data.IndexAnimationAttackInDash = 4 --анимация удара в рывке
data.IndexAnimationThrow = 7 -- индекс анимациии броска чего либо
data.IndexAnimationAttack1 = 5 --индекс анимации атаки в серии
data.IndexAnimationAttack2 = 5 --индекс анимации атаки в серии
data.IndexAnimationAttack3 = 6 --индекс анимации атаки в серии
data.IndexAnimationSpin = 4 -- индекс анимации для удара во вращении
elseif GetUnitTypeId(data.UnitHero) == FourCC("Obla") then
-- Мастер клинка
data.AnimDurationWalk = 0.733 --длительность анимации движения, полный круг
data.IndexAnimationWalk = 6 -- индекс анимации движения
data.ResetDuration = 1.8 -- время сброса для анимации stand, длительность анимации stand
data.IndexAnimationQ = 3 -- анимация сплеш удара
data.IndexAnimationSpace = 6 -- анимация для рывка, если анимации нет, ставь индекс аналогичный бегу
data.IndexAnimationAttackInDash = 9 --анимация удара в рывке
data.IndexAnimationThrow = 8 -- индекс анимациии броска чего либо
data.IndexAnimationAttack1 = 2 --индекс анимации атаки в серии
data.IndexAnimationAttack2 = 8 --индекс анимации атаки в серии
data.IndexAnimationAttack3 = 3 --индекс анимации атаки в серии
data.IndexAnimationSpin = 13 -- индекс анимации для удара во вращении
elseif GetUnitTypeId(data.UnitHero) == FourCC("Udre") then
-- Повелитель ужаса
data.AnimDurationWalk = 1 --длительность анимации движения, полный круг
data.IndexAnimationWalk = 5 -- индекс анимации движения
data.ResetDuration = 1.8 -- время сброса для анимации stand, длительность анимации stand
data.IndexAnimationQ = 10 -- анимация сплеш удара
data.IndexAnimationSpace = 5 -- анимация для рывка, если анимации нет, ставь индекс аналогичный бегу
data.IndexAnimationAttackInDash = 6 --анимация удара в рывке
data.IndexAnimationThrow = 9 -- индекс анимациии броска чего либо
data.IndexAnimationAttack1 = 9 --индекс анимации атаки в серии
data.IndexAnimationAttack2 = 4 --индекс анимации атаки в серии
data.IndexAnimationAttack3 = 10 --индекс анимации атаки в серии
data.IndexAnimationSpin = 5 -- индекс анимации для удара во вращении
else
print("Данного героя нет в таблице анимаций")
end
Как видите я расписал 4х героев заполнение таблички занимает примерно 2 минуты на героя, пока что очень много условностей, очень много не вырезано, потому что как можно догадаться, это управление из пеонов разбойников, пока что доступны:
- Полноценно WASD движение + сглаживание, использование хитбокса персонажа и поиск пути варкарфта, отталкивание врагов при столкновении, можно даже использовать в пазл квестах, для толкания юнитов-бочек или камней
- Атака левой кнопкой мыши, атака в серии из 5 ударов, финальный удар расталкивает врагов
- Атака во вращении, наносит небольшой урон касанием
- Бросок молота - правой кнопкой мыши, в принципе бросать можно что угодно, бросок имеет 2 заряда с кулдауном по 10 сек
- Рывок Space и атака в рывке
- Способность Q для контролируемого удара по площади
- Так же тут есть система стазиса, юниты оглушаются при атаке
- И куча всяких отталкивание, типа удара о стену и удар в спину для двойного урона
- Система складывания урона в 1 общий текстаг даже от нескольких игроков
Установка
Скопировать нестандартный код себе в карту, вызывать через
InitWASD(unit)
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
Jack-of-shadow
3 года назад
0
Выглядит очень бодренько! Как на счет прикрутить управление с геймпада ?
0
Берги
3 года назад
0
легчайше, нужен joy2key или любой аналог, однако это управление идёт специально под мышь в правой руке, сами клавиши геймпада в реф не заложены, так что в любом случае нужно внешнее по
Этот комментарий удален
0
jasonrus96
3 года назад
0
А получится сразу на несколько персов настроить то есть чтобы можно было в мультеплеере юзать , или ток на одного работает?
0
Берги
3 года назад
0
Это и так для мультиплеера
Этот комментарий удален
Чтобы оставить комментарий, пожалуйста, войдите на сайт.