Browse Source

Small correction of ritual of blessing instance (#4413)

* Corrected the touch event
* Added missing text
* Corrected and improved some timers
Atemo 5 năm trước cách đây
mục cha
commit
7a77a2cbbc
1 tập tin đã thay đổi với 258 bổ sung287 xóa
  1. 258 287
      npc/re/instances/RitualOfBlessing.txt

+ 258 - 287
npc/re/instances/RitualOfBlessing.txt

@@ -41,128 +41,138 @@
 
 2@mir,107,77,0	script	#royal_evt02	HIDDEN_WARP_NPC,2,2,{
 	end;
-OnTouch:
+OnTouch_:
+	disablenpc instance_npcname("#royal_evt02");
 	donpcevent instance_npcname("#royal_evt02") + "::OnEvent";// player can move
 	end;
 OnEvent:
-	disablenpc instance_npcname("Skia#skia01");	// not disabled on official
+	disablenpc instance_npcname("Skia#skia01");	// extra
 	disablenpc instance_npcname("Nyhill#nihil01");
 	enablenpc instance_npcname("Skia Nerius#skia02");
 	enablenpc instance_npcname("Nyhill M. Heine#nihil02");
 
-	disablenpc instance_npcname("#royal_evt02");
-	mapannounce instance_mapname("2@mir"), "Kronecker: Although there has been a slight delay, let me proceed.", bc_map,0xFF99;
-	mapannounce instance_mapname("2@mir"), "Kronecker: According to the Royal Assembly which has passed down in the palace,", bc_map,0xFF99;
-	sleep 6000;
+	mapannounce 'map_2mir$, "Kronecker: Although there has been a slight delay, let me proceed.", bc_map,0xFF99;
+	sleep 3000;
+	mapannounce 'map_2mir$, "Kronecker: According to the Royal Assembly which has passed down in the palace,", bc_map,0xFF99;
+	sleep 3000;
 	npctalk "Heine", instance_npcname("Friedrich S. Heine#stol_1");
 	npctalk "Heine", instance_npcname("Nyhill M. Heine#nihil02");
-	sleep 2500;
+	sleep 3000;
 	npctalk "Nerius", instance_npcname("Skia Nerius#skia02");
 	npctalk "Nerius", instance_npcname("Spica Nerius#spica01");
-	sleep 2500;
+	sleep 3000;
 	npctalk "Walther", instance_npcname("Isenhonor Walther#eisen");
 	npctalk "Walther", instance_npcname("Ian Walther#ian01");
-	sleep 2500;
+	sleep 3000;
 	npctalk "Wigner", instance_npcname("Levuiere Wigner#louvier1");
 	npctalk "Wigner", instance_npcname("Jurgen Wigner#jurgen01");
 	npctalk "Wigner", instance_npcname("Isaac Wigner#isaac01");
 	npctalk "Wigner", instance_npcname("Katrin Wigner#kath01");
-	sleep 2500;
+	sleep 3000;
 	npctalk "Geoborg", instance_npcname("Catherine D. Geoborg#ca1");
 	npctalk "Geoborg", instance_npcname("Ernst Geoborg#ernst01");
-	sleep 2500;
+	sleep 3000;
 	npctalk "Richard", instance_npcname("Po Richard#po01");
 	sleep 3000;
 	npctalk "Roegenburg", instance_npcname("Maximilian Roegenburg#m1");
 	npctalk "Roegenburg", instance_npcname("Wolf Roegenburg#wolf01");
 	npctalk "Roegenburg", instance_npcname("Helmut Roegenburg#helmu");
 	npctalk "Roegenburg", instance_npcname("Agnes Roegenburg#agnes0_1");
-	mapannounce instance_mapname("2@mir"), "Kronecker: On the behalf of the seven royal families supporting Rune-Midgarts,", bc_map,0xFF99;
-	mapannounce instance_mapname("2@mir"), "Kronecker: Here is the new representative appointed", bc_map,0xFF99;
-	mapannounce instance_mapname("2@mir"), "Kronecker: The blessing star light may reach the glory of the earth...", bc_map,0xFF99;
-	sleep 10000;
+	sleep 3000;
+	mapannounce 'map_2mir$, "Kronecker: On the behalf of the seven royal families supporting Rune-Midgarts,", bc_map,0xFF99;
+	sleep 3000;
+	mapannounce 'map_2mir$, "Kronecker: Here is the new representative appointed", bc_map,0xFF99;
+	sleep 3000;
+	mapannounce 'map_2mir$, "Kronecker: The blessing star light may reach the glory of the earth...", bc_map,0xFF99;
+	sleep 3000;
 	npctalk "Please allow the power from the source granted for all beings,", instance_npcname("Friedrich S. Heine#stol_1");
 	npctalk "Please allow the power from the source granted for all beings,", instance_npcname("Nyhill M. Heine#nihil02");
-	sleep 2500;
+	sleep 3000;
 	npctalk "The courage to take a step forward without turning back, and stab the enemy with a dagger,", instance_npcname("Catherine D. Geoborg#ca1");
 	npctalk "The courage to take a step forward without turning back, and stab the enemy with a dagger,", instance_npcname("Ernst Geoborg#ernst01");
-	sleep 2500;
+	sleep 3000;
 	npctalk "The heart to embrace everything in this world,", instance_npcname("Skia Nerius#skia02");
 	npctalk "The heart to embrace everything in this world,", instance_npcname("Spica Nerius#spica01");
-	sleep 2500;
+	sleep 3000;
 	npctalk "The strong will to protect everything in the arms,", instance_npcname("Po Richard#po01");
 	sleep 3000;
 	npctalk "The intact pride which never bends in the justice and faith no matter what,", instance_npcname("Isenhonor Walther#eisen");
 	npctalk "The intact pride which never bends in the justice and faith no matter what,", instance_npcname("Ian Walther#ian01");
-	sleep 2500;
+	sleep 3000;
 	npctalk "The virtue of looking up to others with a humble mind,", instance_npcname("Maximilian Roegenburg#m1");
 	npctalk "The virtue of looking up to others with a humble mind,", instance_npcname("Wolf Roegenburg#wolf01");
 	npctalk "The virtue of looking up to others with a humble mind,", instance_npcname("Helmut Roegenburg#helmu");
 	npctalk "The virtue of looking up to others with a humble mind,", instance_npcname("Agnes Roegenburg#agnes0_1");
-	sleep 2500;
+	sleep 3000;
 	npctalk "And the wisdom to look at the truth", instance_npcname("Levuiere Wigner#louvier1");
 	npctalk "And the wisdom to look at the truth", instance_npcname("Jurgen Wigner#jurgen01");
 	npctalk "And the wisdom to look at the truth", instance_npcname("Isaac Wigner#isaac01");
 	npctalk "And the wisdom to look at the truth", instance_npcname("Katrin Wigner#kath01");
-	mapannounce instance_mapname("2@mir"), "Kronecker: To our new king...", bc_map,0xFF99;
-	mapannounce instance_mapname("2@mir"), "I am sorry to interrupt the fun!", bc_map,0xDDDDDD;
-	sleep 5000;
+	sleep 3000;
+	mapannounce 'map_2mir$, "Kronecker: To our new king...", bc_map,0xFF99;
+	sleep 1500;
+	mapannounce 'map_2mir$, "I am sorry to interrupt the fun!", bc_map,0xDDDDDD;
+	sleep 500;
 	specialeffect EF_SCREEN_QUAKE, AREA, instance_npcname("Peter Heine#peter01");
 	disablenpc instance_npcname("Peter Heine#peter01");
 	enablenpc instance_npcname("Fallen Peter#peter02");
-	mapannounce instance_mapname("2@mir"), "Kronecker: Peter!!!", bc_map,0xFF99;
-	sleep 1000;
+	sleep 500;
+	mapannounce 'map_2mir$, "Kronecker: Peter!!!", bc_map,0xFF99;
+	sleep 500;
 	disablenpc instance_npcname("Kronecker G. Heine#gran1");
-	enablenpc instance_npcname("Kronecker G. Heine#gran2");
-	sleep 400;
-	enablenpc instance_npcname("Intruder#hunter01");
-	npctalk "Oh, hello! You must be the famous Archduke Grantz the Sage!", instance_npcname("Intruder#hunter01");
+	.@kronecker_2$ = instance_npcname("Kronecker G. Heine#gran2");
+	enablenpc .@kronecker_2$;
+	sleep 500;
+	.@intruder$ = instance_npcname("Intruder#hunter01");
+	enablenpc .@intruder$;
+	npctalk "Oh, hello! You must be the famous Archduke Grantz the Sage!", .@intruder$;
 	sleep 3000;
-	npctalk "What are you doing!!!", instance_npcname("Kronecker G. Heine#gran2");
+	npctalk "What are you doing!!!", .@kronecker_2$;
 	sleep 3000;
-	npctalk "No, nothing much. Nothing worth doing here anyways.", instance_npcname("Intruder#hunter01");
+	npctalk "No, nothing much. Nothing worth doing here anyways.", .@intruder$;
 	sleep 3000;
-	npctalk "I have heard that there is something really nice hidden here...", instance_npcname("Intruder#hunter01");
+	npctalk "I have heard that there is something really nice hidden here...", .@intruder$;
 	sleep 3000;
-	npctalk "But what is this? It is fake!", instance_npcname("Intruder#hunter01");
-	specialeffect EF_BEGINSPELL,AREA,instance_npcname("Kronecker G. Heine#gran2");
-	specialeffect EF_BEGINSPELL6,AREA,instance_npcname("Intruder#hunter01");
-	specialeffect EF_LEVEL99,AREA,instance_npcname("Intruder#hunter01");
+	npctalk "But what is this? It is fake!", .@intruder$;
+	specialeffect EF_BEGINSPELL,AREA,.@kronecker_2$;
+	sleep 500;
+	specialeffect EF_BEGINSPELL6,AREA, .@intruder$;
+	specialeffect EF_LEVEL99,AREA, .@intruder$;
 	sleep 2000;
-	npctalk "You old man, and the noble people behind him...", instance_npcname("Intruder#hunter01");
+	npctalk "You old man, and the noble people behind him...", .@intruder$;
 	sleep 3000;
-	npctalk "Hold it there. It is no fun. I may want to destroy something.", instance_npcname("Intruder#hunter01");
+	npctalk "Hold it there. It is no fun. I may want to destroy something.", .@intruder$;
 	sleep 3000;
-	npctalk "For example...", instance_npcname("Intruder#hunter01");
+	npctalk "For example...", .@intruder$;
 	sleep 3000;
-	npctalk "This fake resembling Ymir's Heart!", instance_npcname("Intruder#hunter01");
+	npctalk "This fake resembling Ymir's Heart!", .@intruder$;
 	sleep 3000;
-	npctalk "...What do you want?", instance_npcname("Kronecker G. Heine#gran2");
+	npctalk "...What do you want?", .@kronecker_2$;
 	sleep 3000;
-	npctalk "The piece of Ymir's Heart. I have heard that it is here, but I don't see any, do I?", instance_npcname("Intruder#hunter01");
+	npctalk "The piece of Ymir's Heart. I have heard that it is here, but I don't see any, do I?", .@intruder$;
 	sleep 3000;
-	npctalk "...What are you talking about?", instance_npcname("Kronecker G. Heine#gran2");
+	npctalk "...What are you talking about?", .@kronecker_2$;
 	sleep 3000;
-	npctalk "Oh, you didn't know?", instance_npcname("Intruder#hunter01");
+	npctalk "Oh, you didn't know?", .@intruder$;
 	sleep 3000;
-	npctalk "Well, I see. If you knew that you wouldn't have kept it in the ground, wasting your time on this ritual and all.", instance_npcname("Intruder#hunter01");
+	npctalk "Well, I see. If you knew that you wouldn't have kept it in the ground, wasting your time on this ritual and all.", .@intruder$;
 	sleep 3000;
-	npctalk "But I can't help it, old man. This is fake.", instance_npcname("Intruder#hunter01");
+	npctalk "But I can't help it, old man. This is fake.", .@intruder$;
 	sleep 2000;
-	npctalk "...How dare you...", instance_npcname("Kronecker G. Heine#gran2");
+	npctalk "...How dare you...", .@kronecker_2$;
 	sleep 2000;
-	npctalk "Don't give me that look. I have wasted my time here as well, you know.", instance_npcname("Intruder#hunter01");
+	npctalk "Don't give me that look. I have wasted my time here as well, you know.", .@intruder$;
 	sleep 3000;
-	npctalk "Well, I'll get going without casing a scene this time.", instance_npcname("Intruder#hunter01");
+	npctalk "Well, I'll get going without casing a scene this time.", .@intruder$;
 	sleep 3000;
-	npctalk "Ha! What good does all the power do when you don't know how to use it? I guess you don't need this anymore.", instance_npcname("Intruder#hunter01");
+	npctalk "Ha! What good does all the power do when you don't know how to use it? I guess you don't need this anymore.", .@intruder$;
 	sleep 3000;
-	npctalk "It is the time for this fake Ymir's Heart to go!", instance_npcname("Intruder#hunter01");
-	sleep 600;
-	specialeffect EF_BEGINSPELL3,AREA, instance_npcname("Intruder#hunter01");
-	sleep 400;
+	npctalk "It is the time for this fake Ymir's Heart to go!", .@intruder$;
+	sleep 500;
+	specialeffect EF_BEGINSPELL3,AREA, .@intruder$;
+	sleep 500;
 	specialeffect EF_SCREEN_QUAKE,AREA, instance_npcname("Peter Heine#peter01");
-	specialeffect EF_LORD,AREA, instance_npcname("Kronecker G. Heine#gran2");
+	specialeffect EF_LORD,AREA, .@kronecker_2$;
 	specialeffect EF_LORD,AREA, instance_npcname("Levuiere Wigner#louvier1");
 	specialeffect EF_LORD,AREA, instance_npcname("Catherine D. Geoborg#ca1");
 
@@ -170,20 +180,41 @@ OnEvent:
 	disablenpc instance_npcname("Levuiere Wigner#louvier1");
 	disablenpc instance_npcname("Jurgen Wigner#jurgen01");
 	disablenpc instance_npcname("Catherine D. Geoborg#ca1");
+	disablenpc instance_npcname("Katrin Wigner#kath01");
+	disablenpc instance_npcname("Isaac Wigner#isaac01");
+
 	enablenpc instance_npcname("Ian Walther#ian02");
 	enablenpc instance_npcname("Levuiere Wigner#louvier2");
 	enablenpc instance_npcname("Jurgen Wigner#jurgen02");
+	enablenpc instance_npcname("Catherine D. Geoborg#ca2");
 	enablenpc instance_npcname("Katrin Wigner#kath02");
+	enablenpc instance_npcname("Isaac Wigner#isaac02");
 	sleep 500;
 	specialeffect EF_LORD,AREA, instance_npcname("Maximilian Roegenburg#m1");
 	disablenpc instance_npcname("Ernst Geoborg#ernst01");
 	disablenpc instance_npcname("Maximilian Roegenburg#m1");
 	disablenpc instance_npcname("Wolf Roegenburg#wolf01");
 	disablenpc instance_npcname("Agnes Roegenburg#agnes0_1");
-	disablenpc instance_npcname("Isaac Wigner#isaac01");
-	disablenpc instance_npcname("Katrin Wigner#kath01");
+
+	enablenpc instance_npcname("Maximilian Roegenburg#m2");
+	enablenpc instance_npcname("Ernst Geoborg#ernst02");
+	enablenpc instance_npcname("Agnes Roegenburg#agnes0_2");
+	enablenpc instance_npcname("Wolf Roegenburg#wolf02");
+
+	specialeffect EF_LORD,AREA, instance_npcname("Agnes Roegenburg#agnes0_2");
+
+	mapannounce 'map_2mir$, "Intruder: Then ladies and gentlemen, have a good time!", bc_map,0xDDDDDD;
+	disablenpc .@intruder$;
+	enablenpc instance_npcname("Intruder#hunter02");
+	enablenpc instance_npcname("Intruder#hunter03");
+	enablenpc instance_npcname("Intruder#hunter04");
+	enablenpc instance_npcname("Intruder#hunter05");
+	enablenpc instance_npcname("Intruder#hunter06");
+
+	sleep 500;
+	donpcevent instance_npcname("Intruder_main") + "::OnEvent";
+
 	disablenpc instance_npcname("Po Richard#po01");
-	disablenpc instance_npcname("Peter Heine#peter01");
 	disablenpc instance_npcname("Spica Nerius#spica01");
 	disablenpc instance_npcname("Isenhonor Walther#eisen");
 	disablenpc instance_npcname("Friedrich S. Heine#stol_1");
@@ -191,232 +222,274 @@ OnEvent:
 	disablenpc instance_npcname("Skia Nerius#skia02");
 	disablenpc instance_npcname("Nyhill M. Heine#nihil02");
 
-	enablenpc instance_npcname("Agnes Roegenburg#agnes0_2");
 	enablenpc instance_npcname("Skia Nerius#skia03");
 	enablenpc instance_npcname("Nyhill M. Heine#nihil03");
 	enablenpc instance_npcname("Spica Nerius#spica02");
 	enablenpc instance_npcname("Po Richard#po02");
-	enablenpc instance_npcname("Maximilian Roegenburg#m2");
-	enablenpc instance_npcname("Wolf Roegenburg#wolf02");
-	enablenpc instance_npcname("Ernst Geoborg#ernst02");
-	enablenpc instance_npcname("Catherine D. Geoborg#ca2");
-	enablenpc instance_npcname("Isaac Wigner#isaac02");
-
-	specialeffect EF_LORD,AREA, instance_npcname("Agnes Roegenburg#agnes0_2");
-	mapannounce instance_mapname("2@mir"), "Intruder: Then ladies and gentlemen, have a good time!", bc_map,0xDDDDDD;
-	disablenpc instance_npcname("Intruder#hunter01");
-	donpcevent instance_npcname("Intruder#hunter02") + "::OnEvent";
-	donpcevent instance_npcname("Intruder#hunter03") + "::OnEvent";
-	donpcevent instance_npcname("Intruder#hunter04") + "::OnEvent";
-	donpcevent instance_npcname("Intruder#hunter06") + "::OnEvent";
+	enablenpc instance_npcname("Isenhonor Walther#eisen2");
+	enablenpc instance_npcname("Friedrich S. Heine#stol_2");
+	enablenpc instance_npcname("Helmut Roegenburg#helmu2");
 	end;
 }
 
