Какую команду нужно ввести, чтобы провести проверку на событие "юнит приводит способность в действие?". VSCode нифига не выдаёт, чё не пробовал уже. И реально ли в Lua сделать проверку от конкретной способности/проджектайла? Например, <<юнит получил урон - урон нанесён способностью "Волна Силы", тогда делай что-то там, что тебе нужно">>, возможно ли такое?

Принятый ответ

У меня только common.lua
И близзард lua
Коммон Джей и Коммону Луа ничем не отличаются
Поэтому хватит любого, чтобы смотреть нативки
Если вернуться к сабжу
Например, <<юнит получил урон - урон нанесён способностью "Волна Силы", тогда делай что-то там, что тебе нужно">>, возможно ли такое
Луа тут ничем не поможет опять таки, это делает так же как и на джасе, но с условием и нюансами
  1. Кое как это можно сделать, потому что можно в событии урона прочитать типа урона, и если у юнита нет других способностей с этим типом урона, какой конкретно тип урона у волны силы я не помню, но можно легко определить. И в принципе желаемое сделать возможно, но так делать не надо, правильнее сделать триггерную волну силы
  2. Тогда у нас и в момент попадания можно будет отследить, и длину поменять и изогнуть волну и урон от статов нанести, да что угодно, но опять таки.. это всё делается точно также как и на джасе, новых алгоритмов нет.
Есть новое событие, на юнит получает урон, но тут и оно даже не нужно если урон наносить триггерно
---@param whichUnit unit
---@param target widget
---@param amount real
---@param attack boolean
---@param ranged boolean
---@param attackType attacktype
---@param damageType damagetype
---@param weaponType weapontype
---@return boolean
function UnitDamageTarget(whichUnit, target, amount, attack, ranged, attackType, damageType, weaponType) end    -- (native)
Функция возвращает истину, если урон был нанесён... она же условие она же нанесение урона она же событие
Функция волна сил()
	if UnitDamageTarget(Unit, Enemy, amount, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS) then
		print("УРОН НАНЕСЁН С ПОМОЩЬЮ ВОЛЫ СИЛЫ")
	end
end
Всё куда проще на самом деле
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
3
32
3 года назад
Отредактирован Берги
3
У меня только common.lua
И близзард lua
Коммон Джей и Коммону Луа ничем не отличаются
Поэтому хватит любого, чтобы смотреть нативки
Если вернуться к сабжу
Например, <<юнит получил урон - урон нанесён способностью "Волна Силы", тогда делай что-то там, что тебе нужно">>, возможно ли такое
Луа тут ничем не поможет опять таки, это делает так же как и на джасе, но с условием и нюансами
  1. Кое как это можно сделать, потому что можно в событии урона прочитать типа урона, и если у юнита нет других способностей с этим типом урона, какой конкретно тип урона у волны силы я не помню, но можно легко определить. И в принципе желаемое сделать возможно, но так делать не надо, правильнее сделать триггерную волну силы
  2. Тогда у нас и в момент попадания можно будет отследить, и длину поменять и изогнуть волну и урон от статов нанести, да что угодно, но опять таки.. это всё делается точно также как и на джасе, новых алгоритмов нет.
Есть новое событие, на юнит получает урон, но тут и оно даже не нужно если урон наносить триггерно
---@param whichUnit unit
---@param target widget
---@param amount real
---@param attack boolean
---@param ranged boolean
---@param attackType attacktype
---@param damageType damagetype
---@param weaponType weapontype
---@return boolean
function UnitDamageTarget(whichUnit, target, amount, attack, ranged, attackType, damageType, weaponType) end    -- (native)
Функция возвращает истину, если урон был нанесён... она же условие она же нанесение урона она же событие
Функция волна сил()
	if UnitDamageTarget(Unit, Enemy, amount, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS) then
		print("УРОН НАНЕСЁН С ПОМОЩЬЮ ВОЛЫ СИЛЫ")
	end
end
Всё куда проще на самом деле
Принятый ответ
0
14
3 года назад
0
Bergi_Bear:
Fly123:
Всё куда проще на самом деле.
Проще, если ты в этом как рыба в воде, а не как варан в супермаркете. Мне нужно время, что это всё обдумать и понять. Спасибо, за твой вариант решения проблемы.
0
32
3 года назад
0
Fly123, Чтобы триггерно наносить урон, необходимо перебирать группы, подробнее можно узнать вот тут
0
28
3 года назад
Отредактирован PT153
0
Функция возвращает истину, если урон был нанесён...
Это не так, функция всегда возвращает истину, независимо от того, нанесён он или нет. По крайней мере так в 1.26. Сомневаюсь, что в рефе иначе.
0
32
3 года назад
0
PT153, да возможно я поторопился, с фунцией хотел сократить у меня то там перебор группы луп, проверка кому наносить урон и переброс доп параметров через флаг (кароче своё мудрёная система, в корой кроме меня увы никто не разберётся, поэтому я не стал показывать)
0
13
3 года назад
0
Fly123, Есть костыльный вариант. Но на нем нужно,
1 - отказаться от маг.защит, и пилить свою маг защиту
2 - описание урона способностей надо писать ручками
Если такое устраивает, карта прилагается
Загруженные файлы
0
14
3 года назад
Отредактирован Fly123
0
Borodach:
Fly123, Есть костыльный вариант. Но на нем нужно,
1 - отказаться от маг.защит, и пилить свою маг защиту
2 - описание урона способностей надо писать ручками
Если такое устраивает, карта прилагается
Спасибо за труд, но я всё-таки попробую разобраться с Lua))
Ещё раз.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.