GhostManSD 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				Bers, спасибо! Тупанул и скрипт вставил в свою карту с прочими скриптами, даже не задумываясь. Хотя пересекающихся переменных вроде не было, всё же не стоило так делать.
			 
			
			
  
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
			
		 |  
	 
 | 
	| 01.09.2010 01:52 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				Quote:Да и убиться можно с 
реализацией, цель средств не оправдывает. 
Не так уж это и сложно.
 Quote:Тупанул и скрипт вставил в свою карту с 
прочими скриптами, даже не задумываясь. Хотя 
пересекающихся переменных вроде не было, всё же не 
стоило так делать. 
А если не тупить, остальное работает?
			  
			
			
			
		 |  
	 
 | 
	| 01.09.2010 11:07 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				По поводу !!SN - в Эре его обязательно надо писать !!SN:Pz1;, но не !!SN : Pz1;. 
Из этого, возможно и другие ошибки.
			 
			
			
			
		 |  
	 
 | 
	| 01.09.2010 18:49 | 
	
		
	 | 
	
		
		GhostManSD 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				Sav, приеду домой и поудаляю пробелы (банальная замена в скриптере " : " на ":"). Также, если будет время, постараюсь сделать более структурированные комментарии, разделы и подразделы. Также пора обновить драконий архив (черт, Sav, твое название уверенно вошло в лексикон и теперь я весь сервис box.net так называю...  ).
			  
			
			
  
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
			
		 |  
	 
 | 
	| 01.09.2010 19:18 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				GhostManSD Wrote:Sav, приеду домой и поудаляю пробелы (банальная замена в скриптере " : " на ":"). 
С этим я как-нибудь и сам справлюсь.  
GhostManSD Wrote:Также, если будет время, постараюсь сделать более структурированные комментарии, разделы и подразделы. 
Это лучше пока сделать только с кристальным драконом - с горынычем я  ещё не закончил и может быть многое переделаю.
 
Горыныча лучше пока вообще не переделывай, пока я не завершу определённую часть работы над ним, в т. ч. встрою твои прошлые изменения.
			  
			
			
			
		 |  
	 
 | 
	| 01.09.2010 19:30 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				А что за mgm в драконьем архиве?
			 
			
			
			
		 |  
	 
 | 
	| 03.09.2010 17:46 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
 | 
	| 03.09.2010 18:02 | 
	
		
	 | 
	
		
		GhostManSD 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				См. в теме "Расширенные диалоги".
			 
			
			
  
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
			
		 |  
	 
 | 
	| 03.09.2010 18:39 | 
	
		
	 | 
	
		
		GhostManSD 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				Появились кое-какие соображения по поводу драколича. 
1. Уменьшить характеристики. Мне не очень нравится, что этот монстр стоит на втором месте после лазурного дракона: разве может быть мертвый дракон сильнее живых? Да и чтобы способности, предлагаемые ниже, не были имбой, если коллеги эти способности утвердят.   
2. Можно добавить драколичу способность увеличивать количество так же, как призраки. Или же количество не менять, а увеличивать потихоньку здоровье. 
3. Или же возможность воскресить из трупов каких-нибудь некромантских юнитов, как адские отродья воскрешают из трупов демонов.
			  
			
			
  
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
			
		 |  
	 
 | 
	| 07.09.2010 18:35 | 
	
		
	 | 
	
		
		gamecreator 
 
 
		
		
		
			
			
			
 
 
			
Posts: 7107 
	
		
	 | 
	
		
 | 
	| 07.09.2010 18:45 | 
	
		
	 | 
	
		
		GhostManSD 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				А личи сильнее монахов?
			 
			
			
  
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
			
		 |  
	 
 | 
	| 07.09.2010 19:06 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				Quote:1. Уменьшить характеристики. Мне не очень нравится, 
что этот монстр стоит на втором месте после лазурного 
дракона : разве может быть мертвый дракон сильнее 
живых? Да и чтобы способности, предлагаемые ниже, не 
были имбой, если коллеги эти способности утвердят. Ab 
Наверное.
 Quote:2. Можно добавить драколичу способность увеличивать 
