Explorar o código

> Follow-up r17048:
- Renamed 'useskilltopc' to 'npcskill';
- Removed cast time from NPC objects, code by mkbu95 (suspected official behavior);
- Documented 'npcskill';
- Replaced all instances in scripts.
* Fixed max level bypass, code by malufett (bugreport:5800).
* Updated Malangdo spawns to official.
* Some standardization of npc/quests/first_class/.

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

euphyy %!s(int64=12) %!d(string=hai) anos
pai
achega
bb5364c2d1

+ 19 - 3
doc/script_commands.txt

@@ -6336,9 +6336,8 @@ Example:
 This command will send the message to the server console (map-server window). It 
 This command will send the message to the server console (map-server window). It 
 will not be displayed anywhere else.
 will not be displayed anywhere else.
 
 
-    debugmes strcharinfo(0)+" has just done this that and the other";
-    // You would see in the map-server window "NAME has just done this that and 
-    // the other"
+    // Displays "NAME has clicked me!" in the map-server window.
+    debugmes strcharinfo(0)+" has clicked me!";
 
 
 ---------------------------------------
 ---------------------------------------
 
 
@@ -6623,6 +6622,23 @@ For the position, the x and y are given in the unitSkillUsePos.
 
 
 ---------------------------------------
 ---------------------------------------
 
 
+*npcskill <skill id>,<skill lvl>,<stat point>,<NPC level>;
+*npcskill "<skill name>",<skill lvl>,<stat point>,<NPC level>;
+
+This command causes the attached NPC object to cast a skill on the attached
+player. The skill will have no cast time or cooldown. The player must be
+within the default skill range or the command will fail silently.
+
+The "stat point" parameter temporarily sets all NPC stats to the given value,
+and "NPC level" is the temporary level of the NPC (used in some skills).
+Neither value can be greater than the max level defined in config.
+
+    // Casts Level 10 Heal on the attached player, calculated with
+    // all stats 99 and base level 60.
+    npcskill "AL_HEAL",10,99,60;
+
+---------------------------------------
+
 *day;
 *day;
 *night;
 *night;
 
 

+ 3 - 3
npc/merchants/inn.txt

@@ -4,7 +4,7 @@
 //= Darkchild (1.1)
 //= Darkchild (1.1)
 //= Playtester (1.2)
 //= Playtester (1.2)
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 2.9
+//= 2.9a
 //===== Compatible With: =====================================
 //===== Compatible With: =====================================
 //= rAthena SVN
 //= rAthena SVN
 //===== Description: =========================================
 //===== Description: =========================================
@@ -44,6 +44,7 @@
 //= 2.7 Removed Morroc Inns as per episode 12.1. [L0ne_W0lf]
 //= 2.7 Removed Morroc Inns as per episode 12.1. [L0ne_W0lf]
 //= 2.8 Removed Moscovia Inn; Its in quests/quest_moscovia.txt [Kisuka]
 //= 2.8 Removed Moscovia Inn; Its in quests/quest_moscovia.txt [Kisuka]
 //= 2.9 Added switch menus, updated to match AEGIS scripts. [Kisuka]
 //= 2.9 Added switch menus, updated to match AEGIS scripts. [Kisuka]
+//= 2.9a Added 'npcskill' command. [Euphy]
 //============================================================
 //============================================================
 
 
 
 
@@ -147,8 +148,7 @@ lhz_in02,230,284,4	script	Hotel Employee#01	86,{
 		close2;
 		close2;
 		warp "lhz_in02",219,150;
 		warp "lhz_in02",219,150;
 		percentheal 100,100;
 		percentheal 100,100;
-		sc_start SC_BLESSING,240000,10;
-		skilleffect AL_BLESSING,0;
+		npcskill "AL_BLESSING",10,99,99;
 		end;
 		end;
 	case 3:
 	case 3:
 		mes "[Hotel Employee]";
 		mes "[Hotel Employee]";

+ 41 - 59
npc/quests/first_class/tu_acolyte.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //===== By: ================================================== 
 //= Fix up by Jukka
 //= Fix up by Jukka
 //===== Current Version: ===================================== 
 //===== Current Version: ===================================== 
-//= 1.6
+//= 1.6a
 //===== Compatible With: ===================================== 
 //===== Compatible With: ===================================== 
 //= rAthena SVN (Testet in Trunk 88xx)
 //= rAthena SVN (Testet in Trunk 88xx)
 //===== Description: ========================================= 
 //===== Description: ========================================= 
@@ -17,10 +17,11 @@
 //= 1.4 Misc. updates. [L0ne_W0lf]
 //= 1.4 Misc. updates. [L0ne_W0lf]
 //= 1.5 Adjusted EXP gains to Renewal values.
 //= 1.5 Adjusted EXP gains to Renewal values.
 //= 1.6 Fixed a wrong placed curly bracket. [Joseph]
 //= 1.6 Fixed a wrong placed curly bracket. [Joseph]
+//= 1.6a Added 'npcskill' command. [Euphy]
 //============================================================ 
 //============================================================ 
 
 
