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: 16788 
	
		
	 | 
	
		
			
			 
			
				Она вызывает GetMonName: 
Code: 
 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) 
}
  
Ethereal, либо Мастера попросим добавить туда мусора или подключить стандартных библиотек, либо придётся упаковывать чем-то и проверять. Но что-то делать точно, жалобы отовсюду, как на мой загрузчик AngelRun (но с тем-то понятно, подгрузка любой dll в любой процесс).
			  
			
			
			
		 |  
	 
 | 
	| 25.11.2017 18:08 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
			
			 
			
				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: 16788 
	
		
	 | 
	
		
			
			 
			
				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: 16788 
	
		
	 | 
	
		
			
			 
			
				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:
 Данные - размер (умножаем на тысячу для всех существ) - смещение в файле настроек
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
  
  
Ammo.mop - названия снарядов, 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 | 
	
		
	 |