количество так же, как призраки. Или же количество не 
менять, а увеличивать потихоньку здоровье. 
Не знаю, как-то не по-драконьи это.  
Quote:3. Или же возможность воскресить из трупов каких- 
нибудь некромантских юнитов, как адские отродья 
воскрешают из трупов демонов. 
В целом нормально. Но драколич - не монстр некрополиса. Поэтому в таком случае ему лучше дать возможность возрождать нечисть из любого трупа, или, например, вызывать её при ударе.
			  
			
			
			
		 |  
	 
 | 
	| 07.09.2010 20:07 | 
	
		
	 | 
	
		
		GhostManSD 
 
 
		
		
		
			
			
			
 
 
			
Posts: 1054 
	
		
	 | 
	
		
			
			 
			
				Сав, я в пункте 3 криво выразился. Я имел в виду, что из любого трупа можно возродить нежить.
			 
			
			
  
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
			
		 |  
	 
 | 
	| 07.09.2010 22:02 | 
	
		
	 | 
	
		
		Sav 
 
 
		
		
		
			
			
			 
			
Posts: 2180 
	
		
	 | 
	
		
			
			 
			
				Написал dll-ку для горыныча, создающую что-то типа пост-триггера !$MF. 
Ссылку удалил. Далее в теме новая версия.
LIBRARY HookAfterDamage; 
{!INFO 
MODULENAME = 'AfterDamage' 
VERSION = '1.0' 
AUTHOR = 'Sav' 
} 
 
USES Win, Utils, SysUtils, VPUtils; 
 
//PROCEDURE HookCode(P: POINTER; NewAddr: POINTER; UseCall: BOOLEAN); external 'angel' name 'HookCode'; 
 
CONST 
(* HookCode constants *) 
C_HOOKTYPE_JUMP = FALSE; 
C_HOOKTYPE_CALL = TRUE; 
C_OPCODE_JUMP = $E9; 
C_OPCODE_CALL = $E8; 
C_UNIHOOK_SIZE = 5; 
 
TYPE 
THookRec = RECORD    Opcode: BYTE;    Ofs: INTEGER; 
END; // .record THookRec 
 
VAR 
Temp: INTEGER; 
 
PROCEDURE WriteAtCode(P: POINTER; Buf: POINTER; Count: INTEGER); 
BEGIN 
Win.VirtualProtect(P, Count, PAGE_READWRITE, @Temp); 
Win.CopyMemory(P, Buf, Count); 
Win.VirtualProtect(P, Count, Temp, NIL); 
END; // .procedure WriteAtCode 
 
PROCEDURE HookCode(P: POINTER; NewAddr: POINTER; UseCall: BOOLEAN); 
VAR 
HookRec: THookRec; 
BEGIN 
IF UseCall THEN BEGIN    HookRec.Opcode:=C_OPCODE_CALL; 
END // .if 
ELSE BEGIN    HookRec.Opcode:=C_OPCODE_JUMP; 
END; // .else 
HookRec.Ofs:=INTEGER(NewAddr)-INTEGER(P)-C_UNIHOOK_SIZE; 
WriteAtCode(P, @HookRec, 5); 
END; // .procedure HookCode 
 
PROCEDURE Hook_AfterDamage; ASSEMBLER; {$FRAME-} 
ASM 
PUSH EBX 
MOV EBX, $7C8554 
MOV EAX, CS:[EBX] 
POP EBX 
CALL EAX 
PUSHAD 
PUSH 9500//номер ERM-функции. 
MOV EAX, $74CE30 
CALL EAX//вызываем C_FUNC_ZVS_CALLFU 
ADD ESP, 4 
POPAD 
PUSH $756E41 
END; 
 
BEGIN 
HookCode(POINTER($756E3B), @Hook_AfterDamage, C_HOOKTYPE_JUMP); 
END.  
Она позволит нормально колдовать заклинания после атаки, со звуком и логом в нужный момент. 
Думаю, что я ещё буду изменять эту dll-ку, хотя у меня может ничего и не получиться.  
			 
			
			
			
				
(This post was last modified: 19.09.2010 23:34 by Sav.)
 
			 
		 |  
	 
 | 
	| 10.09.2010 23:58 | 
	
		
	 | 
	
		
		Berserker 
 
 
		
		
		
			
			
 
 
			
 
 
			
Posts: 16788 
	
		
	 | 
	
		
 | 
	| 11.09.2010 00:36 | 
	
		
	 |