ソースを参照

Fixed Banish Winter Quest (two while loops could not be left). (bugreport:3142)
Fixed Siblings Quest exploits and made it more official. (bugreport:4088)

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

kenpachi2k11 13 年 前
コミット
1e2b445e0a
2 ファイル変更109 行追加164 行削除
  1. 4 4
      npc/quests/quests_moscovia.txt
  2. 105 160
      npc/quests/quests_veins.txt

+ 4 - 4
npc/quests/quests_moscovia.txt

@@ -8706,8 +8706,8 @@ mosk_in,221,43,0	script	#bowl	111,{
 				set mos_nowinter,17;
 				close;
 			}
-		if (.@nankai == 3) {
-			}
+			if (.@nankai == 3)
+				break;
 		}
 		specialeffect EF_BUBBLE;
 		mes "-The liquid has been changed";
@@ -8865,8 +8865,8 @@ mosk_in,221,43,0	script	#bowl	111,{
 				specialeffect EF_POISONATTACK;
 				close;
 			}
-		if (.@nankai == 7) {
-			}
+			if (.@nankai == 7)
+				break;
 		}
 		mes "-I am sure that the book told me";
 		mes "to wait for some time.-";

+ 105 - 160
npc/quests/quests_veins.txt

@@ -2835,8 +2835,8 @@ veins,327,185,3	script	Kid#camelcamel	944,{
 			set rachel_camel,3;
 			close;
 		}
