Kaynağa Gözat

* Added support for NPC names in the 'specialeffect' script command, go go copy/paste!
* Updated several NPCs to use the updated specialeffect command, updated more NPCs to use the updated emotion command.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14353 54d463be-8e91-2dee-dedb-b68131a5f0ec

L0ne_W0lf 15 yıl önce
ebeveyn
işleme
e7e55d4e06

+ 2 - 0
Changelog-Trunk.txt

@@ -3,6 +3,8 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2010/06/22
+	* Rev. 14353 Added support for NPC names in the 'specialeffect' script command, go go copy/paste! [L0ne_W0lf]
 2010/06/20
 	* Fixed codepage indicators being included in NPCs' whispervars. [Gepard]
 2010/06/18

+ 14 - 1
doc/script_commands.txt

@@ -4561,7 +4561,7 @@ character.
 
 ---------------------------------------
 
-*specialeffect <effect number>{,<send_target>};
+*specialeffect <effect number>{,<send_target>}{,"<NPC Name>"</NPC>};
 
 This command will display special effect with the given number, centered on the 
 specified NPCs coordinates, if any. For a full list of special effect numbers 
@@ -4569,6 +4569,19 @@ known see 'doc/effect_list.txt'. Some effect numbers are known not to work in
 some client releases. (Notably, rain is absent from any client executables 
 released after April 2005.)
 
+<NPC name> parameter will display <effect number> on another NPC. If the NPC
+specified does not exist, the command will do nothing. When specifying an NPC,
+<send_target> must be specified when specifying an <NPC Name>, specifying AREA 
+will retain the default behavior of the command.
+
+	// this will make the NPC "John Doe#1"
+	// show the effect "EF_HIT1" specified by
+	// Jane Doe. I wonder what John did...
+	mes "[Jane Doe];
+	mes "Well, I never!";
+	specialeffect EF_HIT1,AREA,"John Doe#1";
+	close;
+
 ---------------------------------------
 
 *specialeffect2 <effect number>{,<send_target>};

+ 2 - 0
npc/Changelog.txt

@@ -1,5 +1,7 @@
 Date		Added
 ======
+2010/06/22
+	* Rev. 14353 Updated several NPCs to use the updated specialeffect command, updated more NPCs to use the updated emotion command. [L0ne_W0lf]
 2010/06/21
 	* Rev. 14352 Fixed setcell in arug_cas04 and 5 extending past what it should. (bugreport:4323) [L0ne_W0lf]
 	* Rev. 14351 Removed usage of the 'goto' command from job quests. [L0ne_W0lf]

+ 7 - 15
npc/cities/jawaii.txt

@@ -988,7 +988,7 @@ jawaii_in,28,124,0	script	Bartender#jaw	46,{
 				next;
 				mes "^3355FFYou gulp the delicious";
 				mes "Margarita down in one sip.^000000";
-				specialeffect2 17; //EF_MAGNUMBREAK
+				specialeffect2 EF_MAGNUMBREAK;
 				percentheal -20,0;
 				next;
 			}
@@ -1010,7 +1010,7 @@ jawaii_in,28,124,0	script	Bartender#jaw	46,{
 			mes "I'm a cowboy hero!";
 			mes "Bang Bang Bang!";
 			next;
-			specialeffect2 18; //EF_STEAL
+			specialeffect2 EF_STEAL;
 			percentheal -10,0;
 			next;
 			break;
@@ -1034,7 +1034,7 @@ jawaii_in,28,124,0	script	Bartender#jaw	46,{
 			mes "["+strcharinfo(0)+"]";
 			mes "Aaaaaahhhhhh~!";
 			mes "This drink is really good!";
-			specialeffect2 83; //EF_SANCTUARY
+			specialeffect2 EF_SANCTUARY;
 			percentheal -10,0;
 			next;
 			break;
@@ -1054,7 +1054,7 @@ jawaii_in,28,124,0	script	Bartender#jaw	46,{
 			mes "gulped it down.^000000";
 			next;
 			mes "^3355FFYou feel pretty hammered.^000000";
-			specialeffect2 106; //EF_BLASTMINEBOMB
+			specialeffect2 EF_BLASTMINEBOMB;
 			percentheal -10,0;
 			next;
 			break;
@@ -1076,7 +1076,7 @@ jawaii_in,28,124,0	script	Bartender#jaw	46,{
 			mes "^3355FFYou took a sip of it and sighed.^000000";
 			next;
 			mes "^3355FFAnd promised yourself that you would never drink it ever again.^000000";
-			specialeffect2 5; //EF_HIT6
+			specialeffect2 EF_HIT6;
 			percentheal -10,0;
 			next;
 			break;
@@ -1266,7 +1266,7 @@ prt_in,173,13,4	script	Customer#SoloHan	86,{
 				next;
 				mes "[Bachewcca]";
 				mes "^666666*Grunt!*^000000";
-				donpcevent "Customer#Bachewcca::OnEffect1";
+				specialeffect EF_TALK_SCREAM,AREA,"Customer#Bachewcca";
 				next;
 				mes "[SoloHan]";
 				mes "To...";
@@ -1372,7 +1372,7 @@ prt_in,173,13,4	script	Customer#SoloHan	86,{
 		next;
 		mes "[Bachewcca]";
 		mes "^666666*Grrr...!*^000000";
-		donpcevent "Customer#Bachewcca::OnEffect2";
+		specialeffect EF_THROWITEM,AREA,"Customer#Bachewcca";
 		close;
 	}
 	mes "Oh man...";
@@ -1392,14 +1392,6 @@ prt_in,170,14,0	script	Customer#Bachewcca	89,{
 	mes "Grrrrr!! That hit the spot!";
 	emotion e_sob;
 	close;
-
-OnEffect1:
-	specialeffect 296; //EF_TALK_SCREAM
-	end;
-
-OnEffect2:
-	specialeffect 291; //EF_THROWITEM
-	end;
 }
 
 // Izlude

+ 1 - 5
npc/cities/morocc.txt

@@ -127,7 +127,7 @@ morocc,223,102,0	script	Volunteer - Morroc#06::MocVolunteer	741,{
 	next;
 	mes "[Ringing Voice]";
 	mes "Be quiet! Can't you see what's going on?!";
-	donpcevent "Volunteer - Morroc#06::OnHit";
+	specialeffect EF_HIT2,AREA,"Volunteer - Morroc#06";
 	next;
 	mes "[Morroc Volunteer]";
 	mes "Heyyy, you're being too harsh, Senyorita. Your fist may be as fragile as you are, but it sure can hurt somebody.";
@@ -138,10 +138,6 @@ morocc,223,102,0	script	Volunteer - Morroc#06::MocVolunteer	741,{
 	mes "[Morroc Volunteer]";
 	mes "No, No way!? It,, sure is not!";
 	close;
-
-OnHit:
-	specialeffect EF_HIT2;
-	end;
 }
 
 morocc,226,102,4	duplicate(MocVolunteer)	Volunteer - Morroc#07	726

+ 18 - 54
npc/events/gdevent_aru.txt

@@ -1092,10 +1092,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x1,rand(81,95);
 	set .@paper_y1,rand(87,100);
@@ -1121,10 +1117,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x2,rand(96,110);
 	set .@paper_y2,rand(87,100);
@@ -1150,10 +1142,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x3,rand(111,124);
 	set .@paper_y3,rand(87,100);
@@ -1179,10 +1167,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x4,rand(81,95);
 	set .@paper_y4,rand(73,86);
@@ -1208,10 +1192,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x5,rand(96,110);
 	set .@paper_y5,rand(73,86);
@@ -1237,10 +1217,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x6,rand(111,124);
 	set .@paper_y6,rand(73,86);
@@ -1266,10 +1242,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x7,rand(81,95);
 	set .@paper_y7,rand(59,72);
@@ -1295,10 +1267,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x8,rand(96,110);
 	set .@paper_y8,rand(59,72);
@@ -1324,10 +1292,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x9,rand(111,124);
 	set .@paper_y9,rand(59,72);
@@ -1360,33 +1324,33 @@ Onmvp:
 	end;
 
 OnTimer1000:
-	donpcevent "paper_sp_1_a::Onmvp";
-	donpcevent "paper_sp_3_a::Onmvp";
-	donpcevent "paper_sp_5_a::Onmvp";
-	donpcevent "paper_sp_7_a::Onmvp";
-	donpcevent "paper_sp_9_a::Onmvp";
+	specialeffect EF_MVP,AREA,"paper_sp_1_a";
+	specialeffect EF_MVP,AREA,"paper_sp_3_a";
+	specialeffect EF_MVP,AREA,"paper_sp_5_a";
+	specialeffect EF_MVP,AREA,"paper_sp_7_a";
+	specialeffect EF_MVP,AREA,"paper_sp_9_a";
 	end;
 
 OnTimer2000:
-	donpcevent "paper_sp_2_a::Onmvp";
-	donpcevent "paper_sp_4_a::Onmvp";
-	donpcevent "paper_sp_6_a::Onmvp";
-	donpcevent "paper_sp_8_a::Onmvp";
+	specialeffect EF_MVP,AREA,"paper_sp_2_a";
+	specialeffect EF_MVP,AREA,"paper_sp_4_a";
+	specialeffect EF_MVP,AREA,"paper_sp_6_a";
+	specialeffect EF_MVP,AREA,"paper_sp_8_a";
 	end;
 
 OnTimer3000:
-	donpcevent "paper_sp_1_a::Onmvp";
-	donpcevent "paper_sp_3_a::Onmvp";
-	donpcevent "paper_sp_5_a::Onmvp";
-	donpcevent "paper_sp_7_a::Onmvp";
-	donpcevent "paper_sp_9_a::Onmvp";
+	specialeffect EF_MVP,AREA,"paper_sp_1_a";
+	specialeffect EF_MVP,AREA,"paper_sp_3_a";
+	specialeffect EF_MVP,AREA,"paper_sp_5_a";
+	specialeffect EF_MVP,AREA,"paper_sp_7_a";
+	specialeffect EF_MVP,AREA,"paper_sp_9_a";
 	end;
 
 OnTimer4000:
-	donpcevent "paper_sp_2_a::Onmvp";
-	donpcevent "paper_sp_4_a::Onmvp";
-	donpcevent "paper_sp_6_a::Onmvp";
-	donpcevent "paper_sp_8_a::Onmvp";
+	specialeffect EF_MVP,AREA,"paper_sp_2_a";
+	specialeffect EF_MVP,AREA,"paper_sp_4_a";
+	specialeffect EF_MVP,AREA,"paper_sp_6_a";
+	specialeffect EF_MVP,AREA,"paper_sp_8_a";
 	stopnpctimer;
 	end;
 }

+ 18 - 54
npc/events/gdevent_sch.txt

@@ -1091,10 +1091,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x1,rand(81,95);
 	set .@paper_y1,rand(87,100);
@@ -1120,10 +1116,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x2,rand(96,110);
 	set .@paper_y2,rand(87,100);
@@ -1149,10 +1141,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x3,rand(111,124);
 	set .@paper_y3,rand(87,100);
@@ -1178,10 +1166,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x4,rand(81,95);
 	set .@paper_y4,rand(73,86);
@@ -1207,10 +1191,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x5,rand(96,110);
 	set .@paper_y5,rand(73,86);
@@ -1236,10 +1216,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x6,rand(111,124);
 	set .@paper_y6,rand(73,86);
@@ -1265,10 +1241,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x7,rand(81,95);
 	set .@paper_y7,rand(59,72);
@@ -1294,10 +1266,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x8,rand(96,110);
 	set .@paper_y8,rand(59,72);
@@ -1323,10 +1291,6 @@ OnEnable:
 	}
 	end;
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 	set .@paper_x9,rand(111,124);
 	set .@paper_y9,rand(59,72);
@@ -1359,33 +1323,33 @@ Onmvp:
 	end;
 
 OnTimer1000:
-	donpcevent "paper_sp_1_s::Onmvp";
-	donpcevent "paper_sp_3_s::Onmvp";
-	donpcevent "paper_sp_5_s::Onmvp";
-	donpcevent "paper_sp_7_s::Onmvp";
-	donpcevent "paper_sp_9_s::Onmvp";
+	specialeffect EF_MVP,AREA,"paper_sp_1_s";
+	specialeffect EF_MVP,AREA,"paper_sp_3_s";
+	specialeffect EF_MVP,AREA,"paper_sp_5_s";
+	specialeffect EF_MVP,AREA,"paper_sp_7_s";
+	specialeffect EF_MVP,AREA,"paper_sp_9_s";
 	end;
 
 OnTimer2000:
-	donpcevent "paper_sp_2_s::Onmvp";
-	donpcevent "paper_sp_4_s::Onmvp";
-	donpcevent "paper_sp_6_s::Onmvp";
-	donpcevent "paper_sp_8_s::Onmvp";
+	specialeffect EF_MVP,AREA,"paper_sp_2_s";
+	specialeffect EF_MVP,AREA,"paper_sp_4_s";
+	specialeffect EF_MVP,AREA,"paper_sp_6_s";
+	specialeffect EF_MVP,AREA,"paper_sp_8_s";
 	end;
 
 OnTimer3000:
-	donpcevent "paper_sp_1_s::Onmvp";
-	donpcevent "paper_sp_3_s::Onmvp";
-	donpcevent "paper_sp_5_s::Onmvp";
-	donpcevent "paper_sp_7_s::Onmvp";
-	donpcevent "paper_sp_9_s::Onmvp";
+	specialeffect EF_MVP,AREA,"paper_sp_1_s";
+	specialeffect EF_MVP,AREA,"paper_sp_3_s";
+	specialeffect EF_MVP,AREA,"paper_sp_5_s";
+	specialeffect EF_MVP,AREA,"paper_sp_7_s";
+	specialeffect EF_MVP,AREA,"paper_sp_9_s";
 	end;
 
 OnTimer4000:
-	donpcevent "paper_sp_2_s::Onmvp";
-	donpcevent "paper_sp_4_s::Onmvp";
-	donpcevent "paper_sp_6_s::Onmvp";
-	donpcevent "paper_sp_8_s::Onmvp";
+	specialeffect EF_MVP,AREA,"paper_sp_2_s";
+	specialeffect EF_MVP,AREA,"paper_sp_4_s";
+	specialeffect EF_MVP,AREA,"paper_sp_6_s";
+	specialeffect EF_MVP,AREA,"paper_sp_8_s";
 	stopnpctimer;
 	end;
 }

+ 1 - 5
npc/jobs/2-2e/SoulLinker.txt

@@ -410,7 +410,7 @@ OnTouch:
 			mes "[Maia]";
 			mes "This Witherless Rose will";
 			mes "wither away instead of you...";
-			donpcevent "Maia#link2::Oneff";
+			specialeffect EF_MAPPILLAR2,AREA,"Maia#link2";
 			next;
 			mes "[Maia]";
 			mes "This Witherless Rose will";
@@ -477,10 +477,6 @@ OnTouch:
 	close2;
 	warp "morocc",157,47;
 	end;
-
-Oneff:
-	specialeffect EF_MAPPILLAR2;
-	end;
 }
 
 job_soul,35,30,6	duplicate(SLTester)	Maia#link6	716

+ 15 - 53
npc/quests/cooking_quest.txt

