maintown,180,45,3 script Hollengrhen 85,{
callfunc "refinemain","Hollengrhen",1;
end;
}
//============================================================
//= Main Refiner Function
//============================================================
//= To allow auto safe refining/multiple refining set the
//= second argument to '1' in the function call.
//============================================================
function script refinemain {
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";
mes "know what you want me to refine.";
next;
setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
set .@menu$,"";
for( set .@i,1; .@i <= 10; set .@i,.@i+1 )
{
if( getequipisequiped(.@i) )
set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
set .@menu$, .@menu$ + ":";
}
if (!M_quickref)
set .@menu$, .@menu$ + "^0000FFTurn ^009933ON^0000FF Quick Refining^000000";
else
set .@menu$, .@menu$ + "^0000FFTurn ^FF0000OFF^0000FF Quick Refining^000000";
set .@part,select(.@menu$);
if (.@part == .@i ) {
mes "[" + getarg(0) + "]";
if (!M_quickref) {
mes "The ^0000FFQuick Refine^000000 Function has been Turned ^009933ON^000000";
set M_quickref, 1;
}
else {
mes "The ^0000FFQuick Refine^000000 Function has been Turned ^FF0000OFF^000000";
set M_quickref, 0;
}
close;
}
if(!getequipisequiped(.@part)) {
mes "[" + getarg(0) + "]";
mes "You're not wearing";
mes "anything there that";
mes "I can refine.";
emotion 6;
close;
}
//Check if the item is refinable...
if(!getequipisenableref(.@part)) {
mes "[" + getarg(0) + "]";
mes "I don't think I can";
mes "refine this item at all...";
close;
}
//Check if the item is identified... (Don't know why this is in here... but kept it anyway)
if(!getequipisidentify(.@part)) {
mes "[" + getarg(0) + "]";
mes "You can't refine this";
mes "if you haven't appraised";
mes "it first. Make sure your";
mes "stuff is identified before";
mes "I can refine it.";
close;
}
//Check to see if the items is already +10
if(getequiprefinerycnt(.@part) >= 10) {
mes "[" + getarg(0) + "]";
mes "I can't refine this";
mes "any more. This is as";
mes "refined as it gets!";
close;
}
set .@refineitemid, getequipid(.@part); // save id of the item
set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
switch(getequipweaponlv(.@part)){
// ----------- Refine Prices, Materials and Safe Refines ---------- //
case 0: //Refine Armor
set .@price,2000;
set .@material,985;
set .@safe,4;
break;
case 1: //Refine Level 1 Weapon
set .@price,50;
set .@material,1010;
set .@safe,7;
break;
case 2: //Refine Level 2 Weapon
set .@price,200;
set .@material,1011;
set .@safe,6;
break;
case 3: //Refine Level 3 Weapon
set .@price,5000;
set .@material,984;
set .@safe,5;
break;
case 4: //Refine Level 4 Weapon
set .@price,20000;
set .@material,984;
set .@safe,4;
break;
case 5: //Refine other stuff?
set .@price,2000;
set .@material,985;
set .@safe,4;
break;
// ----------------------------------------------------------------- //
}
if(.@features != 1) {
mes "[" + getarg(0) + "]";
mes "To refine this I need";
mes "one ^003366"+getitemname(.@material)+"^000000 and";
mes "a service fee of " + .@price + " Zeny.";
mes "Do you really wish to continue?";
next;
if(select("Yes:No") == 2){
mes "[" + getarg(0) + "]";
mes "Yeah...";
mes "There's no need to";
mes "rush. Take your time.";
close;
}
if(getequippercentrefinery(.@part) < 100) {
mes "[" + getarg(0) + "]";
mes "Oh no! If I continue to";
mes "refine this, there's a risk it could";
switch(.@material) {
case 985:
mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000.";
break;
default:
mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,";
mes "or any added special properties.";
break;
}
next;
mes "["+getarg(0)+"]";
mes "I can't make it any clearer.";
mes "Once a weapon is destroyed,";
mes "there's no getting it back.";
mes "You really have a chance to";
mes "^FF0000lose this weapon^000000 forever.";
mes "Do you still want to refine?";
next;
if(select("Yes:No") == 2){
mes "[" + getarg(0) + "]";
mes "I completely agree...";
mes "I might be a great refiner, but sometimes even I make mistakes.";
close;
}
}
if((countitem(.@material) < 1) || (Zeny < .@price)) {
mes "[" + getarg(0) + "]";
mes "You don't seem to have";
mes "enough Zeny or "+getitemname(.@material)+"...";
mes "Go get some more. I'll be";
mes "here all day if you need me.";
close;
}
set Zeny,Zeny-.@price;
delitem .@material,1;
if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
mes "[" + getarg(0) + "]";
mes "Look here... you don't have any Items on...";
close;
}
if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
next;
mes "[" + getarg(0) + "]";
mes "You changed your equipment!";
mes "You filthy scum!!!";
next;
atcommand "@nuke "+strcharinfo(0);
end;
}
if(getequippercentrefinery(.@part) <= rand(100)) {
failedrefitem .@part;
mes "[" + getarg(0) + "]";
set .@emo,rand(1,5);
if (.@emo == 1) {
emotion e_cash;
} else {
emotion e_swt;
}
set .@lose,rand(1,3);
if (.@lose == 1) {
mes "OH! MY GOD!";
mes "Damn it! Not again!";
mes "I'm terribly sorry, but you know practice does make perfect.";
mes "Um, right? Heh heh...";
} else if(.@lose == 2) {
mes "Nooooooo!";
mes "It broke!";
mes "I-I'm sorry!";
} else {
mes "Crap!";
mes "It couldn't take";
mes "much more tempering!";
mes "Sorry about this...";
}
close;
}
mes "["+getarg(0)+"]";
successrefitem .@part;
emotion e_heh;
set .@win,rand(1,3);
if (.@win == 1) {
mes "Perfect!";
mes "Heh heh!";
mes "Once again,";
mes "flawless work";
mes "from the master~";
} else if(.@win == 2) {
mes "Success...!";
mes "Yet again, my amazing";
mes "talent truly dazzles";
mes "and shines today.";
} else {
mes "Heh heh!";
mes "I'm all done.";
mes "No doubt, my work is";
mes "to your satisfaction.";
mes "Sheer, utter perfection~";
}
close;
}
// New Refining Functions ========================
if(getequiprefinerycnt(.@part) < .@safe) {
mes "[" + getarg(0) + "]";
mes "Alright, would you like to refine to safe limit, or pick a number of refines?";
next;
set .@menu2,select("Safe Limit:Choose Number:Nevermind");
}
else set .@menu2, 2;
switch(.@menu2){
case 1:
mes "["+strnpcinfo(1)+"]";
mes "Alright, I can do that for ALL ^0000FF"+getequipname(.@part)+"^000000 you have in your inventory, or just the one currently equipped.";
next;
if (select ("Currently Equipped:All Items in Inventory") == 2) set .@allinv, 1;
set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
break;
case 2:
next;
mes "[" + getarg(0) + "]";
mes "So how many times would you like me to refine your item?";
next;
input .@refinecnt;
set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
if (.@refinecnt < 1 || .@refinecheck > 10) {
mes "[" + getarg(0) + "]";
mes "I can't refine this item that many times.";
close;
}
mes "["+strnpcinfo(1)+"]";
mes "Alright, I can do it for only your currently equipped item, or ALL ^0000FF"+getequipname(.@part)+"^000000 you have in your inventory. What would you like to do?";
next;
if (select ("Currently Equipped:All Items in Inventory") == 2) set .@allinv, 1;
if (.@allinv)
set .@refinecnt, getequiprefinerycnt(.@part) + .@refinecnt;
if ( (!.@allinv) && (.@refinecheck < .@safe) )
break;
mes "[" + getarg(0) + "]";
if ( !.@allinv)
mes "This will try to refine the equipment " + (.@refinecheck - .@safe) + " times past the safe limit. Your equipment may be destroyed... is that ok?";
else
mes "Remember this will attempt to refine to ^009933+"+.@refinecnt+"^000000 ^FF0000ALL^000000 the ^0000FF"+getequipname(.@part)+"^000000 items you have in your inventory!!";
next;
if(select("Accept","Reject") == 2){
mes "[" + getarg(0) + "]";
mes "Smart kid....";
close;
}
break;
case 3:
next;
mes "[" + getarg(0) + "]";
mes "You said so..Hmm so be it...";
close;
}
if (.@allinv) {
deletearray @inventorylist_refine;
deletearray @inventorylist_id;
getinventorylist;
set .@i, 0;
for (set .@j, 0; .@j < @inventorylist_count; set .@j, .@j + 1) {
if ( @inventorylist_id[.@j] == getequipid(.@part) ) {
set .@temp[.@i], @inventorylist_refine[.@j];
set .@i, .@i + 1;
}
}
deletearray @inventorylist_refine;
deletearray @inventorylist_id;
}
set .@fullprice, 0;
if ( !.@allinv )
set .@fullprice,.@price * .@refinecnt;
else {
set .@j, 0;
for ( set .@k, 0; .@k < .@i ; set .@k, .@k + 1) {
if ( .@temp[.@k] < .@refinecnt ) {
set .@fullprice, .@fullprice + ( ( .@refinecnt - .@temp[.@k] ) * .@price );
set .@j, .@j + (.@refinecnt - .@temp[.@k]);
}
}
deletearray .@temp;
}
mes "[" + getarg(0) + "]";
if ( !.@allinv )
mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
else
mes "That will cost you " + .@j + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
next;
if(select("Yes","No...") == 2){
mes "[" + getarg(0) + "]";
mes "You said so..Hmm so be it...";
close;
}
if ( !.@allinv ) {
if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
mes "[" + getarg(0) + "]";
mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
close;
}
set Zeny,Zeny - .@fullprice;
delitem .@material,.@refinecnt;
while(.@refinecnt){
if (getequipisequiped(.@part) == 0) {
mes "[" + getarg(0) + "]";
mes "Look here... you don't have any Items on...";
close;
}
if (checkweight(.@refineitemid,1) == 0 ) {
next;
mes "[" + getarg(0) + "]";
mes "Hey you are overweight, try storing some items first.";
close;
}
if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
next;
mes "[" + getarg(0) + "]";
mes "You changed your equipment!";
mes "You filthy scum!!!";
next;
atcommand "@nuke "+strcharinfo(0);
end;
}
mes "Clang, clang!!!";
if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) {
failedrefitem .@part;
emotion 23;
mes "[" + getarg(0) + "]";
mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
set .@refinecnt,.@refinecnt - 1;
if(.@refinecnt == 0) close;
mes "Here's the unused Zeny and Material back...";
getitem .@material,.@refinecnt;
set .@fullprice,.@refinecnt * .@price;
set Zeny,Zeny + .@fullprice;
close;
}
successrefitem .@part;
emotion 21;
set .@refinecnt,.@refinecnt - 1;
next;
}
}
else {
if ( getbrokenid (.@refineitemid) ) {
mes "[" + getarg(0) + "]";
mes "Sorry but I can't work to refine an equipment if you have another of the same kind of item that's not repaired in your inventory.";
close;
}
if(countitem(.@material) < .@j || Zeny < .@fullprice) {
mes "[" + getarg(0) + "]";
mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
close;
}
set .@breakme, 0;
while(1){
for (set .@c, 0; .@c < .@re; set .@c, .@c + 1)
deletearray getd(".@equip_inf"+.@c);
if ( getequipisequiped(.@part) == 0 ) {
equip .@refineitemid;
set .@re, 0;
while ( getequiprefinerycnt(.@part) >= .@refinecnt ) {
for (set .@c, 0; .@c < 4; set .@c, .@c + 1)
if (getequipcardid(.@part,.@c) != 0)
setd ".@equip_inf"+.@re+"[.@c]", getequipcardid(.@part,.@c);
setd ".@equip_inf"+.@re+"[4]", getequiprefinerycnt(.@part);
unequip .@part;
delitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@re+"[4]"),0,getd(".@equip_inf"+.@re+"[0]"),
getd(".@equip_inf"+.@re+"[1]"),getd(".@equip_inf"+.@re+"[2]"),getd(".@equip_inf"+.@re+"[3]");
equip .@refineitemid;
set .@re, .@re + 1;
}
if (.@re) {
for (set .@c, 0; .@c < .@re; set .@c, .@c + 1) {
getitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@c+"[4]"),0,getd(".@equip_inf"+.@c+"[0]"),
getd(".@equip_inf"+.@c+"[1]"),getd(".@equip_inf"+.@c+"[2]"),getd(".@equip_inf"+.@c+"[3]");
}
}
for (set .@c, 0; .@c < .@re; set .@c, .@c + 1)
deletearray getd(".@equip_inf"+.@c);
}
if (checkweight(.@refineitemid,1) == 0 ) {
next;
mes "[" + getarg(0) + "]";
mes "Hey you are overweight, try storing some items first.";
close;
}
if ( (getequipid(.@part) != .@refineitemid) || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
next;
mes "[" + getarg(0) + "]";
mes "You changed your equipment!";
mes "You filthy scum!!!";
next;
atcommand "@nuke "+strcharinfo(0);
end;
}
if (getequiprefinerycnt(.@part) >= 10) {
next;
mes "[" + getarg(0) + "]";
mes "You changed your equipment!";
mes "You filthy scum!!!";
next;
atcommand "@nuke "+strcharinfo(0);
end;
}
if (!M_quickref) {
set .@rand, rand(1,4);
if (.@rand == 1)
mes "cLanG, clang ClAng!";
else if (.@rand == 2)
mes "ClaNg ClAng claNg!";
else if (.@rand == 3)
mes "clANg Clang CLanG!";
else if (.@rand == 4)
mes "CLang cLanG cLANg!";
}
else if (!.@breakme) {
mes "ClAng ClanG ClanG Clangg CLAgn Cnaglnac CLnacnlnagCALNGa ClangaglnaCLAnagacalNCagaCLNAangalncalclanCLANGlancLANgacln!!!";
mes "^FF0000(Please do not Log-Off while in this process)^000000";
set .@breakme, 1;
}
set Zeny, Zeny - .@price;
delitem .@material, 1;
if(getequippercentrefinery(.@part) <= rand(100)) {
set .@breakgap, .@refinecnt - getequiprefinerycnt(.@part) ;
set .@j, .@j - .@breakgap ;
failedrefitem .@part;
if(.@j <= 0) close;
}
else {
successrefitem .@part;
set .@j, .@j - 1;
if(.@j <= 0) close;
set .@re, 0;
while ( getequiprefinerycnt(.@part) >= .@refinecnt ) {
for (set .@c, 0; .@c < 4; set .@c, .@c + 1)
if (getequipcardid(.@part,.@c) != 0)
setd ".@equip_inf"+.@re+"[.@c]", getequipcardid(.@part,.@c);
setd ".@equip_inf"+.@re+"[4]", getequiprefinerycnt(.@part);
unequip .@part;
delitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@re+"[4]"),0,getd(".@equip_inf"+.@re+"[0]"),
getd(".@equip_inf"+.@re+"[1]"),getd(".@equip_inf"+.@re+"[2]"),getd(".@equip_inf"+.@re+"[3]");
equip .@refineitemid;
set .@re, .@re + 1;
}
if (.@re) {
for (set .@c, 0; .@c < .@re; set .@c, .@c + 1) {
getitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@c+"[4]"),0,getd(".@equip_inf"+.@c+"[0]"),
getd(".@equip_inf"+.@c+"[1]"),getd(".@equip_inf"+.@c+"[2]"),getd(".@equip_inf"+.@c+"[3]");
}
}
}
if (!M_quickref)
next;
else {
set .@clang, .@clang + 1;
sleep2 300;
}
}
}
mes "[" + getarg(0) + "]";
mes "All finished... Come again soon.";
close;
}
//==============================================================================
// Material Salesmen
//==============================================================================
prt_in,56,69,4 script Vurewell 86,{
callfunc "phramain","Vurewell";
end;
}
payon,145,178,4 script Begnahd 88,{
callfunc "phramain","Begnahd";
end;
}
morocc_in,65,37,4 script Sade 99,{
callfunc "phramain","Sade";
end;
}
alberta_in,18,59,5 script Kahlamanlith 86,{
callfunc "phramain","Kahlamanlith";
end;
}
yuno_in01,171,26,6 script Dillemat 88,{
callfunc "phramain","Dillemat";
end;
}
ein_in01,15,87,7 script Tirehaus 86,{
callfunc "phramain","Tirehaus";
end;
}
lhz_in02,278,24,3 script Krugg 86,{
callfunc "phramain","Krugg";
end;
}
//============================================================
//= Material Salesmen Functions
//============================================================
function script phramain {
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 "[" + getarg(0) + "]";
mes "I have ^777777Phracons^000000 and ^777777Emveretarcons^000000 for sale.";
mes "I can also trade some more unique materials such as ^0000FFBradiums^000000 and ^0000FFKaluniums^000000";
next;
switch(select("Phracon - 200 Zeny:Emveretarcon - 1000 Zeny:Trade Elunium->Kalunium:Trade Oridecon->Bradium:Trade Refined Bradium->Bradium:Trade Tiny Bradium->Bradium:Trade Bradium->Oridecon:Trade Kalunium->Elunium:Ask about other Metals")) {
case 1:
set .@material,1010;
set .@price,200;
set .@buying, 1;
break;
case 2:
set .@material,1011;
set .@price,1000;
set .@buying, 1;
break;
case 3: // Elunium -> Kalunium
set .@amount1, 3; // Material 1 Quantity Cost
set .@material1, 985; // Material 1 ID
set .@price, 50000; // Trade Cost
set .@material2, 6223; // Material 2 ID
set .@amount2, 1; // Material 2 Quantity Received
set .@buying, 0; // Leave this alone
break;
case 4: // Oridecon -> Bradium
set .@amount1, 3; // Material 1 Quantity Cost
set .@material1, 984; // Material 1 ID
set .@price, 80000; // Trade Cost
set .@material2, 6224; // Material 2 ID
set .@amount2, 1; // Material 2 Quantity Received
set .@buying, 0; // Leave this alone
break;
case 5: // Refined Bradium -> Bradium
set .@amount1, 1; // Material 1 Quantity Cost
set .@material1, 6090; // Material 1 ID
set .@price, 60000; // Trade Cost
set .@material2, 6224; // Material 2 ID
set .@amount2, 2; // Material 2 Quantity Received
set .@buying, 0; // Leave this alone
break;
case 6: // Tiny Bradium -> Bradium
set .@amount1, 10; // Material 1 Quantity Cost
set .@material1, 6319; // Material 1 ID
set .@price, 40000; // Trade Cost
set .@material2, 6224; // Material 2 ID
set .@amount2, 1; // Material 2 Quantity Received
set .@buying, 0; // Leave this alone
break;
case 7: // Bradium -> Oridecon
set .@amount1, 1; // Material 1 Quantity Cost
set .@material1, 6224; // Material 1 ID
set .@price, 20000; // Trade Cost
set .@material2, 984; // Material 2 ID
set .@amount2, 3; // Material 2 Quantity Received
set .@buying, 0; // Leave this alone
break;
case 8: // Kalunium -> Elunium
set .@amount1, 1; // Material 1 Quantity Cost
set .@material1, 6223; // Material 1 ID
set .@price, 30000; // Trade Cost
set .@material2, 985; // Material 2 ID
set .@amount2, 3; // Material 2 Quantity Received
set .@buying, 0; // Leave this alone
break;
default:
mes "[" + getarg(0) + "]";
mes "Other metals?";
mes "Have you heard about the ^009900Unique Power Stones^000000? They are pretty damn powerfull.";
mes "I heard if you get some of them together, you can have an outstanding magical power.";
mes "Other than that, I can't think of any other metal, except ^FF0000High Density Bradiums, Kaluniums, Oridecons ^000000and ^FF0000Eluniums^000000.";
mes "But I have no idea where to get those.";
close;
}
if (.@buying) {
mes "[" + getarg(0) + "]";
mes "So how many do you wish to buy?";
mes "If you don't want any, please enter the number, '0.'";
next;
while(1) {
input .@input;
if (.@input == 0) {
mes "[" + getarg(0) + "]";
mes "The deal has";
mes "been cancelled.";
close;
}
else if (.@input < 0 || .@input > 500) {
mes "[" + getarg(0) + "]";
mes "Alright, you can";
mes "puchase up to 500.";
mes "No more than that,";
mes "got it? Good.";
next;
}
else {
break;
}
}
set .@sell,.@input * .@price;
if (Zeny < .@sell) {
mes "[" + getarg(0) + "]";
mes "Err...";
mes "You don't have";
mes "enough Zeny to buy";
mes ""+ .@input +" of them.";
close;
}
if (checkweight(.@material,.@input) == 0) {
mes "[" + getarg(0) + "]";
mes "Hmm...";
mes "I can't give you anything if you don't have enough room in your inventory. Why don't you put your extra things in Kafra Storage and try again?";
close;
}
set Zeny,Zeny-.@sell;
getitem .@material,.@input;
mes "[" + getarg(0) + "]";
mes "Here you are!";
mes "Thank you for";
mes "your patronage.";
close;
}
else {
mes "[" + getarg(0) + "]";
mes "It will cost you "+.@amount1+" ^0000FF"+getitemname(.@material1)+"^000000 and ^009933"+.@price+" Zeny^000000 per trade. In exchange, you will get "+.@amount2+" ^FF0000"+getitemname(.@material2)+"^000000. How many times would you like to trade? Input '0' to cancel.";
next;
while(1) {
input .@input;
if (.@input == 0) {
mes "[" + getarg(0) + "]";
mes "The deal has";
mes "been cancelled.";
close;
}
else if (.@input < 0 || .@input > 500) {
mes "[" + getarg(0) + "]";
mes "Alright, you can";
mes "trade up to 500.";
mes "No more than that,";
mes "got it? Good.";
next;
}
else {
break;
}
}
set .@sell,.@input * .@price;
if (Zeny < .@sell) {
mes "[" + getarg(0) + "]";
mes "Err...";
mes "You don't have";
mes "enough Zeny to trade";
mes ""+ .@input +" of them.";
close;
}
if (checkweight(.@material2,.@input * .@amount2) == 0) {
mes "[" + getarg(0) + "]";
mes "Hmm...";
mes "I can't give you anything if you don't have enough room in your inventory. Why don't you put your extra things in Kafra Storage and try again?";
close;
}
set .@mat1_amount, .@input * .@amount1;
if (countitem(.@material1) < .@mat1_amount ) {
mes "[" + getarg(0) + "]";
mes "You don't have enough ^0000FF"+getitemname(.@material1)+"^000000. Come back when you do.";
close;
}
delitem .@material1, .@mat1_amount;
getitem .@material2, .@input * .@amount2;
set Zeny,Zeny-.@sell;
mes "[" + getarg(0) + "]";
mes "Here you are!";
mes "Thank you for";
mes "your patronage.";
close;
}
}
//==============================================================================
// Ori/Elu Refiners
//==============================================================================
prt_in,63,69,4 script Dietrich 84,{
callfunc "orimain","Dietrich";
end;
}
payon,137,178,4 script Hakhim 88,{
callfunc "orimain","Hakhim";
end;
}
morocc_in,72,32,4 script Abdul 99,{
callfunc "orimain","Abdul";
end;
}
alberta_in,21,63,5 script Xenophon 84,{
callfunc "orimain","Xenophon";
end;
}
yuno_in01,171,22,6 script Delayt 88,{
callfunc "orimain","Delayt";
end;
}
ein_in01,18,82,6 script Matestein 84,{
callfunc "orimain","Matestein";
end;
}
lhz_in02,281,24,5 script Fruel 84,{
callfunc "orimain","Fruel";
end;
}
//============================================================
//= Ori/Elu Functions
//============================================================
function script orimain {
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 "[" + getarg(0) + "]";
mes "I can purify your";
mes "Rough Oridecons or";
mes "Rough Eluniums. I'll need";
mes "5 Rough Stones to make";
mes "1 pure one for you.";
next;
switch(select("Make Oridecon:Make Elunium:Ask about Enchanted Stones")) {
case 1:
if (countitem(756) > 4) {
delitem 756,5; //Oridecon_Stone
getitem 984,1; // Oridecon
mes "[" + getarg(0) + "]";
mes "Here's your Oridecon.";
mes "You're welcome to come";
mes "back whenever you want.";
close;
}
else {
mes "[" + getarg(0) + "]";
mes "You're kidding me, right?";
mes "I just told you that I need 5 Rough Oridecons to make a pure Oridecon.";
close;
}
case 2:
if (countitem(757) > 4) {
delitem 757,5; //Elunium_Stone
getitem 985,1; // Elunium
mes "[" + getarg(0) + "]";
mes "Here's your Elunium.";
mes "You're welcome to come";
mes "back whenever you want.";
close;
}
else {
mes "[" + getarg(0) + "]";
mes "You're kidding me, right?";
mes "I just told you that I need 5 Rough Eluniums to make a pure Elunium.";
close;
}
case 3:
mes "[" + getarg(0) + "]";
mes "Enchanted Stones...?";
mes "I've been a stonesmith for 20 years, so I've heard a lot about them. Supposedly, there are";
mes "four different kinds.";
next;
mes "[" + getarg(0) + "]";
mes "Each Enchanted Stone possesses one of the following elemental properties: Earth, Wind, Water and Fire.";
next;
mes "[" + getarg(0) + "]";
mes "If someone combines a Enchanted Stone with a weapon while smithing, that weapon will possess the same property as the Stone.";
next;
mes "[" + getarg(0) + "]";
mes "Needless to say, you need to have some smithing skill to produce this kind of elemental weapon.";
close;
}
}
//=====================================================================================
// Equipment Repairmen
//=====================================================================================
alberta_in,31,65,4 script Repairman#alb 86,{
callfunc "repairmain","Repairman";
end;
}
moc_ruins,107,94,5 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;
}
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;
}
aldeba_in,38,60,3 script Repairman#alde 86,{
callfunc "repairmain","Repairman";
end;
}
lhz_in02,284,14,3 script Repairman#lhz 86,{
callfunc "repairmain","Repairman";
end;
}
//============================================================
//= Equipment Repair Function
//============================================================
function script repairmain {
set .@repairprice,5000;
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;
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;
}
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 " + .@repairprice + " 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;
}
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;
}
}