Какую команду нужно ввести, чтобы провести проверку на событие "юнит приводит способность в действие?". 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
Всё куда проще на самом деле
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
24
3 года назад
1
Нативки доступные Lua идентичны тем что доступны жассу. Луа умеет некоторые вещи недоступные жассу, но не в нативках варкрафта.
0
14
3 года назад
Отредактирован Fly123
0
prog:
Нативки доступные Lua идентичны тем что доступны жассу.
Можно пожалуйста простое объяснение простому человеку - что такое нативки?) И правильно ли я понял, что если я просто скопирую GUI-шную команду "unit cast spell" в Lua, то она будет работать (ведь, если я не ошибаюсь, то JASS-команды, это тоже самое что и GUI, только без "мусора". Если ошибаюсь, прошу меня поправить)
0
28
3 года назад
0
что такое нативки
Открываем common.j и смотрим. Это функция, которая работает с варом напрямую.
0
14
3 года назад
Отредактирован Fly123
0
PT153:
Открываем common.j и смотрим. Это функция, которая работает с варом напрямую.
У меня только common.lua
И близзард lua
1
28
3 года назад
1
Fly123, так это не офф файлы. Офф файлы в архиве игры или в документах/вар3/жассхелпер.
0
14
3 года назад
0
PT153:
Fly123, так это не офф файлы. Офф файлы в архиве игры или в документах/вар3/жассхелпер.
Понял, нашёл. Их блокнотом открывать?
0
28
3 года назад
0
Fly123, ну а чём же ещё.
0
14
3 года назад
0
PT153:
Fly123, ну а чём же ещё.
Ну мало-ли. Тут такие сюрпризы случаются, что я бы не удивился, если бы пришлось какую-то ещё утилиту качать для этого.
3
27
3 года назад
3
нативка *(native - родной местный) - родная функция для вара
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:
Всё куда проще на самом деле.
Проще, если ты в этом как рыба в воде, а не как варан в супермаркете. Мне нужно время, что это всё обдумать и понять. Спасибо, за твой вариант решения проблемы.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.