SсRealm, ты видел где используются иконки стандартных сфер в доте? Они применялись более одного раза. Конечно было бы неплохо иметь возможность заменить эти сферы на аналоги, более подходящие по смыслу. Я уже вижу хорошие альтернативы годные для конкретных замен.
Я как-то давно делал абилку, на подобии "смятения", только более пассивную - она временно меняла контроллера для всех вражеских юнитов в указанной области на нейтрально-враждебного (так же им добавлялся "бродячий", "дизарм", и замедление движения. В итоге толпа юнитов теряла контроль и беспорядочно бродила в течении 5-6 секунд, при этом их владельцу не получалось подлечить, бафнуть или как-либо засейвить своих юнитов под этим эффектом. А любой урон который мог влетать по зоне поражения - получали и жертвы заклинания (т.е. опасно было применять массовые заклинания, т.к. они наносили бы урон и твоим собственным юнитам).
makkad, кстати ДА, очевидная проблема... я о ней не подумал только лишь потому, что сам не имею привычки выдавать предметам одинаковые абилки ради получения бонуса х2, вместо того что бы выдать сразу абилку с нужным бонусом.
Smeto, ты можешь сделать заполнение этой БД единоразово в момент инициализации карты, и будешь иметь полный список предметов/абилок (главное правильно это всё оформить и заполнить).
Для того что бы реализовать это в каком-либо виде, тебе нужно полностью проверять весь инвентарь юнита и по результатам проверки делать нужные действия.
Если речь идёт про конкретный предмет из РО, то здесь можно просто брать его тип в момент подбора и проверять все слоты на наличие совпадений (игнорируя слот в котором лежит только что подобранный предмет). При совпадении - выбрасывать то что подобрал.
Такая же проверка, но уже для ряда аналогов будет выглядеть немного иначе - нужно проверять не тип предмета, а что-то ещё... Как вариант, можно выставить им некоторый одинаковый уровень в РО, и проверять если он больше 200, то... а здесь уже твои аналоги с совпадающими уровнями - все Когти это 201, все щиты это 202, все шлемы/маски/каски - это 203, и т.д.
Как вариант без и использования уровней - написать небольшую БД, либо юзать часть рав-кода для фильрации, например все предметы рав-код которых начинается с 'IX__' и имеющие третью одинаковую цифру будут условно аналогами друг друга: 'IX01' = 'IX02' = 'IX03' - это всё когти 'IX14' = 'IX15' = 'IX16' - это всё сапоги 'IX77' = 'IX78' = 'IX79' - это всё щиты
Jack-of-shadow, через книги с таким же ID можно подкидывать их содержимое в другие.
Таким образом можно добавлять/удалять абилки из книги по одному конкретному.
Герои забиваются в панель быстрого доступа соответственно тому, в каком порядке они кэшировались игрой, т.е. в начале списка будет тот, кто был создан раньше. Если ты хочешь динамически перемещать иконки героев, то этого не выйдет сделать (без пересоздавания новых героев). Единственный вариант - создавать героев в определённой последовательности, что бы сохранить их порядок.
Самое просто что можно попробовать сделать - это взять какой-нибудь временный морф (например "элексир ярости"), и уже отлавливать состояние героя в изменённой форме. Саму новую форму лишить возможности атаковать и сделать неповоротливой. Двигать постоянно вперед и дамажить врагов. Повороты от отскоки думаю можно будет допилить в процессе реализации, углы посчитать и всё такое, не самое сложное... а больше как бы ничего и не надо
Можно дать юниту две разные ауры с одним и тем же баффом, скрытые через спеллбук, тогда на юните будет висеть 1 бафф ауры, но при этом будет + к урону и + к броне
В идеале бы конечно напрямую именять манакост абилки, но это мемхак/южапи. Устраивает?
Реальный вариант - через технику, как было сказано выше. Просто делаешь несколько копий скиллов и переключаешь когда нужно. Минус в том что на каждую абилку надо иметь отдельную версию с изменённым манакостом. А если эти изменения мультипликативны - это ооооочень много вариаций будет...
Попроще будет вариант с восполнением части маны после каста, но сколько именно - надо как-то узнать манакост скилла (а это база данных, либо опять же мемхак и прочее). Так что проще решить, будет ли удовлетворительным вариантом реализации просто давать герою например +5/10/15/20 маны при любом касте, что как бы уменьшает её фактический расход... Как бы... Да... Условно...
То что я дальше напишу - не является ответом на твой вопрос, но... Мы тут обсудили одну идею, возможно тебе будет интересно.
Раз напрямую (без каких либо ухищрений) никак невозможно получить значение текущей атаки героя, и всё-равно придётся использовать какой-то из множества ранее предлагаемых/обсуждаемых методов, то почему бы не попробовать такую альтернативу? - Если нужно значение атаки, то (как вариант) его можно отловить за счёт совершенного героем удара, но очевидно что это будет не совсем то что необходимо найти. По понятным причинам такой урон будет изменяться в течении всей игры, на него будут влиять бонусы предметов, криты, и всякие баффы, не говоря уже о типах защиты (в первую очередь, кстати). Разовый отлов такого значения будет выдавать совершенно разные цифры в почти одинаковых вводных. Да и когда такой удар отлавливать? непосредственно перед кастом абилки? - тогда можно абузить "каст после крита", что явно увеличит итоговое значение. Может показаться что это всё полнейшая фигня, но... Я полагаю что есть возможный вариант использовать именно такой подход! А что если ввести такой параметр как средний урон атаки героя? Реализация будет довольно банальная - каждая авто-атака записывается в счётчик в течении всей игры, а так же и урон от этой атаки. В итоге мы будем иметь по два числа (для каждого героя отдельно, разумеется): - количество ударов и суммарный урон причиненный атаками, что даёт нам возможность получить СРЕДНЕЕ их значение. Геймплейно может показаться что это вполне реально абузить и НЕ атаковать всю игру ради буста одного скилла - но это будет выглядеть как-то уж совсем глупо. Рассчитывать на криты? - да, это повысит среднее значение, но враги с большей защитой и с возможностью занижать твою атаку могут компенсировать эту разницу и поставят на место твои амбиции (условно, если рассматривать такое как механику для доты). В общем - это можно попробовать реализовать как для одного конкретного скилла, так и для всех героев вообще.
» WarCraft 3 / Способность на основе канала
Отключил "отключение прочих заклинаний" ? или как оно там названо, где 5 галочек
Ред. Extremator
» WarCraft 3 / Свободные слоты под предмет?
» WarCraft 3 / Скрыть все на панели
Ред. Extremator
» WarCraft 3 / Имеет ли смысл писать на структурах, если спелл на карте один? Jass.
» WarCraft 3 / Скрыть все на панели
Хотя, наверно, не поможет... Но как идея... х)
» WarCraft 3 / Orbs pack
» WarCraft 3 / Скрыть все на панели
Добавить/отнять её, может что поменяется.
» WarCraft 3 / Вопрос про NewGen WE
» WarCraft 3 / Как сделать мгновенный каст способности на основе канала? World Editor.
» WarCraft 3 / Атака и смятение вражеских юнитов
» WarCraft 3 / Переменная спецэффект для группы юнитов
» WarCraft 3 / Переменная спецэффект для группы юнитов
» WarCraft 3 / [1.26/2.0]Реально ли узнать какие способности у предмета(Какие бонусы даёт предмет)?
» WarCraft 3 / [1.26/2.0]Реально ли узнать какие способности у предмета(Какие бонусы даёт предмет)?
» WarCraft 3 / Как сделать, чтобы больше 1 такого-же предмета не мог взять герой?
'IX01' = 'IX02' = 'IX03' - это всё когти
'IX14' = 'IX15' = 'IX16' - это всё сапоги
'IX77' = 'IX78' = 'IX79' - это всё щиты
» WarCraft 3 / Изменить заклинания в книге заклинаний
Таким образом можно добавлять/удалять абилки из книги по одному конкретному.
» WarCraft 3 / Координаты предмета
» WarCraft 3 / Human Armor Upgrades
Ред. Extremator
» WarCraft 3 / Как сделать что-бы герой спавнился и вставал на клавишу F2? World Editor
Ред. Extremator
» WarCraft 3 / Есть ли идеи как сделать ульту пангольера из доты?
Саму новую форму лишить возможности атаковать и сделать неповоротливой. Двигать постоянно вперед и дамажить врагов. Повороты от отскоки думаю можно будет допилить в процессе реализации, углы посчитать и всё такое, не самое сложное... а больше как бы ничего и не надо
» WarCraft 3 / как сделать не диспелящийся баф?
» WarCraft 3 / как сделать не диспелящийся баф?
» WarCraft 3 / Снижение брони за атаку
Там и отлов атаки, для орбов.
И триггерный дебафф.
И сложение единичек на -1 армора (до какого-то лимита)
Ред. Extremator
» WarCraft 3 / Как сделать снижение манакоста спеллов? World Editor.
Ред. Extremator
» WarCraft 3 / Урон способности в зависимости от атаки и защиты
Мы тут обсудили одну идею, возможно тебе будет интересно.
По понятным причинам такой урон будет изменяться в течении всей игры, на него будут влиять бонусы предметов, криты, и всякие баффы, не говоря уже о типах защиты (в первую очередь, кстати). Разовый отлов такого значения будет выдавать совершенно разные цифры в почти одинаковых вводных. Да и когда такой удар отлавливать? непосредственно перед кастом абилки? - тогда можно абузить "каст после крита", что явно увеличит итоговое значение.
Может показаться что это всё полнейшая фигня, но... Я полагаю что есть возможный вариант использовать именно такой подход! А что если ввести такой параметр как средний урон атаки героя? Реализация будет довольно банальная - каждая авто-атака записывается в счётчик в течении всей игры, а так же и урон от этой атаки. В итоге мы будем иметь по два числа (для каждого героя отдельно, разумеется): - количество ударов и суммарный урон причиненный атаками, что даёт нам возможность получить СРЕДНЕЕ их значение.
Геймплейно может показаться что это вполне реально абузить и НЕ атаковать всю игру ради буста одного скилла - но это будет выглядеть как-то уж совсем глупо. Рассчитывать на криты? - да, это повысит среднее значение, но враги с большей защитой и с возможностью занижать твою атаку могут компенсировать эту разницу и поставят на место твои амбиции (условно, если рассматривать такое как механику для доты).
В общем - это можно попробовать реализовать как для одного конкретного скилла, так и для всех героев вообще.