-
-//=================================================Priest Praupin====================================================
+// Priest Praupin
+//============================================================
 prt_church,179,15,1	script	Priest Praupin	110,{
 prt_church,179,15,1	script	Priest Praupin	110,{
 	mes "[Priest Praupin]";
 	mes "[Priest Praupin]";
 	if(BaseClass != Job_Acolyte){
 	if(BaseClass != Job_Acolyte){
@@ -52,7 +53,6 @@ prt_church,179,15,1	script	Priest Praupin	110,{
 			mes "[Priest Praupin]";
 			mes "[Priest Praupin]";
 			mes "Seeing your eyes filled with such determination assures me. But if you run into any trouble, feel free to ask me for help. Good bye for now, blessed child.";
 			mes "Seeing your eyes filled with such determination assures me. But if you run into any trouble, feel free to ask me for help. Good bye for now, blessed child.";
 			close;
 			close;
-			break;
 		case 2:
 		case 2:
 			mes "[Priest Praupin]";
 			mes "[Priest Praupin]";
 			mes "There is a convent northeast";
 			mes "There is a convent northeast";
@@ -81,7 +81,6 @@ prt_church,179,15,1	script	Priest Praupin	110,{
 				mes "you need help, come to me.";
 				mes "you need help, come to me.";
 				close;
 				close;
 			}
 			}
-			break;
 		}
 		}
 	case 7:
 	case 7:
 		mes "You're looking for someone";
 		mes "You're looking for someone";
@@ -91,7 +90,6 @@ prt_church,179,15,1	script	Priest Praupin	110,{
 		mes "[Priest Praupin]";
 		mes "[Priest Praupin]";
 		mes "Ah, he's away at the convent right now. If you want to meet Bishop Maugins in the Saint Capitolina Convent, travel ^3131FFnorth^000000, ^3131FFeast^000000, ^3131FFeast^000000 and then ^3131FFeast^000000 from Prontera.";
 		mes "Ah, he's away at the convent right now. If you want to meet Bishop Maugins in the Saint Capitolina Convent, travel ^3131FFnorth^000000, ^3131FFeast^000000, ^3131FFeast^000000 and then ^3131FFeast^000000 from Prontera.";
 		close;
 		close;
-		break;
 	case 22:
 	case 22:
 		if(countitem(7181) > 0){	// Receipt_01
 		if(countitem(7181) > 0){	// Receipt_01
 			emotion e_gasp;
 			emotion e_gasp;
@@ -173,7 +171,8 @@ prt_church,179,15,1	script	Priest Praupin	110,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Asthe====================================================
+// Asthe
+//============================================================
 prt_monk,230,106,3	script	Asthe#tu	79,{
 prt_monk,230,106,3	script	Asthe#tu	79,{
 	mes "[Asthe]";
 	mes "[Asthe]";
 	switch(tu_acolyte01){
 	switch(tu_acolyte01){
@@ -291,14 +290,13 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		next;
 		next;
 		mes "[Asthe]";
 		mes "[Asthe]";
 		mes "HEAL !!";
 		mes "HEAL !!";
-		unitskilluseid getcharid(3),28,10;
+		npcskill "AL_HEAL",10,99,60;
 		set tu_acolyte01, 3;
 		set tu_acolyte01, 3;
 		if(getskilllv("AL_HEAL") == 0){
 		if(getskilllv("AL_HEAL") == 0){
 			getexp 0,10;
 			getexp 0,10;
 			specialeffect2 EF_CONE;
 			specialeffect2 EF_CONE;
 		}
 		}
 		close;
 		close;
-		break;
 	case 3:
 	case 3:
 		mes "I would like to give you an assignment, but what do you";
 		mes "I would like to give you an assignment, but what do you";
 		mes "think? I believe learning the basics is your most important";
 		mes "think? I believe learning the basics is your most important";
@@ -371,10 +369,7 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 				mes "[Asthe]";
 				mes "[Asthe]";
 				mes "Would you like me to take the mace away from your inventory now?";
 				mes "Would you like me to take the mace away from your inventory now?";
 				next;
 				next;
-				switch(select("Sure.:Let me check again.")) {
-				case 1:
-					break;
-				case 2:
+				if(select("Sure.:Let me check again.") == 2) {
 					mes "[Asthe]";
 					mes "[Asthe]";
 					mes "Okay, no problem.";
 					mes "Okay, no problem.";
 					mes "Please make sure that you do not carry any ^FF0000Mace with an elemental Property^000000.";
 					mes "Please make sure that you do not carry any ^FF0000Mace with an elemental Property^000000.";
@@ -386,15 +381,12 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 				emotion e_heh;
 				emotion e_heh;
 				set tu_acolyte01, 5;
 				set tu_acolyte01, 5;
 				delitem 1504, 1; //Mace
 				delitem 1504, 1; //Mace
-				if(Class == Job_Acolyte_High){
+				if(Class == Job_Acolyte_High)
 					getexp 200,100;
 					getexp 200,100;
-					specialeffect2 EF_CONE;
-					close;
-				} else {
+				else
 					getexp 100,50;
 					getexp 100,50;
-					specialeffect2 EF_CONE;
-					close;
-				}
+				specialeffect2 EF_CONE;
+				close;
 			} else {
 			} else {
 				mes "Oh my!";
 				mes "Oh my!";
 				mes "Welcome back~";
 				mes "Welcome back~";
@@ -415,7 +407,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "The basics are crucial to gaining mastery of the more advanced skills that you'll learn later. Just keep in mind that all of your efforts and suffering will become glory";
 		mes "The basics are crucial to gaining mastery of the more advanced skills that you'll learn later. Just keep in mind that all of your efforts and suffering will become glory";
 		mes "and happiness.";
 		mes "and happiness.";
 		close;
 		close;
-		break;
 	case 5:
 	case 5:
 		mes "I suppose I can tell you a little more about the Acolyte job. You already know that Novices must train and go to Prontera Church to become an Acolyte, your First Job Class.";
 		mes "I suppose I can tell you a little more about the Acolyte job. You already know that Novices must train and go to Prontera Church to become an Acolyte, your First Job Class.";
 		next;
 		next;
@@ -440,7 +431,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "Ho ho ho~ No need to try to remember everything right now. You'll get the hang of it.";
 		mes "Ho ho ho~ No need to try to remember everything right now. You'll get the hang of it.";
 		set tu_acolyte01, 6;
 		set tu_acolyte01, 6;
 		close;
 		close;
-		break;
 	case 6:
 	case 6:
 		mes ""+strcharinfo(0)+",";
 		mes ""+strcharinfo(0)+",";
 		mes "I just received this letter, but it seems to have been a mistake.";
 		mes "I just received this letter, but it seems to have been a mistake.";
@@ -453,7 +443,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		set tu_acolyte01,7;
 		set tu_acolyte01,7;
 		getitem 7148,1; //Mother_Letter
 		getitem 7148,1; //Mother_Letter
 		close;
 		close;
-		break;
 	case 7:
 	case 7:
 		mes "Would you please";
 		mes "Would you please";
 		mes "deliver this letter";
 		mes "deliver this letter";
@@ -461,13 +450,12 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "You can find him in the";
 		mes "You can find him in the";
 		mes "building nearby.";
 		mes "building nearby.";
 		close;
 		close;
-		break;
 	case 9:
 	case 9:
 		mes "You went to Prontera on behalf of the convent for Priest Gardron? That must have been tough...";
 		mes "You went to Prontera on behalf of the convent for Priest Gardron? That must have been tough...";
 		next;
 		next;
 		mes "[Asthe]";
 		mes "[Asthe]";
 		mes "Blessing!";
 		mes "Blessing!";
-		unitskilluseid getcharid(3),34,10;
+		npcskill "AL_BLESSING",10,0,0;
 		next;
 		next;
 		mes "[Asthe]";
 		mes "[Asthe]";
 		mes "Now I'm going to teach you";
 		mes "Now I'm going to teach you";
@@ -502,7 +490,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "you some dog food.^000000";
 		mes "you some dog food.^000000";
 		set tu_acolyte01, 10;
 		set tu_acolyte01, 10;
 		close;
 		close;
-		break;
 	case 11:
 	case 11:
 	case 12:
 	case 12:
 		mes "How to expel";
 		mes "How to expel";
@@ -524,7 +511,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "and it will come.";
 		mes "and it will come.";
 		set tu_acolyte01, 12;
 		set tu_acolyte01, 12;
 		close;
 		close;
-		break;
 	case 13:
 	case 13:
 		mes "You remember that";
 		mes "You remember that";
 		mes "you can learn Divine";
 		mes "you can learn Divine";
@@ -554,7 +540,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "alright? I'll be right here.";
 		mes "alright? I'll be right here.";
 		set tu_acolyte01, 14;
 		set tu_acolyte01, 14;
 		close;
 		close;
-		break;
 	case 14:
 	case 14:
 		mes "Now it's time";
 		mes "Now it's time";
 		mes "for your next lesson.";
 		mes "for your next lesson.";
@@ -576,9 +561,8 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "Try it for";
 		mes "Try it for";
 		mes "yourself, okay?";
 		mes "yourself, okay?";
 		set tu_acolyte01, 15;
 		set tu_acolyte01, 15;
-		unitskilluseid getcharid(3),29,10;
+		npcskill "AL_INCAGI",10,0,0;
 		close;
 		close;
-		break;
 	case 15:
 	case 15:
 		mes "Once you learn";
 		mes "Once you learn";
 		mes "Level 1 Increase AGI,";
 		mes "Level 1 Increase AGI,";
@@ -605,7 +589,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "by learning the Heal skill.";
 		mes "by learning the Heal skill.";
 		set tu_acolyte01, 16;
 		set tu_acolyte01, 16;
 		close;
 		close;
-		break;
 	case 16:
 	case 16:
 		mes "You've been learning";
 		mes "You've been learning";
 		mes "really quickly. I'm glad";
 		mes "really quickly. I'm glad";
@@ -667,15 +650,13 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 			mes "Alright,";
 			mes "Alright,";
 			mes "give me a moment";
 			mes "give me a moment";
 			mes "to catch my breath~";
 			mes "to catch my breath~";
-			close;
 		} else {
 		} else {
 			mes "[Asthe]";
 			mes "[Asthe]";
 			mes "Ho ho!";
 			mes "Ho ho!";
 			mes "What a smart Acolyte~";
 			mes "What a smart Acolyte~";
 			set tu_acolyte01, 17;
 			set tu_acolyte01, 17;
-			close;
 		}
 		}
-		break;
+		close;
 	case 17:
 	case 17:
 		mes "Oh dear...!";
 		mes "Oh dear...!";
 		mes "All of these things were delivered to me by accident! And some of these packages were supposed to";
 		mes "All of these things were delivered to me by accident! And some of these packages were supposed to";
@@ -713,7 +694,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 			getitem 7148,1; //Mother_Letter
 			getitem 7148,1; //Mother_Letter
 		}
 		}
 		close;
 		close;
-		break;
 	case 18:
 	case 18:
 	case 19:
 	case 19:
 	case 20:
 	case 20:
@@ -735,7 +715,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "[Asthe]";
 		mes "[Asthe]";
 		mes "Oh, and this last delivery is a receipt for ^3131FFPriest Praupin^000000, the priest who told you about me. Alright, have a safe trip~";
 		mes "Oh, and this last delivery is a receipt for ^3131FFPriest Praupin^000000, the priest who told you about me. Alright, have a safe trip~";
 		close;
 		close;
-		break;
 	case 23:
 	case 23:
 		mes "Ah, you're finishing";
 		mes "Ah, you're finishing";
 		mes "making all of those deliveries? Thank you very much! How was it meeting Priest Praupin after such";
 		mes "making all of those deliveries? Thank you very much! How was it meeting Priest Praupin after such";
@@ -760,7 +739,6 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 		mes "you my final lesson.";
 		mes "you my final lesson.";
 		set tu_acolyte01, 24;
 		set tu_acolyte01, 24;
 		close;
 		close;
-		break;
 	case 24:
 	case 24:
 		mes "The last skill";
 		mes "The last skill";
 		mes "I will teach you";
 		mes "I will teach you";
@@ -813,7 +791,8 @@ prt_monk,230,106,3	script	Asthe#tu	79,{
 }
 }
 
 
 
 
-//=================================================Priest Gardron====================================================
+// Priest Gardron
+//============================================================
 monk_in,18,38,6	script	Priest Gardron#tu	110,{
 monk_in,18,38,6	script	Priest Gardron#tu	110,{
 	mes "[Priest Gardron]";
 	mes "[Priest Gardron]";
 	if(tu_acolyte01 == 7){
 	if(tu_acolyte01 == 7){
@@ -921,7 +900,8 @@ monk_in,18,38,6	script	Priest Gardron#tu	110,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Dog====================================================
+// Dog
+//============================================================
 prt_monk,235,245,5	script	Dog#tu	81,{
 prt_monk,235,245,5	script	Dog#tu	81,{
 	mes "[Dog]";
 	mes "[Dog]";
 	mes "^CDB79EBark bark!";
 	mes "^CDB79EBark bark!";
@@ -968,7 +948,8 @@ prt_monk,235,245,5	script	Dog#tu	81,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Boy====================================================
+// Boy
+//============================================================
 prt_monk,243,238,5	script	Boy#boy_voi	139,5,5,{
 prt_monk,243,238,5	script	Boy#boy_voi	139,5,5,{
 OnTouch_:
 OnTouch_:
 	if(tu_acolyte01 != 10)end;
 	if(tu_acolyte01 != 10)end;
@@ -978,7 +959,8 @@ OnTouch_:
 	close;
 	close;
 }
 }
 
 
-//=================================================Ill Girl====================================================
+// Ill Girl
+//============================================================
 prt_monk,226,257,6	script	Ill Girl#tu	93,{
 prt_monk,226,257,6	script	Ill Girl#tu	93,{
 	mes "[Angelic]";
 	mes "[Angelic]";
 	if(tu_acolyte01 > 12){
 	if(tu_acolyte01 > 12){
@@ -1056,15 +1038,13 @@ prt_monk,226,257,6	script	Ill Girl#tu	93,{
 		mes "For sure.";
 		mes "For sure.";
 		set tu_acolyte01, 11;
 		set tu_acolyte01, 11;
 		close;
 		close;
-	} else
-	if(tu_acolyte01 == 11){
+	} else if(tu_acolyte01 == 11){
 		next;
 		next;
 		mes "[Angelic]";
 		mes "[Angelic]";
 		mes "It hurts...!";
 		mes "It hurts...!";
 		mes "I... I can't...!";
 		mes "I... I can't...!";
 		close;
 		close;
-	} else
-	if(tu_acolyte01 == 12){
+	} else if(tu_acolyte01 == 12){
 		next;
 		next;
 		mes "^3355FFYou go towards";
 		mes "^3355FFYou go towards";
 		mes "the girl, place your hands";
 		mes "the girl, place your hands";
@@ -1136,12 +1116,10 @@ prt_monk,226,257,6	script	Ill Girl#tu	93,{
 				mes "not able to use it for now.^000000";
 				mes "not able to use it for now.^000000";
 				close;
 				close;
 			}
 			}
-			break;
 		case 4:
 		case 4:
 			mes "^3355FFThis isn't a skill";
 			mes "^3355FFThis isn't a skill";
 			mes "that Acolytes can use...^000000";
 			mes "that Acolytes can use...^000000";
 			close;
 			close;
-			break;
 		case 5:
 		case 5:
 			if(getskilllv("AL_CRUCIS") > 0){
 			if(getskilllv("AL_CRUCIS") > 0){
 				mes "["+strcharinfo(0)+"]";
 				mes "["+strcharinfo(0)+"]";
@@ -1159,12 +1137,10 @@ prt_monk,226,257,6	script	Ill Girl#tu	93,{
 				mes "not able to use it for now.^000000";
 				mes "not able to use it for now.^000000";
 				close;
 				close;
 			}
 			}
-			break;
 		case 6:
 		case 6:
 			mes "^3355FFThis isn't a skill";
 			mes "^3355FFThis isn't a skill";
 			mes "that Acolytes can use...^000000";
 			mes "that Acolytes can use...^000000";
 			close;
 			close;
-			break;
 		}
 		}
 
 
 		mes "[Angelic]";
 		mes "[Angelic]";
@@ -1182,7 +1158,8 @@ prt_monk,226,257,6	script	Ill Girl#tu	93,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Veiner====================================================
+// Veiner
+//============================================================
 prt_monk,197,228,3	script	Veiner	89,{
 prt_monk,197,228,3	script	Veiner	89,{
 	mes "[Veiner]";
 	mes "[Veiner]";
 	if(countitem(1081) && tu_acolyte01 == 18){
 	if(countitem(1081) && tu_acolyte01 == 18){
@@ -1225,7 +1202,8 @@ prt_monk,197,228,3	script	Veiner	89,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Hedrick====================================================
+// Hedrick
+//============================================================
 prt_monk,28,260,5	script	Hedrick	50,{
 prt_monk,28,260,5	script	Hedrick	50,{
 	mes "[Hedrick]";
 	mes "[Hedrick]";
 	mes "^333333*Whew!*^000000";
 	mes "^333333*Whew!*^000000";
@@ -1260,7 +1238,8 @@ prt_monk,28,260,5	script	Hedrick	50,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Weapon Merchant====================================================
+// Weapon Merchant
+//============================================================
 prt_monk,136,261,0	script	Weapon Merchant#tu	139,9,9,{
 prt_monk,136,261,0	script	Weapon Merchant#tu	139,9,9,{
 OnTouch:
 OnTouch:
 	if(tu_acolyte01 != 20 || countitem(1081)==0) end;
 	if(tu_acolyte01 != 20 || countitem(1081)==0) end;
@@ -1277,7 +1256,8 @@ OnTouch:
 	close;
 	close;
 }
 }
 
 
-//=================================================Karven====================================================
+// Karven
+//============================================================
 monk_in,103,176,7	script	Karven	60,{
 monk_in,103,176,7	script	Karven	60,{
 	mes "[Karven]";
 	mes "[Karven]";
 	mes "May you rest";
 	mes "May you rest";
@@ -1310,7 +1290,8 @@ monk_in,103,176,7	script	Karven	60,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Gloria====================================================
+// Gloria
+//============================================================
 prt_monk,219,164,3	script	Gloria#tu	95,{
 prt_monk,219,164,3	script	Gloria#tu	95,{
 	mes "[Gloria]";
 	mes "[Gloria]";
 	if(BaseJob != Job_Acolyte){
 	if(BaseJob != Job_Acolyte){
@@ -1365,7 +1346,6 @@ prt_monk,219,164,3	script	Gloria#tu	95,{
 			mes "Wow, I'm touched!";
 			mes "Wow, I'm touched!";
 			emotion e_sob;
 			emotion e_sob;
 			close;
 			close;
-			break;
 		case 2:
 		case 2:
 			mes "[Gloria]";
 			mes "[Gloria]";
 			mes "Leave it to me!";
 			mes "Leave it to me!";
@@ -1374,7 +1354,6 @@ prt_monk,219,164,3	script	Gloria#tu	95,{
 			close2;
 			close2;
 			warp "prontera",116,72;
 			warp "prontera",116,72;
 			end;
 			end;
-			break;
 		}
 		}
 	}
 	}
 	mes "Wow...";
 	mes "Wow...";
@@ -1384,7 +1363,8 @@ prt_monk,219,164,3	script	Gloria#tu	95,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Cleope Verce====================================================  
+// Cleope Verce
+//============================================================
 prt_monk,153,210,3	script	Cleope Verce	95,{
 prt_monk,153,210,3	script	Cleope Verce	95,{
 	mes "[Cleope Verce]";
 	mes "[Cleope Verce]";
 	if(BaseJob != Job_Acolyte){
 	if(BaseJob != Job_Acolyte){
@@ -1557,7 +1537,8 @@ prt_monk,153,210,3	script	Cleope Verce	95,{
 	mes "weather today...";
 	mes "weather today...";
 	close;
 	close;
 }
 }
-//=================================================Range NPC====================================================  
+// Range NPC
+//============================================================
 prt_monk,217,123,0	script	#tu_monk	139,10,10,{
 prt_monk,217,123,0	script	#tu_monk	139,10,10,{
 OnTouch_:
 OnTouch_:
 	if(BaseJob == Job_Acolyte){
 	if(BaseJob == Job_Acolyte){
@@ -1577,7 +1558,8 @@ OnTouch_:
 	end;
 	end;
 }
 }
 
 
-//=================================================Eavesdrop====================================================  
+// Eavesdrop
+//============================================================
 prt_monk,223,123,3	script	Eavesdrop#tu	111,{
 prt_monk,223,123,3	script	Eavesdrop#tu	111,{
 	if(BaseJob != Job_Acolyte){
 	if(BaseJob != Job_Acolyte){
 		mes "^3355FFThere's nothing here.^000000";
 		mes "^3355FFThere's nothing here.^000000";

+ 65 - 119
npc/quests/first_class/tu_archer.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //===== By: ================================================== 
 //= Fix up by Jukka
 //= Fix up by Jukka
 //===== Current Version: ===================================== 
 //===== Current Version: ===================================== 
-//= 1.9
+//= 1.9a
 //===== Compatible With: ===================================== 
 //===== Compatible With: ===================================== 
 //= rAthena SVN (Testet in Trunk 88xx)
 //= rAthena SVN (Testet in Trunk 88xx)
 //===== Description: ========================================= 
 //===== Description: ========================================= 
@@ -20,10 +20,11 @@
 //= 1.7 Added 10.3 dialog and moved Arpesto to hunter skill quest. [Kisuka]
 //= 1.7 Added 10.3 dialog and moved Arpesto to hunter skill quest. [Kisuka]
 //= 1.8 Updated slightly, removed additional emotions from Reiden. [L0ne_W0lf]
 //= 1.8 Updated slightly, removed additional emotions from Reiden. [L0ne_W0lf]
 //= 1.9 Misc. updates. [L0ne_W0lf]
 //= 1.9 Misc. updates. [L0ne_W0lf]
+//= 1.9a Added 'npcskill' command. [Euphy]
 //============================================================ 
 //============================================================ 
 
 
-
-//=================================================Bard Jet====================================================
+// Bard Jet
+//============================================================
 payon_in02,67,65,3	script	Bard Jet#tu	51,{
 payon_in02,67,65,3	script	Bard Jet#tu	51,{
 	mes "[Jet]";
 	mes "[Jet]";
 	mes "Every god never grows old";
 	mes "Every god never grows old";
@@ -158,7 +159,8 @@ payon_in02,67,65,3	script	Bard Jet#tu	51,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Sign====================================================
+// Sign
+//============================================================
 pay_arche,127,154,4	script	Sign#arc	835,{
 pay_arche,127,154,4	script	Sign#arc	835,{
 	mes " ";
 	mes " ";
 	mes " Archer Job Change Office ---> ";
 	mes " Archer Job Change Office ---> ";
@@ -167,7 +169,8 @@ pay_arche,127,154,4	script	Sign#arc	835,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Master Kavaruk====================================================
+// Master Kavaruk
+//============================================================
 payon_in02,54,13,3	script	Master Kavaruk	55,{
 payon_in02,54,13,3	script	Master Kavaruk	55,{
 	mes "[Master Kavaruk]";
 	mes "[Master Kavaruk]";
 	mes "Hello, young one.";
 	mes "Hello, young one.";
@@ -366,7 +369,6 @@ payon_in02,54,13,3	script	Master Kavaruk	55,{
 				mes "extremely capable. I believe";
 				mes "extremely capable. I believe";
 				mes "that you can learn much from her.";
 				mes "that you can learn much from her.";
 				close;
 				close;
-				break;
 			case 2:
 			case 2:
 				mes "[Master Kavaruk]";
 				mes "[Master Kavaruk]";
 				mes "Ah, I see. Well,";
 				mes "Ah, I see. Well,";
@@ -375,7 +377,6 @@ payon_in02,54,13,3	script	Master Kavaruk	55,{
 				mes "ever change your mind, feel";
 				mes "ever change your mind, feel";
 				mes "free to come back.";
 				mes "free to come back.";
 				close;
 				close;
-				break;
 			}
 			}
 		} else if(tu_archer01 == 1 || tu_archer01 == 2){
 		} else if(tu_archer01 == 1 || tu_archer01 == 2){
 			mes "Hmm...?";
 			mes "Hmm...?";
@@ -411,7 +412,8 @@ payon_in02,54,13,3	script	Master Kavaruk	55,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Reidin Corse====================================================
+// Reidin Corse
+//============================================================
 pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 	mes "[Reidin Corse]";
 	mes "[Reidin Corse]";
 	if(MaxWeight - Weight < 2000){
 	if(MaxWeight - Weight < 2000){
@@ -445,7 +447,6 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 				mes "to ask me? You had";
 				mes "to ask me? You had";
 				mes "that look, you know?";
 				mes "that look, you know?";
 				close;
 				close;
-				break;
 			}
 			}
 			mes "[Reidin Corse]";
 			mes "[Reidin Corse]";
 			mes "Fine. I'm an incredibly";
 			mes "Fine. I'm an incredibly";
@@ -477,7 +478,6 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 				mes "back, I'll reconsider";
 				mes "back, I'll reconsider";
 				mes "teaching you.";
 				mes "teaching you.";
 				close;
 				close;
-				break;
 			}
 			}
 			mes "[Reidin Corse]";
 			mes "[Reidin Corse]";
 			mes "Let's see...";
 			mes "Let's see...";
@@ -577,7 +577,6 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 							close2;
 							close2;
 							warp "morocc",156,46;
 							warp "morocc",156,46;
 							end;
 							end;
-							break;
 						case 2:
 						case 2:
 							mes "[Reidin Corse]";
 							mes "[Reidin Corse]";
 							mes "Hm...?";
 							mes "Hm...?";
@@ -586,9 +585,7 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 							mes "do whatever it is you";
 							mes "do whatever it is you";
 							mes "need to do...";
 							mes "need to do...";
 							close;
 							close;
-							break;
 						}
 						}
-						break;
 					case 2:
 					case 2:
 						emotion e_an;
 						emotion e_an;
 						mes "[Reidin Corse]";
 						mes "[Reidin Corse]";
@@ -598,7 +595,6 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 						mes "you come here, you better";
 						mes "you come here, you better";
 						mes "know Level 3 Owl's Eye!";
 						mes "know Level 3 Owl's Eye!";
 						close;
 						close;
-						break;
 					}
 					}
 
 
 				} else {
 				} else {
@@ -617,7 +613,6 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 				mes "teach you all my";
 				mes "teach you all my";
 				mes "archery secrets!";
 				mes "archery secrets!";
 				close;
 				close;
-				break;
 			}
 			}
 		} else if(tu_archer01 == 6){
 		} else if(tu_archer01 == 6){
 			set .@owl, getskilllv(43);
 			set .@owl, getskilllv(43);
@@ -745,14 +740,12 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 					close2;
 					close2;
 					warp "geffen",120,39;
 					warp "geffen",120,39;
 					end;
 					end;
-					break;
 				case 2:
 				case 2:
 					mes "[Reidin Corse]";
 					mes "[Reidin Corse]";
 					mes "You still need";
 					mes "You still need";
 					mes "to get ready?";
 					mes "to get ready?";
 					mes "Hurry it up!";
 					mes "Hurry it up!";
 					close;
 					close;
-					break;
 				}
 				}
 			} else {
 			} else {
 				mes "Eh?";
 				mes "Eh?";
@@ -785,14 +778,12 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 					close2;
 					close2;
 					warp "geffen",120,39;
 					warp "geffen",120,39;
 					end;
 					end;
-					break;
 				case 2:
 				case 2:
 					mes "[Reidin Corse]";
 					mes "[Reidin Corse]";
 					mes "You still need";
 					mes "You still need";
 					mes "to get ready?";
 					mes "to get ready?";
 					mes "Hurry it up!";
 					mes "Hurry it up!";
 					close;
 					close;
-					break;
 				}
 				}
 			} else {
 			} else {
 				mes "Ah, so you've learned";
 				mes "Ah, so you've learned";
@@ -1096,7 +1087,8 @@ pay_arche,103,165,5	script	Reidin Corse#tu	832,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Seisner====================================================
+// Seisner
+//============================================================
 pay_arche,84,139,3	script	Seisner	727,{
 pay_arche,84,139,3	script	Seisner	727,{
 	specialeffect EF_HIT2,"#Target";
 	specialeffect EF_HIT2,"#Target";
 	mes "[Seisner]";
 	mes "[Seisner]";
@@ -1273,7 +1265,6 @@ pay_arche,84,139,3	script	Seisner	727,{
 				mes "[Seisner]";
 				mes "[Seisner]";
 				mes "Someday, I'd like to become a great Archer and use my skills for the good of Rune-Midgard.";
 				mes "Someday, I'd like to become a great Archer and use my skills for the good of Rune-Midgard.";
 				close;
 				close;
-				break;
 			}
 			}
 		}
 		}
 	} else if(tu_archer01 == 2){
 	} else if(tu_archer01 == 2){
@@ -1302,10 +1293,12 @@ pay_arche,84,139,3	script	Seisner	727,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Target====================================================
+// Target
+//============================================================
 pay_arche,76,135,3	script	Target#Target	111,{ end; }	// empty NPC?? [Jukka]
 pay_arche,76,135,3	script	Target#Target	111,{ end; }	// empty NPC?? [Jukka]
 
 
-//=================================================Acolyte====================================================
+// Acolyte
+//============================================================
 pay_fild08,40,83,5	script	Acolyte#tu	95,{
 pay_fild08,40,83,5	script	Acolyte#tu	95,{
 	mes "[Acolyte]";
 	mes "[Acolyte]";
 	if(tu_archer01 == 14){
 	if(tu_archer01 == 14){
@@ -1340,7 +1333,6 @@ pay_fild08,40,83,5	script	Acolyte#tu	95,{
 				mes "I''ll try my very best!";
 				mes "I''ll try my very best!";
 				set tu_archer01, 15;
 				set tu_archer01, 15;
 				close;
 				close;
-				break;
 			case 2:
 			case 2:
 				mes "[Acolyte]";
 				mes "[Acolyte]";
 				mes "Oh... Oh.";
 				mes "Oh... Oh.";
@@ -1350,7 +1342,6 @@ pay_fild08,40,83,5	script	Acolyte#tu	95,{
 				mes "that's alright...";
 				mes "that's alright...";
 				emotion e_sob;
 				emotion e_sob;
 				close;
 				close;
-				break;
 			case 3:
 			case 3:
 				mes "[Acolyte]";
 				mes "[Acolyte]";
 				mes "Eh?!";
 				mes "Eh?!";
@@ -1380,7 +1371,6 @@ pay_fild08,40,83,5	script	Acolyte#tu	95,{
 					set tu_archer01, 15;
 					set tu_archer01, 15;
 					close;
 					close;
 				}
 				}
-				break;
 			}
 			}
 			end;
 			end;
 		} else {
 		} else {
@@ -1393,32 +1383,21 @@ pay_fild08,40,83,5	script	Acolyte#tu	95,{
 			mes "Wait, I know...";
 			mes "Wait, I know...";
 			mes "Y-you're... ^666666*Yawn*^000000";
 			mes "Y-you're... ^666666*Yawn*^000000";
 			mes "So sleepy. Take this for now...";
 			mes "So sleepy. Take this for now...";
-			set .@kurae_heal, rand(1,4);
-			if(.@kurae_heal == 1){
-				unitskilluseid getcharid(3),28,3;
-			} else if(.@kurae_heal == 2){
-				unitskilluseid getcharid(3),28,9;
-			} else if(.@kurae_heal == 3){
-				unitskilluseid getcharid(3),28,10;
-			} else if(.@kurae_heal == 4){
+			switch(rand(4)) {
+				case 0: npcskill "AL_HEAL",3,90,62; break;
+				case 1: npcskill "AL_HEAL",9,90,62; break;
+				case 2: npcskill "AL_HEAL",8,90,62; break;
+				case 3: break;
 			}
 			}
-
-			set .@kurae_agi, rand(1,3);
-			if(.@kurae_agi == 1){
-				unitskilluseid getcharid(3),29,0;
-			} else if(.@kurae_agi == 2){
-				unitskilluseid getcharid(3),29,5;
-			} else if(.@kurae_agi == 3){
-				unitskilluseid getcharid(3),29,10;
+			switch(rand(3)) {
+				case 0: npcskill "AL_INCAGI",1,0,0; break;
+				case 1: npcskill "AL_INCAGI",5,0,0; break;
+				case 2: npcskill "AL_INCAGI",10,0,0; break;
 			}
 			}
-
-			set .@kurae_bls, rand(1,3);
-			if(.@kurae_bls == 1){
-				unitskilluseid getcharid(3),34,0;
-			} else if(.@kurae_bls == 2){
-				unitskilluseid getcharid(3),34,5;
-			} else if(.@kurae_bls == 3){
-				unitskilluseid getcharid(3),34,10;
+			switch(rand(3)) {
+				case 0: npcskill "AL_BLESSING",1,0,0; break;
+				case 1: npcskill "AL_BLESSING",5,0,0; break;
+				case 2: npcskill "AL_BLESSING",10,0,0; break;
 			}
 			}
 			close;
 			close;
 		}
 		}