-2@mir,87,79,5	script	Intruder#hunter02	3454,{
+2@mir,1,1,0	script	Intruder_main	-1,{
 	end;
 OnEvent:
-	enablenpc instance_npcname("Intruder#hunter02");
-	initnpctimer;
-	donpcevent instance_npcname("Intruder#hunter05") + "::OnEvent";	// timer + enable
-	donpcevent instance_npcname("Helmut Roegenburg#helmu2") + "::OnEvent";
-	donpcevent instance_npcname("Isenhonor Walther#eisen2") + "::OnEvent";
-	monster instance_mapname("2@mir"),107,73,"Suspicious Intruder",3454,1, instance_npcname("Intruder#hunter02") + "::OnMobDead";// HEART_HUNTER_N
+	enablenpc instance_npcname("Intruder_main");
+	.@label$ = instance_npcname("Intruder_main") + "::OnMobDead";
+	monster 'map_2mir$,107,73,"Suspicious Intruder",3454,1, .@label$;	// HEART_HUNTER_N
+	setunitdata $@mobid[0], UMOB_HP, 10000;
+	monster 'map_2mir$, 98,73,"Suspicious Intruder",3454,1, .@label$;
+	setunitdata $@mobid[0], UMOB_HP, 10000;
+	monster 'map_2mir$,101,83,"Suspicious Intruder",3454,1, .@label$;
+	setunitdata $@mobid[0], UMOB_HP, 10000;
+	'intruder_count = 0;
+
+	donpcevent instance_npcname("Intruder#hunter02") + "::OnStart";
+	donpcevent instance_npcname("Intruder#hunter03") + "::OnStart";
+	donpcevent instance_npcname("Intruder#hunter04") + "::OnStart";
+	donpcevent instance_npcname("Intruder#hunter05") + "::OnStart";
+	donpcevent instance_npcname("Intruder#hunter06") + "::OnStart";
 	end;
 OnMobDead:
-	stopnpctimer;
-	hideonnpc instance_npcname("Intruder#hunter02");
-	donpcevent instance_npcname("Intruder#hunter05") + "::OnMobDead";	// stop timer + disable
-	donpcevent instance_npcname("Helmut Roegenburg#helmu2") + "::OnMobDead";
-	donpcevent instance_npcname("Isenhonor Walther#eisen2") + "::OnMobDead";
 	'intruder_count++;
-	if ('intruder_count == 3) {
-		mapannounce instance_mapname("2@mir"), "Fellows! Let's leave this place!", bc_map,0xDDDDDD;
+	switch( 'intruder_count ) {
+	case 1:
 		donpcevent instance_npcname("Intruder#hunter02") + "::OnLeave";
 		donpcevent instance_npcname("Intruder#hunter05") + "::OnLeave";
+		break;
+	case 2:
 		donpcevent instance_npcname("Intruder#hunter03") + "::OnLeave";
 		donpcevent instance_npcname("Intruder#hunter06") + "::OnLeave";
+		break;
+	case 3:
 		donpcevent instance_npcname("Intruder#hunter04") + "::OnLeave";
+		break;
+	}
+	sleep 100;	// it seems there is a slight delay
+
+	switch( 'intruder_count ) {
+	case 3:
+		mapannounce 'map_2mir$, "Fellows! Let's leave this place!", bc_map,0xDDDDDD;
+		// display the effect a second time
+		donpcevent instance_npcname("Intruder#hunter02") + "::OnLeave";
+		donpcevent instance_npcname("Intruder#hunter03") + "::OnLeave";
+		donpcevent instance_npcname("Intruder#hunter04") + "::OnLeave";
+		donpcevent instance_npcname("Intruder#hunter05") + "::OnLeave";
+		donpcevent instance_npcname("Intruder#hunter06") + "::OnLeave";
+
+		disablenpc instance_npcname("Intruder#hunter02");
+		disablenpc instance_npcname("Intruder#hunter03");
+		disablenpc instance_npcname("Intruder#hunter04");
+		disablenpc instance_npcname("Intruder#hunter05");
+		disablenpc instance_npcname("Intruder#hunter06");
+		break;
+	default:
+		break;
 	}
 	end;
+}
+
+2@mir,87,79,5	script	Intruder#hunter02	3454,{
+	end;
+OnStart:
+	initnpctimer;
+	end;
 OnLeave:
+	stopnpctimer;
 	specialeffect EF_TEIHIT3;
-	disablenpc instance_npcname("Intruder#hunter02");
+	hideonnpc instance_npcname("Intruder#hunter02");	// officially disabled, changed to hideonnpc to display the effect a second time
 	end;
-OnTimer1500:
+OnTimer1000:
 	specialeffect EF_PIERCE;
 	end;
-OnTimer3500:
+OnTimer2000:
+	specialeffect EF_CONCENTRATION, AREA, instance_npcname("Isenhonor Walther#eisen2");
+	end;
+OnTimer4000:
 	specialeffect EF_HOLYCROSS;
 	end;
-OnTimer4500:
+OnTimer5000:
 	npctalk "It is no use!";
+	specialeffect EF_TEIHIT1X, AREA, instance_npcname("Isenhonor Walther#eisen2");
 	end;
-OnTimer6500:
+OnTimer7000:
 	specialeffect EF_SHIELDCHARGE;
 	end;
 OnTimer8000:
+	specialeffect EF_CHAINCOMBO, AREA, instance_npcname("Isenhonor Walther#eisen2");
+	end;
+OnTimer10000:
+	specialeffect EF_PIERCE;
+	end;
+OnTimer11000:
+	specialeffect EF_TEIHIT1X, AREA, instance_npcname("Isenhonor Walther#eisen2");
+	npctalk "We don't have the time to chat!", instance_npcname("Isenhonor Walther#eisen2");
 	initnpctimer;
 	end;
 }
 
 2@mir,91,84,5	script	Intruder#hunter03	3454,{
 	end;