@@ -138,7 +138,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		switch(select("......?:She is my sister:Actually, I don't know her.")) {
 		case 1:
 			cutin "nyuang_3",2;
-			donpcevent "Child with Cat#cook::onDelight";
+			emotion e_ho,0,"Child with Cat#cook";
 			mes "[The kid with a cat]";
 			mes "Nyahahaha,";
 			mes "Nyahahaha~";
@@ -153,7 +153,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			break;
 		case 2:
 			cutin "nyuang_1",2;
-			donpcevent "Child with Cat#cook::OnWhat";
+			emotion e_what,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "...Nya?";
 			mes "...Meow?";
@@ -168,7 +168,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			break;
 		case 3:
 			cutin "nyuang_2",2;
-			donpcevent "Child with Cat#cook::OnPif";
+			emotion e_pif,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "Nyahahaha,";
 			mes "Nyahahaha~";
@@ -828,7 +828,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		next;
 		switch(select("What's your name, kid?:Do you want to eat something?:Here, kitty~:Get out!")) {
 		case 1:
-			donpcevent "Child with Cat#cook::OnOkay";
+			emotion e_ok,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "Nyaaa~";
 			mes "nyaaa~";
@@ -842,7 +842,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			goto L_End;
 		case 2:
 			cutin "nyuang_2",2;
-			donpcevent "Child with Cat#cook::OnPif";
+			emotion e_pif,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "Nyaaaa~";
 			mes "(Purrrrrr~)";
@@ -858,7 +858,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			goto L_End;
 		case 3:
 			cutin "nyuang_3",2;
-			donpcevent "Child with Cat#cook::OnHeh";
+			emotion e_heh,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "Nyahahaha~";
 			mes "Nyhhahaha~";
@@ -870,13 +870,13 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			mes "...Then I don't need you to be here.";
 			goto L_End;
 		case 4:
-			donpcevent "Child with Cat#cook::OnDot";
+			emotion e_dots,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "...";
 			mes "(Meow?)";
 			next;
 			cutin "nyuang_4",2;
-			donpcevent "Child with Cat#cook::OnAngry";
+			emotion e_an,0,"Child with Cat#cook";
 			specialeffect2 EF_HIT2;
 			percentheal -10,0;
 			mes "[Child with Cat]";
@@ -913,14 +913,14 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		mes "or shed on any of the food!";
 		next;
 		cutin "nyuang_4",2;
-		donpcevent "Child with Cat#cook::OnAngry";
+		emotion e_an,0,"Child with Cat#cook";
 		mes "[Child with Cat]";
 		mes "Grrrrrrr!";
 		mes "RRRRreow!";
 		next;
 		donpcevent "Wickebine#cook::OnEnable";
 		emotion e_omg;
-		donpcevent "Child with Cat#cook::OnDelight";
+		emotion e_ho,0,"Child with Cat#cook";
 		next;
 		cutin "job_black_hucke01",1;
 		mes "[Wickebine]";
@@ -948,7 +948,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		mes "bothering Charles, Nyuyang?";
 		next;
 		cutin "nyuang_3",2;
-		donpcevent "Child with Cat#cook::OnHeh";
+		emotion e_heh,0,"Child with Cat#cook";
 		mes "[Child with Cat]";
 		mes "Nyuuuunyuuu~";
 		mes "nyuuuunyuuu~";
@@ -984,7 +984,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		mes "So do not worry, Madam~";
 		next;
 		cutin "job_black_hucke01",1;
-		donpcevent "Wickebine#cook::OnWhat";
+		emotion e_what,0,"Wickebine#cook";
 		mes "[Wickebine]";
 		mes "Are you sure, Charles?";
 		mes "I know how serious you";
@@ -1001,18 +1001,18 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		mes "Well then, take care~";
 		next;
 		cutin "nyuang_3",2;
-		donpcevent "Child with Cat#cook::OnHeh";
+		emotion e_heh,0,"Child with Cat#cook";
 		mes "[Child with Cat]";
 		mes "Nyahahaha~";
 		mes "Nyahahaha~";
 		mes "(Meow, meow~)";
 		next;
 		cutin "job_black_hucke02",255;
-		donpcevent "Wickebine#cook::OnDelight";
+		emotion e_ho,0,"Wickebine#cook";
 		donpcevent "Wickebine#cook::OnDisable";
 		next;
 		emotion e_dots;
-		donpcevent "Child with Cat#cook::OnDot";
+		emotion e_dots,0,"Child with Cat#cook";
 		mes "[Charles Orleans]";
 		mes "......";
 		next;
@@ -2191,35 +2191,6 @@ prt_castle,45,28,3	script	Child with Cat#cook	877,{
 	close2;
 	cutin "nyuang_1",255;
 	end;
-
-OnDelight:
-	emotion e_ho;
-	end;
-
-OnWhat:
-	emotion e_what;
-	end;
-
-OnPif:
-	emotion e_pif;
-	end;
-
-OnOkay:
-	emotion e_ok;
-	end;
-
-OnHeh:
-	emotion e_heh;
-	end;
-
-OnDot:
-	emotion e_dots;
-	end;
-
-OnAngry:
-	emotion e_an;
-	end;
-
 }
 
 prt_castle,44,30,5	script	Wickebine#cook	725,{
@@ -2237,15 +2208,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Wickebine#cook";
 	end;
-
-OnDelight:
-	emotion e_ho;
-	end;
-
-OnWhat:
-	emotion e_what;
-	end;
-
 }
 
 payon,209,127,3	script	Servant	88,{

+ 10 - 26
npc/quests/newgears/2004_headgears.txt

@@ -1918,15 +1918,15 @@ alde_alche,88,180,0	script	Muscle Man#Alarm Mask	748,{
 	mes "It's sexy time!";
 	next;
 	specialeffect EF_FLASHER;
-	setnpcdisplay "Muscle Man#Alarm Mask Man", 1193;
+	setnpcdisplay "Muscle Man#Alarm Mask", 1193;
 	enablenpc " #Alarm Mask Man1";
 	enablenpc " #Alarm Mask Man2";
 	enablenpc " #Alarm Mask Man3";
 	enablenpc " #Alarm Mask Man4";
-	donpcevent " #Alarm Mask Man1::OnAlarmState";
-	donpcevent " #Alarm Mask Man2::OnAlarmState";
-	donpcevent " #Alarm Mask Man3::OnAlarmState";
-	donpcevent " #Alarm Mask Man4::OnAlarmState";
+	specialeffect EF_CLAYMORE,AREA," #Alarm Mask Man1";
+	specialeffect EF_CLAYMORE,AREA," #Alarm Mask Man2";
+	specialeffect EF_CLAYMORE,AREA," #Alarm Mask Man3";
+	specialeffect EF_CLAYMORE,AREA," #Alarm Mask Man4";
 	initnpctimer;
 	if (countitem(1095) > 2999 && countitem(2288) > 0) {
 		if (select("Give him items:Cancel") == 1) {
@@ -2033,15 +2033,15 @@ alde_alche,88,180,0	script	Muscle Man#Alarm Mask	748,{
 
 OnTimer4000:
 	specialeffect EF_FLASHER;
-	setnpcdisplay "Muscle Man#Alarm Mask Man", 748;
+	setnpcdisplay "Muscle Man#Alarm Mask", 748;
 	disablenpc " #Alarm Mask Man1";
 	disablenpc " #Alarm Mask Man2";
 	disablenpc " #Alarm Mask Man3";
 	disablenpc " #Alarm Mask Man4";
-	donpcevent " #Alarm Mask Man1::OnAlarmState";
-	donpcevent " #Alarm Mask Man2::OnAlarmState";
-	donpcevent " #Alarm Mask Man3::OnAlarmState";
-	donpcevent " #Alarm Mask Man4::OnAlarmState";
+	specialeffect EF_CLAYMORE,AREA," #Alarm Mask Man1";
+	specialeffect EF_CLAYMORE,AREA," #Alarm Mask Man2";
+	specialeffect EF_CLAYMORE,AREA," #Alarm Mask Man3";
+	specialeffect EF_CLAYMORE,AREA," #Alarm Mask Man4";
 	stopnpctimer;
 	end;
 }
@@ -2050,40 +2050,24 @@ alde_alche,86,184,0	script	 #Alarm Mask Man1	1193,{
 OnInit:
 	disablenpc " #Alarm Mask Man1";
 	end;
-
-OnAlarmState:
-	specialeffect EF_CLAYMORE;
-	end;
 }
 
 alde_alche,89,184,0	script	 #Alarm Mask Man2	1193,{
 OnInit:
 	disablenpc " #Alarm Mask Man2";
 	end;
-
-OnAlarmState:
-	specialeffect EF_CLAYMORE;
-	end;
 }
 
 alde_alche,92,184,0	script	 #Alarm Mask Man3	1193,{
 OnInit:
 	disablenpc " #Alarm Mask Man3";
 	end;
-
-OnAlarmState:
-	specialeffect EF_CLAYMORE;
-	end;
 }
 
 alde_alche,95,184,0	script	 #Alarm Mask Man4	1193,{
 OnInit:
 	disablenpc " #Alarm Mask Man4";
 	end;
-
-OnAlarmState:
-	specialeffect EF_CLAYMORE;
-	end;
 }
 
 // Drooping Cat, Smokie Leaf, Lazy Smokie, Blue Fish

+ 29 - 104
npc/quests/quests_13_1.txt

@@ -12086,7 +12086,7 @@ mid_camp,206,286,3	script	Expedition Messenger	997,{
 		mes "[Expedition Messenger]";
 		mes "You, head to Schwaltzval Republic.";
 		mes "And you, take Arunafeltz. I'll visit Prontera Palace.";
-		donpcevent "Expedition Messenger#2::OnOK";
+		emotion e_ok,0,"Expedition Messenger#2";
 		next;
 		mes "[Expedition Messenger]";
 		mes "I'll see you guys later.";
@@ -12094,7 +12094,7 @@ mid_camp,206,286,3	script	Expedition Messenger	997,{
 		next;
 		mes "[Expedition Messenger]";
 		mes "What's up? Why haven't you left...?";
-		specialeffect2 EF_SOULBREAKER; // 361 : "Expedition Messenger#edq" EF_SOULBREAKER
+		specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger";
 		next;
 		mes "[Expedition Messenger]";
 		mes "Argh... Why are you doing this?!";
@@ -12116,12 +12116,13 @@ mid_camp,206,286,3	script	Expedition Messenger	997,{
 			mes "Give it to me, now!";
 			next;
 			donpcevent "Expedition Messenger#2::OnEnable";
-			donpcevent "Expedition Messenger#3:OnGasp";
+			emotion e_casp,0,"Expedition Messenger#3";
 			cutin "ep13_shadow_edq",2;
 			mes "[???]";
 			mes "Argh...";
 			next;
-			donpcevent "Expedition Messenger#3:OnEffect";
+			specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger#3";
+			specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger#3";
 			mes "[???]";
 			mes "Argh... You...";
 			next;
@@ -12169,11 +12170,12 @@ mid_camp,206,286,3	script	Expedition Messenger	997,{
 			mes "Oh, yeah? Then I'll have to use force!";
 			next;
 			donpcevent "Expedition Messenger#2::OnEnable";
-			donpcevent "Expedition Messenger#3:OnGasp";
+			emotion e_casp,0,"Expedition Messenger#3";
 			mes "[???]";
 			mes "Argh!";
 			next;
-			donpcevent "Expedition Messenger#3:OnEffect";
+			specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger#3";
+			specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger#3";
 			mes "[???]";
 			mes "Argh... You...";
 			next;
@@ -12291,15 +12293,6 @@ Ongo:
 OnDisable:
 	disablenpc "Expedition Messenger#2";
 	end;
-
-OnOK:
-	emotion e_ok;
-	end;
-
-OnEffect:
-	specialeffect2 EF_SOULBREAKER;
-	specialeffect2 EF_SONICBLOW;
-	end;
 }
 
 mid_camp,209,286,3	script	Expedition Messenger#3	998,4,4,{
@@ -12321,15 +12314,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Expedition Messenger#3";
 	end;
-
-OnGaspp:
-	emotion e_gasp;
-	end;
-
-OnEffect:
-	specialeffect2 EF_SOULBREAKER;
-	specialeffect2 EF_SONICBLOW;
-	end;
 }
 
 man_fild01,315,95,3	script	Expedition Scout#1	707,{
@@ -15096,7 +15080,7 @@ mid_camp,256,272,3	script	Defaria#moc2	897,{
 		specialeffect EF_BEGINSPELL2;
 		next;
 		mes "- The fire sparked, but then it immediatly blew out. -";
-		donpcevent "Wet Firewood#moc2::OnEffect1";
+		specialeffect EF_FIREARROW,AREA,"Wet Firewood#moc2";
 		next;
 		mes "[Defaria]";
 		mes "...............";
@@ -15115,7 +15099,7 @@ mid_camp,256,272,3	script	Defaria#moc2	897,{
 		specialeffect EF_BEGINSPELL2;
 		next;
 		mes "- The fire sparked, but then it immediately blew out.-";
-		donpcevent "Wet Firewood#moc2::OnEffect1";
+		specialeffect EF_FIREARROW,AREA,"Wet Firewood#moc2";
 		next;
 		mes "[Defaria]";
 		mes "...............";
@@ -15352,7 +15336,8 @@ mid_camp,256,272,3	script	Defaria#moc2	897,{
 			mes "..Hopefully I can make a fire with your nice logs....";
 			specialeffect EF_BEGINSPELL2;
 			next;
-			donpcevent "Wet Firewood#moc2::OnEffect2";
+			specialeffect EF_FIREWALL,AREA,"Wet Firewood#moc2";
+			specialeffect EF_TORCH,AREA,"Wet Firewood#moc2";
 			mes "[Defaria]";
 			mes "Oh, this is as great as I'd hoped!";
 			mes "I guess my magic hasn't gotten that rusty after all..";
@@ -15508,15 +15493,6 @@ mid_camp,255,269,0	script	Wet Firewood#moc2	844,{
 		mes "It seems somebody has been futilely attempting to make a fire with them.";
 		close;
 	}
-
-OnEffect1:
-	specialeffect EF_FIREARROW;
-	end;
-
-OnEffect2:
-	specialeffect EF_FIREWALL;
-	specialeffect EF_TORCH;
-	end;
 }
 
 morocc,43,108,5	script	Sharp-Looking Boy#dan_07	82,{
