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

* Updated Gunslinger Job Change Quest to official.
* Fixed a minor bug in Ninja Job Change Quest.

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

SinSloth 18 роки тому
батько
коміт
585e0d790a
3 змінених файлів з 409 додано та 175 видалено
  1. 2 0
      npc/Changelog.txt
  2. 404 173
      npc/jobs/1-1e/gunslinger.txt
  3. 3 2
      npc/jobs/1-1e/ninja.txt

+ 2 - 0
npc/Changelog.txt

@@ -1,6 +1,8 @@
 Date		Added
 ======
 2007/05/01
+	* Updated Gunslinger Job Change Quest to official. [SinSloth]
+	* Fixed a minor bug in Ninja Job Change Quest. [SinSloth]
 	* Even more Fixes to the Kiel Hyre Quest [L0ne_W0lf]
 	- Exit will now enable if you are just retrieving the Ring, keeps you from getting stuck.
 	- Corrected "KH_Kielh02", was setting off a debug, invalid map index. Should have been "kh_Kiehl02"

+ 404 - 173
npc/jobs/1-1e/gunslinger.txt

@@ -7,12 +7,11 @@
 //= DON'T REMOVE THIS! (by request of him, he provided all
 //= the info regarding the quests and shops.)
 //===== Current Version: ===================================== 
-//= 1.8
+//= 1.10
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
-//= "Semi" Official Gunslinger Quest ~ The text isn't the same
-//= but it does the things it has to do :P
+//= Gunslinger Job Change Quest
 //===== Additional Comments: ================================= 
 //= 1.0 Made the NPC [erKURITA]
 //= 1.5 Couple fixes to the npc, aswell as adding the missing
@@ -24,197 +23,429 @@
 //= 1.7b Parenthesis fixes [KarLaeda]
 //= 1.8 Fixed the reward you can get [Playtester]
 //= 1.9 Removed some 'clever' script constructs [ultramage]
+//= 1.10 Updated to official version - Thanks to Omega for
+//= his first try [SinSloth]
 //============================================================ 
 
-que_ng,152,167,3	script	Gunslinger Jobchanger	901,{
+que_ng.gat,152,167,3	script	Master Miller	901,{
 
-	set .@npcname$, "[Armsmith]";
-	if (Class == Job_Novice) {
-		if (GUNS_Q >= 1) {
-			mes .@npcname$;
-			mes "So, you've come back?";
-			next;
-			if (GUNS_Q == 10005) {
-				if (SkillPoint > 0) {
-					mes .@npcname$;
-					mes "Err, excuse me, but you still have Skill Points left. You have to use them all before I can turn you into a Gunslinger.";
-					close;
-				} else if (JobLevel < 10) {
-					mes .@npcname$;
-					mes "Err, excuse me, but your job level is not sufficient. You need to have a job level of 10 in order to change to a Gunslinger";
-					close;
-				}
-				mes .@npcname$;
-				mes "Glad to know you did what Mr. Tanieh asked you to do, makes me know you're worthy of being..";
+	if(Class == Job_Novice && JobLevel > 9)
+	{
+		switch(GUNS_Q)
+		{
+			case 0:
+				mes "[Master Miller]";
+				mes "I'm a Security Chief and also";
+				mes "a Gunslinger Instructor, you may call me";
+				mes "Master Miller.";
 				next;
-				mes .@npcname$;
-				mes "A Gunslinger!!";
-				callfunc "Job_Change",Job_Gunslinger;
-				callfunc "F_ClearJobVar";		//clears all job variables for the current player
+				mes "[Master Miller]";
+				mes "I can't be distracted from my duty";
+				mes "at this moment.";
+				mes "What is it that you want?";
 				next;
-				mes .@npcname$;
-				mes "Oh, I forgot, here's a token of my appreciation";
-				if (rand(1,3) < 3) {
-					getitem 13100,1;
-				} else {
-					getitem 13150,1;
+				switch( select( "Nothing much.","I want to become a Gunslinger.") )
+				{
+					case 1:
+						mes "[Master Miller]";
+						mes "Wasting my time is like,";
+						mes "wasting gold.";
+						mes "Get out of my sight immediatly.";
+						close;
+
+					case 2:
+						mes "[Master Miller]";
+						mes "Hmm.";
+						mes "You still look young";
+						mes "but the look in your eyes...";
+						mes "I can sense a powerful force.";
+						next;
+						mes "[Master Miller]";
+						mes "Hmm...Okay.";
+						mes "First, if you have the will to become a Gunslinger";
+						mes "you will need to go through some tests";
+						mes "and also interview and Training Sessions.";
+						next;
+						mes "[Master Miller]";
+						mes "Do you wish to proceed?";
+						next;
+						switch (select ("No, I need time to think.","Sure.") )
+						{
+							case 1:
+								mes "[Master Miller]";
+								mes "Hmm..Is that so.";
+								mes "Well, it is important...";
+								mes "Think carefully and if you have the spirit,";
+								mes "please, come back later.";
+								close;
+
+							case 2:
+								mes "[Master Miller]";
+								mes "Hmm. Okay.";
+								mes "First";
+								mes "deliver this letter I am giving to you";
+								mes "to Payon's Alchemist,";
+								mes "'The Wise Bull Horn'";
+								mes "and hand the letter to him.";
+								next;
+								mes "[Master Miller]";
+								mes "He will judge you and";
+								mes "will report back to us if ";
+								mes "you are up to our standards.";
+								next;
+								mes "["+ strcharinfo(0) +"]";
+								mes "Allright, I'll do that.";
+								set GUNS_Q,1;
+								close;
+						}
 				}
+
+			case 1:	
+				mes "[Master Miller]";
+				mes "Hurry up and get moving.";
+				mes "'The Wise Bull Horn' is";
+				mes "currently in Payon.";
 				close;
-			}
-			mes .@npcname$;
-			mes "But you still haven't done what I told you, need me to repeat it?";
-			switch (select ("Yes, Please:No, Thanks")) {
-				case 1:
-					next;
-					mes .@npcname$;
-					mes "You need to go to Payon. At the small wooden wall and in the south exit, Mr. Tanieh will be there waiting to ask you a few things. Go now...";
-					close;
-				case 2:
-					next;
-					mes .@npcname$;
-					mes "Then GET GOING! You do want to become a Gunslinger, right?";
-					close;
-			}
-		}
-		mes .@npcname$;
-		mes "Hi ^0000CC"+strcharinfo(0)+"^000000,I need you to do something for me first, will you?";
-		switch (select ("Yes:No")) {
-			case 1:
-				next;
-				mes .@npcname$;
-				mes "Good, I need you to go to Payon and do a few things from Mr. Tanieh.";
-				next;
-				mes .@npcname$;
-				mes "He'll be waiting for you next to the small wooden wall of the south exit. See you later then.";
-				set GUNS_Q,1;
-				close;
+
 			case 2:
+				mes "[Master Miller]";
+				mes "I guess he gave you";
+				mes "some errands to run.";
 				next;
-				mes .@npcname$;
-				mes "Too bad for you son. Come back when you are willing to do so.";
+				mes "[Master Miller]";
+				mes "I think he saw potential in you.";
+				mes "Good luck.";
 				close;
-		} 
 
-	}
-	mes .@npcname$;
-	mes "Hi son, how's life treating you?";
-	close;
-}
-
-payon,184,65,3	script	Mr. Tanieh	866,{
-
-	set .@npcname$, "[Mr. Tanieh]";
-	if (GUNS_Q == 1) {
-		mes .@npcname$;
-		mes "Oh, you're ^0000CC"+strcharinfo(0)+"^000000, right? Einbroch's Armsmith told me you were going to help me with a few things.";
-		next;
-		mes .@npcname$;
-		mes "I need to make a special soup for my wife, but, as you can see, I am not in conditions to look for the items, she's sick you know?";
-		next;
-		mes .@npcname$;
-		mes "So, will you do it, please?";
-		switch (select ("Yes, I will:Sorry I can't now")) {
-			case 1:
-				set GUNS_Q,callfunc("F_RandMes",4,1019,1066,1067,1068);
-				goto L_LIST;
+			case 3:
+				mes "[Master Miller]";
+				mes "That's a lot of errands";
+				mes "I already told you, the";
+				mes "old man is pretty serious.";
+				mes "Perform your task well.";
+				close;
 
-			case 2:
-				next;
-				mes .@npcname$;
-				mes "Oh, what am I going to do now...";
+			case 4:
+				mes "[Master Miller]";
+				mes "Mm~ I'll be waiting for your news.";
+				mes "I hope you'll become one of us.";
+				mes "We'll be practically family..";
 				close;
-		}
 
-	} else if (GUNS_Q > 1 && GUNS_Q < 10000) {
-		mes .@npcname$;
-		mes "Oh, you've come back! Have you brought the items?";
-		next;
-		switch (select("Yes I did:No I forgot which items I had to bring")) {
-			case 1:
-				next;
-				if (countitem(949) < 3) {
-					mes .@npcname$;
-					mes "Sorry, you're missing a few Feathers";
-					close;
-				} else if (countitem(912) < 3) {
-					mes .@npcname$;
-					mes "Sorry, you're missing a few Zargons";
-					close;
-				} else if (countitem(1013) < 3) {
-					mes .@npcname$;
-					mes "Sorry, you're missing a few Rainbow Shells";
-					close;
-				} else if (countitem(GUNS_Q) < 1) {
-					mes .@npcname$;
-					mes "Sorry, you don't have the exact Trunk";
-					close;
-				} else if (countitem(511) < 3) {
-					mes .@npcname$;
-					mes "Sorry, you're missing a few Green Herbs";
-					close;
-				} else if (countitem(935) < 10) {
-					mes .@npcname$;
-					mes "Sorry, you're missing a few Shells";
+			case 5:
+				if (skillpoint > 0)
+				{
+					mes "[Master Miller]";
+					mes "Learn all your Basic Skills first!!";
 					close;
 				}
-				mes .@npcname$;
-				mes "GREAT! You brought them all! Thanks very much!";
-				delitem 949,3;
-				delitem 912,3;
-				delitem 1013,3;
-				delitem GUNS_Q,1; //here we keep Trunk ID
-				delitem 935,10;
-				delitem 511,3;
+				mes "[Master Miller]";
+				mes "Ohh, I see you got something from the old man";
+				mes "This is rare.";
+				mes "Under normal circumstances...";
+				mes "this would not be allowed...";
+				mes "Nice, nice.";
 				next;
-				mes .@npcname$;
-				mes "Oh my, you've been of great help. I'll recommend you to the Einbroch Armory for your job change.";
-				set GUNS_Q,10003;
-				close;
-			case 2:
-			L_LIST:
+				mes "[Master Miller]";
+				mes "Mm..Okay.";
+				mes "The old man gave his";
+				mes "blessings, so I do not have any";
+				mes "reason to reject your application.";
+				next;
+				mes "[Master Miller]";
+				mes "Okay, from now on you'll be a Gunslinger.";
+				mes "From now on, you are a gunslinger.";
+				mes "After this, for every moment that you live,";
+				mes "remember can never leave your side";
+				mes "is your gun. We must remember the gun";
+				mes "and even every one of its bullets";
+				mes "has its own product number,";
+				mes "and can be checked up by us.";
+				next;
+				mes "[Master Miller]";
+				mes "For purchasing guns and ammo";
+				mes "the only place you can buy them";
+				mes "is from our special gunslinger";
+				mes "guild stores in various places.";
+				next;
+				mes "[Master Miller]";
+				mes "Of course, this is tedious.";
+				mes "But this is all to...";
+				mes "not let these guns";
+				mes "fall in the wrong hands, so";
+				mes "please forgive us for any inconvenience.";
+				next;
+				mes "[Master Miller]";
+				mes "There are also";
+				mes "other reasons.";
+				mes "You'll no doubt find some of them";
+				mes "later.";
+				mes "These are all the instructions";
+				mes "from Lady Celena, our";
+				mes "guild leader.";
 				next;
-				mes .@npcname$;
-				mes "Ok, I'll tell you again, so please take note!:";
-				mes "^33CCFF 3 Feathers^000000";
-				mes "^009933 3 Zargons^000000";
-				mes "^660066 3 Rainbow Shells^000000";
-				mes "^009900 3 Green Herbs^000000";
-				mes "^663300 1 "+getitemname(GUNS_Q)+"^000000";
-				mes "^FF6600 10 Shells^000000";
+				mes "[Master Miller]";
+				mes "After a bit of time";
+				mes "we will give you missions.";
+				mes "You will understand more";
+				mes "later.";
 				next;
-				mes .@npcname$;
-				mes "Hurry please, I am not sure if my wife will last any longer... oh dear..";
+				mes "[Master Miller]";
+				mes "I'm sure we'll see each other again.";
+				mes "So here's to a nice time";
+				mes "working together.";
+				nude;
+				callfunc "Job_Change",Job_Gunslinger;
+				callfunc "F_ClearJobVar";
+				set GUNS_Q,6;
+				set @gun_ex,rand(1,2);
+				if(@gun_ex == 1) getitem 13100,1; else getitem 13150,1;
 				close;
 		}
-	} else if (GUNS_Q == 10003 || GUNS_Q == 10004) {
-		if (countitem(519) >= 1 && GUNS_Q == 10004) {
-			mes .@npcname$;
-			mes "THAT'S IT!! I was missing the Milk! Oh yes, thanks so much, will you give it to me?";
-			switch(select("Sure, take it:Sorry but I need it")) {
-				case 1:
-					next;
-					mes .@npcname$;
-					mes "Thanks so much! Go talk again with the Einbroch Armsmith. He'll change you. Thanks again and see you.";
-					delitem 519,1;
-					set GUNS_Q,10005;
-					close;
-				case 2:
-					next;
-					mes .@npcname$;
-					mes "Oh please, I need it so much, think about it please...";
-					close;
-			}
-		}
-		mes .@npcname$;
-		mes "*sigh* Now I have to wait again... Thanks for your help... but I believe there's something missing..";
-		set GUNS_Q,10004;
+	}
+	else if(Class == Job_Novice && JobLevel < 10)
+	{
+		mes "[Master Miller]";
+		mes "Hmm, I think you";
+		mes "have the potential";
+		mes "but you're not yet strong enough.";
+		mes "Keep getting stronger and";
+		mes "come back later.";
+		close;
+	}
+	else if(Class == Job_Gunslinger)
+	{
+		mes "[Master Miller]";
+		mes "Oh~ It's been a long time~";
+		mes "So, how have your travels been?";
+		mes "Remember, always take care";
+		mes "of your gun.";
 		close;
-	} else if (Class == Job_Gunslinger || GUNS_Q == 10005) {
-		mes .@npcname$;
-		mes "Hi ^0000CC"+strcharinfo(0)+"^000000!, how have you been doing? My wife sends you regards and thanks for the ingredients...";
+	}
+	else if(Class == Job_Baby)
+	{
+		mes "[Master Miller]";
+		mes "Ouch~";
+		mes "How did a baby come here~";
+		mes "Peekaboo~";
+		next;
+		mes "[Master Miller]";
+		mes "Where's your mommy~";
+		mes "Haha~";
+		mes "It's a dangerous place here.";
+		mes "Go play somewhere else.";
 		close;
-	} 
-	mes .@npcname$;
-	mes "Hi son, how's life treating you? Nice day, isn't it?";
-	close;
+	}
+	else
+	{
+		mes "[Master Miller]";
+		mes "Don't get distracted with me.";
+		mes "Get on with your traveling.";
+		close;
+	}
 }
+
+payon.gat,184,65,3	script	The Wise Bull Horn	866,{
+
+	switch(GUNS_Q)
+	{
+		case 0:
+			mes "[The Wise Bull Horn]";
+			mes "Zzz...Zzz";
+			close;
+
+		case 1:
+			mes "[The Wise Bull Horn]";
+			mes "...Hmm... Young one";
+			mes "What is it that you want.";
+			next;
+			mes "["+ strcharinfo(0) +"]";
+			mes "Mr. Miller sent me here.";
+			next;
+			mes "[The Wise Bull Horn]";;
+			mes "Miller...";
+			mes "Mm...Hmm. So Dark Fox";
+			mes "sent you here...";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "He is wise and cunning...";
+			mes "that is willing to sacrifice himself for his teammates.";
+			mes "mm...If he sent you..";
+			mes "Then you should be rather capable...";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Wait...come closer...";
+			next;
+			mes "["+ strcharinfo(0) +"]";
+			mes "....";
+			next;
+			mes "[The Wise Bull Horn]";;
+			mes "mmm...";
+			mes "mmmmm....";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "mmm...Bright eyes and...";
+			mes "a serious face...also...";
+			mes "a very good attitude...a good sense of...";
+			mes "responsibility...";
+			mes "But still not enough.";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Lack of experience...";
+			mes "And you still don't have the blessing of the land...";
+			mes "You'll get injured at this rate...";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Very well, I shall craft you a gift...";
+			mes "If you wish to follow this path...";
+			mes "Gather 3 Rainbow Shells,";
+			mes "10 Shells, 3 Feathers,";
+			mes "1 Trunk, 3 Zargons, and 3 Green Herbs,";
+			mes "then bring them to me.";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "If you show the gift that you just received";
+			mes "to Dark Fox. Then he will definitely...";
+			mes "accept you.";
+			next;
+			mes "["+ strcharinfo(0) +"]";
+			mes "-I'll need-";
+			mes "-3 Rainbow Shells-";
+			mes "-10 Shells, 3 Feathers-";
+			mes "-1 Trunk, 3 Zargons,-";
+			mes "-and 3 Green Herbs.-";
+			set GUNS_Q,2;
+			close;
+
+		case 2:
+			if ((countitem(935) < 10) || (countitem(949) < 3) || (countitem(1019) < 1) || (countitem(912) < 3) || (countitem(511) < 3))
+			{
+				mes "["+ strcharinfo(0) +"]";
+				mes "-I'll need-";
+				mes "-3 Rainbow Shells-";
+				mes "-10 Shells, 3 Feathers-";
+				mes "-1 Trunk, 3 Zargons,-";
+				mes "-and 3 Green Herbs.-";
+				close;
+			}
+			mes "[The Wise Bull Horn]";
+			mes "Oh...give them to me.";
+			mes "There is time to be consumed to";
+			mes "make the gift, wait for a while.";
+			delitem  935,10;
+			delitem  949,3;
+			delitem 1019,1;
+			delitem  912,3;
+			delitem  511,3;
+			set GUNS_Q,3;
+			close;
+
+		case 3:
+			mes "[The Wise Bull Horn]";
+			mes "Mm...You came right on time.";
+			mes "The preparation finished just now.";
+			mes "It is a rather simple gift.";
+			mes "But that's because I haven't worked in so long.";
+			mes "Ahh...I feel tired now...";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "The last time I crafted this...";
+			mes "Was well over ten years ago.";
+			mes "I also followed this path once...";
+			mes "and I once battled...";
+			mes "with such an item.";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Meeting Celena's father";
+			mes "feels just like yesterday,";
+			mes "time really flies.";
+			mes "Like the smooth western wind.";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Though there would always be painful";
+			mes "memories...but my followers...";
+			mes "especially people like...";
+			mes "Celena and Dark Fox.";
+			mes "Ahh, young people, and my followers...";
+			mes "I thank you...";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Though now, I am already old...";
+			mes "In a short while...";
+			mes "I will return...to the land";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "I feel so tired...";
+			mes "I'm so sorry...but if you could...";
+			mes "Promise me something...";
+			mes "Promise to do...something for me.";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "I suddenly feel like...";
+			mes "drinking a glass of milk.";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Take it as a request...from an old man.";
+			next;
+			mes "["+ strcharinfo(0) +"]";
+			mes "-Let's get a glass of Milk-";
+			mes "For 'The Wise Bull Horn'.-";
+			set GUNS_Q, 4;
+			close;
+		
+		case 4:
+			if (countitem(519) < 0)
+			{
+				mes "["+ strcharinfo(0) +"]";
+				mes "-Let's get a glass of Milk-";
+				mes "-for 'The Wise Bull Horn'.-";
+				close;
+			}
+			mes "[The Wise Bull Horn]";
+			mes "Thank you.";
+			mes "You are truly a kind young man.";
+			mes "Now get on the road.";
+			delitem 519,1;
+			set GUNS_Q,5;
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Take this Gift made bye me";
+			mes "and show it to Dark Fox.";
+			mes "You have my blessings";
+			mes "to become a Gunslinger.";
+			next;
+			mes "[The Wise Bull Horn]";
+			mes "Ee~~Ye~Ee~~ Hooma~ Raa~~Nae~Eee~~";
+			mes "Ee~~Ye~Ee~~ Hooma~ Raa~~Nae~Eee~~";
+			next;
+			mes "["+ strcharinfo(0) +"]";
+			mes "-Singing a weird-";
+			mes "-song-";
+			mes "-'The Wise Bull Horn'. I feel strange.-";
+			mes "-Let's take the Gift-";
+			mes "-to Mr.Miller now.-";
+			close;
+
+		case 5:
+			mes "[The Wise Bull Horn]";
+			mes "Ee~~Ye~Ee~~ Hooma~ Raa~~Nae~Eee~~";
+			mes "Ee~~Ye~Ee~~ Hooma~ Raa~~Nae~Eee~~";
+			next;
+			mes "["+ strcharinfo(0) +"]";
+			mes "-Singing a weird-";
+			mes "-song-";
+			mes "-'The Wise Bull Horn'.-";
+			next;
+			mes "["+ strcharinfo(0) +"]";
+			mes "-I feel strange.-";
+			mes "-Let's take the Gift-";
+			mes "-to Mr.Miller now.-";
+			close;
+		
+		case 6:
+			mes "[The Wise Bull Horn]";
+			mes "Mm...It's been a while.";
+			mes "Hopefully you'll become a strong Gunslinger.";
+			close;
+	}
+}

+ 3 - 2
npc/jobs/1-1e/ninja.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Legionaire
 //===== Current Version: ===================================== 
-//= 1.3
+//= 1.4
 //===== Compatible With: ===================================== 
 //= eAthena SVN that supports Ninjas
 //===== Description: ========================================= 
@@ -12,6 +12,7 @@
 //= 1.1 Optimized, updated, checked [Lupus]
 //= 1.2 Added Akagi [Playtester]
 //= 1.3 Updated dialogs to official ones and optimized [SinSloth]
+//= 1.4 Fixed a minor bug [SinSloth]
 //============================================================ 
 
 alberta,30,65,3	script	Akagi#nq	730,{
@@ -433,7 +434,7 @@ que_ng,30,65,3	script	Cougar Gai	730,{
 		mes "You don't know when and where you may be asked to go on a mission, so don't put off your training for a single day.";
 		close;
 	}
-	else if(Class == Job_Super_Baby)
+	else if(Class == Job_Baby)
 	{
 		mes "[Cougar Gai]";
 		mes "What the...! A super baby!";