| igrik   
   Posts: 2821
 
 | 
			| 
 
				Мои мысли по этому поводу таковы: сама игра есть библиотека необходимых функций, событий и свойств. Я поэтому и очень сильно просил Берса, чтобы он включил 3 рессивера в базу эры (HE:Z, BM:Z и расширенное UN:C). Через них можно сделать практически половину необходимого функционала для стандартных потребностей пользователя. Просто нужно показать пользователю как это научиться легко делать самому.
 Поэтому я не вижу смысла в ERM библиотеке. Также я не вижу чем полезным можно дополнить тот же FUN.erm. В нем уже есть всё необходимое.
 
 game bug fixes extended.dll  ||  My Plugins  ||  My GitHub
 |  | 
	| 20.04.2020 11:23 |  | 
	
		| Algor   
   
   Posts: 3883
 
 | 
			| 
 
				 (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:  Просто нужно показать пользователю как это научиться легко делать самому. 
Да, можно все делать сбазовым наборос инструментов. Да хоть на асме можно все делать. 
Вопрос только в том, нахрена тратить время и изобретать велосипеды, которые в общем случае будут еще и кривыми, если можно взять готовый, уже вылизанный, сесть на него и ехать дальше писать что-то действительно новое?
			 
 
 |  | 
	| 20.04.2020 12:25 |  | 
	
		| igrik   
   Posts: 2821
 
 | 
			| 
 
				 (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 |  | 
	
		| Algor   
   
   Posts: 3883
 
 | 
			| 
 
				igrik, я понимаю, что не подстелишь везде соломку. Это и не нужно. 
Но те моменты, которые требуют использования особых хуков или UN:C не плохо бы оформить в виде функций.
 
Конечно, если бы были !!HE-ресиверы, возвращающие тот же максимум маны или имя фала портрета героя, было бы еще более здОрово. 
Но их нет и, значит, базовым функционалом ERM оно не делается (кроме, может, совсем-через-жопных вариантов). Поэтому такая библиотека, имхо - выход. 
Для себя я так решил давно. И сделал. И продолжу развивать по мере появления необходимости.
 
Давить и спорить не хочется. Вы с Берсом видите проблему под другим углом. Меня ваши доводы не убедили, вас мои - тоже. Пора выдохнуть и заняться делом    
 
 |  | 
	| 20.04.2020 12:55 |  | 
	
		| Zur13   
   Posts: 223
 
 | 
			| 
 
				Я от имени простого ЕРМ скриптера неумеющего в UN:C выскажусь.  
Товарищ igrik  прав, адрес менеджера героев и менеджера битвы настолько часто нужен что их действительно стоило бы добавить в базовый ЕРМ, а почему не добавить расширенный синтаксис UN:C мне вообще не ясно.
 
Но и товарищ Algor  прав желательно всё что можно обернуть в библиотечные функции, чтобы при любых изменениях кода игры, нужно было поправить адреса только в одной библиотеке. 
 
Как пример вот тут  описана функция получения адреса Z переменной, и она оказывается, не работает или уже не работает в ЭРЕ, есть подозрение что постепенно всё больше таких кусочков кода могут устаревать с развитием ЭРЫ, а подчисткой форумов никто заниматься не будет и потом перебирать накопанные на форумах нерабочие варианты это не есть хорошо. Я про то что такая библиотека даст возможность ЭРЕ более свободно развиваться ведь если такой кусочек кода есть только в библиотеке с развитием ЭРЫ достаточно будет поправить это место только в этой в библиотеке чтобы все моды не отваливалились с новым релизом.
 
P.S. к библиотеке можно даже прикрутить набор юнит тестов чтобы проверять не отвалилось ли чего в новой сборке ЭРЫ   
				
(This post was last modified: 20.04.2020 13:12 by Zur13.)
 |  | 
	| 20.04.2020 13:03 |  | 
	
		| XEPOMAHT   
   
   Posts: 2481
 
 | 
			| 
 
				 (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 |  | 
	
		| Zur13   
   Posts: 223
 
 | 
			| 
 
				 (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 |  | 
	
		| XEPOMAHT   
   
   Posts: 2481
 
 | 
			| 
 
				 (20.04.2020 15:27)Zur13 Wrote:  проблемы обратной совместимости занимают довольно много времени, и вынесенная библиотека может частично помочь отвязать функционал предоставляемый ЭРА от модов, такой себе промежуточный слой. Т.е. мое предложение таково что нужно выделить одну библиотеку открытую для правок модерами, и на нее ориентироваться при обновлении ЭРА (из разряда если обновление ломает что-то, то вот такой фикс в этой библиотеке должен исправить ситуацию). 
Ну если Берсеркер сможет и захочет целиком выделить код, отвечающий за ERM, из era.dll, создать отдельную библиотеку, к примеру erm.dll, и отдать её вместе с исходными кодами сообществу моддеров, тогда моддеры сами смогут следить за совместимостью, что-то добавлять или убирать в ERM по своему усмотрению (после чего может расплодиться куча разных версий erm.dll, под которых делать "совместимые" со всеми версиями одной библиотеки станет ещё геморройнее    ).
 
Делать фиксы ERM-комманд и сейчас может каждый желающий (даже с помощью UN:C можно изменить работу команды UN:C    ), если не умеете, просите готовую библиотеку - вряд ли найдётся сейчас такой добряк, который сделает такую грязную работу за Вас.
 
Да и использование общих ЕРМ функций порождает  нарокотические зависимости от них в куче модов, чего лучше не делать. Неленивые просто копируют нужный ERM-код с переименованием функции и не парятся.
			 |  | 
	| 20.04.2020 16:07 |  | 
	
		| Zur13   
   Posts: 223
 
 | 
			| 
 
				 (20.04.2020 16:07)XEPOMAHT Wrote:  Ну если Берсеркер сможет и захочет целиком выделить код, отвечающий за ERM, из era.dll, создать отдельную библиотеку, к примеру erm.dll, и отдать её вместе с исходными кодами сообществу моддеров, тогда моддеры сами смогут следить за совместимостью, что-то добавлять или убирать в ERM по своему усмотрению (после чего может расплодиться куча разных версий erm.dll, под которых делать "совместимые" со всеми версиями одной библиотеки станет ещё геморройнее  ). 
 Делать фиксы ERM-комманд и сейчас может каждый желающий (даже с помощью UN:C можно изменить работу команды UN:C
  ), если не умеете, просите готовую библиотеку - вряд ли найдётся сейчас такой добряк, который сделает такую грязную работу за Вас. 
 Да и использование общих ЕРМ функций порождает
 нарокотическиезависимости от них в куче модов, чего лучше не делать. Неленивые просто копируют нужный ERM-код с переименованием функции и не парятся. 
Мы кажется говорим о разных вещах, под библиотекой ЕРМ функций я имелл ввиду имено билбиотеку ерм функций в виде, одного или нескольких ЕРМ файлов с функциями внутри которых используется в том числе UN:C команды, типа таких:
 
!?FU(EraGetMaxHeroMana); 
!?FU(EraGetBattlefieldStackMemRef); 
!?FU(EraGetZVarMemRef); 
!?FU(EraSetArtNameFromErtString);
 
И если после обновления ЭРЫ сбивается адресация UN:C, то достаточно будет править код только в этой библиотеке, а все моды использующие функционал библиотеки смогут продолжать работать как работали без обновлений.
			 |  | 
	| 20.04.2020 16:20 |  | 
	
		| Zur13   
   Posts: 223
 
 | 
			| 
 
				 (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 |  | 
	
		| Zur13   
   Posts: 223
 
 | 
			| 
 
				Библиотека должна быть хоть сколько-нибудь централизованная, иначе будет бардак у того свои правки у другого свои, зачем добавлять несовместимостей? А если каждый будет себе собирать солянку из кусков скриптов разбросанных по форуму, то опять-таки возвращаемся к ситуации что при обновлении ЭРА вдруг половина модов перестает работать, половина модов уже не поддерживается, авторы второй половины бегут на форум и пытаются понять как им все исправить.  
И если честно я пока не понимаю конт-аргументации, почему одна централизованная библиотека расширенных функций это плохо? Ведь наоборот это облегчает ситуацию и для модописателей и для разработчика ЭРА.
 
P.S.> Когда разработчики Цивилизации 6 выпустили осеннее обновление и внезапно два десятка моих модов перестали работать было не весело, пришлось 3 недели только и заниматься починкой и перезаливом всего. Не буду рассказывать что я обо всё этом думал тогда    |  | 
	| 20.04.2020 17:14 |  | 
	
		| Algor   
   
   Posts: 3883
 
 |  | 
	| 20.04.2020 17:19 |  |