@@ -16697,17 +16673,17 @@ que_job01,144,54,3	script	Rin#moc_room2_2	885,{
 			cutin "moc2_dan02",255;
 			switch(select("Smack his head.:Punch his stomach.:Slap his face.")) {
 			case 1:
-				donpcevent "Rayan#moc_room2_2::OnHit1";
+				specialeffect EF_HIT2,AREA,"Rayan#moc_room2_2";
 				mes "- Wanting to stop Rayan from going berserk, you smacked the back of his head with the journal. Rayan staggered and then fell to the ground. Nice job! -";
 				next;
 				break;
 			case 2:
-				donpcevent "Rayan#moc_room2_2::OnHit2";
+				specialeffect EF_HIT4,AREA,"Rayan#moc_room2_2";
 				mes "- Wanting to stop Rayan from going berserk, you sucker punched him in the 'ole bread basket. Rayan staggered and then fell to the ground..! -";
 				next;
 				break;
 			case 3:
-				donpcevent "Rayan#moc_room2_2::OnHit3";
+				specialeffect EF_HIT1,AREA,"Rayan#moc_room2_2";
 				mes "- Wanting to stop Rayan from going berserk, you slapped his face with the journal. Rayan staggered and then fell onto the ground. Wah! -";
 				next;
 				break;
@@ -16718,7 +16694,7 @@ que_job01,144,54,3	script	Rin#moc_room2_2	885,{
 			mes "[Rayan]";
 			mes "Ahh....";
 			mes "....? Isn't.. Isn't this?!....";
-			donpcevent "Rayan#moc_room2_2::OnEffect1";
+			specialeffect EF_POISON,AREA,"Rayan#moc_room2_2";
 			next;
 			mes "[Rin]";
 			mes "Wah! What's going on?";
@@ -16760,7 +16736,7 @@ que_job01,144,54,3	script	Rin#moc_room2_2	885,{
 			mes "You're Rin, right?";
 			mes "This is the last time you'll ever see me.";
 			mes "Haha... Muhahahahaha!!";
-			donpcevent "Rayan#moc_room2_2::OnEffect2";
+			specialeffect EF_ENTRY,AREA,"Rayan#moc_room2_2";
 			donpcevent "Rayan#moc_room2_2::OnDisable";
 			next;
 			cutin "moc2_rin03",2;
@@ -16968,26 +16944,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Rayan#moc_room2_2";
 	end;
-
-OnEffect1:
-	specialeffect EF_POISON;
-	end;
-
-OnEffect2:
-	specialeffect EF_ENTRY;
-	end;
-
-OnHit1:
-	specialeffect EF_HIT2;
-	end;
-
-OnHit2:
-	specialeffect EF_HIT4;
-	end;
-
-OnHit3:
-	specialeffect EF_HIT1;
-	end;
 }
 
 hu_fild04,235,103,0	script	Heap of Earth#mao2_01	844,4,4,{
@@ -17189,9 +17145,9 @@ OnTouch:
 	mes "Why? Why is Rin here? Wait, where am I?";
 	mes "Argh.. I can't move at all...";
 	next;
-	donpcevent "Dandelion Member#moc2_1::OnEffect1";
-	donpcevent "Dandelion Member#moc2_2::OnEffect1";
-	emotion e_gasp;
+	specialeffect EF_BEGINSPELL2,AREA,"Dandelion Member#moc2_1";
+	specialeffect EF_BEGINSPELL2,AREA,"Dandelion Member#moc2_2";
+	emotion e_gasp,"Rin#moc2_bt_rin01";
 	emotion e_gasp,1;
 	mes "[Rin]";
 	mes "You're not alone. So what?";
@@ -17199,7 +17155,8 @@ OnTouch:
 	next;
 	donpcevent "Rin#moc2_bt_rin01::OnDisable";
 	donpcevent "Rin#moc2_bt_rin02::OnEnable";
-	donpcevent "Rin#moc2_bt_rin01::OnEffect1";
+	specialeffect EF_ICECRASH,AREA,"Rin#moc2_bt_rin01";
+	specialeffect EF_METEORSTORM,AREA,"Rin#moc2_bt_rin01";
 	mes "[Rayan]";
 	mes "Hah, how impressive! You run like a rabbit!";
 	mes "I should have you killed you when I had the chance.";
@@ -17216,16 +17173,16 @@ OnTouch:
 	donpcevent "Dandelion Member#moc2_4::OnEnable";
 	donpcevent "Dandelion Member#moc2_5::OnEnable";
 	next;
-	donpcevent "Rin#moc2_bt_rin02::OnEffect1";
+	specialeffect EF_FREEZED,AREA,"Rin#moc2_bt_rin02";
 	emotion e_gasp;
 	mapannounce "que_dan01", "Rin: When.. When did you...!?!",bc_map,"0x7b68ee";
 	mes "[Rayan]";
 	mes "I'm sorry that I have to do this.";
 	mes "...";
 	mes "Kill her.";
-	donpcevent "Dandelion Member#moc2_3::OnEffect1";
-	donpcevent "Dandelion Member#moc2_4::OnEffect1";
-	donpcevent "Dandelion Member#moc2_5::OnEffect1";
+	specialeffect EF_BEGINSPELL2,AREA,"Dandelion Member#moc2_3";
+	specialeffect EF_BEGINSPELL2,AREA,"Dandelion Member#moc2_4";
+	specialeffect EF_BEGINSPELL2,AREA,"Dandelion Member#moc2_5";
 	next;
 	mapannounce "que_dan01", "Rayan: Follow me as soon as you take care of her. Our next meeting place is the usual place. I'm leaving.",bc_map,"0xA8A8A8";
 	donpcevent "Rayan#moc2_bt_r01::OnDisable";
@@ -17233,7 +17190,9 @@ OnTouch:
 	donpcevent "Dandelion Member#moc2_2::OnDisable";
 	mes "[" + strcharinfo(0) + "]";
 	mes "Rin-!!!";
-	donpcevent "Rin#moc2_bt_rin02::OnEffect2";
+	specialeffect EF_LIGHTBOLT,AREA,"Rin#moc2_bt_rin02";
+	specialeffect EF_FIREPILLARBOMB,AREA,"Rin#moc2_bt_rin02";
+	specialeffect EF_METEORSTORM,AREA,"Rin#moc2_bt_rin02";
 	donpcevent "Rin#moc2_bt_rin02::OnDisable";
 	next;
 	mes "You feel helpless: you can do nothing but watch her slowly get overpowered..";
@@ -17370,11 +17329,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Rin#moc2_bt_rin01";
 	end;
-
-OnEffect1:
-	specialeffect EF_ICECRASH;
-	specialeffect EF_METEORSTORM;
-	end;
 }
 
 que_dan01,29,34,7	script	Rin#moc2_bt_rin02	885,{
@@ -17391,16 +17345,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Rin#moc2_bt_rin02";
 	end;
-
-OnEffect1:
-	specialeffect EF_FREEZED;
-	end;
-
-OnEffect2:
-	specialeffect EF_LIGHTBOLT;
-	specialeffect EF_FIREPILLARBOMB;
-	specialeffect EF_METEORSTORM;
-	end;
 }
 
 que_dan01,36,34,3	script	Rayan#moc2_bt_r01	456,{
@@ -17434,9 +17378,6 @@ OnDisable:
 	disablenpc "Dandelion Member#moc2_1";
 	end;
 
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 
 que_dan01,41,34,3	script	Dandelion Member#moc2_2	456,{
@@ -17453,10 +17394,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Dandelion Member#moc2_2";
 	end;
-
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 
 que_dan01,26,40,5	script	Dandelion Member#moc2_3	456,{
@@ -17473,10 +17410,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Dandelion Member#moc2_3";
 	end;
-
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 
 que_dan01,21,35,5	script	Dandelion Member#moc2_4	456,{
@@ -17493,10 +17426,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Dandelion Member#moc2_4";
 	end;
-
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 
 que_dan01,25,32,7	script	Dandelion Member#moc2_5	456,{
