| ZVS   
   Posts: 500
 
 | 
			| 
 
				Звучит отлично.Какую сборку тогда лучше попробовать для игры MP с опытом монстров ну и последними MP совместимыми опциями ERA?
 |  | 
	| 14.06.2022 16:34 |  | 
	
		| daemon_n   
   
   Posts: 4366
 
 | 
			| 
 
				ZVS, на данный момент ту, которую я должен обновить - именно там я удалил все лишние файлы и поместил нужные скрипты. 
Скачать их можно отдельно на git
ZVS , лучше скажи, как мне пропатчить воговскую таблицу заклинаний    
а то тут плагин на новые заклинания сделали, но ERM его не видит
      _PI->WriteDword(0x687FA8, (int)&Spell); - патч содовской таблицы, но вод где и когда патчить erm?
			 
 
  
 Новейший Heroes Launcher
 |  | 
	| 14.06.2022 16:37 |  | 
	
		| XEPOMAHT   
   
   Posts: 2481
 
 | 
			| 
 
				 (14.06.2022 16:37)daemon_n Wrote:  как мне пропатчить воговскую таблицу заклинаний   
 а то тут плагин на новые заклинания сделали, но ERM его не видит
 
Лично я все новые заклинания пишу в оригинальную воговскую таблицу, т.к. в WoG TE (экзешник которой используется в ЭРЕ) эта таблица уже пропатчена и расширена авторами ВоГа. То, что автор плагина тупо скопировал код с аналогичного содовского плагина, забыв о нововведениях ВоГа - проблема автора плагина (у него опыта в написании плагинов уже почти 10 лет, но вот почему-то качество его dll по-прежнему хромает, хотя теоретически он уже вполне должен был работать на уровне Сава или Игрика, но... ему ещё нужно учится и учиться...).
  (14.06.2022 16:37)daemon_n Wrote:       _PI->WriteDword(0x687FA8, (int)&Spell); - патч содовской таблицы, но вод где и когда патчить erm? 
Здесь:
 
	// Spells support 
	{0x59E467+3,DS(Spells),4}, 
	{0x687FA8,DS(Spells),4},
 
Т.к. адрес базовый, то и патч крохотный. А ВоГ традиционно использует ПРЯМУЮ адресацию (базовая - только в ассемблерных вставках), поэтому там - уже колбаса.
			 
				
(This post was last modified: 14.06.2022 17:03 by XEPOMAHT.)
 |  | 
	| 14.06.2022 16:59 |  | 
	
		| ZVS   
   Posts: 500
 
 | 
			| 
 
				daemon_n, "должен обновить" означает, что стоит подождать обновления?Отдельно я бы не качал, т.к. хотел бы полную сборку.
 
 По поводу правки таблицы заклинаний. Я исходники WoG не видел 18 лет...
 Ну так, посмотрел, что с тех пор осталось.
 ERM использует копию таблицы из SoD.
 Сама таблица находится после строк "{"ZMGC03.def", "MGblock3",1}" (это конец таблицы анимаций магии).
 
 Таблица SoD копируется в таблицу WoG так (первый - адрес таблицы SoD):
 {(Byte *)0x6854A0,(Byte *)Spells,sizeof(_Spell_)*SPELLNUM_0}, //
 
 Адреса в памяти SoD таблицы подменяются на адрес WoG таблицы (адреса слева):
 {0x59E467+3,DS(Spells),4},
 {0x687FA8,DS(Spells),4},
 
 Это по старым исходникам.
 Или не эта инфа нужна?
 |  | 
	| 14.06.2022 17:15 |  | 
	
		| XEPOMAHT   
   
   Posts: 2481
 
 | 
			| 
 
				 (14.06.2022 17:08)daemon_n Wrote:  проблема совместимости здесь в том, что воговская таблица подразумевает использование заклинаний существами, а не героями, а потому последующие изменения и расширения не очень легко устроить 
