Current time: 30.11.2024, 05:19 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Вопросы по моддингу
» (обсуждаем моддинг здесь)
Author Message
Algor Away
Administrators

Posts: 3881
Post: #1171

igrik, Wog Scripts в этом плане сейчас от ERA Scripts не отличается - такой же отделенный от базовой поставки мод.
Просто делать общую библиотеку надо или в базе или, действительно, отдельным модом. Но, в последнем случае, такой мод со временем станет must have, по сути 2й базой. И будут уже 2 базы со всеми вытекающими сложностями и зависимостями.

Поэтому мне и видится предпочтительным держать такую библиотеку в Эре. Не думаю, что расширять ее понадобится чаще, чем релизить саму платформу.
А в отдельной теме собирать/обсуждать коллекцию полезных функций для включения в очередной релиз.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
20.04.2020 11:06
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #1172

Мои мысли по этому поводу таковы: сама игра есть библиотека необходимых функций, событий и свойств. Я поэтому и очень сильно просил Берса, чтобы он включил 3 рессивера в базу эры (HE:Z, BM:Z и расширенное UN:C). Через них можно сделать практически половину необходимого функционала для стандартных потребностей пользователя. Просто нужно показать пользователю как это научиться легко делать самому.

Поэтому я не вижу смысла в ERM библиотеке. Также я не вижу чем полезным можно дополнить тот же FUN.erm. В нем уже есть всё необходимое.


game bug fixes extended.dll || My Plugins || My GitHub
20.04.2020 11:23
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #1173

(20.04.2020 11:23)igrik Wrote:  Также я не вижу чем полезным можно дополнить тот же FUN.erm. В нем уже есть всё необходимое.

igrik, ок, вот тебе пример: хочу узнать максимум маны героя, чтобы, скажем, восстановить/забрать/и пр. 10%, не важно...
Кинешь сходу код без UN:C который легко и просто, с учетом всех нюансов вернет мне его? Не?

А если кинешь код с UN:C, я вставлю его в FUN и можно будет !!FU(FUN.GetHeroMaxMana):Ph/?m; пользовать.

(20.04.2020 11:23)igrik Wrote:  Просто нужно показать пользователю как это научиться легко делать самому.
Да, можно все делать сбазовым наборос инструментов. Да хоть на асме можно все делать.
Вопрос только в том, нахрена тратить время и изобретать велосипеды, которые в общем случае будут еще и кривыми, если можно взять готовый, уже вылизанный, сесть на него и ехать дальше писать что-то действительно новое?


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
20.04.2020 12:25
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #1174

(20.04.2020 12:25)Algor Wrote:  igrik, ок, вот тебе пример: хочу узнать максимум маны героя, чтобы, скажем, восстановить/забрать/и пр. 10%, не важно...
Кинешь сходу код без UN:C который легко и просто, с учетом всех нюансов вернет мне его? Не?
Это частный случай. А сколько таких частных случаев в игре? Правильно -> вагон и маленькая тележка.


(20.04.2020 12:25)Algor Wrote:  Да, можно все делать с базовым набором инструментов. Да хоть на асме можно все делать.
Вопрос только в том, нахрена тратить время и изобретать велосипеды, которые в общем случае будут еще и кривыми, если можно взять готовый, уже вылизанный, сесть на него и ехать дальше писать что-то действительно новое?
Т.е. сейчас ты предлагаешь написать функции на каждый вопрошаемый "бзык". И сколько таких функций у тебя в библиотеке будет. Тысяча, две....?


game bug fixes extended.dll || My Plugins || My GitHub
20.04.2020 12:41
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #1175

igrik, я понимаю, что не подстелишь везде соломку. Это и не нужно.
Но те моменты, которые требуют использования особых хуков или UN:C не плохо бы оформить в виде функций.

Конечно, если бы были !!HE-ресиверы, возвращающие тот же максимум маны или имя фала портрета героя, было бы еще более здОрово.
Но их нет и, значит, базовым функционалом ERM оно не делается (кроме, может, совсем-через-жопных вариантов). Поэтому такая библиотека, имхо - выход.
Для себя я так решил давно. И сделал. И продолжу развивать по мере появления необходимости.

Давить и спорить не хочется. Вы с Берсом видите проблему под другим углом. Меня ваши доводы не убедили, вас мои - тоже. Пора выдохнуть и заняться делом Yes


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
20.04.2020 12:55
Visit this user's website Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1176

Я от имени простого ЕРМ скриптера неумеющего в UN:C выскажусь.

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

Но и товарищ Algor прав желательно всё что можно обернуть в библиотечные функции, чтобы при любых изменениях кода игры, нужно было поправить адреса только в одной библиотеке.

Как пример вот тут описана функция получения адреса Z переменной, и она оказывается, не работает или уже не работает в ЭРЕ, есть подозрение что постепенно всё больше таких кусочков кода могут устаревать с развитием ЭРЫ, а подчисткой форумов никто заниматься не будет и потом перебирать накопанные на форумах нерабочие варианты это не есть хорошо. Я про то что такая библиотека даст возможность ЭРЕ более свободно развиваться ведь если такой кусочек кода есть только в библиотеке с развитием ЭРЫ достаточно будет поправить это место только в этой в библиотеке чтобы все моды не отваливалились с новым релизом.

