Всем привет!
Больше года прошло с прошлого релиза addon.dll, и вот наконец вышла новая версия 0.10.0!
Изменений слишком много чтобы их все описать в одном сообщении, так что напишу подробнее про самые интересные, на мой взгляд. За остальными прошу смотреть файл whatnews.htm в архиве с аддоном). Несмотря на то, что изменений действительно много, обычных пользователей, к большому сожалению, они не касаются напрямую. Этот релиз был сосредоточен на добавление новых возможностей для разработчиков модов.
Итак,
Скачать релиз: https://www.gipat.ru/forum/thread-3827-post-44660.html
Установка: Распаковать содержимое архива в папку стартера, подтвердив замену файлов
Изменения:
1. Новые параметры в ai.reg:
Из наиболее интересных параметров стоит отметить несколько:
Их не очень много, но всё же:
Обычные функции для работы с глобальными переменными GSSetVar/GSGetVar работаю немного необычно в сетевой игре. Сделано это было для синхронизации текущего квеста между игроками на сервере. В итоге, это совершенно отдельный набор переменных, которые одинаковые у всех игроков на сервере и которые стираются при взятии/завершении квеста.
Тем не менее, было бы полезно иметь возможность работать с переменными каждого игрока на сервере по отдельности.
Для этого добавлены две новые функции GSSetPlayerVar/GSGetPlayerVar, которые полностью аналогичны GSSetVar/GSGetVar из сингла.
Кроме того, добавлена возможность хранить определенные переменные вечно - те, имя которых начинается с "gvar.". Таким образом, можно, например, делать цепочки квестов, помнить какие-то факты о персонаже и всякое другое.
4. Скрипт для проверки скриптов на наличие ошибок
При помощи скрипта addon.bat из архива с аддоном можно проверять скрипты (по одному, сразу несколько или всю папку maps). Достаточно открыть .mob файл с помощью этого скрипта или перенести мышкой нужные файлы на иконку скрипта.
Для тех, кто как и я любит командную строку, будет интересно узнать, что на самом деле этот скрипт - интерфейс для работы с addon.dll. Пока из доступных команд есть всего одна - "check", которая принимает на вход пути до файлов/папок или просто шаблонов (maps\zone*.mob) и проверяет файлы на наличие ошибок в скриптах. Но в будущем планируется так же добавить генерацию AIGraph и всякое другое.
5. Багфиксы скриптового движка игры
Больше года прошло с прошлого релиза 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, которое позволяет получить зрения моба, на которого оно скастовано.
Их не очень много, но всё же:
- 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 - см. ниже
Обычные функции для работы с глобальными переменными 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, из-за которого игра завершалась с ошибкой
- Баг, из-за которого не работали скрипты в главном меню игры