-OnEvent:
-	enablenpc instance_npcname("Intruder#hunter03");
+OnStart:
 	initnpctimer;
-	donpcevent instance_npcname("Intruder#hunter06") + "::OnEvent";	// timer + enable
-	donpcevent instance_npcname("Po Richard#po02") + "::OnEvent";
-	donpcevent instance_npcname("Skia Nerius#skia03") + "::OnEvent";
-	monster instance_mapname("2@mir"),98,73,"Suspicious Intruder",3454,1, instance_npcname("Intruder#hunter03") + "::OnMobDead";// HEART_HUNTER_N
-	end;
-OnMobDead:
-	stopnpctimer;
-	hideonnpc instance_npcname("Intruder#hunter03");
-	donpcevent instance_npcname("Intruder#hunter06") + "::OnMobDead";	// stop timer + disable
-	donpcevent instance_npcname("Po Richard#po02") + "::OnMobDead";
-	donpcevent instance_npcname("Skia Nerius#skia03") + "::OnMobDead";
-	'intruder_count++;
-	if ('intruder_count == 3) {
-		mapannounce instance_mapname("2@mir"), "Fellows! Let's leave this place!", bc_map,0xDDDDDD;
-		donpcevent instance_npcname("Intruder#hunter02") + "::OnLeave";
-		donpcevent instance_npcname("Intruder#hunter05") + "::OnLeave";
-		donpcevent instance_npcname("Intruder#hunter03") + "::OnLeave";
-		donpcevent instance_npcname("Intruder#hunter06") + "::OnLeave";
-		donpcevent instance_npcname("Intruder#hunter04") + "::OnLeave";
-	}
 	end;
 OnLeave:
+	stopnpctimer;
 	specialeffect EF_TEIHIT3;
-	disablenpc instance_npcname("Intruder#hunter03");
+	hideonnpc instance_npcname("Intruder#hunter03");
 	end;
 OnTimer1500:
 	specialeffect EF_MAGICALATTHIT;
 	end;
-OnTimer4000:
+OnTimer2500:
+	specialeffect EF_TEIHIT1X, AREA, instance_npcname("Skia Nerius#skia03");
+	end;
+OnTimer4500:
 	specialeffect EF_HIT5;
 	end;
-OnTimer7000:
+OnTimer5500:
+	specialeffect EF_HIT6, AREA, instance_npcname("Skia Nerius#skia03");
+	end;
+OnTimer7500:
 	specialeffect EF_HIT2;
 	end;
-OnTimer8000:
+OnTimer8500:
 	npctalk "It is no use!";
+	specialeffect EF_HIT1, AREA, instance_npcname("Skia Nerius#skia03");
 	end;
-OnTimer10500:
+OnTimer11100:
 	specialeffect EF_HOLYCROSS;
 	end;
-OnTimer11500:
+OnTimer12000:
+	specialeffect EF_HIT1, AREA, instance_npcname("Skia Nerius#skia03");
 	initnpctimer;
 	end;
 }
 
 2@mir,94,86,5	script	Intruder#hunter04	3454,{
 	end;
