Browse Source

* Updated Sorcerer and Wanderer job quests to their latest versions (fixes bugreport:6966).
* Follow-up r16955: fixed an item_db mistake (bugreport:6967).

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

euphyy 12 years ago
parent
commit
ad54188296
5 changed files with 238 additions and 568 deletions
  1. 1 1
      db/pre-re/item_db.txt
  2. 1 1
      db/re/item_db.txt
  3. 2 4
      npc/re/jobs/3-1/mechanic.txt
  4. 89 254
      npc/re/jobs/3-2/sorcerer.txt
  5. 145 308
      npc/re/jobs/3-2/wanderer.txt

+ 1 - 1
db/pre-re/item_db.txt

@@ -987,7 +987,7 @@
 1821,Seismic_Fist,Seismic Fist,4,20,,650,80,,1,3,0x00008100,7,2,2,3,75,1,12,{ bonus3 bAutoSpell,"SA_SEISMICWEAPON",5,10; },{},{}
 1822,Combo_Battle_Glove,Combo Battle Glove,4,20,,500,30,,1,4,0x00008100,7,2,2,3,60,1,12,{ bonus2 bSkillAtk,"MO_TRIPLEATTACK",15; bonus2 bSkillAtk,"MO_CHAINCOMBO",15; bonus2 bSkillAtk,"MO_COMBOFINISH",20; },{},{}
 1823,BF_Knuckle1,Valorous Battle Fist,4,20,,0,30,,1,0,0x00008100,7,2,2,3,80,1,12,{ bonus bStr,2; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus4 bAutoSpell,"CH_SOULCOLLECT",1,5,0; bonus bUnbreakableWeapon,0; },{},{}
-1824,BF_Knuckle2,Brave Battle Fist,4,20,,0,30,,1,0,0x00008100,7,2,2,3,80,1,12,{ bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bCastrate,"MO_EXTREMITYFIST",-25; autobonus "{ bonus2 bCastrate,'MO_EXTREMITYFIST',-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }"; bonus bUnbreakableWeapon,0; },{},{}
+1824,BF_Knuckle2,Brave Battle Fist,4,20,,0,30,,1,0,0x00008100,7,2,2,3,80,1,12,{ bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bCastrate,"MO_EXTREMITYFIST",-25; autobonus "{ bonus2 bCastrate,\"MO_EXTREMITYFIST\",-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }"; bonus bUnbreakableWeapon,0; },{},{}
 1825,Horn_Of_Hilthrion,Horn of Hillslion,4,20,,600,95,,1,3,0x00008000,2,2,2,3,60,1,12,{ bonus3 bAutoSpell,"NPC_CRITICALWOUND",1,100; bonus4 bAutoSpellOnSkill,"CH_PALMSTRIKE","MO_INVESTIGATE",1,100; bonus3 bAutoSpell,"MO_CALLSPIRITS",5,100; },{},{}
 1826,Krieger_Knuckle1,Glorious Claw,4,20,,0,30,,1,0,0x00008100,7,2,2,4,80,1,12,{ bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,"MO_INVESTIGATE",5,(getrefine()*10-50); bonus3 bAutoSpell,"AL_DECAGI",1,(getrefine()*10-50); } },{},{}
 1827,Krieger_Knuckle2,Glorious Fist,4,20,,0,30,,1,0,0x00008100,7,2,2,4,80,1,12,{ bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-4)*(getrefine()-4); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bCastrate,"MO_EXTREMITYFIST",-100; bonus4 bautospellonskill,"MO_EXPLOSIONSPIRITS","CH_SOULCOLLECT",1,1000; } },{},{}

+ 1 - 1
db/re/item_db.txt

@@ -1050,7 +1050,7 @@
 1821,Seismic_Fist,Seismic Fist,4,20,,650,80,,1,3,0x00008100,7,2,2,3,75,1,12,{ bonus3 bAutoSpell,"SA_SEISMICWEAPON",5,10; },{},{}
 1822,Combo_Battle_Glove,Combo Battle Glove,4,20,,500,30,,1,4,0x00008100,7,2,2,3,60,1,12,{ bonus2 bSkillAtk,"MO_TRIPLEATTACK",15; bonus2 bSkillAtk,"MO_CHAINCOMBO",15; bonus2 bSkillAtk,"MO_COMBOFINISH",20; },{},{}
 1823,BF_Knuckle1,Valorous Battle Fist,4,20,,0,30,,1,0,0x00008100,7,2,2,3,80,1,12,{ bonus bStr,2; bonus bAgi,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus4 bAutoSpell,"CH_SOULCOLLECT",1,5,0; bonus bUnbreakableWeapon,0; },{},{}
-1824,BF_Knuckle2,Brave Battle Fist,4,20,,0,30,,1,0,0x00008100,7,2,2,3,80,1,12,{ bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bVariableCastrate,"MO_EXTREMITYFIST",-25; autobonus "{ bonus2 bVariableCastrate,'MO_EXTREMITYFIST',-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }"; bonus bUnbreakableWeapon,0; },{},{}
+1824,BF_Knuckle2,Brave Battle Fist,4,20,,0,30,,1,0,0x00008100,7,2,2,3,80,1,12,{ bonus bStr,2; bonus bInt,1; bonus2 bAddRace,RC_DemiHuman,95; bonus2 bVariableCastrate,"MO_EXTREMITYFIST",-25; autobonus "{ bonus2 bVariableCastrate,\"MO_EXTREMITYFIST\",-100; }",50,6000,BF_WEAPON,"{ specialeffect2 EF_SUFFRAGIUM; }"; bonus bUnbreakableWeapon,0; },{},{}
 1825,Horn_Of_Hilthrion,Horn of Hillslion,4,20,,600,95,,1,3,0x00008000,2,2,2,3,60,1,12,{ bonus3 bAutoSpell,"NPC_CRITICALWOUND",1,100; bonus4 bAutoSpellOnSkill,"CH_PALMSTRIKE","MO_INVESTIGATE",1,100; bonus3 bAutoSpell,"MO_CALLSPIRITS",5,100; },{},{}
 1826,Krieger_Knuckle1,Glorious Claw,4,20,,0,30,,1,0,0x00008100,7,2,2,4,80,1,12,{ bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus3 bAutoSpell,"MO_INVESTIGATE",5,(getrefine()*10-50); bonus3 bAutoSpell,"AL_DECAGI",1,(getrefine()*10-50); } },{},{}
 1827,Krieger_Knuckle2,Glorious Fist,4,20,,0,30,,1,0,0x00008100,7,2,2,4,80,1,12,{ bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus2 bVariableCastrate,"MO_EXTREMITYFIST",-100; bonus4 bautospellonskill,"MO_EXPLOSIONSPIRITS","CH_SOULCOLLECT",1,1000; bonus bFixedCastrate,-100; } },{},{}

+ 2 - 4
npc/re/jobs/3-1/mechanic.txt

@@ -652,13 +652,11 @@ OnTouch:
 jupe_core2,288,142,3	script	#Door	844,1,1,{
 	end;
 OnInit:
-	hideonnpc "#Door";
-	end;
 OnDisable:
-	hideonnpc "#Door";
+	disablenpc "#Door";
 	end;
 OnEnable:
-	hideoffnpc "#Door";
+	enablenpc "#Door";
 	specialeffect EF_MAPPILLAR;
 	initnpctimer;
 	end;

+ 89 - 254
npc/re/jobs/3-2/sorcerer.txt

@@ -1,40 +1,39 @@
 //===== rAthena Script ======================================= 
 // Sorcerer Job change Quest
 //===== By: ================================================== 
-//= Masao
-//= Credits: Muad_Dib
+//= Muad_Dib
 //===== Current Version: ===================================== 
-//= 1.1
+//= 1.2
 //===== Compatible With: ===================================== 
 //= Any rAthena SVN
 //===== Description: ========================================= 
