Procházet zdrojové kódy

move Bio ethic to skill quests, fixed bio ethic (let Baby alc+creators learn the skill, too). updated lighthalzen added mapflags. fixed treasure spawn formula

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8463 54d463be-8e91-2dee-dedb-b68131a5f0ec
Lupus před 19 roky
rodič
revize
70e170f745

+ 5 - 6
conf-tmpl/mapflag/noexp.txt

@@ -2,12 +2,8 @@
 //= Map flags that disable gaining EXP
 //===== By: ==================================================
 //= eAthena Dev Team
-//= 1.2 [Lupus]
-//= 1.3 [massdriller]
-//= 1.4 Lupus
-//= 1.5 Lorky
-//===== Current Version: =====================================
-// 15.06.2005 :: Lorky	:: First release
+//= 1.2 [Lupus] 1.3 [massdriller] 1.4 Lupus 1.5 Lorky
+//= 1.6 Added Lighthalzen (due to quests) [Lupus]
 //============================================================
 
 // Location for Job's Quests
@@ -25,3 +21,6 @@ job_sage.gat	mapflag	noexp
 job_soul.gat	mapflag	noexp
 job_star.gat	mapflag	noexp
 que_ng.gat	mapflag	noexp
+
+//Lighthalzen Quests
+lighthalzen.gat	mapflag	noexp

+ 6 - 7
conf-tmpl/mapflag/noloot.txt

@@ -2,12 +2,8 @@
 //= Map flags that disable drop of loot
 //===== By: ==================================================
 //= eAthena Dev Team
-//= 1.2 [Lupus]
-//= 1.3 [massdriller]
-//= 1.4 Lupus
-//= 1.5 Lorky
-//===== Current Version: =====================================
-// 15.06.2005 :: Lorky	:: First release
+//= 1.2 [Lupus] 1.3 [massdriller] 1.4 Lupus 1.5 Lorky
+//= 1.6 Added Lighthalzen (due to quests) [Lupus]
 //============================================================
 
 // Location for Job's Quests
@@ -26,4 +22,7 @@ job_star.gat	mapflag	noloot
 que_ng.gat	mapflag	noloot
 
 //Thievs have to gather some mushrooms. So they need loot
-//job_thief1.gat	mapflag	noloot
+//job_thief1.gat	mapflag	noloot
+
+//Lighthalzen Quests
+lighthalzen.gat	mapflag	noloot

+ 5 - 3
npc/Changelog.txt

@@ -11,12 +11,9 @@ Mass Zero
 	* Redoing lots of the custom scripts.
 Massdriller
 	* Correcting & Bugfixing scripts
-	* New Novice Grounds from MRO - 65% -(Not sure it should be stopped as DracoRPG 
 MasterOfMuppets
 	* Working on The Sign Quest atm.
 	* Updating Items / Scripts
-Nexon
-	* Adding in the new Abyss/Thanatos/Lighthalzen NPC's and optimizing them.
 erKURITA
 	* Warps maintainment
 Evera
@@ -35,6 +32,11 @@ Playtester
 
 Date		Added
 ======
+08/24
+	* Updated Treasure Chests Numver formula to the Aegis one: Economic/5+4 [Lupus]
+	- Updated Bio Ethics Quest to let Creators+Baby Alchemists learn the skill as well
+	- Moved it to Alchemist Skill Quests
+	- Added NO LOOT, NO EXP mapflags to Lighthalzen (Gangsters exploit fix)
 08/22
 	* Fixed bug letting anyone get homunculus skills from Bio Ethics [Evera]
 	* Updated Gunslinger Quest, removed "Thin Trunk" (7186) according to RockmanEXE [Toms]

+ 21 - 28
npc/guild/gldfunc_treasure.txt

@@ -1,12 +1,11 @@
 //===== eAthena Script =======================================
 //= War of Emperium Guild Treasure Room Functions
 //===== By: ==================================================
-//= holyAngelX (1.0)
-//= 1.1 by Akaru and ho|yAnge|X
+//= holyAngelX (1.0) Akaru and ho|yAnge|X (1.1)
 //===== Current Version: =====================================
-//= 1.4
+//= 1.6
 //===== Compatible With: =====================================
-//= eAthena 0.1+; RO Episode 4+
+//= eAthena 1+; RO Episode 4+
 //===== Description: =========================================
 //= F_GldTreas spawns treasure chests used by the guild master.
 //= F_GldTreasSw allows the player to get out of the treasure room.
@@ -14,28 +13,29 @@
 //= Break down of arguments used in the F_GldTreas:
 //=   arg(0): name of guild castle
 //=   arg(1): name of script that called the function
-//=   arg(2): $variable for number of boxes to spawn for specific castle
-//=   arg(2): $variable to be used as a counter
-//=   arg(4): $variable for box/monster id number.
+//=   arg(2): not used
+//=   arg(3): not used
+//=   arg(4): not used
 //=   arg(5): box/monster id#
 //=   arg(6): x1 coordinate for areamonster call
 //=   arg(7): y1 coordinate for areamonster call
 //=   arg(8): x2 coordinate for areamonster call
 //=   arg(9): y1 coordinate for areamonster call
-//=   arg(10): 
+//=   
 //= Break down of arguments used in the F_GldTreasSw:
 //=   arg(0): name of guild castle.
 //=   arg(1): x1 coordinate for warp back to guild castle
 //=   arg(2): y1 coordinate for warp back to guild castle
 //===== Additional Comments: =================================
-//= v1.2 Treasure room Spawn, and Treasure room Switch scripts now use these functions.[kobra_k88]
-//= v1.2a Function now returns to script that called it.  Removed TreasureSpawn2.
+//= 1.2 Treasure room Spawn, and Treasure room Switch scripts now use these functions.[kobra_k88]
+//= 1.2a Function now returns to script that called it.  Removed TreasureSpawn2.
 //= Changed back to using specific global variables for number of boxes and the box id. [kobra_k88]
-//= v1.2b Added a check to allow un broken treasure chests to respawn after map server restart.[kobra_k88]
+//= 1.2b Added a check to allow un broken treasure chests to respawn after map server restart.[kobra_k88]
 //= 1.3 Fixed treasure boxes spawn. (Unrolled one loop a bit) [Lupus]
 //= 1.4 New number of Treasure Boxes per castle: 25 at 100 Economic pts [Lupus]
-//=		So you get your first chest only when your Economic Pts >= 4
+//=	So you get your first chest only when your Economic Pts >= 4
 //= 1.5 Fixed treasure number 'round exploit' [Lupus]
+//= 1.6 to Aegis X.2 formula 4..24 Treasure Chests [Lupus]
 //============================================================
 
 
@@ -45,23 +45,16 @@
 function	script	F_GldTreas	{
 	
 	if(getarg(10) == 1) goto L_SPAWN;
-	SetCastleData getarg(0)+".gat",4,0;
-	SetCastleData getarg(0)+".gat",5,0;
-	KillMonster getarg(0)+".gat","Treasure_"+getarg(1)+"::OnDied";
-	if (GetCastleData(getarg(0)+".gat",2) > 100) return;
-	if (GetCastleData(getarg(0)+".gat",1) == 0) return;
-//[New] correct formula for 25 boxes at 100 pts:
-	set getarg(2),GetCastleData(getarg(0)+".gat",2)>>2;
-	if (getarg(2) <= 0) return;
-	set getarg(3), getarg(2);	//sets the counter variable = to the box number amount
-
+	setcastledata getarg(0)+".gat",4,0;
+	setcastledata getarg(0)+".gat",5,0;
+	killmonster getarg(0)+".gat","Treasure_"+getarg(1)+"::OnDied";
+	if(GetCastleData(getarg(0)+".gat",2) > 100 || GetCastleData(getarg(0)+".gat",1) == 0) return;
+	//sets the counter variable = to the box number amount
+	set $@n,GetCastleData(getarg(0)+".gat",2)/5+4;
 L_SPAWN:
-	set getarg(4), getarg(5);	//sets the box id variable = to the box id
-	set $@temp, rand(4);
-	if ($@temp > 2) set getarg(4), getarg(4) + 1;
-	areamonster getarg(0)+".gat",getarg(6),getarg(7),getarg(8),getarg(9),"Treasure Chest",getarg(4),1,"Treasure_"+getarg(1)+"::OnDied";
-	set getarg(3), getarg(3) - 1;
-	if(getarg(3) > 0) goto L_SPAWN;
+	areamonster getarg(0)+".gat",getarg(6),getarg(7),getarg(8),getarg(9),"Treasure Chest",getarg(5)+($@n & 1),1,"Treasure_"+getarg(1)+"::OnDied";
+	set $@n, $@n - 1;
+	if($@n > 0) goto L_SPAWN;
 	return;
 }
 

+ 6 - 376
npc/quests/quests_lighthalzen.txt

@@ -2,9 +2,9 @@
 //= Quest NPCs located in Lighthalzen
 //===== By: ================================================== 
 //= Persian, Vicious_Pucca, Completed by aoa00
-//= Evera, MasterOfMupppets
+//= Evera, MasterOfMupppets, Lupus
 //===== Current Version: ===================================== 
-//= 2.6
+//= 2.6a
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -17,8 +17,7 @@
 //= Things to add: Look at the thread "Lighthalzen Guard" in SVN script
 //= 0.3 Initial Release
 //= 0.5 Added mobsters spawn and Einbroch pollution. Alert lasts either 10 minutes or all mob killed.
-//= 0.6 small bug fixes
-//= 0.9 fix small bug. Added Bio-lab entrance Quest. Added Getting security-card Quest.
+//= 0.6-0.9 fix small bug. Added Bio-lab entrance Quest. Added Getting security-card Quest.
 //= 1.0 Patched "mobsters spawn & Alert" like Real-RO.
 //= 1.0a fixed rand(1,10) + comparision. There just can't be 'X < 1' [Lupus]
 //= 1.1 Changed the mobster spawn to g_mobster to prevent exploits [MasterOfMuppets]
@@ -27,15 +26,13 @@
 //= 1.2a Moved Biolab entrance to lhz_dun warps. [Vicious]
 //= 1.3 Fixed password bug, fixed endless item exploit, some typos [Lupus]
 //= 1.4 Fixed password abuse. When people don't read the password under the picture
-//= 	and enter Zero shit 8) (TODO: I saw some "Sticks" abuses, too.. where you couls skip
-//=	a part of quest...)
+//= 	and enter Zero shit 8) (TODO: I saw some "Sticks" abuses, too.. where you could skip a part of quest...)
 //= 1.5 Fixed Mobster's OnDead event(it has to start with "On"!) [Playtester]
 //= 1.5a Fixed "free stick" bug, thx 2 Neouni [Lupus]
 //= 1.6 Added Gywall's Pickpocket Quest
 //= 1.7 Implemented the Friendship quest [MasterOfMuppets]
 //= 1.8 Changed the name of the mobsters to Gangster, as it should be. [MasterOfMuppets]
-//= 1.9 Added extra input check on Biolab so that the first letter of the word could be
-//= capitalized or undercase. [Evera]
+//= 1.9 Added extra input check on Biolab so that the first letter of the word could be capitalized or undercase. [Evera]
 //= 2.0 Removed Duplicates [Silent]
 //= 2.1 Added first part of Bio Ethics Quest [Evera]
 //= 2.2 Added bit to say Bio Ethics is unfinished, and if a player attempts, it warps them
@@ -46,10 +43,7 @@
 //=	test tube in bio labs quest. [Evera]
 //= 2.5	Fixed Kellasus giving you extra skills in Bio Ethics quest [Evera]
 //= 2.6	Fixed exploit letting any class get homunculus from Bio Ethics Quest [Evera]
-//============================================================ 
-//= aoa's comment
-//= In future, Need for new monsters. No-Drop, No-Exp, Weak "Mobster","VENOMOUS","NOXIOUS"
-//= In future, Teleport skill is impossible in Lighthalzen.
+//= 2.6a Moved Bio Ethics Quest to Alchemist SKILL QUESTS [Lupus]
 //============================================================ 
 
 lighthalzen.gat,1,1,7	script	sneakAddSuber	-1,{
@@ -2628,368 +2622,4 @@ yuno_in04.gat,171,117,1	script	List of Books	111,{
 	mes "a romance novel section?";
 	close;
 
-}
-
-
-//==============================================================
-// Bio Ethics Quest
-//==============================================================
-//=====================Requires Bug Testing=====================
-lhz_in01.gat,46,125,6	script	Rekenber Guard	867,{
-	mes "[Rekenber Guard]";
-	if(getequipid(9) == 2243){
-		mes "......................";
-		next;
-		switch(select("Nice day, huh?","Cancel")){
-			case 1:
-				mes "[Rekenber Guard]";
-				mes "...";
-				close2;
-				warp "lhz_in01.gat",282,172;
-				end;
-				break;
-			case 2:
-				close;
-				break;
-		}
-	}
-	else{
-		mes "...";
-		close;
-	}
-}
-lhz_in01.gat,282,172,0	script	BioEthTrg1::BETrg1	-1,1,1{
-	OnTouch:
-		mes "[Researcher]";
-		mes "This is a restricted";
-		mes "area. Please leave";
-		mes "immediately.";
-		close2;
-		warp "lhz_in01.gat",199,131;
-		end;
-}
-		
-lhz_in01.gat,285,169,7	script	Researcher	865,{
-//Unknown Text
-end;
-}
-lhz_in01.gat,199,137,8	script	Scientist	865,{
-	mes "[Scientist]";
-	mes "Whoa whoa~!";
-	mes "Please! Don't";
-	mes "touch anything!";
-	mes "I'm dealing with highly";
-	mes "volatile chemicals here!";
-	close;
-}
-lhz_in01.gat,204,138,6	script	Keshibien	750,{
-	if(bioeth >= 2){
-		//Unofficial text
-		mes "[Keshibien]";
-		mes "Hello there~";
-		mes "Are you looking for";
-		mes "more information about";
-		mes "homunculus?";
-		next;
-		mes "[Keshibien]";
-		mes "I shouldn't say";
-		mes "anything, but look";
-		mes "for someone named";
-		mes "Bringel in Lighthalzen.";
-		if(bioeth == 2) set bioeth,3;
-		close;
-		//Unofficial text end
-	}
-	mes "[Keshibien]";
-	mes "Hello there~";
-	mes "You must be from";
-	mes "Rune-Midgarts, right?";
-	mes "It's nice to meet you.";
-	next;
-	mes "[Keshibien]";
-	mes "I hear that the";
-	mes "Alchemists from";
-	mes "over there are pretty";
-	mes "skilled. I wonder if I'll";
-	mes "ever get the change to";
-	mes "collaborate with any of them...";
-	close;
-}
-lhz_in01.gat,203,123,8	script	Scientist	750,{
-	mes "[Scientist]";
-	mes "Alright. Pull one test";
-	mes "tube out of the machine,";
-	mes "replace the other test";
-	mes "tube over here and then";
-	mes "clean the first test tube?";
-	next;
-	mes "[Scientist]";
-	mes "Or do I clean the test tube,";
-	mes "put it into the machine and";
-	mes "then replace the other one?";
-	mes "I'm so confused with this";
-	mes "procedure! If only I didn't";
-	mes "lose the instructions...";
-	close;
-}
-lhz_in01.gat,221,131,3	script	Scientist	865,{
-	mes "[Scientist]";
-	mes "It takes so long for";
-	mes "this device to process";
-	mes "all the data and give me";
-	mes "the results. Still, the wait";
-	mes "heightens my anticipation...";
-	close;
-}
-lhz_in01.gat,218,141,0	script	Alchemist	98,{
-	mes "[Alchemist]";
-	mes "Out of all humans,";
-	mes "I believe Kellasus is";
-	mes "the one who has come";
-	mes "closest to discovering";
-	mes "the secrets of life. He";
-	mes "never fails to amaze me...";
-	next;
-	mes "[Alchemist]";
-	mes "I'm also impressed by the";
-	mes "fact that he doesn't let his";
-	mes "work keep him from being the";
-	mes "best father and husband that";
-	mes "he can for his family. He's";
-	mes "an example for all of us.";
-	next;
-	mes "[Alchemist]";
-	mes "Kellasus really is";
-	mes "an amazing person.";
-	mes "There isn't one Alchemist";
-	mes "that I know who doesn't look";
-	mes "up to him in the realms of";
-	mes "both science and personal life.";
-	close;
-}
-lhz_in01.gat,224,140,8	script	Kellasus	57,{
-	if(MISC_QUEST&64){
-		mes "[Kellasus]";
-		mes "I already taught you";
-		mes "skills of the homunculus...";
-		if (getskilllv(238) == 0 && class == 18) skill 238,1,0;
-		close;
-	}
-	switch(bioeth){
-	default:
-		break;
-	case 4:
-		mes "[Kellasus]";
-		mes "...You're really hard to handle.";
-		mes "I don't think I should";
-		mes "teach you biotechnology.";
-		mes "Besides that, you know";
-		mes "nothing about homunculus!";
-		next;
-		menu "I've learned that",-;
-		mes "[Kellasus]";
-		mes "Oh really?";
-		mes "I will have to test you";
-		mes "on your knowledge of";
-		mes "homunculus then.";
-		next;
-		mes "[Kellasus]";
-		mes "First question.";
-		mes "What is the skill that lets the";
-		mes "homunculus stay in peace?";
-		input @kelques$;
-		next;
-		mes "[Kellasus]";
-		if(@kelques$ != "Rest"){
-			mes "Hmpf. I knew you had";
-			mes "no knowledge on";
-			mes "homunculus.";
-			close;
-		}
-		mes "That's right. Second question.";
-		mes "What is the item";
-		mes "that is required to";
-		mes "summon or create";
-		mes "a homunculus?";
-		input @kelques$;
-		next;
-		mes "[Kellasus]";
-		if(@kelques$ != "Germination Breed"){
-			mes "Hmpf. I knew you had";
-			mes "no knowledge on";
-			mes "homunculus.";
-			close;
-		}
-		mes "Correct. But this is not the end yet.";
-		mes "What is the name";
-		mes "of a skill";
-		mes "that could let you";
-		mes "revive a homunculus?";
-		input @kelques$;
-		next;
-		mes "[Kellasus]";
-		if(@kelques$ != "Resurrect Homunculus"){
-			mes "Hmpf. I knew you had";
-			mes "no knowledge on";
-			mes "homunculus.";
-			close;
-		}
-		mes "After all these discussions,";
-		mes "I won't teach anyone";
-		mes "the skills of homunculus.";
-		mes "The decision is final";
-		mes "and that's it!";
-		set bioeth,5;
-		close;
-		break;
-	case 5:
-		mes "[Kellasus]";
-		mes "After all these discussions,";
-		mes "I won't teach anyone";
-		mes "the skills of homunculus.";
-		mes "The decision is final";
-		mes "and that's it!";
-		close;
-		break;
-	case 6:
-	//Unofficial text and story -.-;
-		mes "[Kellasus]";
-		mes "Oh it's you again? You're really determined.";
-		mes "Well most of the Alchemist";
-		mes "are people who never";
-		mes "let go of their dreams";
-		next;
-		menu "Let's talk about others",-;
-		mes "[Kellasus]";
-		mes "You've spoke to my son?";
-		mes "What did he say?";
-		next;
-		mes "[Kellasus]";
-		mes "...";
-		next;
-		mes "[Kellasus]";
-		mes "I guess I could teach you a few skills..";
-		//Gives player bio ethics and sets bitshift for quest finished
-		if(class == 18) skill 238,1,0;
-		set MISC_QUEST,MISC_QUEST|64;
-		set bioeth,0;
-		close;
-	}
-	switch(@keltalk){
-	default:
-		mes "[Kellasus]";
-		mes "Hmm. Who decides what";
-		mes "is right and wrong? What is";
-		mes "meant to be known and what";
-		mes "secrets were never intended";
-		mes "for mankind to understand?";
-		if(class == 18) set @keltalk,1;
-		close;
-		break;
-	case 1:
-	//No official text to put here, so I just repeated first text
-		mes "[Kellasus]";
-		mes "Hmm. Who decides what";
-		mes "is right and wrong? What is";
-		mes "meant to be known and what";
-		mes "secrets were never intended";
-		mes "for mankind to understand?";
-		set @keltalk,2;
-		close;
-		break;
-	case 2:
-		mes "[Kellasus]";
-		mes "Haven't I told you not to come back again?";
-		mes "Please leave now!";
-		mes "No matter what you do.";
-		mes "I won't teach you anything about homunculus";
-		set @keltalk,3;
-		set bioeth,1;
-		close;
-		break;
-	case 3:
-		mes "[Kellasus]";
-		mes "Haven't I told you not to come back again?";
-		mes "Please leave now!";
-		mes "No matter what you do.";
-		mes "I won't teach you anything about homunculus";
-		close;
-		break;
-	}
-}
-lhz_in01.gat,217,121,6	script	Repairman	851,{
-	mes "[Repairman]";
-	mes "No wonder these things";
-	mes "break all the time! These";
-	mes "machines have been totally";
-	mes "abused! Ugh, there's no";
-	mes "appreciation for all of this";
-	mes "convenient technology...";
-	next;
-	mes "[Repairman]";
-	mes "Yeah, all of this lab";
-	mes "equipment is really sensitive,";
-	mes "not to mention expensive. If";
-	mes "you ever handle this stuff, you";
-	mes "need to be extra cautious.";
-	close;
-}
-lhz_in01.gat,225,122,4	script	Skrajiad	754,{
-	mes "[Skrajiad]";
-	mes "Alchemy is wondrous...";
-	mes "It incorporates every";
-	mes "science and many other";
-	mes "fields of knowledge that";
-	mes "it's not enough to be jack";
-	mes "of all trades... No...";
-	next;
-	mes "[Skrajiad]";
-	mes "In a sense, you must";
-	mes "be a master of all trades";
-	mes "to be proficient in Alchemy";
-	mes "But it's incredibly rewarding to";
-	mes "those of us who never stop askins";
-	mes "how and why our world works.";
-	if(bioeth == 1) set bioeth,2;
-	close;
-}
-lhz_in02.gat,269,273,4	script	Bringel	709,{
-//Unofficial Text
-	if(bioeth > 3 || MISC_QUEST&64){
-		if(getskilllv(247) == 0 && class == 18) skill 247,1,0;
-	}
-	if(bioeth == 3){
-		mes "[Bringel]";
-		mes "I see you're here to";
-		mes "learn about homunculus...";
-		mes "I will teach you a";
-		mes "valuable skill to use.";
-		//Learn res homun
-		if(class == 18) skill 247,1,0;
-		set bioeth,4;
-		close;
-	}
-	mes "[Bringel]";
-	mes "Isn't this hotel great?";
-	mes "I can relax on the couch";
-	mes "And not care about what I";
-	mes "did in the past...";
-	close;
-}
-lhz_in03.gat,106,34,4	script	Golin	706,{
-//Unofficial text
-	if(bioeth == 5){
-		mes "[Golin]";
-		mes "Did you see my";
-		mes "daddy at the lab?";
-		mes "Tell him I said hi!";
-		set bioeth,6;
-		close;
-	}
-	mes "[Golin]";
-	mes "Where's daddy?";
-	mes "I really want";
-	mes "daddy to come back";
-	mes "from the lab.";
-	close;
 }

+ 375 - 7
npc/quests/skills/alchemist_skills.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Lupus, Reddozen
 //===== Current Version: ===================================== 
-//= 1.3a
+//= 1.4
 //===== Compatible With: ===================================== 
 //= eAthena Revision 3800+
 //===== Description: ========================================= 
@@ -18,6 +18,8 @@
 //= 1.3 Fixed bugs and minor typos. Optimized [Lupus]
 //= 1.3a fixed an item ID typo, thx 2Spiritual Kid
 //= 1.3b Splitted into different files [DracoRPG]
+//= 1.4 Added Creators + Baby Alchemists can pass Bio Ethics
+//= 	Quest too [Lupus]
 //============================================================
 
 
@@ -26,18 +28,18 @@
 //============================================================
 yuno_in04.gat,33,108,5	script	Pislik	750,{
 	mes "[Pislik]";
-	if(BaseJob!=Job_Alchem) goto L_noalche;
+	if(BaseJob != Job_Alchem) goto L_noalche;
 	if(countitem(7434)) goto L_alreadyhave;//Items: Elemental_Potion_Creation_Guide,
 	if(JobLevel<40) goto L_nojob;
 
 	mes "I'll teach you all I know, but";
 	mes "you have to bring me some things";
 	mes "first.";
-	mes "5 Yellow Gemstones";
-	mes "4 Empty Potion Bottles";
-	mes "10 Hearts of Mermaid";
-	mes "10 Moth Dust";
-	mes "20 Maneater Blossoms";
+	mes "5 Yellow Gemstones,";
+	mes "4 Empty Potion Bottles,";
+	mes "10 Hearts of Mermaid,";
+	mes "10 Moth Dust,";
+	mes "20 Maneater Blossoms and";
 	mes "1 Geek Glasses";
 	next;
 	
@@ -82,3 +84,369 @@ L_nojob:
 	mes "more about being an Alchemist.";
 	close;
 }
+
+//============================================================
+// ALCHEMIST - Bio Ethics Quest (Homunculi Skill Branch)
+//============================================================
+
+//=====================Requires Bug Testing=====================
+lhz_in01.gat,46,125,6	script	Rekenber Guard	867,{
+	mes "[Rekenber Guard]";
+	if(getequipid(9) == 2243){
+		mes "......................";
+		next;
+		switch(select("Nice day, huh?","Cancel")){
+			case 1:
+				mes "[Rekenber Guard]";
+				mes "...";
+				close2;
+				warp "lhz_in01.gat",282,172;
+				end;
+				break;
+			case 2:
+				close;
+				break;
+		}
+	}
+	else{
+		mes "...";
+		close;
+	}
+}
+lhz_in01.gat,282,172,0	script	BioEthTrg1::BETrg1	-1,1,1{
+	OnTouch:
+		mes "[Researcher]";
+		mes "This is a restricted";
+		mes "area. Please leave";
+		mes "immediately.";
+		close2;
+		warp "lhz_in01.gat",199,131;
+		end;
+}
+		
+lhz_in01.gat,285,169,7	script	Researcher	865,{
+//Unknown Text
+	mes "[Researcher]";
+	mes "Hmm... I wonder...";
+	close;
+}
+lhz_in01.gat,199,137,8	script	Scientist	865,{
+	mes "[Scientist]";
+	mes "Whoa whoa~!";
+	mes "Please! Don't";
+	mes "touch anything!";
+	mes "I'm dealing with highly";
+	mes "volatile chemicals here!";
+	close;
+}
+lhz_in01.gat,204,138,6	script	Keshibien	750,{
+	if(bioeth >= 2){
+		//Unofficial text
+		mes "[Keshibien]";
+		mes "Hello there~";
+		mes "Are you looking for";
+		mes "more information about";
+		mes "homunculus?";
+		next;
+		mes "[Keshibien]";
+		mes "I shouldn't say";
+		mes "anything, but look";
+		mes "for someone named";
+		mes "Bringel in Lighthalzen.";
+		if(bioeth == 2) set bioeth,3;
+		close;
+		//Unofficial text end
+	}
+	mes "[Keshibien]";
+	mes "Hello there~";
+	mes "You must be from";
+	mes "Rune-Midgarts, right?";
+	mes "It's nice to meet you.";
+	next;
+	mes "[Keshibien]";
+	mes "I hear that the";
+	mes "Alchemists from";
+	mes "over there are pretty";
+	mes "skilled. I wonder if I'll";
+	mes "ever get the change to";
+	mes "collaborate with any of them...";
+	close;
+}
+lhz_in01.gat,203,123,8	script	Scientist	750,{
+	mes "[Scientist]";
+	mes "Alright. Pull one test";
+	mes "tube out of the machine,";
+	mes "replace the other test";
+	mes "tube over here and then";
+	mes "clean the first test tube?";
+	next;
+	mes "[Scientist]";
+	mes "Or do I clean the test tube,";
+	mes "put it into the machine and";
+	mes "then replace the other one?";
+	mes "I'm so confused with this";
+	mes "procedure! If only I didn't";
+	mes "lose the instructions...";
+	close;
+}
+lhz_in01.gat,221,131,3	script	Scientist	865,{
+	mes "[Scientist]";
+	mes "It takes so long for";
+	mes "this device to process";
+	mes "all the data and give me";
+	mes "the results. Still, the wait";
+	mes "heightens my anticipation...";
+	close;
+}
+lhz_in01.gat,218,141,0	script	Alchemist	98,{
+	mes "[Alchemist]";
+	mes "Out of all humans,";
+	mes "I believe Kellasus is";
+	mes "the one who has come";
+	mes "closest to discovering";
+	mes "the secrets of life. He";
+	mes "never fails to amaze me...";
+	next;
+	mes "[Alchemist]";
+	mes "I'm also impressed by the";
+	mes "fact that he doesn't let his";
+	mes "work keep him from being the";
+	mes "best father and husband that";
+	mes "he can for his family. He's";
+	mes "an example for all of us.";
+	next;
+	mes "[Alchemist]";
+	mes "Kellasus really is";
+	mes "an amazing person.";
+	mes "There isn't one Alchemist";
+	mes "that I know who doesn't look";
+	mes "up to him in the realms of";
+	mes "both science and personal life.";
+	close;
+}
+lhz_in01.gat,224,140,8	script	Kellasus	57,{
+	if(MISC_QUEST&64){
+		mes "[Kellasus]";
+		mes "I already taught you";
+		mes "skills of the homunculus...";
+		if(getskilllv(238) == 0 && BaseJob == Job_Alchem) skill 238,1,0;
+		close;
+	}
+	switch(bioeth){
+	case 4:
+		mes "[Kellasus]";
+		mes "...You're really hard to handle.";
+		mes "I don't think I should";
+		mes "teach you biotechnology.";
+		mes "Besides that, you know";
+		mes "nothing about homunculus!";
+		next;
+		menu "I've learned that",-;
+		mes "[Kellasus]";
+		mes "Oh really?";
+		mes "I will have to test you";
+		mes "on your knowledge of";
+		mes "homunculus then.";
+		next;
+		mes "[Kellasus]";
+		mes "First question.";
+		mes "What is the skill that lets the";
+		mes "homunculus stay in peace?";
+		input @kelques$;
+		next;
+		mes "[Kellasus]";
+		if(@kelques$ != "Rest"){
+			mes "Hmpf. I knew you had";
+			mes "no knowledge on";
+			mes "homunculus.";
+			close;
+		}
+		mes "That's right. Second question.";
+		mes "What is the item";
+		mes "that is required to";
+		mes "summon or create";
+		mes "a homunculus?";
+		input @kelques$;
+		next;
+		mes "[Kellasus]";
+		if(@kelques$ != "Germination Breed"){
+			mes "Hmpf. I knew you had";
+			mes "no knowledge on";
+			mes "homunculus.";
+			close;
+		}
+		mes "Correct. But this is not the end yet.";
+		mes "What is the name";
+		mes "of a skill";
+		mes "that could let you";
+		mes "revive a homunculus?";
+		input @kelques$;
+		next;
+		mes "[Kellasus]";
+		if(@kelques$ != "Resurrect Homunculus"){
+			mes "Hmpf. I knew you had";
+			mes "no knowledge on";
+			mes "homunculus.";
+			close;
+		}
+		mes "After all these discussions,";
+		mes "I won't teach anyone";
+		mes "the skills of homunculus.";
+		mes "The decision is final";
+		mes "and that's it!";
+		set bioeth,5;
+		close;
+		break;
+	case 5:
+		mes "[Kellasus]";
+		mes "After all these discussions,";
+		mes "I won't teach anyone";
+		mes "the skills of homunculus.";
+		mes "The decision is final";
+		mes "and that's it!";
+		close;
+		break;
+	case 6:
+	//Unofficial text and story -.-;
+		mes "[Kellasus]";
+		mes "Oh it's you again? You're really determined.";
+		mes "Well most of the Alchemist";
+		mes "are people who never";
+		mes "let go of their dreams";
+		next;
+		menu "Let's talk about others",-;
+		mes "[Kellasus]";
+		mes "You've spoke to my son?";
+		mes "What did he say?";
+		next;
+		mes "[Kellasus]";
+		mes "...";
+		next;
+		mes "[Kellasus]";
+		mes "I guess I could teach you a few skills..";
+		//Gives player bio ethics and sets bitshift for quest finished
+		if(BaseJob == Job_Alchem) skill 238,1,0;
+		set MISC_QUEST,MISC_QUEST|64;
+		set bioeth,0;
+		close;
+	default:
+		break;
+	}
+	switch(@keltalk){
+	case 1:
+	//No official text to put here, so I just repeated first text
+		mes "[Kellasus]";
+		mes "Hmm. Who decides what";
+		mes "is right and wrong? What is";
+		mes "meant to be known and what";
+		mes "secrets were never intended";
+		mes "for mankind to understand?";
+		set @keltalk,2;
+		close;
+		break;
+	case 2:
+		mes "[Kellasus]";
+		mes "Haven't I told you not to come back again?";
+		mes "Please leave now!";
+		mes "No matter what you do.";
+		mes "I won't teach you anything about homunculus";
+		set @keltalk,3;
+		set bioeth,1;
+		close;
+		break;
+	case 3:
+		mes "[Kellasus]";
+		mes "Haven't I told you not to come back again?";
+		mes "Please leave now!";
+		mes "No matter what you do.";
+		mes "I won't teach you anything about homunculus";
+		close;
+		break;
+	default:
+		mes "[Kellasus]";
+		mes "Hmm. Who decides what";
+		mes "is right and wrong? What is";
+		mes "meant to be known and what";
+		mes "secrets were never intended";
+		mes "for mankind to understand?";
+		if(BaseJob == Job_Alchem) set @keltalk,1;
+		close;
+		break;
+	}
+}
+lhz_in01.gat,217,121,6	script	Repairman	851,{
+	mes "[Repairman]";
+	mes "No wonder these things";
+	mes "break all the time! These";
+	mes "machines have been totally";
+	mes "abused! Ugh, there's no";
+	mes "appreciation for all of this";
+	mes "convenient technology...";
+	next;
+	mes "[Repairman]";
+	mes "Yeah, all of this lab";
+	mes "equipment is really sensitive,";
+	mes "not to mention expensive. If";
+	mes "you ever handle this stuff, you";
+	mes "need to be extra cautious.";
+	close;
+}
+lhz_in01.gat,225,122,4	script	Skrajiad	754,{
+	mes "[Skrajiad]";
+	mes "Alchemy is wondrous...";
+	mes "It incorporates every";
+	mes "science and many other";
+	mes "fields of knowledge that";
+	mes "it's not enough to be jack";
+	mes "of all trades... No...";
+	next;
+	mes "[Skrajiad]";
+	mes "In a sense, you must";
+	mes "be a master of all trades";
+	mes "to be proficient in Alchemy";
+	mes "But it's incredibly rewarding to";
+	mes "those of us who never stop askins";
+	mes "how and why our world works.";
+	if(bioeth == 1) set bioeth,2;
+	close;
+}
+lhz_in02.gat,269,273,4	script	Bringel	709,{
+//Unofficial Text
+	if(bioeth > 3 || MISC_QUEST&64){
+		if(getskilllv(247) == 0 && BaseJob == Job_Alchem) skill 247,1,0;
+	}
+	if(bioeth == 3){
+		mes "[Bringel]";
+		mes "I see you're here to";
+		mes "learn about homunculus...";
+		mes "I will teach you a";
+		mes "valuable skill to use.";
+		//Learn res homun
+		if(BaseJob == Job_Alchem) skill 247,1,0;
+		set bioeth,4;
+		close;
+	}
+	mes "[Bringel]";
+	mes "Isn't this hotel great?";
+	mes "I can relax on the couch";
+	mes "And not care about what I";
+	mes "did in the past...";
+	close;
+}
+lhz_in03.gat,106,34,4	script	Golin	706,{
+//Unofficial text
+	if(bioeth == 5){
+		mes "[Golin]";
+		mes "Did you see my";
+		mes "daddy at the lab?";
+		mes "Tell him I said hi!";
+		set bioeth,6;
+		close;
+	}
+	mes "[Golin]";
+	mes "Where's daddy?";
+	mes "I really want";
+	mes "daddy to come back";
+	mes "from the lab.";
+	close;
+}