-OnEvent:
-	enablenpc instance_npcname("Intruder#hunter04");
+OnStart:
 	initnpctimer;
-	donpcevent instance_npcname("Friedrich S. Heine#stol_2") + "::OnEvent";	// timer + enable
-	monster instance_mapname("2@mir"),101,83,"Suspicious Intruder",3454,1, instance_npcname("Intruder#hunter04") + "::OnMobDead";// HEART_HUNTER_N
-	end;
-OnMobDead:
-	stopnpctimer;
-	hideonnpc instance_npcname("Intruder#hunter04");
-	donpcevent instance_npcname("Friedrich S. Heine#stol_2") + "::OnMobDead";	// timer
-	'intruder_count++;
-	if ('intruder_count == 3) {
-		mapannounce instance_mapname("2@mir"), "Fellows! Let's leave this place!", bc_map,0xDDDDDD;
-		donpcevent instance_npcname("Intruder#hunter02") + "::OnLeave";
-		donpcevent instance_npcname("Intruder#hunter05") + "::OnLeave";
-		donpcevent instance_npcname("Intruder#hunter03") + "::OnLeave";
-		donpcevent instance_npcname("Intruder#hunter06") + "::OnLeave";
-		donpcevent instance_npcname("Intruder#hunter04") + "::OnLeave";
-	}
 	end;
 OnLeave:
+	stopnpctimer;
 	specialeffect EF_TEIHIT3;
-	disablenpc instance_npcname("Intruder#hunter04");
+	hideonnpc instance_npcname("Intruder#hunter04");
 	end;
-OnTimer1500:
+OnTimer1200:	// weird timer but ~correct
 	specialeffect EF_MAGICALATTHIT;
 	end;
-OnTimer3500:
+OnTimer2200:
+	specialeffect EF_TEIHIT1X, AREA, instance_npcname("Friedrich S. Heine#stol_2");
+	end;
+OnTimer3800:
 	specialeffect EF_HIT5;
 	end;
-OnTimer4500:
+OnTimer4800:
 	npctalk "Heh!";
+	specialeffect EF_HIT6, AREA, instance_npcname("Friedrich S. Heine#stol_2");
 	end;
-OnTimer7500:
+OnTimer8200:
 	specialeffect EF_HIT2;
 	end;
-OnTimer12000:
+OnTimer9200:
+	specialeffect EF_HIT1, AREA, instance_npcname("Friedrich S. Heine#stol_2");
+	end;
+OnTimer11500:
 	specialeffect EF_HOLYCROSS;
 	end;
-OnTimer14000:
+OnTimer12500:
+	specialeffect EF_AUTOCOUNTER, AREA, instance_npcname("Friedrich S. Heine#stol_2");
+	npctalk "...Where are these bastards from?", instance_npcname("Friedrich S. Heine#stol_2");
 	initnpctimer;
 	end;
 }
 
 2@mir,107,86,5	script	Intruder#hunter05	3454,{
 	end;
-OnEvent:
-	enablenpc instance_npcname("Intruder#hunter05");
+OnStart:
 	initnpctimer;
 	end;
-OnMobDead:
-	stopnpctimer;
-	hideonnpc instance_npcname("Intruder#hunter05");
-	end;
 OnLeave:
+	stopnpctimer;
 	specialeffect EF_TEIHIT3;
-	disablenpc instance_npcname("Intruder#hunter05");
+	hideonnpc instance_npcname("Intruder#hunter05");
 	end;
-OnTimer1500:
+OnTimer1000:
 	specialeffect EF_MAGICALATTHIT;
 	end;
-OnTimer3500:
+OnTimer2000:
+	specialeffect EF_TEIHIT1X, AREA, instance_npcname("Helmut Roegenburg#helmu2");
+	end;
+OnTimer4000:
 	npctalk "Die!!!";
 	specialeffect EF_HIT5;
 	end;
-OnTimer6500:
+OnTimer4500:
+	npctalk "Look who's talking!!!", instance_npcname("Helmut Roegenburg#helmu2");
+	specialeffect EF_HIT6, AREA, instance_npcname("Helmut Roegenburg#helmu2");
+	end;
+OnTimer7000:
 	specialeffect EF_HIT2;
 	end;
-OnTimer9500:
+OnTimer8000:
+	specialeffect EF_HIT1, AREA, instance_npcname("Helmut Roegenburg#helmu2");
+	end;
+OnTimer10000:
 	specialeffect EF_HOLYCROSS;
+	end;
+OnTimer11000:
+	specialeffect EF_AUTOCOUNTER, AREA, instance_npcname("Helmut Roegenburg#helmu2");
+	npctalk "Argh!!!", instance_npcname("Helmut Roegenburg#helmu2");
 	initnpctimer;
 	end;
 }
 
 2@mir,110,85,5	script	Intruder#hunter06	3454,{
 	end;