P.S. к библиотеке можно даже прикрутить набор юнит тестов чтобы проверять не отвалилось ли чего в новой сборке ЭРЫ Sm
(This post was last modified: 20.04.2020 13:12 by Zur13.)
20.04.2020 13:03
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #1177

(20.04.2020 13:03)Zur13 Wrote:  Как пример вот тут описана функция получения адреса Z переменной, и она оказывается, не работает или уже не работает в ЭРЕ, есть подозрение что постепенно всё больше таких кусочков кода могут устаревать с развитием ЭРЫ

Прямая адресация - зло. Для совместимости с данными, которые могут быть перенесены другими моддерами, лучше считывать адреса с железобетонных функций, которые их используют.

Естественно, способ получения адреса по той ссылке - старый и не рассчитан на ERA (которой тогда ещё не было).

Про устаревание: к примеру, ERA PLUS переносит кучу данных для поддержки новых игровых фракций, после чего злая половина ERM-команд просто не работают или работают с ошибками. И это совсем не повод менять сам код ERA ради поддержки изменений в ERA PLUS - тут всё всецело на совести авторов модов, а не автора платформы ERA. Т.е. только моддеры могут скооперироваться и выпустить "мод для моддеров" с набором полезных ERM-функций.
(This post was last modified: 20.04.2020 14:57 by XEPOMAHT.)
20.04.2020 14:41
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1178

(20.04.2020 14:41)XEPOMAHT Wrote:  
(20.04.2020 13:03)Zur13 Wrote:  Как пример вот тут описана функция получения адреса Z переменной, и она оказывается, не работает или уже не работает в ЭРЕ, есть подозрение что постепенно всё больше таких кусочков кода могут устаревать с развитием ЭРЫ

Прямая адресация - зло. Для совместимости с данными, которые могут быть перенесены другими моддерами, лучше считывать адреса с железобетонных функций, которые их используют.

Естественно, способ получения адреса по той ссылке - старый и не рассчитан на ERA (которой тогда ещё не было).

Про устаревание: к примеру, ERA PLUS переносит кучу данных для поддержки новых игровых фракций, после чего злая половина ERM-команд просто не работают или работают с ошибками. И это совсем не повод менять сам код ERA ради поддержки изменений в ERA PLUS - тут всё всецело на совести авторов модов, а не автора платформы ERA. Т.е. только моддеры могут скооперироваться и выпустить "мод для моддеров" с набором полезных ERM-функций.

Я про ЭРА плюс мало знаю, потому мне сложно оценить эту сторону, я оцениваю предложение товарища Algor, по расширению базового функционала ЕРМ с помощью библиотеки общих ЕРМ функций, как пример та же функция получения максимальной маны героя. Я понимаю, что под каждый мод ЭРУ переписывать это зло, но ведь если посмотреть на сообщения товарища Berserker, то создается впечатление что проблемы обратной совместимости занимают довольно много времени, и вынесенная библиотека может частично помочь отвязать функционал предоставляемый ЭРА от модов, такой себе промежуточный слой. Т.е. мое предложение таково что нужно выделить одну библиотеку открытую для правок модерами, и на нее ориентироваться при обновлении ЭРА (из разряда если обновление ломает что-то, то вот такой фикс в этой библиотеке должен исправить ситуацию).
20.04.2020 15:27
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #1179

(20.04.2020 15:27)Zur13 Wrote:  проблемы обратной совместимости занимают довольно много времени, и вынесенная библиотека может частично помочь отвязать функционал предоставляемый ЭРА от модов, такой себе промежуточный слой. Т.е. мое предложение таково что нужно выделить одну библиотеку открытую для правок модерами, и на нее ориентироваться при обновлении ЭРА (из разряда если обновление ломает что-то, то вот такой фикс в этой библиотеке должен исправить ситуацию).

Ну если Берсеркер сможет и захочет целиком выделить код, отвечающий за ERM, из era.dll, создать отдельную библиотеку, к примеру erm.dll, и отдать её вместе с исходными кодами сообществу моддеров, тогда моддеры сами смогут следить за совместимостью, что-то добавлять или убирать в ERM по своему усмотрению (после чего может расплодиться куча разных версий erm.dll, под которых делать "совместимые" со всеми версиями одной библиотеки станет ещё геморройнее 148 ).

Делать фиксы ERM-комманд и сейчас может каждый желающий (даже с помощью UN:C можно изменить работу команды UN:C 148 ), если не умеете, просите готовую библиотеку - вряд ли найдётся сейчас такой добряк, который сделает такую грязную работу за Вас.

Да и использование общих ЕРМ функций порождает нарокотические зависимости от них в куче модов, чего лучше не делать. Неленивые просто копируют нужный ERM-код с переименованием функции и не парятся.
20.04.2020 16:07
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1180

