浏览代码

* 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 年之前
父节点
当前提交
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.
 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.
 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
 2010/06/20
 	* Fixed codepage indicators being included in NPCs' whispervars. [Gepard]
 	* Fixed codepage indicators being included in NPCs' whispervars. [Gepard]
 2010/06/18
 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 
 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 
 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 
 some client releases. (Notably, rain is absent from any client executables 
 released after April 2005.)
 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>};
 *specialeffect2 <effect number>{,<send_target>};

+ 2 - 0
npc/Changelog.txt

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

+ 1 - 5
npc/cities/morocc.txt

@@ -127,7 +127,7 @@ morocc,223,102,0	script	Volunteer - Morroc#06::MocVolunteer	741,{
 	next;
 	next;
 	mes "[Ringing Voice]";
 	mes "[Ringing Voice]";
 	mes "Be quiet! Can't you see what's going on?!";
 	mes "Be quiet! Can't you see what's going on?!";
-	donpcevent "Volunteer - Morroc#06::OnHit";
+	specialeffect EF_HIT2,AREA,"Volunteer - Morroc#06";
 	next;
 	next;
 	mes "[Morroc Volunteer]";
 	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.";
 	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 "[Morroc Volunteer]";
 	mes "No, No way!? It,, sure is not!";
 	mes "No, No way!? It,, sure is not!";
 	close;
 	close;
-
-OnHit:
-	specialeffect EF_HIT2;
-	end;
 }
 }
 
 
 morocc,226,102,4	duplicate(MocVolunteer)	Volunteer - Morroc#07	726
 morocc,226,102,4	duplicate(MocVolunteer)	Volunteer - Morroc#07	726

+ 18 - 54
npc/events/gdevent_aru.txt

@@ -1092,10 +1092,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x1,rand(81,95);
 	set .@paper_x1,rand(81,95);
 	set .@paper_y1,rand(87,100);
 	set .@paper_y1,rand(87,100);
@@ -1121,10 +1117,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x2,rand(96,110);
 	set .@paper_x2,rand(96,110);
 	set .@paper_y2,rand(87,100);
 	set .@paper_y2,rand(87,100);
@@ -1150,10 +1142,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x3,rand(111,124);
 	set .@paper_x3,rand(111,124);
 	set .@paper_y3,rand(87,100);
 	set .@paper_y3,rand(87,100);
@@ -1179,10 +1167,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x4,rand(81,95);
 	set .@paper_x4,rand(81,95);
 	set .@paper_y4,rand(73,86);
 	set .@paper_y4,rand(73,86);
@@ -1208,10 +1192,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x5,rand(96,110);
 	set .@paper_x5,rand(96,110);
 	set .@paper_y5,rand(73,86);
 	set .@paper_y5,rand(73,86);
@@ -1237,10 +1217,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x6,rand(111,124);
 	set .@paper_x6,rand(111,124);
 	set .@paper_y6,rand(73,86);
 	set .@paper_y6,rand(73,86);
@@ -1266,10 +1242,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x7,rand(81,95);
 	set .@paper_x7,rand(81,95);
 	set .@paper_y7,rand(59,72);
 	set .@paper_y7,rand(59,72);
@@ -1295,10 +1267,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x8,rand(96,110);
 	set .@paper_x8,rand(96,110);
 	set .@paper_y8,rand(59,72);
 	set .@paper_y8,rand(59,72);
@@ -1324,10 +1292,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x9,rand(111,124);
 	set .@paper_x9,rand(111,124);
 	set .@paper_y9,rand(59,72);
 	set .@paper_y9,rand(59,72);
@@ -1360,33 +1324,33 @@ Onmvp:
 	end;
 	end;
 
 
 OnTimer1000:
 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;
 	end;
 
 
 OnTimer2000:
 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;
 	end;
 
 
 OnTimer3000:
 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;
 	end;
 
 
 OnTimer4000:
 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;
 	stopnpctimer;
 	end;
 	end;
 }
 }

+ 18 - 54
npc/events/gdevent_sch.txt

@@ -1091,10 +1091,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x1,rand(81,95);
 	set .@paper_x1,rand(81,95);
 	set .@paper_y1,rand(87,100);
 	set .@paper_y1,rand(87,100);
@@ -1120,10 +1116,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x2,rand(96,110);
 	set .@paper_x2,rand(96,110);
 	set .@paper_y2,rand(87,100);
 	set .@paper_y2,rand(87,100);
@@ -1149,10 +1141,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x3,rand(111,124);
 	set .@paper_x3,rand(111,124);
 	set .@paper_y3,rand(87,100);
 	set .@paper_y3,rand(87,100);
@@ -1178,10 +1166,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x4,rand(81,95);
 	set .@paper_x4,rand(81,95);
 	set .@paper_y4,rand(73,86);
 	set .@paper_y4,rand(73,86);
@@ -1207,10 +1191,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x5,rand(96,110);
 	set .@paper_x5,rand(96,110);
 	set .@paper_y5,rand(73,86);
 	set .@paper_y5,rand(73,86);
@@ -1236,10 +1216,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x6,rand(111,124);
 	set .@paper_x6,rand(111,124);
 	set .@paper_y6,rand(73,86);
 	set .@paper_y6,rand(73,86);
@@ -1265,10 +1241,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x7,rand(81,95);
 	set .@paper_x7,rand(81,95);
 	set .@paper_y7,rand(59,72);
 	set .@paper_y7,rand(59,72);
@@ -1294,10 +1266,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x8,rand(96,110);
 	set .@paper_x8,rand(96,110);
 	set .@paper_y8,rand(59,72);
 	set .@paper_y8,rand(59,72);
@@ -1323,10 +1291,6 @@ OnEnable:
 	}
 	}
 	end;
 	end;
 
 
-Onmvp:
-	specialeffect EF_MVP;
-	end;
-
 Onbingo:
 Onbingo:
 	set .@paper_x9,rand(111,124);
 	set .@paper_x9,rand(111,124);
 	set .@paper_y9,rand(59,72);
 	set .@paper_y9,rand(59,72);
@@ -1359,33 +1323,33 @@ Onmvp:
 	end;
 	end;
 
 
 OnTimer1000:
 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;
 	end;
 
 
 OnTimer2000:
 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;
 	end;
 
 
 OnTimer3000:
 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;
 	end;
 
 
 OnTimer4000:
 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;
 	stopnpctimer;
 	end;
 	end;
 }
 }

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

@@ -410,7 +410,7 @@ OnTouch:
 			mes "[Maia]";
 			mes "[Maia]";
 			mes "This Witherless Rose will";
 			mes "This Witherless Rose will";
 			mes "wither away instead of you...";
 			mes "wither away instead of you...";
-			donpcevent "Maia#link2::Oneff";
+			specialeffect EF_MAPPILLAR2,AREA,"Maia#link2";
 			next;
 			next;
 			mes "[Maia]";
 			mes "[Maia]";
 			mes "This Witherless Rose will";
 			mes "This Witherless Rose will";
@@ -477,10 +477,6 @@ OnTouch:
 	close2;
 	close2;
 	warp "morocc",157,47;
 	warp "morocc",157,47;
 	end;
 	end;
-
-Oneff:
-	specialeffect EF_MAPPILLAR2;
-	end;
 }
 }
 
 
 job_soul,35,30,6	duplicate(SLTester)	Maia#link6	716
 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.")) {
 		switch(select("......?:She is my sister:Actually, I don't know her.")) {
 		case 1:
 		case 1:
 			cutin "nyuang_3",2;
 			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 "[The kid with a cat]";
 			mes "Nyahahaha,";
 			mes "Nyahahaha,";
 			mes "Nyahahaha~";
 			mes "Nyahahaha~";
@@ -153,7 +153,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			break;
 			break;
 		case 2:
 		case 2:
 			cutin "nyuang_1",2;
 			cutin "nyuang_1",2;
-			donpcevent "Child with Cat#cook::OnWhat";
+			emotion e_what,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "[Child with Cat]";
 			mes "...Nya?";
 			mes "...Nya?";
 			mes "...Meow?";
 			mes "...Meow?";
@@ -168,7 +168,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			break;
 			break;
 		case 3:
 		case 3:
 			cutin "nyuang_2",2;
 			cutin "nyuang_2",2;
-			donpcevent "Child with Cat#cook::OnPif";
+			emotion e_pif,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "[Child with Cat]";
 			mes "Nyahahaha,";
 			mes "Nyahahaha,";
 			mes "Nyahahaha~";
 			mes "Nyahahaha~";
@@ -828,7 +828,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		next;
 		next;
 		switch(select("What's your name, kid?:Do you want to eat something?:Here, kitty~:Get out!")) {
 		switch(select("What's your name, kid?:Do you want to eat something?:Here, kitty~:Get out!")) {
 		case 1:
 		case 1:
-			donpcevent "Child with Cat#cook::OnOkay";
+			emotion e_ok,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "[Child with Cat]";
 			mes "Nyaaa~";
 			mes "Nyaaa~";
 			mes "nyaaa~";
 			mes "nyaaa~";
@@ -842,7 +842,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			goto L_End;
 			goto L_End;
 		case 2:
 		case 2:
 			cutin "nyuang_2",2;
 			cutin "nyuang_2",2;
-			donpcevent "Child with Cat#cook::OnPif";
+			emotion e_pif,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "[Child with Cat]";
 			mes "Nyaaaa~";
 			mes "Nyaaaa~";
 			mes "(Purrrrrr~)";
 			mes "(Purrrrrr~)";
@@ -858,7 +858,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 			goto L_End;
 			goto L_End;
 		case 3:
 		case 3:
 			cutin "nyuang_3",2;
 			cutin "nyuang_3",2;
-			donpcevent "Child with Cat#cook::OnHeh";
+			emotion e_heh,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "[Child with Cat]";
 			mes "Nyahahaha~";
 			mes "Nyahahaha~";
 			mes "Nyhhahaha~";
 			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.";
 			mes "...Then I don't need you to be here.";
 			goto L_End;
 			goto L_End;
 		case 4:
 		case 4:
-			donpcevent "Child with Cat#cook::OnDot";
+			emotion e_dots,0,"Child with Cat#cook";
 			mes "[Child with Cat]";
 			mes "[Child with Cat]";
 			mes "...";
 			mes "...";
 			mes "(Meow?)";
 			mes "(Meow?)";
 			next;
 			next;
 			cutin "nyuang_4",2;
 			cutin "nyuang_4",2;
-			donpcevent "Child with Cat#cook::OnAngry";
+			emotion e_an,0,"Child with Cat#cook";
 			specialeffect2 EF_HIT2;
 			specialeffect2 EF_HIT2;
 			percentheal -10,0;
 			percentheal -10,0;
 			mes "[Child with Cat]";
 			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!";
 		mes "or shed on any of the food!";
 		next;
 		next;
 		cutin "nyuang_4",2;
 		cutin "nyuang_4",2;
-		donpcevent "Child with Cat#cook::OnAngry";
+		emotion e_an,0,"Child with Cat#cook";
 		mes "[Child with Cat]";
 		mes "[Child with Cat]";
 		mes "Grrrrrrr!";
 		mes "Grrrrrrr!";
 		mes "RRRRreow!";
 		mes "RRRRreow!";
 		next;
 		next;
 		donpcevent "Wickebine#cook::OnEnable";
 		donpcevent "Wickebine#cook::OnEnable";
 		emotion e_omg;
 		emotion e_omg;
-		donpcevent "Child with Cat#cook::OnDelight";
+		emotion e_ho,0,"Child with Cat#cook";
 		next;
 		next;
 		cutin "job_black_hucke01",1;
 		cutin "job_black_hucke01",1;
 		mes "[Wickebine]";
 		mes "[Wickebine]";
@@ -948,7 +948,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		mes "bothering Charles, Nyuyang?";
 		mes "bothering Charles, Nyuyang?";
 		next;
 		next;
 		cutin "nyuang_3",2;
 		cutin "nyuang_3",2;
-		donpcevent "Child with Cat#cook::OnHeh";
+		emotion e_heh,0,"Child with Cat#cook";
 		mes "[Child with Cat]";
 		mes "[Child with Cat]";
 		mes "Nyuuuunyuuu~";
 		mes "Nyuuuunyuuu~";
 		mes "nyuuuunyuuu~";
 		mes "nyuuuunyuuu~";
@@ -984,7 +984,7 @@ prt_castle,43,30,3	script	Charles Orleans#cook	878,{
 		mes "So do not worry, Madam~";
 		mes "So do not worry, Madam~";
 		next;
 		next;
 		cutin "job_black_hucke01",1;
 		cutin "job_black_hucke01",1;
-		donpcevent "Wickebine#cook::OnWhat";
+		emotion e_what,0,"Wickebine#cook";
 		mes "[Wickebine]";
 		mes "[Wickebine]";
 		mes "Are you sure, Charles?";
 		mes "Are you sure, Charles?";
 		mes "I know how serious you";
 		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~";
 		mes "Well then, take care~";
 		next;
 		next;
 		cutin "nyuang_3",2;
 		cutin "nyuang_3",2;
-		donpcevent "Child with Cat#cook::OnHeh";
+		emotion e_heh,0,"Child with Cat#cook";
 		mes "[Child with Cat]";
 		mes "[Child with Cat]";
 		mes "Nyahahaha~";
 		mes "Nyahahaha~";
 		mes "Nyahahaha~";
 		mes "Nyahahaha~";
 		mes "(Meow, meow~)";
 		mes "(Meow, meow~)";
 		next;
 		next;
 		cutin "job_black_hucke02",255;
 		cutin "job_black_hucke02",255;
-		donpcevent "Wickebine#cook::OnDelight";
+		emotion e_ho,0,"Wickebine#cook";
 		donpcevent "Wickebine#cook::OnDisable";
 		donpcevent "Wickebine#cook::OnDisable";
 		next;
 		next;
 		emotion e_dots;
 		emotion e_dots;
-		donpcevent "Child with Cat#cook::OnDot";
+		emotion e_dots,0,"Child with Cat#cook";
 		mes "[Charles Orleans]";
 		mes "[Charles Orleans]";
 		mes "......";
 		mes "......";
 		next;
 		next;
@@ -2191,35 +2191,6 @@ prt_castle,45,28,3	script	Child with Cat#cook	877,{
 	close2;
 	close2;
 	cutin "nyuang_1",255;
 	cutin "nyuang_1",255;
 	end;
 	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,{
 prt_castle,44,30,5	script	Wickebine#cook	725,{
@@ -2237,15 +2208,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Wickebine#cook";
 	disablenpc "Wickebine#cook";
 	end;
 	end;
-
-OnDelight:
-	emotion e_ho;
-	end;
-
-OnWhat:
-	emotion e_what;
-	end;
-
 }
 }
 
 
 payon,209,127,3	script	Servant	88,{
 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!";
 	mes "It's sexy time!";
 	next;
 	next;
 	specialeffect EF_FLASHER;
 	specialeffect EF_FLASHER;
-	setnpcdisplay "Muscle Man#Alarm Mask Man", 1193;
+	setnpcdisplay "Muscle Man#Alarm Mask", 1193;
 	enablenpc " #Alarm Mask Man1";
 	enablenpc " #Alarm Mask Man1";
 	enablenpc " #Alarm Mask Man2";
 	enablenpc " #Alarm Mask Man2";
 	enablenpc " #Alarm Mask Man3";
 	enablenpc " #Alarm Mask Man3";
 	enablenpc " #Alarm Mask Man4";
 	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;
 	initnpctimer;
 	if (countitem(1095) > 2999 && countitem(2288) > 0) {
 	if (countitem(1095) > 2999 && countitem(2288) > 0) {
 		if (select("Give him items:Cancel") == 1) {
 		if (select("Give him items:Cancel") == 1) {
@@ -2033,15 +2033,15 @@ alde_alche,88,180,0	script	Muscle Man#Alarm Mask	748,{
 
 
 OnTimer4000:
 OnTimer4000:
 	specialeffect EF_FLASHER;
 	specialeffect EF_FLASHER;
-	setnpcdisplay "Muscle Man#Alarm Mask Man", 748;
+	setnpcdisplay "Muscle Man#Alarm Mask", 748;
 	disablenpc " #Alarm Mask Man1";
 	disablenpc " #Alarm Mask Man1";
 	disablenpc " #Alarm Mask Man2";
 	disablenpc " #Alarm Mask Man2";
 	disablenpc " #Alarm Mask Man3";
 	disablenpc " #Alarm Mask Man3";
 	disablenpc " #Alarm Mask Man4";
 	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;
 	stopnpctimer;
 	end;
 	end;
 }
 }
@@ -2050,40 +2050,24 @@ alde_alche,86,184,0	script	 #Alarm Mask Man1	1193,{
 OnInit:
 OnInit:
 	disablenpc " #Alarm Mask Man1";
 	disablenpc " #Alarm Mask Man1";
 	end;
 	end;
-
-OnAlarmState:
-	specialeffect EF_CLAYMORE;
-	end;
 }
 }
 
 
 alde_alche,89,184,0	script	 #Alarm Mask Man2	1193,{
 alde_alche,89,184,0	script	 #Alarm Mask Man2	1193,{
 OnInit:
 OnInit:
 	disablenpc " #Alarm Mask Man2";
 	disablenpc " #Alarm Mask Man2";
 	end;
 	end;
-
-OnAlarmState:
-	specialeffect EF_CLAYMORE;
-	end;
 }
 }
 
 
 alde_alche,92,184,0	script	 #Alarm Mask Man3	1193,{
 alde_alche,92,184,0	script	 #Alarm Mask Man3	1193,{
 OnInit:
 OnInit:
 	disablenpc " #Alarm Mask Man3";
 	disablenpc " #Alarm Mask Man3";
 	end;
 	end;
-
-OnAlarmState:
-	specialeffect EF_CLAYMORE;
-	end;
 }
 }
 
 
 alde_alche,95,184,0	script	 #Alarm Mask Man4	1193,{
 alde_alche,95,184,0	script	 #Alarm Mask Man4	1193,{
 OnInit:
 OnInit:
 	disablenpc " #Alarm Mask Man4";
 	disablenpc " #Alarm Mask Man4";
 	end;
 	end;
-
-OnAlarmState:
-	specialeffect EF_CLAYMORE;
-	end;
 }
 }
 
 
 // Drooping Cat, Smokie Leaf, Lazy Smokie, Blue Fish
 // 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 "[Expedition Messenger]";
 		mes "You, head to Schwaltzval Republic.";
 		mes "You, head to Schwaltzval Republic.";
 		mes "And you, take Arunafeltz. I'll visit Prontera Palace.";
 		mes "And you, take Arunafeltz. I'll visit Prontera Palace.";
-		donpcevent "Expedition Messenger#2::OnOK";
+		emotion e_ok,0,"Expedition Messenger#2";
 		next;
 		next;
 		mes "[Expedition Messenger]";
 		mes "[Expedition Messenger]";
 		mes "I'll see you guys later.";
 		mes "I'll see you guys later.";
@@ -12094,7 +12094,7 @@ mid_camp,206,286,3	script	Expedition Messenger	997,{
 		next;
 		next;
 		mes "[Expedition Messenger]";
 		mes "[Expedition Messenger]";
 		mes "What's up? Why haven't you left...?";
 		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;
 		next;
 		mes "[Expedition Messenger]";
 		mes "[Expedition Messenger]";
 		mes "Argh... Why are you doing this?!";
 		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!";
 			mes "Give it to me, now!";
 			next;
 			next;
 			donpcevent "Expedition Messenger#2::OnEnable";
 			donpcevent "Expedition Messenger#2::OnEnable";
-			donpcevent "Expedition Messenger#3:OnGasp";
+			emotion e_casp,0,"Expedition Messenger#3";
 			cutin "ep13_shadow_edq",2;
 			cutin "ep13_shadow_edq",2;
 			mes "[???]";
 			mes "[???]";
 			mes "Argh...";
 			mes "Argh...";
 			next;
 			next;
-			donpcevent "Expedition Messenger#3:OnEffect";
+			specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger#3";
+			specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger#3";
 			mes "[???]";
 			mes "[???]";
 			mes "Argh... You...";
 			mes "Argh... You...";
 			next;
 			next;
@@ -12169,11 +12170,12 @@ mid_camp,206,286,3	script	Expedition Messenger	997,{
 			mes "Oh, yeah? Then I'll have to use force!";
 			mes "Oh, yeah? Then I'll have to use force!";
 			next;
 			next;
 			donpcevent "Expedition Messenger#2::OnEnable";
 			donpcevent "Expedition Messenger#2::OnEnable";
-			donpcevent "Expedition Messenger#3:OnGasp";
+			emotion e_casp,0,"Expedition Messenger#3";
 			mes "[???]";
 			mes "[???]";
 			mes "Argh!";
 			mes "Argh!";
 			next;
 			next;
-			donpcevent "Expedition Messenger#3:OnEffect";
+			specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger#3";
+			specialeffect EF_SOULBREAKER,AREA,"Expedition Messenger#3";
 			mes "[???]";
 			mes "[???]";
 			mes "Argh... You...";
 			mes "Argh... You...";
 			next;
 			next;
@@ -12291,15 +12293,6 @@ Ongo:
 OnDisable:
 OnDisable:
 	disablenpc "Expedition Messenger#2";
 	disablenpc "Expedition Messenger#2";
 	end;
 	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,{
 mid_camp,209,286,3	script	Expedition Messenger#3	998,4,4,{
@@ -12321,15 +12314,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Expedition Messenger#3";
 	disablenpc "Expedition Messenger#3";
 	end;
 	end;
-
-OnGaspp:
-	emotion e_gasp;
-	end;
-
-OnEffect:
-	specialeffect2 EF_SOULBREAKER;
-	specialeffect2 EF_SONICBLOW;
-	end;
 }
 }
 
 
 man_fild01,315,95,3	script	Expedition Scout#1	707,{
 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;
 		specialeffect EF_BEGINSPELL2;
 		next;
 		next;
 		mes "- The fire sparked, but then it immediatly blew out. -";
 		mes "- The fire sparked, but then it immediatly blew out. -";
-		donpcevent "Wet Firewood#moc2::OnEffect1";
+		specialeffect EF_FIREARROW,AREA,"Wet Firewood#moc2";
 		next;
 		next;
 		mes "[Defaria]";
 		mes "[Defaria]";
 		mes "...............";
 		mes "...............";
@@ -15115,7 +15099,7 @@ mid_camp,256,272,3	script	Defaria#moc2	897,{
 		specialeffect EF_BEGINSPELL2;
 		specialeffect EF_BEGINSPELL2;
 		next;
 		next;
 		mes "- The fire sparked, but then it immediately blew out.-";
 		mes "- The fire sparked, but then it immediately blew out.-";
-		donpcevent "Wet Firewood#moc2::OnEffect1";
+		specialeffect EF_FIREARROW,AREA,"Wet Firewood#moc2";
 		next;
 		next;
 		mes "[Defaria]";
 		mes "[Defaria]";
 		mes "...............";
 		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....";
 			mes "..Hopefully I can make a fire with your nice logs....";
 			specialeffect EF_BEGINSPELL2;
 			specialeffect EF_BEGINSPELL2;
 			next;
 			next;
-			donpcevent "Wet Firewood#moc2::OnEffect2";
+			specialeffect EF_FIREWALL,AREA,"Wet Firewood#moc2";
+			specialeffect EF_TORCH,AREA,"Wet Firewood#moc2";
 			mes "[Defaria]";
 			mes "[Defaria]";
 			mes "Oh, this is as great as I'd hoped!";
 			mes "Oh, this is as great as I'd hoped!";
 			mes "I guess my magic hasn't gotten that rusty after all..";
 			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.";
 		mes "It seems somebody has been futilely attempting to make a fire with them.";
 		close;
 		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,{
 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;
 			cutin "moc2_dan02",255;
 			switch(select("Smack his head.:Punch his stomach.:Slap his face.")) {
 			switch(select("Smack his head.:Punch his stomach.:Slap his face.")) {
 			case 1:
 			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! -";
 				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;
 				next;
 				break;
 				break;
 			case 2:
 			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..! -";
 				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;
 				next;
 				break;
 				break;
 			case 3:
 			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! -";
 				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;
 				next;
 				break;
 				break;
@@ -16718,7 +16694,7 @@ que_job01,144,54,3	script	Rin#moc_room2_2	885,{
 			mes "[Rayan]";
 			mes "[Rayan]";
 			mes "Ahh....";
 			mes "Ahh....";
 			mes "....? Isn't.. Isn't this?!....";
 			mes "....? Isn't.. Isn't this?!....";
-			donpcevent "Rayan#moc_room2_2::OnEffect1";
+			specialeffect EF_POISON,AREA,"Rayan#moc_room2_2";
 			next;
 			next;
 			mes "[Rin]";
 			mes "[Rin]";
 			mes "Wah! What's going on?";
 			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 "You're Rin, right?";
 			mes "This is the last time you'll ever see me.";
 			mes "This is the last time you'll ever see me.";
 			mes "Haha... Muhahahahaha!!";
 			mes "Haha... Muhahahahaha!!";
-			donpcevent "Rayan#moc_room2_2::OnEffect2";
+			specialeffect EF_ENTRY,AREA,"Rayan#moc_room2_2";
 			donpcevent "Rayan#moc_room2_2::OnDisable";
 			donpcevent "Rayan#moc_room2_2::OnDisable";
 			next;
 			next;
 			cutin "moc2_rin03",2;
 			cutin "moc2_rin03",2;
@@ -16968,26 +16944,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Rayan#moc_room2_2";
 	disablenpc "Rayan#moc_room2_2";
 	end;
 	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,{
 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 "Why? Why is Rin here? Wait, where am I?";
 	mes "Argh.. I can't move at all...";
 	mes "Argh.. I can't move at all...";
 	next;
 	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;
 	emotion e_gasp,1;
 	mes "[Rin]";
 	mes "[Rin]";
 	mes "You're not alone. So what?";
 	mes "You're not alone. So what?";
@@ -17199,7 +17155,8 @@ OnTouch:
 	next;
 	next;
 	donpcevent "Rin#moc2_bt_rin01::OnDisable";
 	donpcevent "Rin#moc2_bt_rin01::OnDisable";
 	donpcevent "Rin#moc2_bt_rin02::OnEnable";
 	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 "[Rayan]";
 	mes "Hah, how impressive! You run like a rabbit!";
 	mes "Hah, how impressive! You run like a rabbit!";
 	mes "I should have you killed you when I had the chance.";
 	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_4::OnEnable";
 	donpcevent "Dandelion Member#moc2_5::OnEnable";
 	donpcevent "Dandelion Member#moc2_5::OnEnable";
 	next;
 	next;
-	donpcevent "Rin#moc2_bt_rin02::OnEffect1";
+	specialeffect EF_FREEZED,AREA,"Rin#moc2_bt_rin02";
 	emotion e_gasp;
 	emotion e_gasp;
 	mapannounce "que_dan01", "Rin: When.. When did you...!?!",bc_map,"0x7b68ee";
 	mapannounce "que_dan01", "Rin: When.. When did you...!?!",bc_map,"0x7b68ee";
 	mes "[Rayan]";
 	mes "[Rayan]";
 	mes "I'm sorry that I have to do this.";
 	mes "I'm sorry that I have to do this.";
 	mes "...";
 	mes "...";
 	mes "Kill her.";
 	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;
 	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";
 	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";
 	donpcevent "Rayan#moc2_bt_r01::OnDisable";
@@ -17233,7 +17190,9 @@ OnTouch:
 	donpcevent "Dandelion Member#moc2_2::OnDisable";
 	donpcevent "Dandelion Member#moc2_2::OnDisable";
 	mes "[" + strcharinfo(0) + "]";
 	mes "[" + strcharinfo(0) + "]";
 	mes "Rin-!!!";
 	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";
 	donpcevent "Rin#moc2_bt_rin02::OnDisable";
 	next;
 	next;
 	mes "You feel helpless: you can do nothing but watch her slowly get overpowered..";
 	mes "You feel helpless: you can do nothing but watch her slowly get overpowered..";
@@ -17370,11 +17329,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Rin#moc2_bt_rin01";
 	disablenpc "Rin#moc2_bt_rin01";
 	end;
 	end;
-
-OnEffect1:
-	specialeffect EF_ICECRASH;
-	specialeffect EF_METEORSTORM;
-	end;
 }
 }
 
 
 que_dan01,29,34,7	script	Rin#moc2_bt_rin02	885,{
 que_dan01,29,34,7	script	Rin#moc2_bt_rin02	885,{
@@ -17391,16 +17345,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Rin#moc2_bt_rin02";
 	disablenpc "Rin#moc2_bt_rin02";
 	end;
 	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,{
 que_dan01,36,34,3	script	Rayan#moc2_bt_r01	456,{
@@ -17434,9 +17378,6 @@ OnDisable:
 	disablenpc "Dandelion Member#moc2_1";
 	disablenpc "Dandelion Member#moc2_1";
 	end;
 	end;
 
 
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 }
 
 
 que_dan01,41,34,3	script	Dandelion Member#moc2_2	456,{
 que_dan01,41,34,3	script	Dandelion Member#moc2_2	456,{
@@ -17453,10 +17394,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Dandelion Member#moc2_2";
 	disablenpc "Dandelion Member#moc2_2";
 	end;
 	end;
-
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 }
 
 
 que_dan01,26,40,5	script	Dandelion Member#moc2_3	456,{
 que_dan01,26,40,5	script	Dandelion Member#moc2_3	456,{
@@ -17473,10 +17410,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Dandelion Member#moc2_3";
 	disablenpc "Dandelion Member#moc2_3";
 	end;
 	end;
-
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 }
 
 
 que_dan01,21,35,5	script	Dandelion Member#moc2_4	456,{
 que_dan01,21,35,5	script	Dandelion Member#moc2_4	456,{
@@ -17493,10 +17426,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Dandelion Member#moc2_4";
 	disablenpc "Dandelion Member#moc2_4";
 	end;
 	end;
-
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 }
 
 
 que_dan01,25,32,7	script	Dandelion Member#moc2_5	456,{
 que_dan01,25,32,7	script	Dandelion Member#moc2_5	456,{
@@ -17513,10 +17442,6 @@ OnEnable:
 OnDisable:
 OnDisable:
 	disablenpc "Dandelion Member#moc2_5";
 	disablenpc "Dandelion Member#moc2_5";
 	end;
 	end;
-
-OnEffect1:
-	specialeffect EF_BEGINSPELL2;
-	end;
 }
 }
 
 
 yuno_fild09,234,133,0	warp	#moc2_fild09-que_dan02	1,1,que_dan02,13,10
 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";
 	enablenpc "#mj01_01";
 	end;
 	end;
 
 
-.@get_stone:
+OnTouch:
 	if ((ep13_2_tre == 2) && (countitem(6076) == 1)) {
 	if ((ep13_2_tre == 2) && (countitem(6076) == 1)) {
 		if (countitem(6077) < 10) {
 		if (countitem(6077) < 10) {
 			specialeffect EF_COUPLECASTING; 
 			specialeffect EF_COUPLECASTING; 
@@ -7688,7 +7688,7 @@ OnInit:
 	enablenpc "#mj01_02";
 	enablenpc "#mj01_02";
 	end;
 	end;
 
 
-.@get_stone:
+OnTouch:
 	if ((ep13_2_tre == 2) && (countitem(6076) == 1)) {
 	if ((ep13_2_tre == 2) && (countitem(6076) == 1)) {
 		if (countitem(6077) < 10) {
 		if (countitem(6077) < 10) {
 			specialeffect EF_COUPLECASTING;
 			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 "medicine you're";
 			mes "supposed to";
 			mes "supposed to";
 			mes "need so badly.";
 			mes "need so badly.";
-			donpcevent "Postell Schuwell#D::OnEffect";
+			specialeffect EF_CHANGECOLD,AREA,"Postell Schuwell#D";
 			next;
 			next;
 			mes "[Allen]";
 			mes "[Allen]";
 			mes "Thank goodness...";
 			mes "Thank goodness...";
@@ -324,7 +324,7 @@ hu_in01,387,245,0	script	Allen Schuwell	849,2,2,{
 			mes "Something's not";
 			mes "Something's not";
 			mes "right. Bunkoll A";
 			mes "right. Bunkoll A";
 			mes "doesn't taste like this...";
 			mes "doesn't taste like this...";
-			donpcevent "Postell Schuwell#D::OnSweat";
+			emotion e_swt,0,"Postell Schuwell#D";
 			next;
 			next;
 			mes "[Postell]";
 			mes "[Postell]";
 			mes "Bunkoll A...?";
 			mes "Bunkoll A...?";
@@ -469,15 +469,6 @@ OnTimer100000:
 	disablenpc "Postell Schuwell#D";
 	disablenpc "Postell Schuwell#D";
 	stopnpctimer;
 	stopnpctimer;
 	end;
 	end;
-	
-OnSweat:
-	emotion e_swt;
-	end;
-
-OnEffect:
-	specialeffect EF_CHANGECOLD;
-	end;
-
 }
 }
 
 
 hu_fild06,34,123,3	script	Postell Schuwell	97,{
 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 Bzzzz* -";
 			mes "- *Whizz Whizz*-";
 			mes "- *Whizz Whizz*-";
 			mes "- *Whizz Whizz*-";
 			mes "- *Whizz Whizz*-";
-			specialeffect2 71;
+			specialeffect2 EF_CONE;
 			next;
 			next;
 			if(rand(1,5) > 4)
 			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. -";
 			mes "- You threw a Marine Sphere Bottle toward the machine. -";
 			next;
 			next;
 			mes "BOOM!";
 			mes "BOOM!";
-			specialeffect2 183;
+			specialeffect2 EF_SUI_EXPLOSION;
 			enablenpc "HiddenExplosion";
 			enablenpc "HiddenExplosion";
 			mapannounce "lhz_dun02","Beep------------------ ",1,0x99CCFF;
 			mapannounce "lhz_dun02","Beep------------------ ",1,0x99CCFF;
 			delitem 7138,1; //Marine sphere bottle
 			delitem 7138,1; //Marine sphere bottle
@@ -4590,7 +4581,7 @@ OnInit:
 	
 	
 OnTouch:
 OnTouch:
 	percentheal -10,0;
 	percentheal -10,0;
-	specialeffect 4;
+	specialeffect EF_HIT5;
 	disablenpc "HiddenExplosion";
 	disablenpc "HiddenExplosion";
 	end;
 	end;
 	
 	
@@ -4644,7 +4635,7 @@ hugel,198,169,0	script	#HugelTree	139,2,2,{
 		}
 		}
 		else if(hg_memory == 6)
 		else if(hg_memory == 6)
 		{
 		{
-			specialeffect2 57;
+			specialeffect2 EF_BEGINSPELL5;
 			mes "^3355FFWhat's this strange";
 			mes "^3355FFWhat's this strange";
 			mes "feeling of dread?";
 			mes "feeling of dread?";
 			mes "This peculiar chill...";
 			mes "This peculiar chill...";
@@ -5350,7 +5341,7 @@ hugel,196,164,3	script	El Schatt	50,{
 		mes "It's... I'm Manainne...";
 		mes "It's... I'm Manainne...";
 		mes "^333333*Sniff*^000000 She had to go back...";
 		mes "^333333*Sniff*^000000 She had to go back...";
 		next;
 		next;
-		specialeffect2 71;
+		specialeffect2 EF_CONE;
 		set hg_memory,12;
 		set hg_memory,12;
 		getexp 50000,0;
 		getexp 50000,0;
 		getitem 603,1; //Old blue box
 		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 "it's not much, but I hope";
 		mes "you accept this as our thanks.";
 		mes "you accept this as our thanks.";
 		mes "Goodbye for now, adventurer~";
 		mes "Goodbye for now, adventurer~";
-		specialeffect2 71;
+		specialeffect2 EF_CONE;
 		set hg_ubu01,8;
 		set hg_ubu01,8;
 		getitem 12065,3; //Green salad
 		getitem 12065,3; //Green salad
 		getexp 50000,0;
 		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 "it's not much, but I hope";
 		mes "you accept this as our thanks.";
 		mes "you accept this as our thanks.";
 		mes "Goodbye for now, adventurer~";
 		mes "Goodbye for now, adventurer~";
-		specialeffect2 68;
+		specialeffect2 EF_MVP;
 		set hg_ubu01,8;
 		set hg_ubu01,8;
 		getitem 12065,3; //Green salad
 		getitem 12065,3; //Green salad
 		getexp 50000,0;
 		getexp 50000,0;
@@ -7172,7 +7163,7 @@ yuno,111,156,3	script	Euslan	90,{
 		mes "Take care of yourself...";
 		mes "Take care of yourself...";
 		close2;
 		close2;
 		set hg_ma1,13;
 		set hg_ma1,13;
-		specialeffect 253;
+		specialeffect EF_ABSORBSPIRITS;
 		getexp 900000,600000;
 		getexp 900000,600000;
 		end;
 		end;
 	}
 	}
@@ -7725,7 +7716,7 @@ hugel,56,104,3	script	Kurupe	709,3,3,{
 			close;
 			close;
 		}
 		}
 		set hg_milk,9;
 		set hg_milk,9;
-		specialeffect2 71;
+		specialeffect2 EF_CONE;
 		getexp 100000,0;
 		getexp 100000,0;
 		getitem 12063,3;
 		getitem 12063,3;
 		mes "[Kurupe]";
 		mes "[Kurupe]";
@@ -10314,9 +10305,6 @@ hu_in01,155,82,4	script	Julian#2	86,{
 }
 }
 
 
 moc_fild12,160,372,0	script	Hit	139,{
 moc_fild12,160,372,0	script	Hit	139,{
-
-OnEffect:
-	specialeffect 122;
 	end;
 	end;
 }
 }
 
 
@@ -10335,7 +10323,7 @@ OnTouch:
 		mes "followed. Hold on a sec";
 		mes "followed. Hold on a sec";
 		mes "while I take care of him.";
 		mes "while I take care of him.";
 		next;
 		next;
-		donpcevent "Hit::OnEffect";
+		specialeffect EF_SONICBLOWHIT,AREA,"Hit";
 		mes "[???]";
 		mes "[???]";
 		mes "Ha!";
 		mes "Ha!";
 		next;
 		next;
@@ -10773,9 +10761,9 @@ OnTouch:
 							mes "What was";
 							mes "What was";
 							mes "that noise?!";
 							mes "that noise?!";
 							next;
 							next;
-							specialeffect 90;
-							specialeffect 90;
-							specialeffect 90;
+							specialeffect EF_LORD;
+							specialeffect EF_LORD;
+							specialeffect EF_LORD;
 							mes "["+strcharinfo(0)+"]";
 							mes "["+strcharinfo(0)+"]";
 							mes "Wa...waaaahhhh!";
 							mes "Wa...waaaahhhh!";
 							close2;
 							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";
 		mapannounce "juperos_02","Have you come seeking Juperos?! It no longer exists...",bc_map,"0xFF0000";
 	else if (.MyMobs == 0) {
 	else if (.MyMobs == 0) {
 		mapannounce "juperos_02","Have you come to see me? Fine! Find me first!",bc_map,"0xFF0000";
 		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;
 		soundeffectall "earth_quake.wav",0;
 		disablenpc "3F Gate Switch#jupe";
 		disablenpc "3F Gate Switch#jupe";
 		donpcevent "Restricted Area#jupe::OnEnable";
 		donpcevent "Restricted Area#jupe::OnEnable";
@@ -1912,7 +1912,7 @@ OnTimer483000:
 OnTimer506000:
 OnTimer506000:
 OnTimer529000:
 OnTimer529000:
 OnTimer552000:
 OnTimer552000:
-	specialeffect 561; //"Restricted Area#jupe" 561
+	specialeffect 561;
 	end;
 	end;
 
 
 OnTimer556000:
 OnTimer556000:
@@ -1924,7 +1924,7 @@ OnTimer561000:
 	end;
 	end;
 
 
 OnTimer598000:
 OnTimer598000:
-	specialeffect 561; //"Restricted Area#jupe" 561
+	specialeffect 561;
 	end;
 	end;
 
 
 OnTimer600000:
 OnTimer600000:
@@ -2067,7 +2067,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "Warp#1-1";
 	enablenpc "Warp#1-1";
-	specialeffect 561; //"Warp#1-1" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -2361,7 +2361,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "Warp#1-2";
 	enablenpc "Warp#1-2";
-	specialeffect 561; //"Warp#1-2" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -2648,7 +2648,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "Warp#1-3";
 	enablenpc "Warp#1-3";
-	specialeffect 561; //"Warp#1-3" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -2937,7 +2937,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "Warp#1-4";
 	enablenpc "Warp#1-4";
-	specialeffect 561; //"Warp#1-4" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -3143,7 +3143,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "LeverWarp#ufe";
 	enablenpc "LeverWarp#ufe";
-	specialeffect 561; //"LeverWarp#ufe" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -3276,7 +3276,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "Warp#2-1";
 	enablenpc "Warp#2-1";
-	specialeffect 561; //"Warp#2-1" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -3570,7 +3570,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "Warp#2-2";
 	enablenpc "Warp#2-2";
-	specialeffect 561; //"Warp#2-2" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -3857,7 +3857,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "Warp#2-3";
 	enablenpc "Warp#2-3";
-	specialeffect 561; //"Warp#2-3" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -4148,7 +4148,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "Warp#2-4";
 	enablenpc "Warp#2-4";
-	specialeffect 561; //"Warp#2-4" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -4356,7 +4356,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	enablenpc "LeverWarp#ufe2";
 	enablenpc "LeverWarp#ufe2";
-	specialeffect 561; //"LeverWarp#ufe2" 561
+	specialeffect 561;
 	soundeffectall "jupe_warp.wav",0;
 	soundeffectall "jupe_warp.wav",0;
 	initnpctimer;
 	initnpctimer;
 	end;
 	end;
@@ -4450,7 +4450,7 @@ jupe_ele_r,51,98,0	script	Switch#ufe	844,{
 							disablenpc "Switch#ufe";
 							disablenpc "Switch#ufe";
 							enablenpc "Switch On#ufe";
 							enablenpc "Switch On#ufe";
 							initnpctimer;
 							initnpctimer;
-							specialeffect2 563; // 563
+							specialeffect2 563;
 							soundeffectall "earth_quake.wav",0;
 							soundeffectall "earth_quake.wav",0;
 							close2;
 							close2;
 							cutin "5-1",255;
 							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;
 				set zeny,zeny-100;
 			}
 			}
 			close2;
 			close2;
-			donpcevent " #fire::OnClaymore";
+			specialeffect EF_BLASTMINEBOMB,AREA," #fire";
 			end;
 			end;
 		}
 		}
 		mes "[Lady]";
 		mes "[Lady]";
@@ -4233,10 +4233,6 @@ lou_fild01,224,348,0	script	Lady#delivery	817,{
 
 
 lou_fild01,225,350,0	script	 #fire	139,{
 lou_fild01,225,350,0	script	 #fire	139,{
 	end;
 	end;
-
-OnClaymore:
-	specialeffect EF_BLASTMINEBOMB;
-	end;
 }
 }
 
 
 lou_in01,101,125,0	script	Trap#lou_in1	-1,20,1,{
 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) {
 				if (.@music_bard == 2) {
 					soundeffect "mos_gusli1.wav",0;
 					soundeffect "mos_gusli1.wav",0;
 					emotion e_no1;
 					emotion e_no1;
-					specialeffect2 7;
+					specialeffect2 EF_EXIT;
 					mes "[Aged Stranger]";
 					mes "[Aged Stranger]";
 					mes "Oh! You are good at playing the";
 					mes "Oh! You are good at playing the";
 					mes "Gusli! In such a short time... you";
 					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) {
 				if (.@music_etc == 3) {
 					soundeffect "mos_gusli1.wav",0;
 					soundeffect "mos_gusli1.wav",0;
 					emotion e_no1;
 					emotion e_no1;
-					specialeffect2 7;
+					specialeffect2 EF_EXIT;
 					mes "[Aged Stranger]";
 					mes "[Aged Stranger]";
 					mes "Oh! You are good at playing the";
 					mes "Oh! You are good at playing the";
 					mes "Gusli! In such a short time... you";
 					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) {
 				if (.@music_bard == 2) {
 					soundeffect "mos_gusli1.wav",0;
 					soundeffect "mos_gusli1.wav",0;
 					emotion e_no1;
 					emotion e_no1;
-					specialeffect2 7;
+					specialeffect2 EF_EXIT;
 					mes "[Aged Stranger]";
 					mes "[Aged Stranger]";
 					mes "Oh! You are good at playing the";
 					mes "Oh! You are good at playing the";
 					mes "Gusli! In such a short time... you";
 					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) {
 				if (.@music_etc == 3) {
 					soundeffect "mos_gusli1.wav",0;
 					soundeffect "mos_gusli1.wav",0;
 					emotion e_no1;
 					emotion e_no1;
-					specialeffect2 7;
+					specialeffect2 EF_EXIT;
 					mes "[Aged Stranger]";
 					mes "[Aged Stranger]";
 					mes "Oh! You are good at playing the";
 					mes "Oh! You are good at playing the";
 					mes "Gusli! In such a short time... you";
 					mes "Gusli! In such a short time... you";
@@ -10394,8 +10394,8 @@ mosk_dun01,169,162,0	script	Mysterious Stone#rus02	111,{
 			next;
 			next;
 			mes "- !!!!!! -";
 			mes "- !!!!!! -";
 			percentheal -50,-50;
 			percentheal -50,-50;
-			specialeffect2 212;
-			specialeffect2 1;
+			specialeffect2 EF_DARKBREATH;
+			specialeffect2 EF_HIT2;
 			emotion 23,1;
 			emotion 23,1;
 			next;
 			next;
 			mes "- An unknown force has -";
 			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.";
 		mes "Unless you want to be killed, leave now.";
 		set rhea_rus_main,3;
 		set rhea_rus_main,3;
 		emotion 23,1;
 		emotion 23,1;
-		specialeffect2 1;
+		specialeffect2 EF_HIT2;
 		percentheal -50,0;
 		percentheal -50,0;
 		next;
 		next;
 		mes "- The Gray Wolf attacks you -";
 		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 "- The key begins to glow -";
 					mes "- wind begins to blow -";
 					mes "- wind begins to blow -";
 					mes "- from somewhere -";
 					mes "- from somewhere -";
-					specialeffect2 12;
-					specialeffect 134;
+					specialeffect2 EF_BEGINSPELL;
+					specialeffect EF_FREEZED;
 					next;
 					next;
 				}else{
 				}else{
 					mes "["+ strcharinfo(0) +"]";
 					mes "["+ strcharinfo(0) +"]";
@@ -10789,13 +10789,15 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 				mes "- The wind disappears and -";
 				mes "- The wind disappears and -";
 				mes "- a very young girl appears -";
 				mes "- a very young girl appears -";
 				donpcevent "Maria Morebna#rus46::OnEnable";
 				donpcevent "Maria Morebna#rus46::OnEnable";
-				donpcevent "Maria Morebna#rus46::OnFreezed";
+				specialeffect EF_FREEZED,AREA,"Maria Morebna#rus46";
 				next;
 				next;
 				mes "[Maria Morebna]";
 				mes "[Maria Morebna]";
 				mes "Thank you!";
 				mes "Thank you!";
 				mes "I'm finally out of there! Now I can.....................aaaaak!!!....";
 				mes "I'm finally out of there! Now I can.....................aaaaak!!!....";
 				next;
 				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 "- Maria is attacked -";
 				mes "- and falls down!! -";
 				mes "- and falls down!! -";
 				next;
 				next;
@@ -10824,7 +10826,7 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 				mes "Gray Wolf...";
 				mes "Gray Wolf...";
 				mes "You think you can fight me?!";
 				mes "You think you can fight me?!";
 				next;
 				next;
-				donpcevent "Gray Wolf#rus05::OnFirehit";
+				specialeffect EF_FIREHIT,AREA,"Gray Wolf#rus05";
 				mes "- Staggering from -";
 				mes "- Staggering from -";
 				mes "- Koshei's flames, -";
 				mes "- Koshei's flames, -";
 				mes "- Gray Wolf quickly tell me -";
 				mes "- Gray Wolf quickly tell me -";
@@ -10956,7 +10958,7 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 			mes "- The wounds and -";
 			mes "- The wounds and -";
 			mes "- curses on her body -";
 			mes "- curses on her body -";
 			mes "- are removed !! -";
 			mes "- are removed !! -";
-			donpcevent "Maria Morebna#rus46::OnAbsorbspirits";
+			specialeffect EF_ABSORBSPIRITS,AREA,"Maria Morebna#rus46";
 			next;
 			next;
 			mes "["+ strcharinfo(0) +"]";
 			mes "["+ strcharinfo(0) +"]";
 			mes "Ok! Next...";
 			mes "Ok! Next...";
@@ -10986,7 +10988,7 @@ mosk_dun01,45,259,0	script	Wall#rus04	111,{
 				next;
 				next;
 			}
 			}
 			mes "- !! -";
 			mes "- !! -";
-			donpcevent "Maria Morebna#rus46::OnResurrection";
+			specialeffect EF_RESURRECTION,AREA,"Maria Morebna#rus46";
 			next;
 			next;
 			mes "[Gray Wolf]";
 			mes "[Gray Wolf]";
 			mes "Success!!";
 			mes "Success!!";
@@ -11170,10 +11172,6 @@ OnDisable:
 	disablenpc "Gray Wolf#rus05";
 	disablenpc "Gray Wolf#rus05";
 	end;
 	end;
 
 
-OnFirehit:
-	specialeffect 49;
-	end;
-
 OnTimer120000:
 OnTimer120000:
 	stopnpctimer;
 	stopnpctimer;
 	donpcevent "Gray Wolf#rus05::OnDisable";
 	donpcevent "Gray Wolf#rus05::OnDisable";
@@ -11200,24 +11198,6 @@ OnDisable:
 	disablenpc "Maria Morebna#rus46";
 	disablenpc "Maria Morebna#rus46";
 	end;
 	end;
 
 
-OnFreezed:
-	specialeffect 134;
-	end;
-
-OnDeath:
-	specialeffect 1;
-	specialeffect 212;
-	specialeffect 372;
-	end;
-
-OnAbsorbspirits:
-	specialeffect 253;
-	end;
-
-OnResurrection:
-	specialeffect 77;
-	end;
-
 OnTimer120000:
 OnTimer120000:
 	donpcevent "Maria Morebna#rus46::OnDisable";
 	donpcevent "Maria Morebna#rus46::OnDisable";
 	end;
 	end;
@@ -11422,7 +11402,7 @@ moscovia,178,127,0	script	The Blacksmith#rus06	63,{
 				next;
 				next;
 				mes "[The Blacksmith]";
 				mes "[The Blacksmith]";
 				mes "'^ff0000Spellshield Protection^000000.";
 				mes "'^ff0000Spellshield Protection^000000.";
-				specialeffect2 253;
+				specialeffect2 EF_ABSORBSPIRITS;
 				next;
 				next;
 				mes "[The Blacksmith]";
 				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.";
 				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;
 				close;
 			}else{
 			}else{
 				mes "- My hand is pricked by thorns! -";
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
 			}
 			}
@@ -12508,7 +12488,7 @@ mosk_fild02,160,227,0	script	Pointed Tree#rus12	111,{
 				close;
 				close;
 			}else{
 			}else{
 				mes "- My hand is pricked by thorns! -";
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
 			}
 			}
@@ -12546,7 +12526,7 @@ mosk_fild02,160,179,0	script	Pointed Tree#rus13	111,{
 				close;
 				close;
 			}else{
 			}else{
 				mes "- My hand is pricked by thorns! -";
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
 			}
 			}
@@ -12584,7 +12564,7 @@ mosk_fild02,142,247,0	script	Pointed Tree#rus14	111,{
 				close;
 				close;
 			}else{
 			}else{
 				mes "- My hand is pricked by thorns! -";
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
 			}
 			}
@@ -12622,7 +12602,7 @@ mosk_fild02,149,223,0	script	Pointed Tree#rus15	111,{
 				close;
 				close;
 			}else{
 			}else{
 				mes "- My hand is pricked by thorns! -";
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
 			}
 			}
@@ -12660,7 +12640,7 @@ mosk_fild02,114,223,0	script	Pointed Tree#rus16	111,{
 				close;
 				close;
 			}else{
 			}else{
 				mes "- My hand is pricked by thorns! -";
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
 			}
 			}
@@ -12698,7 +12678,7 @@ mosk_fild02,101,197,0	script	Pointed Tree#rus17	111,{
 				close;
 				close;
 			}else{
 			}else{
 				mes "- My hand is pricked by thorns! -";
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
 			}
 			}