-OnEvent:
-	enablenpc instance_npcname("Intruder#hunter06");
+OnStart:
 	initnpctimer;
 	end;
-OnMobDead:
-	stopnpctimer;
-	hideonnpc instance_npcname("Intruder#hunter06");
-	end;
 OnLeave:
+	stopnpctimer;
 	specialeffect EF_TEIHIT3;
-	disablenpc instance_npcname("Intruder#hunter06");
+	hideonnpc instance_npcname("Intruder#hunter06");
 	end;
-OnTimer1500:
+OnTimer1000:
 	specialeffect EF_HITDARK;
 	end;
-OnTimer3500:
+OnTimer2000:
+	specialeffect EF_TEIHIT1X, AREA, instance_npcname("Po Richard#po02");
+	end;
+OnTimer4000:
 	npctalk "Die!!!";
 	specialeffect EF_LIGHTBOLT;
 	end;
-OnTimer6000:
+OnTimer5000:
+	specialeffect EF_HIT6, AREA, instance_npcname("Po Richard#po02");
+	end;
+OnTimer7000:
 	specialeffect EF_COMBOATTACK1;
 	end;
-OnTimer9000:
+OnTimer8000:
+	specialeffect EF_HIT1, AREA, instance_npcname("Po Richard#po02");
+	end;
+OnTimer10000:
 	specialeffect EF_NAPALMBEAT;
 	end;
-OnTimer14000:
+OnTimer12000:
+	npctalk "Oh, this doesn't look good.", instance_npcname("Po Richard#po02");
+	specialeffect EF_AUTOCOUNTER, AREA, instance_npcname("Po Richard#po02");
 	initnpctimer;
 	end;
 }
 
+2@mir,97,80,7	script	Friedrich S. Heine#stol_1	4_EP16_STOLZ,{
+	npctalk "... Quiet.";
+	end;
+}
+
 2@mir,88,78,2	script	Isenhonor Walther#eisen2	4_M_1STPRIN1,{
 	if ('intruder_count < 3) {
 		npctalk "We don't have the time to chat!";
@@ -432,34 +505,13 @@ OnTimer14000:
 	disablenpc instance_npcname("Isenhonor Walther#eisen2");
 	disablenpc instance_npcname("Ian Walther#ian02");
 	end;
-OnEvent:
-	enablenpc instance_npcname("Isenhonor Walther#eisen2");
-	initnpctimer;
-	end;
-OnMobDead:
-	stopnpctimer;
-	end;
-OnTime1500:
-	npctalk "Ha...";
-	end;
-OnTime3000:
-	specialeffect EF_CONCENTRATION;
-	end;
-OnTime5500:
-	specialeffect EF_TEIHIT1X;
-	end;
-OnTime8500:
-	specialeffect EF_CHAINCOMBO;
-	end;
-OnTime10000:
-	npctalk "We don't have the time to chat!";
-	initnpctimer;
-	end;
 }
 
 2@mir,106,85,7	script	Helmut Roegenburg#helmu2	4_EP16_HELMUT,{
-	if ('intruder_count < 3)
+	if ('intruder_count < 3) {
+		npctalk "Hm!";
 		end;
+	}
 	mes "[Helmut]";
 	mes "All seem well.";
 	mes "...I shall get going. The brothers don't look so good.";
@@ -469,28 +521,6 @@ OnTime10000:
 	disablenpc instance_npcname("Maximilian Roegenburg#m2");
 	disablenpc instance_npcname("Agnes Roegenburg#agnes0_2");
 	end;
-OnEvent:
-	enablenpc instance_npcname("Helmut Roegenburg#helmu2");
-	initnpctimer;
-	end;
-OnMobDead:
-	stopnpctimer;
-	end;
-OnTime1500:
-	specialeffect EF_TEIHIT1X;
-	end;
-OnTimer3500:
-	npctalk "Look who's talking!!!";
-	specialeffect EF_HIT6;
-	end;
-OnTimer7000:
-	specialeffect EF_HIT1;
-	end;
-OnTimer9000:
-	specialeffect EF_AUTOCOUNTER;
-	npctalk "Argh!!!";
-	initnpctimer;
-	end;
 }
 
 2@mir,92,83,2	script	Skia Nerius#skia03	4_EP16_SKIA,{
@@ -509,28 +539,6 @@ OnTimer9000:
 	disablenpc instance_npcname("Skia Nerius#skia03");
 	disablenpc instance_npcname("Spica Nerius#spica02");
 	end;
-OnEvent:
-	enablenpc instance_npcname("Skia Nerius#skia03");
-	initnpctimer;
-	end;
-OnMobDead:
-	stopnpctimer;
-	end;
-OnTime2000:
-	specialeffect EF_TEIHIT1X;
-	end;
-OnTimer4500:
-	specialeffect EF_HIT6;
-	end;
-OnTimer7500:
-	specialeffect EF_HIT1;
-	end;
-OnTimer12000:
-	specialeffect EF_HIT1;
-	end;
-OnTimer12500:
-	initnpctimer;
-	end;
 }
 
 2@mir,109,84,7	script	Po Richard#po02	4_M_6THPRIN1,{
@@ -542,28 +550,6 @@ OnTimer12500:
 	sleep 2000;
 	disablenpc instance_npcname("Po Richard#po02");
 	end;