(20.04.2020 16:07)XEPOMAHT Wrote:  Ну если Берсеркер сможет и захочет целиком выделить код, отвечающий за ERM, из era.dll, создать отдельную библиотеку, к примеру erm.dll, и отдать её вместе с исходными кодами сообществу моддеров, тогда моддеры сами смогут следить за совместимостью, что-то добавлять или убирать в ERM по своему усмотрению (после чего может расплодиться куча разных версий erm.dll, под которых делать "совместимые" со всеми версиями одной библиотеки станет ещё геморройнее 148 ).

Делать фиксы ERM-комманд и сейчас может каждый желающий (даже с помощью UN:C можно изменить работу команды UN:C 148 ), если не умеете, просите готовую библиотеку - вряд ли найдётся сейчас такой добряк, который сделает такую грязную работу за Вас.

Да и использование общих ЕРМ функций порождает нарокотические зависимости от них в куче модов, чего лучше не делать. Неленивые просто копируют нужный ERM-код с переименованием функции и не парятся.

Мы кажется говорим о разных вещах, под библиотекой ЕРМ функций я имелл ввиду имено билбиотеку ерм функций в виде, одного или нескольких ЕРМ файлов с функциями внутри которых используется в том числе UN:C команды, типа таких:

!?FU(EraGetMaxHeroMana);
!?FU(EraGetBattlefieldStackMemRef);
!?FU(EraGetZVarMemRef);
!?FU(EraSetArtNameFromErtString);

И если после обновления ЭРЫ сбивается адресация UN:C, то достаточно будет править код только в этой библиотеке, а все моды использующие функционал библиотеки смогут продолжать работать как работали без обновлений.
20.04.2020 16:20
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #1181

(20.04.2020 16:20)Zur13 Wrote:  билбиотеку ерм функций в виде, одного или нескольких ЕРМ файлов с функциями внутри которых используется в том числе UN:C команды, типа таких:

!?FU(EraGetMaxHeroMana);
!?FU(EraGetBattlefieldStackMemRef);
!?FU(EraGetZVarMemRef);
!?FU(EraSetArtNameFromErtString);

И если после обновления ЭРЫ сбивается адресация UN:C, то достаточно будет править код только в этой библиотеке, а все моды использующие функционал библиотеки смогут продолжать работать как работали без обновлений.

А отчего такой "библиотекой" не может быть тот же ERA Scripts? И Вы сами можете исправить неправильную адресацию UN:C и выложить обновлённый FUN.erm для включения его в обновление ERA Scripts. Поменять erm-скрипт и поделиться им в теме скриптов - разве так сложно?
20.04.2020 16:46
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1182

(20.04.2020 16:46)XEPOMAHT Wrote:  А отчего такой "библиотекой" не может быть тот же ERA Scripts? И Вы сами можете исправить неправильную адресацию UN:C и выложить обновлённый FUN.erm для включения его в обновление ERA Scripts. Поменять erm-скрипт и поделиться им в теме скриптов - разве так сложно?

Хотя бы потому что ERA Scripts содержит просто тонну расширенных игровых механик, и кода который может мешать другим мододелам, потому включать её как базовую зависимость для всех остальных модов неправильно. Но вот FUN.erm оказался прямо очень полезен и удобен, настолько, что его просто хочется увидеть отдельным базовым модом, но опять-таки если развитием этого мода смогут заниматься мододелы, то нужно чтобы и при разработке ЭРЫ его наличие учитывалось. Как я писал мне кажется что правильно было бы выделить такой мод-библиотеку как промежуточный слой между ЕРМ и базой ЭРА.
(This post was last modified: 20.04.2020 17:06 by Zur13.)
20.04.2020 16:58
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1183

Библиотека должна быть хоть сколько-нибудь централизованная, иначе будет бардак у того свои правки у другого свои, зачем добавлять несовместимостей? А если каждый будет себе собирать солянку из кусков скриптов разбросанных по форуму, то опять-таки возвращаемся к ситуации что при обновлении ЭРА вдруг половина модов перестает работать, половина модов уже не поддерживается, авторы второй половины бегут на форум и пытаются понять как им все исправить.

И если честно я пока не понимаю конт-аргументации, почему одна централизованная библиотека расширенных функций это плохо? Ведь наоборот это облегчает ситуацию и для модописателей и для разработчика ЭРА.

P.S.> Когда разработчики Цивилизации 6 выпустили осеннее обновление и внезапно два десятка моих модов перестали работать было не весело, пришлось 3 недели только и заниматься починкой и перезаливом всего. Не буду рассказывать что я обо всё этом думал тогда Sm
20.04.2020 17:14
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #1184



BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
20.04.2020 17:19
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #1185

(20.04.2020 17:14)Zur13 Wrote:  И если честно я пока не понимаю конт-аргументации, почему одна централизованная библиотека расширенных функций это плохо? Ведь наоборот это облегчает ситуацию и для модописателей и для разработчика ЭРА.

Плохо тем, что нужен хотя бы 1 человек, который будет заниматься систематизацией, обновлением и добавлением новых erm-функций. Который послезавтра не положит болт с резьбой на это дело. Может быть Algor согласится этим заниматься - желающим необходимо написать в его теме.
20.04.2020 18:10
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