@@ -17513,10 +17442,6 @@ OnEnable:
 OnDisable:
 	disablenpc "Dandelion Member#moc2_5";
 	end;
-
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 
 yuno_fild09,234,133,0	warp	#moc2_fild09-que_dan02	1,1,que_dan02,13,10

+ 2 - 2
npc/quests/quests_13_2.txt

@@ -7616,7 +7616,7 @@ OnInit:
 	enablenpc "#mj01_01";
 	end;
 
-.@get_stone:
+OnTouch:
 	if ((ep13_2_tre == 2) && (countitem(6076) == 1)) {
 		if (countitem(6077) < 10) {
 			specialeffect EF_COUPLECASTING; 
@@ -7688,7 +7688,7 @@ OnInit:
 	enablenpc "#mj01_02";
 	end;
 
-.@get_stone:
+OnTouch:
 	if ((ep13_2_tre == 2) && (countitem(6076) == 1)) {
 		if (countitem(6077) < 10) {
 			specialeffect EF_COUPLECASTING;

+ 15 - 27
npc/quests/quests_hugel.txt

@@ -312,7 +312,7 @@ hu_in01,387,245,0	script	Allen Schuwell	849,2,2,{
 			mes "medicine you're";
 			mes "supposed to";
 			mes "need so badly.";
-			donpcevent "Postell Schuwell#D::OnEffect";
+			specialeffect EF_CHANGECOLD,AREA,"Postell Schuwell#D";
 			next;
 			mes "[Allen]";
 			mes "Thank goodness...";
@@ -324,7 +324,7 @@ hu_in01,387,245,0	script	Allen Schuwell	849,2,2,{
 			mes "Something's not";
 			mes "right. Bunkoll A";
 			mes "doesn't taste like this...";
-			donpcevent "Postell Schuwell#D::OnSweat";
+			emotion e_swt,0,"Postell Schuwell#D";
 			next;
 			mes "[Postell]";
 			mes "Bunkoll A...?";
@@ -469,15 +469,6 @@ OnTimer100000:
 	disablenpc "Postell Schuwell#D";
 	stopnpctimer;
 	end;
-	
-OnSweat:
-	emotion e_swt;
-	end;
-
-OnEffect:
-	specialeffect EF_CHANGECOLD;
-	end;
-
 }
 
 hu_fild06,34,123,3	script	Postell Schuwell	97,{
@@ -4467,7 +4458,7 @@ hu_fild06,218,373,1	script	Moks Bugs#Bug4	1053,{
 			mes "- *Whizz Whizz Bzzzz* -";
 			mes "- *Whizz Whizz*-";
 			mes "- *Whizz Whizz*-";
-			specialeffect2 71;
+			specialeffect2 EF_CONE;
 			next;
 			if(rand(1,5) > 4)
 			{
@@ -4566,7 +4557,7 @@ lhz_dun02,244,226,0	script	Unethical Machine	111,{
 			mes "- You threw a Marine Sphere Bottle toward the machine. -";
 			next;
 			mes "BOOM!";
-			specialeffect2 183;
+			specialeffect2 EF_SUI_EXPLOSION;
 			enablenpc "HiddenExplosion";
 			mapannounce "lhz_dun02","Beep------------------ ",1,0x99CCFF;
 			delitem 7138,1; //Marine sphere bottle
@@ -4590,7 +4581,7 @@ OnInit:
 	
 OnTouch:
 	percentheal -10,0;
-	specialeffect 4;
+	specialeffect EF_HIT5;
 	disablenpc "HiddenExplosion";
 	end;
 	
@@ -4644,7 +4635,7 @@ hugel,198,169,0	script	#HugelTree	139,2,2,{
 		}
 		else if(hg_memory == 6)
 		{
-			specialeffect2 57;
+			specialeffect2 EF_BEGINSPELL5;
 			mes "^3355FFWhat's this strange";
 			mes "feeling of dread?";
 			mes "This peculiar chill...";
@@ -5350,7 +5341,7 @@ hugel,196,164,3	script	El Schatt	50,{
 		mes "It's... I'm Manainne...";
 		mes "^333333*Sniff*^000000 She had to go back...";
 		next;
-		specialeffect2 71;
+		specialeffect2 EF_CONE;
 		set hg_memory,12;
 		getexp 50000,0;
 		getitem 603,1; //Old blue box
@@ -5680,7 +5671,7 @@ hu_fild06,190,367,3	script	Torpy's Mom	701,{
 		mes "it's not much, but I hope";
 		mes "you accept this as our thanks.";
 		mes "Goodbye for now, adventurer~";
-		specialeffect2 71;
+		specialeffect2 EF_CONE;
 		set hg_ubu01,8;
 		getitem 12065,3; //Green salad
 		getexp 50000,0;
@@ -5702,7 +5693,7 @@ hu_fild06,190,367,3	script	Torpy's Mom	701,{
 		mes "it's not much, but I hope";
 		mes "you accept this as our thanks.";
 		mes "Goodbye for now, adventurer~";
-		specialeffect2 68;
+		specialeffect2 EF_MVP;
 		set hg_ubu01,8;
 		getitem 12065,3; //Green salad
 		getexp 50000,0;
@@ -7172,7 +7163,7 @@ yuno,111,156,3	script	Euslan	90,{
 		mes "Take care of yourself...";
 		close2;
 		set hg_ma1,13;
-		specialeffect 253;
+		specialeffect EF_ABSORBSPIRITS;
 		getexp 900000,600000;
 		end;
 	}
@@ -7725,7 +7716,7 @@ hugel,56,104,3	script	Kurupe	709,3,3,{
 			close;
 		}
 		set hg_milk,9;
-		specialeffect2 71;
+		specialeffect2 EF_CONE;
 		getexp 100000,0;
 		getitem 12063,3;
 		mes "[Kurupe]";
@@ -10314,9 +10305,6 @@ hu_in01,155,82,4	script	Julian#2	86,{
 }
 
 moc_fild12,160,372,0	script	Hit	139,{
-
-OnEffect:
-	specialeffect 122;
 	end;
 }
 
@@ -10335,7 +10323,7 @@ OnTouch:
 		mes "followed. Hold on a sec";
 		mes "while I take care of him.";
 		next;
-		donpcevent "Hit::OnEffect";
+		specialeffect EF_SONICBLOWHIT,AREA,"Hit";
 		mes "[???]";
 		mes "Ha!";
 		next;
@@ -10773,9 +10761,9 @@ OnTouch:
 							mes "What was";
 							mes "that noise?!";
 							next;
-							specialeffect 90;
-							specialeffect 90;
-							specialeffect 90;
+							specialeffect EF_LORD;
+							specialeffect EF_LORD;
+							specialeffect EF_LORD;
 							mes "["+strcharinfo(0)+"]";
 							mes "Wa...waaaahhhh!";
 							close2;

+ 14 - 14
npc/quests/quests_juperos.txt

@@ -1858,7 +1858,7 @@ OnMyMobDead:
 		mapannounce "juperos_02","Have you come seeking Juperos?! It no longer exists...",bc_map,"0xFF0000";
 	else if (.MyMobs == 0) {
 		mapannounce "juperos_02","Have you come to see me? Fine! Find me first!",bc_map,"0xFF0000";
-		specialeffect2 563; // 563
+		specialeffect2 563;
 		soundeffectall "earth_quake.wav",0;
 		disablenpc "3F Gate Switch#jupe";
 		donpcevent "Restricted Area#jupe::OnEnable";
@@ -1912,7 +1912,7 @@ OnTimer483000:
 OnTimer506000:
 OnTimer529000:
 OnTimer552000:
-	specialeffect 561; //"Restricted Area#jupe" 561
+	specialeffect 561;
 	end;
 
 OnTimer556000:
@@ -1924,7 +1924,7 @@ OnTimer561000:
 	end;
 
 OnTimer598000:
-	specialeffect 561; //"Restricted Area#jupe" 561
+	specialeffect 561;
 	end;
 
 OnTimer600000:
@@ -2067,7 +2067,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "Warp#1-1";
-	specialeffect 561; //"Warp#1-1" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -2361,7 +2361,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "Warp#1-2";
-	specialeffect 561; //"Warp#1-2" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -2648,7 +2648,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "Warp#1-3";
-	specialeffect 561; //"Warp#1-3" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -2937,7 +2937,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "Warp#1-4";
-	specialeffect 561; //"Warp#1-4" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -3143,7 +3143,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "LeverWarp#ufe";
-	specialeffect 561; //"LeverWarp#ufe" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -3276,7 +3276,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "Warp#2-1";
-	specialeffect 561; //"Warp#2-1" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -3570,7 +3570,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "Warp#2-2";
-	specialeffect 561; //"Warp#2-2" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -3857,7 +3857,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "Warp#2-3";
-	specialeffect 561; //"Warp#2-3" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -4148,7 +4148,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "Warp#2-4";
-	specialeffect 561; //"Warp#2-4" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -4356,7 +4356,7 @@ OnInit:
 
 OnEnable:
 	enablenpc "LeverWarp#ufe2";
-	specialeffect 561; //"LeverWarp#ufe2" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	end;
@@ -4450,7 +4450,7 @@ jupe_ele_r,51,98,0	script	Switch#ufe	844,{
 							disablenpc "Switch#ufe";
 							enablenpc "Switch On#ufe";
 							initnpctimer;
-							specialeffect2 563; // 563
+							specialeffect2 563;
 							soundeffectall "earth_quake.wav",0;
 							close2;
 							cutin "5-1",255;

+ 1 - 5
npc/quests/quests_louyang.txt

@@ -4112,7 +4112,7 @@ lou_fild01,224,348,0	script	Lady#delivery	817,{
 				set zeny,zeny-100;
 			}
 			close2;
-			donpcevent " #fire::OnClaymore";
+			specialeffect EF_BLASTMINEBOMB,AREA," #fire";
 			end;
 		}
 		mes "[Lady]";
@@ -4233,10 +4233,6 @@ lou_fild01,224,348,0	script	Lady#delivery	817,{
 
 lou_fild01,225,350,0	script	 #fire	139,{
 	end;
-
-OnClaymore:
-	specialeffect EF_BLASTMINEBOMB;
-	end;
 }
 
 lou_in01,101,125,0	script	Trap#lou_in1	-1,20,1,{

+ 63 - 83
npc/quests/quests_moscovia.txt

@@ -3789,7 +3789,7 @@ mosk_fild01,86,104,3	script	Aged Stranger#npc	963,{
 				if (.@music_bard == 2) {
 					soundeffect "mos_gusli1.wav",0;
 					emotion e_no1;
-					specialeffect2 7;
+					specialeffect2 EF_EXIT;
 					mes "[Aged Stranger]";
 					mes "Oh! You are good at playing the";
 					mes "Gusli! In such a short time... you";
@@ -3833,7 +3833,7 @@ mosk_fild01,86,104,3	script	Aged Stranger#npc	963,{
 				if (.@music_etc == 3) {
 					soundeffect "mos_gusli1.wav",0;
 					emotion e_no1;
-					specialeffect2 7;
+					specialeffect2 EF_EXIT;
 					mes "[Aged Stranger]";
 					mes "Oh! You are good at playing the";
 					mes "Gusli! In such a short time... you";
@@ -3905,7 +3905,7 @@ mosk_fild01,86,104,3	script	Aged Stranger#npc	963,{
 				if (.@music_bard == 2) {
 					soundeffect "mos_gusli1.wav",0;
 					emotion e_no1;
-					specialeffect2 7;
+					specialeffect2 EF_EXIT;
 					mes "[Aged Stranger]";
 					mes "Oh! You are good at playing the";
 					mes "Gusli! In such a short time... you";
@@ -3949,7 +3949,7 @@ mosk_fild01,86,104,3	script	Aged Stranger#npc	963,{
 				if (.@music_etc == 3) {
 					soundeffect "mos_gusli1.wav",0;
 					emotion e_no1;
-					specialeffect2 7;
+					specialeffect2 EF_EXIT;
 					mes "[Aged Stranger]";
 					mes "Oh! You are good at playing the";
 					mes "Gusli! In such a short time... you";
@@ -10394,8 +10394,8 @@ mosk_dun01,169,162,0	script	Mysterious Stone#rus02	111,{
 			next;
 			mes "- !!!!!! -";
 			percentheal -50,-50;
-			specialeffect2 212;
-			specialeffect2 1;
+			specialeffect2 EF_DARKBREATH;
+			specialeffect2 EF_HIT2;
 			emotion 23,1;
 			next;
 			mes "- An unknown force has -";
@@ -10518,7 +10518,7 @@ mosk_dun01,167,160,3	script	Gray Wolf#rus03	972,{
 		mes "Unless you want to be killed, leave now.";
 		set rhea_rus_main,3;
 		emotion 23,1;
-		specialeffect2 1;
+		specialeffect2 EF_HIT2;
 		percentheal -50,0;
 		next;
 		mes "- The Gray Wolf attacks you -";
@@ -10771,8 +10771,8 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 					mes "- The key begins to glow -";
 					mes "- wind begins to blow -";
 					mes "- from somewhere -";
-					specialeffect2 12;
-					specialeffect 134;
+					specialeffect2 EF_BEGINSPELL;
+					specialeffect EF_FREEZED;
 					next;
 				}else{
 					mes "["+ strcharinfo(0) +"]";
@@ -10789,13 +10789,15 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 				mes "- The wind disappears and -";
 				mes "- a very young girl appears -";
 				donpcevent "Maria Morebna#rus46::OnEnable";
-				donpcevent "Maria Morebna#rus46::OnFreezed";
+				specialeffect EF_FREEZED,AREA,"Maria Morebna#rus46";
 				next;
 				mes "[Maria Morebna]";
 				mes "Thank you!";
 				mes "I'm finally out of there! Now I can.....................aaaaak!!!....";
 				next;
-				donpcevent "Maria Morebna#rus46::OnDeath";
+				specialeffect EF_HIT2,AREA,"Maria Morebna#rus46";
+				specialeffect EF_DARKBREATH,AREA,"Maria Morebna#rus46";
+				specialeffect EF_DEVIL,AREA,"Maria Morebna#rus46";
 				mes "- Maria is attacked -";
 				mes "- and falls down!! -";
 				next;
@@ -10824,7 +10826,7 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 				mes "Gray Wolf...";
 				mes "You think you can fight me?!";
 				next;
-				donpcevent "Gray Wolf#rus05::OnFirehit";
+				specialeffect EF_FIREHIT,AREA,"Gray Wolf#rus05";
 				mes "- Staggering from -";
 				mes "- Koshei's flames, -";
 				mes "- Gray Wolf quickly tell me -";
@@ -10956,7 +10958,7 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 			mes "- The wounds and -";
 			mes "- curses on her body -";
 			mes "- are removed !! -";
-			donpcevent "Maria Morebna#rus46::OnAbsorbspirits";
+			specialeffect EF_ABSORBSPIRITS,AREA,"Maria Morebna#rus46";
 			next;
 			mes "["+ strcharinfo(0) +"]";
 			mes "Ok! Next...";
@@ -10986,7 +10988,7 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 				next;
 			}
 			mes "- !! -";
-			donpcevent "Maria Morebna#rus46::OnResurrection";
+			specialeffect EF_RESURRECTION,AREA,"Maria Morebna#rus46";
 			next;
 			mes "[Gray Wolf]";
 			mes "Success!!";
@@ -11170,10 +11172,6 @@ OnDisable:
 	disablenpc "Gray Wolf#rus05";
 	end;
 
-OnFirehit:
-	specialeffect 49;
-	end;
-
 OnTimer120000:
 	stopnpctimer;
 	donpcevent "Gray Wolf#rus05::OnDisable";
@@ -11200,24 +11198,6 @@ OnDisable:
 	disablenpc "Maria Morebna#rus46";
 	end;
 
-OnFreezed:
-	specialeffect 134;
-	end;
-
-OnDeath:
-	specialeffect 1;
-	specialeffect 212;
-	specialeffect 372;
-	end;
-
-OnAbsorbspirits:
-	specialeffect 253;
-	end;
-
-OnResurrection:
-	specialeffect 77;
-	end;
-
 OnTimer120000:
 	donpcevent "Maria Morebna#rus46::OnDisable";
 	end;
@@ -11422,7 +11402,7 @@ moscovia,178,127,0	script	The Blacksmith#rus06	63,{
 				next;
 				mes "[The Blacksmith]";
 				mes "'^ff0000Spellshield Protection^000000.";
-				specialeffect2 253;
+				specialeffect2 EF_ABSORBSPIRITS;
 				next;
 				mes "[The Blacksmith]";
 				mes "This spell protects you from any curse the keymaker might try to use. Remember the words of the spell. It won't last very long because I am just a blacksmith.";
@@ -12470,7 +12450,7 @@ mosk_fild02,151,188,0	script	Pointed Tree#rus11	111,{
 				close;
 			}else{
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				close;
 			}
@@ -12508,7 +12488,7 @@ mosk_fild02,160,227,0	script	Pointed Tree#rus12	111,{
 				close;
 			}else{
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				close;
 			}
@@ -12546,7 +12526,7 @@ mosk_fild02,160,179,0	script	Pointed Tree#rus13	111,{
 				close;
 			}else{
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				close;
 			}
@@ -12584,7 +12564,7 @@ mosk_fild02,142,247,0	script	Pointed Tree#rus14	111,{
 				close;
 			}else{
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				close;
 			}
@@ -12622,7 +12602,7 @@ mosk_fild02,149,223,0	script	Pointed Tree#rus15	111,{
 				close;
 			}else{
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				close;
 			}
@@ -12660,7 +12640,7 @@ mosk_fild02,114,223,0	script	Pointed Tree#rus16	111,{
 				close;
 			}else{
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				close;
 			}
@@ -12698,7 +12678,7 @@ mosk_fild02,101,197,0	script	Pointed Tree#rus17	111,{
 				close;
 			}else{
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				close;
 			}
@@ -12736,7 +12716,7 @@ mosk_fild02,125,182,0	script	Pointed Tree#rus18	111,{
 				close;
 			}else{
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				close;
 			}
@@ -12919,7 +12899,7 @@ OnTouch:
 					mes "- something gleaming -";
 					mes "- seems to stare at you!! -";
 					next;
-					specialeffect2 99;
+					specialeffect2 EF_FLASHER;
 					percentheal -100,0;
 					close;
 				}
