summaryrefslogtreecommitdiff
path: root/npc/merchants/refine.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/merchants/refine.txt')
-rw-r--r--npc/merchants/refine.txt160
1 files changed, 116 insertions, 44 deletions
diff --git a/npc/merchants/refine.txt b/npc/merchants/refine.txt
index 5d5bad9d3..70fe71181 100644
--- a/npc/merchants/refine.txt
+++ b/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;
-
}