-//= [Translated from the Official]
+//= [Official Conversion]
 //= Job change Quest from Sage / Professor -> Sorcerer.
 //===== Additional Comments: ================================= 
-//= 1.0 First Version.
+//= 1.0 First Version. [Masao]
 //= 1.1 Cleaning. [Euphy]
+//= 1.2 Updated script, optimized. [Euphy]
 //============================================================
 
 gef_tower,102,34,5	script	Merito	742,{
-
-	if(checkweight(1201,1) == 0){
+	mes "[Merito]";
+	if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
 		mes "You packed so much in your bag. Try again after emptying your bag.";
 		close;
 	}
-	mes "[Merito]";
-	if (Class == Job_Sorcerer || Class == Job_Sorcerer_T || Class == Job_Baby_Sorcerer){
+	if (Class == Job_Sorcerer || Class == Job_Sorcerer_T || Class == Job_Baby_Sorcerer) {
 		mes "Please get on with the sprits well~ You should~!";
 		close;
 	}
-	if (JobLevel < 50 || SkillPoint != 0 || BaseLevel < 99){
+	if (BaseLevel < 99 || JobLevel < 50 || SkillPoint != 0) {
 		mes "Wow~ you are a young adventurer. I envy you.";
 		close;
 	}
-	if ((Class != Job_Sage) && (Class != Job_Professor) && (Class != Job_Baby_Sage)){
-		mes "Wow~ you are a young adventurer. I envy you.";
+	if (BaseJob != Job_Sage) {
+		mes "Ahh~ I think you don't need to have a conversation with me.";
 		close;
 	}
-	if (job_soc < 1){
+	if (job_soc == 0) {
 		mes "Welcome. What can I help you with?";
 		next;
 		select("Do you know about Sorcerers?");
@@ -44,7 +43,7 @@ gef_tower,102,34,5	script	Merito	742,{
 		mes "[Merito]";
 		mes "What made you want to be a sorcerer?";
 		next;
-		if(select("The spirit of fire led me here.:The spirit of water led me here.:The spirit of earth led me here:The spirit of meat led me here.")==4) {
+		if(select("The spirit of fire led me here.:The spirit of water led me here.:The spirit of earth led me here:The spirit of meat led me here.") == 4) {
 			mes "[Merito]";
 			mes "That kind of spirit doesn't exist!";
 			close;
@@ -56,27 +55,26 @@ gef_tower,102,34,5	script	Merito	742,{
 		mes "[Merito]";
 		mes "Hmm... Then first, can you write down your name on this list?";
 		next;
-		if(select("Write name.:I won't.")==2){
+		if(select("Write name.:I won't.") == 2) {
 			mes "[Merito]";
 			mes "Well, okay. See you again when you get a chance.";
 			close;
 		}
 		mes "[Merito]";
-		mes "So, you are ["+strcharinfo(0)+"].";
+		mes "So, you are [" + strcharinfo(0) + "].";
 		next;
 		mes "[Merito]";
 		mes "Give me a second to register your name.";
 		mes "Talk to me again in a second.";
 		set job_soc,1;
 		close;
-	}
-	else if (job_soc == 1){
+	} else if (job_soc == 1) {
 		mes "Good, then I'll give you a short explanation about the Sorcerer.";
 		next;
 		mes "[Merito]";
-		mes "["+strcharinfo(0)+"], can you handle magic skillfully?";
+		mes "[" + strcharinfo(0) + "], can you handle magic skillfully?";
 		next;
-		if(select("Yes, I can.:No, I'm not really good at it.")==2){
+		if(select("Yes, I can.:No, I'm not really good at it.") == 2) {
 			mes "[Merito]";
 			mes "What!? You don't know how to use magic?";
 			mes "What are you doing here then? Get out of here. Right now!";
@@ -86,7 +84,7 @@ gef_tower,102,34,5	script	Merito	742,{
 		mes "Okay, that should be obvious.";
 		mes "Of course, Sorcerers use magic, too. But, do you know the main difference Sorcerers have from other magical jobs?";
 		next;
-		switch(select("They know how to sing.:They're all old fogies.:They can deal with the spirits.")){
+		switch(select("They know how to sing.:They're all old fogies.:They can deal with the spirits.")) {
 		case 1:
 			mes "[Merito]";
 			mes "Well maybe some but that's not the main difference.";
@@ -110,7 +108,7 @@ gef_tower,102,34,5	script	Merito	742,{
 		mes "[Merito]";
 		mes "Well, it's all up to you. What are you going to do?";
 		next;
-		switch(select("I will take the test.:I'll do it later.")){
+		switch(select("I will take the test.:I'll do it later.")) {
 		case 1:
 			mes "[Merito]";
 			mes "Okay. ";
@@ -123,44 +121,41 @@ gef_tower,102,34,5	script	Merito	742,{
 			mes "What? I was sure that you wanted to become a Sorcerer.";
 			close;
 		}
-	}
-	else if (job_soc > 1){
-		mes "How about your test? Well, Karacas is a little lazy, so that might bother you some...";
+	} else {
+		mes "How about your test? Well, Karacas is a little lazy, so that might bother you some... kkk";
 		close;
 	}
 }
 
 gef_tower,113,161,5	script	Karacas	754,{
-
-	if(checkweight(1201,1) == 0){
-		mes "You packed so much in your bag. Try again after emptying your bag.";
+	mes "[Karacas]";
+	if (checkweight(1201,1) == 0 || MaxWeight - Weight < 1000) {
+		mes "Oh, it seems that you're too heavy. Empty your bag and then come again.";
 		close;
 	}
-	mes "[Karacas]";
-	if (Class == Job_Sorcerer || Class == Job_Sorcerer_T || Class == Job_Baby_Sorcerer){
+	if (Class == Job_Sorcerer || Class == Job_Sorcerer_T || Class == Job_Baby_Sorcerer) {
 		mes "You look happy. Have a great journey.";
 		close;
 	}
-	if (JobLevel < 50 || SkillPoint != 0 || BaseLevel < 99){
+	if ((JobLevel < 50) || (SkillPoint != 0) || (BaseLevel < 99)) {
 		mes "Is there anything I can do for you?";
 		close;
 	}
-	if ((Class != Job_Sage) && (Class != Job_Professor) && (Class != Job_Baby_Sage)){
-		mes "Is there anything I can do for you?";
+	if (BaseJob != Job_Sage) {
+		mes "I belong to the Sorcerer association. I don't think you have any business with me.";
 		close;
 	}
-	if (job_soc < 2){
-		mes "More people are visiting Geffen Tower thesedays.";
+	if (job_soc < 2) {
+		mes "More people are visiting Geffen Tower these days.";
 		close;
-	}
-	else if (job_soc == 2){
+	} else if (job_soc == 2) {
 		mes "....";
 		next;
 		select("Ah... excuse me~");
 		mes "[Karacas]";
 		mes "... (Z z z~)";
 		next;
-		selecT("Hm hm!!!~");
+		select("Hm hm!!!~");
 		mes "[Karacas]";
 		mes "Aaaak!! ";
 		mes "Oh, my... ";
@@ -174,9 +169,9 @@ gef_tower,113,161,5	script	Karacas	754,{
 		mes "The list... has already arrived.";
 		next;
 		mes "[Karacas]";
-		mes "So, you are ["+strcharinfo(0)+"]... right?";
+		mes "So, you are [" + strcharinfo(0) + "]... right?";
 		next;
-		if(select("Yes, I am.:No, I'm not!")==2){
+		if(select("Yes, I am.:No, I'm not!") == 2) {
 			mes "[Karacas]";
 			mes "Oh, there must be some mistake in the list, I think. Will you come again later?";
 			close;
@@ -234,9 +229,8 @@ gef_tower,113,161,5	script	Karacas	754,{
 		set job_soc,3;
 		changequest 12096,12097;
 		close;
-	}
-	else if (job_soc == 3){
-		if ((countitem(992) > 2) && (countitem(991) > 2) && (countitem(990) > 2) && (countitem(993) > 2)){
+	} else if (job_soc == 3) {
+		if (countitem(992) > 2 && countitem(991) > 2 && countitem(990) > 2 && countitem(993) > 2) {
 			mes "Oh, you have all the materials.";
 			next;
 			select("What should I do next?");
@@ -294,7 +288,7 @@ gef_tower,113,161,5	script	Karacas	754,{
 			mes "[Karacas]";
 			mes "Have any questions?";
 			next;
-			if(select("No.:Please explain it again.")==2){
+			if(select("No.:Please explain it again.") == 2) {
 				mes "[Karacas]";
 				mes "Haha, then can I have a cup of water for a minute? Please come and find me again later.";
 				next;
@@ -318,18 +312,17 @@ gef_tower,113,161,5	script	Karacas	754,{
 		mes "[Karacas]";
 		mes "When you bring these basic things, I'll guide you to the next step.";
 		close;
-	}
-	else if (job_soc == 4){
-		if (countitem(6276) && countitem(6278) && countitem(6277)){
+	} else if (job_soc == 4) {
+		if (countitem(6276) && countitem(6278) && countitem(6277)) {
 			mes "Wow~ your skill is good.";
 			mes "I thought you'd be overwhelmed by the spirits but you've managed to get the effective medicine!";
 			next;
 			select("Is this all I need to do?");
 			mes "[Karacas]";
 			mes "Well done. First, I will organize the miraculous medicine so please wait a moment.";
-			delitem 6276,1;
-			delitem 6278,1;
-			delitem 6277,1;
+			delitem 6276,1; //Clear_Reagent
+			delitem 6278,1; //Black_Reagent
+			delitem 6277,1; //Red_Reagent
 			set job_soc,5;
 			completequest 12098;
 			close;
@@ -339,247 +332,89 @@ gef_tower,113,161,5	script	Karacas	754,{
 		mes "[Karacas]";
 		mes "Don't give up and keep on trying~";
 		close;
-	}
-	else if (job_soc == 5){
+	} else if (job_soc == 5) {
 		mes "Originally my teacher needs to check the Sorcerer job change but after he went out to find the spirit of fish, I can't see him. So I'll check it myself.";
 		next;
 		mes "[Karacas]";
-		mes "Dear ["+strcharinfo(0)+"],";
+		mes "Dear [" + strcharinfo(0) + "],";
 		mes "you went around the rough wilds to open the door as a Sorcerer and passed all the requirements that our Academy has given.";
 		next;
 		mes "[Karacas]";
 		mes "Of course it is just a beginning, we don't know which spirit you're going to commune with or what kind of hardships await you.";
 		next;
 		mes "[Karacas]";
-		mes "But with the ability you've shown until now, you will be capable to do anything from now on. Dear ["+strcharinfo(0)+"]";
+		mes "But with the ability you've shown until now, you will be capable to do anything from now on. Dear [" + strcharinfo(0) + "]";
 		next;
-		mes "[Karacas]";
+		mes "[Kalakas]";
+		if (BaseLevel < 99 || JobLevel < 50 || SkillPoint) {
+			mes "Before I appointed you the need job, please check on your own body status. ";
+			next;
+			mes "[Kalakas]";
+			mes "You must have the etiquette of your job now before you accept the new job! ";
+			close;
+		}
+		if (ismounting()) {
+			mes "Good, before we get started...";
+			mes "Please unequip your riding pet~";
+			close;
+		}
 		mes "Moreover, I formally acknowledge that you've completed all the job transfer tests of the Sorcerer Academy.";
 		next;
 		mes "[Karacas]";
-		mes "Congratulations, ["+strcharinfo(0)+"]";
+		mes "Congratulations, [" + strcharinfo(0) + "]";
 		jobchange roclass(eaclass()|EAJL_THIRD);
-		getitem 5756,1;
-		getitem 2795,1;
+		getitem 5756,1; //Wind_Whisper
+		getitem 2795,1; //Green_Apple_Ring
 		next;
 		mes "[Karacas]";
 		mes "I hope that you gain more communion with spirits from now on.";
 		close;
 	}
 }
+-	script	Spirit Detecting Staff#0	-1,{
 
-thor_v01,64,252,0	script	Spirit Detecting Staff#1	836,{
+	if (strnpcinfo(4) == "thor_v01") setarray .@id[0],990,994,6276,6278;
+	else if (strnpcinfo(4) == "ice_dun01") setarray .@id[0],991,995,6278,6276;
+	else if (strnpcinfo(4) == "mjo_dun03") setarray .@id[0],993,997,6277,6276;
+	else if (strnpcinfo(4) == "gon_dun02") setarray .@id[0],992,996,6277,6278;
 
-	if ((job_soc == 4) && (countitem(990) > 2)){
+	if (job_soc == 4 && countitem(.@id[0]) > 2) {
 		progressbar "ffff00",5;
-		set .@rand,rand(1,70);
-		if (.@rand < 10){
-			if ((job_soc == 4) && (countitem(990) > 2) && (countitem(6276) < 1)){
-				mes "You got a reagent by communicating with an unseen spirit.";
-				delitem 990,3;
-				getitem 6276,1;
-				close;
-			}else if ((job_soc == 4) && (countitem(990) > 2) && (countitem(6276) > 0)){
-				mes "It doesn't seem like you got anything special from the spirits.";
-				delitem 990,3;
-				close;
-			}
-			mes "The spirit is mad at you.";
-			close;
-		}else if ((.@rand > 9) && (.@rand < 16)){
-			if ((job_soc == 4) && (countitem(990) > 2) && (countitem(6278) < 1)){
+		delitem .@id[0],3; //Boody_Red,Crystal_Blue,Yellow_Live,Wind_Of_Verdure
+		set .@soc_ran, rand(1,70);
+		if (.@soc_ran < 10) {
+			if (countitem(.@id[2]) == 0) {
 				mes "You got a reagent by communicating with an unseen spirit.";
-				delitem 990,3;
-				getitem 6278,1;
-				close;
-			}else if ((job_soc == 4) && (countitem(990) > 2) && (countitem(6278) > 0)){
-				mes "It doesn't seem like you got anything special from the spirits.";
-				delitem 990,3;
-				close;
-			}
-			mes "The spirit is mad at you.";
-			close;
-		}else if (.@rand == 56){
-			if ((job_soc == 4) && (countitem(990) > 2)){
-				mes "The spirit combined the property stones into a huge property stone.";
-				delitem 990,3;
-				getitem 994,1;
+				getitem .@id[2],1; //Clear_Reagent,Black_Reagent,Red_Reagent
 				close;
 			}
-			mes "The spirit is mad at you.";
+			mes "It doesn't seem like you got anything special from the spirits.";
 			close;
-		}
-		mes "You used the property stones but it looks like you failed to communicate with the spirits.";
-		delitem 990,3;
-		close;
-	}else if ((job_soc == 4) && (countitem(990) < 3)){
-		mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
-		next;
-		mes "If you have the suitable property stones, you should be able to commune with the spirits.";
-		close;
-	}
-	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
-	close;
-}
-
-ice_dun01,274,274,0	script	Spirit Detecting Staff#2	836,{
-
-	if ((job_soc == 4) && (countitem(991) > 2)){
-		progressbar "ffff00",5;
-		set .@rand,rand(1,70);
-		if (.@rand < 10){
-			if ((job_soc == 4) && (countitem(991) > 2) && (countitem(6278) < 1)){
+		} else if (.@soc_ran > 9 && .@soc_ran < 16) {
+			if (countitem(.@id[3]) == 0) {
 				mes "You got a reagent by communicating with an unseen spirit.";
-				delitem 991,3;
-				getitem 6278,1;
-				close;
-			}else if ((job_soc == 4) && (countitem(991) > 2) && (countitem(6278) > 0)){
-				mes "It doesn't seem like you got anything special from the spirits.";
-				delitem 991,3;
+				getitem .@id[3],1; //Clear_Reagent,Black_Reagent,Red_Reagent
 				close;
 			}
-			mes "The spirit is mad at you.";
+			mes "It doesn't seem like you got anything special from the spirits.";
 			close;
-		}else if ((.@rand > 9) && (.@rand < 16)){
-			if ((job_soc == 4) && (countitem(991) > 2) && (countitem(6276) < 1)){
-				mes "You got a reagent by communicating with an unseen spirit.";
-				delitem 991,3;
-				getitem 6276,1;
-				close;
-			}else if ((job_soc == 4) && (countitem(991) > 2) && (countitem(6276) > 0)){
-				mes "It doesn't seem like you got anything special from the spirits.";
-				delitem 991,3;
-				close;
-			}
-			mes "The spirit is mad at you.";
+		} else if (.@soc_ran == 56) {
+			mes "The spirit combined the property stones into a huge property stone.";
+			getitem .@id[1],1; //Flame_Heart,Mistic_Frozen,Great_Nature,Rough_Wind
 			close;
-		}else if (.@rand == 56){
-			if ((job_soc == 4) && (countitem(991) > 2)){
-				mes "The spirit combined the property stones into a huge property stone.";
-				delitem 991,3;
-				getitem 995,1;
-				close;
-			}
-			mes "The spirit is mad at you.";
+		} else {
+			mes "You used the property stones but it looks like you failed to communicate with the spirits.";
 			close;
 		}
-		mes "You used the property stones but it looks like you failed to communicate with the spirits.";
-		delitem 991,3;
-		close;
-	}else if ((job_soc == 4) && (countitem(991) < 3)){
-		mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
-		next;
-		mes "If you have the suitable property stones, you should be able to commune with the spirits.";
-		close;
 	}
-	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
-	close;
-}
-
-mjo_dun03,200,141,0	script	Spirit Detecting Staff#3	836,{
-
-	if ((job_soc == 4) && (countitem(993) > 2)){
-		progressbar "ffff00",5;
-		set .@rand,rand(1,70);
-		if (.@rand < 10){
-			if ((job_soc == 4) && (countitem(993) > 2) && (countitem(6277) < 1)){
-				mes "You got a reagent by communicating with an unseen spirit.";
-				delitem 993,3;
-				getitem 6277,1;
-				close;
-			}else if ((job_soc == 4) && (countitem(993) > 2) && (countitem(6277) > 0)){
-				mes "It doesn't seem like you got anything special from the spirits.";
-				delitem 993,3;
-				close;
-			}
-			mes "The spirit is mad at you.";
-			close;
-		}else if ((.@rand > 9) && (.@rand < 16)){
-			if ((job_soc == 4) && (countitem(993) > 2) && (countitem(6276) < 1)){
-				mes "You got a reagent by communicating with an unseen spirit.";
-				delitem 993,3;
-				getitem 6276,1;
-				close;
-			}else if ((job_soc == 4) && (countitem(993) > 2) && (countitem(6276) > 0)){
-				mes "It doesn't seem like you got anything special from the spirits.";
-				delitem 993,3;
-				close;
-			}
-			mes "The spirit is mad at you.";
-			close;
-		}else if (.@rand == 56){
-			if ((job_soc == 4) && (countitem(993) > 2)){
-				mes "The spirit combined the property stones into a huge property stone.";
-				delitem 993,3;
-				getitem 997,1;
-				close;
-			}
-			mes "The spirit is mad at you.";
-			close;
-		}
-		mes "You used the property stones but it looks like you failed to communicate with the spirits.";
-		delitem 993,3;
-		close;
-	}else if ((job_soc == 4) && (countitem(993) < 3)){
-		mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
+	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits.";
+	if (job_soc == 4 && countitem(.@id[0]) < 3) {
 		next;
 		mes "If you have the suitable property stones, you should be able to commune with the spirits.";
-		close;
 	}
-	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
 	close;
 }
-
-gon_dun02,195,190,0	script	Spirit Detecting Staff#4	836,{
-
-	if ((job_soc == 4) && (countitem(992) > 2)){
-		progressbar "ffff00",5;
-		set .@rand,rand(1,70);
-		if (.@rand < 10){
-			if ((job_soc == 4) && (countitem(992) > 2) && (countitem(6277) < 1)){
-				mes "You got a reagent by communicating with an unseen spirit.";
-				delitem 992,3;
-				getitem 6277,1;
-				close;
-			}else if ((job_soc == 4) && (countitem(992) > 2) && (countitem(6277) > 0)){
-				mes "It doesn't seem like you got anything special from the spirits.";
-				delitem 992,3;
-				close;
-			}
-			mes "The spirit is mad at you.";
-			close;
-		}else if ((.@rand > 9) && (.@rand < 16)){
-			if ((job_soc == 4) && (countitem(992) > 2) && (countitem(6278) < 1)){
-				mes "You got a reagent by communicating with an unseen spirit.";
-				delitem 992,3;
-				getitem 6278,1;
-				close;
-			}else if ((job_soc == 4) && (countitem(992) > 2) && (countitem(6278) > 0)){
-				mes "It doesn't seem like you got anything special from the spirits.";
-				delitem 992,3;
-				close;
-			}
-			mes "The spirit is mad at you.";
-			close;
-		}else if (.@rand == 56){
-			if ((job_soc == 4) && (countitem(992) > 2)){
-				mes "The spirit combined the property stones into a huge property stone.";
-				delitem 992,3;
-				getitem 996,1;
-				close;
-			}
-			mes "The spirit is mad at you.";
-			close;
-		}
-		mes "You used the property stones but it looks like you failed to communicate with the spirits.";
-		delitem 992,3;
-		close;
-	}else if ((job_soc == 4) && (countitem(992) < 3)){
-		mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
-		next;
-		mes "If you have the suitable property stones, you should be able to commune with the spirits.";
-		close;
-	}
-	mes "I can see the detecting staff that's been installed by the Sorcerer Union to communicate with the spirits .";
-	close;
-}
+thor_v01,64,252,0	duplicate(Spirit Detecting Staff#0)	Spirit Detecting Staff#1	836
+ice_dun01,274,274,0	duplicate(Spirit Detecting Staff#0)	Spirit Detecting Staff#2	836
+mjo_dun03,200,141,0	duplicate(Spirit Detecting Staff#0)	Spirit Detecting Staff#3	836
+gon_dun02,195,190,0	duplicate(Spirit Detecting Staff#0)	Spirit Detecting Staff#4	836

+ 145 - 308
npc/re/jobs/3-2/wanderer.txt

@@ -3,17 +3,18 @@
 //===== By: ================================================== 
 //= Muad_Dib, Meyraw
 //===== Current Version: ===================================== 
-//= 1.3
+//= 1.4
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
-//= Official Script
+//= [Official Conversion]
 //= Job change Quest from Dancer / Gypsy -> Wanderer.
 //===== Additional Comments: ================================= 
 //= 1.0 First Version.
 //= 1.1 Updated dialogue to be more official / accurate. Huge thanks to Muad_Dib! [Masao]
 //= 1.2 Fixed an endless loop in dialogue.
 //= 1.3 Fixed a typo and added checkquest. [Joseph]
+//= 1.4 Updated script, optimized. [Euphy]
 //============================================================
 
 xmas,162,209,5	script	Aspiring Wanderer, Soy	714,{
@@ -28,7 +29,7 @@ xmas,162,209,5	script	Aspiring Wanderer, Soy	714,{
 		mes "[Soy]";
 		mes "Don't make fun of me Mimi~";
 		mes "I have dreamed of being at Dancer Kim's stage for a very long time!";
-		emotion e_shy;
+		emotion e_shy,0,"Aspiring Wanderer, Soy";
 		next;
 		mes "[Soy]";
 		mes "I might lose my senses if I really see her dancing like a beautiful angel sent from above.";
@@ -40,10 +41,10 @@ xmas,162,209,5	script	Aspiring Wanderer, Soy	714,{
 		mes "[Mimi]";
 		mes "But I understand you.";
 		mes "Many people are looking forward to meeting the best Wanderer in the world.";
-		if (Class != Job_Baby_Dancer && Class != Job_Dancer && Class != Job_Gypsy && BaseLevel != 99) close;
+		if (BaseJob != Job_Dancer || BaseLevel < 99) close;
 		next;
 		select("Dancer Kim?:Wanderer?");
-		emotion e_omg;
+		emotion e_omg,0,"Aspiring Wanderer, Soy";
 		mes "[Soy]";
 		mes "What? You don't know the famous Wanderer, Dancer Kim?";
 		mes "Oh my, oh my!!!";
@@ -51,7 +52,7 @@ xmas,162,209,5	script	Aspiring Wanderer, Soy	714,{
 		mes "Oh, no!";
 		next;
 		mes "[Mimi]";
-		mes "A Wanderer is a knee-spirited person who wanders about the world with the wind and the stars.";
+		mes "A Wanderer is a free-spirited person who wanders about the world with the wind and the stars.";
 		mes "Rhythm and Music accompany them wherever they go.";
 		next;
 		mes "[Mimi]";
@@ -64,131 +65,60 @@ xmas,162,209,5	script	Aspiring Wanderer, Soy	714,{
 		mes "If you are a true Dancer, you must be struck with her Dance!";
 		mes "Will I ever meet a Maestro like Guitar Song someday, Mimi?";
 		next;
-		emotion e_heh;
+		emotion e_heh,0,"Aspiring Wanderer, Soy";
 		mes "[Mimi]";
 		mes "Just hang in there, Soy. Ha ha.";
 		next;
-		if (select("Where is the performance?:End the conversation.") == 1) {
+		switch(select("Where is the performance?:End the conversation.")) {
+		case 1:
 			mes "[Soy]";
 			mes "Right in front of the Christmas tree!";
 			mes "White snow, beautiful melody, and my captivating dance.";
 			mes "Don't you think it would be a great performance?";
 			set job_wan,1;
 			close;
-		}
-		mes "[Mimi]";
-		mes "If you are interested in becoming a Wanderer, just come back to me anytime. Although I'm not perfect, I will try my best to help you.";
-		close;
-	}
-	if (job_wan == 1) {
-		mes "[Soy]";
-		mes "The performance will be held in front of the Christmas tree here in Lutie.";
-		mes "I can't wait! Ah~ I'm losing my senses, Mimi.";
-		close;
-	}
-	if (job_wan == 10) {
-		mes "[Soy]";
-		mes "<Nollio> is the best!!";
-		close;
-	}
-	mes "[Soy]";
-	mes "I want to become an famous Wanderer too, Mimi.";
-	close;
-}
-
-xmas,163,209,3	script	Aspiring Wanderer, Mimi	714,{
-	if (job_wan == 0) {
-		mes "[Soy]";
-		mes "Mimi, what should I do?";
-		mes "My heart is beating so fast. Ahhh~";
-		next;
-		mes "[Mimi]";
-		mes "Why is you face so flushed? Ha ha ha.";
-		next;
-		mes "[Soy]";
-		mes "Don't make fun of me Mimi~";
-		mes "I have dreamed of being at Dancer Kim's stage for a very long time!";
-		emotion e_shy,0,"Aspiring Wanderer, Soy";
-		next;
-		mes "[Soy]";
-		mes "I might lose my senses if I really see her dancing like a beautiful angel sent from above.";
-		next;
-		mes "[Mimi]";
-		mes "Calm down, Soy.";
-		mes "You are going to faint even before the performance starts. Ha ha.";
-		next;
-		mes "[Mimi]";
-		mes "But I understand you.";
-		mes "Many people are looking forward to meeting the best Wanderer in the world.";
-		if ((Class != Job_Baby_Dancer) && (Class != Job_Dancer) && (Class != Job_Gypsy) && (BaseLevel != 99)) {
+		case 2:
+			mes "[Mimi]";
+			mes "If you are interested in becoming a Wanderer, just come back to me anytime. Although I'm not perfect, I will try my best to help you.";
 			close;
 		}
-		next;
-		select("Dancer Kim?:Wanderer?");
-		emotion e_omg,0,"Aspiring Wanderer, Soy";
-		mes "[Soy]";
-		mes "What? You don't know the famous Wanderer, Dancer Kim?";
-		mes "Oh my, oh my!!!";
-		mes "You seem to know the art of dancing but how come you don't know her?";
-		mes "Oh, no!";
-		next;
-		mes "[Mimi]";
-		mes "A Wanderer is a knee-spirited person who wanders about the world with the wind and the stars.";
-		mes "Rhythm and Music accompany them wherever they go.";
-		next;
-		mes "[Mimi]";
-		mes "Dancer Kim is the most famous Wanderer who tours the world with the Maestro Guitar Dong as the team <Nollio>.";
-		next;
-		mes "[Mimi]";
-		mes "Soy and myself are Aspiring Wanderers, and there will be a performance of <Nollio> in this town soon, so we are eagerly looking forward to see it.";
-		next;
-		mes "[Soy]";
-		mes "If you are a true Dancer, you must be struck with her Dance!";
-		mes "Will I ever meet a Maestro like Guitar Song someday, Mimi?";
-		next;
-		emotion e_heh,0,"Aspiring Wanderer, Soy";
-		mes "[Mimi]";
-		mes "Just hang in there, Soy. Ha ha.";
-		next;
-		if (select("Where is the performance?:End the conversation.") == 1) {
+	} else if (job_wan == 1) {
+		if (strnpcinfo(0) == "Aspiring Wanderer, Soy") {
 			mes "[Soy]";
-			mes "Right in front of the Christmas tree!";
-			mes "White snow, beautiful melody, and my captivating dance.";
-			mes "Don't you think it would be a great performance?";
-			set job_wan, 1;
-			close;
+			mes "The performance will be held in front of the Christmas tree here in Lutie.";
+			mes "I can't wait! Ah~ I'm losing my senses, Mimi.";
+		} else {
+			mes "[Mimi]";
+			mes "A Wanderer's dancing charm is higher than that of a dancer or gypsy, everyone will lose their souls when they see their performance.";
+			next;
+			mes "[Mimi]";
+			mes "I want to become a Wanderer, but I'm still a dancer.";
+			mes "But I think^3131FF it's better to learn Gypsy's unique skills first, and then become a Wanderer^000000. Soy can't wait to become a Wanderer.";
 		}
-		mes "[Mimi]";
-		mes "If you are interested in becoming a Wanderer, just come back to me anytime. Although I'm not perfect, I will try my best to help you.";
-		close;
-	}
-	if (job_wan == 1) {
-		mes "[Mimi]";
-		mes "A Wanderer's dancing charm is higher than that of a dancer or gypsy, everyone will lose their souls when they see their performance.";
-		next;
-		mes "[Mimi]";
-		mes "I want to become a Wanderer, but I'm still a dancer.";
-		mes "But I think^3131FF it's better to learn Gypsy's unique skills first, and then become a Wanderer^000000. Soy can't wait to become a Wanderer.";
 		close;
-	}
-	if (job_wan == 10) {
+	} else if (job_wan == 10) {
 		mes "[Soy]";
 		mes "<Nollio> is the best!!";
 		close;
+	} else {
+		if (strnpcinfo(0) == "Aspiring Wanderer, Soy") {
+			mes "[Soy]";
+			mes "I want to become an famous Wanderer too, Mimi.";
+		} else {
+			mes "[Mimi]";
+			mes "Not sure if I'm greedy, but I need to learn all Dancer and Gypsy skills before I can become a Wanderer.";
+		}
+		close;
 	}
-	mes "[Mimi]";
-	mes "Not sure if I'm greedy, but I need to learn all Dancer and Gypsy skills before I can become a Wanderer.";
-	close;
 }
+xmas,163,209,3	duplicate(Aspiring Wanderer, Soy)	Aspiring Wanderer, Mimi	714
 
 xmas,132,143,5	script	Performance Manager#wnd	713,{
+	mes "[Performance Manager]";
 	if (job_wan == 0) {
-		mes "[Performance Manager]";
 		mes "Oh, what should I do?";
 		close;
-	}
-	if (job_wan == 1) {
-		mes "[Performance Manager]";
+	} else if (job_wan == 1) {
 		mes "Oh, what should I do?";
 		mes "Why did they do this?";
 		next;
@@ -201,10 +131,10 @@ xmas,132,143,5	script	Performance Manager#wnd	713,{
 		next;
 		while (1) {
 			set .@loop,0;
-			switch (select("Sorry, I don't care.:What's the matter?:Why are you telling me this?")) {
+			switch(select("Sorry, I don't care.:What's the matter?:Why are you telling me this?")) {
 			case 1:
 				mes "[Performance Manager]";
-				mes "Ah! What a harsh world!";
+				mes "That's a bit harsh don't you think?";
 				close;
 			case 2:
 				mes "[Performance Manager]";
@@ -228,7 +158,7 @@ xmas,132,143,5	script	Performance Manager#wnd	713,{
 		}
 		while (1) {
 			set .@loop,0;
-			switch (select("Is there a problem?:Who do you mean?:It has nothing to do with me.")) {
+			switch(select("Is there a problem?:Who do you mean?:It has nothing to do with me.")) {
 			case 1:
 				mes "[Performance Manager]";
 				mes "How could they do that?";
@@ -245,26 +175,26 @@ xmas,132,143,5	script	Performance Manager#wnd	713,{
 				break;
 			case 2:
 				mes "[Performance Manager]";
-				mes "<Nollio>!";
-				mes "Who else!";
-				mes "Do you know them?";
-				mes "They are the worst group in the world.";
+				mes "Who?!";
+				mes "It's <Nollio>!";
+				mes "You call that a question?";
+				mes "They are the worst people in the world.";
 				next;
 				break;
 			case 3:
 				mes "[Performance Manager]";
-				mes "This is too much!";
+				mes "What a heartless thing to say!";
 				close;
 			}
 			if (.@loop) break;
 		}
 		while (1) {
 			set .@loop,0;
-			switch (select("Are you afraid of people?:The performers caused trouble?:Ignore him.")) {
+			switch(select("Are you afraid of people?:The performers caused trouble?:Ignore him.")) {
 			case 1:
 				mes "[Performance Manager]";
-				mes "If it were you, wouldn't you be afraid?";
-				mes "I'm the performance manager! Do you know how much money it costs behind the scenes? I need to face the expectations of all those people!";
+				mes "Wouldn't you be afraid of all the eyes of people if you were me?";
+				mes "I am in charge of this performance! A lot of people are looking forward to see it and there are many sponsors who are supporting us! I'm so stressed.";
 				next;
 				break;
 			case 2:
@@ -318,7 +248,7 @@ xmas,132,143,5	script	Performance Manager#wnd	713,{
 		mes "[Performance Manager]";
 		mes "Hey! Can you please go out and find the Maestro Guitar Song?";
 		next;
-		switch (select("Ah, okay.:Why should I do that?:I won't!")) {
+		switch(select("Ah, okay.:Why should I do that?:I won't!")) {
 		case 1:
 			break;
 		case 2:
@@ -327,12 +257,12 @@ xmas,132,143,5	script	Performance Manager#wnd	713,{
 			mes "You're asking me why!?";
 			mes "Ahh, no.....";
 			mes "It's because you seem like a similar artist.";
-			mes "you also wanted to watch the performance, didn't you?";
+			mes "You also wanted to watch the performance, didn't you?";
 			next;
 			break;
 		case 3:
 			mes "[Performance Manager]";
-			mes "You are pushing my limits...";
+			mes "You are so cold-hearted....";
 			close;
 		}
 		mes "[Performance Manager]";
@@ -345,26 +275,19 @@ xmas,132,143,5	script	Performance Manager#wnd	713,{
 		set job_wan,2;
 		setquest 2218;
 		close;
-	}
-	if (job_wan == 2) {
-		mes "[Performance Manager]";
+	} else if (job_wan == 2) {
 		mes "I am not sure if Guitar Song is in Comodo, you should go there and find him!";
 		close;
-	}
-	if (job_wan == 9) {
-		mes "[Performance Manager]";
+	} else if (job_wan == 9) {
 		mes "They came back!!";
 		close;
-	}
-	if (job_wan == 10) {
-		mes "[Performance Manager]";
-		mes "Thanks to you, the performance was a success.";
-		mes "You really are a good friend!";
-		mes "As a token of my appreciation, I will hold a performance just for you when I get a chance.";
+	} else if (job_wan == 10) {
+		mes "Thanks to you, the performance was successful.";
+		mes "You are so competent!";
+		mes "In return, I will prepare the stage for you someday.";
 		close;
 	}
-	mes "[Performance Manager]";
-	mes "Ah~ What a mess, ah!";
+	mes "Ahhh, so distracting!";
 	close;
 }
 
@@ -379,8 +302,7 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 		mes "[Cheerless Maestro]";
 		mes "Whew...";
 		close;
-	}
-	if (job_wan == 2) {
+	} else if (job_wan == 2) {
 		mes "[Cheerless Maestro]";
 		mes "You can dance ~";
 		mes "You can do your work ~";
@@ -388,9 +310,9 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 		mes "I am the tambourine King ~";
 		next;
 		mes "- You found a Maestro -";
-		mes "- singing a weird song -";
+		mes "- singing a weird song. -";
 		next;
-		if (select("That's a weird song.:Ignore it.") == 2) {
+		if(select("That's a weird song.:Ignore it.") == 2) {
 			mes "- What a weird person, I better stay away. -";
 			close;
 		}
@@ -437,17 +359,16 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 		mes "Hey, I told you to stop talking about this matter....";
 		mes "I don't want to think about it. It just hurts my feelings.";
 		next;
-		mes "- Guitar Song is adamantly refusing to talk. What should I do to hear the story about<Nollio>? -";
+		mes "- Guitar Song is adamantly refusing to talk. What should I do to hear the story about <Nollio>? -";
 		set job_wan,3;
 		close;
-	}
-	if (job_wan == 3) {
+	} else if (job_wan == 3) {
 		mes "[" + strcharinfo(0) + "]";
 		mes "(Would it be possible for me to make him tell me what happened with Nollio?)";
 		next;
-		switch (select("Use Dazzler:Use Lullaby: Use Lucky Luck")) {
+		switch(select("Use Dazzler:Use Lullaby:Use Lucky Luck")) {
 		case 1:
-			if (getskilllv("DC_UGLYDANCE") == 5) {
+			if (getskilllv("DC_UGLYDANCE") == 5 || rand(100) >= 80) {
 				mes "- You get closer to Song's ear. -";
 				next;
 				mes "[" + strcharinfo(0) + "]";
@@ -458,7 +379,7 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 				specialeffect EF_STUNATTACK;
 				next;
 				mes "[Guitar Song]";
-				mes "Wh..what!! What are you doing?!?";
+				mes "Wh...what!! What are you doing?!?";
 				mes "You almost damaged my eardrum.";
 				emotion e_an;
 				next;
@@ -473,57 +394,27 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 				mes "So many people are supporting you with anticipation.";
 				mes "Would you break your promise and let people down? Not giving people any reason?";
 				next;
+			} else {
+				mes "[" + strcharinfo(0) + "]";
+				mes "Okay-";
+				next;
+				mes "[" + strcharinfo(0) + "]";
+				mes "Aaaaahhh!!!!!";
+				next;
+				mes "[Guitar Song]";
+				mes "What... what are you doing?!! What's wrong with you!";
+				mes "Security!!!";
+				next;
+				mes "[Black-suit Guards]";
+				mes "Please stop this.";
+				close2;
+				warp "comodo",117,98;
+				end;
 			}
-			else {
-				set .@scream_dc,rand(1,100);
-				if (.@scream_dc > 80) {
-					mes "- You get closer to Song's ear. -";
-					next;
-					mes "[" + strcharinfo(0) + "]";
-					mes "Okay-";
-					next;
-					mes "[" + strcharinfo(0) + "]";
-					mes "Oi-!!!!!";
-					specialeffect EF_STUNATTACK;
-					next;
-					mes "[Guitar Song]";
-					mes "Wh..what!! What are you doing?!?";
-					mes "You almost damaged my eardrum.";
-					emotion e_an;
-					next;
-					mes "[" + strcharinfo(0) + "]";
-					mes "Hey, cheer up!!!";
-					next;
-					mes "[Guitar Song]";
-					mes "What are you talking about?";
-					next;
-					mes "[" + strcharinfo(0) + "]";
-					mes "You should know, people are addicted to your music?";
-					mes "So many people are supporting you with anticipation.";
-					mes "Would you break your promise and let people down? Not giving people any reason?";
-					next;
-				}
-				else {
-					mes "[" + strcharinfo(0) + "]";
-					mes "Okay-";
-					next;
-					mes "[" + strcharinfo(0) + "]";
-					mes "Aaaaahhh!!!!!";
-					next;
-					mes "[Guitar Song]";
-					mes "What.. what are you doing?!! What's wrong with you!";
-					mes "Security!!!";
-					next;
-					mes "[Black-suit Guards]";
-					mes "Please stop this.";
-					close2;
-					warp "comodo",117,98;
-					end;
-				}
-			}
+			break;
 		case 2:
 			if (getskilllv("BD_LULLABY") == 0) {
-				mes "- You can't use this skill, since you didn't learn it. -";
+				mes "- You cannot use this skill without learning it. -";
 				close;
 			}
 			mes "[" + strcharinfo(0) + "]";
@@ -531,7 +422,7 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 			close;
 		case 3:
 			if (getskilllv("DC_FORTUNEKISS") == 0) {
-				mes "- You can't use this skill, since you didn't learn it. -";
+				mes "- You cannot use this skill without learning it. -";
 				close;
 			}
 			emotion e_what,1;
@@ -596,6 +487,7 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 			mes "Then please tell me, I really love your music... but now I feel so blue...";
 			emotion e_what;
 			next;
+			break;
 		}
 		mes "[Guitar Song]";
 		mes "Oh, no! You know...";
@@ -640,14 +532,12 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 		mes "Who can dance to my music so wonderfully as she did?";
 		mes "Now my music and my life is history... (muttering).";
 		close;
-	}
-	if ((job_wan > 3) && (job_wan < 8)) {
+	} else if (job_wan > 3 && job_wan < 8) {
 		mes "[Guitar Song]";
 		mes "Dancer Kim is probably addicted to the monster races in Hugel again!";
 		mes "Back in the day when she was addicted to the monster races, who do you think got her out of it?";
 		close;
-	}
-	if (job_wan == 8) {
+	} else if (job_wan == 8) {
 		emotion e_gasp;
 		mes "- You tell him what happened in Hugel and ask him to go back to Lutie. -";
 		next;
@@ -658,10 +548,9 @@ comodo,140,86,5	script	Cheerless Maestro	479,{
 		next;
 		mes "[Guitar Song]";
 		mes "I'll go there right away and scold her.";
-		set job_wan, 9;
+		set job_wan,9;
 		close;
-	}
-	if (job_wan == 9) {
+	} else if (job_wan == 9) {
 		mes "[Guitar Song]";
 		mes "Okay, I will go to the Christmas tree in Lutie where the performance is supposed to be held.";
 		close;
@@ -676,8 +565,7 @@ hu_in01,305,251,5	script	Vacant Looking Lady#wnd	879,{
 		mes "[Vacant Looking Lady]";
 		mes "(blank...)";
 		close;
-	}
-	if (job_wan == 4) {
+	} else if (job_wan == 4) {
 		mes "[Vacant Looking Lady]";
 		mes "Sob... sob...";
 		next;
@@ -785,8 +673,7 @@ hu_in01,305,251,5	script	Vacant Looking Lady#wnd	879,{
 		mes "<Nollio> is over! Boo hoo hoo!";
 		set job_wan,5;
 		close;
-	}
-	if (job_wan == 5) {
+	} else if (job_wan == 5) {
 		emotion e_sob;
 		mes "[Vacant Looking Lady]";
 		mes "Not long ago, I was like a beautiful dove, but now I am just a fat chicken.";
@@ -794,7 +681,7 @@ hu_in01,305,251,5	script	Vacant Looking Lady#wnd	879,{
 		mes "I think the life of Wanderer Dancer Kim is over now.";
 		mes "Boo hoo hoo hoo!";
 		next;
-		switch (select("Hey, don't give up.:I feel sorry for you.") == 2) {
+		if(select("Hey, don't give up.:I feel sorry for you.") == 2) {
 			mes "[Dancer Kim]";
 			mes "My life cannot get out of abyss now......";
 			close;
@@ -816,7 +703,7 @@ hu_in01,305,251,5	script	Vacant Looking Lady#wnd	879,{
 		mes "But I get tired and give up easily.";
 		mes "I think I am going to give up.";
 		next;
-		if (select("Well, there's no other way.:Let?s work together.") == 1) {
+		if(select("Well, there's no other way.:Let's work together.") == 1) {
 			mes "[Dancer Kim]";
 			mes "No dreams and no hope...";
 			close;
@@ -846,13 +733,11 @@ hu_in01,305,251,5	script	Vacant Looking Lady#wnd	879,{
 		set job_wan,6;
 		changequest 2219,2220;
 		close;
-	}
-	if (job_wan == 6 || job_wan == 7) {
+	} else if (job_wan == 6 || job_wan == 7) {
 		mes "[Dancer Kim]";
 		mes "I'll meet you at Abyss Lake.";
 		close;
-	}
-	if (job_wan == 8) {
+	} else if (job_wan == 8) {
 		mes "[Dancer Kim]";
 		mes "Please tell Guitar Song to go to Lutie";
 		mes "I'll go there after I've packed my luggage!";
@@ -875,7 +760,7 @@ hu_fild05,342,130,5	script	Dancer Kim#fild	879,{
 		mes "You need to defeat 50 Yellow Novus!";
 		mes "Are you ready?";
 		next;
-		if (select("No.:Yes.") == 1) {
+		if(select("No.:Yes.") == 1) {
 			mes "[Dancer Kim]";
 			mes "Hurry up before I lose interest!";
 			close;
@@ -886,8 +771,7 @@ hu_fild05,342,130,5	script	Dancer Kim#fild	879,{
 		set job_wan,7;
 		changequest 2220,2221;
 		close;
-	}
-	if (job_wan == 7) {
+	} else if (job_wan == 7) {
 		if (checkquest(2221,PLAYTIME) == 0 || checkquest(2221,PLAYTIME) == 1) {
 			if (checkquest(2221,HUNTING) == 2) {
 				mes "[Dancer Kim]";
@@ -921,20 +805,20 @@ hu_fild05,342,130,5	script	Dancer Kim#fild	879,{
 				mes "Can you bring Guitar Song to Lutie?";
 				mes "Say that his partner is waiting for him.";
 				next;
-				select("No Problem!");
+				select("No problem!");
 				mes "[Dancer Kim]";
 				mes "You're a good person. I'm really happy that I met you.";
 				mes "Thank god for sending such a stubborn person to me!";
 				set job_wan,8;
 				changequest 2221,2222;
 				close;
+			} else {
+				mes "[Dancer Kim]";
+				mes "Does it look easy to you?";
+				mes "But I'm sure I have a better chance to win.";
+				close;
 			}
-			mes "[Dancer Kim]";
-			mes "Does it look easy to you?";
-			mes "But I'm sure I have a better chance to win.";
-			close;
-		}
-		if (checkquest(2221,PLAYTIME) == 2) {
+		} else if (checkquest(2221,PLAYTIME) == 2) {
 			mes "[Dancer Kim]";
 			mes "Oh, you came back to me.";
 			mes "I'm so tired. I don't give up halfway. It's a good exercise for me. I will have to give up Nollio to another Wanderer, it's all over....";
@@ -943,15 +827,15 @@ hu_fild05,342,130,5	script	Dancer Kim#fild	879,{
 			set job_wan,6;
 			changequest 2221,2220;
 			close;
+		} else {
+			mes "[Dancer Kim]";
+			mes "Huh...?";
+			set job_wan,6;
+			close;
 		}
+	} else if (job_wan == 8) {
 		mes "[Dancer Kim]";
-		mes "Huh...?";
-		set job_wan,6;
-		close;
-	}
-	if (job_wan == 8) {
-		mes "[Dancer Kim]";
-		mes "Please tell Song, I will be waiting him at the Christmas tree.";
+		mes "Please tell Song, I will be waiting for him at the Christmas tree.";
 		close;
 	}
 	mes "[Dancer Kim]";
@@ -960,24 +844,22 @@ hu_fild05,342,130,5	script	Dancer Kim#fild	879,{
 }
 
 -	script	#fildshout00::wandererjcq	-1,{
-	end;
-
 OnTouch:
 	if (job_wan == 7) {
-		set .@bc_rd,rand(1,3);
-		if (.@bc_rd == 1) {
-			mapannounce "hu_fild05","Dancer Kim: Hey, how did you get so fast? I've only got few myself...",bc_map,"0xffff00";
-		}
-		else if (.@bc_rd == 2) {
-			mapannounce "hu_fild05","Dancer Kim: Errrgghh! Hey Novus! I'm gonna get you~",bc_map,"0xffff00";
-		}
-		else {
-			mapannounce "hu_fild05","Dancer Kim: Oh, are you tired already? Is this my victory? Ho ho ho.",bc_map,"0xffff00";
+		switch(rand(3)) {
+		case 0:
+			mapannounce "hu_fild05","Dancer Kim: Hey, how did you get so fast? I've only got few myself...",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+			break;
+		case 1:
+			mapannounce "hu_fild05","Dancer Kim: Errrgghh! Hey Novus! I'm gonna get you~",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+			break;
+		case 2:
+			mapannounce "hu_fild05","Dancer Kim: Oh, are you tired already? Is this my victory? Ho ho ho.",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
+			break;
 		}
 	}
 	end;
 }
-
 hu_fild05,81,111,0	duplicate(wandererjcq)	#fildshout01	139,20,20
 hu_fild05,193,98,0	duplicate(wandererjcq)	#fildshout02	139,20,20
 hu_fild05,252,74,0	duplicate(wandererjcq)	#fildshout03	139,20,20
@@ -990,8 +872,6 @@ hu_fild05,80,239,0	duplicate(wandererjcq)	#fildshout09	139,20,20
 hu_fild05,69,147,0	duplicate(wandererjcq)	#fildshout10	139,20,20
 
 xmas,148,131,0	script	#wandergogo	139,3,3,{
-	end;
-
 OnTouch:
 	if (job_wan == 9) {
 		enablenpc "Dancer Kim#xmas";
@@ -1008,16 +888,22 @@ OnTouch:
 
 xmas,147,135,5	script	Dancer Kim#xmas	485,{
 	if (job_wan == 9) {
-		if ((Class != Job_Baby_Dancer) && (Class != Job_Dancer) && (Class != Job_Gypsy) && (BaseLevel != 99) && (JobLevel < 50)) {
-			mes "- You don't meet the requirements. -";
+		if (BaseJob != Job_Dancer && BaseLevel < 99 && JobLevel < 50) {
+			mes "- You can't continue the quest because the condition for the quest is not appropriate. -";
+			close;
+		}
+		if (SkillPoint) {
+			mes "- You can't continue the quest because you have remaining skill points. -";
 			close;
 		}
-		if (SkillPoint != 0) {
-			mes "- Please use up all your skill points. -";
+		if (checkweight(1201,2) == 0) {
+			mes "- You need to empty your inventory if you want to continue the quest. -";
 			close;
 		}
-		if (checkweight(1201,2) >= 2) {
-			mes "- You need more room in your inventory before you can continue. -";
+		if (ismounting()) {
+			mes "[Dancer Kim]";
+			mes "Please get off of that creature you're riding on.";
+			mes "Then talk to me again.";
 			close;
 		}
 		mes "- <Nollio> is performing. -";
@@ -1094,15 +980,9 @@ xmas,147,135,5	script	Dancer Kim#xmas	485,{
 		mes "Introducing!";
 		next;
 		mes "[Dancer Kim]";
-		mapannounce "xmas","Dancer Kim: Introducing the rising Wanderer! " + strcharinfo(0) + "!",bc_map,"0xffff00";
+		mapannounce "xmas","Dancer Kim: Introducing the rising Wanderer! " + strcharinfo(0) + "!",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
 		mes "This rising Wanderer star, " + strcharinfo(0) + "!";
-		if(Class == Job_Baby_Dancer) {
-			jobchange Job_Baby_Wanderer;
-		}else if (Class == Job_Dancer) {
-			jobchange Job_Wanderer;
-		} else {
-			jobchange Job_Wanderer_T;
-		}
+		jobchange roclass(eaclass()|EAJL_THIRD);
 		set job_wan,10;
 		getitem 2795,1; //Green_Apple_Ring
 		getitem 5758,1; //Dying_Swan
@@ -1137,64 +1017,21 @@ xmas,147,135,5	script	Dancer Kim#xmas	485,{
 		disablenpc "Mimi#xmas";
 		end;
 	}
-
 OnInit:
 	disablenpc "Dancer Kim#xmas";
 	end;
 }
 
-xmas,149,135,3	script	Guitar Song#xmas	479,{
-	end;
-
-OnInit:
-	disablenpc "Guitar Song#xmas";
-	end;
-}
-
-xmas,142,130,7	script	Spectator#xmas1	711,{
-	end;
-
-OnInit:
-	disablenpc "Spectator#xmas1";
-	end;
-}
-
-xmas,145,127,7	script	Spectator#xmas2	712,{
+-	script	#wander_xmas	-1,{
 	end;
-
 OnInit:
-	disablenpc "Spectator#xmas2";
+	disablenpc strnpcinfo(0);
 	end;
 }
-
-xmas,148,127,7	script	Soy#xmas	714,{
-	end;
-
-OnInit:
-	disablenpc "Soy#xmas";
-	end;
-}
-
-xmas,149,127,1	script	Mimi#xmas	714,{
-	end;
-
-OnInit:
-	disablenpc "Mimi#xmas";
-	end;
-}
-
-xmas,151,127,1	script	Spectator#xmas3	716,{
-	end;
-
-OnInit:
-	disablenpc "Spectator#xmas3";
-	end;
-}
-
-xmas,154,129,1	script	Spectator#xmas4	797,{
-	end;
-
-OnInit:
-	disablenpc "Spectator#xmas4";
-	end;
-}
+xmas,149,135,3	duplicate(#wander_xmas)	Guitar Song#xmas	479
+xmas,142,130,7	duplicate(#wander_xmas)	Spectator#xmas1	711
+xmas,145,127,7	duplicate(#wander_xmas)	Spectator#xmas2	712
+xmas,148,127,7	duplicate(#wander_xmas)	Soy#xmas	714
+xmas,149,127,1	duplicate(#wander_xmas)	Mimi#xmas	714
+xmas,151,127,1	duplicate(#wander_xmas)	Spectator#xmas3	716
+xmas,154,129,1	duplicate(#wander_xmas)	Spectator#xmas4	797