@@ -12946,7 +12926,7 @@ OnTouch:
 					close;
 				}else{
 					mes "-You seem to hear the splash but something gleaming raids on you!!-";
-					specialeffect2 99;
+					specialeffect2 EF_FLASHER;
 					percentheal -100,0;
 					close;
 				}
@@ -13164,7 +13144,7 @@ mosk_fild02,124,202,3	script	Lusalka#rus23	971,{
 				mes "Here, my hair...?!";
 				mes "Aaaaaaaah!??!?!";
 				sc_start SC_CURSE,60000,0;
-				specialeffect2 90;
+				specialeffect2 EF_LORD;
 				emotion 23,1;
 				percentheal -30,0;
 				next;
@@ -13210,7 +13190,7 @@ mosk_fild02,124,202,3	script	Lusalka#rus23	971,{
 		}
 	}else{
 		mes "-When Lusalka watches you, you are blacked out-";
-		specialeffect2 99;
+		specialeffect2 EF_FLASHER;
 		percentheal -100,0;
 		donpcevent "Lusalka#rus23::OnDisable";
 		close;
@@ -13616,7 +13596,7 @@ OnInit:
 
 OnEnable:
 	initnpctimer;
-	specialeffect 317;
+	specialeffect EF_PORTAL2;
 	enablenpc "1#rus27";
 	end;
 
@@ -13719,7 +13699,7 @@ mosk_que,45,131,0	script	Stone Furnace#rus28	111,{
 				next;
 				mes "["+ strcharinfo(0) +"]";
 				mes "Oops, it's hot, hot!!!";
-				specialeffect2 49;
+				specialeffect2 EF_FIREHIT;
 				emotion 23,1;
 				percentheal -5,0;
 				close;
@@ -14065,7 +14045,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 		mes "[Baba Yaga]";
 		mes "'Presto Change-o!!'";
 		mes "'Turn into a pig!!'";
-		specialeffect2 63;
+		specialeffect2 EF_BARRIER;
 		emotion 23;
 		next;
 		mes "[Baba Yaga]";
@@ -14083,7 +14063,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 			mes "["+ strcharinfo(0) +"]";
 			mes "Eh, eh.. I mean.. I say.. spell...";
 			mes ""+ .@input$ +" !!!";
-			specialeffect2 253;
+			specialeffect2 EF_ABSORBSPIRITS;
 			next;
 		}else{
 			mes "["+ strcharinfo(0) +"]";
@@ -14254,7 +14234,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 			mes "[Baba Yaga]";
 			mes "Ok.. Let's do this.";
 			mes "'Keep off the grass!!!'";
-			specialeffect 56;
+			specialeffect EF_BEGINSPELL4;
 			delitem 7881,1;
 			set rhea_rus_main,28;
 			monster "mosk_dun02",52,210,"Violent Gardener",1493,1,"Baba Yaga#rus32::OnMyMobDead";
@@ -14283,7 +14263,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 		next;
 		mes "[Baba Yaga]";
 		mes "'There is an order for you to open your eyes!!!'";
-		specialeffect2 55;
+		specialeffect2 EF_BEGINSPELL3;
 		set rhea_rus_main,29;
 		monster "mosk_dun02",52,210,"Alarm to 5 minutes",1193,1,"Baba Yaga#rus32::OnMyMobDead";
 		monster "mosk_dun02",53,210,"Alarm on time",1193,1,"Baba Yaga#rus32::OnMyMobDead";
@@ -14497,7 +14477,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 			next;
 			mes "[Baba Yaga]";
 			mes "Yg~ Yg~ Yggdrasil~ Yggdrasil has lots of iron~";
-			specialeffect 305;
+			specialeffect EF_PHARMACY_OK;
 			next;
 			mes "[Baba Yaga]";
 			mes "Here, I made the 'Living Water' so now let's make the 'Dead Water'...";
@@ -14511,7 +14491,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 			next;
 			mes "[Baba Yaga]";
 			mes "Hi~ hi~ hi~ hi~ na~ lle~ Stir with right hand~ Stir with left hand~ Both hands will be ok~";
-			specialeffect 305;
+			specialeffect EF_PHARMACY_OK;
 			next;
 			mes "[Baba Yaga]";
 			mes "Here, it's done.";
@@ -14671,7 +14651,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 					}
 					mes "[Baba Yaga]";
 					mes "Here, done!";
