summaryrefslogtreecommitdiff
path: root/npc/re/merchants/refine.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/re/merchants/refine.txt')
-rw-r--r--npc/re/merchants/refine.txt580
1 files changed, 0 insertions, 580 deletions
diff --git a/npc/re/merchants/refine.txt b/npc/re/merchants/refine.txt
deleted file mode 100644
index 1a8c893b0..000000000
--- a/npc/re/merchants/refine.txt
+++ /dev/null
@@ -1,580 +0,0 @@
-//================= Hercules Script =======================================
-//= _ _ _
-//= | | | | | |
-//= | |_| | ___ _ __ ___ _ _| | ___ ___
-//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
-//= | | | | __/ | | (__| |_| | | __/\__ \
-//= \_| |_/\___|_| \___|\__,_|_|\___||___/
-//================= License ===============================================
-//= This file is part of Hercules.
-//= http://herc.ws - http://github.com/HerculesWS/Hercules
-//=
-//= Copyright (C) 2012-2020 Hercules Dev Team
-//= Copyright (C) rAthena Dev Team
-//= Copyright (C) Euphy
-//=
-//= Hercules is free software: you can redistribute it and/or modify
-//= it under the terms of the GNU General Public License as published by
-//= the Free Software Foundation, either version 3 of the License, or
-//= (at your option) any later version.
-//=
-//= This program is distributed in the hope that it will be useful,
-//= but WITHOUT ANY WARRANTY; without even the implied warranty of
-//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-//= GNU General Public License for more details.
-//=
-//= You should have received a copy of the GNU General Public License
-//= along with this program. If not, see <http://www.gnu.org/licenses/>.
-//=========================================================================
-//= Renewal Refining NPCs
-//================= Description ===========================================
-//= Renewal-specific refining NPCs and material merchants.
-//================= Current Version =======================================
-//= 1.3
-//=========================================================================
-
-//== +11 and above Refiners ================================
-prt_in,90,72,5 script Vestri#prt 4_M_DWARF,{
- callfunc "refinenew","Vestri",0;
- end;
-}
-morocc_in,64,41,5 script Vestri#moc 4_M_DWARF,{
- callfunc "refinenew","Vestri",0;
- end;
-}
-payon_in01,18,132,3 script Vestri#pay 4_M_DWARF,{
- callfunc "refinenew","Vestri",0;
- end;
-}
-
-//== +11 and above Refiner Function ========================
-// To allow auto safe refining/multiple refining set the second argument to '1'
-// in the function call.
-// If you enable this function, be sure to edit the value of .@safe to the max
-// safe refine in refine_db.txt as well.
-//
-// On official servers, if an item is unsuccessfully refined it will break at a
-// 20% rate and downgrade at an 80% rate.
-function script refinenew {
- mesf("[%s]", getarg(0));
- mes("I'm a blacksmith skilled in refining weapons and armors.");
- mes("I can refine an item of your choice among the items you are equipped with.");
- mes("Which item do you want to refine?");
-
- if (getbattleflag("features/replace_refine_npcs") == 1) {
- if (openrefineryui())
- close();
- }
- next();
-
- disable_items;
- mes "["+ getarg(0) +"]";
- mes "I am the best Armsmith ever!";
- mes "I don't refine normal, boring items.";
- mes "I only refine items that are Level 10 or higher.";
- next;
- mes "["+ getarg(0) +"]";
- mes "Anyway, you may use my services if your item is Level 10 or higher.";
- mes "What do 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";
- .@menu$ = "";
- for(.@i = 1; .@i<=10; ++.@i) {
- if (getequipisequiped(.@i)) {
- .@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
- .@equipped = 1;
- }
- .@menu$ += ":";
- }
- if (.@equipped == 0) {
- mes "[" + getarg(0) + "]";
- mes "I don't think I can refine any items you have...";
- close;
- }
- .@part = select(.@menu$);
-
- if (!getequipisequiped(.@part)) { //custom check
- mes "[" + getarg(0) + "]";
- mes "You're not wearing";
- mes "anything there that";
- mes "I can refine.";
- emotion e_an;
- close;
- }
- if (!getequipisenableref(.@part)) {
- mes "[" + getarg(0) + "]";
- mes "I don't think I can";
- mes "refine this item at all...";
- close;
- }
- if (getequiprefinerycnt(.@part) < 10) {
- mes "["+ getarg(0) +"]";
- mes "I said I don't work with items that are lower than Level 10.";
- close;
- }
- if (getequiprefinerycnt(.@part) >= 20) { //custom check
- mes "["+ getarg(0) +"]";
- mes "I can't refine this";
- mes "any more. This is as";
- mes "refined as it gets!";
- close;
- }
- .@refineitemid = getequipid(.@part); // save id of the item
- .@refinerycnt = getequiprefinerycnt(.@part); //save refinery count
- if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
- .@type$ = "weapon";
- .@material = 6224; //Bradium
- .@price = 100000;
- switch(getequipweaponlv(.@part)) {
- case 1: .@safe = 10; break;
- case 2: .@safe = 10; break;
- case 3: .@safe = 10; break;
- case 4: .@safe = 10; break;
- }
- mes "["+ getarg(0) +"]";
- mes "Hmm a weapon, is that ok?";
- mes "If you want to refine this weapon,";
- mes "I will need 1 ^003366Bradium^000000 and 100,000 zeny.";
- } else {
- .@type$ = "armor";
- .@material = 6223; //Carnium
- .@price = 100000;
- .@safe = 10;
- mes "["+ getarg(0) +"]";
- mes "Hmm an armor, is that ok?";
- mes "If you want to refine this armor,";
- mes "I will need 1 ^003366Carnium^000000 and 100,000 zeny.";
- }
- mes "Are you sure you want to continue?";
- next;
- if(select("Yes", "No") == 2){
- mes "["+ getarg(0) +"]";
- mes "Hm... if you mind... never mind...";
- close;
- }
- if (getarg(1) != 1) {
- if (getequippercentrefinery(.@part) < 100) {
- mes "["+ getarg(0) +"]";
- mes "This "+.@type$+" already has been refined serveral times.";
- mes "It could be destroyed if I try again.";
- mes "It won't break for sure, but there is has a small chance.";
- next;
- mes "["+ getarg(0) +"]";
- mes "You could be ^FF0000lowering the upgrade level^000000 of the "+.@type$+",";
- mes "or if it breaks, you will lose ^FF0000any cards^000000 or special properties added to it.";
- next;
- mes "["+ getarg(0) +"]";
- mes "Do you still want me to refine it?";
- mes "I think I have given you enough warning.";
- next;
- if(select("Yes.", "No.") == 2) {
- mes "["+ getarg(0) +"]";
- mes "Well, no challenge is one way to go...";
- mes "No risk... that could be wise.";
- close;
- }
- }
- if (countitem(.@material) < 1 || Zeny < .@price) {
- mes "["+ getarg(0) +"]";
- mes "Hm. You don't seem to have enough money or "+getitemname(.@material)+".";
- mes "Please come back when you have them.";
- close;
- }
- Zeny -= .@price;
- delitem .@material,1;
-
- //custom checks
- 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
- mes "[" + getarg(0) + "]";
- emotion e_an;
- mes "Wait a second...";
- mes "Do you think I'm stupid?!";
- mes "You switched the item while I wasn't looking! Get out of here!";
- close;
- }
-
- if (getequippercentrefinery(.@part) > rand(100)) {
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- next;
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Armsmith.";
- close;
- } else {
- if (rand(100) < 80) {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang! Clang!";
- downrefitem .@part, 3; // Failed refine attempts decrease the item's refine level by 3
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Ahhh!!!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my god!";
- mes "The upgrade level has dropped...";
- } else {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- }
- mes "I could have made a mistake even though I am the best Armsmith ever.";
- mes "It just wasn't meant to be.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
- }
- }
-//- New +11 and above Refining Functions -
- if (getequiprefinerycnt(.@part) < .@safe) {
- mes "[" + getarg(0) + "]";
- mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
- next;
- .@menu2 = select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
- } else
- .@menu2 = 2;
- switch(.@menu2){
- case 1:
- .@refinecnt = .@safe - getequiprefinerycnt(.@part);
- break;
- case 2:
- mes "[" + getarg(0) + "]";
- mes "How many times would you like me to refine your item?";
- next;
- input(.@refinecnt);
- .@refinecheck = .@refinecnt + getequiprefinerycnt(.@part);
- if (.@refinecnt < 1 || .@refinecheck > 20) {
- mes "[" + getarg(0) + "]";
- mes "I can't refine this item that many times.";
- close;
- }
- if (.@refinecheck > .@safe) {
- .@refinecheck -= .@safe;
- mes "[" + getarg(0) + "]";
- mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
- next;
- if(select("Yes...","No...") == 2){
- mes "[" + getarg(0) + "]";
- mes "You said so... So be it.";
- close;
- }
- }
- break;
- case 3:
- mes "[" + getarg(0) + "]";
- mes "You said so... So be it.";
- close;
- }
- .@fullprice = .@price * .@refinecnt;
- mes "[" + getarg(0) + "]";
- mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
- next;
- if(select("Yes", "No...") == 2){
- mes "[" + getarg(0) + "]";
- mes "You said so... So be it.";
- close;
- }
- if (countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
- mes "[" + getarg(0) + "]";
- mes "Hm. You don't seem to have enough money or "+getitemname(.@material)+".";
- mes "Please come back when you have them.";
- close;
- }
- 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 (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
- mes "[" + getarg(0) + "]";
- mes "Clang... No, but did you imagine I could be so stupid?!";
- mes "You changed it...";
- mes "Get out before I stun you with my Hammer!!";
- close;
- }
- if (getequippercentrefinery(.@part) > rand(100)) {
- mes "Clang! Clang! Clang! Clang!";
- successrefitem .@part;
- --.@refinecnt;
- next;
- } else {
- if (rand(100) < 80) {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang! Clang!";
- downrefitem .@part, 3; // Failed refine attempts decrease the item's refine level by 3
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Ahhh!!!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my god!";
- mes "The upgrade level has dropped...";
- } else {
- mes "["+ getarg(0) +"]";
- mes "Clang! Clang! Clang!";
- failedrefitem .@part;
- next;
- emotion (!rand(5))?e_cash:e_omg;
- mes "["+ getarg(0) +"]";
- mes "Hmmm!";
- next;
- mes "["+ getarg(0) +"]";
- mes "Oh my! I've failed to refine stuff...";
- mes "I didn't mean it!";
- }
- mes "I could have made a mistake even though I am the best Armsmith ever.";
- mes "It just wasn't meant to be.";
- next;
- mes "["+ getarg(0) +"]";
- mes "I will do a better job next time! Don't worry!";
- close;
- }
- }
- emotion e_no1;
- mes "["+ getarg(0) +"]";
- mes "Good! Succes!!!";
- mes "I am the best Blacksmith.";
- close;
-}
-
-//== Ori/Elu to Carnium/Bradium Refiners ===================
-- script Austri#ref FAKE_NPC,{
- if (checkweight(Knife,1) == 0) {
- mes "- Wait a minute !! -";
- mes "- Currently you're carrying -";
- mes "- too many items with you. -";
- mes "- Please try again -";
- mes "- after you lose some weight. -";
- close;
- }
- mes "[Austri]";
- mes "If you bring me 3";
- mes "Oridecon or Elunium";
- mes "I can exchange them for";
- mes "Bradium or Carnium.";
- mes "Just give me 50,000z.";
- next;
- switch(select("Oridecon to Bradium.", "Elunium to Carnium.", "Purified Bradium to Carnium.", "No thanks.")) {
- case 1:
- setarray .@i[0],984,3,6224; //Oridecon -> Bradium
- break;
- case 2:
- setarray .@i[0],985,3,6223; //Elunium -> Carnium
- break;
- case 3:
- setarray .@i[0],6090,1,6223; //Purified_Bradium -> Carnium
- break;
- case 4:
- mes "[Austri]";
- mes "Hmm...";
- close;
- }
- if (countitem(.@i[0]) >= .@i[1] && Zeny >= 50000) {
- delitem .@i[0],.@i[1];
- Zeny -= 50000;
- getitem .@i[2],1;
- mes "[Austri]";
- if (.@i[0] == 6090) {
- mes "Refining with Refined Bradium";
- mes "can be a little expensive.";
- mes "I can exchange it for some Carnium.";
- } else
- mes "Ok! Here's your "+getitemname(.@i[2])+".";
- mes "Take it and use it well.";
- close;
- }
- mes "[Austri]";
- mes "You better not be trying";
- mes "to cheat me because you";
- mes "don't have enough money";
- mes "or "+getitemname(.@i[0])+".";
- close;
-}
-prt_in,85,71,5 duplicate(Austri#ref) Austri#prt 4_M_DWARF
-payon_in01,14,125,5 duplicate(Austri#ref) Austri#pay 4_M_DWARF
-morocc_in,60,38,5 duplicate(Austri#ref) Austri#moc 4_M_DWARF
-
-//== Malangdo Refiner ======================================
-malangdo,224,172,6 script Clink#mal_normal 4_CAT_SAILOR1,{
- disable_items;
- mes "[Clink]";
- mes "My cool dad Holink said I have the world's greatest refine hammer!!";
- mes "Meow Meow~";
- mes "Who do you think I am?";
- mes "Yes!!! You!! You want to refine?";
- next;
- setarray .@position$[1],"Head","Body","Left Hand","Right Hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
- .@menu$ = "";
- for(.@i = 1; .@i<=10; ++.@i)
- .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":";
- .@part = select(.@menu$);
- if (!getequipisequiped(.@part)) {
- mes "[Clink]";
- switch(.@part) {
- case 1:
- mes "Dad said. There's no cure for stupidity...";
- break;
- case 2:
- mes "There's nothing to see here!!";
- break;
- case 3:
- mes "What an arrogant left hand this is!";
- break;
- case 4:
- mes "What an arrogant right hand this is!";
- break;
- case 5:
- mes "Get that dirty thing off my face!!";
- break;
- case 6:
- mes "Kyaong~! Do not provoke me.";
- break;
- case 7:
- case 8:
- mes "Where is the accessory?";
- break;
- case 9:
- case 10:
- mes "Are you talking about the other head part?";
- break;
- }
- close;
- }
- if (!getequipisenableref(.@part)) {
- mes "[Clink]";
- mes "This can't be refined!!";
- close;
- }
- if (getequiprefinerycnt(.@part) >= 10) {
- mes "[Clink]";
- mes "Perfect refining. Did I do this for you?";
- close;
- }
- mes "[Clink]";
- switch(getequipweaponlv(.@part)) {
- default:
- case 0: // Armor
- .@price = 2000;
- .@material = 985; //Elunium
- .@type$ = "armor";
- mes "Hmm, an armor refine? Someone like you?";
- break;
- case 1: // Level 1 Weapon
- .@price = 50;
- .@material = 1010; //Phracon
- .@type$ = "weapon";
- mes "A level 1 weapon?";
- mes "Urr... Annoying... Okay, let's try...";
- break;
- case 2: // Level 2 Weapon
- .@price = 200;
- .@material = 1011; //Emveretarcon
- .@type$ = "weapon";
- mes "A level 2 weapon?";
- break;
- case 3: // Level 3 Weapon
- .@price = 20000;
- .@material = 984; //Oridecon
- .@type$ = "weapon";
- mes "Woot!! A level 3 weapon? Impressive~";
- break;
- case 4: // Level 4 Weapon
- .@price = 50000;
- .@material = 984; //Oridecon
- .@type$ = "weapon";
- mes "Wow!... A level 4 weapon~!!";
- break;
- }
- mes "You need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny. Do you have them?";
- next;
- if(select("Yes, I do!!", "Forget about it!!") == 2) {
- mes "[Clink]";
- mes "I knew it!!";
- mes "I knew you were not worth trying my magical refining hammer for.";
- close;
- }
- if (getequippercentrefinery(.@part) < 100) {
- mes "[Clink]";
- mes "Wow!!";
- mes "This "+.@type$+" has been refined quite a bit, huh?";
- mes "You do know that this might break, right?";
- next;
- mes "[Clink]";
- mes "If you break the "+.@type$+", you can never use it again.";
- mes "Cards and enchant effects...";
- mes "the ^ff0000whole thing will disappear^000000.";
- mes "You still up for this~?";
- next;
- if(select("Yes, I am!!", "Forget about it!!") == 2) {
- mes "[Clink]";
- mes "I knew it!!";
- mes "You can't even take this big step. Don't think about refining...";
- close;
- }
- }
- if (countitem(.@material) == 0 || Zeny < .@price) {
- mes "[Clink]";
- mes "Hey you!! Didn't I tell you";
- mes "that you need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny??!!";
- close;
- }
- delitem .@material,1;
- Zeny -= .@price;
- if (getequippercentrefinery(.@part) <= rand(100)) {
- failedrefitem .@part;
- mes "[Clink]";
- mes "Cry Hammer!! Cry!!!";
- next;
- switch(rand(1,5)) {
- case 1: emotion e_sob; break;
- case 2: emotion e_swt2; break;
- case 3: emotion e_wah; break;
- case 4: emotion e_hmm; break;
- case 5: emotion e_lv2; break;
- }
- mes "[Clink]";
- mes "Huh?! I failed?!";
- next;
- mes "[Clink]";
- mes "Arrgg~ It's all~ Broken...? What a pity~";
- next;
- mes "[Clink]";
- mes "Hey...!! Get me another one.";
- mes "This is not possible.";
- mes "How can my hammer fail from refining?";
- close;
- }
- successrefitem .@part;
- mes "[Clink]";
- mes "Cry Hammer!! Cry!!!";
- next;
- emotion e_kis;
- mes "[Clink]";
- mes "Ok!! Perfect!!";
- mes "There's nothing I can't refine";
- mes "with this special hammer.";
- mes "You can praise me!!";
- mes "What a day!!";
- close;
-}