Преглед изворни кода

* Added support for Baby classes in 1-1 job scripts (bugreport:5789).
* Documented some changes from r17131 (tid:76924).
* Follow-up r17131, fixed more minor issues in El Dicastes quests (bugreport:7273).
* Moved "Girl" NPC (from Guillotine Cross job quest) off of ve_fild05, unreachable in Renewal (bugreport:7275).
* Moved "Wincing Old Man" (from quests_veins) to pre-re/re coordinates.

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

euphyy пре 12 година
родитељ
комит
2fdc7109a0

+ 14 - 11
doc/script_commands.txt

@@ -2166,7 +2166,7 @@ This function will return the basic stats of an invoking character, referred to
 by the parameter number. Instead of a number, you can use a parameter name if it 
 is defined in 'db/const.txt'.
 
-For reference, these things are defined:
+Some example parameters:
 
 StatusPoint, BaseLevel, SkillPoint, Class, Upper, Zeny, Sex, Weight, MaxWeight,
 JobLevel, BaseExp, JobExp, NextBaseExp, NextJobExp, Hp, MaxHp, Sp, MaxSp,
@@ -2453,16 +2453,19 @@ This function returns the item ID of the item equipped in the equipment slot
 specified on the invoking character. If nothing is equipped there, it returns -1. 
 Valid equipment slots are:
 
-EQI_HEAD_TOP (1)  - Upper head gear
-EQI_ARMOR (2)     - Armor (Where you keep your Jackets and Robes)
-EQI_HAND_L (3)    - What is in your Left hand.
-EQI_HAND_R (4)    - What is in your Right hand.
-EQI_GARMENT (5)   - The garment slot (Mufflers, Hoods, Manteaus)
-EQI_SHOES (6)     - What foot gear the player has on.
-EQI_ACC_L (7)     - Accessory 1.
-EQI_ACC_R (8)     - Accessory 2.
-EQI_HEAD_MID (9)  - Middle Headgear (masks and glasses)
-EQI_HEAD_LOW (10) - Lower Headgear (beards, some masks)
+EQI_HEAD_TOP (1)          - Upper Headear
+EQI_ARMOR (2)             - Armor (Where you keep your Jackets and Robes)
+EQI_HAND_L (3)            - What is in your Left hand.
+EQI_HAND_R (4)            - What is in your Right hand.
+EQI_GARMENT (5)           - The garment slot (Mufflers, Hoods, Manteaus)
+EQI_SHOES (6)             - What foot gear the player has on.
+EQI_ACC_L (7)             - Accessory 1.
+EQI_ACC_R (8)             - Accessory 2.
+EQI_HEAD_MID (9)          - Middle Headgear (masks and glasses)
+EQI_HEAD_LOW (10)         - Lower Headgear (beards, some masks)
+EQI_COSTUME_HEAD_LOW (11) - Lower Costume Headgear
+EQI_COSTUME_HEAD_MID (12) - Middle Costume Headgear
+EQI_COSTUME_HEAD_TOP (13) - Upper Costume Headgear
 
 Notice that a few items occupy several equipment slots, and if the character is 
 wearing such an item, 'getequipid' will return it's ID number for either slot.

+ 15 - 0
npc/pre-re/quests/quests_veins.txt

@@ -0,0 +1,15 @@
+//===== rAthena Script ======================================= 
+//= Quest NPCs located in Veins
+//===== By: ================================================== 
+//= Euphy
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= rAthena SVN
+//===== Description: ========================================= 
+//= Quests related to Lighthalzen City.
+//===== Additional Comments: ================================= 
+//= 1.0 First version.
+//============================================================ 
+
+ve_fild05,257,130,4	duplicate(WincingOldMan_veins)	Wincing Old Man#ve	945

+ 1 - 0
npc/pre-re/scripts_athena.conf

@@ -79,3 +79,4 @@ npc: npc/pre-re/other/mercenary_rent.txt
 npc: npc/pre-re/quests/mrsmile.txt
 npc: npc/pre-re/quests/quests_izlude.txt
 npc: npc/pre-re/quests/quests_lighthalzen.txt
+npc: npc/pre-re/quests/quests_veins.txt

+ 3 - 2
npc/quests/quests_veins.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= L0ne_W0lf
 //===== Current Version: ===================================== 
-//= 2.1
+//= 2.2
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -45,11 +45,12 @@
 //=     - Thor Volcano Base Quest
 //= 2.0 Removed level requirement. (bugreport:4678) [L0ne_W0lf]
 //= 2.1 Added missing changequest (3071-3076). [Joseph]
+//= 2.2 Moved "Wincing Old Man" to pre-re/re coordinates. [Euphy]
 //============================================================ 
 
 // Stone Quest
 //============================================================ 
-ve_fild05,257,130,4	script	Wincing Old Man#ve	945,{
+-	script	::WincingOldMan_veins	-1,{
 	if ((MaxWeight - Weight) < 2000 || checkweight(1201,1) == 0) {
 		mes "- Wait a moment! -";
 		mes "- Currently you are carrying -";

+ 7 - 8
npc/re/jobs/1-1/acolyte.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Kisuka
 //===== Current Version: ===================================== 
-//= 1.1
+//= 1.2
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -11,6 +11,7 @@
 //===== Additional Comments: ================================= 
 //= 1.0 First Version. [Kisuka]
 //= 1.1 Added back the npcs used for the priest quest.
+//= 1.2 Added support for Baby classes. [Euphy]
 //============================================================ 
 prt_church,184,41,4	script	Cleric#aco	60,{
 	if (Upper == 1) {
@@ -63,16 +64,14 @@ prt_church,184,41,4	script	Cleric#aco	60,{
 	next;
 	switch(select("Change your job to acolyte.:Ask the requirements to be an acolyte.:Quit it.")) {
 	case 1:
-		if(Class != Job_Novice) {
-			mes "[Father Mareusis]";
-			if(Class == Job_Acolyte) {
+		mes "[Father Mareusis]";
+		if(BaseJob != Job_Novice) {
+			if(BaseJob == Job_Acolyte)
 				mes "Are you feeling okay today? I can tell by your attire that you are already an Acolyte. You're not joking around, are you?";
-			}else{
+			else
 				mes "I'm sorry but it seems you already have your own job, aren't you?";
-			}
 			close;
 		}else{
-			mes "[Father Mareusis]";
 			mes "Do you truly wish to become a servant of God?";
 			mes "Let's see whether you are ready for it or not... Hmm...";
 			next;
@@ -87,7 +86,7 @@ prt_church,184,41,4	script	Cleric#aco	60,{
 			next;
 			mes "[Father Mareusis]";
 			mes "Always remember to be thankful to God, who takes care of us all the time. In chaos and times of difficulty, face your hardships with unwavering faith.";
-			jobchange Job_Acolyte;
+			callfunc "Job_Change",Job_Acolyte;
 			getitem 1545,1;	// N_Mace
 			next;
 			mes "[Father Mareusis]";

+ 9 - 9
npc/re/jobs/1-1/archer.txt

@@ -3,13 +3,14 @@
 //===== By: ================================================== 
 //= Kisuka
 //===== Current Version: ===================================== 
-//= 1.0
+//= 1.1
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
 //= Job Change to Archer Class
 //===== Additional Comments: ================================= 
 //= 1.0 First Version. [Kisuka]
+//= 1.1 Added support for Baby classes. [Euphy]
 //============================================================ 
 payon_in02,64,71,4	script	Archer Guildsman#archer	85,{
 	if (Upper == 1) {
@@ -63,18 +64,17 @@ payon_in02,64,71,4	script	Archer Guildsman#archer	85,{
 	next;
 	switch(select("I want to be an Archer.:I need the requirements, please.:Nothing, thanks.")) {
 	case 1:
-		if(Class != Job_Novice) {
-			mes "[Archer Guildsman]";
-			if(Class == Job_Archer) {
-				mes "Haha, you are kidding me..";
-			}else{
+		mes "[Archer Guildsman]";
+		if(BaseJob != Job_Novice) {
+			if(BaseJob == Job_Archer)
+				mes "Haha, you are kidding me...";
+			else {
 				mes "I feel sorry but only Novices can change their job.";
 				mes "You already have your own decent job, don't you?";
 			}
 			close;
 		}else{
-			mes "[Archer Guildsman]";
-			mes "You are... "+strcharinfo(0)+". right?";
+			mes "You are... "+strcharinfo(0)+", right?";
 			next;
 			if (getskilllv("NV_BASIC") < 9) {
 				mes "[Archer Guildsman]";
@@ -92,7 +92,7 @@ payon_in02,64,71,4	script	Archer Guildsman#archer	85,{
 			mes "[Archer Guildsman]";
 			mes "Congratulations! You are now an Archer! Also, we hope that you actively participate in many programs for the revival of the Archer Guild.";
 			mes "Ah, items have arrived from the Production Department. Here, take these! These are all yours!";
-			jobchange Job_Archer;
+			callfunc "Job_Change",Job_Archer;
 			getitem 1742,1;	// N_Composite_Bow
 			getitem 12004,1;	// Arrow_Container
 			getitem 12009,1;	// Silver_Arrow_Container

+ 7 - 8
npc/re/jobs/1-1/mage.txt

@@ -3,13 +3,14 @@
 //===== By: ================================================== 
 //= Kisuka
 //===== Current Version: ===================================== 
-//= 1.0
+//= 1.1
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
 //= Job Change to Mage Class
 //===== Additional Comments: ================================= 
 //= 1.0 First Version. [Kisuka]
+//= 1.1 Added support for Baby classes. [Euphy]
 //============================================================ 
 geffen_in,164,124,4	script	Mage Guildsman#mage	123,{
 	if (Upper == 1) {
@@ -52,17 +53,15 @@ geffen_in,164,124,4	script	Mage Guildsman#mage	123,{
 			close;
 		}
 	}
-	if(Class != Job_Novice) {
-		mes "[Mage Guildsman]";
-		if(Class == Job_Mage) {
+	mes "[Mage Guildsman]";
+	if(BaseJob != Job_Novice) {
+		if(BaseJob == Job_Mage) {
 			mes "Hey, haven't you realized? You're already a Mage, silly!";
 			mes "One of these days you'll realize the power inside of you when you can make Fire with your mind!";
-		}else{
+		} else
 			mes "Hey~ C'mon. Quit playing games. You can't be a Mage because you already have another Job.";
-		}
 		close;
 	}else{
-		mes "[Mage Guildsman]";
 		mes "Hey?";
 		next;
 		switch(select("I want to be a Mage:What are the requirements to be a Mage?:Nothing, thanks.")) {
@@ -105,7 +104,7 @@ geffen_in,164,124,4	script	Mage Guildsman#mage	123,{
 			mes "'Welcome to the Mage Guild~'";
 			mes "Congratulations on becoming a member of the Mage Guild! Go for it!";
 			callfunc "Job_Change",Job_Mage;
-			getitem	1639,1; // N_Rod
+			getitem 1639,1;	// N_Rod
 			close;
 		case 2:
 			mes "[Mage Guildsman]";

+ 6 - 6
npc/re/jobs/1-1/merchant.txt

@@ -3,13 +3,14 @@
 //===== By: ================================================== 
 //= Kisuka
 //===== Current Version: ===================================== 
-//= 1.0
+//= 1.1
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
 //= Job Change to Merchant Class
 //===== Additional Comments: ================================= 
 //= 1.0 First Version. [Kisuka]
+//= 1.1 Added support for Baby classes. [Euphy]
 //============================================================ 
 alberta_in,53,43,6	script	Merchant#mer	86,{
 	if (Upper == 1) {
@@ -57,9 +58,9 @@ alberta_in,53,43,6	script	Merchant#mer	86,{
 	next;
 	switch(select("I want to be a merchant.:I want to know more about merchants.:Ask him the requirements to be a merchant.:Nothing.")) {
 	case 1:
-		if(Class != Job_Novice) {
-			mes "[Guildsman Mahnsoo]";
-			if(Class == Job_Merchant) {
+		mes "[Guildsman Mahnsoo]";
+		if(BaseJob != Job_Novice) {
+			if(BaseJob == Job_Merchant) {
 				mes ".....? Sorry? What are you saying?";
 				mes "You are already a merchant. Oh my..";
 				mes "Huh?! ...Do I need to laugh right now?!";
@@ -72,7 +73,6 @@ alberta_in,53,43,6	script	Merchant#mer	86,{
 			}
 			close;
 		}else{
-			mes "[Guildsman Mahnsoo]";
 			mes "Want to be a merchant? Hmm...";
 			next;
 			if (getskilllv("NV_BASIC") < 9) {
@@ -91,7 +91,7 @@ alberta_in,53,43,6	script	Merchant#mer	86,{
 			mes "Congratulations on becoming a merchant!";
 			mes "Congratulations again for being a member of the merchant guild and one of our colleagues. I expect your active participation from now on!";
 			callfunc "Job_Change",Job_Merchant;
-			getitem	1381,1; // N_Battle_Axe
+			getitem 1381,1;	// N_Battle_Axe
 			next;
 			mes "[Guildsman Mahnsoo]";
 			mes "Absolutely, we need young people who have passion to achieve our great goal for securing 20% of the worldwide currency volume. You get it? Huh?";

+ 5 - 6
npc/re/jobs/1-1/swordman.txt

@@ -3,13 +3,14 @@
 //===== By: ================================================== 
 //= Kisuka
 //===== Current Version: ===================================== 
-//= 1.0
+//= 1.1
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
 //= Job Change to Swordman Class
 //===== Additional Comments: ================================= 
 //= 1.0 First Version. [Kisuka]
+//= 1.1 Added support for Baby classes. [Euphy]
 //============================================================ 
 izlude_in,74,172,4	script	Swordman#swd	119,{
 	if (Upper == 1) {
@@ -80,9 +81,9 @@ izlude_in,74,172,4	script	Swordman#swd	119,{
 		mes "In my opinion, Swordman is the best job ever!";
 		close;
 	case 2:
-		if(Class != Job_Novice) {
-			mes "[Swordman Guildsman]";
-			if(Class == Job_Swordman) {
+		mes "[Swordman Guildsman]";
+		if(BaseJob != Job_Novice) {
+			if(BaseJob == Job_Swordman) {
 				mes "You are already an excellent Swordman, aren't you?";
 				mes "Just devote yourself to be a great Swordman.";
 			}else{
@@ -92,7 +93,6 @@ izlude_in,74,172,4	script	Swordman#swd	119,{
 			close;
 		}else{
 			if (getskilllv("NV_BASIC") < 9) {
-				mes "[Swordman Guildsman]";
 				mes "I'm sorry to tell you this but to be a Swordman, you must reach at least ^4A4AFFJob Level 10^000000.";
 				mes "and ^4A4AFFBasic Skill Level 9^000000.";
 				next;
@@ -101,7 +101,6 @@ izlude_in,74,172,4	script	Swordman#swd	119,{
 				mes "Do you think being a Swordman is that easy?";
 				close;
 			}
-			mes "[Swordman Guildsman]";
 			mes "Hmm, both your Job Level and Basic Skill Level check out.";
 			mes "Good. Do you want to be a Swordman right away?";
 			next;

+ 15 - 20
npc/re/jobs/1-1/thief.txt

@@ -3,13 +3,14 @@
 //===== By: ================================================== 
 //= Kisuka
 //===== Current Version: ===================================== 
-//= 1.0
+//= 1.1
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
 //= Job Change to Thief Class
 //===== Additional Comments: ================================= 
 //= 1.0 First Version. [Kisuka]
+//= 1.1 Added support for Baby classes. [Euphy]
 //============================================================ 
 moc_prydb1,39,129,2	script	Thief Guide#thief	69,{
 	if (Upper == 1) {
@@ -65,39 +66,33 @@ moc_prydb1,39,129,2	script	Thief Guide#thief	69,{
 		mes "If you want to become a Thief, ask the sharp-eyed guy next to me.";
 		close;
 	}
-	if(Class != Job_Novice) {
-		if(Class == Job_Thief) {
-			mes "[Thief Guildsman]";
+	mes "[Thief Guildsman]";
+	if(BaseJob != Job_Novice) {
+		if(BaseJob == Job_Thief) {
 			mes "Hey~ if you have any trouble, get it out to me anytime, huh?";
 			close;
 		}else{
+			mes "What the heck...?";
 			if(Sex) {
-				mes "[Thief Guildsman]";
-				mes "What the heck...?";
-				mes "Huh.. you are a "+jobname(Class)+" blockhead...!";
+				mes "Huh... you are a "+jobname(Class)+", blockhead!";
 				next;
 				mes "[Thief Guildsman]";
 				mes "Hey, brother.";
-				mes "Why are you here? Go back to your place~ go back~~";
-				close;
 			}else{
-				mes "[Thief Guildsman]";
-				mes "What the heck...?";
 				next;
 				mes "[Thief Guildsman]";
 				mes "Hey, lady.";
-				mes "Why are you here? Go back to your place~ go back~~";
-				close;
 			}
+			mes "Why are you here? Go back to your place~ go back~~";
+			close;
 		}
 	}
-	mes "[Thief Guildsman]";
 	mes "Ehh... Seems like a beloved "+(Sex?"son":"daughter")+" of a rich family, but why are you here in this dirty place?";
 	next;
 	if(select("I want to be a Thief.:Nothing.") == 2) {
 		mes "[Thief Guildsman]";
-		mes "You know you cannot be a thief without an application.....";
-		mes "What's on your mind..?";
+		mes "You know you cannot be a thief without an application...";
+		mes "What's on your mind...?";
 		close;
 	}
 	mes "[Thief Guildsman]";
@@ -169,9 +164,9 @@ moc_prydb1,42,133,2	script	Thief Guildsman#thief	118,{
 		mes "[Commander of Thief Guild]";
 		mes "'"+strcharinfo(0)+".'";
 		mes "'For those who are ready, the moonlight shall open the way. Now you are fully ready, I now officially allow you to become a member of the Thief Guild.'";
-		jobchange Job_Thief;
+		callfunc "Job_Change",Job_Thief;
 		set q_job_thief,0;
-		getitem 13041,1; // N_Main_Gauche
+		getitem 13041,1;	// N_Main_Gauche
 		next;
 		mes "[Commander of Thief Guild]";
 		mes "'Congratulations on becoming a Thief.'";
@@ -189,8 +184,8 @@ moc_prydb1,42,133,2	script	Thief Guildsman#thief	118,{
 		mes "See you again.";
 		close;
 	}
-	if(Class != Job_Novice) {
-		if(Class == Job_Thief) {
+	if(BaseJob != Job_Novice) {
+		if(BaseJob == Job_Thief) {
 			mes "[Brad]";
 			mes "I don't have any special events now. So go on your way and come back later.";
 		}else{

+ 9 - 7
npc/re/jobs/3-1/guillotine_cross.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Muad_Dib
 //===== Current Version: ===================================== 
-//= 1.1
+//= 1.2
 //===== Compatible With: ===================================== 
 //= rAthena SVN r16945+
 //===== Description: ========================================= 
@@ -14,6 +14,7 @@
 //= 1.0a Added 'npcskill' command. [Euphy]
 //= 1.0b Moved warps to separate file. [Euphy]
 //= 1.1 Fixed some minor bugs. [Euphy]
+//= 1.2 Moved "Girl" NPC off ve_fild05. [Euphy]
 //============================================================
 
 que_job01,75,96,3	script	Guild Member#3rdgc01	997,{
@@ -2646,7 +2647,8 @@ ra_in01,175,196,3	script	Oresa Rava#3rdgc13	866,{
 	}
 }
 
-ve_fild05,327,308,3	script	Girl#3rdgc14	466,{
+//Pre-RE: ve_fild05 (327,308)
+ve_fild02,330,384,3	script	Girl#3rdgc14	466,{
 	if (job_3rd_gc > 14 && job_3rd_gc < 18) {
 		mes "[Renzak]";
 		if (job_3rd_gc == 15) {
@@ -2744,7 +2746,7 @@ OnTouch:
 	} else {
 		mes "You don't have to come here.";
 		close2;
-		warp "ve_fild05",341,303;
+		warp "ve_fild02",330,379;	//Pre-RE: ve_fild05 (341,303)
 		set $@3rdgc_room02, 0;
 	}
 	end;
@@ -2752,7 +2754,7 @@ OnTimer900000:
 	mapannounce "job3_guil03","Renzak : Withdraw!",bc_map,"0xA8A8A8"; //FW_NORMAL 12 0 0
 	end;
 OnTimer901000:
-	mapwarp "job3_guil03","ve_fild05",341,303;
+	mapwarp "job3_guil03","ve_fild02",330,379;	//Pre-RE: ve_fild05 (341,303)
 	end;
 OnTimer902000:
 	donpcevent "#3rdgc_event_master::OnReset";
@@ -3444,7 +3446,7 @@ job3_guil03,111,51,7	script	Priest from Rachel	928,{
 	mes "Who are you?";
 	mes "Get out of here.";
 	close2;
-	warp "ve_fild05",341,303;
+	warp "ve_fild02",330,379;	//Pre-RE: ve_fild05 (341,303)
 	end;
 OnInit:
 OnDisable:
@@ -3471,7 +3473,7 @@ OnTimer40000:
 	mapannounce "job3_guil03","Renzak : Don't lag!",bc_map,"0x4d4dff"; //FW_NORMAL 12 0 0
 	end;
 OnTimer60000:
-	mapwarp "job3_guil03","ve_fild05",341,303;
+	mapwarp "job3_guil03","ve_fild02",330,379;	//Pre-RE: ve_fild05 (341,303)
 	end;
 OnTimer61000:
 	donpcevent "#3rdgc_guard::OnStop";
@@ -3902,7 +3904,7 @@ job3_guil03,1,8,0	script	#GMhelper02_gc	844,{
 				donpcevent "#3rdgc_event01::OnEnable";
 				set $@3rdgc_room02, 0;
 				close2;
-				mapwarp "job3_guil03","ve_fild05",341,303;
+				mapwarp "job3_guil03","ve_fild02",330,379;	//Pre-RE: ve_fild05 (341,303)
 				end;
 			}
 		case 2:

+ 27 - 48
npc/re/quests/quests_dicastes.txt

@@ -597,7 +597,7 @@ dic_in01,51,270,7	script	Supply Dept. 1 Manager	449,{
 		mes "Cannot proceed because the weight of your items is too heavy. Let's try again after you get rid of some weight.";
 		close;
 	}
-	if (!isequipped(2782) < 1) {
+	if (!isequipped(2782)) {
 		mes "□ⅲ◆";
 		mes "■▲◇ ⅲ ■●★ ※ ○⒉ⅲ";
 		next;
@@ -878,7 +878,7 @@ dic_in01,40,193,1	script	Papyrus#0001	453,{
 		mes "Your inventory is too heavy.";
 		close;
 	}
-	if (isequipped(2782)) {
+	if (!isequipped(2782)) {
 		mes "□ⅲ◆";
 		mes "■▲◇ ⅲ ■●★ ※ ○⒉ⅲ";
 		next;
@@ -6669,7 +6669,7 @@ man_in01,315,52,3	script	Guard Captain Avalanche	450,{
 	}
 	else if (ep13_3_invite == 6) {
 		mes "[Avalanche]";
-		mes "Oh.. You have the Light of El Dicastes.";
+		mes "Oh... You have the Light of El Dicastes.";
 		mes "it would be helpful for your travel.";
 		next;
 		mes "[Avalanche]";
@@ -6687,7 +6687,7 @@ man_in01,315,52,3	script	Guard Captain Avalanche	450,{
 	next;
 	mes "[Avalanche]";
 	mes "Always take care of yourself at all times.";
-	mes "Haha.. but then you humans are very strong.";
+	mes "Haha... but then you humans are very strong.";
 	close;
 }
 
@@ -6942,8 +6942,7 @@ dic_in01,42,264,3	script	Adventurer Clerk#ep133	453,{
 			mes "But of course, since this is adding spells on top of its original magic, I cannot guarantee that you will get what you want on one try.";
 			close;
 		}
-		if (countitem(2844) < 1) //Luz de El Dicastes
-		{
+		if (countitem(2844) < 1) {
 			mes "[Kareka]";
 			mes "Either you are not wearing or don't have the equipment to upgrade on you.";
 			close;
@@ -7320,8 +7319,9 @@ dic_fild01,228,159,4	script	Jahbong#pa0829	496,{
 	mes "Why are you here?";
 	mes "Jahbong will exchange ^8000801 Sapha Certification^000000 for ^8000801 item^000000!";
 	next;
-	switch(select("Just came to see what you have.:I want the Feral Boots!:Give me the Feral Tail!:Give me the Golden Bell!:How much to buy you?")) {
-		case 1:
+	set .@i, select("Just came to see what you have.:I want the Feral Boots!:Give me the Feral Tail!:Give me the Golden Bell!:How much to buy you?")-1;
+	switch (.@i) {
+		case 0:
 			mes "[Jahbong]";
 			mes "Meow!";
 			next;
@@ -7337,46 +7337,7 @@ dic_fild01,228,159,4	script	Jahbong#pa0829	496,{
 			mes "[Jahbong]";
 			mes "There are some crazy adventurers asking if they can purchase me! Jahbong is not for sale! I'll just bite you if you ask!!";
 			close;
-		case 2:
-			mes "[Jahbong]";
-			mes "Are you really buying something?!";
-			next;
-			if(select("Nope:Give me!!!")==1) {
-				mes "[Jahbong]";
-				mes "Okay!";
-				close; }
-			mes "[Jahbong]";
-			mes "Here you go!";
-			delitem 6304,1;
-			getitem 2463,1;
-			close;
-		case 3:
-			mes "[Jahbong]";
-			mes "Are you really buying something?!";
-			next;
-			if(select("Nope:Give me!!!")==1) {
-				mes "[Jahbong]";
-				mes "Okay!";
-				close; }
-			mes "[Jahbong]";
-			mes "Here you go!";
-			delitem 6304,1;
-			getitem 2564,1;
-			close;
 		case 4:
-			mes "[Jahbong]";
-			mes "Are you really buying something?!";
-			next;
-			if(select("Nope:Give me!!!")==1) {
-				mes "[Jahbong]";
-				mes "Okay!";
-				close; }
-			mes "[Jahbong]";
-			mes "Here you go!";
-			delitem 6304,1;
-			getitem 2843,1;
-			close;
-		case 5:
 			mes "[Jahbong]";
 			mes "Meooooooooooow!!!!!!!!~~ Meooooooooow!!!!!";
 			next;
@@ -7387,7 +7348,25 @@ dic_fild01,228,159,4	script	Jahbong#pa0829	496,{
 			next;
 			mes "- He may react extremely, but Jahbong doesn't seem to be really angry. -";
 			close;
-		}
+		default:
+			break;
+	}
+	mes "[Jahbong]";
+	mes "Are you really buying something?!";
+	next;
+	switch(select("Nope:Give me!!!")) {
+		case 1:
+			mes "[Jahbong]";
+			mes "Okay!";
+			close;
+		case 2:
+			setarray .@items[1],2463,2564,2843;
+			mes "[Jahbong]";
+			mes "Here you go!";
+			delitem 6304,1;
+			getitem .@items[.@i],1;
+			close;
+	}
 }
 
 // Cat Hand Agent

+ 15 - 0
npc/re/quests/quests_veins.txt

@@ -0,0 +1,15 @@
+//===== rAthena Script ======================================= 
+//= Quest NPCs located in Veins
+//===== By: ================================================== 
+//= Euphy
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= rAthena SVN
+//===== Description: ========================================= 
+//= Quests related to Veins.
+//===== Additional Comments: ================================= 
+//= 1.0 First version.
+//============================================================ 
+
+ve_fild02,337,314,4	duplicate(WincingOldMan_veins)	Wincing Old Man#ve	945

+ 1 - 0
npc/re/scripts_athena.conf

@@ -81,3 +81,4 @@ npc: npc/re/quests/quests_dicastes.txt
 npc: npc/re/quests/quests_izlude.txt
 npc: npc/re/quests/quests_lighthalzen.txt
 npc: npc/re/quests/quests_malangdo.txt
+npc: npc/re/quests/quests_veins.txt