-					specialeffect 305;
+					specialeffect EF_PHARMACY_OK;
 					next;
 					mes "[Baba Yaga]";
 					mes "Whenever you want more, come to me.";
@@ -14770,7 +14750,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 					}
 					mes "[Baba Yaga]";
 					mes "Here, done!";
-					specialeffect 305;
+					specialeffect EF_PHARMACY_OK;
 					next;
 					mes "[Baba Yaga]";
 					mes "Whenever you want more, come to me.";
@@ -14879,7 +14859,7 @@ OnTouch:
 			if (.@input$ == "Good feed is orange-flavored") {
 				mes "["+ strcharinfo(0) +"]";
 				mes ""+ .@input$ +" !!!";
-				specialeffect 304;
+				specialeffect EF_TELEPORTATION2;
 				next;
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				donpcevent "Cow#rus33::OnDisable";
@@ -14993,7 +14973,7 @@ OnTouch:
 			if (.@input$ == "Good feed is orange-flavored") {
 				mes "["+ strcharinfo(0) +"]";
 				mes ""+ .@input$ +" !!!";
-				specialeffect 304;
+				specialeffect EF_TELEPORTATION2;
 				next;
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				donpcevent "Cow#rus34::OnDisable";
@@ -15107,7 +15087,7 @@ OnTouch:
 			if (.@input$ == "Good feed is orange-flavored") {
 				mes "["+ strcharinfo(0) +"]";
 				mes ""+ .@input$ +" !!!";
-				specialeffect 304;
+				specialeffect EF_TELEPORTATION2;
 				next;
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				donpcevent "Cow#rus35::OnDisable";
@@ -15211,7 +15191,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					next;
 					mes "["+ strcharinfo(0) +"]";
 					mes "Heaven, earth, and wind belong to God, there is no place for evil.";
-					specialeffect 42;
+					specialeffect EF_BLESSING;
 					next;
 					mes "[Noisy Coffin]";
 					mes "Heek, heeee! Heeeeeek!";
@@ -15223,7 +15203,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					next;
 					mes "["+ strcharinfo(0) +"]";
 					mes "Heaven, earth, and wind belong to God, there is no place for evil.";
-					specialeffect 42;
+					specialeffect EF_BLESSING;
 					next;
 					mes "[Noisy Coffin]";
 					mes "What was that? What was that for? Was it fun?";
@@ -15243,7 +15223,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					mes "- The covetous, the perverse -";
 					mes "- All the evils hateful -";
 					mes "- Will be droven off this land -";
-					specialeffect 75;
+					specialeffect EF_GLORIA;
 					next;
 					mes "[Noisy Coffin]";
 					mes "Heek, heeee! Heeeeeek!";
@@ -15257,7 +15237,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					mes "- The covetous, the perverse -";
 					mes "- All the evils hateful -";
 					mes "- Will be droven off this land -";
-					specialeffect 75;
+					specialeffect EF_GLORIA;
 					next;
 					mes "[Noisy Coffin]";
 					mes "Perverse! The perverse!! Drive away!! What was that song?! Was it fun?!";
@@ -15275,7 +15255,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 						mes "If you don't shut up, I will pour Holy Water on you!";
 						next;
 						mes "- You open the bottle of Holy Water and pour it around the coffin carefully !! -";
-						specialeffect 72;
+						specialeffect EF_SPHERE;
 						next;
 						mes "[Noisy Coffin]";
 						mes "Heek, heeee! Heeeeeek!";
@@ -15287,7 +15267,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 						mes "If you don't shut up, I will pour Holy Water on you!";
 						next;
 						mes "- You open the bottle of Holy Water and pour it around the coffin carefully !! -";
-						specialeffect 72;
+						specialeffect EF_SPHERE;
 						next;
 						mes "[Noisy Coffin]";
 						mes "Ah, cold! No, it's cool! Was it fun? Was it fun?!";
@@ -15321,7 +15301,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					next;
 					mes "[Noisy Coffin]";
 					mes "Heeeek! Heeeeeee!!!! I am scared! Stop it!!";
-					specialeffect 152;
+					specialeffect EF_HOLYHIT;
 					set rhea_rus_main,20;
 					next;
 					break;
@@ -15331,7 +15311,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					mes "......I will kick you!!";
 					next;
 					mes "- You close your eyes, take a deep breathe and kick the coffin with the might of God !! -";
-					specialeffect 152;
+					specialeffect EF_HOLYHIT;
 					next;
 					mes "[Noisy Coffin]";
 					mes "Slam! Slam! I like noise! Do it more, more, more!";
@@ -15426,7 +15406,7 @@ treasure01,165,58,0	script	Old Treasure Box#rus37	111,{
 			next;
 			mes "["+ strcharinfo(0) +"]";
 			mes "Arrrrrk? What is this!!";
-			specialeffect 99;
+			specialeffect EF_FLASHER;
 			next;
 		}else{
 			mes "- Her eyes are made from jewels !! -";
@@ -15437,7 +15417,7 @@ treasure01,165,58,0	script	Old Treasure Box#rus37	111,{
 			end;
 		}
 		mes "- You wave your arms and cover your eyes. The mirror inside your bag reflects the light from her eyes accidentally !! -";
-		specialeffect 99;
+		specialeffect EF_FLASHER;
 		next;
 		mes "- The light reflected goes to the woman shape and fumes comes from the box and it opens !! -";
 		next;
@@ -15509,7 +15489,7 @@ treasure01,24,39,0	script	Old Bed#rus38	111,{
 			next;
 			mes "["+ strcharinfo(0) +"]";
 			mes "Ouch?!";
-			specialeffect2 1;
+			specialeffect2 EF_HIT2;
 			percentheal -5,0;
 			next;
 			mes "- Something unidentified bites your hand !! -";
@@ -15563,7 +15543,7 @@ treasure01,24,39,0	script	Old Bed#rus38	111,{
 			next;
 			mes "["+ strcharinfo(0) +"]";
 			mes "Ouch?!";
-			specialeffect2 1;
+			specialeffect2 EF_HIT2;
 			percentheal -5,0;
 			next;
 			mes "- Something unidentified bites your hand !! -";
@@ -15810,7 +15790,7 @@ mosk_dun02,57,220,0	script	House Ghost Jar#rus43	111,{
 		next;
 		mes "- You tap the jar -";
 		mes "- with your hand -";
-		specialeffect 62;
+		specialeffect EF_SIGHTRASHER;
 		emotion 23,1;
 		next;
 		mes "- A voice laughs in the jar as -";
@@ -15818,7 +15798,7 @@ mosk_dun02,57,220,0	script	House Ghost Jar#rus43	111,{
 		next;
 		mes "["+ strcharinfo(0) +"]";
 		mes "You! No more games! Come out of there!";
-		specialeffect 1;
+		specialeffect EF_HIT2;
 		next;
 		mes "- You kick the jar -";
 		mes "- it rolls to the floor -";
@@ -15837,7 +15817,7 @@ mosk_dun02,57,220,0	script	House Ghost Jar#rus43	111,{
 		mes "- As you plan to kick the jar -";
 		mes "- again, something scared -";
 		mes "- utters in a shaky voice -";
-		specialeffect 196;
+		specialeffect EF_CURSEATTACK;
 		next;
 		mes "[House Ghost]";
 		mes "No! Please stop it! I was wrong!";
@@ -15886,19 +15866,19 @@ mosk_dun02,57,220,0	script	House Ghost Jar#rus43	111,{
 			next;
 			mes "[House Ghost]";
 			mes "One!";
-			specialeffect 0;
+			specialeffect EF_HIT1;
 			next;
 			mes "[House Ghost]";
 			mes "One! Two!";
-			specialeffect 1;
+			specialeffect EF_HIT2;
 			next;
 			mes "[House Ghost]";
 			mes "One! Two! Three!";
-			specialeffect 2;
+			specialeffect EF_HIT3;
 			next;
 			mes "[House Ghost]";
 			mes "Ok! I will pick one of them up!";
-			specialeffect 18;
+			specialeffect EF_STEAL;
 			next;
 			mes "[House Ghost]";
 			mes "Ok! I will pick one of them up!";
@@ -16413,7 +16393,7 @@ pay_dun04,163,186,0	script	Ghost Tree#rus45	111,{
 			mes "I cast first.";
 			next;
 			mes "- Ghost Tree casts a dice. The dice falls down, rotates and stops there-";
-			specialeffect 194;
+			specialeffect EF_STUNATTACK;
 			next;
 			set .@tree_dice01,rand(1,6);
 			if (.@tree_dice01 == 1) {
@@ -16456,7 +16436,7 @@ pay_dun04,163,186,0	script	Ghost Tree#rus45	111,{
 			mes "Ok, it is my turn?";
 			next;
 			mes "-You cast a dice. The dice falls down, rotates and stops there-";
-			specialeffect2 194;
+			specialeffect2 EF_STUNATTACK;
 			next;
 			set .@rus_dice01,rand(1,6);
 			mes "["+ strcharinfo(0) +"]";

+ 2 - 9
npc/quests/seals/brisingamen_seal.txt

@@ -3160,18 +3160,11 @@ que_god02,173,58,4	script	#doppelganger1	739,{
 }
 
 que_god02,175,55,4	script	#doppelganger2	739,{
-
-OnCast:
-	specialeffect EF_BEGINSPELL7;
 	end;
 }
 
 que_god02,175,54,1	script	#lowen	745,{
 	end;
-
-OnCast:
-	specialeffect EF_BEGINSPELL7;
-	end;
 }
 
 que_god02,178,49,1	script	#knight1	751,{
