Current time: 01.11.2024, 00:31 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
FunLib
» Мод - библиотека функций для ERA
Author Message
Algor Away
Administrators

Posts: 3881
Post: #31

(23.04.2020 10:52)igrik Wrote:  У меня сразу же вопрос: мы в библиотеке будем поддерживать новый синтаксис (введенный в 2.9.13) HE:Z, BM:Z и UN:C?
Да, я нацеливаюсь на последнюю 2,9,х. Если выйдет 14я - на нее.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
23.04.2020 15:08
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16637
Post: #32

igrik, медаль за изобретение !!UN:J0! 148
(не помню про эту команду вообще)

Название для функций с Set/Get синтаксисом лучше давать без Set, Get, Check, Is.

Fun_SpellDisabled (set/get yes/no)
Fun_StackMorale (set/get value)
Fun_StackSummoned (set/get yes/no)


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
23.04.2020 16:59
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1349
Post: #33

Предлагаю добавить в библиотеку функции, влияющие на экран города:

При замене анимации нужно также записать в память новое количество кадров:
Перемещение зданий:
Приоритет отображения:


Создал новый глобальный мод: WoG Ultra Edition
(This post was last modified: 24.04.2020 00:50 by Raistlin.)
23.04.2020 23:48
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #34

Правка: неактуальный текст удален, новая версия в сообщении ниже.

Апи еще не закрыт мне непонятен вопрос с обработкой ошибок, какой способ реализовать? Что делать с существующими функциями которые возвращают статус операции?
(This post was last modified: 25.04.2020 20:25 by Zur13.)
25.04.2020 03:03
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16637
Post: #35

Zur13, сделать ничего вредного и по возможности сделать полезное + вызвать !!FU(Fun_ShowError), где первой командой SN:F^GenerateDebugInfo^ сгенерировать отладочную информацию, где в Debug\Era\erm tracking.erm будет виден вызывающий код, а после сразу IF:M с содержимым z1, например.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
25.04.2020 06:12
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #36

Правка: удалено неактуальное описание, новая версия в сообщении ниже.

Еще вопрос, по архитектуре. Есть ли способ из ЭРМ кода передавать в ЭРМ функцию имя другой функции и соответственно вызвать функцию по переданному имени? Если можно то я лучше переделал бы реализацию коллбеков. Сейчас, например для нестандартной сортировки функция из библиотеки вызывает функцию с предпопределенным именем и моддер должен сделать у себя реализацию этой функции с проверкой аргумента, чтобы определять вызов ее для своего списка.
(This post was last modified: 01.05.2020 17:39 by Zur13.)
25.04.2020 20:24
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16637
Post: #37

Имя — нет, номер — можно.
!!FU(Fun_A):P(Fun_B);

!?FU(Fun_A);
!!FUx1:P; calling callback


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
25.04.2020 21:37
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #38

По спискам, я думаю функционал и АПИ закрыт вот новая версия скрипта.

Переписал большинство циклов на !!re , осталась пара мест где SN:G просто удобнее и компактнее.
Функция сортировки по натуральному значению использует мой кастомный алгоритм, должно быть быстрее чем пузырьком и скорее всего быстрее сортировки рассческой (comb sort).
Функция сортировки с использованием компаратора реализована алгоритмом сортировки перемешиванием (cocktail sort) с небольшой модификацией (вторая часть алгоритма реализована не пузырьком, а сортировкой рассческой (comb sort) ).
В конце файла расположен тестовый код его 100% нужно удалить или закаментить перед использованием (там неплохой юнит тест написан, который сам по себе может служить подсказкой по использованию).
**
Добавил функции множественного гета, и фильтрации. Добавил в функции где это актуально проверку валидности аргументов и вызов FU(Fun_ShowError) в случае неверных входных аргументов (описание ошибки в z1).
Короткая справка по АПИ (полностью можно посмотреть в файле):
**
Переделал кастомизированные версии функций "сортировки", "поиска", "фильтрации" и "для каждого элемента" так чтобы они получали имя коллбек функции через аргумент вызова (спасибо товарищу Berserker, за подсказку).

В принципе считаю что уже всё готово и достаточно протестировано. Можно использовать. Пока больше не планирую ничего тут менять.

Короткая справка по АПИ:
(This post was last modified: 01.05.2020 20:20 by Zur13.)
01.05.2020 17:38
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #39

Как написал в соседней теме, в ближайшие полгода буду появляться тут редко.
Список функций и событий для библиотеки подготовил, но пока не стал пороть горячку и выкладывать сразу модом, ибо может разойтись, а оно еще не обсуждалось.
Все "мои" (используемые в ES) функции и события оформлены отдельными файлами и включены в ES 1.46, можно их взять оттуда для обсуждений и доработки.

Файлы называются Event_<name> и Fun_<name> соответственно.
В каждый файл включен мини-хэлп и/или пример использования, это потом можно (если нужно) будет вынести в общий справочник.

Event_AfterMeeleDamage
Event_AfterRangedDamage
Event_AfterStackObtainsTurn
Event_ArtGoldIncomeCalculation
Event_ArtResIncomeCalculation
Event_BeforeChangeHeroInHeroScreen
Event_BeforeHeroLevelUpDialog
Event_BeforeOnBeforeBattle
Event_OnUpdateHeroScreen
Event_TownGoldIncomeCalculation

Fun_GetHeroPortrait
Fun_GetRandomSpell
Fun_GetSecSkillDescription
Fun_RedrawShadowAfterAction
Fun_SetDescriptionFromERT - думаю, можно будет упразднить, когда Берс допилит SN:H для артефактов
Fun_SetSecSkillValue - пока там только часть навыков, в идеале сделать для всех.
Fun_SpellAnimationOnStacks

Если во время моего отсутствия тема получит активное развитие, прошу выносить стоящие вещи в первый пост, дабы не просеивать потом километры обсуждений в поисках.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
05.05.2020 03:25
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #40

Обновил первое сообщение. Добавил Fun_GetTownBuildingInfo.erm


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
18.05.2020 16:39
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #41

(23.04.2020 11:16)igrik Wrote:  
ХЕРОМАНТ Wrote:Это дубликат воговской !!UN:J0. Но зачем???
А разве проверить статус можно?

Тьфу блин! Я не знал, что можно проверить. Нужно указать, чтобы занесли описание в справочник.
так вроде ж в справке есть это...
Quote:J0/#/$
Запретить заклинание
    # – номер заклинания (0..69)
    $ – разрешить/запретить
    0 – разрешить
    1 – запретить
Комментарий:
Этот запрет работает только для гильдий магов и пирамид, но вы можете проверить значение, установленное здесь, для любого ERM-скрипта.
Yes
(This post was last modified: 01.06.2020 07:04 by Bes.)
01.06.2020 07:03
Visit this user's website Find all posts by this user Quote this message in a reply
slater777 Offline

Posts: 136
Post: #42

Fun_SetSecSkillValue с поместьем и мистицизмом некорректно работает? Неясно, зачем там пересчет в проценты, когда очки маны и золото идут в целых числах.
12.12.2022 11:48
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group