| MOP   
   
   Posts: 1468
 
 | 
			| 
 
				Я это и имел в виду: Quote:меняет и старую структуру 
Правда, едва не затупил, поставив сначала хук на 732CCFh, а не на 732CE1h.
			
 Circle of destruction, hammer comes crushing
 Powerhouse of energy
 Whipping up a fury, dominating flurry
 We create the battery
 
				
(This post was last modified: 25.11.2017 17:49 by MOP.)
 |  | 
	| 25.11.2017 17:46 |  | 
	
		| Ethereal   
   Posts: 371
 
 | 
			| 
 
				 (25.11.2017 15:41)Berserker Wrote:  Можно будет попробовать инструмент в базовую поставку интегрировать, только вопрос совместимости всё же попробовать решить. 
Тогда стоит обратить внимание на Dwellings.dll, на который гавкает и Касперский, и Аваст. Понятно, что можно внести в исключения, но ведь можно сделать так, что бы этого не требовалось?
			 
				
(This post was last modified: 25.11.2017 18:05 by Ethereal.)
 |  | 
	| 25.11.2017 18:03 |  | 
	
		| Berserker   
   
   Posts: 16785
 
 | 
			| 
 
				Она вызывает GetMonName: 
EtherealCode:
 char *GetMonName(int number,int oneMORE){
 #include "templ.h"
 char *zret;
 int shifter;
 if(oneMORE) shifter=4; else shifter=0;
 __asm{
 mov    ecx,number //??? = тип монстра
 lea    edx,[8*ecx]
 sub    edx,ecx
 lea    ecx,[ecx+4*edx]
 mov    edx,0x6747B0
 mov    edx,[edx]
 add    edx,shifter
 mov    eax,[edx+4*ecx+0x14] //-> название монстра ед число
 //  mov    ecx,[edx+4*ecx+18] -> название монстра мн число
 mov    zret,eax
 }
 RETURN(zret)
 }
 , либо Мастера попросим добавить туда мусора или подключить стандартных библиотек, либо придётся упаковывать чем-то и проверять. Но что-то делать точно, жалобы отовсюду, как на мой загрузчик AngelRun (но с тем-то понятно, подгрузка любой dll в любой процесс).
			 |  | 
	| 25.11.2017 18:08 |  | 
	
		| Berserker   
   
   Posts: 16785
 
 | 
			| 
 
				MOP, подскажи, пожалуйста, ещё. Если предполагается, что будет несколько модов, использующих Тифон, то они все будут биться за общие ресурсы с настройками монстров, заклинаний, городов, так? Эти настройки частично в файлах mop, которые можно было бы на лету генерировать, если знать структуру (кол-во записей * размер записи?). Частично в файлах текстовых — имена и описания. Верно?
 Если бы в теории Тифон вызывал функции Эры: LoadMopFile, LoadMopTxtFile, которые бы генерировали эти файлы из множества других по принципу модульности (сборки из оригинала и только добавленных/изменённых), то можно было бы использовать несколько модов на базе Тифона?
 |  | 
	| 25.11.2017 18:16 |  | 
	
		| MOP   
   
   Posts: 1468
 
 | 
			| 
 
				Фух, исправил. Дело было в резервации ссылок на строки для UN:G1 с 0 в качестве последнего параметра. Я отрубил вообще это копирование в MoP, ибо мне никогда оно не нужно, а по слепому методу сделал так же и в Тифоне. Добавил три таблицы, изменил адреса и лимиты. Изумрудная Башня больше не вылетает. 
Берс, если тестируешь, то придётся перезапускать, ибо копирование ссылок на строки идёт в инструкции. 
НУ что, где там ещё баги?
  
 Circle of destruction, hammer comes crushing
 Powerhouse of energy
 Whipping up a fury, dominating flurry
 We create the battery
 
				