@@ -3244,7 +3237,7 @@ OnTouch:
 	mes "Go, Lowen!";
 	mes "Cast Grand Cross, now!^000000";
 	next;
-	donpcevent "#lowen::OnCast";
+	specialeffect EF_BEGINSPELL7,AREA,"#lowen";
 	mapannounce "que_god02","Mwahaha! Mortals are such fools...",0,0xA8A8A8;
 	donpcevent "#brisinsummon::OnDoppel1Off";
 	donpcevent "#brisinsummon::OnDoppel2On";
@@ -3255,7 +3248,7 @@ OnTouch:
 	mes "[" + strcharinfo(0) + "]";
 	mes " ??!!!";
 	next;
-	donpcevent "#doppelganger2::OnCast";
+	specialeffect EF_BEGINSPELL7,AREA,"#doppelganger2";
 	mes "[Male Voice]";
 	mes "Lowen!";
 	mes "Noooooooooo!!!";

+ 3 - 3
npc/quests/skills/hunter_skills.txt

@@ -170,8 +170,8 @@ pay_arche,109,169,3	script	Arpesto	712,{
 				next;
 				mes "[Arpesto]";
 				mes "ARRRRRRRROOOOOOW~!";
-				specialeffect 99;
-				specialeffect2 99;
+				specialeffect EF_FLASHER;
+				specialeffect2 EF_FLASHER;
 				next;
 				mes "[Arpesto]";
 				mes "^333333*Pant Pant*^000000";
@@ -182,7 +182,7 @@ pay_arche,109,169,3	script	Arpesto	712,{
 				next;
 				mes "^3355FF*Swwwwwww!*";
 				mes "*Bang!*^000000";
-				specialeffect 1;
+				specialeffect EF_HIT2;
 				emotion 23;
 				emotion 23,1;
 				next;

+ 11 - 11
npc/warps/fields/abyss_warper.txt

@@ -37,28 +37,28 @@ hu_fild05,168,304,0	script	Column#abyss1	111,{
 				mes "the grooves, and then you";
 				mes "hear a powerful rumbling";
 				mes "from within the column.^000000";
-				specialeffect 52;
+				specialeffect EF_WINDHIT;
 				next;
 				mes "^3355FFYou slowly insert a";
 				mes "Dragon Scale into another";
 				mes "of the column's grooves,";
 				mes "trigerring another small";
 				mes "tremor from the column.^000000";
-				specialeffect 52;
+				specialeffect EF_WINDHIT;
 				next;
 				mes "^3355FFYou cautiously insert";
 				mes "a Dragon Tail into the";
 				mes "final groove. Lights shine";
 				mes "forth from cracks in the";
 				mes "column's surface...^000000";
-				specialeffect 52;
+				specialeffect EF_WINDHIT;
 				next;
 				mes "^3355FFThe ground beneath";
 				mes "your feet begins to";
 				mes "violently shake.^000000";
-				specialeffect 73;
+				specialeffect EF_BOWLINGBASH;
 				donpcevent "AbyssWarp::OnWarp";
-				specialeffect2 36;
+				specialeffect2 EF_PORTAL;
 				delitem 1035,1;
 				delitem 1036,1;
 				delitem 1037,1;
@@ -105,7 +105,7 @@ hu_fild05,171,211,0	script	Column#abyss2	111,1,1,{
 			mes "the column starts to shake.";
 			mes "You hear a faint rumbling";
 			mes "from inside the column.^000000";
-			specialeffect 52;
+			specialeffect EF_WINDHIT;
 			next;
 			mes "*Ggghhhhhzzzz!*";
 			mes "*BAM!*";
@@ -116,8 +116,8 @@ hu_fild05,171,211,0	script	Column#abyss2	111,1,1,{
 			mes "ground beneath your feet";
 			mes "begin to slowly sink away...^000000";
 			next;
-			specialeffect 73;
-			specialeffect2 36;
+			specialeffect EF_BOWLINGBASH;
+			specialeffect2 EF_PORTAL;
 			close2;
 			warp "hu_fild05",169,305;
 			end;
@@ -126,7 +126,7 @@ hu_fild05,171,211,0	script	Column#abyss2	111,1,1,{
 			mes "^3355FF*Ppppsssh!*";
 			mes "You accidentally";
 			mes "broke the item.^000000";
-			specialeffect 52;
+			specialeffect EF_WINDHIT;
 			next;
 			mes "^3355FF*Gggggggghhhhhhhhzzzzzzjjjjhh!*^000000";
 			next;
@@ -138,8 +138,8 @@ hu_fild05,171,211,0	script	Column#abyss2	111,1,1,{
 			mes "steadily, but suddently you";
 			mes "are warped somewhere else...^000000";
 			next;
-			specialeffect 73;
-			specialeffect2 36;
+			specialeffect EF_BOWLINGBASH;
+			specialeffect2 EF_PORTAL;
 			close2;
 			warp "hu_fild05",157,284;
 			end;

+ 8 - 1
src/map/script.c

@@ -10996,7 +10996,14 @@ BUILDIN_FUNC(specialeffect)
 	if(bl==NULL)
 		return 0;
 
-	clif_specialeffect(bl, type, target);
+	if( script_hasdata(st,4) )
+	{
+		TBL_NPC *nd = npc_name2id(script_getstr(st,4));
+		if(nd)
+			clif_specialeffect(&nd->bl, type, target);
+	}
+	else
+		clif_specialeffect(bl, type, target);
 
 	return 0;
 }