-OnEvent:
-	enablenpc instance_npcname("Po Richard#po02");
-	initnpctimer;
-	end;
-OnMobDead:
-	stopnpctimer;
-	end;
-OnTime1500:
-	npctalk "Oh, this doesn't look good.";
-	end;
-OnTimer5500:
-	specialeffect EF_HIT6;
-	end;
-OnTimer7500:
-	specialeffect EF_HIT1;
-	end;
-OnTimer17500:
-	specialeffect EF_HIT1;
-	end;
-OnTimer19000:
-	initnpctimer;
-	end;
 }
 
 2@mir,95,85,1	script	Friedrich S. Heine#stol_2	4_EP16_STOLZ,{
@@ -590,29 +576,8 @@ OnDisable:
 	disablenpc instance_npcname("Wolf Roegenburg#wolf02");
 	disablenpc instance_npcname("Helmut Roegenburg#helmu2");
 	disablenpc instance_npcname("Agnes Roegenburg#agnes0_2");
-	disablenpc instance_npcname("Friedrich S. Heine#stol_2");
 	disablenpc instance_npcname("Isaac Wigner#isaac02");
 	end;
-OnEvent:
-	enablenpc instance_npcname("Friedrich S. Heine#stol_2");
-	initnpctimer;
-	end;
-OnMobDead:
-	stopnpctimer;
-	end;
-OnTime1500:
-	specialeffect EF_TEIHIT1X;
-	end;
-OnTimer4000:
-	specialeffect EF_HIT6;
-	end;
-OnTimer11500:
-	specialeffect EF_AUTOCOUNTER;
-	npctalk "...Where are these bastards from?";
-	end;
-OnTimer12000:
-	initnpctimer;
-	end;
 }
 
 2@mir,101,93,7	script	Kronecker G. Heine#gran2	4_EP16_GRANZ,{
@@ -676,7 +641,7 @@ OnTimer12000:
 	mes "[Nyhill]";
 	mes "...This... Is all... My fault...";
 	close;
-OnTouch:
+OnTouch_:
 	npctalk "...Will I be a help?";
 	npcskill "AL_HEAL",11,99,60;
 	npcskill "PR_KYRIE",10,99,60;
@@ -707,7 +672,10 @@ OnTouch:
 }
 
 2@mir,96,83,2	script	Spica Nerius#spica02	4_EP16_SPICA,{
-	npctalk "...S... ki... a...";
+	if ('intruder_count < 3)
+		npctalk "...S... ki... a...";
+	else
+		npctalk "Skia, why did this guy save Lord Nyhill, not me?";
 	end;
 }
 
@@ -715,23 +683,27 @@ OnTouch:
 2@mir,102,97,3	script	Intruder#hunter01	3454,{
 	end;
 OnInstanceInit:
-	'intruder_count = 0;// init on reload
-	disablenpc instance_npcname("Intruder#hunter01");
+	'map_2mir$ = instance_mapname("2@mir");
+	'intruder_count = 0;
+
 	disablenpc instance_npcname("Spica Nerius#spica02");
 	disablenpc instance_npcname("Agnes Roegenburg#agnes0_2");
 	disablenpc instance_npcname("Isaac Wigner#isaac02");
 	disablenpc instance_npcname("Catherine D. Geoborg#ca2");
 	disablenpc instance_npcname("Jurgen Wigner#jurgen02");
 	disablenpc instance_npcname("Kronecker G. Heine#gran2");
+	disablenpc instance_npcname("Isenhonor Walther#eisen2");
+	disablenpc instance_npcname("Helmut Roegenburg#helmu2");
+	disablenpc instance_npcname("Po Richard#po02");
+	disablenpc instance_npcname("Friedrich S. Heine#stol_2");
+
+	disablenpc instance_npcname("Intruder#hunter01");
 	disablenpc instance_npcname("Intruder#hunter02");
 	disablenpc instance_npcname("Intruder#hunter03");
 	disablenpc instance_npcname("Intruder#hunter04");
 	disablenpc instance_npcname("Intruder#hunter05");
 	disablenpc instance_npcname("Intruder#hunter06");
-	disablenpc instance_npcname("Isenhonor Walther#eisen2");
-	disablenpc instance_npcname("Helmut Roegenburg#helmu2");
-	disablenpc instance_npcname("Po Richard#po02");
-	disablenpc instance_npcname("Friedrich S. Heine#stol_2");
+
 	disablenpc instance_npcname("Skia Nerius#skia03");
 	disablenpc instance_npcname("Nyhill M. Heine#nihil03");
 	end;
@@ -768,7 +740,6 @@ OnInstanceInit:
 2@mir,101,94,0	duplicate(dummy_npc_rituel)	Peter Heine#peter01	4_M_3RDPRIN1
 2@mir,100,77,7	duplicate(dummy_npc_rituel)	Spica Nerius#spica01	4_EP16_SPICA
 2@mir,106,71,2	duplicate(dummy_npc_rituel)	Agnes Roegenburg#agnes0_1	4_EP16_AGNES
-2@mir,97,80,7	duplicate(dummy_npc_rituel)	Friedrich S. Heine#stol_1	4_EP16_STOLZ
 2@mir,100,74,7	duplicate(dummy_npc_rituel)	Ian Walther#ian01	1_M_JOBTESTER
 2@mir,97,74,7	duplicate(dummy_npc_rituel)	Isenhonor Walther#eisen	4_M_1STPRIN1
 2@mir,103,71,2	duplicate(dummy_npc_rituel)	Helmut Roegenburg#helmu	4_EP16_HELMUT