Вроде нет, вот видим, что ВоГ выделает память для таблицы заклинаний согласно структуре:
 
Code:
 extern _Spell_ Spells[SPELLNUM];
 
Если ты делаешь то же самое в плагине, то работать в купе с воговским кодом уже не будет (т.к. воговский код не использует базовую адресацию и всегда будет читать напрямую из памяти вога, а не твоего плагина).
 
Лично у меня в Тифоне монстры колдуют из воговской таблицы, куда во время загрузки и пишутся все данные редактора заклинаний, включая новые бланковые заклинания (которые так же видит и редактор монстров для назначения их любым монстрам в игре).
			 |  | 
	| 14.06.2022 17:21 |  | 
	
		| daemon_n   
   
   Posts: 4366
 
 | 
			| 
 
				ZVS, да, в ближайшие дни будет обнова
 
адреса нужны, спасибо - шаманю потихоньку -  видимо, надо оба патчить. всё так и сделано - игра вполне справляется с новыми параметрами, а вот ERM - нет   
Просто всё ещё сложно понимать всё это, даже освоив с++ базу  XEPOMAHT , тогда придётся идти на радикальны меры и вручную вносить каждый параметр из плагина в новую таблицу через un:c    
 
  
 Новейший Heroes Launcher
 |  | 
	| 14.06.2022 17:24 |  | 
	
		| ZVS   
   Posts: 500
 
 | 
			| 
 
				Таблица SoD копируется в таблицу WoG при старте игры (запуск exe). После этого таблица SoD никак не используется - все внесенные в нее изменения после копирования будут проигнорированы. Изменения надо делать прямо в WoG таблице.
 "Туда" (адрес WoG таблицы) найти можно, например, по адресу 0x59E46A или 0x687FA8. По этим адресам будет адрес таблицы заклинаний WoG сразу после ЗАПУСКА. В образе файла на диске (вне запуска) там будет адрес таблицы SoD.
 
 Это если ЭТОТ код WoG не менялся с момента моего отхода от дел.
 
				
(This post was last modified: 14.06.2022 17:45 by ZVS.)
 |  | 
	| 14.06.2022 17:40 |  | 
	
		| XEPOMAHT   
   
   Posts: 2481
 
 | 
			| 
 
				 (14.06.2022 17:35)daemon_n Wrote:  всё ещё не понимаю - в какой именно момент я должен переадресовать туда?и "туда" это "куда"?
 
У тебя сейчас в плагине такая запись:
 
Code:
 _Spell_ Spell[SPELLS_MAX];
 
Для ВоГа её быть НЕ ДОЛЖНО. Просто избавься от неё (правда, плагин придётся переписать чуть ли не весь). Если не понятно, что это вообще такое и с чем это едят, то... придётся учится кодингу. Просто знания Си++ тебя не спасут.
  (14.06.2022 17:35)daemon_n Wrote:  начнём с того, что в городах и у героя используется таблица по адресу 0x687FA8 
Начни с учёбы по кодингу. Ты совершенно не понимаешь, что "по адресу 0x687FA8" нет никакой таблицы. Там обычный dword и ничего более.
 
Учиться, учиться, учиться и ещё раз учиться, а не пытаться что-то сделать в готовом си-шном коде методом научного тыка.
			 
				
(This post was last modified: 14.06.2022 17:48 by XEPOMAHT.)
 |  | 
	| 14.06.2022 17:44 |  | 
	
		| ZVS   
   Posts: 500
 
 | 
			| 
 
				C и C++ достаточно низкоуревневы. Там не трудно написать любые преобразования адресов, не хуже чем на asm.Я могу посоветовать что-то с настройкой кода, но где плагин посмотреть весь?
 |  | 
	| 14.06.2022 17:50 |  | 
	
		| daemon_n   
   
   Posts: 4366
 
 |  | 
	| 14.06.2022 17:51 |  |