@@ -1439,64 +1418,29 @@ pay_fild08,40,83,5	script	Acolyte#tu	95,{
 			mes "^666666Zzzz^000000--Oooh!";
 			mes "^666666Zzzz^000000--Oooh!";
 			mes "J-just take this before";
 			mes "J-just take this before";
 			mes "I fall asleep again~! ^666666*Yawn*^000000";
 			mes "I fall asleep again~! ^666666*Yawn*^000000";
-
-			set .@kurae_heal, rand(1,4);
-			if(.@kurae_heal == 1){
-				unitskilluseid getcharid(3),28,3;
-			} else if(.@kurae_heal == 2){
-				unitskilluseid getcharid(3),28,10;
-			} else if(.@kurae_heal == 3){
-				unitskilluseid getcharid(3),28,8;
-			}
-
-			set .@kurae_agi, rand(1,3);
-			if(.@kurae_agi == 1){
-				unitskilluseid getcharid(3),29,0;
-			} else if(.@kurae_agi == 2){
-				unitskilluseid getcharid(3),29,5;
-			} else if(.@kurae_agi == 3){
-				unitskilluseid getcharid(3),29,10;
-			}
-
-			set .@kurae_bls, rand(1,3);
-			if(.@kurae_bls == 1){
-				unitskilluseid getcharid(3),34,0;
-			} else if(.@kurae_bls == 2){
-				unitskilluseid getcharid(3),34,5;
-			} else if(.@kurae_bls == 3){
-				unitskilluseid getcharid(3),34,10;
-			}
-			close;
 		} else {
 		} else {
 			mes "Okay~!";
 			mes "Okay~!";
 			mes "Let me try";
 			mes "Let me try";
 			mes "casting a spell";
 			mes "casting a spell";
 			mes "to help you! Yaa~p!";
 			mes "to help you! Yaa~p!";
-
-			set .@kurae_heal, rand(1,3);
-			if(.@kurae_heal == 1){
-				unitskilluseid getcharid(3),28,3;
-			} else if(.@kurae_heal == 2){
-				unitskilluseid getcharid(3),28,10;
-			} else if(.@kurae_heal == 3){
-				unitskilluseid getcharid(3),28,8;
-			}
-
-			set .@kurae_agi, rand(1,2);
-			if(.@kurae_agi == 1){
-				unitskilluseid getcharid(3),29,10;
-			} else if(.@kurae_agi == 2){
-				unitskilluseid getcharid(3),29,5;
-			}
-
-			set .@kurae_bls, rand(1,2);
-			if(.@kurae_bls == 1){
-				unitskilluseid getcharid(3),34,10;
-			} else if(.@kurae_bls == 2){
-				unitskilluseid getcharid(3),34,5;
-			}
-			close;
 		}
 		}
+		switch(rand(4)) {
+			case 0: npcskill "AL_HEAL",3,90,62; break;
+			case 1: npcskill "AL_HEAL",10,90,62; break;
+			case 2: npcskill "AL_HEAL",8,90,62; break;
+			case 3: break;
+		}
+		switch(rand(3)) {
+			case 0: npcskill "AL_INCAGI",1,0,0; break;
+			case 1: npcskill "AL_INCAGI",5,0,0; break;
+			case 2: npcskill "AL_INCAGI",10,0,0; break;
+		}
+		switch(rand(3)) {
+			case 0: npcskill "AL_BLESSING",1,0,0; break;
+			case 1: npcskill "AL_BLESSING",5,0,0; break;
+			case 2: npcskill "AL_BLESSING",10,0,0; break;
+		}
+		close;
 	}
 	}
 	mes "...";
 	mes "...";
 	mes "W-why does";
 	mes "W-why does";
@@ -1507,7 +1451,8 @@ pay_fild08,40,83,5	script	Acolyte#tu	95,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Alchemist Guildmember====================================================
+// Alchemist Guildmember
+//============================================================
 pay_arche,130,113,3	script	Alchemist Guildmember#tu	740,{
 pay_arche,130,113,3	script	Alchemist Guildmember#tu	740,{
 	mes "[Alchemist Guildmember]";
 	mes "[Alchemist Guildmember]";
 	if(tu_archer02 > 0){
 	if(tu_archer02 > 0){
@@ -1550,7 +1495,6 @@ pay_arche,130,113,3	script	Alchemist Guildmember#tu	740,{
 				}
 				}
 				set Zeny,Zeny+.@total_zeny;
 				set Zeny,Zeny+.@total_zeny;
 				close;
 				close;
-				break;
 			case 2:
 			case 2:
 				mes "[Alchemist Guildmember]";
 				mes "[Alchemist Guildmember]";
 				mes "Seriously...";
 				mes "Seriously...";
@@ -1558,7 +1502,6 @@ pay_arche,130,113,3	script	Alchemist Guildmember#tu	740,{
 				mes "The Alchemist Guild really needs lots of new supplies to keep our Flora field running!";
 				mes "The Alchemist Guild really needs lots of new supplies to keep our Flora field running!";
 				emotion e_sob;
 				emotion e_sob;
 				close;
 				close;
