Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 04.08.2010 00:23 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 10.08.2010 00:23 | 
	
		
	 | 
	
		
		MOP 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 1468 
	
		
	 | 
	
		
			
			 
			
				 (10.08.2010 00:23)Berserker Wrote:  MOP, ты не мог бы поделиться своей коллекцией общих бинарных патчей? Тех, что могли бы заюзать другие? 
Таких мало, ибо в основном всё делаю в новой секции или на расчищенном конце содовской .text. Но попробую на досуге отобрать.
 
Вот для начала:
 
; MoP 
; Увольнение последнего отряда в окне героя: 
; 4DDC7E: 
;	CMP EAX,01h => NOP (3) 
; 4DDC81: 
;	JLE SHORT 004DDC8F => NOP(2) 
DDC7E 9090909090 
 
; Увольнение последнего отряда в окне обмена героев: 
; 5AF7D0: 
;	SETG DL => MOV DL,1; NOP 
1AF7D0 B20190 
 
; Увольнение последнего отряда в городе: 
; 5D5139: 
;	CMP EAX,1 => NOP (3) 
; 5D513C: 
;	JLE SHORT 005D5145 => NOP(2) 
1D5139 9090909090 
 
; Увольнение последнего отряда в Гарнизоне: 
; 5D50F1: 
;	CMP EAX,1 => NOP (3) 
; 5D50F4: 
;	JLE SHORT 005D50FD => NOP(2) 
1D50F1 9090909090 
; Врата Замка Инферно: 
1D892C 909090909090; NOP (6) - затереть проверку на тип города 
1D894C 90909090; NOP (4) - затереть проверку на построенность здания 22 
1C2AD5 EB07; JMP SHORT 005C2ADE 
; Разрешить строительство зданий в городах союзника: 
1D5EF7 EB; jz L005D5F0E -> jmp L005D5F0E ; НАЗВАНИЕ: DiplomacyCorrect 
; ВЕРСИЯ: 1.0 
; АВТОР: MoP 
; ОПИСАНИЕ: разрешает присоединение монстров только за деньги 
; EXE: TE 
 
; 4A755D: 
;	JG SHORT 004A75A3 => JMP SHORT 004A75A3 
A755D EB 
; Убрать скидки за уровень существа в Форте-на-Холме: 
E801B B8060000009090909090;  MOV EAX, 6; NOP (5) – всегда расценивать уровень существа как 7-ой. ; Активация кнопки "Следующий герой", отключенной в ТЕ. 
9CE9 84D275768B;    патчинг exe 
; Объединить последний отряд одного героя с отрядом другого в окне города. 
5C7821 B800000000  
			 
			
			
  
Circle of destruction, hammer comes crushing 
Powerhouse of energy 
Whipping up a fury, dominating flurry 
We create the battery
			
		 |  
	 
 | 
	| 12.08.2010 13:55 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 12.08.2010 17:41 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 13.08.2010 00:55 | 
	
		
	 | 
	
		
		MOP 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 1468 
	
		
	 | 
	
		
			
			 
			
				 (13.08.2010 00:55)Berserker Wrote:  как вызвать диалог выбора места телепортации? 
Так: 
!?CM1; //тест: любой клик в любом городе 
!!CA-1:H1/<0; //есть ли герой-гость? 
!!FU&1:E; //выход, если нет 
!!UN:C6919500/4/?y1; //указатель на TownManager 
!!SN:E6129792/2/y1; //выполнить функцию
			  
			
			
  
Circle of destruction, hammer comes crushing 
Powerhouse of energy 
Whipping up a fury, dominating flurry 
We create the battery
			
		 |  
	 
 | 
	| 16.08.2010 14:41 | 
	
		
	 | 
	
		
		feanor 
 
 
		
		
		
			
			
			 
			
Posts: 624 
	
		
	 | 
	
		
			
			 
			
				 (14.08.2010 21:11)Sav Wrote:  Только хотелось бы узнать - нельзя ли как-нибудь универсально узнать, нет ли у существа иммунитета. 
В Эре можно стандартную геройскую функцию дернуть.
 
double __fastcall sub_44A1A0(int spell, int creature, char* hero_caster, char* hero_target).
 
Первый параметр - номер заклинания, 
Второй - номер существа 
Третий - адрес структуры героя, кастующего заклинание 
Четвертый - адрес структуры героя, чье существо подвергается заклинанию (0 - если героя нет)
			  
			
			
			
		 |  
	 
 | 
	| 21.08.2010 23:53 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 22.08.2010 00:03 | 
	
		
	 | 
	
		
		feanor 
 
 
		
		
		
			
			
			 
			
Posts: 624 
	
		
	 | 
	
		
			
			 
			
				Примерный код должен быть таким: 
 
!!UN:C6919480/4/?y1; //базовый адрес 
!!VRy10:S<caster_hero_number> *1170 +136736 +y1; 
!!VRy20:S<target_hero_number> *1170 +136736 +y1; 
!!SN:E4497824/3/<spell>/<creature>/y10/y20; 
 
А вот возвращает оно нефиксированные результаты. 8 бит, плавающая запятая, чтоб её >_<
			 
			
			
			
				
(This post was last modified: 22.08.2010 00:07 by feanor.)
 
			 
		 |  
	 
 | 
	| 22.08.2010 00:05 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 22.08.2010 00:06 | 
	
		
	 | 
	
		
		feanor 
 
 
		
		
		
			
			
			 
			
Posts: 624 
	
		
	 | 
	
		
			
			 
			
				Черт, все-таки там какой-то странный формат идёт.  
В случае иммуна функция возвращает, скажем так, небольшое положительное (16, 45, 34). 
В случае уязвимости - большое отрицательное (порядка -60000) 
 
Что будет в случае удвоенного урона или частичного иммуна - даже думать боюсь. 
Проверил: то же, что и в случае уязвимости.
			 
			
			
			
				
(This post was last modified: 22.08.2010 00:31 by feanor.)
 
			 
		 |  
	 
 | 
	| 22.08.2010 00:27 | 
	
		
	 | 
	
		
		GhostManSD 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				feanor, разрешите поинтересоваться, работаете ли Вы еще над внедрением книг заклинаний для монстров? Если нет, то не могли бы Вы предоставить свои наработки - с полным, разумеется, соблюдением авторских прав. Если все еще работаете, не могли бы Вы подсказать алгоритм создания такой книги для волшебного дракона? В частности, интересует то, можно ли считывать и менять заклинание волшебного дракона.
			 
			
			
  
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
			
		 |  
	 
 | 
	| 22.08.2010 01:07 | 
	
		
	 |