浏览代码

*Updated refiner function to allow for addition features per npc.
* Updated repairmen positions and function. Now repairs all items at once.
* Added a missing close2 to the meg seal NPC Rebarev Doug (bugreport:2228)

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

L0ne_W0lf 16 年之前
父节点
当前提交
a5f781a533
共有 3 个文件被更改,包括 122 次插入45 次删除
  1. 3 0
      npc/Changelog.txt
  2. 116 44
      npc/merchants/refine.txt
  3. 3 1
      npc/quests/seals/megingard_seal.txt

+ 3 - 0
npc/Changelog.txt

@@ -1,6 +1,9 @@
 Date		Added
 ======
 2008/09/14
+	* Rev. 13208 Updated refiner function to allow for addition features per npc. [L0ne_W0lf]
+	* Updated repairmen positions and function. Now repairs all items at once.
+	* Added a missing close2 to the meg seal NPC Rebarev Doug (bugreport:2228)
 	* Changed a couple close2;'s to close;'s in the Refine NPC. (bugreport:2229) [Paradox924X]
 2008/09/09
 	* Rev. 13202 Enabled WoE SE to be run independently of normal WoE. [L0ne_W0lf]

+ 116 - 44
npc/merchants/refine.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= Syrus22 (1.1) dafide18 (1.4) Skotlex (1.5)
 //===== Current Version: =====================================
-//= 2.4
+//= 2.5
 //===== Compatible With: =====================================
 //= Any Athena Version
 //===== Description: =========================================
@@ -46,6 +46,9 @@
 //= 2.4 Updated Refiner function. cleaner, and less dated. [L0ne_w0lf]
 //= 2.5 Rather large update to the refiner and merchants. :D [L0ne_W0lf]
 //= 2.6 Fixed a few bugs with creating pure stones. [L0ne_W0lf]
+//= 2.7 Refiner function accepts additional paramater. [L0ne_W0lf]
+//=     0 = No special features; 1 = new refining features
+//=     Updated Repairmen and function. No longer shows menu.
 //============================================================
 
 
@@ -322,31 +325,31 @@ ein_in01,38,29,6	duplicate(Chrisbs)	Christopher#2	63
 // Weapon/Armor Refiners
 //=====================================================================================
 prt_in,63,60,4	script	Hollengrhen	85,{
-	callfunc "refinemain","Hollengrhen";
+	callfunc "refinemain","Hollengrhen",0;
 	end;
 }
 morocc_in,73,38,4	script	Aragham	99,{
-	callfunc "refinemain","Aragham";
+	callfunc "refinemain","Aragham",0;
 	end;
 }
 payon,144,173,4	script	Antonio	88,{
-	callfunc "refinemain","Antonio";
+	callfunc "refinemain","Antonio",0;
 	end;
 }
 alberta_in,28,58,4	script	Fredrik	85,{
-	callfunc "refinemain","Fredrik";
+	callfunc "refinemain","Fredrik",0;
 	end;
 }
 yuno_in01,164,26,6	script	Disturb	88,{
-	callfunc "refinemain","Disturb";
+	callfunc "refinemain","Disturb",0;
 	end;
 }
 ein_in01,24,87,6	script	Manthasman	826,{
-	callfunc "refinemain","Manthasman Pruhag";
+	callfunc "refinemain","Manthasman Pruhag",0;
 	end;
 }
 lhz_in02,282,20,7	script	Fulerr	869,{
-	callfunc "refinemain","Fulerr";
+	callfunc "refinemain","Fulerr",0;
 	end;
 }
 
@@ -357,7 +360,7 @@ lhz_in02,282,20,7	script	Fulerr	869,{
 //= .@features variable to 1
 //============================================================
 function	script	refinemain	{
-	set .@features,0;
+	set .@features,getarg(1);
 	mes "[" + getarg(0) + "]";
 	mes "I'm the Armsmith.";
 	mes "I can refine all kinds of weapons, armor and equipment, so let me";
@@ -879,20 +882,42 @@ function	script	orimain	{
 //=====================================================================================
 // Equipment Repairmen
 //=====================================================================================
-prt_in,62,54,2	script	Grendal	84,{
+alberta_in,31,65,4	script	Repairman#alb	86,{
+	callfunc "repairmain","Repairman";
+	end;
+}
+
+morocc_in,71,41,4	script	Repairman#moc	99,{
+	callfunc "repairmain","Repairman";
+	end;
+}
+
+payon,143,165,4	script	Repairman#pay	88,{
+	callfunc "repairmain","Repairman";
+	end;
+}
+
+prt_in,63,54,2	script	Repairman#prt	86,{
 	callfunc "repairmain","Grendal";
 	end;
 }
-//Temp Spot, Not Sure Where To place
-payon,149,182,2	script	Repairman#01	88,{
+
+yuno_in01,175,28,3	script	Repairman#juno	86,{
+	callfunc "repairmain","Repairman";
+	end;
+}
+
+geffen_in,34,166,3	script	Repairman#gef	99,{
 	callfunc "repairmain","Repairman";
 	end;
 }
-morocc_in,71,40,2	script	Repairman#02	99,{
+
+aldeba_in,38,60,3	script	Repairman#alde	86,{
 	callfunc "repairmain","Repairman";
 	end;
 }
-lhz_in02,284,14,3	script	Repairman#03	86,{
+
+lhz_in02,284,14,3	script	Repairman#lhz	86,{
 	callfunc "repairmain","Repairman";
 	end;
 }
@@ -902,37 +927,84 @@ lhz_in02,284,14,3	script	Repairman#03	86,{
 //============================================================
 function	script	repairmain	{
 	set .@repairprice,5000;
-	mes "[" + getarg(0) + "]";
-	mes "I am the Repair Smith and I can repair any Arms you want.";
-	mes "Tell me which Equipment you want to repair.";
-	next;
-	if(getbrokenid(1)==NULL) {
-		mes "[" + getarg(0) + "]";
-		mes "Looks like you don't need anything repaired today...";
-		close;
-	}
-	set .@choice,select(getitemname(getbrokenid(1)),getitemname(getbrokenid(2)),
-		getitemname(getbrokenid(3)),getitemname(getbrokenid(4)),getitemname(getbrokenid(5)),
-		getitemname(getbrokenid(6)),getitemname(getbrokenid(7)),getitemname(getbrokenid(8)),
-		getitemname(getbrokenid(9)),getitemname(getbrokenid(10)));
-	mes "[" + getarg(0) + "]";
-	mes "You're gonna repair " + getitemname(getbrokenid(.@choice)) + ".";
-	mes "To repair this, I need " + .@repairprice + " Zeny.";
-	mes "Continue?";
+	mes "["+getarg(0)+"]";
+	mes "Hey there!";
+	mes "Do you want me";
+	mes "to repair any items?";
+	mes "You can count on me";
+	mes "for item repairs!";
 	next;
-	if(select("Yes","No") == 2) {
-		mes "[" + getarg(0) + "]";
-		mes "Ok, but don't expect to be using that...";
-		close;
-	}
-	if (Zeny < .@repairprice) {
-		mes "[" + getarg(0) + "]";
-		mes "Is it all you got?";
-		mes "Unfortunately, I have kids to feed...";
+	switch(select("Actually, I do have some items...:None at the moment.")) {
+	case 1:
+		set .@checkitem,1;
+		while (1) {
+			if (getbrokenid(.@checkitem) == 0) {
+				break;
+			}
+			set .@checkitem,.@checkitem+1;
+		}
+		if (!.@checkitem) {
+			mes "["+getarg(0)+"]";
+			mes "Oh wow, this is incredible!";
+			mes "You must take very good care of your things. None of your items are damaged!";
+			next;
+			mes "["+getarg(0)+"]";
+			mes "If everyone is like you, I'm going to be unemployed!! Haha~!";
+			close;
+		}
+		mes "["+getarg(0)+"]";
+		mes "Hmm...";
+		mes "Let's see...";
+		mes "Out of all your items,";
+		mes "" + .@checkitem + " are damaged.";
+		mes "Would you like to repair?";
+		next;
+		set .@totalcost,.@repairprice*.@checkitem;
+		mes "["+getarg(0)+"]";
+		mes "Each repair costs 5000 Zeny. So to repair all your damaged items would cost " + .@totalcost + " Zeny! Would you like to repair the items?";
+		next;
+		switch(select("Yes:No")) {
+		case 1:
+			if (Zeny < .@totalcost) {
+				mes "["+getarg(0)+"]";
+				mes "Whoa whoa...";
+				mes "Check your wallet before you receive the repair bill! I can't repair anything because you don't have enough Zeny.";
+				close;
+			}
+			set .@checkitem2,1;
+			while (1) {
+				if (getbrokenid(.@checkitem2) == 0) {
+					break;
+				}
+				set .@checkitem2,.@checkitem2+1;
+			}
+			if (.@checkitem == .@checkitem2) {
+				set zeny,zeny-.@totalcost;
+				while (.@checkitem) {
+					repair(.@checkitem);
+					set .@checkitem,.@checkitem-1;
+				}
+				mes "["+getarg(0)+"]";
+				mes "Okay! All done. Now, try to be a little more careful. Items have lives too you know.";
+				close;
+			}
+			else {
+				mes "["+getarg(0)+"]";
+				mes "Mmm? Something's wrong. Wait... Equip the items you need to repair and then come back to me.";
+				close;
+			}
+		case 2:
+			mes "["+getarg(0)+"]";
+			mes "Well, it's no skin off my nose, but it's not good to leave items damaged. You should get them repaired as soon as possible!";
+			close;
+		}
+	case 2:
+		mes "["+getarg(0)+"]";
+		mes "Hohoho...";
+		mes "You don't have";
+		mes "any business with me";
+		mes "if you don't have any";
+		mes "items to repair.";
 		close;
 	}
-	set Zeny,Zeny-.@repairprice;
-	repair(.@choice);
-	close;
-
 }

+ 3 - 1
npc/quests/seals/megingard_seal.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= SinSloth
 //===== Current Version: ===================================== 
-//= 1.4
+//= 1.5
 //===== Compatible With: ===================================== 
 //= eAthena
 //===== Description: ========================================= 
@@ -14,6 +14,7 @@
 //= 1.2 Fixed experience gains to match upcoming rate adjustments. [SinSloth]
 //= 1.3 Updated several aspects of the script. [L0ne_W0lf]
 //= 1.4 Minor Touchups to quest. [L0ne_W0lf]
+//= 1.5 Fixed missing close2 in Rebarev Doug. [L0ne_w0lf]
 //============================================================
 
 prt_castle,44,151,0	script	Rebarev Doug	56,{
@@ -521,6 +522,7 @@ prt_castle,44,151,0	script	Rebarev Doug	56,{
 		mes "As our forefathers have";
 		mes "done a thousand years ago, we shall vanquish the hordes of Demons when the day comes.";
 	}
+	close2;
 	cutin "god_rebeireb",255;
 	end;
 }