-				break;
 			}
 			}
 		} else {
 		} else {
 			mes "I don't know if you've heard";
 			mes "I don't know if you've heard";
@@ -1582,7 +1525,8 @@ pay_arche,130,113,3	script	Alchemist Guildmember#tu	740,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Arthail====================================================
+// Arthail
+//============================================================
 prontera,126,335,5	script	Arthail	51,{
 prontera,126,335,5	script	Arthail	51,{
 	mes "[Arthail]";
 	mes "[Arthail]";
 	if(tu_archer02 < 3){
 	if(tu_archer02 < 3){
@@ -1724,8 +1668,7 @@ prontera,126,335,5	script	Arthail	51,{
 		mes "I'd better go check";
 		mes "I'd better go check";
 		mes "this out on my own.";
 		mes "this out on my own.";
 		set tu_archer02, 5;
 		set tu_archer02, 5;
-		close2;
-		end;
+		close;
 
 
 	} else if(tu_archer02 > 4 && tu_archer02 < 7){
 	} else if(tu_archer02 > 4 && tu_archer02 < 7){
 		mes "^333333Zzzzz...^000000";
 		mes "^333333Zzzzz...^000000";
@@ -1756,16 +1699,15 @@ prontera,126,335,5	script	Arthail	51,{
 		mes "have a song that";
 		mes "have a song that";
 		mes "I can share with you.";
 		mes "I can share with you.";
 		set tu_archer02, 9;
 		set tu_archer02, 9;
-		close2;
-		end;
+		close;
 	}
 	}
 	mes "...";
 	mes "...";
 	mes "......";
 	mes "......";
-	close2;
-	end;
+	close;
 }
 }
 
 
-//=================================================New Guild Master====================================================
+// New Guild Master
+//============================================================
 prontera,167,281,3	script	New Guild Master#tu	753,{
 prontera,167,281,3	script	New Guild Master#tu	753,{
 	mes "[New Guild Master]";
 	mes "[New Guild Master]";
 	mes "Hearken, all";
 	mes "Hearken, all";
@@ -1787,7 +1729,8 @@ prontera,167,281,3	script	New Guild Master#tu	753,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Mage====================================================
+// Mage
+//============================================================
 prontera,144,301,5	script	Mage#tu	123,{
 prontera,144,301,5	script	Mage#tu	123,{
 	mes "[Mage]";
 	mes "[Mage]";
 	mes "Did you see that";
 	mes "Did you see that";
@@ -1814,7 +1757,8 @@ prontera,144,301,5	script	Mage#tu	123,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Minister====================================================
+// Minister
+//============================================================
 prt_castle,76,165,6	script	Minister#tu	55,{
 prt_castle,76,165,6	script	Minister#tu	55,{
 	mes "[Minister]";
 	mes "[Minister]";
 	mes "The royal family";
 	mes "The royal family";
@@ -1873,7 +1817,8 @@ prt_castle,76,165,6	script	Minister#tu	55,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Range NPC====================================================
+// Range NPC
+//============================================================
 prt_castle,94,150,4	script	#sound_tu	139,6,6,{
 prt_castle,94,150,4	script	#sound_tu	139,6,6,{
 OnTouch_:
 OnTouch_:
 	if(tu_archer02 == 6) {
 	if(tu_archer02 == 6) {
@@ -1887,7 +1832,8 @@ OnTouch_:
 	end;
 	end;
 }
 }
 
 
-//=================================================Bishop Maugins====================================================
+// Bishop Maugins
+//============================================================
 monk_in,19,43,1	script	Bishop Maugins	60,{
 monk_in,19,43,1	script	Bishop Maugins	60,{
 	mes "[Bishop Maugins]";
 	mes "[Bishop Maugins]";
 	if(tu_archer02 == 7){
 	if(tu_archer02 == 7){
@@ -1922,8 +1868,8 @@ monk_in,19,43,1	script	Bishop Maugins	60,{
 		mes "Good luck on";
 		mes "Good luck on";
 		mes "your journeys,";
 		mes "your journeys,";
 		mes "brave adventurer.";
 		mes "brave adventurer.";
-		unitskilluseid getcharid(3),29,10;
-		unitskilluseid getcharid(3),34,10;
+		npcskill "AL_INCAGI",10,0,0;
+		npcskill "AL_BLESSING",10,0,0;
 		close;
 		close;
 	}
 	}
 	mes "I'm sorry, but I have";
 	mes "I'm sorry, but I have";

+ 32 - 33
npc/quests/first_class/tu_ma_th01.txt

@@ -16,8 +16,8 @@
 //= 1.3 Misc. updates. [L0ne_W0lf]
 //= 1.3 Misc. updates. [L0ne_W0lf]
 //============================================================ 
 //============================================================ 
 
 
-
-//=================================================Battle Traces 1====================================================
+// Battle Traces 1
+//============================================================
 moc_fild12,166,369,0	script	Trace of Battle#1	844,{
 moc_fild12,166,369,0	script	Trace of Battle#1	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 5){
 		if(tu_thief01 < 5){
@@ -107,7 +107,8 @@ moc_fild12,166,369,0	script	Trace of Battle#1	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 2====================================================
+// Battle Traces 2
+//============================================================
 moc_fild12,173,215,0	script	Trace of Battle#2	844,{
 moc_fild12,173,215,0	script	Trace of Battle#2	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 9){
 		if(tu_thief01 < 9){
@@ -156,7 +157,8 @@ moc_fild12,173,215,0	script	Trace of Battle#2	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 3====================================================
+// Battle Traces 3
+//============================================================
 moc_fild12,276,165,0	script	Trace of Battle#3	844,{
 moc_fild12,276,165,0	script	Trace of Battle#3	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 10){
 		if(tu_thief01 < 10){
@@ -208,7 +210,8 @@ moc_fild12,276,165,0	script	Trace of Battle#3	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 4====================================================
+// Battle Traces 4
+//============================================================
 moc_fild11,39,163,0	script	Trace of Battle#4	844,{
 moc_fild11,39,163,0	script	Trace of Battle#4	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 11){
 		if(tu_thief01 < 11){
@@ -267,7 +270,8 @@ moc_fild11,39,163,0	script	Trace of Battle#4	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 5====================================================
+// Battle Traces 5
+//============================================================
 moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 12){
 		if(tu_thief01 < 12){
@@ -305,7 +309,6 @@ moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 						mes "is nothing to be";
 						mes "is nothing to be";
 						mes "concerned about.";
 						mes "concerned about.";
 						close;
 						close;
-						break;
 					case 2:
 					case 2:
 						mes "["+strcharinfo(0)+"]";
 						mes "["+strcharinfo(0)+"]";
 						mes "Hey... There's";
 						mes "Hey... There's";
@@ -320,9 +323,7 @@ moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 						mes "of cloth from the puddle";
 						mes "of cloth from the puddle";
 						mes "of poison and keep it with you.^000000";
 						mes "of poison and keep it with you.^000000";
 						close;
 						close;
-						break;
 					}
 					}
-					break;
 				case 2:
 				case 2:
 					mes "["+strcharinfo(0)+"]";
 					mes "["+strcharinfo(0)+"]";
 					mes "Hmm...";
 					mes "Hmm...";
@@ -331,7 +332,6 @@ moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 					mes "trail, rather than stop to";
 					mes "trail, rather than stop to";
 					mes "investigate this scene.";
 					mes "investigate this scene.";
 					close;
 					close;
-					break;
 				}
 				}
 			}
 			}
 		} else {
 		} else {
@@ -378,7 +378,6 @@ moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 						mes "is nothing to be";
 						mes "is nothing to be";
 						mes "concerned about.";
 						mes "concerned about.";
 						close;
 						close;
-						break;
 					case 2:
 					case 2:
 						mes "["+strcharinfo(0)+"]";
 						mes "["+strcharinfo(0)+"]";
 						mes "Hey... There's";
 						mes "Hey... There's";
@@ -393,9 +392,7 @@ moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 						mes "of cloth from the puddle";
 						mes "of cloth from the puddle";
 						mes "of poison and keep it with you.^000000";
 						mes "of poison and keep it with you.^000000";
 						close;
 						close;
-						break;
 					}
 					}
-					break;
 				case 2:
 				case 2:
 					mes "["+strcharinfo(0)+"]";
 					mes "["+strcharinfo(0)+"]";
 					mes "Hmm...";
 					mes "Hmm...";
@@ -404,7 +401,6 @@ moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 					mes "trail, rather than stop to";
 					mes "trail, rather than stop to";
 					mes "investigate this scene.";
 					mes "investigate this scene.";
 					close;
 					close;
-					break;
 				}
 				}
 			}
 			}
 		} else {
 		} else {
@@ -423,7 +419,8 @@ moc_fild11,205,52,0	script	Trace of Battle#5	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 6====================================================
+// Battle Traces 6
+//============================================================
 moc_fild11,226,235,0	script	Trace of Battle#6	844,{
 moc_fild11,226,235,0	script	Trace of Battle#6	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 13){
 		if(tu_thief01 < 13){
@@ -465,7 +462,8 @@ moc_fild11,226,235,0	script	Trace of Battle#6	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 7====================================================
+// Battle Traces 7
+//============================================================
 moc_fild11,184,342,0	script	Trace of Battle#7	844,{
 moc_fild11,184,342,0	script	Trace of Battle#7	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 13){
 		if(tu_thief01 < 13){
@@ -505,7 +503,8 @@ moc_fild11,184,342,0	script	Trace of Battle#7	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 8====================================================
+// Battle Traces 8
+//============================================================
 moc_fild17,213,358,0	script	Trace of Battle#8	844,{
 moc_fild17,213,358,0	script	Trace of Battle#8	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 13){
 		if(tu_thief01 < 13){
@@ -565,7 +564,8 @@ moc_fild17,213,358,0	script	Trace of Battle#8	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 9====================================================
+// Battle Traces 9
+//============================================================
 moc_fild17,228,274,0	script	Trace of Battle#9	844,{
 moc_fild17,228,274,0	script	Trace of Battle#9	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 14){
 		if(tu_thief01 < 14){
@@ -659,7 +659,8 @@ moc_fild17,228,274,0	script	Trace of Battle#9	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 10====================================================
+// Battle Traces 10
+//============================================================
 moc_fild17,34,292,0	script	Trace of Battle#10	844,{
 moc_fild17,34,292,0	script	Trace of Battle#10	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 16){
 		if(tu_thief01 < 16){
@@ -711,7 +712,8 @@ moc_fild17,34,292,0	script	Trace of Battle#10	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 11====================================================
+// Battle Traces 11
+//============================================================
 moc_fild18,346,296,0	script	Trace of Battle#11	844,{
 moc_fild18,346,296,0	script	Trace of Battle#11	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 17){
 		if(tu_thief01 < 17){
@@ -767,7 +769,8 @@ moc_fild18,346,296,0	script	Trace of Battle#11	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 12====================================================
+// Battle Traces 12
+//============================================================
 moc_fild18,309,257,0	script	Trace of Battle#12	844,{
 moc_fild18,309,257,0	script	Trace of Battle#12	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 18){
 		if(tu_thief01 < 18){
@@ -819,7 +822,8 @@ moc_fild18,309,257,0	script	Trace of Battle#12	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 13====================================================
+// Battle Traces 13
+//============================================================
 moc_fild18,177,333,0	script	Trace of Battle#13	844,{
 moc_fild18,177,333,0	script	Trace of Battle#13	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 19){
 		if(tu_thief01 < 19){
@@ -872,7 +876,8 @@ moc_fild18,177,333,0	script	Trace of Battle#13	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 14====================================================
+// Battle Traces 14
+//============================================================
 moc_fild18,111,303,0	script	Trace of Battle#14	844,{
 moc_fild18,111,303,0	script	Trace of Battle#14	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 20){
 		if(tu_thief01 < 20){
@@ -924,7 +929,8 @@ moc_fild18,111,303,0	script	Trace of Battle#14	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 15====================================================
+// Battle Traces 15
+//============================================================
 moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 21){
 		if(tu_thief01 < 21){
@@ -948,7 +954,6 @@ moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 				mes "in which the battle";
 				mes "in which the battle";
 				mes "continues...^000000";
 				mes "continues...^000000";
 				close;
 				close;
-				break;
 			case 2:
 			case 2:
 				mes "^3355FFYou find a bunch of";
 				mes "^3355FFYou find a bunch of";
 				mes "traps that use different";
 				mes "traps that use different";
@@ -958,7 +963,6 @@ moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 				mes "haven't been triggered.^000000";
 				mes "haven't been triggered.^000000";
 				set tu_thief01, 22;
 				set tu_thief01, 22;
 				close;
 				close;
-				break;
 			}
 			}
 		} else if(tu_thief01 == 22){
 		} else if(tu_thief01 == 22){
 			set .@trap_tm, rand(1,3);
 			set .@trap_tm, rand(1,3);
@@ -988,14 +992,12 @@ moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 						set tu_thief01, 23;
 						set tu_thief01, 23;
 						close;
 						close;
 					}
 					}
-					break;
 				case 2:
 				case 2:
 					mes "["+strcharinfo(0)+"]";
 					mes "["+strcharinfo(0)+"]";
 					mes "I guess...";
 					mes "I guess...";
 					mes "I'll try investigating";
 					mes "I'll try investigating";
 					mes "this area a little more?";
 					mes "this area a little more?";
 					close;
 					close;
-					break;
 				}
 				}
 			} else {
 			} else {
 				mes "^3355FFBy sheer accident,";
 				mes "^3355FFBy sheer accident,";
@@ -1106,7 +1108,6 @@ moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 				mes "in which the battle";
 				mes "in which the battle";
 				mes "continues...^000000";
 				mes "continues...^000000";
 				close;
 				close;
-				break;
 			case 2:
 			case 2:
 				mes "^3355FFYou find a bunch of";
 				mes "^3355FFYou find a bunch of";
 				mes "traps that use different";
 				mes "traps that use different";
@@ -1116,7 +1117,6 @@ moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 				mes "haven't been triggered.^000000";
 				mes "haven't been triggered.^000000";
 				set tu_magician01, 22;
 				set tu_magician01, 22;
 				close;
 				close;
-				break;
 			}
 			}
 		} else if(tu_magician01 == 22){
 		} else if(tu_magician01 == 22){
 			set .@trap_tm, rand(1,3);
 			set .@trap_tm, rand(1,3);
@@ -1146,14 +1146,12 @@ moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 						set tu_magician01, 23;
 						set tu_magician01, 23;
 						close;
 						close;
 					}
 					}
-					break;
 				case 2:
 				case 2:
 					mes "["+strcharinfo(0)+"]";
 					mes "["+strcharinfo(0)+"]";
 					mes "I guess...";
 					mes "I guess...";
 					mes "I'll try investigating";
 					mes "I'll try investigating";
 					mes "this area a little more?";
 					mes "this area a little more?";
 					close;
 					close;
-					break;
 				}
 				}
 			} else {
 			} else {
 				mes "^3355FFBy sheer accident,";
 				mes "^3355FFBy sheer accident,";
@@ -1254,7 +1252,8 @@ moc_fild18,109,197,0	script	Trace of Battle#15	844,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Battle Traces 16====================================================
+// Battle Traces 16
+//============================================================
 moc_fild18,156,96,0	script	Trace of Battle#16	844,{
 moc_fild18,156,96,0	script	Trace of Battle#16	844,{
 	if(BaseClass == Job_Thief){
 	if(BaseClass == Job_Thief){
 		if(tu_thief01 < 25){
 		if(tu_thief01 < 25){

+ 5 - 15
npc/quests/first_class/tu_magician01.txt

@@ -16,15 +16,15 @@
 //= 1.3 Misc. updates. [L0ne_W0lf]
 //= 1.3 Misc. updates. [L0ne_W0lf]
 //============================================================ 
 //============================================================ 
 
 
-
-//=================================================Sign====================================================
+// Sign
+//============================================================
 geffen,61,174,4	script	Sign#M	111,{
 geffen,61,174,4	script	Sign#M	111,{
 	mes "- Mage Job Change -";
 	mes "- Mage Job Change -";
 	close;
 	close;
 }
 }
 
 
-
-//=================================================New Mage Manager====================================================
+// New Mage Manager
+//============================================================
 geffen,67,180,4	script	New Mage Manager#M	102,{
 geffen,67,180,4	script	New Mage Manager#M	102,{
 	mes "[Mana]";
 	mes "[Mana]";
 	if(Class == Job_Novice){
 	if(Class == Job_Novice){
@@ -129,9 +129,8 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 		mes "continue this later, okay?";
 		mes "continue this later, okay?";
 		set tu_magician01, 1;
 		set tu_magician01, 1;
 		getexp BaseLevel*3,BaseLevel*2;
 		getexp BaseLevel*3,BaseLevel*2;
-		//misceffect EF_HIT5;
+		specialeffect2 EF_HIT5;
 		close;
 		close;
-		break;
 	case 1:
 	case 1:
 		mes "Are you ready";
 		mes "Are you ready";
 		mes "to continue our";
 		mes "to continue our";
@@ -387,7 +386,6 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 					set tu_mana,0;
 					set tu_mana,0;
 				}
 				}
 				close;
 				close;
-				break;
 			}
 			}
 		}
 		}
 		break;
 		break;
@@ -469,9 +467,7 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 		set tu_magician01, 3;
 		set tu_magician01, 3;
 		getexp 40,20;
 		getexp 40,20;
 		specialeffect2 EF_HIT5;
 		specialeffect2 EF_HIT5;
-
 		close;
 		close;
-		break;
 	case 3:
 	case 3:
 		mes "Ah, you're back?";
 		mes "Ah, you're back?";
 		mes "Let's see if you gathered";
 		mes "Let's see if you gathered";
@@ -501,7 +497,6 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 			specialeffect2 EF_HIT5;
 			specialeffect2 EF_HIT5;
 			close;
 			close;
 		}
 		}
-		break;
 	case 4:
 	case 4:
 		mes "So...";
 		mes "So...";
 		mes "Did you get";
 		mes "Did you get";
@@ -530,7 +525,6 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 			specialeffect2 EF_HIT5;
 			specialeffect2 EF_HIT5;
 			close;
 			close;
 		}
 		}
-		break;
 	case 5:
 	case 5:
 		mes "Now I'll tell you";
 		mes "Now I'll tell you";
 		mes "what I know about the";
 		mes "what I know about the";
@@ -735,7 +729,6 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 			}
 			}
 		}
 		}
 		close;
 		close;
-		break;
 	case 6:
 	case 6:
 		mes "Oh good, you're back.";
 		mes "Oh good, you're back.";
 		mes "Let me tell you about";
 		mes "Let me tell you about";
@@ -780,7 +773,6 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 			mes "and ask me later, okay?";
 			mes "and ask me later, okay?";
 			close;
 			close;
 		}
 		}
-		break;
 	case 7:
 	case 7:
 		mes "I don't know";
 		mes "I don't know";
 		mes "what kind of work";
 		mes "what kind of work";
@@ -788,7 +780,6 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 		mes "for you, but hopefully";
 		mes "for you, but hopefully";
 		mes "it won't be too difficult.";
 		mes "it won't be too difficult.";
 		close;
 		close;
-		break;
 	case 27:
 	case 27:
 		mes "Yierhan just sent me";
 		mes "Yierhan just sent me";
 		mes "a message, saying that";
 		mes "a message, saying that";
@@ -821,7 +812,6 @@ geffen,67,180,4	script	New Mage Manager#M	102,{
 		set Zeny, Zeny + 3000;
 		set Zeny, Zeny + 3000;
 		getexp 300,100;
 		getexp 300,100;
 		close;
 		close;
-		break;
 	default:
 	default:
 		if(tu_magician01 < 27){
 		if(tu_magician01 < 27){
 			mes "So...";
 			mes "So...";

+ 13 - 54
npc/quests/first_class/tu_merchant.txt

@@ -16,8 +16,8 @@
 //= 1.3 Misc. updates. [L0ne_W0lf]
 //= 1.3 Misc. updates. [L0ne_W0lf]
 //============================================================ 
 //============================================================ 
 
 
-
-//=================================================Guarnien====================================================
+// Guarnien
+//============================================================
 alberta_in,70,51,5	script	Guarnien	98,{
 alberta_in,70,51,5	script	Guarnien	98,{
 	mes "[Guarnien]";
 	mes "[Guarnien]";
 	if(Class != Job_Merchant && Class != Job_Baby_Merchant){
 	if(Class != Job_Merchant && Class != Job_Baby_Merchant){
@@ -48,7 +48,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 		mes "If you can be sincerely kind to everyone that you meet, you'll";
 		mes "If you can be sincerely kind to everyone that you meet, you'll";
 		mes "have no problem.";
 		mes "have no problem.";
 		close;
 		close;
-		break;
 	case 16:
 	case 16:
 		mes "So...";
 		mes "So...";
 		mes "How much have";
 		mes "How much have";
@@ -93,7 +92,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 		mes "the mood strikes you.";
 		mes "the mood strikes you.";
 		mes "Good luck to you~";
 		mes "Good luck to you~";
 		close;
 		close;
-		break;
 	case 15:
 	case 15:
 		mes "I believe it's time";
 		mes "I believe it's time";
 		mes "for my final lecture.";
 		mes "for my final lecture.";
@@ -140,7 +138,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			set tu_merchant, 17;
 			set tu_merchant, 17;
 			completequest 8239;
 			completequest 8239;
 			getexp 199,69;
 			getexp 199,69;
-
 			next;
 			next;
 		} else {
 		} else {
 			mes "[Guarnien]";
 			mes "[Guarnien]";
@@ -166,7 +163,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 		mes "the mood strikes you.";
 		mes "the mood strikes you.";
 		mes "Good luck to you~";
 		mes "Good luck to you~";
 		close;
 		close;
-		break;
 	case 14:
 	case 14:
 		mes "So, have you";
 		mes "So, have you";
 		mes "learned Push Cart up";
 		mes "learned Push Cart up";
@@ -208,7 +204,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			mes "Cart skill. I hope that helps.";
 			mes "Cart skill. I hope that helps.";
 			close;
 			close;
 		}
 		}
-		break;
 	case 13:
 	case 13:
 		mes "Now to talk about";
 		mes "Now to talk about";
 		mes "^871F78Push Cart^000000. First off, you need to know Level 5 Increase Weight Limit before you can even learn the Push Cart skill.";
 		mes "^871F78Push Cart^000000. First off, you need to know Level 5 Increase Weight Limit before you can even learn the Push Cart skill.";
@@ -252,7 +247,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			erasequest 8237;
 			erasequest 8237;
 			setquest 8238;
 			setquest 8238;
 			getexp 186,60;
 			getexp 186,60;
-
 			next;
 			next;
 			mes "[Guarnien]";
 			mes "[Guarnien]";
 			mes "Next time, I'll talk about the skill that sets Merchants apart from all the other classes: ^871F78Vending^000000. So don't miss it!";
 			mes "Next time, I'll talk about the skill that sets Merchants apart from all the other classes: ^871F78Vending^000000. So don't miss it!";
@@ -267,7 +261,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			set tu_merchant, 14;
 			set tu_merchant, 14;
 			close;
 			close;
 		}
 		}
-		break;
 	case 12:
 	case 12:
 		mes "So...";
 		mes "So...";
 		mes "How is it going";
 		mes "How is it going";
@@ -312,7 +305,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			mes "There's no rush, but I won't be able to lecture on anything until you finish this little task.";
 			mes "There's no rush, but I won't be able to lecture on anything until you finish this little task.";
 			close;
 			close;
 		}
 		}
-		break;
 	case 11:
 	case 11:
 		mes "Ah, ready to";
 		mes "Ah, ready to";
 		mes "learn already,";
 		mes "learn already,";
@@ -365,7 +357,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			mes "Do your best~";
 			mes "Do your best~";
 			close;
 			close;
 		}
 		}
-		break;
 	case 10:
 	case 10:
 		mes "Let me see those";
 		mes "Let me see those";
 		mes "Red Potions. Now,";
 		mes "Red Potions. Now,";
