Форум HeroesWorld-а - Показать сообщение отдельно - Боевые скрипты и управление боем
Показать сообщение отдельно
#2
Старый 28.02.2017, 17:58
  #2
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Боевые скрипты и управление боем

MasteRВот лишь немногие вопросы, которые я помню и которые давно хотелось задать:

1) Можно ли с помощью боевых скриптов на время боя повышать статы существ / героев? (например, дать + 1 к скорости дружественных существ).
2) Можно ли во время боя дать какому-то существу не присущую ему абилку? (вряд ли, но мало ли...)
3) Как сделать так, чтобы при касте заклинания с помощью скрипта герой не откатывался по шкале ATB? (конечно, можно двигать героя по шкале с помощью соответствующей функции, но я не нашел функции, возвращающей ТЕКУЩЕЕ положение юнита / героя)
4) Ситуация: дружественное существо начинает свой ход и атакует вражеское. В это время герой по скрипту кастует условную магическую стрелу, и целевое существо умирает до того, как прибегает атакующий. Как избежать данной коллизии?
5) Могут ли с помощью боевого скрипта кастовать заклинания существа, которые сами по себе этого делать не в состоянии? Либо те, у которых такого заклинания нет в их книге? Боевые машины могут кастовать?
6) Можно ли в бою дать доп. выстрелы баллисте, палатке? Увеличить урон / силу лечения?
7) Есть ли конструкция по типу try - catch, позволяющая игнорировать возникшие ошибки во время выполнения скрипта?
1-3) Скорее всего, невозможно.
4) Можно использовать конструкцию
	repeat sleep() until combatReadyPerson()
которая будет ждать пока не наступит чей-либо ход.
5) Существа могут колдовать заклинания, которые не знают, в том числе и те существа, которые не умеют колдовать вовсе. Однако маны на это заклинание должно хватать.
6) Скорее всего, нет. Но у баллисты выстрелы все равно бесконечные: после достижения 0 она продолжит стрелять, и выстрелы станут отрицательными.
7) Можно эмулировать try с помощью startThread и catch с помощью errorHook. В библиотеке lualib реализовывал функцию pcall, которая примерно это и делает.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием