Переглянути джерело

* Changed how waiting rooms work in the job quests.
- Implemented a checkweight in the alchemist job quest.
- Various other small updates to the 2-1 and 2-2 quests.

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

L0ne_W0lf 17 роки тому
батько
коміт
adf85cc8cc

+ 3 - 0
npc/Changelog.txt

@@ -1,6 +1,9 @@
 Date		Added
 ======
 2008/02/28
+	* Rev 12262 Changed how waiting rooms work in the job quests. [L0ne_W0lf]
+	- Implemented a checkweight in the alchemist job quest.
+	- Various other small updates to the 2-1 and 2-2 quests.
 	* Rev 12261 Added dialog from euRO for "Frozen Boy" in Rachel. [L0ne_W0lf]
 	* Rev 12259 Updated Alchemist Guild Dealer. [L0ne_W0lf]
 	* Rev 12258 Implemented several "checkweights" in other NPCs. [L0ne_W0lf]

+ 13 - 7
npc/jobs/2-1/assassin.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= kobra_k88
 //===== Current Version: ===================================== 
-//= 2.9b
+//= 3.0
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -40,6 +40,7 @@
 //= 2.9 Fixed an indent and added a 'break;' in hopes of 'fixing' an error [L0ne_W0lf]
 //= 2.9a Corrected a Typo error ";;". [Samuray22]
 //= 2.9b Moved a wrong 'break'. [Zephyrus_cr]
+//= 3.0 Now uses enable and disable waitingroomevent. [L0ne_W0lf]
 //============================================================ 
 
 in_moc_16,19,33,1	script	Guildsman#asn	55,{
@@ -1083,19 +1084,20 @@ in_moc_16,21,165,2	script	Standby Room#ASNTEST	725,{
 OnInit:
 	disablenpc "Standby Room#ASNTEST";
 	waitingroom "Standby Room",10,"Standby Room#ASNTEST::OnStartArena",1;
+	enablewaitingroomevent;
 	end;
 
 OnStartArena:
-	set $@SinUsers, getareausers("in_moc_16", 60, 136, 93, 177);
-	set $@SinUsers, $@SinUsers + getareausers("in_moc_16", 64, 46, 111, 105);
-	if ($@SinUsers > 0) end;		// stops the rest of the script from running if there is somebody taking the test
-
-	if ((getwaitingroomstate(33)) == 0) end;		// stops the rest of the script from running if there is no one in the waiting room
 	killmonsterall "in_moc_16";
 	warpwaitingpc "in_moc_16", 66, 151;
 	donpcevent "Beholder#ASNTEST::OnEnable";
 	donpcevent "Keeper of the Door#ASN::OnDisable";
 	set getvariableofnpc(.DisableTraps,"Beholder#ASNTEST"),0;
+	disablewaitingroomevent;
+	end;
+
+OnStart:
+	enablewaitingroomevent;
 	end;
 }
 
@@ -1246,14 +1248,16 @@ OnMyMobDead:
 		set .DisableTraps,1;
 		stopnpctimer;
 	}
-	else
+	else {
 		mapannounce "in_moc_16","Okay, you're doing good! Hang in there, you're almost there!",bc_map;
+	}
 	end;
 
 OnMyMobDead2:
 	mapannounce "in_moc_16",strcharinfo(0) + "! You made a mistake! I'm bringing you back!",bc_map;
 	set ASSIN_Q,2;
 	warp "in_moc_16",19,161;
+	donpcevent "Standby Room#ASNTEST::OnStart";
 	donpcevent "Beholder#ASNTEST::OnDisable";
 	end;
 
@@ -1314,6 +1318,7 @@ OnTimer185000:
 OnTimer187000:
 	areawarp "in_moc_16",60,136,93,177,"in_moc_16",19,161;
 	donpcevent "Beholder#ASNTEST::OnDisable";
+	donpcevent "Standby Room#ASNTEST::OnStart";
 	end;
 }
 
@@ -1324,6 +1329,7 @@ OnTouch:
 		set ASSIN_Q,2;
 		warp "in_moc_16",19,161;
 		donpcevent "Beholder#ASNTEST::OnDisable";
+		donpcevent "Standby Room#ASNTEST::OnStart";
 	}
 	end;
 }

+ 27 - 29
npc/jobs/2-1/hunter.txt

@@ -5,7 +5,7 @@
 //= Converted by kobra_k88
 //= Further bugfixed and tested by Lupus
 //===== Current Version: ===================================== 
-//= 3.0a
+//= 3.1
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -44,6 +44,7 @@
 //= 2.9a Deleted unused variables. [Samuray22]
 //= 3.0 Fixed a small typo, "jo" instead of "Job". [L0ne_W0lf]
 //= 3.0a Corrected a Typo error ";;". [Samuray22]
+//= 3.1 Now uses enable and disable waitingroomevent. [L0ne_W0lf]
 //============================================================ 
 
 // Notices in the old Hunter Guild.
@@ -959,7 +960,7 @@ OnTouch:
 			mapannounce "job_hunte",strcharinfo(0)+ " has resigned. Next person, please enter.",bc_map;
 			mes "[Guide]";
 			mes "Very well. I'll send you to Payon. Hope to see you next time. Don't forget to save when you leave.";
-			donpcevent "Waiting Room#hnt::OnDisable";
+			donpcevent "Waiting Room#hnt::OnStart";
 			close2;
 			set HNTR_Q,13;
 			savepoint "payon",104,99;
@@ -981,17 +982,19 @@ job_hunte,178,38,1	script	Waiting Room#hnt	66,{
 
 OnInit:
 	waitingroom "Waiting Room", 10,"Waiting Room#hnt::OnStartArena",1;
+	enablewaitingroomevent;
 	end;
 
 OnStartArena:
-	set $@HntUsers, getareausers("job_hunte", 50, 64, 129, 143);
-	if ($@HntUsers > 0) end;			// stops the rest of the script from running if there is somebody taking the test
-
-	if ((getwaitingroomstate(33)) == 0) end;			// stops the rest of the script from running if there is no one in the waiting room
 	killmonsterall "job_hunte";
 	warpwaitingpc "job_hunte", 90, 67;
 	donpcevent "Manager#hnt::OnEnable";
 	donpcevent "Switch#hnt::OnDisable";
+	disablewaitingroomevent;
+	end;
+
+OnStart:
+	enablewaitingroomevent;
 	end;
 }
 
@@ -1045,27 +1048,30 @@ OnEnable:
 	end;
 
 OnMyMobDead:
+	set .MyMobs,.MyMobs-1;
 	if (.MyMobs < 3) {
 		mapannounce "job_hunte","Okay, good job... Now, find the switch in the center of the map!! Be careful of the traps!!",bc_map;
 		set HNTR_Q,14;
 		donpcevent "switch#hnt::OnEnable";
 		donpcevent "Manager#hnt::OnDisable";
 	}
-	else
+	else {
 		mapannounce "job_hunte","Okay~ You're almost there!!",bc_map;
-		set .MyMobs,.MyMobs-1;
+	}
 	end;
 
 OnMyMobDead2:
 	mapannounce "job_hunte",strcharinfo(0)+ "!! You made a mistake...Please try again.",bc_map;
 	set HNTR_Q,13;
 	warp "job_hunte",176,22;
-	donpcevent "Waiting Room#hnt::OnDisable";
-	donpcevent "Manager#hnt::OnDisable";
+	donpcevent "Waiting Room#hnt::OnStart";
+	donpcevent "Manager#hnt::OnReset";
 	end;
 
-OnDisable:
+OnReset:
 	stopnpctimer;
+
+OnDisable:
 	killmonsterall "job_hunte";
 	disablenpc "Manager#hnt";
 	end;
@@ -1147,8 +1153,8 @@ OnTimer195000:
 	end;
 
 OnTimer197000:
-	donpcevent "Manager#hnt::OnDisable";
-	donpcevent "Waiting Room#hnt::OnDisable";
+	donpcevent "Manager#hnt::OnReset";
+	donpcevent "Waiting Room#hnt::OnStart";
 	stopnpctimer;
 	end;
 }
@@ -1165,7 +1171,7 @@ OnTouch:
 		mes "has now been activated.^000000";
 		close2;
 		mapannounce "job_hunte"," !! Escape Warp Portal activation complete. !! ",bc_map;
-		donpcevent "exit#hnttest::OnEnable";
+		enablenpc "exit#hnttest";
 		end;
 	case 2:
 		mes "^3355FFCanceling";
@@ -1181,12 +1187,12 @@ OnTouch:
 		close2;
 		set HNTR_Q,13;
 		warp "job_hunte",176,22;
-		donpcevent "Waiting Room#hnt::OnDisable";
+		donpcevent "Waiting Room#hnt::OnStart";
 		end;
 	}
 
 OnDisable:
-	donpcevent "exit#hnttest::OnDisable";
+	disablenpc "exit#hnttest";
 	disablenpc "Switch#hnt";
 	end;
 
@@ -1200,16 +1206,8 @@ OnInit:
 	disablenpc "exit#hnttest";
 	end;
 
-OnEnable:
-	enablenpc "exit#hnttest";
-	end;
-
-OnDisable:
-	disablenpc "exit#hnttest";
-	end;
-
 OnTouch:
-	donpcevent "Waiting Room#hnt::OnDisable";
+	donpcevent "Waiting Room#hnt::OnStart";
 	set HNTR_Q,16;
 	savepoint "payon",104,99;
 	if (rand(1))
@@ -1357,8 +1355,8 @@ OnTouch:
 	}
 	set HNTR_Q,13;
 	warp "job_hunte",176,22;
-	donpcevent "Waiting Room#hnt::OnDisable";
-	donpcevent "Manager#hnt::OnDisable";
+	donpcevent "Waiting Room#hnt::OnStart";
+	donpcevent "Manager#hnt::OnReset";
 	end;
 }
 
@@ -1593,8 +1591,8 @@ OnTouch:
 	mapannounce "job_hunte",strcharinfo(0) + ", has failed me! Go back to where you started!",bc_map;
 	set HNTR_Q,13;
 	warp "job_hunte",176,22;
-	donpcevent "Waiting Room#hnt::OnDisable";
-	donpcevent "Manager#hnt::OnDisable";
+	donpcevent "Waiting Room#hnt::OnStart";
+	donpcevent "Manager#hnt::OnReset";
 	end;
 }
 

+ 17 - 11
npc/jobs/2-1/knight.txt

@@ -5,7 +5,7 @@
 //= Converted by kobra_k88
 //= Further bugfixed and tested by Lupus
 //===== Current Version: ===================================== 
-//= 2.7a
+//= 2.8
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -34,6 +34,7 @@
 //= 2.6 Corrected an improper areawarp destination. [L0ne_W0lf]
 //= 2.7 Deleted unused variables. [Samuray22]
 //= 2.7a Corrected a Typo error ";;". [Samuray22]
+//= 2.8 Now uses enable and disable waitingroomevent. [L0ne_W0lf]
 //============================================================ 
 
 prt_in,88,101,4	script	Chivalry Captain#knt	56,{
@@ -1335,20 +1336,20 @@ job_knt,89,106,4	script	Windsor Benedict#knt	733,{
 OnInit:
 	disablenpc "Windsor Benedict#knt";
 	waitingroom "Waiting Room",20,"Windsor Benedict#knt::OnStartArena",1;
+	enablewaitingroomevent;
 	end;
 
 OnStartArena:
-	set $@KntUsers, getareausers("job_knt", 24, 126, 63, 165);			// get user count for first lvl
-	set $@KntUsers, $@KntUsers + getareausers("job_knt", 24, 32, 63, 71);		// get user count for second lvl + first lvl
-	set $@KntUsers, $@KntUsers + getareausers("job_knt", 124, 132, 163, 171);	// get user count for third lvl + second lvl + first lvl
-	if($@KntUsers > 0) end;
-
-	if ((getwaitingroomstate(33)) == 0) end;	// stops the rest of the script from running if there is no one in the waiting room;
 	killmonster "job_knt", "Knight1::OnMyMobDead";
 	killmonster "job_knt", "Knight2::OnMyMobDead";
 	killmonster "job_knt", "Knight3::OnMyMobDead";
 	warpwaitingpc "job_knt",43,146;
 	donpcevent "Knight1::OnEnable";
+	disablewaitingroomevent;
+	end;
+
+OnStart:
+	enablewaitingroomevent;
 	end;
 }
 
@@ -1406,7 +1407,9 @@ OnTimer181000:
 	end;
 
 OnTimer182000:
-	donpcevent "Windsor Benedict#knt::OnEnable";
+	stopnpctimer;
+	donpcevent "Knight1::OnDisable";
+	donpcevent "Windsor Benedict#knt::OnStart";
 	end;
 }
 
@@ -1465,8 +1468,9 @@ OnTimer181000:
 	end;
 
 OnTimer182000:
+	stopnpctimer;
 	donpcevent "Knight2::OnDisable";
-	donpcevent "Windsor Benedict#knt::OnEnable";
+	donpcevent "Windsor Benedict#knt::OnStart";
 	end;
 }
 
@@ -1511,7 +1515,7 @@ OnMyMobDead:
 		set KNIGHT_Q,8;
 		warp "prt_in",80,100;
 		donpcevent "Knight3::OnDisable";
-		donpcevent "Windsor Benedict::OnEnable";
+		donpcevent "Windsor Benedict#knt::OnStart";
 		stopnpctimer;
 	}
 	end;
@@ -1525,7 +1529,9 @@ OnTimer181000:
 	end;
 
 OnTimer182000:
-	donpcevent "Windsor Benedict#knt::OnEnable";
+	stopnpctimer;
+	donpcevent "Knight3::OnDisable";
+	donpcevent "Windsor Benedict#knt::OnStart";
 	end;
 }
 

+ 21 - 15
npc/jobs/2-1/wizard.txt

@@ -4,7 +4,7 @@
 //= (Aegis) Translated by yoshiki, converted by kobra_k88
 //= Further bugfixed and tested by Lupus
 //===== Current Version: ===================================== 
-//= 2.6
+//= 2.7
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -17,6 +17,8 @@
 //= 2.5b Fixed tests calling on a non-existant label in "Room of x#Failed" npcs. [L0ne_W0lf]
 //= 2.5c Bug fixes. Cleaned up some NPCs slightly. [L0ne_W0lf]
 //= 2.6 Fixed Water Room not warping on time-up. [L0ne_W0lf]
+//= 2.7 Now uses enable and disable waitingroomevent. [L0ne_W0lf]
+//= 	Other monir fixes to various NPCs.
 //============================================================ 
 
 gef_tower,111,37,4	script	Wizard Guildsman	70,{
@@ -1049,19 +1051,19 @@ job_wiz,50,165,4	script	Arena Assistant	700,{
 job_wiz,50,165,4	script	Waiting Room#wiz	700,{
 OnInit:
 	waitingroom "Waiting Room",20,"Waiting Room#wiz::OnStartArena",1;
+	enablewaitingroomevent;
 	end;
 
 OnStartArena:
-	set $@WzUsers, getareausers("job_wiz", 98, 154, 129, 185);			// get user count for first lvl
-	set $@WzUsers, $@WzUsers + getareausers("job_wiz", 100, 82, 131, 113);	// get user count for second lvl + first lvl
-	set $@WzUsers, $@WzUsers + getareausers("job_wiz", 30, 82, 61, 113);	// get user count for third lvl + second lvl + first lvl
-	if ($@WzUsers > 0) end;
-
-	if ((getwaitingroomstate(33)) == 0) end;		// finds out if there is anyone in the waiting room
 	killmonsterall "job_wiz";
 	warpwaitingpc "job_wiz",114,169;
 	donpcevent "Room of Water::OnEnable";
 	disablenpc "Waiting Room#wiz";
+	disablewaitingroomevent;
+	end;
+
+OnStart:
+	enablewaitingroomevent;
 	end;
 }
 
@@ -1153,7 +1155,8 @@ OnTimer185000:
 OnTimer186000:
 	disablenpc "Room of Water#Failed";
 	donpcevent "Room of Water::OnDisable";
-	donpcevent "Waiting Room#wiz::OnEnable";
+	donpcevent "Waiting Room#wiz::OnStart";
+	end;
 }
 
 job_wiz,1,2,1	script	Room of Water#Door	66,{
@@ -1218,7 +1221,8 @@ OnTimer62000:
 OnTimer63000:
 	disablenpc "Room of Water#Failed";
 	donpcevent "Room of Water#Door::OnDisable";
-	donpcevent "Waiting Room#wiz::OnEnable";
+	donpcevent "Waiting Room#wiz::OnStart";
+	end;
 }
 
 job_wiz,114,169,0	script	Room of Water#Failed	-1,16,16,{
@@ -1321,7 +1325,8 @@ OnTimer185000:
 OnTimer186000:
 	disablenpc "Room of Earth#Failed";
 	donpcevent "Room of Earth::OnDisable";
-	donpcevent "Waiting Room#wiz::OnEnable";
+	donpcevent "Waiting Room#wiz::OnStart";
+	end;
 }
 
 job_wiz,1,4,1	script	Room of Earth#Door	66,{
@@ -1388,7 +1393,8 @@ OnTimer62000:
 OnTimer63000:
 	disablenpc "Room of Earth#Failed";
 	donpcevent "Room of Earth#Door::OnDisable";
-	donpcevent "Waiting Room#wiz::OnEnable";
+	donpcevent "Waiting Room#wiz::OnStart";
+	end;
 }
 
 job_wiz,116,97,0	script	Room of Earth#Failed	-1,16,16,{
@@ -1489,7 +1495,8 @@ OnTimer185000:
 OnTimer186000:
 	disablenpc "Room of Fire#Failed";
 	donpcevent "Room of Fire::OnDisable";
-	donpcevent "Waiting Room#wiz::OnEnable";
+	donpcevent "Waiting Room#wiz::OnStart";
+	end;
 }
 
 job_wiz,1,6,1	script	Room of Fire#Door	66,{
@@ -1518,7 +1525,6 @@ OnMyMobDead:
 		mapannounce "job_wiz","Congratulations, " + strcharinfo(0) + ". You have passed the job change test.",bc_map;
 		set WIZ_Q,7;
 		donpcevent "Room of Fire#Door::OnDisable";
-		donpcevent "Room of Fire#Door::OnDisable";
 		donpcevent "Test Helper#wiz::OnEnable";
 		stopnpctimer;
 	}
@@ -1560,7 +1566,7 @@ OnTimer122000:
 OnTimer123000:
 	disablenpc "Room of Fire#Failed";
 	donpcevent "Room of Fire#Door::OnDisable";
-	donpcevent "Waiting Room#wiz::OnEnable";
+	donpcevent "Waiting Room#wiz::OnStart";
 }
 
 job_wiz,46,99,0	script	Room of Fire#Failed	-1,16,16,{
@@ -1606,7 +1612,7 @@ OnTimer7000:
 
 OnTimer9000:
 	donpcevent "Test Helper#wiz::OnDisable";
-	donpcevent "Waiting Room#wiz::OnEnable";
+	donpcevent "Waiting Room#wiz::OnStart";
 	stopnpctimer;
 }
 

+ 18 - 20
npc/jobs/2-2/alchemist.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= nestor_zulueta (Fusion), converted by Darkchild
 //===== Current Version: ===================================== 
-//= 2.5
+//= 2.7
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -13,6 +13,7 @@
 //= 2.5 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
 //=	No longer uses function "F_BlockHigh"
 //= 2.6 Corrected a bug in advanced class checking. [L0ne_W0lf]
+//= 2.7 Added missing checkweights. [L0ne_W0lf]
 //============================================================ 
 
 alde_alche,27,185,5	script	Alchemist Guildsman#am	744,{
@@ -764,16 +765,14 @@ L_AskQuestions:
 }
 
 alde_alche,13,15,7	script	Studying Man#am	750,{
-	//set max_max_c,1201;
-	//if (max_max_c == 1) {
-	//	mes "- Wait a minute! -";
-	//	mes "- Currently you are carrying -";
-	//	mes "- too many items with you. -";
-	//	mes "- Please come back again -";
-	//	mes "- after you store some items into kafra storage. -";
-	//	close;
-	//	return
-	//}
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute! -";
+		mes "- Currently you are carrying -";
+		mes "- too many items with you. -";
+		mes "- Please come back again -";
+		mes "- after you store some items into kafra storage. -";
+		close;
+	}
 	mes "[Darwin]";
 	if (BaseJob != Job_Merchant) {
 		if (BaseJob == Job_Alchemist) {
@@ -1736,15 +1735,14 @@ alde_alche,101,184,4	script	Master Alchemist#am	122,{
 }
 
 alde_alche,145,19,1	script	Chief Researcher#am	57,{
-	//set max_max_c,1201;
-	//if (max_max_c == 1) {
-	//	mes "- Wait a minute! -";
-	//	mes "- Currently you are carrying -";
-	//	mes "- too many items with you. -";
-	//	mes "- Please come back again -";
-	//	mes "- after you store some items into kafra storage. -";
-	//	close;
-	//}
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute! -";
+		mes "- Currently you are carrying -";
+		mes "- too many items with you. -";
+		mes "- Please come back again -";
+		mes "- after you store some items into kafra storage. -";
+		close;
+	}
 	if (ALCH_Q > 19 && ALCH_Q < 22) {
 		if (ALCH_Q == 20) {
 			mes "[Nicholas Flamel]";

+ 9 - 5
npc/jobs/2-2/crusader.txt

@@ -4,7 +4,7 @@
 //= Made by: Black Dragon
 //= Converted by: Shin
 //===== Current Version: ===================================== 
-//= 2.9a
+//= 3.0
 //===== Compatible With: ===================================== 
 //= eAthena  SVN
 //===== Description: ========================================= 
@@ -28,6 +28,7 @@
 //= 2.8 Fixed a little minor bug. [Samuray22]
 //= 2.9 Minor fixes, typos, an incorrect answer. Thanks to yyCC. [L0ne_W0lf]
 //= 2.9a Deleted unused variables. [Samuray22]
+//= 3.0 Updated waiting room. (Removes global var) [L0ne_W0lf]
 //============================================================
 
 
@@ -1199,16 +1200,19 @@ job_cru,24,187,2	script	Waiting Room#cr1	700,{
 
 OnInit:
 	disablenpc "Waiting Room#cr1";
-	waitingroom "Waiting Room",20,"Waiting Room#cr1::OnStart",1;
+	waitingroom "Waiting Room",20,"Waiting Room#cr1::OnStartArena",1;
+	enablewaitingroomevent;
 	end;
 
-OnStart:
-	if (getareausers("job_cru", 160, 16, 190, 190)) end;
-	if (!getwaitingroomstate(33)) end;
+OnStartArena:
 	warpwaitingpc "job_cru",168,21;
 	donpcevent "Monster Summon#cr0::OnStart";
+	disablewaitingroomevent;
 	end;
 
+OnStart:
+	enablewaitingroomevent;
+	end;
 }
 
 job_cru,168,17,0	script	Zombie Guide	-1,2,2,{

+ 10 - 6
npc/jobs/2-2/dancer.txt

@@ -4,7 +4,7 @@
 //= Kalen - Original jAthena
 //= Fredzilla - Converted, Lupus
 //===== Current Version: ===================================== 
-//= 3.2a
+//= 3.3
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -14,6 +14,7 @@
 //= 3.2 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
 //=	No longer uses function "F_BlockHigh"
 //= 3.2a Deleted unused variables. [Samuray22]
+//= 3.3 Updated waiting room. (Removes global var) [L0ne_W0lf]
 //============================================================
 
 comodo,180,153,4	script	Sonotora#1	90,{
@@ -871,10 +872,10 @@ job_duncer,95,93,4	script	Bijou#da	101,{
 job_duncer,32,154,1	script	Waiting Room#dance	66,{
 OnInit:
 	waitingroom "Waiting Room",20,"Waiting Room#dance::OnStartArena",1;
+	enablewaitingroomevent;
 	end;
 
 OnStartArena:
-	disablewaitingroomevent;
 	disablenpc "dance#up";
 	disablenpc "dance#down";
 	disablenpc "dance#left";
@@ -883,10 +884,7 @@ OnStartArena:
 	donpcevent "dance#return::OnDisable";
 	warpwaitingpc "job_duncer",69,110,1;
 	donpcevent "Bijou#dance_timer::OnEnable";
-	set .Dance_PID,$@warpwaitingpc[0];
-	if (attachrid(.Dance_PID) == 0) {
-		enablewaitingroomevent;
-	}
+	disablewaitingroomevent;
 	end;
 
 OnEnable:
@@ -1207,6 +1205,7 @@ OnTimer89000:
 	donpcevent "dance#return::OnEnable";
 	donpcevent "dance#poring::OnDisable";
 	stopnpctimer;
+	end;
 }
 
 job_duncer,69,110,0	script	dance#return	-1,1,4,{
@@ -1225,6 +1224,7 @@ OnDisable:
 OnEnable:
 	enablenpc "dance#return";
 	donpcevent "dance#return#2::OnEnable";
+	end;
 }
 
 job_duncer,66,110,0	script	dance#return#2	-1,1,1,{