@@ -12736,7 +12716,7 @@ mosk_fild02,125,182,0	script	Pointed Tree#rus18	111,{
 				close;
 				close;
 			}else{
 			}else{
 				mes "- My hand is pricked by thorns! -";
 				mes "- My hand is pricked by thorns! -";
-				specialeffect2 1;
+				specialeffect2 EF_HIT2;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
 			}
 			}
@@ -12919,7 +12899,7 @@ OnTouch:
 					mes "- something gleaming -";
 					mes "- something gleaming -";
 					mes "- seems to stare at you!! -";
 					mes "- seems to stare at you!! -";
 					next;
 					next;
-					specialeffect2 99;
+					specialeffect2 EF_FLASHER;
 					percentheal -100,0;
 					percentheal -100,0;
 					close;
 					close;
 				}
 				}
@@ -12946,7 +12926,7 @@ OnTouch:
 					close;
 					close;
 				}else{
 				}else{
 					mes "-You seem to hear the splash but something gleaming raids on you!!-";
 					mes "-You seem to hear the splash but something gleaming raids on you!!-";
-					specialeffect2 99;
+					specialeffect2 EF_FLASHER;
 					percentheal -100,0;
 					percentheal -100,0;
 					close;
 					close;
 				}
 				}
@@ -13164,7 +13144,7 @@ mosk_fild02,124,202,3	script	Lusalka#rus23	971,{
 				mes "Here, my hair...?!";
 				mes "Here, my hair...?!";
 				mes "Aaaaaaaah!??!?!";
 				mes "Aaaaaaaah!??!?!";
 				sc_start SC_CURSE,60000,0;
 				sc_start SC_CURSE,60000,0;
-				specialeffect2 90;
+				specialeffect2 EF_LORD;
 				emotion 23,1;
 				emotion 23,1;
 				percentheal -30,0;
 				percentheal -30,0;
 				next;
 				next;
@@ -13210,7 +13190,7 @@ mosk_fild02,124,202,3	script	Lusalka#rus23	971,{
 		}
 		}
 	}else{
 	}else{
 		mes "-When Lusalka watches you, you are blacked out-";
 		mes "-When Lusalka watches you, you are blacked out-";
-		specialeffect2 99;
+		specialeffect2 EF_FLASHER;
 		percentheal -100,0;
 		percentheal -100,0;
 		donpcevent "Lusalka#rus23::OnDisable";
 		donpcevent "Lusalka#rus23::OnDisable";
 		close;
 		close;
@@ -13616,7 +13596,7 @@ OnInit:
 
 
 OnEnable:
 OnEnable:
 	initnpctimer;
 	initnpctimer;
-	specialeffect 317;
+	specialeffect EF_PORTAL2;
 	enablenpc "1#rus27";
 	enablenpc "1#rus27";
 	end;
 	end;
 
 
@@ -13719,7 +13699,7 @@ mosk_que,45,131,0	script	Stone Furnace#rus28	111,{
 				next;
 				next;
 				mes "["+ strcharinfo(0) +"]";
 				mes "["+ strcharinfo(0) +"]";
 				mes "Oops, it's hot, hot!!!";
 				mes "Oops, it's hot, hot!!!";
-				specialeffect2 49;
+				specialeffect2 EF_FIREHIT;
 				emotion 23,1;
 				emotion 23,1;
 				percentheal -5,0;
 				percentheal -5,0;
 				close;
 				close;
@@ -14065,7 +14045,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 		mes "[Baba Yaga]";
 		mes "[Baba Yaga]";
 		mes "'Presto Change-o!!'";
 		mes "'Presto Change-o!!'";
 		mes "'Turn into a pig!!'";
 		mes "'Turn into a pig!!'";
-		specialeffect2 63;
+		specialeffect2 EF_BARRIER;
 		emotion 23;
 		emotion 23;
 		next;
 		next;
 		mes "[Baba Yaga]";
 		mes "[Baba Yaga]";
@@ -14083,7 +14063,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 			mes "["+ strcharinfo(0) +"]";
 			mes "["+ strcharinfo(0) +"]";
 			mes "Eh, eh.. I mean.. I say.. spell...";
 			mes "Eh, eh.. I mean.. I say.. spell...";
 			mes ""+ .@input$ +" !!!";
 			mes ""+ .@input$ +" !!!";
-			specialeffect2 253;
+			specialeffect2 EF_ABSORBSPIRITS;
 			next;
 			next;
 		}else{
 		}else{
 			mes "["+ strcharinfo(0) +"]";
 			mes "["+ strcharinfo(0) +"]";
@@ -14254,7 +14234,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 			mes "[Baba Yaga]";
 			mes "[Baba Yaga]";
 			mes "Ok.. Let's do this.";
 			mes "Ok.. Let's do this.";
 			mes "'Keep off the grass!!!'";
 			mes "'Keep off the grass!!!'";
-			specialeffect 56;
+			specialeffect EF_BEGINSPELL4;
 			delitem 7881,1;
 			delitem 7881,1;
 			set rhea_rus_main,28;
 			set rhea_rus_main,28;
 			monster "mosk_dun02",52,210,"Violent Gardener",1493,1,"Baba Yaga#rus32::OnMyMobDead";
 			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;
 		next;
 		mes "[Baba Yaga]";
 		mes "[Baba Yaga]";
 		mes "'There is an order for you to open your eyes!!!'";
 		mes "'There is an order for you to open your eyes!!!'";
-		specialeffect2 55;
+		specialeffect2 EF_BEGINSPELL3;
 		set rhea_rus_main,29;
 		set rhea_rus_main,29;
 		monster "mosk_dun02",52,210,"Alarm to 5 minutes",1193,1,"Baba Yaga#rus32::OnMyMobDead";
 		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";
 		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;
 			next;
 			mes "[Baba Yaga]";
 			mes "[Baba Yaga]";
 			mes "Yg~ Yg~ Yggdrasil~ Yggdrasil has lots of iron~";
 			mes "Yg~ Yg~ Yggdrasil~ Yggdrasil has lots of iron~";
-			specialeffect 305;
+			specialeffect EF_PHARMACY_OK;
 			next;
 			next;
 			mes "[Baba Yaga]";
 			mes "[Baba Yaga]";
 			mes "Here, I made the 'Living Water' so now let's make the 'Dead Water'...";
 			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;
 			next;
 			mes "[Baba Yaga]";
 			mes "[Baba Yaga]";
 			mes "Hi~ hi~ hi~ hi~ na~ lle~ Stir with right hand~ Stir with left hand~ Both hands will be ok~";
 			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;
 			next;
 			mes "[Baba Yaga]";
 			mes "[Baba Yaga]";
 			mes "Here, it's done.";
 			mes "Here, it's done.";
@@ -14671,7 +14651,7 @@ mosk_dun02,48,214,5	script	Baba Yaga#rus32	970,{
 					}
 					}
 					mes "[Baba Yaga]";
 					mes "[Baba Yaga]";
 					mes "Here, done!";
 					mes "Here, done!";
-					specialeffect 305;
+					specialeffect EF_PHARMACY_OK;
 					next;
 					next;
 					mes "[Baba Yaga]";
 					mes "[Baba Yaga]";
 					mes "Whenever you want more, come to me.";
 					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 "[Baba Yaga]";
 					mes "Here, done!";
 					mes "Here, done!";
-					specialeffect 305;
+					specialeffect EF_PHARMACY_OK;
 					next;
 					next;
 					mes "[Baba Yaga]";
 					mes "[Baba Yaga]";
 					mes "Whenever you want more, come to me.";
 					mes "Whenever you want more, come to me.";
@@ -14879,7 +14859,7 @@ OnTouch:
 			if (.@input$ == "Good feed is orange-flavored") {
 			if (.@input$ == "Good feed is orange-flavored") {
 				mes "["+ strcharinfo(0) +"]";
 				mes "["+ strcharinfo(0) +"]";
 				mes ""+ .@input$ +" !!!";
 				mes ""+ .@input$ +" !!!";
-				specialeffect 304;
+				specialeffect EF_TELEPORTATION2;
 				next;
 				next;
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				donpcevent "Cow#rus33::OnDisable";
 				donpcevent "Cow#rus33::OnDisable";
@@ -14993,7 +14973,7 @@ OnTouch:
 			if (.@input$ == "Good feed is orange-flavored") {
 			if (.@input$ == "Good feed is orange-flavored") {
 				mes "["+ strcharinfo(0) +"]";
 				mes "["+ strcharinfo(0) +"]";
 				mes ""+ .@input$ +" !!!";
 				mes ""+ .@input$ +" !!!";
-				specialeffect 304;
+				specialeffect EF_TELEPORTATION2;
 				next;
 				next;
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				donpcevent "Cow#rus34::OnDisable";
 				donpcevent "Cow#rus34::OnDisable";
@@ -15107,7 +15087,7 @@ OnTouch:
 			if (.@input$ == "Good feed is orange-flavored") {
 			if (.@input$ == "Good feed is orange-flavored") {
 				mes "["+ strcharinfo(0) +"]";
 				mes "["+ strcharinfo(0) +"]";
 				mes ""+ .@input$ +" !!!";
 				mes ""+ .@input$ +" !!!";
-				specialeffect 304;
+				specialeffect EF_TELEPORTATION2;
 				next;
 				next;
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				mes "- You cast the spell in a hurry and the cow is surronded by the light and disappears !! -";
 				donpcevent "Cow#rus35::OnDisable";
 				donpcevent "Cow#rus35::OnDisable";
@@ -15211,7 +15191,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					next;
 					next;
 					mes "["+ strcharinfo(0) +"]";
 					mes "["+ strcharinfo(0) +"]";
 					mes "Heaven, earth, and wind belong to God, there is no place for evil.";
 					mes "Heaven, earth, and wind belong to God, there is no place for evil.";
-					specialeffect 42;
+					specialeffect EF_BLESSING;
 					next;
 					next;
 					mes "[Noisy Coffin]";
 					mes "[Noisy Coffin]";
 					mes "Heek, heeee! Heeeeeek!";
 					mes "Heek, heeee! Heeeeeek!";
@@ -15223,7 +15203,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					next;
 					next;
 					mes "["+ strcharinfo(0) +"]";
 					mes "["+ strcharinfo(0) +"]";
 					mes "Heaven, earth, and wind belong to God, there is no place for evil.";
 					mes "Heaven, earth, and wind belong to God, there is no place for evil.";
-					specialeffect 42;
+					specialeffect EF_BLESSING;
 					next;
 					next;
 					mes "[Noisy Coffin]";
 					mes "[Noisy Coffin]";
 					mes "What was that? What was that for? Was it fun?";
 					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 "- The covetous, the perverse -";
 					mes "- All the evils hateful -";
 					mes "- All the evils hateful -";
 					mes "- Will be droven off this land -";
 					mes "- Will be droven off this land -";
-					specialeffect 75;
+					specialeffect EF_GLORIA;
 					next;
 					next;
 					mes "[Noisy Coffin]";
 					mes "[Noisy Coffin]";
 					mes "Heek, heeee! Heeeeeek!";
 					mes "Heek, heeee! Heeeeeek!";
@@ -15257,7 +15237,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					mes "- The covetous, the perverse -";
 					mes "- The covetous, the perverse -";
 					mes "- All the evils hateful -";
 					mes "- All the evils hateful -";
 					mes "- Will be droven off this land -";
 					mes "- Will be droven off this land -";
-					specialeffect 75;
+					specialeffect EF_GLORIA;
 					next;
 					next;
 					mes "[Noisy Coffin]";
 					mes "[Noisy Coffin]";
 					mes "Perverse! The perverse!! Drive away!! What was that song?! Was it fun?!";
 					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!";
 						mes "If you don't shut up, I will pour Holy Water on you!";
 						next;
 						next;
 						mes "- You open the bottle of Holy Water and pour it around the coffin carefully !! -";
 						mes "- You open the bottle of Holy Water and pour it around the coffin carefully !! -";
-						specialeffect 72;
+						specialeffect EF_SPHERE;
 						next;
 						next;
 						mes "[Noisy Coffin]";
 						mes "[Noisy Coffin]";
 						mes "Heek, heeee! Heeeeeek!";
 						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!";
 						mes "If you don't shut up, I will pour Holy Water on you!";
 						next;
 						next;
 						mes "- You open the bottle of Holy Water and pour it around the coffin carefully !! -";
 						mes "- You open the bottle of Holy Water and pour it around the coffin carefully !! -";
-						specialeffect 72;
+						specialeffect EF_SPHERE;
 						next;
 						next;
 						mes "[Noisy Coffin]";
 						mes "[Noisy Coffin]";
 						mes "Ah, cold! No, it's cool! Was it fun? Was it fun?!";
 						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;
 					next;
 					mes "[Noisy Coffin]";
 					mes "[Noisy Coffin]";
 					mes "Heeeek! Heeeeeee!!!! I am scared! Stop it!!";
 					mes "Heeeek! Heeeeeee!!!! I am scared! Stop it!!";
-					specialeffect 152;
+					specialeffect EF_HOLYHIT;
 					set rhea_rus_main,20;
 					set rhea_rus_main,20;
 					next;
 					next;
 					break;
 					break;
@@ -15331,7 +15311,7 @@ mosk_dun02,65,232,0	script	Noisy Coffin#rus36	801,{
 					mes "......I will kick you!!";
 					mes "......I will kick you!!";
 					next;
 					next;
 					mes "- You close your eyes, take a deep breathe and kick the coffin with the might of God !! -";
 					mes "- You close your eyes, take a deep breathe and kick the coffin with the might of God !! -";
-					specialeffect 152;
+					specialeffect EF_HOLYHIT;
 					next;
 					next;
 					mes "[Noisy Coffin]";
 					mes "[Noisy Coffin]";
 					mes "Slam! Slam! I like noise! Do it more, more, more!";
 					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;
 			next;
 			mes "["+ strcharinfo(0) +"]";
 			mes "["+ strcharinfo(0) +"]";
 			mes "Arrrrrk? What is this!!";
 			mes "Arrrrrk? What is this!!";
-			specialeffect 99;
+			specialeffect EF_FLASHER;
 			next;
 			next;
 		}else{
 		}else{
 			mes "- Her eyes are made from jewels !! -";
 			mes "- Her eyes are made from jewels !! -";
@@ -15437,7 +15417,7 @@ treasure01,165,58,0	script	Old Treasure Box#rus37	111,{
 			end;
 			end;
 		}
 		}
 		mes "- You wave your arms and cover your eyes. The mirror inside your bag reflects the light from her eyes accidentally !! -";
 		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;
 		next;
 		mes "- The light reflected goes to the woman shape and fumes comes from the box and it opens !! -";
 		mes "- The light reflected goes to the woman shape and fumes comes from the box and it opens !! -";
 		next;
 		next;
@@ -15509,7 +15489,7 @@ treasure01,24,39,0	script	Old Bed#rus38	111,{
 			next;
 			next;
 			mes "["+ strcharinfo(0) +"]";
 			mes "["+ strcharinfo(0) +"]";
 			mes "Ouch?!";
 			mes "Ouch?!";
-			specialeffect2 1;
+			specialeffect2 EF_HIT2;
 			percentheal -5,0;
 			percentheal -5,0;
 			next;
 			next;
 			mes "- Something unidentified bites your hand !! -";
 			mes "- Something unidentified bites your hand !! -";
@@ -15563,7 +15543,7 @@ treasure01,24,39,0	script	Old Bed#rus38	111,{
 			next;
 			next;
 			mes "["+ strcharinfo(0) +"]";
 			mes "["+ strcharinfo(0) +"]";
 			mes "Ouch?!";
 			mes "Ouch?!";
-			specialeffect2 1;
+			specialeffect2 EF_HIT2;
 			percentheal -5,0;
 			percentheal -5,0;
 			next;
 			next;
 			mes "- Something unidentified bites your hand !! -";
 			mes "- Something unidentified bites your hand !! -";
@@ -15810,7 +15790,7 @@ mosk_dun02,57,220,0	script	House Ghost Jar#rus43	111,{
 		next;
 		next;
 		mes "- You tap the jar -";
 		mes "- You tap the jar -";
 		mes "- with your hand -";
 		mes "- with your hand -";
-		specialeffect 62;
+		specialeffect EF_SIGHTRASHER;
 		emotion 23,1;
 		emotion 23,1;
 		next;
 		next;
 		mes "- A voice laughs in the jar as -";
 		mes "- A voice laughs in the jar as -";
@@ -15818,7 +15798,7 @@ mosk_dun02,57,220,0	script	House Ghost Jar#rus43	111,{
 		next;
 		next;
 		mes "["+ strcharinfo(0) +"]";
 		mes "["+ strcharinfo(0) +"]";
 		mes "You! No more games! Come out of there!";
 		mes "You! No more games! Come out of there!";
-		specialeffect 1;
+		specialeffect EF_HIT2;
 		next;
 		next;
 		mes "- You kick the jar -";
 		mes "- You kick the jar -";
 		mes "- it rolls to the floor -";
 		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 "- As you plan to kick the jar -";
 		mes "- again, something scared -";
 		mes "- again, something scared -";
 		mes "- utters in a shaky voice -";
 		mes "- utters in a shaky voice -";
-		specialeffect 196;
+		specialeffect EF_CURSEATTACK;
 		next;
 		next;
 		mes "[House Ghost]";
 		mes "[House Ghost]";
 		mes "No! Please stop it! I was wrong!";
 		mes "No! Please stop it! I was wrong!";
@@ -15886,19 +15866,19 @@ mosk_dun02,57,220,0	script	House Ghost Jar#rus43	111,{
 			next;
 			next;
 			mes "[House Ghost]";
 			mes "[House Ghost]";
 			mes "One!";
 			mes "One!";
-			specialeffect 0;
+			specialeffect EF_HIT1;
 			next;
 			next;
 			mes "[House Ghost]";
 			mes "[House Ghost]";
 			mes "One! Two!";
 			mes "One! Two!";
-			specialeffect 1;
+			specialeffect EF_HIT2;
 			next;
 			next;
 			mes "[House Ghost]";
 			mes "[House Ghost]";
 			mes "One! Two! Three!";
 			mes "One! Two! Three!";
-			specialeffect 2;
+			specialeffect EF_HIT3;
 			next;
 			next;
 			mes "[House Ghost]";
 			mes "[House Ghost]";
 			mes "Ok! I will pick one of them up!";
 			mes "Ok! I will pick one of them up!";
-			specialeffect 18;
+			specialeffect EF_STEAL;
 			next;
 			next;
 			mes "[House Ghost]";
 			mes "[House Ghost]";
 			mes "Ok! I will pick one of them up!";
 			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.";
 			mes "I cast first.";
 			next;
 			next;
 			mes "- Ghost Tree casts a dice. The dice falls down, rotates and stops there-";
 			mes "- Ghost Tree casts a dice. The dice falls down, rotates and stops there-";
-			specialeffect 194;
+			specialeffect EF_STUNATTACK;
 			next;
 			next;
 			set .@tree_dice01,rand(1,6);
 			set .@tree_dice01,rand(1,6);
 			if (.@tree_dice01 == 1) {
 			if (.@tree_dice01 == 1) {
@@ -16456,7 +16436,7 @@ pay_dun04,163,186,0	script	Ghost Tree#rus45	111,{
 			mes "Ok, it is my turn?";
 			mes "Ok, it is my turn?";
 			next;
 			next;
 			mes "-You cast a dice. The dice falls down, rotates and stops there-";
 			mes "-You cast a dice. The dice falls down, rotates and stops there-";
-			specialeffect2 194;
+			specialeffect2 EF_STUNATTACK;
 			next;
 			next;
 			set .@rus_dice01,rand(1,6);
 			set .@rus_dice01,rand(1,6);
 			mes "["+ strcharinfo(0) +"]";
 			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,{
 que_god02,175,55,4	script	#doppelganger2	739,{
-
-OnCast:
-	specialeffect EF_BEGINSPELL7;
 	end;
 	end;
 }
 }
 
 
 que_god02,175,54,1	script	#lowen	745,{
 que_god02,175,54,1	script	#lowen	745,{
 	end;
 	end;
-
-OnCast:
-	specialeffect EF_BEGINSPELL7;
-	end;
 }
 }
 
 
 que_god02,178,49,1	script	#knight1	751,{
 que_god02,178,49,1	script	#knight1	751,{
@@ -3244,7 +3237,7 @@ OnTouch:
 	mes "Go, Lowen!";
 	mes "Go, Lowen!";
 	mes "Cast Grand Cross, now!^000000";
 	mes "Cast Grand Cross, now!^000000";
 	next;
 	next;
-	donpcevent "#lowen::OnCast";
+	specialeffect EF_BEGINSPELL7,AREA,"#lowen";
 	mapannounce "que_god02","Mwahaha! Mortals are such fools...",0,0xA8A8A8;
 	mapannounce "que_god02","Mwahaha! Mortals are such fools...",0,0xA8A8A8;
 	donpcevent "#brisinsummon::OnDoppel1Off";
 	donpcevent "#brisinsummon::OnDoppel1Off";
 	donpcevent "#brisinsummon::OnDoppel2On";
 	donpcevent "#brisinsummon::OnDoppel2On";
@@ -3255,7 +3248,7 @@ OnTouch:
 	mes "[" + strcharinfo(0) + "]";
 	mes "[" + strcharinfo(0) + "]";
 	mes " ??!!!";
 	mes " ??!!!";
 	next;
 	next;
-	donpcevent "#doppelganger2::OnCast";
+	specialeffect EF_BEGINSPELL7,AREA,"#doppelganger2";
 	mes "[Male Voice]";
 	mes "[Male Voice]";
 	mes "Lowen!";
 	mes "Lowen!";
 	mes "Noooooooooo!!!";
 	mes "Noooooooooo!!!";

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

@@ -170,8 +170,8 @@ pay_arche,109,169,3	script	Arpesto	712,{
 				next;
 				next;
 				mes "[Arpesto]";
 				mes "[Arpesto]";
 				mes "ARRRRRRRROOOOOOW~!";
 				mes "ARRRRRRRROOOOOOW~!";
-				specialeffect 99;
-				specialeffect2 99;
+				specialeffect EF_FLASHER;
+				specialeffect2 EF_FLASHER;
 				next;
 				next;
 				mes "[Arpesto]";
 				mes "[Arpesto]";
 				mes "^333333*Pant Pant*^000000";
 				mes "^333333*Pant Pant*^000000";
@@ -182,7 +182,7 @@ pay_arche,109,169,3	script	Arpesto	712,{
 				next;
 				next;
 				mes "^3355FF*Swwwwwww!*";
 				mes "^3355FF*Swwwwwww!*";
 				mes "*Bang!*^000000";
 				mes "*Bang!*^000000";
-				specialeffect 1;
+				specialeffect EF_HIT2;
 				emotion 23;
 				emotion 23;
 				emotion 23,1;
 				emotion 23,1;
 				next;
 				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 "the grooves, and then you";
 				mes "hear a powerful rumbling";
 				mes "hear a powerful rumbling";
 				mes "from within the column.^000000";
 				mes "from within the column.^000000";
-				specialeffect 52;
+				specialeffect EF_WINDHIT;
 				next;
 				next;
 				mes "^3355FFYou slowly insert a";
 				mes "^3355FFYou slowly insert a";
 				mes "Dragon Scale into another";
 				mes "Dragon Scale into another";
 				mes "of the column's grooves,";
 				mes "of the column's grooves,";
 				mes "trigerring another small";
 				mes "trigerring another small";
 				mes "tremor from the column.^000000";
 				mes "tremor from the column.^000000";
-				specialeffect 52;
+				specialeffect EF_WINDHIT;
 				next;
 				next;
 				mes "^3355FFYou cautiously insert";
 				mes "^3355FFYou cautiously insert";
 				mes "a Dragon Tail into the";
 				mes "a Dragon Tail into the";
 				mes "final groove. Lights shine";
 				mes "final groove. Lights shine";
 				mes "forth from cracks in the";
 				mes "forth from cracks in the";
 				mes "column's surface...^000000";
 				mes "column's surface...^000000";
-				specialeffect 52;
+				specialeffect EF_WINDHIT;
 				next;
 				next;
 				mes "^3355FFThe ground beneath";
 				mes "^3355FFThe ground beneath";
 				mes "your feet begins to";
 				mes "your feet begins to";
 				mes "violently shake.^000000";
 				mes "violently shake.^000000";
-				specialeffect 73;
+				specialeffect EF_BOWLINGBASH;
 				donpcevent "AbyssWarp::OnWarp";
 				donpcevent "AbyssWarp::OnWarp";
-				specialeffect2 36;
+				specialeffect2 EF_PORTAL;
 				delitem 1035,1;
 				delitem 1035,1;
 				delitem 1036,1;
 				delitem 1036,1;
 				delitem 1037,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 "the column starts to shake.";
 			mes "You hear a faint rumbling";
 			mes "You hear a faint rumbling";
 			mes "from inside the column.^000000";
 			mes "from inside the column.^000000";
-			specialeffect 52;
+			specialeffect EF_WINDHIT;
 			next;
 			next;
 			mes "*Ggghhhhhzzzz!*";
 			mes "*Ggghhhhhzzzz!*";
 			mes "*BAM!*";
 			mes "*BAM!*";
@@ -116,8 +116,8 @@ hu_fild05,171,211,0	script	Column#abyss2	111,1,1,{
 			mes "ground beneath your feet";
 			mes "ground beneath your feet";
 			mes "begin to slowly sink away...^000000";
 			mes "begin to slowly sink away...^000000";
 			next;
 			next;
-			specialeffect 73;
-			specialeffect2 36;
+			specialeffect EF_BOWLINGBASH;
+			specialeffect2 EF_PORTAL;
 			close2;
 			close2;
 			warp "hu_fild05",169,305;
 			warp "hu_fild05",169,305;
 			end;
 			end;
@@ -126,7 +126,7 @@ hu_fild05,171,211,0	script	Column#abyss2	111,1,1,{
 			mes "^3355FF*Ppppsssh!*";
 			mes "^3355FF*Ppppsssh!*";
 			mes "You accidentally";
 			mes "You accidentally";
 			mes "broke the item.^000000";
 			mes "broke the item.^000000";
-			specialeffect 52;
+			specialeffect EF_WINDHIT;
 			next;
 			next;
 			mes "^3355FF*Gggggggghhhhhhhhzzzzzzjjjjhh!*^000000";
 			mes "^3355FF*Gggggggghhhhhhhhzzzzzzjjjjhh!*^000000";
 			next;
 			next;
@@ -138,8 +138,8 @@ hu_fild05,171,211,0	script	Column#abyss2	111,1,1,{
 			mes "steadily, but suddently you";
 			mes "steadily, but suddently you";
 			mes "are warped somewhere else...^000000";
 			mes "are warped somewhere else...^000000";
 			next;
 			next;
-			specialeffect 73;
-			specialeffect2 36;
+			specialeffect EF_BOWLINGBASH;
+			specialeffect2 EF_PORTAL;
 			close2;
 			close2;
 			warp "hu_fild05",157,284;
 			warp "hu_fild05",157,284;
 			end;
 			end;

+ 8 - 1
src/map/script.c

@@ -10996,7 +10996,14 @@ BUILDIN_FUNC(specialeffect)
 	if(bl==NULL)
 	if(bl==NULL)
 		return 0;
 		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;
 	return 0;
 }
 }