@@ -386,7 +377,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 		mes "Now, why don't you go to Prontera and try to buy 10 Red Potions from an NPC for the cheapest price again?";
 		mes "Now, why don't you go to Prontera and try to buy 10 Red Potions from an NPC for the cheapest price again?";
 		set tu_merchant, rand(6,8);
 		set tu_merchant, rand(6,8);
 		close;
 		close;
-		break;
 	case 9:
 	case 9:
 		mes "Let me see those";
 		mes "Let me see those";
 		mes "Red Potions. Ah, it seems you researched the market and bought the cheapest ones! Great work!";
 		mes "Red Potions. Ah, it seems you researched the market and bought the cheapest ones! Great work!";
@@ -398,7 +388,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 		mes "Alright, next time, we'll talk about the skill that you can learn after knowing how to Discount:";
 		mes "Alright, next time, we'll talk about the skill that you can learn after knowing how to Discount:";
 		mes "^871F78Over Charge^000000.";
 		mes "^871F78Over Charge^000000.";
 		close;
 		close;
-		break;
 	case 6:
 	case 6:
 	case 7:
 	case 7:
 	case 8:
 	case 8:
@@ -412,7 +401,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 		mes "[Guarnien]";
 		mes "[Guarnien]";
 		mes "First, you'll probably want to research the market price for Red Potions. And always, be careful of scammers and cheats!";
 		mes "First, you'll probably want to research the market price for Red Potions. And always, be careful of scammers and cheats!";
 		close;
 		close;
-		break;
 	case 5:
 	case 5:
 		mes "Alright...";
 		mes "Alright...";
 		mes "I've given it some thought and I've come up with a little challenge for you. Bring me... 10 Red Potions!";
 		mes "I've given it some thought and I've come up with a little challenge for you. Bring me... 10 Red Potions!";
@@ -433,7 +421,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 		set tu_merchant, rand(6,8);
 		set tu_merchant, rand(6,8);
 		warp "prontera",155,46;
 		warp "prontera",155,46;
 		end;
 		end;
-		break;
 	case 4:
 	case 4:
 		mes "So, how is it going with learning the Discount skill? Like I always say, if you can't make a bargain, you can't be a Merchant!";
 		mes "So, how is it going with learning the Discount skill? Like I always say, if you can't make a bargain, you can't be a Merchant!";
 		next;
 		next;
@@ -467,7 +454,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			mes "Well, you should be able to reach that goal soon. After all, it's one of the basics of being a Merchant!";
 			mes "Well, you should be able to reach that goal soon. After all, it's one of the basics of being a Merchant!";
 			close;
 			close;
 		}
 		}
-		break;
 	case 3:
 	case 3:
 		mes "Ah, you're back!";
 		mes "Ah, you're back!";
 		mes "Now, I was going";
 		mes "Now, I was going";
@@ -525,7 +511,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			setquest 8232;
 			setquest 8232;
 			close;
 			close;
 		}
 		}
-		break;
 	case 2:
 	case 2:
 		mes "Ah, you've come back to learn more. Let's see, what was I going to tell you about... Right, Mammonite!";
 		mes "Ah, you've come back to learn more. Let's see, what was I going to tell you about... Right, Mammonite!";
 		next;
 		next;
@@ -560,7 +545,6 @@ alberta_in,70,51,5	script	Guarnien	98,{
 			setquest 8231;
 			setquest 8231;
 			close;
 			close;
 		}
 		}
-		break;
 	case 1:
 	case 1:
 		mes "So...";
 		mes "So...";
 		mes "Did you learn the";
 		mes "Did you learn the";
@@ -690,8 +674,9 @@ alberta_in,70,51,5	script	Guarnien	98,{
 		close;
 		close;
 	}
 	}
 }
 }
-	
-//=================================================Sagle====================================================
+
+// Sagle
+//============================================================
 prontera,66,111,3	script	Sagle	82,{
 prontera,66,111,3	script	Sagle	82,{
 	mes "[Sagle]";
 	mes "[Sagle]";
 	if(tu_merchant == 8){
 	if(tu_merchant == 8){
@@ -731,7 +716,6 @@ prontera,66,111,3	script	Sagle	82,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Sagle]";
 			mes "[Sagle]";
 			mes "Alright...";
 			mes "Alright...";
@@ -740,7 +724,6 @@ prontera,66,111,3	script	Sagle	82,{
 			mes "these potions";
 			mes "these potions";
 			mes "are sold out!";
 			mes "are sold out!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_merchant == 7){
 	if(tu_merchant == 7){
@@ -781,7 +764,6 @@ prontera,66,111,3	script	Sagle	82,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Sagle]";
 			mes "[Sagle]";
 			mes "Alright...";
 			mes "Alright...";
@@ -790,7 +772,6 @@ prontera,66,111,3	script	Sagle	82,{
 			mes "these potions";
 			mes "these potions";
 			mes "are sold out!";
 			mes "are sold out!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_merchant == 6){
 	if(tu_merchant == 6){
@@ -830,7 +811,6 @@ prontera,66,111,3	script	Sagle	82,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Sagle]";
 			mes "[Sagle]";
 			mes "Alright...";
 			mes "Alright...";
@@ -839,7 +819,6 @@ prontera,66,111,3	script	Sagle	82,{
 			mes "these potions";
 			mes "these potions";
 			mes "are sold out!";
 			mes "are sold out!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	mes "It's on the tip";
 	mes "It's on the tip";
@@ -855,7 +834,8 @@ prontera,66,111,3	script	Sagle	82,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Kellion====================================================
+// Kellion
+//============================================================
 prontera,93,330,3	script	Kellion	97,{
 prontera,93,330,3	script	Kellion	97,{
 	mes "[Kellion]";
 	mes "[Kellion]";
 	if(tu_merchant == 8){
 	if(tu_merchant == 8){
@@ -888,7 +868,6 @@ prontera,93,330,3	script	Kellion	97,{
 				getitem 569,10; //Novice_Potion
 				getitem 569,10; //Novice_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Kellion]";
 			mes "[Kellion]";
 			mes "Well, I'm sorry";
 			mes "Well, I'm sorry";
@@ -896,7 +875,6 @@ prontera,93,330,3	script	Kellion	97,{
 			mes "I guess I'll see";
 			mes "I guess I'll see";
 			mes "you later.";
 			mes "you later.";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_merchant == 7){
 	if(tu_merchant == 7){
@@ -929,7 +907,6 @@ prontera,93,330,3	script	Kellion	97,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Kellion]";
 			mes "[Kellion]";
 			mes "Well, I'm sorry";
 			mes "Well, I'm sorry";
@@ -937,7 +914,6 @@ prontera,93,330,3	script	Kellion	97,{
 			mes "I guess I'll see";
 			mes "I guess I'll see";
 			mes "you later.";
 			mes "you later.";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_merchant == 6){
 	if(tu_merchant == 6){
@@ -970,7 +946,6 @@ prontera,93,330,3	script	Kellion	97,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Kellion]";
 			mes "[Kellion]";
 			mes "Well, I'm sorry";
 			mes "Well, I'm sorry";
@@ -978,7 +953,6 @@ prontera,93,330,3	script	Kellion	97,{
 			mes "I guess I'll see";
 			mes "I guess I'll see";
 			mes "you later.";
 			mes "you later.";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	mes "Recently, I hear that something";
 	mes "Recently, I hear that something";
@@ -994,7 +968,8 @@ prontera,93,330,3	script	Kellion	97,{
 	close;
 	close;
 }
 }
 	
 	
-//=================================================Aigie====================================================
+// Aigie
+//============================================================
 prt_in,169,11,3	script	Aigie	92,{
 prt_in,169,11,3	script	Aigie	92,{
 	if(tu_merchant == 8){
 	if(tu_merchant == 8){
 		mes "[Aigie]";
 		mes "[Aigie]";
@@ -1031,7 +1006,6 @@ prt_in,169,11,3	script	Aigie	92,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Aigie]";
 			mes "[Aigie]";
 			mes "I understand.";
 			mes "I understand.";
@@ -1040,7 +1014,6 @@ prt_in,169,11,3	script	Aigie	92,{
 			mes "you a really good price.";
 			mes "you a really good price.";
 			mes "^666666*Sniff Sniff*^000000";
 			mes "^666666*Sniff Sniff*^000000";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_merchant == 7){
 	if(tu_merchant == 7){
@@ -1078,7 +1051,6 @@ prt_in,169,11,3	script	Aigie	92,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Aigie]";
 			mes "[Aigie]";
 			mes "I understand.";
 			mes "I understand.";
@@ -1087,7 +1059,6 @@ prt_in,169,11,3	script	Aigie	92,{
 			mes "you a really good price.";
 			mes "you a really good price.";
 			mes "^666666*Sniff Sniff*^000000";
 			mes "^666666*Sniff Sniff*^000000";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_merchant == 6){
 	if(tu_merchant == 6){
@@ -1125,7 +1096,6 @@ prt_in,169,11,3	script	Aigie	92,{
 				getitem 569,10; //Novice_Potion
 				getitem 569,10; //Novice_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Aigie]";
 			mes "[Aigie]";
 			mes "I understand.";
 			mes "I understand.";
@@ -1134,7 +1104,6 @@ prt_in,169,11,3	script	Aigie	92,{
 			mes "you a really good price.";
 			mes "you a really good price.";
 			mes "^666666*Sniff Sniff*^000000";
 			mes "^666666*Sniff Sniff*^000000";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	mes "[Aigie]";
 	mes "[Aigie]";
@@ -1145,7 +1114,8 @@ prt_in,169,11,3	script	Aigie	92,{
 	close;
 	close;
 }
 }
 	
 	
-//=================================================Jayon====================================================
+// Jayon
+//============================================================
 prontera,247,129,3	script	Jayon	85,{
 prontera,247,129,3	script	Jayon	85,{
 	if(tu_merchant == 8){
 	if(tu_merchant == 8){
 		mes "[Jayon]";
 		mes "[Jayon]";
@@ -1181,7 +1151,6 @@ prontera,247,129,3	script	Jayon	85,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Jayon]";
 			mes "[Jayon]";
 			mes "Just looking";
 			mes "Just looking";
@@ -1191,7 +1160,6 @@ prontera,247,129,3	script	Jayon	85,{
 			mes "advantage of a real";
 			mes "advantage of a real";
 			mes "deal when you see one!";
 			mes "deal when you see one!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 
 
@@ -1229,7 +1197,6 @@ prontera,247,129,3	script	Jayon	85,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Jayon]";
 			mes "[Jayon]";
 			mes "Just looking";
 			mes "Just looking";
@@ -1240,7 +1207,6 @@ prontera,247,129,3	script	Jayon	85,{
 			mes "deal when you see one!";
 			mes "deal when you see one!";
 			close2;
 			close2;
 			end;
 			end;
-			break;
 		}
 		}
 	}
 	}
 
 
@@ -1278,7 +1244,6 @@ prontera,247,129,3	script	Jayon	85,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Jayon]";
 			mes "[Jayon]";
 			mes "Just looking";
 			mes "Just looking";
@@ -1288,7 +1253,6 @@ prontera,247,129,3	script	Jayon	85,{
 			mes "advantage of a real";
 			mes "advantage of a real";
 			mes "deal when you see one!";
 			mes "deal when you see one!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 
 
@@ -1302,7 +1266,8 @@ prontera,247,129,3	script	Jayon	85,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Maos====================================================
+// Maos
+//============================================================
 prt_in,251,129,3	script	Maos	709,{
 prt_in,251,129,3	script	Maos	709,{
 	if(tu_merchant == 8){
 	if(tu_merchant == 8){
 		mes "[Maos]";
 		mes "[Maos]";
@@ -1334,12 +1299,10 @@ prt_in,251,129,3	script	Maos	709,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Maos]";
 			mes "[Maos]";
 			mes "Well, I can't force you to buy these, but I'm telling you that you're passing up a real bargain!";
 			mes "Well, I can't force you to buy these, but I'm telling you that you're passing up a real bargain!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_merchant == 7){
 	if(tu_merchant == 7){
@@ -1371,12 +1334,10 @@ prt_in,251,129,3	script	Maos	709,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Maos]";
 			mes "[Maos]";
 			mes "Well, I can't force you to buy these, but I'm telling you that you're passing up a real bargain!";
 			mes "Well, I can't force you to buy these, but I'm telling you that you're passing up a real bargain!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_merchant == 6){
 	if(tu_merchant == 6){
@@ -1408,12 +1369,10 @@ prt_in,251,129,3	script	Maos	709,{
 				getitem 501,10; //Red_Potion
 				getitem 501,10; //Red_Potion
 				close;
 				close;
 			}
 			}
-			break;
 		case 2:
 		case 2:
 			mes "[Maos]";
 			mes "[Maos]";
 			mes "Well, I can't force you to buy these, but I'm telling you that you're passing up a real bargain!";
 			mes "Well, I can't force you to buy these, but I'm telling you that you're passing up a real bargain!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	mes "[Maos]";
 	mes "[Maos]";

+ 12 - 76
npc/quests/first_class/tu_sword.txt

@@ -17,8 +17,8 @@
 //= 1.4 Misc. updates. [L0ne_W0lf]
 //= 1.4 Misc. updates. [L0ne_W0lf]
 //============================================================ 
 //============================================================ 
 
 
-
-//=================================================Shurank====================================================
+// Shurank
+//============================================================
 izlude_in,82,163,3	script	Shurank	733,{
 izlude_in,82,163,3	script	Shurank	733,{
 	mes "[Shurank]";
 	mes "[Shurank]";
 	if(Class == Job_Novice || Class == Job_Baby){
 	if(Class == Job_Novice || Class == Job_Baby){
@@ -80,7 +80,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 		mes "To improve your skills,";
 		mes "To improve your skills,";
 		mes "you must explore this vast world and experience all sorts of battle situations. And always commit yourself to your training.";
 		mes "you must explore this vast world and experience all sorts of battle situations. And always commit yourself to your training.";
 		close;
 		close;
-		break;
 	case 22:
 	case 22:
 		mes "This will be my";
 		mes "This will be my";
 		mes "final lecture to you.";
 		mes "final lecture to you.";
@@ -167,7 +166,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 		completequest 8228;
 		completequest 8228;
 		getitem 1113,1; //Scimiter
 		getitem 1113,1; //Scimiter
 		close;
 		close;
-		break;
 	case 21:
 	case 21:
 		mes "Ah, you've returned. I've just received a communique from";
 		mes "Ah, you've returned. I've just received a communique from";
 		mes "Dequ'ee. It seems you've been working very hard and that you've made the most of this experience.";
 		mes "Dequ'ee. It seems you've been working very hard and that you've made the most of this experience.";
@@ -210,11 +208,9 @@ izlude_in,82,163,3	script	Shurank	733,{
 		mes "I'll be here when you're ready to learn more.";
 		mes "I'll be here when you're ready to learn more.";
 		set tu_swordman, 22;
 		set tu_swordman, 22;
 		close;
 		close;
-		break;
 	case 13:
 	case 13:
 		mes "You should leave as soon as possible to meet Dequ'ee in Geffen. You do remember where to find him, don't you?";
 		mes "You should leave as soon as possible to meet Dequ'ee in Geffen. You do remember where to find him, don't you?";
 		close;
 		close;
-		break;
 	case 12:
 	case 12:
 		mes "So how has your";
 		mes "So how has your";
 		mes "training for the Endure";
 		mes "training for the Endure";
@@ -246,7 +242,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "you to double your efforts!";
 			mes "you to double your efforts!";
 			close;
 			close;
 		}
 		}
-		break;
 	case 11:
 	case 11:
 		mes "So have you";
 		mes "So have you";
 		mes "learned how to use";
 		mes "learned how to use";
@@ -306,7 +301,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "I recommend that you learn it as soon as you can. Endure is an invaluable skill for any Swordman to have!";
 			mes "I recommend that you learn it as soon as you can. Endure is an invaluable skill for any Swordman to have!";
 			close;
 			close;
 		}
 		}
-		break;
 	case 10:
 	case 10:
 		mes "The time has come";
 		mes "The time has come";
 		mes "for me to tell you";
 		mes "for me to tell you";
@@ -379,7 +373,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "Hurry and meet with Dequ'ee and return to me when you complete whatever it is that he wishes for you to do.";
 			mes "Hurry and meet with Dequ'ee and return to me when you complete whatever it is that he wishes for you to do.";
 			close;
 			close;
 		}
 		}
-		break;
 	case 9:
 	case 9:
 		mes "So have you been";
 		mes "So have you been";
 		mes "learning more about";
 		mes "learning more about";
@@ -416,7 +409,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "I can continue my lectures.";
 			mes "I can continue my lectures.";
 			close;
 			close;
 		}
 		}
-		break;
 	case 8:
 	case 8:
 		mes "Ah, you've returned.";
 		mes "Ah, you've returned.";
 		mes "So how has your training";
 		mes "So how has your training";
@@ -477,7 +469,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "Still haven't learned Provoke, eh? As a Swordman, I believe that it's important that you at least be able to use Provoke!";
 			mes "Still haven't learned Provoke, eh? As a Swordman, I believe that it's important that you at least be able to use Provoke!";
 			close;
 			close;
 		}
 		}
-		break;
 	case 7:
 	case 7:
 		mes "Ah, you've returned. For a new Swordman, you are doing quite";
 		mes "Ah, you've returned. For a new Swordman, you are doing quite";
 		mes "well. So what is the message";
 		mes "well. So what is the message";
@@ -575,7 +566,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "Next time we speak, I will tell you what I know about the ^5D478BEndure^000000 skill. When you're ready to learn, come back to me.";
 			mes "Next time we speak, I will tell you what I know about the ^5D478BEndure^000000 skill. When you're ready to learn, come back to me.";
 			close;
 			close;
 		}
 		}
-		break;
 	case 6:
 	case 6:
 		mes "I wish for you to find a Knight named ^5D478BDequ'ee^000000 in ^5D478BGeffen^000000. Listen carefully, this is the message";
 		mes "I wish for you to find a Knight named ^5D478BDequ'ee^000000 in ^5D478BGeffen^000000. Listen carefully, this is the message";
 		mes "I want you to give him.";
 		mes "I want you to give him.";
@@ -597,7 +587,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 		next;
 		next;
 		warp "gef_fild07",35,192;
 		warp "gef_fild07",35,192;
 		close;
 		close;
-		break;
 	case 5:
 	case 5:
 		mes "Ah, you've returned. I know I said that I would teach you what I know about the Provoke skill, but...";
 		mes "Ah, you've returned. I know I said that I would teach you what I know about the Provoke skill, but...";
 		next;
 		next;
@@ -626,7 +615,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 		set tu_swordman, 6;
 		set tu_swordman, 6;
 		changequest 8215,8216;
 		changequest 8215,8216;
 		close;
 		close;
-		break;
 	case 4:
 	case 4:
 		mes "Since you've mastered Bash,";
 		mes "Since you've mastered Bash,";
 		mes "I feel that you're ready to learn more about Swordman skills.";
 		mes "I feel that you're ready to learn more about Swordman skills.";
@@ -683,7 +671,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 		mes "[Shurank]";
 		mes "[Shurank]";
 		mes "By now, I believe that you know enough about the Increase HP Recovery skill. Next time, I shall teach you what I know about the Provoke skill.";
 		mes "By now, I believe that you know enough about the Increase HP Recovery skill. Next time, I shall teach you what I know about the Provoke skill.";
 		close;
 		close;
-		break;
 	case 3:
 	case 3:
 		mes "If you want to be";
 		mes "If you want to be";
 		mes "able to use the full";
 		mes "able to use the full";
@@ -711,7 +698,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "use Bash quite well, but you are not a master of it yet. I encourage you to master Bash in order to unleash its true potential!";
 			mes "use Bash quite well, but you are not a master of it yet. I encourage you to master Bash in order to unleash its true potential!";
 			close;
 			close;
 		}
 		}
-		break;
 	case 2:
 	case 2:
 		mes "I hope you've been";
 		mes "I hope you've been";
 		mes "training yourself in using";
 		mes "training yourself in using";
@@ -758,7 +744,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "use Bash quite well, but you are not a master of it yet. I encourage you to master Bash in order to unleash its true potential!";
 			mes "use Bash quite well, but you are not a master of it yet. I encourage you to master Bash in order to unleash its true potential!";
 			close;
 			close;
 		}
 		}
-		break;
 	case 1:
 	case 1:
 		mes "Have you been learning";
 		mes "Have you been learning";
 		mes "the art of using Bash? I fervently believe that the Bash skill is the essense of Swordmanship!";
 		mes "the art of using Bash? I fervently believe that the Bash skill is the essense of Swordmanship!";
@@ -839,7 +824,6 @@ izlude_in,82,163,3	script	Shurank	733,{
 			mes "that skill!";
 			mes "that skill!";
 			close;
 			close;
 		}
 		}
-		break;
 	case 0:
 	case 0:
 		mes "Ah, a comrade in arms.";
 		mes "Ah, a comrade in arms.";
 		mes "Allow me to introduce myself. I am Shurank Chainlier, a Knight in the service of the Prontera Chivalry.";
 		mes "Allow me to introduce myself. I am Shurank Chainlier, a Knight in the service of the Prontera Chivalry.";
@@ -933,14 +917,14 @@ izlude_in,82,163,3	script	Shurank	733,{
 			getitem 2503,1; //Muffler
 			getitem 2503,1; //Muffler
 			close;
 			close;
 		}
 		}
-		break;
 	}
 	}
 	mes "...";
 	mes "...";
 	mes "......";
 	mes "......";
 	close;
 	close;
 }
 }
 
 
-//=================================================Daqu'ee====================================================
+// Daqu'ee
+//============================================================
 geffen,154,143,3	script	Dequ'ee	734,{
 geffen,154,143,3	script	Dequ'ee	734,{
 	if(BaseJob == Job_Novice){
 	if(BaseJob == Job_Novice){
 		mes "[Dequ'ee]";
 		mes "[Dequ'ee]";
@@ -1063,7 +1047,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 			mes "made up. You've got";
 			mes "made up. You've got";
 			mes "to try it again!";
 			mes "to try it again!";
 			close;
 			close;
-			break;
 		case 2:
 		case 2:
 			mes "[Dequ'ee]";
 			mes "[Dequ'ee]";
 			mes "Bankley...?";
 			mes "Bankley...?";
@@ -1084,7 +1067,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 			close2;
 			close2;
 			warp "moc_fild07",359,201;
 			warp "moc_fild07",359,201;
 			end;
 			end;
-			break;
 		case 3:
 		case 3:
 			mes "[Dequ'ee]";
 			mes "[Dequ'ee]";
 			mes "Geil...?";
 			mes "Geil...?";
@@ -1094,7 +1076,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 			mes "made up. You've got";
 			mes "made up. You've got";
 			mes "to try it again!";
 			mes "to try it again!";
 			close;
 			close;
-			break;
 		case 4:
 		case 4:
 			mes "[Dequ'ee]";
 			mes "[Dequ'ee]";
 			mes "Muetro...?";
 			mes "Muetro...?";
@@ -1104,7 +1085,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 			mes "made up. You've got";
 			mes "made up. You've got";
 			mes "to try it again!";
 			mes "to try it again!";
 			close;
 			close;
-			break;
 		}
 		}
 	}
 	}
 	if(tu_swordman == 16){
 	if(tu_swordman == 16){
@@ -1154,7 +1134,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Muetro, Hans,";
 					mes "Muetro, Hans,";
@@ -1176,9 +1155,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 2:
 			case 2:
 				mes "[Dequ'ee]";
 				mes "[Dequ'ee]";
 				mes "Geil's...?";
 				mes "Geil's...?";
@@ -1209,7 +1186,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Muetro, Geil,";
 					mes "Muetro, Geil,";
@@ -1231,9 +1207,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 3:
 			case 3:
 				mes "[Dequ'ee]";
 				mes "[Dequ'ee]";
 				mes "Bankley's...?";
 				mes "Bankley's...?";
@@ -1264,7 +1238,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Muetro, Bankley,";
 					mes "Muetro, Bankley,";
@@ -1286,9 +1259,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			}
 			}
 			break;
 			break;
 		case 2:
 		case 2:
@@ -1330,7 +1301,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Hans, Muetro,";
 					mes "Hans, Muetro,";
@@ -1352,9 +1322,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 2:
 			case 2:
 				mes "[Dequ'ee]";
 				mes "[Dequ'ee]";
 				mes "Geil's...?";
 				mes "Geil's...?";
@@ -1385,7 +1353,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Hans, Geil,";
 					mes "Hans, Geil,";
@@ -1407,9 +1374,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 3:
 			case 3:
 				mes "[Dequ'ee]";
 				mes "[Dequ'ee]";
 				mes "Bankley's...?";
 				mes "Bankley's...?";
@@ -1440,7 +1405,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Hans, Bankley,";
 					mes "Hans, Bankley,";
@@ -1462,9 +1426,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			}
 			}
 			break;
 			break;
 		case 3:
 		case 3:
@@ -1513,7 +1475,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "to formulate an algorithm!";
 					mes "to formulate an algorithm!";
 					set tu_swordman, 17;
 					set tu_swordman, 17;
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Geil, Muetro,";
 					mes "Geil, Muetro,";
@@ -1535,9 +1496,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 2:
 			case 2:
 				mes "[Dequ'ee]";
 				mes "[Dequ'ee]";
 				mes "Han's...?";
 				mes "Han's...?";
@@ -1568,7 +1527,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Geil, Hans,";
 					mes "Geil, Hans,";
@@ -1590,9 +1548,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 3:
 			case 3:
 				mes "[Dequ'ee]";
 				mes "[Dequ'ee]";
 				mes "Bankley's...?";
 				mes "Bankley's...?";
@@ -1623,7 +1579,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Geil, Bankley,";
 					mes "Geil, Bankley,";
@@ -1645,9 +1600,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			}
 			}
 			break;
 			break;
 		case 4:
 		case 4:
@@ -1689,7 +1642,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Bankley, Muetro,";
 					mes "Bankley, Muetro,";
@@ -1711,9 +1663,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 2:
 			case 2:
 				mes "[Dequ'ee]";
 				mes "[Dequ'ee]";
 				mes "Hans's...?";
 				mes "Hans's...?";
@@ -1744,7 +1694,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Bankley, Hans,";
 					mes "Bankley, Hans,";
@@ -1764,9 +1713,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 3:
 			case 3:
 				mes "[Dequ'ee]";
 				mes "[Dequ'ee]";
 				mes "Geil's...?";
 				mes "Geil's...?";
@@ -1804,7 +1751,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "to formulate an algorithm!";
 					mes "to formulate an algorithm!";
 					set tu_swordman, 18;
 					set tu_swordman, 18;
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[Dequ'ee]";
 					mes "[Dequ'ee]";
 					mes "Bankley, Geil,";
 					mes "Bankley, Geil,";
@@ -1826,9 +1772,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "way it is now. Let's";
 					mes "way it is now. Let's";
 					mes "try another combination.";
 					mes "try another combination.";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			}
 			}
 			break;
 			break;
 		}
 		}
@@ -2044,7 +1988,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "a response...";
 					mes "a response...";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[" + strcharinfo(0) + "]";
 					mes "[" + strcharinfo(0) + "]";
 					mes "What are we";
 					mes "What are we";
@@ -2061,9 +2004,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "a response...";
 					mes "a response...";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 2:
 			case 2:
 				mes "[" + strcharinfo(0) + "]";
 				mes "[" + strcharinfo(0) + "]";
 				mes "Did you figure out";
 				mes "Did you figure out";
@@ -2087,7 +2028,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "a response...";
 					mes "a response...";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[" + strcharinfo(0) + "]";
 					mes "[" + strcharinfo(0) + "]";
 					mes "What are we";
 					mes "What are we";
@@ -2104,9 +2044,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "a response...";
 					mes "a response...";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			}
 			}
 			break;
 			break;
 		case 2:
 		case 2:
@@ -2141,7 +2079,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "a response...";
 					mes "a response...";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[" + strcharinfo(0) + "]";
 					mes "[" + strcharinfo(0) + "]";
 					mes "What are we";
 					mes "What are we";
@@ -2181,9 +2118,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					next;
 					next;
 					warp "izlude",35,78;
 					warp "izlude",35,78;
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			case 2:
 			case 2:
 				mes "[" + strcharinfo(0) + "]";
 				mes "[" + strcharinfo(0) + "]";
 				mes "Did you figure out";
 				mes "Did you figure out";
@@ -2209,7 +2144,6 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "a response...";
 					mes "a response...";
 					close;
 					close;
-					break;
 				case 2:
 				case 2:
 					mes "[" + strcharinfo(0) + "]";
 					mes "[" + strcharinfo(0) + "]";
 					mes "What are we";
 					mes "What are we";
@@ -2229,9 +2163,7 @@ geffen,154,143,3	script	Dequ'ee	734,{
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "be the message I'm supposed to receive from Shurack. I need his exact message or I can't send";
 					mes "a response...";
 					mes "a response...";
 					close;
 					close;
-					break;
 				}
 				}
-				break;
 			}
 			}
 			break;
 			break;
 		}
 		}