-		else if (rachel_camel <= 5) {
-			mes "["+strcharinfo(0)+"]";
+		else if (rachel_camel == 3) {
+			mes "[Kid Karyn]";
 			mes "Let's see...";
 			mes "I'd better find the";
 			mes "locksmith in the market";
@@ -2844,6 +2844,21 @@ veins,327,185,3	script	Kid#camelcamel	944,{
 			mes "me unlock Curdie's shackles.";
 			close;
 		}
+		else if (rachel_camel == 4) {
+			mes "[Kid Karyn]";
+			mes "Huh... I'd better talk";
+			mes "to Mr. Lockenlock first, the";
+			mes "locksmith in the market street.";
+			close;
+		}
+		else if (rachel_camel == 5) {
+			mes "["+strcharinfo(0)+"]";
+			mes "Hmm... I'd better talk";
+			mes "to Ms. Ivory, the organic";
+			mes "soap maker if I want to help";
+			mes "Karyn free his sister Curdie.";
+			close;
+		}
 		else if (rachel_camel == 6) {
 			mes "["+strcharinfo(0)+"]";
 			mes "Wait... I should be";
@@ -2910,7 +2925,7 @@ veins,327,185,3	script	Kid#camelcamel	944,{
 			mes "if I want to free Curdie.";
 			close;
 		}
-		else if ((rachel_camel >= 12) && (rachel_camel <= 16)) {
+		else if (rachel_camel > 11 && rachel_camel < 17) {
 			mes "["+strcharinfo(0)+"]";
 			mes "Well... I found the";
 			mes "camel. Now I need to get";
@@ -3039,7 +3054,17 @@ veins,327,185,3	script	Kid#camelcamel	944,{
 		}
 		else {
 // Start Nameless Island Access Quest Addition
-			if (aru_monas == 15) {
+			if (aru_monas < 15) {
+				mes "[Kid Karyn]";
+				mes "Oh, hello! Thank you";
+				mes "so much for helping me";
+				mes "last time! When I get";
+				mes "older, I'm gonna do my";
+				mes "best to help you the same";
+				mes "way that you helped me!";
+				close;
+			}
+			else if (aru_monas == 15) {
 				mes "[Kid Karyn]";
 				mes "Hi! It's good to see";
 				mes "you again! Kurdi just came";
@@ -3110,21 +3135,22 @@ veins,327,185,3	script	Kid#camelcamel	944,{
 				set aru_monas,16;
 				close;
 			}
-			else if (aru_monas > 15) {
+			else if (aru_monas < 26) {
 				mes "[Kid Karyn]";
 				mes "Hi! How do you like";
 				mes "fishing on my dad's boat?";
 				mes "Oh, and Kurdi says hi!";
 				close;
 			}
+			else {
+				mes "[Kid Karyn]";
+				mes "Dad says that he'll";
+				mes "be able to go fishing";
+				mes "again soon! I hope that";
+				mes "he'll catch a lot of fish!";
+				close;
+			}
 // End Nameless Island Access Quest Addition.
-			mes "[Kid Karyn]";
-			mes "Hello, hello!";
-			mes "Hey, did you need";
-			mes "me to help you? No...?";
-			mes "Awww, there must be";
-			mes "something I can do...";
-			close;
 		}
 	}
 	else {
@@ -3230,7 +3256,7 @@ que_thor,36,66,5	script	Little Curdie	941,{
 		mes "from these chains.^000000";
 		close;
 	}
-	else if (rachel_camel == 3) {
+	else if (rachel_camel == 3 || rachel_camel == 6 || rachel_camel == 8 || rachel_camel == 22) {
 		mes "^3355FFCurdie is lying";
 		mes "feebly on the ground.^000000";
 		close;
@@ -3255,22 +3281,12 @@ que_thor,36,66,5	script	Little Curdie	941,{
 		mes "the Rachel soldiers.^000000";
 		close;
 	}
-	else if (rachel_camel == 6) {
-		mes "^3355FFCurdie is lying";
-		mes "feebly on the ground.^000000";
-		close;
-	}
 	else if (rachel_camel == 7) {
 		mes "^3355FFIt seems that someone";
 		mes "has come by to give";
 		mes "Curdie food and water.^000000";
 		close;
 	}
-	else if (rachel_camel == 8) {
-		mes "^3355FFCurdie is lying";
-		mes "feebly on the ground.^000000";
-		close;
-	}
 	else if (rachel_camel == 9) {
 		mes "^3355FFCurdie squints at you";
 		mes "as you walk by. It seems";
@@ -3297,7 +3313,7 @@ que_thor,36,66,5	script	Little Curdie	941,{
 		mes "if I want to free Curdie.";
 		close;
 	}
-	else if (rachel_camel <= 16) {
+	else if (rachel_camel > 11 && rachel_camel < 17) {
 		mes "^3355FFYou already found the";
 		mes "camel, so you need to collect";
 		mes "the soap ingredients if you";
@@ -3422,11 +3438,6 @@ que_thor,36,66,5	script	Little Curdie	941,{
 		mes "to unlock Curdie's shackles.^000000";
 		close;
 	}
-	else if (rachel_camel == 22) {
-		mes "^3355FFCurdie is lying";
-		mes "feebly on the ground.^000000";
-		close;
-	}
 	else if (rachel_camel == 23) {
 		mes "[Little Curdie]";
 		mes "Y-you...";
@@ -3486,13 +3497,21 @@ que_thor,36,66,5	script	Little Curdie	941,{
 	}
 	else {
 		mes "[Little Curdie]";
-		mes " .......";
+		mes " ...Wah....";
 		close;
 	}
 }
 
 veins,181,166,3	script	Lockenlock	900,{
-	if (rachel_camel == 4) {
+	if (rachel_camel && rachel_camel < 4) {
+		mes "^3355FFIt's a drunkard...";
+		mes "The scent of pure";
+		mes "alcohol wafts around him.";
+		mes "There's a certain beauty";
+		mes "to his disheveled misery.^000000";
+		close;
+	}
+	else if (rachel_camel == 4) {
 		if (countitem(503) > 0) {
 			mes "["+strcharinfo(0)+"]";
 			mes "Excuse me...?";
@@ -3637,14 +3656,6 @@ veins,181,166,3	script	Lockenlock	900,{
 			close;
 		}
 	}
-	else if (rachel_camel <= 3) {
-		mes "^3355FFIt's a drunkard...";
-		mes "The scent of pure";
-		mes "alcohol wafts around him.";
-		mes "There's a certain beauty";
-		mes "to his disheveled misery.^000000";
-		close;
-	}
 	else if (rachel_camel == 5) {
 		mes "[Locksmith Lockenlock]";
 		mes "Go to the market and";
@@ -3742,7 +3753,7 @@ veins,181,166,3	script	Lockenlock	900,{
 		mes "sooner I can help Curdie.";
 		close;
 	}
-	else if (rachel_camel <= 16) {
+	else if (rachel_camel > 12 && rachel_camel < 17) {
 		mes "^3355FFYou already found the";
 		mes "camel, so you need to collect";
 		mes "the soap ingredients if you";
@@ -4049,7 +4060,17 @@ veins,181,166,3	script	Lockenlock	900,{
 }
 
 veins,227,127,5	script	Ivory	940,{
-	if (rachel_camel == 5) {
+	if (rachel_camel && rachel_camel < 5) {
+		mes "[Organic Soap Maker Ivory]";
+		mes "I need to make more of";
+		mes "my soap, but I've run out";
+		mes "of ingredients. Well, there's";
+		mes "not much I can do without them,";
+		mes "so maybe it'd be better if";
+		mes "I just close up shop today...";
+		close;
+	}
+	else if (rachel_camel == 5) {
 		mes "["+strcharinfo(0)+"]";
 		mes "Excuse me...?";
 		next;
@@ -4194,23 +4215,11 @@ veins,227,127,5	script	Ivory	940,{
 			close;
 		}
 	}
-	else if (rachel_camel <= 4) {
-		mes "[Organic Soap Maker Ivory]";
-		mes "I need to make more of";
-		mes "my soap, but I've run out";
-		mes "of ingredients. Well, there's";
-		mes "not much I can do without them,";
-		mes "so maybe it'd be better if";
-		mes "I just close up shop today...";
-		close;
-	}
 	else if (rachel_camel == 7) {
-		mes "[Beautiful Lady]";
-		mes "Hm? Did you need";
-		mes "something? I'm still";
-		mes "setting up shop now";
-		mes "so I'm not really ready";
-		mes "to sell anything yet.";
+		mes "["+strcharinfo(0)+"]";
+		mes "I need to talk to";
+		mes "someone named Saraman";
+		mes "to get the soap ingredients...";
 		close;
 	}
 	else if (rachel_camel == 8) {
@@ -4266,7 +4275,7 @@ veins,227,127,5	script	Ivory	940,{
 		mes "sooner I can help Curdie.";
 		close;
 	}
-	else if (rachel_camel <= 16) {
+	else if (rachel_camel > 12 && rachel_camel < 17) {
 		mes "^3355FFYou already found the";
 		mes "camel, so you need to collect";
 		mes "the soap ingredients if you";
@@ -4355,7 +4364,7 @@ veins,227,127,5	script	Ivory	940,{
 		mes "to Mr. Lockenlock.^000000";
 		close;
 	}
-	else if (rachel_camel <= 25) {
+	else if (rachel_camel > 19 && rachel_camel < 26) {
 		mes "[Organic Soap Maker Ivory]";
 		mes "^333333*Phew!*^000000 It's been";
 		mes "a long day. I think";
@@ -4374,7 +4383,7 @@ veins,227,127,5	script	Ivory	940,{
 }
 
 veins,115,59,5	script	Saraman	847,{
-	if (rachel_camel < 7) {
+	if (rachel_camel && rachel_camel < 7) {
 		mes "[Saraman]";
 		mes "Zzzzz...";
 		mes "Zzz... Zzzzzz...";
@@ -4645,7 +4654,7 @@ veins,115,59,5	script	Saraman	847,{
 		mes "sooner I can help Curdie.";
 		close;
 	}
-	else if (rachel_camel <= 16) {
+	else if (rachel_camel > 12 && rachel_camel < 17) {
 		mes "^3355FFYou already found the";
 		mes "camel, so you need to collect";
 		mes "the soap ingredients if you";
@@ -4700,7 +4709,7 @@ veins,115,59,5	script	Saraman	847,{
 		mes "to see Ms. Ivory now?";
 		close;
 	}
-	else if (rachel_camel <= 23) {
+	else if (rachel_camel > 18 && rachel_camel < 24) {
 		mes "[Camel Farm Owner Saraman]";
 		mes "Thank you for finding my";
 		mes "precious Silk Sand Camel";
@@ -4783,20 +4792,20 @@ ve_fild07,235,42,3	script	Silk Sand Camel	938,{
 		set rachel_camel,12;
 		close;
 	}
-	else if (rachel_camel >= 12 && rachel_camel <= 16) {
+	else if (rachel_camel > 11 && rachel_camel < 17) {
 		if (countitem(519) > 1 && countitem(511) > 19 && countitem(909) > 9 && countitem(713) > 0) {
 			mes "^3355FFThe camel can smell";
 			mes "that you have food for";
 			mes "it, and started salivating.";
 			mes "You may as well just feed it.^000000";
 			next;
-			mes "[Silk Sand Camel]";
-			mes "^333333*Chew Chew~*^000000";
-			mes "^333333*Smacks lips*^000000";
-			next;
-			switch(rand(1,7)) {
+			switch(rand(3)) {
 			case 1:
 				if (rachel_camel == 12) {
+					mes "[Silk Sand Camel]";
+					mes "^333333*Chew Chew~*^000000";
+					mes "^333333*Smacks lips*^000000";
+					next;
 					mes "^3355FFThe camel ate everything,";
 					mes "but it doesn't seem like";
 					mes "it'll go through any bowel";
@@ -4816,69 +4825,10 @@ ve_fild07,235,42,3	script	Silk Sand Camel	938,{
 				delitem 909,10; //Jellopy
 				close;
 			case 2:
-				mes "^3355FFThe camel grimaced";
-				mes "as if it were suffering";
-				mes "from a stomachache...";
-				mes "And... Out pops a Sweet";
-				mes "Potato. It's probably";
-				mes "safe to eat... Maybe.^000000";
-				delitem 519,2; //Milk
-				delitem 511,20; //Green_Herb
-				delitem 909,10; //Jellopy
-				getitem 516,1; //Sweet_Potato
-				close;
-			case 3:
-				mes "^3355FFThe camel grimaced";
-				mes "as if it were suffering";
-				mes "from a stomachache...";
-				if (rachel_camel == 12) {
-					mes "And... Out pops 3 Sweet";
-					mes "Potatoes. They're probably";
-				}
-				else {
-					mes "And... Out pops a Sweet";
-					mes "Potato. It's probably";
-				}
-				mes "safe to eat... Hopefully.^000000";
-				delitem 519,2; //Milk
-				delitem 511,20; //Green_Herb
-				delitem 909,10; //Jellopy
-				if (rachel_camel == 12) {
-					getitem 516,3; //Sweet_Potato
-				}
-				else {
-					getitem 516,1; //Sweet_Potato
-				}
-				close;
-			case 4:
 				mes "[Silk Sand Camel]";
 				mes "^333333*Chew Chew~*^000000";
 				mes "^333333*Smacks lips*^000000";
 				next;
-				mes "^3355FFThe camel grimaced";
-				mes "as if it were suffering";
-				mes "from a stomachache...";
-				if (rachel_camel == 12) {
-					mes "And... Out pops 7 Sweet";
-					mes "Potatoes. They're probably";
-				}
-				else {
-					mes "And... Out pops a Sweet";
-					mes "Potato. It's probably";
-				}
-				mes "safe to eat... Hopefully.^000000";
-				delitem 519,2; //Milk
-				delitem 511,20; //Green_Herb
-				delitem 909,10; //Jellopy
-				if (rachel_camel == 12) {
-					getitem 516,7; //Sweet_Potato
-				}
-				else {
-					getitem 516,1; //Sweet_Potato
-				}
-
-				close;
-			case 5:
 				mes "^3355FFThe camel grimaced";
 				mes "as if it were suffering";
 				mes "from a stomachache...";
@@ -4886,28 +4836,32 @@ ve_fild07,235,42,3	script	Silk Sand Camel	938,{
 				mes "of steaming camel dung!";
 				mes "This is cause for celebration!^000000";
 				next;
-				mes "["+strcharinfo(0)+"]";
+				mes "[" + strcharinfo(0) + "]";
 				if (rachel_camel == 12) {
 					mes "Now all I need is";
 					mes "just 4 more lumps";
 					mes "of this nasty old dung.";
+					set rachel_camel, 13;
 				}
 				else if (rachel_camel == 13) {
 					mes "Awesome! I got";
 					mes "2 glorious camel dung";
 					mes "lumps! Only 3 more to go!";
+					set rachel_camel, 14;
 				}
 				else if (rachel_camel == 14) {
 					mes "Yes! Now I have";
 					mes "3 camel dung lumps.";
 					mes "Just 2 more... I'm more";
 					mes "than halfway done!";
+					set rachel_camel, 15;
 				}
 				else if (rachel_camel == 15) {
 					mes "4 lumps of camel dung...";
 					mes "Heh heh! This is going";
 					mes "better than I thought!";
 					mes "Only 1 more to go!";
+					set rachel_camel, 16;
 				}
 				else if (rachel_camel == 16) {
 					mes "In my hands...";
@@ -4915,7 +4869,7 @@ ve_fild07,235,42,3	script	Silk Sand Camel	938,{
 					mes "5 lumps of camel dung.";
 					mes "This is my finest moment.";
 					next;
-					mes "["+strcharinfo(0)+"]";
+					mes "[" + strcharinfo(0) + "]";
 					mes "Never, in all my years";
 					mes "of adventuring, saving the";
 					mes "oppressed, protecting the";
@@ -4923,41 +4877,24 @@ ve_fild07,235,42,3	script	Silk Sand Camel	938,{
 					mes "that I'd accomplish such";
 					mes "a magnificent feat.";
 					next;
-					mes "["+strcharinfo(0)+"]";
+					mes "[" + strcharinfo(0) + "]";
 					mes "I am so happy--nay--";
 					mes "^4D4DFFproud^000000 that my strength, my";
 					mes "valor, and my determination";
 					mes "was up to this task. May the";
 					mes "annals of history never forget";
-					mes "this day! Long live "+strcharinfo(0)+"!";
+					mes "this day! Long live "+username+"!";
 					next;
 					mes "^3355FFIt's time for you to";
 					mes "return to Mr. Saraman.^000000";
+					set rachel_camel, 17;
 				}
 				delitem 519,2; //Milk
 				delitem 511,20; //Green_Herb
 				delitem 909,10; //Jellopy
 				delitem 713,1; //Empty_Bottle
-				changequest 3059+rachel_camel,3060+rachel_camel;
-				set rachel_camel,rachel_camel+1;
 				close;
-			case 6:
-				mes "[Silk Sand Camel]";
-				mes "^333333*Chew Chew~*^000000";
-				mes "^333333*Smacks lips*^000000";
-				next;
-				mes "^3355FFThe camel grimaced";
-				mes "as if it were suffering";
-				mes "from a stomachache...";
-				mes "And... Out pops a Sweet";
-				mes "Potato. It's probably";
-				mes "safe to eat... Maybe.^000000";
-				delitem 519,2; //Milk
-				delitem 511,20; //Green_Herb
-				delitem 909,10; //Jellopy
-				getitem 516,1; //Sweet_Potato
-				close;
-			case 7:
+			default:
 				mes "[Silk Sand Camel]";
 				mes "^333333*Chew Chew~*^000000";
 				mes "^333333*Smacks lips*^000000";
@@ -4977,18 +4914,26 @@ ve_fild07,235,42,3	script	Silk Sand Camel	938,{
 		}
 		else {
 			mes "["+strcharinfo(0)+"]";
-			mes "I need to feed this camel if";
-			mes "I ever want to get any dung";
-			mes "from it. Let's see, Mr. Saraman";
-			mes "mentioned that the items I got";
-			mes "for Ms. Ivory were actually";
-			mes "camel feed. I need to have...";
+			if (rachel_camel == 12) {
+				mes "I need to feed this camel if";
+				mes "I ever want to get any dung";
+				mes "from it. Let's see, Mr. Saraman";
+				mes "mentioned that the items I got";
+				mes "for Ms. Ivory were actually";
+				mes "camel feed. I need to have...";
+			}
+			else {
+				mes "Did I run out of feed";
+				mes "already? Nuts, if I want";
+				mes "to feed this camel again,";
+				mes "then I need to bring it...";
+			}
 			next;
 			mes "["+strcharinfo(0)+"]";
-			mes "^4D4DFF10 Milk^000000,";
-			mes "^4D4DFF100 Green Herbs^000000,";
-			mes "^4D4DFF50 Jellopies^000000, and";
-			mes "^4D4DFF5 Empty Bottles^000000.";
+			mes "^4D4DFF2 Milk^000000,";
+			mes "^4D4DFF20 Green Herbs^000000,";
+			mes "^4D4DFF10 Jellopies^000000, and";
+			mes "^4D4DFF1 Empty Bottles^000000.";
 			next;
 			mes "[Silk Sand Camel]";
 			mes "*Chew Chew*";