Вы тогда не с той стороны к задаче подходите. Боевые функции хорошо описаны в скриптовом руководстве Новика, если что.
- когда ходит единственный стек защищающегося, он кое-что делает.
Тут всё просто:
function DefenderUnitMove(unit) -- например каст заклинания: UnitCastGlobalSpell(unit, 'НАЗВАНИЕ_ЗАКЛИНАНИЯ'); return not nil end
- когда умирает любой стек атакующего, появляются призраки на стороне защищающегося.
Возможно будут нюансы:
function AttackerUnitDeath(unit) -- не проверял, возможно будет работать так: local x, y = GetUnitPosition(unit); AddCreature(сторона, тип, количество, x, y); end
Эти функции нужно просто поместить в боевой скрипт, они автоматически вызовутся при соответствующем событии.
Ааа ненавижу систему что скрипты сохраняются только с закрытой картой. В итоге мой скрипт с замком стёрся. Его не смогу скинуть, но ещё раз поищу часть скрипта в карте единство стихий. Глупый редактор вылетает в самые неподходящие моменты:(
Годрикова впадина
8 лет назад
AstralLin а вы случаем не можете помочь с моим скриптом?
AstralLein
8 лет назад
Мои скрипты обычно работают, но они довольно громоздкие и специфические.
Добавлено через 2 минуты Вряд ли... Я почти закончил карту... сделаю этот бой с личем и этот диалог с тремя вариантами ответа и карта почти готова. Ланшафт на 100% готов, эти функции - последние среди дополнительных квестов и останется только основной сюжет (функции).
Добавлено через 1 минуту Скрипт с трансформацией и перестройкой сложный... по мне... я вот с этим вожусь столько времени...
Как же это сложно, написал около 200 строк скриптов от лёгких до средних, и тут надо написать такой скрипт. Борюсь с ним уже около 2 недель, безрезультатно. Думаю этот скрипт будет строк на 60. Пока хорошо получается только анимация святого слова.
AstralLein
8 лет назад
У меня примерно 420 строк сейчас. Но это еще не конец плюс комбат скрипт.
Добавлено через 2 минуты А вообще скрипты увлекательная штука. Куда интереснее, чем делать ландшафт.
Они конечно интересны, но сложны. Думаю делать ролики ещё интересней.
Добавлено через 2 минуты Думаю пока буду делать скрипты что бы на карте Существа били воздух. Тот скрипт на последний план вынесу, ибо скрипт либо самый сложный на моей карте или почти самый сложный.
В самом общем случае: random_spell = spells[random(1, length(spells))]; Только если это в бою, там не реализована функция возвращающая случайное число (боевые и походные скрипты имеют разный набор функций). Нужно либо писать её самостоятельно, либо использовать например библиотеку lualib.lua от RedHeavenHero (ищите по форуму). Я использовал библиотеку.
AstralLein
8 лет назад
Вот, база. Что точно нужно дописать, чтобы работало?
diff = GetDifficulty() + 1
UnitCastGlobalSpell(unit, SPELL_MASS_SLOW);
function DefenderUnitMove(unit) UnitCastGlobalSpell(unit, SPELL_UNHOLY_WORD); SummonCreature(DEFENDER, CREATURE_MUMMY, 15 * diff) return not nil end
function AttackerUnitDeath(unit) SummonCreature(DEFENDER, CREATURE_GHOST, 50 * diff) end
Добавлено через 49 секунд Чары колдует босс, который бывший йети.
Добавлено через 1 минуту Случайная точка вызова меня устраивает.
RedHeavenHero
8 лет назад
Нужно либо писать её самостоятельно, либо использовать например библиотеку lualib.lua от RedHeavenHero (ищите по форуму). Я использовал библиотеку.
К слову об этом. В карте Эхо Пустоты реализован лучший, чем в lualib, ГПСЧ, поэтому советую брать именно оттуда.