@@ -2243,7 +2175,8 @@ geffen,154,143,3	script	Dequ'ee	734,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Geil====================================================
+// Geil
+//============================================================
 morocc_in,51,101,3	script	Geil	89,{
 morocc_in,51,101,3	script	Geil	89,{
 	mes "[Geil]";
 	mes "[Geil]";
 	if(tu_swordman == 15){
 	if(tu_swordman == 15){
@@ -2293,7 +2226,8 @@ morocc_in,51,101,3	script	Geil	89,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Meutro====================================================
+// Meutro
+//============================================================
 morocc,82,292,5	script	Muetro	84,{
 morocc,82,292,5	script	Muetro	84,{
 	mes "[Muetro]";
 	mes "[Muetro]";
 	if(tu_swordman == 15){
 	if(tu_swordman == 15){
@@ -2333,7 +2267,8 @@ morocc,82,292,5	script	Muetro	84,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Hans====================================================
+// Hans
+//============================================================
 morocc,240,72,3	script	Hans	86,{
 morocc,240,72,3	script	Hans	86,{
 	mes "[Hans]";
 	mes "[Hans]";
 	if(tu_swordman == 15){
 	if(tu_swordman == 15){
@@ -2390,7 +2325,8 @@ morocc,240,72,3	script	Hans	86,{
 	close;
 	close;
 }
 }
 
 
-//=================================================Bankley====================================================
+// Bankley
+//============================================================
 morocc_in,12,156,3	script	Bankley	97,{
 morocc_in,12,156,3	script	Bankley	97,{
 	if(tu_swordman > 19){
 	if(tu_swordman > 19){
 		mes "^3355FFBankley had a pitiable";
 		mes "^3355FFBankley had a pitiable";

+ 4 - 16
npc/quests/first_class/tu_thief01.txt

@@ -17,7 +17,8 @@
 //= 1.4 Misc. updates. [L0ne_W0lf]
 //= 1.4 Misc. updates. [L0ne_W0lf]
 //============================================================ 
 //============================================================ 
 
 
-//=================================================Thief Trainer====================================================
+// Thief Trainer
+//============================================================
 moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 	mes "[Yierhan]";
 	mes "[Yierhan]";
 	if(Class == Job_Novice){
 	if(Class == Job_Novice){
@@ -68,7 +69,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 				mes "Yeah, right now!";
 				mes "Yeah, right now!";
 				mes "But if you're not ready for some reason, I guess I can wait.";
 				mes "But if you're not ready for some reason, I guess I can wait.";
 				close;
 				close;
-				break;
 			}
 			}
 			mes "[Yierhan]";
 			mes "[Yierhan]";
 			mes "Alright, first of all, Thieves use melee attacks. Well, most of us do. There are a few who like using long range Bows. But all of us are good at bein' fast!";
 			mes "Alright, first of all, Thieves use melee attacks. Well, most of us do. There are a few who like using long range Bows. But all of us are good at bein' fast!";
@@ -91,7 +91,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 				getexp 20,10;
 				getexp 20,10;
 				specialeffect2 EF_HIT5;
 				specialeffect2 EF_HIT5;
 				close;
 				close;
-				break;
 			case 2:
 			case 2:
 				mes "[Yierhan]";
 				mes "[Yierhan]";
 				mes "Yeah, that's right! If you wanna increase your damage, you need";
 				mes "Yeah, that's right! If you wanna increase your damage, you need";
@@ -108,7 +107,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 				getexp 40,20;
 				getexp 40,20;
 				specialeffect2 EF_HIT5;
 				specialeffect2 EF_HIT5;
 				close;
 				close;
-				break;
 			case 3:
 			case 3:
 				mes "[Yierhan]";
 				mes "[Yierhan]";
 				mes "Say whaaat? ^23238EDEX^000000 affects";
 				mes "Say whaaat? ^23238EDEX^000000 affects";
@@ -124,7 +122,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 				getexp 20,10;
 				getexp 20,10;
 				specialeffect2 EF_HIT5;
 				specialeffect2 EF_HIT5;
 				close;
 				close;
-				break;
 			}
 			}
 		} else if(tu_thief01 == 1){
 		} else if(tu_thief01 == 1){
 			mes "Alright, enough about stats.";
 			mes "Alright, enough about stats.";
@@ -350,7 +347,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 						getexp 30,10;
 						getexp 30,10;
 					}
 					}
 					close;
 					close;
-					break;
 				}
 				}
 			}
 			}
 		} else if(tu_thief01 == 4){
 		} else if(tu_thief01 == 4){
@@ -427,7 +423,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 						getexp 100,50;
 						getexp 100,50;
 						specialeffect2 EF_HIT5;
 						specialeffect2 EF_HIT5;
 						close;
 						close;
-						break;
 					case 2:
 					case 2:
 						mes "[Yierhan]";
 						mes "[Yierhan]";
 						mes "Good!";
 						mes "Good!";
@@ -438,7 +433,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 						getexp 50,20;
 						getexp 50,20;
 						specialeffect2 EF_HIT5;
 						specialeffect2 EF_HIT5;
 						close;
 						close;
-						break;
 					}
 					}
 				} else {
 				} else {
 					switch(select("It was nice to meet you.:Nope.")) {
 					switch(select("It was nice to meet you.:Nope.")) {
@@ -458,7 +452,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 						getexp 50,20;
 						getexp 50,20;
 						specialeffect2 EF_HIT5;
 						specialeffect2 EF_HIT5;
 						close;
 						close;
-						break;
 					case 2:
 					case 2:
 						mes "[Yierhan]";
 						mes "[Yierhan]";
 						mes "Good!";
 						mes "Good!";
@@ -469,7 +462,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 						getexp 50,20;
 						getexp 50,20;
 						specialeffect2 EF_HIT5;
 						specialeffect2 EF_HIT5;
 						close;
 						close;
-						break;
 					}
 					}
 				}
 				}
 			}
 			}
@@ -552,7 +544,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 				mes "[Yierhan]";
 				mes "[Yierhan]";
 				mes "Ah, gotcha. Well, that's understandable. I mean, these things take time, you know?";
 				mes "Ah, gotcha. Well, that's understandable. I mean, these things take time, you know?";
 				close;
 				close;
-				break;
 			case 2:
 			case 2:
 				mes "[Yierhan]";
 				mes "[Yierhan]";
 				mes "Yeah...?";
 				mes "Yeah...?";
@@ -560,7 +551,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 				mes "I guess these kinds of things require patience. And thinking.";
 				mes "I guess these kinds of things require patience. And thinking.";
 				mes "You know, things I'm horrible at.";
 				mes "You know, things I'm horrible at.";
 				close;
 				close;
-				break;
 			case 3:
 			case 3:
 				mes "[Yierhan]";
 				mes "[Yierhan]";
 				mes "Alright...!";
 				mes "Alright...!";
@@ -599,7 +589,6 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 				set Zeny, Zeny + 5000;
 				set Zeny, Zeny + 5000;
 				getexp 800,300;
 				getexp 800,300;
 				close;
 				close;
-				break;
 			}
 			}
 		} else {
 		} else {
 			mes "[Yierhan]";
 			mes "[Yierhan]";
@@ -612,7 +601,7 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 			next;
 			next;
 			mes "[Yierhan]";
 			mes "[Yierhan]";
 			mes "I just like telling people to follow their dreams. So do it. Life without anything to look forward to is pretty boring, doncha think?";
 			mes "I just like telling people to follow their dreams. So do it. Life without anything to look forward to is pretty boring, doncha think?";
-			close2;
+			close;
 		}
 		}
 	} else if(Class == Job_Mage || Class == Job_Mage_High || Class == Job_Wizard || Class == Job_High_Wizard || Class == Job_Sage || Class == Job_Professor){
 	} else if(Class == Job_Mage || Class == Job_Mage_High || Class == Job_Wizard || Class == Job_High_Wizard || Class == Job_Sage || Class == Job_Professor){
 		if(tu_magician01 < 7){
 		if(tu_magician01 < 7){
@@ -724,8 +713,7 @@ moc_ruins,66,164,4	script	Thief Trainer#T	84,{
 				set tu_magician01, 27;
 				set tu_magician01, 27;
 				set Zeny, Zeny + 5000;
 				set Zeny, Zeny + 5000;
 				getexp 500,200;
 				getexp 500,200;
-				close2;
-				break;
+				close;
 			}
 			}
 		} else {
 		} else {
 			mes "Just as I thought,";
 			mes "Just as I thought,";

+ 3 - 3
npc/quests/quests_13_1.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //===== By: ================================================== 
 //= L0ne_W0lf
 //= L0ne_W0lf
 //===== Current Version: ===================================== 
 //===== Current Version: ===================================== 
-//= 2.6
+//= 2.6a
 //===== Compatible With: ===================================== 
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //= rAthena SVN
 //===== Description: ========================================= 
 //===== Description: ========================================= 
@@ -44,6 +44,7 @@
 //= 2.5 Yet more optimization (-22kb). [Euphy]
 //= 2.5 Yet more optimization (-22kb). [Euphy]
 //= 2.5a Minor fixes. [Euphy]
 //= 2.5a Minor fixes. [Euphy]
 //= 2.6 Disabled "Ash Vacuum Warper" as it's no longer in iRO. [Euphy]
 //= 2.6 Disabled "Ash Vacuum Warper" as it's no longer in iRO. [Euphy]
+//= 2.6a Added 'npcskill' command. [Euphy]
 //============================================================ 
 //============================================================ 
 
 
 // Onward to the New World
 // Onward to the New World
@@ -8545,8 +8546,7 @@ mid_camp,69,144,0	script	Ferocious Gorurug	421,{
 			}
 			}
 		}
 		}
 		else if ((ep13_yong1 > 59) && (ep13_yong1 < 300)) {
 		else if ((ep13_yong1 > 59) && (ep13_yong1 < 300)) {
-			skilleffect "AL_HEAL",816;
-			heal 816,0;
+			npcskill "AL_HEAL",8,50,50;
 			if (countitem(6039) > 9) {
 			if (countitem(6039) > 9) {
 				mes "[Ferocious Gorurug]";
 				mes "[Ferocious Gorurug]";
 				mes "You've brough Pieces of Fish!";
 				mes "You've brough Pieces of Fish!";

+ 3 - 4
npc/quests/thana_quest.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //===== By: ==================================================
 //= Muad_Dib
 //= Muad_Dib
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 1.0
+//= 1.0a
 //===== Compatible With: =====================================
 //===== Compatible With: =====================================
 //= rAthena SVN
 //= rAthena SVN
 //===== Description: =========================================
 //===== Description: =========================================
@@ -11,6 +11,7 @@
 //= Episode 13.1 Thanatos Tower quest.
 //= Episode 13.1 Thanatos Tower quest.
 //===== Additional Comments: =================================
 //===== Additional Comments: =================================
 //= 1.0 Adapted from official release. [Euphy]
 //= 1.0 Adapted from official release. [Euphy]
+//= 1.0a Added 'npcskill' command. [Euphy]
 //============================================================
 //============================================================
 
 
 hu_fild01,140,163,5	script	Tower Keeper	852,3,3,{
 hu_fild01,140,163,5	script	Tower Keeper	852,3,3,{
@@ -822,9 +823,7 @@ tha_t02,231,161,5	script	Entrance Guide	874,{
 			mes "Is there a Phantom on the top of this tower?";
 			mes "Is there a Phantom on the top of this tower?";
 			if (rand(3) == 1) {
 			if (rand(3) == 1) {
 				mes "You look tired. This isn't a big deal, but it's for you.";
 				mes "You look tired. This isn't a big deal, but it's for you.";
-//				UseSkillToPC 28 10 50 70
-				percentheal 50,70;
-				specialeffect2 EF_HEAL;
+				npcskill "AL_HEAL",10,50,70;
 			}
 			}
 			close;
 			close;
 		}
 		}

+ 3 - 4
npc/re/jobs/3-1/guillotine_cross.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //===== By: ================================================== 
 //= Muad_Dib
 //= Muad_Dib
 //===== Current Version: ===================================== 
 //===== Current Version: ===================================== 
-//= 1.0
+//= 1.0a
 //===== Compatible With: ===================================== 
 //===== Compatible With: ===================================== 
 //= rAthena SVN r16945+
 //= rAthena SVN r16945+
 //===== Description: ========================================= 
 //===== Description: ========================================= 
@@ -11,6 +11,7 @@
 //= Job change Quest from Assassin / Assassin Cross -> Guillotine Cross.
 //= Job change Quest from Assassin / Assassin Cross -> Guillotine Cross.
 //===== Additional Comments: ================================= 
 //===== Additional Comments: ================================= 
 //= 1.0 Adapted from original script. [Euphy]
 //= 1.0 Adapted from original script. [Euphy]
+//= 1.0a Added 'npcskill' command. [Euphy]
 //============================================================
 //============================================================
 
 
 que_job01,75,96,3	script	Guild Member#3rdgc01	997,{
 que_job01,75,96,3	script	Guild Member#3rdgc01	997,{
@@ -2482,9 +2483,7 @@ OnTouch:
 	select("......");
 	select("......");
 	mes "[A man with black clothes]";
 	mes "[A man with black clothes]";
 	mes "May the goddess bless you eternally...";
 	mes "May the goddess bless you eternally...";
-//	UseSkillToPC 34 0 0 0
-	specialeffect2 EF_BLESSING;
-	sc_start SC_BLESSING,60000,1;
+	npcskill "AL_BLESSING",10,0,0;
 	next;
 	next;
 	emotion e_gasp;
 	emotion e_gasp;
 	mes "[A man with black clothes]";
 	mes "[A man with black clothes]";

+ 12 - 25
npc/re/jobs/3-1/rune_knight.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //===== By: ==================================================
 //= L0ne_W0lf, Muad_Dib
 //= L0ne_W0lf, Muad_Dib
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 1.3
+//= 1.3a
 //===== Compatible With: =====================================
 //===== Compatible With: =====================================
 //= rAthena SVN
 //= rAthena SVN
 //===== Description: =========================================
 //===== Description: =========================================
@@ -13,6 +13,7 @@
 //= 1.1 Added forgoten Header. [Masao]
 //= 1.1 Added forgoten Header. [Masao]
 //= 1.2 Added Energy Rune item reward. [Masao]
 //= 1.2 Added Energy Rune item reward. [Masao]
 //= 1.3 Updated script, optimized. [Euphy]
 //= 1.3 Updated script, optimized. [Euphy]
+//= 1.3a Added 'npcskill' command. [Euphy]
 //============================================================
 //============================================================
 
 
 prt_in,162,24,3	script	Splendid-Looking Knight	470,2,2,{
 prt_in,162,24,3	script	Splendid-Looking Knight	470,2,2,{
@@ -1810,15 +1811,12 @@ job3_rune02,34,46,5	script	Captain Tigris#jrt1	470,2,2,{
 	switch(rand(6)) {
 	switch(rand(6)) {
 	case 0:
 	case 0:
 		mapannounce "job3_rune02","Captain Tigris : May Beljeve bless you!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Captain Tigris : May Beljeve bless you!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 34 0 0 0
-		unitskilluseid getnpcid(0),"AL_BLESSING",10,getcharid(3);
+		npcskill "AL_BLESSING",1,0,0;
 		break;
 		break;
 	case 1:
 	case 1:
 	case 2:
 	case 2:
 		mapannounce "job3_rune02","Captain Tigris : The Spark of life... may flame again.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Captain Tigris : The Spark of life... may flame again.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 28 8 70 99
-		percentheal 100,100;
-		skilleffect "AL_HEAL",9999;
+		npcskill "AL_HEAL",8,70,99;
 		break;
 		break;
 	case 3:
 	case 3:
 		mapannounce "job3_rune02","Captain Tigris : Evil demons! I will send you back to your graves!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Captain Tigris : Evil demons! I will send you back to your graves!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
@@ -1859,20 +1857,16 @@ job3_rune02,43,46,3	script	Rune Knight Lunarea#jrt1	469,2,2,{
 	switch(rand(6)) {
 	switch(rand(6)) {
 	case 0:
 	case 0:
 		mapannounce "job3_rune02","Rune Knight Lunarea : Quickly... find and strike at the enemy's weakness!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Lunarea : Quickly... find and strike at the enemy's weakness!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 29 0 0 0
-		unitskilluseid getnpcid(0),"AL_INCAGI",10,getcharid(3);
+		npcskill "AL_INCAGI",1,0,0;
 		break;
 		break;
 	case 1:
 	case 1:
 	case 2:
 	case 2:
 		mapannounce "job3_rune02","Rune Knight Lunarea : It's not over... you need more power...",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Lunarea : It's not over... you need more power...",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 28 8 60 90
-		percentheal 100,100;
-		skilleffect "AL_HEAL",9999;
+		npcskill "AL_HEAL",8,60,90;
 		break;
 		break;
 	case 3:
 	case 3:
 		mapannounce "job3_rune02","Rune Knight Lunarea : Everything starts from the beginning!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Lunarea : Everything starts from the beginning!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 35 0 0 0
-		unitskilluseid getnpcid(0),"AL_CURE",1,getcharid(3);
+		npcskill "AL_CURE",1,0,0;
 		break;
 		break;
 	case 4:
 	case 4:
 		mapannounce "job3_rune02","Rune Knight Lunarea : There can't be growth without a trial.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Lunarea : There can't be growth without a trial.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
@@ -1908,15 +1902,12 @@ job3_rune02,43,34,1	script	Rune Knight Renoa#jrt1	469,2,2,{
 	switch(rand(6)) {
 	switch(rand(6)) {
 	case 0:
 	case 0:
 		mapannounce "job3_rune02","Rune Knight Renoa : The rune of Wind! May it give you strength!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Renoa : The rune of Wind! May it give you strength!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 29 0 0 0
-		unitskilluseid getnpcid(0),"AL_INCAGI",10,getcharid(3);
+		npcskill "AL_INCAGI",1,0,0;
 		break;
 		break;
 	case 1:
 	case 1:
 	case 2:
 	case 2:
 		mapannounce "job3_rune02","Rune Knight Renoa : The rune of Birth! May give you the power of life!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Renoa : The rune of Birth! May give you the power of life!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 28 8 60 90
-		percentheal 100,100;
-		skilleffect "AL_HEAL",9999;
+		npcskill "AL_HEAL",8,60,90;
 		break;
 		break;
 	case 3:
 	case 3:
 		mapannounce "job3_rune02","Rune Knight Renoa : I am faster than all of them! Different then the others!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Renoa : I am faster than all of them! Different then the others!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
@@ -1957,20 +1948,16 @@ job3_rune02,34,34,7	script	Rune Knight Velpino#jrt1	468,2,2,{
 	switch(rand(6)) {
 	switch(rand(6)) {
 	case 0:
 	case 0:
 		mapannounce "job3_rune02","Rune Knight Velpino : You are not one who gets to fall down in this kind of place.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Velpino : You are not one who gets to fall down in this kind of place.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 28 8 60 90
-		percentheal 100,100;
-		skilleffect "AL_HEAL",9999;
+		npcskill "AL_HEAL",8,60,90;
 		break;
 		break;
 	case 1:
 	case 1:
 	case 2:
 	case 2:
 		mapannounce "job3_rune02","Rune Knight Velpino : Move on! There are obstacles to overcome.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Velpino : Move on! There are obstacles to overcome.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 29 0 0 0
-		unitskilluseid getnpcid(0),"AL_INCAGI",10,getcharid(3);
+		npcskill "AL_INCAGI",1,0,0;
 		break;
 		break;
 	case 3:
 	case 3:
 		mapannounce "job3_rune02","Rune Knight Velpino : You are not alone. We are by your side.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Velpino : You are not alone. We are by your side.",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
-//		UseSkillToPC 34 0 0 0
-		unitskilluseid getnpcid(0),"AL_BLESSING",10,getcharid(3);
+		npcskill "AL_BLESSING",1,0,0;
 		break;
 		break;
 	case 4:
 	case 4:
 		mapannounce "job3_rune02","Rune Knight Velpino : Fight and win! Don't give in to the pain!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0
 		mapannounce "job3_rune02","Rune Knight Velpino : Fight and win! Don't give in to the pain!",bc_map,"0xFFFF00"; //FW_NORMAL 12 0 0

+ 4 - 5
npc/re/jobs/novice/novice.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //===== By: ==================================================
 //= Kisuka
 //= Kisuka
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 1.4
+//= 1.4a
 //===== Compatible With: =====================================
 //===== Compatible With: =====================================
 //= rAthena SVN
 //= rAthena SVN
 //===== Description: =========================================
 //===== Description: =========================================
@@ -15,6 +15,7 @@
 //= 1.2 Cleaning. [Euphy]
 //= 1.2 Cleaning. [Euphy]
 //= 1.3 Fixed Eden Group Officer's level requirement. [Joseph]
 //= 1.3 Fixed Eden Group Officer's level requirement. [Joseph]
 //= 1.4 Fixed checkquest to check quest accordingly. [Joseph]
 //= 1.4 Fixed checkquest to check quest accordingly. [Joseph]
+//= 1.4a Added 'npcskill' command. [Euphy]
 //============================================================
 //============================================================
 
 
 // Sprakki (Stard of Novice Training Ground, Outside Castle)
 // Sprakki (Stard of Novice Training Ground, Outside Castle)
@@ -932,8 +933,7 @@ new_1-2,35,176,4	script	Soldier#nv	105,{
 		mes "Kill enough Porings.";
 		mes "Kill enough Porings.";
 		mes "Porings are easy to deal with, so cheer up.";
 		mes "Porings are easy to deal with, so cheer up.";
 		mes "Try again.";
 		mes "Try again.";
-		percentheal 100,100;
-		skilleffect 28,9999;
+		npcskill "AL_HEAL",10,99,60;
 		close;
 		close;
 	}
 	}
 	mes "[Brade]";
 	mes "[Brade]";
@@ -946,8 +946,7 @@ new_1-2,35,176,4	script	Soldier#nv	105,{
 	mes "[Brade]";
 	mes "[Brade]";
 	mes "Try using the job manuals to find out the characteristics of each job's skills.";
 	mes "Try using the job manuals to find out the characteristics of each job's skills.";
 	mes "I will restore your HP and SP... Keep it up.";
 	mes "I will restore your HP and SP... Keep it up.";
-	percentheal 100,100;
-	skilleffect 28,9999;
+	npcskill "AL_HEAL",10,99,60;
 	close;
 	close;
 }
 }
 
 

+ 8 - 8
npc/re/mobs/dungeons/mal_dun.txt

@@ -3,22 +3,22 @@
 //===== By: ==================================================
 //===== By: ==================================================
 //= Chilly
 //= Chilly
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 1.0
+//= 1.1
 //===== Compatible With: =====================================
 //===== Compatible With: =====================================
 //= rAthena SVN
 //= rAthena SVN
 //===== Description: =========================================
 //===== Description: =========================================
 //= Official kRO monster spawns
 //= Official kRO monster spawns
 //===== Additional Comments: =================================
 //===== Additional Comments: =================================
 //= 1.0 First Release
 //= 1.0 First Release
+//= 1.1 Updated to official script. [Euphy]
 //============================================================
 //============================================================
 
 
 //==================================================
 //==================================================
 // mal_dun01 - Lagoon in the Stars
 // mal_dun01 - Lagoon in the Stars
 //==================================================
 //==================================================
-mal_dun01,0,0,0,0	monster	Crab	1073,20,0,0,0
-mal_dun01,0,0,0,0	monster	Shellfish	1074,20,0,0,0
-mal_dun01,0,0,0,0	monster	Aster	1266,20,0,0,0
-mal_dun01,0,0,0,0	monster	Red Eruma	2197,120,0,0,0
-mal_dun01,0,0,0,0	monster	Siorava	2199,80,0,0,0
-mal_dun01,0,0,0,0	monster	Wild Rider	2208,1,20000,10000,1
-mal_dun01,0,0,0,0	monster	King Dramoh	2198,1,30000,20000,1
+mal_dun01,0,0,0,0	monster	Crab	1073,10,5000,0,0
+mal_dun01,0,0,0,0	monster	Shellfish	1074,10,5000,0,0
+mal_dun01,0,0,0,0	monster	Aster	1266,20,5000,0,0
+mal_dun01,0,0,0,0	monster	Red Eruma	2197,60,5000,0,0
+mal_dun01,0,0,0,0	monster	Siorava	2199,45,5000,0,0
+mal_dun01,0,0,0,0	monster	Wild Rider	2208,1,5000,0,0

+ 20 - 19
npc/re/quests/eden/eden_quests.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //===== By: ==================================================
 //= L0ne_W0lf
 //= L0ne_W0lf
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 1.3
+//= 1.4a
 //===== Compatible With: =====================================
 //===== Compatible With: =====================================
 //= rAthena SVN
 //= rAthena SVN
 //===== Description: =========================================
 //===== Description: =========================================
@@ -16,6 +16,7 @@
 //= 1.3 Added Instructor Ur and the new Quests which come
 //= 1.3 Added Instructor Ur and the new Quests which come
 //= alongside him. Special thanks to Chilly for the base. [Masao]
 //= alongside him. Special thanks to Chilly for the base. [Masao]
 //= 1.4 Partial cleaning and bug fixing. [Euphy]
 //= 1.4 Partial cleaning and bug fixing. [Euphy]
+//= 1.4a Added 'npcskill' command. [Euphy]
 //============================================================
 //============================================================
 
 
 moc_para01,25,35,4	script	Instructor Boya#para01	469,{
 moc_para01,25,35,4	script	Instructor Boya#para01	469,{
@@ -1182,7 +1183,7 @@ moc_fild11,180,253,5	script	Talking Dog#para03	972,{
 		mes "Oh, if you are tired I will help you.";
 		mes "Oh, if you are tired I will help you.";
 		next;
 		next;
 		mes "-When the dog barked, your HP and SP recovered.-";
 		mes "-When the dog barked, your HP and SP recovered.-";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1220,7 +1221,7 @@ moc_fild11,180,253,5	script	Talking Dog#para03	972,{
 		mes "Oh, if you are tired I will help you.";
 		mes "Oh, if you are tired I will help you.";
 		next;
 		next;
 		mes "-When the dog barked, your HP and SP recovered.-";
 		mes "-When the dog barked, your HP and SP recovered.-";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1276,7 +1277,7 @@ moc_fild11,180,253,5	script	Talking Dog#para03	972,{
 		mes "Oh, if you are tired I will help you.";
 		mes "Oh, if you are tired I will help you.";
 		next;
 		next;
 		mes "-When the dog barked, your HP and SP recovered.-";
 		mes "-When the dog barked, your HP and SP recovered.-";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1422,7 +1423,7 @@ prt_sewb1,131,262,3	script	Timid Cat#para04	422,{
 		mes "[Timid Cat]";
 		mes "[Timid Cat]";
 		mes "Take care to check your map so you don't get lost.";
 		mes "Take care to check your map so you don't get lost.";
 		mes "It's a service meeow.";
 		mes "It's a service meeow.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 0,100;
 		percentheal 0,100;
 		close;
 		close;
 	}
 	}
@@ -1460,7 +1461,7 @@ prt_sewb1,131,262,3	script	Timid Cat#para04	422,{
 		mes "[Timid Cat]";
 		mes "[Timid Cat]";
 		mes "I will help you a little.";
 		mes "I will help you a little.";
 		mes "Here, I have recovered your strengh meow..";
 		mes "Here, I have recovered your strengh meow..";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1495,7 +1496,7 @@ prt_sewb1,131,262,3	script	Timid Cat#para04	422,{
 		mes "It's the last course so cheer up.";
 		mes "It's the last course so cheer up.";
 		mes "I will help you a little.";
 		mes "I will help you a little.";
 		mes "Here, I have recovered your strengh meow..";
 		mes "Here, I have recovered your strengh meow..";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 0,100;
 		percentheal 0,100;
 		close;
 		close;
 	}
 	}
@@ -1607,7 +1608,7 @@ pay_arche,41,136,3	script	Eden Member Karl#para05	904,{
 		mes "[Karl]";
 		mes "[Karl]";
 		mes "Just in case I will recover all your energy.";
 		mes "Just in case I will recover all your energy.";
 		mes "It's the last step so be careful.";
 		mes "It's the last step so be careful.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1638,7 +1639,7 @@ pay_arche,41,136,3	script	Eden Member Karl#para05	904,{
 		mes "[Karl]";
 		mes "[Karl]";
 		mes "Just in case I will recover all your energy.";
 		mes "Just in case I will recover all your energy.";
 		mes "It's the last step so be careful.";
 		mes "It's the last step so be careful.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 0,100;
 		percentheal 0,100;
 		close;
 		close;
 	}
 	}
@@ -1761,7 +1762,7 @@ anthell01,29,264,5	script	Eden Member Cloud#para06	899,{
 		mes "What do you think of Ant Hell?";
 		mes "What do you think of Ant Hell?";
 		mes "Can you stay longer?";
 		mes "Can you stay longer?";
 		mes "Ok, I will recover your strengh so, keep going.";
 		mes "Ok, I will recover your strengh so, keep going.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1800,7 +1801,7 @@ anthell01,29,264,5	script	Eden Member Cloud#para06	899,{
 		mes "[Cloud]";
 		mes "[Cloud]";
 		mes "See, to cheer you up I will heal you until you finish the training.";
 		mes "See, to cheer you up I will heal you until you finish the training.";
 		mes "Chin up and cheer up.";
 		mes "Chin up and cheer up.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1828,7 +1829,7 @@ anthell01,29,264,5	script	Eden Member Cloud#para06	899,{
 		mes "[Cloud]";
 		mes "[Cloud]";
 		mes "Just Vitata, isn't that an easy opponent?";
 		mes "Just Vitata, isn't that an easy opponent?";
 		mes "If you see Maya just run away.";
 		mes "If you see Maya just run away.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1943,7 +1944,7 @@ in_orcs01,38,175,3	script	Eden Member Hooksha	803,{
 		mes "[Hooksha]";
 		mes "[Hooksha]";
 		mes "You look tired I will recover your health.";
 		mes "You look tired I will recover your health.";
 		mes "If you are in trouble just come back here to safety.";
 		mes "If you are in trouble just come back here to safety.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -1974,7 +1975,7 @@ in_orcs01,38,175,3	script	Eden Member Hooksha	803,{
 		mes "[Hooksha]";
 		mes "[Hooksha]";
 		mes "You look tired, I will recover your health.";
 		mes "You look tired, I will recover your health.";
 		mes "If you are in trouble just come back here to safety.";
 		mes "If you are in trouble just come back here to safety.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -2000,7 +2001,7 @@ in_orcs01,38,175,3	script	Eden Member Hooksha	803,{
 		mes "[Hooksha]";
 		mes "[Hooksha]";
 		mes "You look tired, I will recover your health.";
 		mes "You look tired, I will recover your health.";
 		mes "If you are in trouble just come back here to safety.";
 		mes "If you are in trouble just come back here to safety.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -2073,7 +2074,7 @@ in_orcs01,38,175,3	script	Eden Member Hooksha	803,{
 		mes "Can you stay longer?";
 		mes "Can you stay longer?";
 		mes "You look tired, I will recover your health.";
 		mes "You look tired, I will recover your health.";
 		mes "If you are in trouble just come back here to safety.";
 		mes "If you are in trouble just come back here to safety.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -2097,7 +2098,7 @@ in_orcs01,38,175,3	script	Eden Member Hooksha	803,{
 		mes "Can you stay longer?";
 		mes "Can you stay longer?";
 		mes "You look tired I will recover your health.";
 		mes "You look tired I will recover your health.";
 		mes "If you are in trouble just come back here to safety.";
 		mes "If you are in trouble just come back here to safety.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}
@@ -2201,7 +2202,7 @@ iz_dun04,43,46,3	script	Eden Member Callandiva	745,{
 		mes "Oh are you tired?";
 		mes "Oh are you tired?";
 		mes "Mermans are not easy opponents.";
 		mes "Mermans are not easy opponents.";
 		mes "I will help you recover so cheer up.";
 		mes "I will help you recover so cheer up.";
-//		UseSkillToPC 28 10 99 60;
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 0,100;
 		percentheal 0,100;
 		close;
 		close;
 	}
 	}
@@ -2235,7 +2236,7 @@ iz_dun04,43,46,3	script	Eden Member Callandiva	745,{
 		mes "Oh are you tired?";
 		mes "Oh are you tired?";
 		mes "Strouf are not easy opponents.";
 		mes "Strouf are not easy opponents.";
 		mes "I can help you recover so cheer up.";
 		mes "I can help you recover so cheer up.";
-//		UseSkillToPC 28 10 99 60
+		npcskill "AL_HEAL",10,99,60;
 		percentheal 100,100;
 		percentheal 100,100;
 		close;
 		close;
 	}
 	}

+ 11 - 0
src/map/pc.c

@@ -7231,6 +7231,17 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
 	sd->class_ = (unsigned short)b_class;
 	sd->class_ = (unsigned short)b_class;
 	sd->status.job_level=1;
 	sd->status.job_level=1;
 	sd->status.job_exp=0;
 	sd->status.job_exp=0;
+
+	if (sd->status.base_level > pc_maxbaselv(sd)) {
+		sd->status.base_level = pc_maxbaselv(sd);
+		sd->status.base_exp=0;
+		pc_resetstate(sd);
+		clif_updatestatus(sd,SP_STATUSPOINT);
+		clif_updatestatus(sd,SP_BASELEVEL);
+		clif_updatestatus(sd,SP_BASEEXP);
+		clif_updatestatus(sd,SP_NEXTBASEEXP);
+	}
+
 	clif_updatestatus(sd,SP_JOBLEVEL);
 	clif_updatestatus(sd,SP_JOBLEVEL);
 	clif_updatestatus(sd,SP_JOBEXP);
 	clif_updatestatus(sd,SP_JOBEXP);
 	clif_updatestatus(sd,SP_NEXTJOBEXP);
 	clif_updatestatus(sd,SP_NEXTJOBEXP);

+ 6 - 6
src/map/script.c

@@ -17268,9 +17268,9 @@ BUILDIN_FUNC(cleanmap)
 	return 0;
 	return 0;
 }
 }
 /* Cast a skill on the attached player.
 /* Cast a skill on the attached player.
- * useskilltopc <skill_id>, <skill_level>, <stat_point>, <npc_level>;
- * useskilltopc "<skill_name>", <skill_level>, <stat_point>, <npc_level>; */
-BUILDIN_FUNC(useskilltopc)
+ * npcskill <skill id>, <skill lvl>, <stat point>, <NPC level>;
+ * npcskill "<skill name>", <skill lvl>, <stat point>, <NPC level>; */
+BUILDIN_FUNC(npcskill)
 {
 {
 	unsigned int skill_id;
 	unsigned int skill_id;
 	unsigned short skill_level;
 	unsigned short skill_level;
@@ -17287,11 +17287,11 @@ BUILDIN_FUNC(useskilltopc)
 	nd			= (struct npc_data *)map_id2bl(sd->npc_id);
 	nd			= (struct npc_data *)map_id2bl(sd->npc_id);
 
 
 	if (stat_point > battle_config.max_third_parameter) {
 	if (stat_point > battle_config.max_third_parameter) {
-		ShowError("useskilltopc: stat point exceeded maximum of %d.\n",battle_config.max_third_parameter );
+		ShowError("npcskill: stat point exceeded maximum of %d.\n",battle_config.max_third_parameter );
 		return 1;
 		return 1;
 	}
 	}
 	if (npc_level > MAX_LEVEL) {
 	if (npc_level > MAX_LEVEL) {
-		ShowError("useskilltopc: level exceeded maximum of %d.\n", MAX_LEVEL);
+		ShowError("npcskill: level exceeded maximum of %d.\n", MAX_LEVEL);
 		return 1;
 		return 1;
 	}
 	}
 	if (sd == NULL || nd == NULL) { //ain't possible, but I don't trust people.
 	if (sd == NULL || nd == NULL) { //ain't possible, but I don't trust people.
@@ -17758,7 +17758,7 @@ struct script_function buildin_func[] = {
 	BUILDIN_DEF(getrandgroupitem,"ii"),
 	BUILDIN_DEF(getrandgroupitem,"ii"),
 	BUILDIN_DEF(cleanmap,"s"),
 	BUILDIN_DEF(cleanmap,"s"),
 	BUILDIN_DEF2(cleanmap,"cleanarea","siiii"),
 	BUILDIN_DEF2(cleanmap,"cleanarea","siiii"),
-	BUILDIN_DEF(useskilltopc,"viii"),
+	BUILDIN_DEF(npcskill,"viii"),
 	/**
 	/**
 	 * @commands (script based)
 	 * @commands (script based)
 	 **/
 	 **/

+ 7 - 0
src/map/unit.c

@@ -1276,6 +1276,10 @@ int unit_skilluse_id2(struct block_list *src, int target_id, short skill_num, sh
 	casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv);
 	casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv);
 #endif
 #endif
 
 
+	if (src->type == BL_NPC) { // NPC-objects do not have cast time
+		casttime = 0;
+	}
+
 	if(!ud->state.running) //need TK_RUN or WUGDASH handler to be done before that, see bugreport:6026
 	if(!ud->state.running) //need TK_RUN or WUGDASH handler to be done before that, see bugreport:6026
 		unit_stop_walking(src,1);// eventhough this is not how official works but this will do the trick. bugreport:6829
 		unit_stop_walking(src,1);// eventhough this is not how official works but this will do the trick. bugreport:6829
 	// in official this is triggered even if no cast time.
 	// in official this is triggered even if no cast time.
@@ -1439,6 +1443,9 @@ int unit_skilluse_pos2( struct block_list *src, short skill_x, short skill_y, sh
 	casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv );
 	casttime = skill_vfcastfix(src, casttime, skill_num, skill_lv );
 #endif
 #endif
 
 
+	if (src->type == BL_NPC) { // NPC-objects do not have cast time
+		casttime = 0;
+	}
 
 
 	ud->state.skillcastcancel = castcancel&&casttime>0?1:0;
 	ud->state.skillcastcancel = castcancel&&casttime>0?1:0;
 	if( !sd || sd->skillitem != skill_num || skill_get_cast(skill_num,skill_lv) )
 	if( !sd || sd->skillitem != skill_num || skill_get_cast(skill_num,skill_lv) )