فهرست منبع

* More boredom and bugfixing to various scripts. :D
- Updated an outdated comment in refine.txt. (bugreport:2370)
- Fixed two bad event calls in arug_cas04/05. (bugreport:2386)
- Fixed wrong check in haire dresser script. (bugreport:2392)
- Fixed infinite loop in archer quest scropt. (bugreport:2393)
- Bonus: Updated the blacksmith supply dealer in Einbroch


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

L0ne_W0lf 16 سال پیش
والد
کامیت
0c8ec88edc
6فایلهای تغییر یافته به همراه262 افزوده شده و 12 حذف شده
  1. 7 0
      npc/Changelog.txt
  2. 4 3
      npc/guild2/arug_cas04.txt
  3. 4 3
      npc/guild2/arug_cas05.txt
  4. 3 2
      npc/merchants/hair_dyer.txt
  5. 240 3
      npc/merchants/refine.txt
  6. 4 1
      npc/quests/first_class/tu_archer.txt

+ 7 - 0
npc/Changelog.txt

@@ -1,5 +1,12 @@
 Date		Added
 ======
+2008/10/28
+	* Rev. 13328 More boredom and bugfixing to various scripts. :D [L0ne_W0lf]
+	- Updated an outdated comment in refine.txt. (bugreport:2370)
+	- Fixed two bad event calls in arug_cas04/05. (bugreport:2386)
+	- Fixed wrong check in haire dresser script. (bugreport:2392)
+	- Fixed infinite loop in archer quest scropt. (bugreport:2393)
+	- Bonus: Updated the blacksmith supply dealer in Einbroch
 2008/10/27
 	* Replaced 96 instances of "S_BonusREward" with "S_BonusReward" as it should be in monster_race.txt. [Paradox924X]
 2008/10/25

+ 4 - 3
npc/guild2/arug_cas04.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= L0ne_W0lf
 //===== Current Version: =====================================
-//= 1.7
+//= 1.8
 //===== Compatible With: =====================================
 //= eAthena SVN
 //===== Description: =========================================
@@ -20,6 +20,7 @@
 //= 1.5 Fixed error with control devices. [L0ne_W0lf]
 //= 1.6 Corrected copy/paste error. [L0ne_W0lf]
 //= 1.7 Replaced effect numerics with constants. [L0ne_W0lf]
+//= 1.8 Fixed wrong event call for stones. (bugreport:2386) [L0ne_W0lf]
 //============================================================
 
 arug_cas04,1,1,0	script	Manager#aru04_02	111,{
@@ -586,7 +587,7 @@ OnGuardianStoneDied:
 	end;
 
 OnTimer300000:
-	donpcevent "1st Guardian Stone#aru04::OnGuardian";
+	donpcevent "1st Guardian Stone#aru04::OnEnable";
 	setarray $agit_ar04[0],2; //Global Variable
 	stopnpctimer;
 	end;
@@ -895,7 +896,7 @@ OnGuardianStoneDied:
 	end;
 
 OnTimer300000:
-	donpcevent "2nd Guardian Stone#aru04::OnGuardian";
+	donpcevent "2nd Guardian Stone#aru04::OnEnable";
 	setarray $agit_ar04[1],2; //Global Variable
 	stopnpctimer;
 	end;

+ 4 - 3
npc/guild2/arug_cas05.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= L0ne_W0lf
 //===== Current Version: =====================================
-//= 1.7
+//= 1.8
 //===== Compatible With: =====================================
 //= eAthena SVN
 //===== Description: =========================================
@@ -20,6 +20,7 @@
 //= 1.5 Fixed error with control devices. [L0ne_W0lf]
 //= 1.6 Corrected copy/paste error. [L0ne_W0lf]
 //= 1.7 Replaced effect numerics with constants. [L0ne_W0lf]
+//= 1.8 Fixed wrong event call for stones. (bugreport:2386) [L0ne_W0lf]
 //============================================================
 
 arug_cas05,1,1,0	script	Manager#aru05_02	111,{
@@ -586,7 +587,7 @@ OnGuardianStoneDied:
 	end;
 
 OnTimer300000:
-	donpcevent "1st Guardian Stone#aru05::OnGuardian";
+	donpcevent "1st Guardian Stone#aru05::OnEnable";
 	setarray $agit_ar05[0],2; //Global Variable
 	stopnpctimer;
 	end;
@@ -895,7 +896,7 @@ OnGuardianStoneDied:
 	end;
 
 OnTimer300000:
-	donpcevent "2nd Guardian Stone#aru05::OnGuardian";
+	donpcevent "2nd Guardian Stone#aru05::OnEnable";
 	setarray $agit_ar05[1],2; //Global Variable
 	stopnpctimer;
 	end;

+ 3 - 2
npc/merchants/hair_dyer.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= kobra_k88; L0ne_W0lf
 //===== Current Version: ===================================== 
-//= 1.3
+//= 1.4
 //===== Compatible With: ===================================== 
 //= eAthena SVN
 //===== Description: ========================================= 
@@ -13,6 +13,7 @@
 //= 1.1 Bugfix: fixed missing menu label LEnd->M_End [Lupus]
 //= 1.2 Rescripted to Aegis 10.3 standards. [L0ne_W0lf]
 //= 1.3 Fixed problem what "freezes" the NPC. (bugreport:509) [Samuray22]
+//= 1.4 Fixed getlook checking the wrong color. (bugreport:2392) [L0ne_W0lf]
 //============================================================ 
 
 prt_in,243,168,4	script	Jovovich	91,{
@@ -77,7 +78,7 @@ prt_in,243,168,4	script	Jovovich	91,{
 						close;
 					}
 
-					if (.@headpalette == getlook(7)) {
+					if (.@headpalette == getlook(6)) {
 						mes "[Hairdresser Jovovich]";
 						mes "Eh? But that's the hair color you already have. Please choose a different color.";
 						next;

+ 240 - 3
npc/merchants/refine.txt

@@ -51,13 +51,15 @@
 //=     Updated Repairmen and function. No longer shows menu.
 //= 2.7a A couple touch-ups to the repairman function. [L0ne_w0lf]
 //= 2.8 Changed the nonexistent variable .@matname$ for getitemname(.@material). (bugreport:2340) [Samuray22]
+//= 2.8 Added proper Blacksmith Supplier to Einroch. [L0ne_W0lf]
+//=     Updated dated features comment to reflect new usage.
 //============================================================
 
 
 //=========================================================
 // Christopher: Geffen Blacksmith
 //=========================================================
-geffen_in,110,172,0	script	Christopher#1::Chrisbs	63,{
+geffen_in,110,172,0	script	Christopher#1	63,{
 	mes "[Christopher Guillenrow]";
 	mes "Welcome to Christopher's Workshop. Ye can get all yer stuff for forging here. What business";
 	mes "brings ye to me?";
@@ -321,7 +323,242 @@ geffen_in,110,172,0	script	Christopher#1::Chrisbs	63,{
 	}
 }
 
-ein_in01,38,29,6	duplicate(Chrisbs)	Christopher#2	63
+//=========================================================
+// Paul Spanner: Einbroch Blacksmith Supplier
+//=========================================================
+ein_in01,38,29,0	script	Paul Spanner	63,{
+	if (checkweight(1201,1) == 0) {
+		mes "- Wait a minute !! -";
+		mes "- Currently you're carrying -";
+		mes "- too many items with you. -";
+		mes "- Please try again -";
+		mes "- after you loose some weight. -";
+		close;
+	}
+	mes "[Paul Spanner]";
+	mes "Welcome, my friend.";
+	mes "In my shop, you will find everything that you need in forging.";
+	mes "Tell me what you need.";
+	next;
+	switch(select("Purchase Anvil.:Purchase Forging Items.:Purchase Metal.:Process Ores.:Quit.")) {
+	case 1:
+		mes "[Paul Spanner]";
+		mes "Anvil is the most necessary item for Blacksmiths.";
+		mes "Since you will use an Anvil more than once, you'd better buy a nice one.";
+		next;
+		switch(select("Anvil - 30,000z.:Oridecon Anvil - 120,000z.:Golden Anvil - 300,000z.:I need a better anvil.:Cancel.")) {
+		case 1:
+			if (zeny < 30000) {
+				mes "[Paul Spanner]";
+				mes "With that much of money, you cannot even buy a toy anvil!";
+				close;
+			}
+			getitem 986,1; //Anvil
+			set zeny,zeny-30000;
+			mes "[Paul Spanner]";
+			mes "It is the cheapest anvil which has the most basic ability.";
+			mes "Thank you for using my shop. If you need anything, just let me know.";
+			close;
+		case 2:
+			if (zeny < 120000) {
+				mes "[Paul Spanner]";
+				mes "With that much of money, you cannot even buy a toy anvil!";
+				close;
+			}
+			getitem 987,1; //Oridecon_Anvil
+			set zeny,zeny-120000;
+			mes "[Paul Spanner]";
+			mes "Ah, you have an eye for anvil. A Blacksmith needs an anvil at least as good as this.";
+			mes "Thank you for using my shop. If you need anything, just let me know.";
+			close;
+		case 3:
+			if (zeny < 300000) {
+				mes "[Paul Spanner]";
+				mes "With that much of money, you cannot even buy a toy anvil!";
+				close;
+			}
+			getitem 988,1; //Golden_Anvil
+			set zeny,zeny-300000;
+			mes "[Paul Spanner]";
+			mes "I can tell your ambition to become a good Blacksmith just by looking at you to choose this Golden Anvil!";
+			mes "This anvil will surely aid you in creating the best weapons.";
+			close;
+		case 4:
+			mes "[Paul Spanner]";
+			mes "I am sorry, but I do not sell better anvils than Golden Anvil.";
+			mes "Unless you find the legendary anvil of 'Linggell', I don't think that you could find better one than Golden Anvil in any other places.";
+			close;
+		case 5:
+			mes "[Paul Spanner]";
+			mes "If you need anything, just let me know.";
+			close;
+		}
+	case 2:
+		mes "[Paul Spanner]";
+		mes "You need various materials to process ores and to forge weapons.";
+		mes "I have everything that you need. Take a look.";
+		next;
+		switch(select("Mini Furnace - 150z.:Iron Hammer - 1,000z.:Golden Hammer - 3,000z.:Oridecon Hammer - 5,000z.:Cancel.")) {
+		case 1:
+			set .@item,612;
+			set .@item_cost,150;
+			set .@item_weight,200;
+			mes "[Paul Spanner]";
+			mes "You definately need this furnce to process ores!";
+			next;
+			break;
+		case 2:
+			set .@item,613;
+			set .@item_cost,1000;
+			set .@item_weight,200;
+			break;
+		case 3:
+			set .@item,614;
+			set .@item_cost,3000;
+			set .@item_weight,300;
+			break;
+		case 4:
+			set .@item,615;
+			set .@item_cost,5000;
+			set .@item_weight,400;
+			break;
+		case 5:
+			mes "[Paul Spanner]";
+			mes "If you need anything, just let me know.";
+			close;
+		}
+		mes "[Paul Spanner]";
+		mes "So, how many do you need? If you want to cancel the trade, enter '0'.";
+		next;
+		while(1) {
+			input .@input;
+			if (.@input == 0) {
+				mes "[Paul Spanner]";
+				mes "You have canceled the trade. If you need anything, just let me know.";
+				close;
+			}
+			else if ((.@input < 0) || (.@input > 500)) {
+				mes "[Paul Spanner]";
+				mes "You can only buy 500 or less at a time.";
+				next;
+			}
+			else {
+				break;
+			}
+		}
+		set .@sell,.@input * .@item_cost;
+		if (zeny < .@sell) {
+			mes "[Paul Spanner]";
+			mes "You don't have enough money. Sorry, I cannot sell them at a loss.";
+			close;
+		}
+		if (checkweight(.@item,.@input) == 0) {
+			mes "[Paul Spanner]";
+			mes "Hey, you look pale. Why don't you go lighten your weight first.";
+			close;
+		}
+		set zeny,zeny-.@sell;
+		getitem 612,.@input;
+		mes "[Paul Spanner]";
+		mes "Thank you for using my shop. If you need anything, just let me know.";
+		close;
+	case 3:
+		mes "[Paul Spanner]";
+		mes "I have high quality metal.";
+		mes "So, which metal would you like to buy?";
+		next;
+		switch(select("Phracon - 200z.:Emveretarcon - 1,000z.:Quit.")) {
+		case 1:
+			set .@item,1010;
+			set .@item_price,200;
+			break;
+		case 2:
+			set .@item,1011;
+			set .@item_price,1000;
+			break;		
+		case 3:
+			mes "[Paul Spanner]";
+			mes "If you need anything, just let me know.";
+			close;
+		}
+		mes "[Paul Spanner]";
+		mes "So, how many of them do you need? If you want to cancel the trade, enter '0'.";
+		next;
+		while(1) {
+			input .@input;
+			if (.@input == 0) {
+				mes "[Paul Spanner]";
+				mes "The trade has been canceled. If you need anything, just let me know.";
+				close;
+			}
+			else if ((.@input < 0) || (.@input > 500)) {
+				mes "[Paul Spanner]";
+				mes "You can buy 500 or less at a time.";
+				next;
+			}
+			else {
+				break;
+			}
+		}
+		set .@sell,.@input * .@item_price;
+		if (zeny < .@sell) {
+			mes "[Paul Spanner]";
+			mes "You don't have enough money. Sorry, I cannot sell them at a loss.";
+			close;
+		}
+		if (checkweight(.@item,.@input) == 0) {
+			mes "[Paul Spanner]";
+			mes "Hey, you look pale. Why don't you go lighten your weight first?";
+			close;
+		}
+		getitem .@item,.@input;
+		set zeny,zeny-.@sell;
+		mes "[Paul Spanner]";
+		mes "Thank you for using my shop. If you need anything, just let me know.";
+		close;
+	case 4:
+		mes "[Paul Spanner]";
+		mes "I can process Oridecon and Elunium for you.";
+		mes "You need 5 ores to process them into one Oridecon or Elunium.";
+		mes "So, which one do you want to process?";
+		switch(select("Oridecon:Elunium:Quit.")) {
+		case 1:
+			if (countitem(756) < 5) {
+				mes "[Paul Spanner]";
+				mes "You need 5 ores to process them into one pure Oridecon.";
+				close;
+			}
+			else {
+				delitem 756,5; //Oridecon_Stone
+				getitem 984,1; //Oridecon
+				mes "[Paul Spanner]";
+				mes "There you go. Thank you for using my service.";
+				close;
+			}
+		case 2:
+			if (countitem(757) < 5) {
+				mes "[Paul Spanner]";
+				mes "You need 5 ores to process them into one pure Elunium.";
+				close;
+			}
+			else {
+				delitem 757,5; //Elunium_Stone
+				getitem 985,1; //Elunium
+				mes "[Paul Spanner]";
+				mes "There you go. Thank you for using my service.";
+				close;
+			}
+		case 3:
+			mes "[Paul Spanner]";
+			mes "If you need anything, just let me know.";
+			close;
+		}
+	case 5:
+		mes "[Paul Spanner]";
+		mes "If you need anything, just let me know.";
+		close;
+	}
+}
 
 //=====================================================================================
 // Weapon/Armor Refiners
@@ -359,7 +596,7 @@ lhz_in02,282,20,7	script	Fulerr	869,{
 //= Main Refiner Function
 //============================================================
 //= To allow auto safe refining/multiple refining set the
-//= .@features variable to 1
+//= second argument to '1' in the function call.
 //============================================================
 function	script	refinemain	{
 	set .@features,getarg(1);

+ 4 - 1
npc/quests/first_class/tu_archer.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Fix up by Jukka
 //===== Current Version: ===================================== 
-//= 1.5
+//= 1.6
 //===== Compatible With: ===================================== 
 //= eAthena SVN (Testet in Trunk 88xx)
 //===== Description: ========================================= 
@@ -16,6 +16,7 @@
 //=	Skill quest NPC) [Lupus]
 //= 1.4 Fixed experience gains to match upcoming rate adjustments. [SinSloth]
 //= 1.5 Fixed bad NPC header data to comply with rev. 11603. [L0ne_W0lf]
+//= 1.6 Fixed infinate loop. (bugreport:2393) [L0ne_W0lf]
 //============================================================ 
 
 
@@ -1312,8 +1313,10 @@ pay_arche,84,139,3	script	Seisner	727,{
 						mes "anything else that";
 						mes "you want to ask me?";
 						next;
+						set .@exitwhite,1;
 						break;
 					}
+					if (.@exitwhile) break;
 				}
 				break;
 			case 3: