Evil Islands (Add-On) *последняя версия*
Всем привет!

Больше года прошло с прошлого релиза addon.dll, и вот наконец вышла новая версия 0.10.0!

Изменений слишком много чтобы их все описать в одном сообщении, так что напишу подробнее про самые интересные, на мой взгляд. За остальными прошу смотреть файл whatnews.htm в архиве с аддоном). Несмотря на то, что изменений действительно много, обычных пользователей, к большому сожалению, они не касаются напрямую. Этот релиз был сосредоточен на добавление новых возможностей для разработчиков модов.

Итак,

Скачать релиз: https://www.gipat.ru/forum/thread-3827-post-44660.html
Установка: Распаковать содержимое архива в папку стартера, подтвердив замену файлов
Изменения:

1. Новые параметры в ai.reg:
Код:
[Addon]
AttackAnimSpeed=1  ; Включить динамическую скорость анимации атаки и каста
NewRunes=1  ; Включить поддержку новых типов рун
UsePrototypeActionsForMobAttack=1  ; Использовать параметр действий из прототипа юнита для атаки моба
UsePrototypeActionsForMobCast=1  ; Использовать параметр действий из прототипа юнита для каста моба
FastTeleport=1  ; Уменьшить минимальную длительность каста с 30 до 1 игровых секунд
DisableCrippledHL=1  ; Отключить ломание конечностей
UnlockExperimentalSpells=1  ; Разблокировать экспериментальные заклинания

Из наиболее интересных параметров стоит отметить несколько:
  • AttackAnimSpeed - меняет скорость анимации атаки и каста таким образом, чтобы итоговая длительность зависела только от действий персонажа и оружия/заклинания. В итоге, число кадров анимации вообще не влияет на длительность атаки. Если у персонажа будет огромный параметр действий, то он будет атаковать как бешеный и наоборот - если юниту отрубили руку, то будет атаковать как в замедленной съемке.
  • NewRunes - скорее задел на будущее, чем что-то действительно интересное. Добавляет всего один новый код рун "xa", который позволяет менять действия заклинанию. Вероятнее всего будет полезно для изменения скорости каста отдельным юнитам.
  • UnlockExperimentalSpells - разблокирует экспериментальные заклинания. Спасибо за идею пользователю VeryGoodGirl, реализовавшую её в spelladdon.
    Хоть и действительно полезных заклинаний немного, но как минимум одно интересное есть - possession, которое позволяет получить зрения моба, на которого оно скастовано.
2. Новые скриптовые функции

Их не очень много, но всё же:
  • GiveExp(nPlayer: float, exp: float) - выдать опыт конкретному игроку (nPlayer=GetPlayerOfUnit) или всем игрокам (nPlayer=-1)
  • Say(message: string) - написать сообщение в чат
  • Функции для булевой логики And(a, b, ...), Or(a, b, ...) принимают 2 или более аргумента типа float
  • Некоторым существующим функциям также добавлена возможность принимать любое число аргументов: StrCat, Add, Mul
  • GSSetPlayerVar/GSGetPlayerVar - см. ниже
3. Работа с переменными отдельных игроков в сетевой игре и хранение их в файле персонажа

Обычные функции для работы с глобальными переменными GSSetVar/GSGetVar работаю немного необычно в сетевой игре. Сделано это было для синхронизации текущего квеста между игроками на сервере. В итоге, это совершенно отдельный набор переменных, которые одинаковые у всех игроков на сервере и которые стираются при взятии/завершении квеста.

Тем не менее, было бы полезно иметь возможность работать с переменными каждого игрока на сервере по отдельности.
Для этого добавлены две новые функции GSSetPlayerVar/GSGetPlayerVar, которые полностью аналогичны GSSetVar/GSGetVar из сингла.
Кроме того, добавлена возможность хранить определенные переменные вечно - те, имя которых начинается с "gvar.". Таким образом, можно, например, делать цепочки квестов, помнить какие-то факты о персонаже и всякое другое.

4. Скрипт для проверки скриптов на наличие ошибок

При помощи скрипта addon.bat из архива с аддоном можно проверять скрипты (по одному, сразу несколько или всю папку maps). Достаточно открыть .mob файл с помощью этого скрипта или перенести мышкой нужные файлы на иконку скрипта.

Для тех, кто как и я любит командную строку, будет интересно узнать, что на самом деле этот скрипт - интерфейс для работы с addon.dll. Пока из доступных команд есть всего одна - "check", которая принимает на вход пути до файлов/папок или просто шаблонов (maps\zone*.mob) и проверяет файлы на наличие ошибок в скриптах. Но в будущем планируется так же добавить генерацию AIGraph и всякое другое.

5. Багфиксы скриптового движка игры
  • Баг циклов For и ForIf, в которых было невозможно использовать аргументы скрипта
  • Баг обработки переменных, начало имён которых совпадает с именем какой-либо функции.
    Например caster: object (раньше была бы ошибка из-за того, что имя переменной начинается со слова Cast, что совпадает с соответствующей функцией)
  • Баг функции ResetTarget, из-за которого игра завершалась с ошибкой
  • Баг, из-за которого не работали скрипты в главном меню игры
Ответ


Сообщения в этой теме
RE: Evil Islands (Add-On) *последняя версия* - от Demoth - 03.08.2020, 00:13

Перейти к форуму:


Пользователи, просматривающие эту тему: 4 Гость(ей)