(This post was last modified: 25.11.2017 20:20 by MOP.)
 |  | 
	| 25.11.2017 19:58 |  | 
	
		| MOP   
   
   Posts: 1468
 
 | 
			| 
 
				 (25.11.2017 18:16)Berserker Wrote:  MOP, подскажи, пожалуйста, ещё. Если предполагается, что будет несколько модов, использующих Тифон, то они все будут биться за общие ресурсы с настройками монстров, заклинаний, городов, так? Эти настройки частично в файлах mop, которые можно было бы на лету генерировать, если знать структуру (кол-во записей * размер записи?). Частично в файлах текстовых — имена и описания. Верно?
 Если бы в теории Тифон вызывал функции Эры: LoadMopFile, LoadMopTxtFile, которые бы генерировали эти файлы из множества других по принципу модульности (сборки из оригинала и только добавленных/изменённых), то можно было бы использовать несколько модов на базе Тифона?
 
Понятно, куда ты клонишь, но я не знаю, возможно ли это. Это различать стандартных и добавленных как-то надо, а ведь и старых тоже люди правят. Ещё править скрипты и плагины под сгенерированные на лету номера. Да и лимит существ не такой большой - 1000 или максимум 1024 (из-за хранения типа существа в 10-битовой ячейке). 
В общем, фантастика, на мой взгляд.
			 
 Circle of destruction, hammer comes crushing
 Powerhouse of energy
 Whipping up a fury, dominating flurry
 We create the battery
 |  | 
	| 25.11.2017 20:04 |  | 
	
		| Berserker   
   
   Posts: 16785
 
 | 
			| 
 
				Quote:Фух, исправил. 
Молодца! А то по коду хоть убей всё чисто )
 Quote:НУ что, где там ещё баги? 
Накопаем!    Quote:В общем, фантастика, на мой взгляд.  
А можешь на вскидку сказать структуру основных mop-файлов. Там просто структуры городов/монстров * кол-во?
			 |  | 
	| 25.11.2017 21:18 |  | 
	
		| MOP   
   
   Posts: 1468
 
 | 
			| 
 
				Ага, сам же и нашёл. В конце функции загрузки параметров существ надо было mov dword [27F9A34h], 0 поставить, иначе все имена сбиваются как при рестарте, так и при загрузке сейва. 
Вот теперь с именами всё.
  (25.11.2017 21:18)Berserker Wrote:  А можешь на вскидку сказать структуру основных mop-файлов. Там просто структуры городов/монстров * кол-во? 
Нет, там всё не так, как на самом деле. И даже структура файла существ нигде не зафиксирована.
			
 Circle of destruction, hammer comes crushing
 Powerhouse of energy
 Whipping up a fury, dominating flurry
 We create the battery
 
				
(This post was last modified: 25.11.2017 21:44 by MOP.)
 |  | 
	| 25.11.2017 21:42 |  | 
	
		| Berserker   
   
   Posts: 16785
 
 | 
			| 
 
				Quote:Вот теперь с именами всё. 
Перекачивать по ссылкам в первом посте? )
 Quote:Нет, там всё не так, как на самом деле. И даже структура файла существ нигде не зафиксирована.  
Суровая школа )) В теории я могу хранить стандартные mop-файлы настроек, брать mop-bin файлы с разными именами из модов в виде патчей на оригинал (размеры то фиксированные?) и создавать на лету общие файлы *.mop, которые скармливать Тифону через АПИ. Если что, думаю копать в подобную сторону. Там и нужна-то только приблизительная страктура в виде смещений и размеров блоков.
			 |  | 
	| 25.11.2017 23:01 |  | 
	
		| MOP   
   
   Posts: 1468
 
 | 
			| 
 
				 (25.11.2017 23:01)Berserker Wrote:  Перекачивать по ссылкам в первом посте? ) 
Да.
  (25.11.2017 23:01)Berserker Wrote:  Там и нужна-то только приблизительная страктура в виде смещений и размеров блоков. 
Просплюсь, отдохну - может, нарою.
			 
 Circle of destruction, hammer comes crushing
 Powerhouse of energy
 Whipping up a fury, dominating flurry
 We create the battery
 |  | 
	| 25.11.2017 23:03 |  | 
	
		| MOP   
   
   Posts: 1468
 
 | 
			| 
 
				Структура MonstersSetup.mop :
 Ammo.mopДанные - размер (умножаем на тысячу для всех существ) - смещение в файле настроек
Code:
 Боевой деф                                               16    ; 0Озвучка                                                  5     ; +16000
 Флаги                                                    4     ; +21000
 Уровень                                                  1     ; +25000
 Город                                                    1     ; +26000
 Контрудары                                               1     ; +27000
 Всегда положительная Мораль                              1     ; +28000
 Всегда положительная Удача                               1     ; +29000
 Тип снаряда (НЕ используется)                            1     ; +30000
 Уровень баллистики                                       1     ; +31000
 Смертельный удар                                         1     ; +32000
 Облако Смерти и Огненный Шар                             1     ; +33000
 Шпионаж                                                  1     ; +34000
 Страх                                                    1     ; +35000
 Бесстрашие                                               1     ; +36000
 Нет штрафа преград                                       1     ; +37000
 Магическая аура                                          1     ; +38000
 Огненный щит                                             1     ; +39000
 Атака с возвратом                                        1     ; +40000
 Снижение цены заклинаний для хозяина                     1     ; +41000
 Повышение цены заклинаний для врага                      1     ; +42000
 Превращение в Трансформаторе Скелетов                    4     ; +43000
 Апгрейд                                                  4     ; +47000
 Свойства при атаке1                                      1     ; +51000
 Свойства при атаке2                                      1     ; +52000
 Магические свойства1                                     1     ; +53000
 Магические свойства2                                     1     ; +54000
 Магические свойства3                                     1     ; +55000
 Иммунитет                                                1     ; +56000
 Гномье сопротивление                                     1     ; +57000
 Големное сопротивление                                   1     ; +58000
 Заклинание                                               1     ; +59000
 Ненависть                                                1     ; +60000
 Кавалерийский бонус                                      1     ; +61000
 Иммунитет к кав. бонусу                                  1     ; +62000
 Регенерация, очки HP                                     4     ; +63000
 Регенерация, шанс                                        1     ; +67000
 Атака тремя головами                                     1     ; +68000
 Кража маны                                               2     ; +69000
 Магический канал                                         1     ; +71000
 Волшебное зеркало                                        1     ; +72000
 Снайперство                                              1     ; +73000
 Стрельба вплотную                                        1     ; +74000
 Уменьшение защиты врага                                  1     ; +75000
 Возрождение                                              1     ; +76000
 Атака стаей (НЕ используется)                            1     ; +77000
 Атака всех, мимо кого проносится (НЕ используется)       1     ; +78000
 Атака всех мимо проносящихся (НЕ используется)           1     ; +79000
 Превентивный контрудар                                   1     ; +80000
 Ответный выстрел                                         1     ; +81000
 Цвет луча при стрельбе                                   1     ; +82000
 Запрещён для генерации                                   1     ; +83000
 Оглушение (НЕ используется)                              1     ; +84000
 {
 Dword Цена_в_дереве
 Dword Цена_в_ртути
 Dword Цена_в_камнях
 Dword Цена_в_сере
 Dword Цена_в_кристаллах
 Dword Цена_в_драг_камнях
 Dword Цена_в_золоте
 Dword Fight_Value
 Dword AI_Value
 Dword Прирост                            84    ; +85000
 Dword Доп_прирост
 Dword Здоровье
 Dword Скорость
 Dword Атака
 Dword Защита
 Dword Мин_урон
 Dword Макс_урон
 Dword Боезапас
 Dword Заклинания
 Dword Мин_кол_во_на_карте
 Dword Макс_кол_во_на_карте
 }
 Структура CrAnim                                         84    ; +169000
 Защита от стрел                                          1     ; +253000
 - названия снарядов, 16 байт на существо.
ImposedSpells.mop  - наложенные заклинания, 3 заклинания + 3 уровня, всего 6 байт на существо.
DefenseBonus.mop  - бонус защиты при вставании в оборону, 1 байт на существо.
Lang . Первый байт - язык редактора и игры (0 - английский, 1 - русский). Следом слово для хранения типа существа, которое было выбрано перед закрытием программы (будет открыто при следующем запуске).
TownsSetup.mop :
 
Code:
 Древо построек                               8 байт * 44 здания * 9 городов             ; 0Основные обитатели города                    4 байта * 7 уровней * 2 грейда * 9 городов ; +3168
 Альтернативные обитатели города              4 байта * 7 уровней * 2 грейда * 9 городов ; +3672
 Circle of destruction, hammer comes crushing
 Powerhouse of energy
 Whipping up a fury, dominating flurry
 We create the battery
 |  | 
	| 26.11.2017 09:21 |  |