@@ -1240,6 +1240,7 @@ OnDisable:
 OnEnable:
 	enablenpc "dance#return#2";
 	donpcevent "dance#return#3::OnEnable";
+	end;
 }
 
 job_duncer,72,110,0	script	dance#return#3	-1,1,1,{
@@ -1255,6 +1256,7 @@ OnDisable:
 OnEnable:
 	enablenpc "dance#return#3";
 	donpcevent "Waiting Room#dance::OnEnable";
+	end;
 }
 
 // Dance Move Triggers
@@ -1285,6 +1287,8 @@ OnMyMobDead:
 
 OnDisable:
 	killmonsterall "job_duncer";
+	end;
+
 }
 
 // Backup Dancers

+ 10 - 8
npc/jobs/2-2/sage.txt

@@ -5,7 +5,7 @@
 //= Unknown Translator (1.0)
 //= Darkchild (1.2)
 //===== Current Version: ===================================== 
-//= 2.4a
+//= 2.5
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -19,6 +19,7 @@
 //= 2.3 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
 //= 2.4 Fixes bug with first room monsters not being reset. [L0ne_W0lf]
 //= 2.4a Deleted unused variables. [Samuray22]
+//= 2.5 Updated waiting room. (Removes global var) [L0ne_W0lf]
 //============================================================ 
 
 yuno_in02,38,61,5	script	Dean of the Academy#sa	743,{
@@ -2469,23 +2470,18 @@ job_sage,50,165,4	script	Waiting Room#sg	700,{
 OnInit:
 	disablenpc "Waiting Room#sg";
 	waitingroom "Waiting Room",20,"Waiting Room#sg::OnStartArena",1;
+	enablewaitingroomevent;
 	end;
 
 OnStartArena:
-	disablewaitingroomevent;
 	warpwaitingpc "job_sage",116,97;
-	set .Sage_pid,$@warpwaitingpc[0];
-	if (attachrid(.Sage_pid) == 0) {
-		enablewaitingroomevent;
-		end;
-	}
 	donpcevent "Arena#1::OnEnable";
+	disablewaitingroomevent;
 	end;
 
 OnEnable:
 	enablewaitingroomevent;
 	end;
-
 }
 
 -	script	Arena#1	66,{
@@ -2580,6 +2576,8 @@ OnTimer185000:
 OnTimer186000:
 	disablenpc "Arena#1";
 	donpcevent "Waiting Room#sg::OnEnable";
+	stopnpctimer;
+	end;
 }
 
 -	script	Arena#2	-1,{
@@ -2680,6 +2678,8 @@ OnTimer185000:
 OnTimer186000:
 	disablenpc "Arena#2";
 	donpcevent "Waiting Room#sg::OnEnable";
+	stopnpctimer;
+	end;
 }
 
 -	script	Arena#Doorkeeper	-1,{
@@ -2745,6 +2745,8 @@ OnTimer62000:
 OnTimer63000:
 	disablenpc "Arena#Doorkeeper";
 	donpcevent "Waiting Room#sg::OnEnable";
+	stopnpctimer;
+	end;
 }
 
 -	script	Arena#3	-1,{