diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-10-05 11:34:32 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-06-14 19:57:44 +0300 |
commit | 38f812f73d80a9ebaf5523982fdeeabac11389dc (patch) | |
tree | af2461551869f60adaba8690abc1f36a4c41258d /npc/re/merchants | |
parent | d0fc43c20eb6f8bf6cb574fe05e1b0294a407d92 (diff) | |
download | hercules-38f812f73d80a9ebaf5523982fdeeabac11389dc.tar.gz hercules-38f812f73d80a9ebaf5523982fdeeabac11389dc.tar.bz2 hercules-38f812f73d80a9ebaf5523982fdeeabac11389dc.tar.xz hercules-38f812f73d80a9ebaf5523982fdeeabac11389dc.zip |
Remove conf dir.
Diffstat (limited to 'npc/re/merchants')
24 files changed, 0 insertions, 9492 deletions
diff --git a/npc/re/merchants/3rd_trader.txt b/npc/re/merchants/3rd_trader.txt deleted file mode 100644 index dcf66a19f..000000000 --- a/npc/re/merchants/3rd_trader.txt +++ /dev/null @@ -1,294 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Euphy -//= Copyright (C) Mercurial -//= Copyright (C) Masao -//= -//= 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/>. -//========================================================================= -//= 3rd Item Seller -//================= Description =========================================== -//= Sells some 3rd Job related items: -//= - Poison Herbs, Rune Stones, Rare Herbs, Points -//================= Current Version ======================================= -//= 1.6 -//========================================================================= - -//== Poison Herb Merchants (Guillotine Cross) ============== -- script ::phs FAKE_NPC,{ - if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) { - 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 "[Poison Herb Merchant]"; - mes "I am the professional"; - mes "Poison Herb merchant."; - mes "Each Herb costs 4,000 zeny."; - mes "What would you like?"; - next; - .@i = select("Nerium", "Rantana", "Makulata", "Seratum", "Scopolia", "Amoena", "Poison Kit", "Cancel")-1; - mes "[Poison Herb Merchant]"; - if (.@i < 6) { - .@item = 7932+.@i; - .@price = 4000; - .@max = 2000; - .@max$ = "2,000"; - } else if (.@i == 6) { - .@item = 7931; - .@price = 5000; - .@max = 500; - .@max$ = "500"; - mes "Each Poison Kit costs 5,000 zeny."; - } else { - mes "Well, I see. Come back again~!"; - close; - } - mes "How many do you want?"; - mes "You can only buy a maximum of '"+.@max+"' ea."; - mes "Enter '0' if you want to cancel."; - next; - input .@amount; - if (.@amount == 0) { - mes "[Poison Herb Merchant]"; - mes "You've cancelled the trade."; - close; - } - if (.@amount > .@max) { - mes "[Poison Herb Merchant]"; - mes "The number must be less than "+.@max$+"!"; - close; - } - .@total = .@amount * .@price; - if (Zeny < .@total) { - mes "[Poison Herb Merchant]"; - mes "You don't have enough money."; - mes "Check how much money you have first."; - close; - } - Zeny -= .@total; - getitem .@item, .@amount; - mes "[Poison Herb Merchant]"; - mes "Thank you. Come back again~!"; - close; -} -job3_guil01,79,96,3 duplicate(phs) Poison Herb Merchant 4_F_YUNYANG -morocc,193,100,4 duplicate(phs) Poison Herb Merchant#moc 4_F_YUNYANG -lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 4_F_YUNYANG - -//== Rune Stone Merchants (Rune Knight) ==================== -- script ::runesale FAKE_NPC,{ - if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) { - 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 "[Rune Merchant]"; - mes "Hey, do you need Runes?!"; - mes "I sell all sorts of Rune Stones!"; - mes "What would you like?"; - next; - .@i = select("Buy high-quality Rune Stones.", "Buy ordinary Rune Stones."); - mes "[Rune Merchant]"; - if (.@i == 1) { - mes "High-quality Runes!"; - mes "They cost 2,500 zeny each!"; - .@item = 12734; //Runstone_Quality - .@price = 2500; - } else { - mes "Ordinary Rune Stones?"; - mes "They cost 1,000 zeny each!"; - .@item = 12737; //Runstone_Ordinary - .@price = 1000; - setarray .@rune[0],12737,1000; - } - mes "Tell me how many you want,"; - mes "and remember, you can only"; - mes "buy a maximum of '2000' ea."; - next; - input .@amount; - if (.@amount == 0) { - mes "[Rune Merchant]"; - mes "You're not buying? Please leave!"; - close; - } - if (.@amount > 2000) { - mes "[Rune Merchant]"; - mes "The number must be less than 2,000!"; - close; - } - .@total = .@amount * .@price; - if (Zeny < .@total) { - mes "[Rune Merchant]"; - mes "Zeny! Zeny!"; - mes "You don't have enough money."; - mes "Check how much money you have first."; - close; - } - if (!checkweight(.@item,.@amount)) { - mes "[Rune Merchant]"; - mes "It doesn't seem like you are able to carry it all, why are you trying it?!"; - close; - } - Zeny -= .@total; - getitem .@item, .@amount; - mes "[Rune Merchant]"; - mes "Thank you."; - mes "Please come back again~!"; - close; -} -job3_rune01,90,62,3 duplicate(runesale) Rune Merchant#job3 4_M_YURI -prontera,168,228,3 duplicate(runesale) Rune Merchant#prt 4_M_YURI - -//== Rare Herb Merchants (Guillotine Cross) ================ -job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{ - if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) { - 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; - } - if (Class == Job_Guillotine_Cross || Class == Job_Guillotine_Cross_T || Class == Job_Baby_Cross) { - mes "[Rare Poison Herb Collector]"; - mes "I wander around the world and collect rare poison herbs. Recently, I started dealing in the herb called Izidor. If you are interested, you can buy them."; - next; - .@i = select("How can I buy them?", "Exchange it for Animal Blood", "Exchange it for a Bitter Herb", "Exchange it for a Deadly Noxious Herb", "Exchange it for a Frozen Rose", "Exchange it for Ment", "Exchange it for Hinalle")-2; - if (.@i == -1) { - mes "[Rare Poison Herb Collector]"; - mes "You can buy them for 10,000 zeny and one of these rare items, Animal Blood, Bitter Herb, Deadly Noxious Herb, Frozen Rose, Ment or an Hinalle."; - next; - mes "[Rare Poison Herb Collector]"; - mes "Why do I ask money? That's just to pay a little respect to a collector like me. Ha ha ha..."; - close; - } else { - setarray .@exchange[0],702,621,631,749,605,703; - .@item = .@exchange[.@i]; - .@price = 10000; - - mes "[Rare Poison Herb Collector]"; - mes "How many do you want?"; - mes "You can only buy a maximum of '2000' ea."; - mes "Enter '0' if you want to cancel."; - next; - input .@amount; - if (.@amount == 0) { - mes "[Rare Poison Herb Collector]"; - mes "You've cancelled the trade."; - close; - } - if (.@amount > 2000) { - mes "[Rare Poison Herb Collector]"; - mes "The number must be less than 2,000!"; - close; - } - .@total = .@amount * .@price; - if (countitem(.@item) < .@amount || Zeny < .@total) { - mes "[Rare Poison Herb Collector]"; - mes "Hey, come back when you have all the requirements for the exchange."; - close; - } - mes "[Rare Poison Herb Collector]"; - mes "Good. I've received the money and the special item."; - delitem .@item, .@amount; - Zeny -= .@total; - getitem Izidor, .@amount; - close; - } - } - mes "[Rare Poison Herb Collector]"; - mes "I wander around the world and collect rare poison herbs. But I don't feel like selling my herbs to a person like you... ha ha ha..."; - close; -} - -//== Point Merchants (Sorcerer) ============================ -- script ::pss FAKE_NPC,{ - if (checkweight(Knife,1) == 0 || MaxWeight - Weight < 2000) { - 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 "[Point Merchant]"; - mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?"; - next; - .@i = select("Scarlet Points - 200z", "Lime Green Points - 200z", "Indigo Points - 200z", "Yellow Wish Points - 200z", "Cancel")-1; - mes "[Point Merchant]"; - if (.@i == 4) { - mes "You can't find the stuff you need?"; - close; - } - setarray .@itemid[0],6360,6363,6361,6362; - setarray .@color$[0],"Scarlet","Lime Green","Indigo","Yellow Wish"; - mes "You have chosen "+.@color$[.@i]+" Points."; - mes "How many do you want?"; - mes "If you want to cancel, enter 0."; - next; - input .@amount; - mes "[Point Merchant]"; - if (.@amount == 0) { - mes "You've cancelled the trade."; - close; - } - if (Zeny < .@amount*200) { - mes "You don't seem to have enough money."; - close; - } - if (!checkweight(.@itemid[.@i],.@amount)) { - mes "You don't have enough space in your inventory to buy this amount."; - close; - } - Zeny -= (.@amount*200); - getitem .@itemid[.@i],.@amount; - mes "Thank you very much. See you~!"; - close; -} -gef_tower,105,172,5 duplicate(pss) Point Merchant#Sorcerer 8_F_GIRL -prt_in,131,66,0 duplicate(pss) Point Merchant#Prontera 8_F_GIRL -alberta,105,52,7 duplicate(pss) Point Merchant#Alberta 8_F_GIRL -aldebaran,133,114,5 duplicate(pss) Point Merchant#Aldebaran 8_F_GIRL -comodo,193,159,5 duplicate(pss) Point Merchant#Comodo 8_F_GIRL -geffen,129,49,5 duplicate(pss) Point Merchant#Geffen 8_F_GIRL -izlude,138,163,5 duplicate(pss) Point Merchant#Izlude 8_F_GIRL // Old coordinates: izlude (135,121) -izlude_a,138,163,5 duplicate(pss) Point Merchant#Izlude_a 8_F_GIRL -izlude_b,138,163,5 duplicate(pss) Point Merchant#Izlude_b 8_F_GIRL -izlude_c,138,163,5 duplicate(pss) Point Merchant#Izlude_c 8_F_GIRL -izlude_d,138,163,5 duplicate(pss) Point Merchant#Izlude_d 8_F_GIRL -malangdo,214,163,5 duplicate(pss) Point Merchant#Malangdo 8_F_GIRL -mora,115,118,3 duplicate(pss) Point Merchant#Mora 8_F_GIRL -ra_in01,256,273,3 duplicate(pss) Point Merchant#Rachel 8_F_GIRL -veins,202,128,5 duplicate(pss) Point Merchant#Veins 8_F_GIRL -dicastes01,207,200,5 duplicate(pss) Point Merchant#Dicastes 8_F_GIRL -manuk,261,206,3 duplicate(pss) Point Merchant#Manuk 8_F_GIRL -splendide,207,160,5 duplicate(pss) Point Merchant#Splendide 8_F_GIRL -mid_camp,224,237,3 duplicate(pss) Point Merchant#Midgard 8_F_GIRL diff --git a/npc/re/merchants/advanced_refiner.txt b/npc/re/merchants/advanced_refiner.txt deleted file mode 100644 index 5b3f69593..000000000 --- a/npc/re/merchants/advanced_refiner.txt +++ /dev/null @@ -1,218 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules 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/>. -//========================================================================= -//= Advanced Refiner -//================= Description =========================================== -//= Refiner that uses Enriched ores to increase upgrade success. -//================= Additional Comments =================================== -//= After a conversation with Doddler, it's been established that the -//= advanced refiner works similar the the "Bubble Gum" item. -//= The success percentage is not "increased" however, if it fails you get -//= a second try. This tries twice at the same time, effectively giving you -//= a re-roll on your attempt. -//================= Current Version ======================================= -//= 1.0 -//========================================================================= - -malangdo,221,174,6 script Holink#mal_cash 4_CAT_ADV1,{ - disable_items; - mes "[Holink]"; - mes "I am the meow~ Blacksmith Holink~"; - mes "Master of refining, Holink~"; - mes "I am the special cat Holink who learned from Morroc~"; - mes "My daughter is so proud of me, Holink~"; - mes "What should Holink~ refine today?"; - 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$ = .@menu$+((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"-[Empty]")+":"; - .@part = select(.@menu$); - if (!getequipisequiped(.@part)) { - mes "[Holink]"; - switch(.@part) { - case 1: - mes "My teacher Aragam said meow~"; - mes "There's no cure for stupidity..."; - break; - case 2: - mes "There's nothing to see here, meow!!"; - break; - case 3: - mes "Meow? What do you want me to do with this left hand...?"; - break; - case 4: - mes "Meow? What do you want me to do with this right hand...?"; - break; - case 5: - mes "Meow? You don't have anything on."; - break; - case 6: - mes "Kyang~! Do not mess with my sensitive olfactory, meow~."; - break; - case 7: - case 8: - mes "Meow? Where is the accessory?"; - break; - case 9: - case 10: - mes "Meow? You talking about the other head parts, meow?~"; - break; - } - close; - } - if (!getequipisenableref(.@part)) { - mes "[Holink]"; - mes "Even Aragam can't refine such a thing, meow."; - close; - } - if (getequiprefinerycnt(.@part) >= 10) { - mes "[Holink]"; - mes "Meow~ Perfect refining. Did Aragam do this, meow?~"; - close; - } - mes "[Holink]"; - switch(getequipweaponlv(.@part)) { - default: - case 0: // Armor - .@price = 15000; - .@material = 7619; //Enriched_Elunium - .@type$ = "armor"; - mes "You have chosen an armor, meow~"; - break; - case 1: // Level 1 Weapon - .@price = 500; - .@material = 7620; //Enriched_Oridecon - .@type$ = "weapon"; - mes "A level 1 weapon...?"; - break; - case 2: // Level 2 Weapon - .@price = 2000; - .@material = 7620; //Enriched_Oridecon - .@type$ = "weapon"; - mes "Meow, a level 2 weapon...?"; - break; - case 3: // Level 3 Weapon - .@price = 20000; - .@material = 7620; //Enriched_Oridecon - .@type$ = "weapon"; - mes "Meow Meow~~ A level 3 weapon~~"; - break; - case 4: // Level 4 Weapon - .@price = 50000; - .@material = 7620; //Enriched_Oridecon - .@type$ = "weapon"; - mes "Me-Meow!... A level 4 weapon...!"; - mes "I've only seen it twice while"; - mes "learning from Aragam... Me-Meow!!"; - break; - } - mes "You need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny for this refine, meow~"; - mes "Want to continue, meow?~"; - next; - if(select("Yes!!", "No!!") == 2) { - mes "[Holink]"; - mes "Kyack!!"; - mes "You don't belive in refine master Holink, meow?~"; - close; - } - if (getequippercentrefinery(.@part, REFINE_CHANCE_TYPE_ENRICHED) < 100) { - mes "[Holink]"; - mes "Meow!!"; - if (.@type$ == "armor") - mes "This armor was already refined so many times, meow."; - else { - mes "Danger. Danger~"; - mes "This weapon was refined a lot, meow~"; - next; - mes "[Holink]"; - } - mes "You might break it if you continue"; - mes "to try refining this item further, meow."; - next; - mes "[Holink]"; - mes "Once the "+.@type$+" is broken, you can"; - mes "never use it again, meow. Not to mention... all current"; - mes "^ff0000cards and enchantments will vanish for sure^000000."; - mes "You still want to try, meow~?"; - next; - if(select("Yes, I do!!", "Forget about it!!") == 2) { - mes "[Holink]"; - mes "Meow! Wise choice, meow."; - mes "But!!"; - mes "I am not happy to see you doubting the refine master Holink, meow~"; - close; - } - } - if (countitem(.@material) == 0 || Zeny < .@price) { - mes "[Holink]"; - mes "You don't have the ingredients."; - mes "You need ^ff9999"+getitemname(.@material)+"^000000 and ^ff9999"+.@price+"^000000 Zeny, meow~"; - mes "Go get it, meow~"; - close; - } - delitem .@material,1; - Zeny -= .@price; - if (getequippercentrefinery(.@part, REFINE_CHANCE_TYPE_ENRICHED) > rand(100)) { - successrefitem .@part; - mes "[Holink]"; - mes "Me~ Me~ Meow! Fun fun refining~"; - next; - emotion e_kis; - mes "[Holink]"; - mes "Perfect!! Perfect, meow!!"; - mes "I am the disciple of the refining wizard Aragam~"; - mes "Holink!!"; - mes "Another day of successful refining, meow!!"; - close; - } - failedrefitem .@part; - mes "[Holink]"; - mes "Meo~ Meow~ Kyaaak!!"; - 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 "[Holink]"; - mes "Meow!! Aaaaakk~~!!!!"; - mes "Kyaaak!! I have failed, meow!!"; - next; - mes "[Holink]"; - mes "......"; - mes "......"; - mes "All~ Everything~ Broken, meow..."; - next; - mes "[Holink]"; - mes "Meow.... Master Aragam once said,"; - mes "learn from your failures..."; - mes "Human, this one failure will be the beginning of your success in the future."; - close; -} diff --git a/npc/re/merchants/alchemist.txt b/npc/re/merchants/alchemist.txt deleted file mode 100644 index 73344a75c..000000000 --- a/npc/re/merchants/alchemist.txt +++ /dev/null @@ -1,139 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Euphy -//= Copyright (C) rAthena Dev Team -//= Copyright (C) eAthena Dev Team -//= -//= 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/>. -//========================================================================= -//= Alchemist Shop -//================= Description =========================================== -//= Merchants for Alchemist Materials and Manuals. -//================= Current Version ======================================= -//= 1.0 -//========================================================================= - -alde_alche,31,186,3 script Craft Book Merchant#alde 4_M_ALCHE_D,{ - mes "[Craft Book Merchant]"; - mes "Welcome."; - mes "I'm here to sell"; - mes "^0000FFspecial craft books^000000 for Geneticists."; - next; - mes "[Craft Book Merchant]"; - mes "Geneticists have some skills"; - mes "that require craft books to activate."; - next; - mes "[Craft Book Merchant]"; - mes "The more craft books you have,"; - mes "the more skills you can use."; - next; - mes "[Craft Book Merchant]"; - mes "Please understand that"; - mes "I specialize in the sale of these special books and"; - mes "I ^FF0000don't sell other items^000000."; - next; - mes "[Craft Book Merchant]"; - mes "Would you like to take a look at my craft books?"; - next; - if(select("Sure.", "No.") == 2) { - mes "[Craft Book Merchant]"; - mes "Thank you for visiting my shop."; - mes "Please be safe on your travels."; - close; - } - if (checkweight(Knife,1) == 0) { - mes "[Craft Book Merchant]"; - mes "I'm sorry, but your inventory is almost full."; - mes "Please empty your inventory first."; - close; - } - if (MaxWeight - Weight < 2500) { - mes "[Craft Book Merchant]"; - mes "Please empty your inventory first."; - close; - } - mes "[Craft Book Merchant]"; - mes "Okay then, here's the list of available craft books."; - next; - switch(select("[Apple Bomb Craft Book] 100,000 zeny", "[Pineapple Bomb Craft Book] 100,000 zeny", "[Coconut Bomb Craft Book] 100,000 zeny", "[Melon Bomb Craft Book] 100,000 zeny", "[Banana Bomb Craft Book] 100,000 zeny", "[Plant Gene Cultivation Method] 100,000 zeny", "[Superior Potion Craft Manual] 100,000 zeny", "[Mix Cooking Book] 100,000 zeny", "[Health Improvement Research Book] 100,000 zeny", "[Vigor Drink Recipe] 100,000 zeny", "Close")){ - case 1: .@item = 6279; break; - case 2: .@item = 6280; break; - case 3: .@item = 6281; break; - case 4: .@item = 6282; break; - case 5: .@item = 6283; break; - case 6: .@item = 6284; break; - case 7: .@item = 6285; break; - case 8: .@item = 11022; break; - case 9: .@item = 11023; break; - case 10: .@item = 11024; break; - case 11: - mes "[Craft Book Merchant]"; - mes "Thank you for your patronage."; - mes "Please come again."; - close; - } - mes "[Craft Book Merchant]"; - mes "^0000FF["+getitemname(.@item)+"] costs"; - mes "100,000 zeny."; - mes "How many would you like to purchase?"; - next; - input .@amount; - if (.@amount == 0) { - mes "[Craft Book Merchant]"; - mes "Would you like to see some different books?"; - close; - } - if (.@amount < 1 || .@amount > 99 ){ - mes "[Craft Book Merchant]"; - mes "You cannot purchase more than 100 at a time."; - close; - } - mes "[Craft Book Merchant]"; - mes "You've entered "+.@amount+"x ^0000FF["+getitemname(.@item)+"]^000000 to be purchased."; - mes "Would you like to continue?"; - next; - if (select("Yes", "No") == 1) { - .@total = .@amount * 100000; - if (Zeny < .@total) { - mes "[Craft Book Merchant]"; - mes "I'm sorry, but you don't have enough money."; - close; - } - if (checkweight(.@item,.@amount) == 0){ - mes "[Craft Book Merchant]"; - mes "It doesn't seem like you can carry everything."; - mes "Please check the space in your inventory."; - close; - } - mes "[Craft Book Merchant]"; - mes "Thank you for your patronage."; - Zeny -= .@total; - getitem .@item,.@amount; - close; - } - mes "[Craft Book Merchant]"; - mes "Please take your time"; - mes "before you make your decision."; - close; -} diff --git a/npc/re/merchants/ammo_boxes.txt b/npc/re/merchants/ammo_boxes.txt deleted file mode 100644 index a8a04d976..000000000 --- a/npc/re/merchants/ammo_boxes.txt +++ /dev/null @@ -1,36 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2016 Hercules 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/>. -//========================================================================= -//= Magazine Dealers (Renewal) -//================= Description =========================================== -//= Turns bullets into magazines/packs. -//================= Current Version ======================================= -//= 1.2 -//========================================================================= - -que_ng,187,149,3 duplicate(mdk) Magazine Dealer Kenny#ng 4_M_01 -izlude_in,74,104,3 duplicate(mdk) Magazine Dealer Kenny#iz 4_M_01 diff --git a/npc/re/merchants/ammo_dealer.txt b/npc/re/merchants/ammo_dealer.txt deleted file mode 100644 index 6b273371d..000000000 --- a/npc/re/merchants/ammo_dealer.txt +++ /dev/null @@ -1,36 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2016 Hercules 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/>. -//========================================================================= -//= Bullet Dealers (Renewal) -//================= Description =========================================== -//= Bullet trader. -//================= Current Version ======================================= -//= 1.2 -//========================================================================= - -que_ng,187,156,3 duplicate(bdt) Bullet Dealer Tony#ng 4_M_04 -izlude_in,74,106,3 duplicate(bdt) Bullet Dealer Tony#iz 4_M_04 diff --git a/npc/re/merchants/blessed_refiner.txt b/npc/re/merchants/blessed_refiner.txt deleted file mode 100644 index 6e548e25b..000000000 --- a/npc/re/merchants/blessed_refiner.txt +++ /dev/null @@ -1,193 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules 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/>. -//========================================================================= -//= Blessed Refiner -//================= Description =========================================== -//= Refiners that use Blessed ores to refine equipment. -//================= Additional Comments =================================== -//= Upon failure, the equipment is not destroyed. The success rate is -//= identical to that for Enriched ores. -//= - "Blacksmith Dister" only refines from +6~12. -//= NOTE: This NPC is currently disabled on official servers. -//================= Current Version ======================================= -//= 1.0 -//========================================================================= - -- script ::BlacksmithDister FAKE_NPC,{ - disable_items; - mes "[Blacksmith Dister]"; - mes "In this highly competitive society, we must be different in order to survive!"; - mes "I only refine equipment at the +6 ~ 12 levels."; - next; - mes "[Blacksmith Dister]"; - mes "I will need ^ff9999Blessed Weapon Ore^000000 for weapons, and ^ff9999Blessed Armor Ore^000000 for armors."; - mes "Failed refines ^FF0000will not break or reduce the refine level^000000."; - next; - mes "[Blacksmith Dister]"; - mes "How about it? Do 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]+"-[Unequipped]")+":"; - .@part = select(.@menu$); - if (!getequipisequiped(.@part)) { - mes "[Blacksmith Dister]"; - switch(.@part) { - case 1: - mes "I'm a blacksmith, not a hairstylist."; - break; - case 2: - mes "With my hammer, I will make you a star of the sky."; - break; - case 3: - case 4: - mes "Making artificial hands is not my specialty."; - break; - case 5: - mes "Bring out the item so I can refine it!"; - break; - case 6: - mes "Where is this weird smell coming from?"; - break; - case 7: - case 8: - mes "Where is the accessory?"; - break; - case 9: - mes "What do you want me to refine?"; - break; - case 10: - mes "Huh? What do you want me to do?"; - break; - } - close; - } - if (!getequipisenableref(.@part)) { - mes "[Blacksmith Dister]"; - mes "This item cannot be refined."; - close; - } - .@equip_refine = getequiprefinerycnt(.@part); - if (.@equip_refine < 6 || .@equip_refine > 12) { - mes "[Blacksmith Dister]"; - mes "This equipment has refined to "+.@equip_refine+". I only handle items with refine levels from +6 to +12!"; - close; - } - .@equip_lv = getequipweaponlv(.@part); - switch(.@equip_lv) { - default: - case 0: - .@price = 20000; - .@material = 6439; //Unbreakable_Def - .@type$ = "Armor"; - break; - case 1: - .@price = 1000; - .@material = 6438; //Unbreakable_Weap - .@type$ = "Weapon"; - break; - case 2: - .@price = 2000; - .@material = 6438; //Unbreakable_Weap - .@type$ = "Weapon"; - break; - case 3: - .@price = 20000; - .@material = 6438; //Unbreakable_Weap - .@type$ = "Weapon"; - break; - case 4: - .@price = 40000; - .@material = 6438; //Unbreakable_Weap - .@type$ = "Weapon"; - break; - } - .@ore$ = "^ff9999Blessed "+.@type$+" Ore^000000"; - mes "[Blacksmith Dister]"; - mes "This "+.@type$+" has been refined to "+.@equip_refine+". To refine it, I need "+.@ore$+" and a "+(.@price/1000)+",000 zeny refining fee."; - mes "Do you want to proceed?"; - next; - if(select("Yes", "No") == 2) { - mes "[Blacksmith Dister]"; - mes "I am busy, don't joke with me!"; - close; - } - if (getequippercentrefinery(.@part) < 100) { - mes "[Blacksmith Dister]"; - mes "This "+.@type$+" has been refined many times. Although it will not disappear upon failure, the "+.@ore$+" will disappear!"; - next; - mes "[Blacksmith Dister]"; - mes "Of course, the refining fee will not be returned! Do you want to continue?"; - next; - if(select("Yes", "No") == 2) { - mes "[Blacksmith Dister]"; - mes "Good. I'd be sad if it failed, too."; - close; - } - } - if (countitem(.@material) == 0 || Zeny < .@price) { - mes "[Blacksmith Dister]"; - mes "Materials insufficient."; - mes "To refine "+((.@equip_lv)?"a level "+.@equip_lv+" weapon":"armor")+", I need "+.@ore$+" and a "+(.@price/1000)+",000 zeny refining fee."; - close; - } - delitem .@material,1; - Zeny -= .@price; - mes "[Blacksmith Dister]"; - mes "Tac! Tac! Tac!"; - if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) { - specialeffect EF_BLESSING; - successrefitem .@part; - next; - mes "[Blacksmith Dister]"; - mes "Hahahahahaha!!!"; - next; - mes "[Blacksmith Dister]"; - mes "Refine was a huge success~ Hahaha!"; - close; - } - specialeffect EF_CURSEATTACK; - specialeffect(EF_SUI_EXPLOSION, AREA, playerattached()); - next; - emotion (!rand(5))?e_ag:e_omg; - mes "[Blacksmith Dister]"; - mes "Oh my goodness!!!!"; - next; - mes "[Blacksmith Dister]"; - mes "Oh! Although it was blessed by "+.@ore$+" to retain the equipment..."; - next; - mes "[Blacksmith Dister]"; - mes "My mood is worse when I fail!!"; - close; -} -prt_in,52,56,3 duplicate(BlacksmithDister) Blacksmith Dister#prt 4_M_DWARF -payon,148,172,3 duplicate(BlacksmithDister) Blacksmith Dister#pay 4_M_DWARF -alberta_in,20,56,3 duplicate(BlacksmithDister) Blacksmith Dister#alb 4_M_DWARF -yuno_in01,175,18,3 duplicate(BlacksmithDister) Blacksmith Dister#yuno 4_M_DWARF -ein_in01,26,82,3 duplicate(BlacksmithDister) Blacksmith Dister#ein 4_M_DWARF -lhz_in02,280,15,3 duplicate(BlacksmithDister) Blacksmith Dister#lhz 4_M_DWARF diff --git a/npc/re/merchants/card_separation.txt b/npc/re/merchants/card_separation.txt deleted file mode 100644 index b1f6754a5..000000000 --- a/npc/re/merchants/card_separation.txt +++ /dev/null @@ -1,387 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Euphy -//= Copyright (C) Muad_Dib -//= -//= 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/>. -//========================================================================= -//= Card Separation System -//================= Description =========================================== -//= Separates cards from equipment. -//================= Current Version ======================================= -//= 1.1 -//========================================================================= - -- script ::CardSeparation_mal FAKE_NPC,{ - disable_items; - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of objects. Let's try to continue after reducing those objects."; - close; - } - if (MaxWeight - Weight < 10000) { - mes "Can't continue because you have too many heavy objects. Let's try to continue after reducing the weight."; - close; - } - if (strnpcinfo(NPC_NAME_VISIBLE) == "Jeremy") { - .@Jeremy = 1; - .@n$ = "[Jeremy]"; - setarray .@equip_name$[0], "Armor", "Shoes", "Garment", "Upper Hat"; - setarray .@equip_slot[0], EQI_ARMOR,EQI_SHOES,EQI_GARMENT,EQI_HEAD_TOP; - - mes .@n$; - mes "Long time no see~"; - mes "I have learned a new skill that separates cards from Armor, Shoes, Garment and Headgear. Do you want to try it?"; - } else { - .@Jeremy = 0; - .@n$ = "[Richard]"; - setarray .@equip_name$[0], "Left hand", "Right hand"; - setarray .@equip_slot[0], EQI_HAND_L, EQI_HAND_R; - - mes .@n$; - mes "Silly Jeremy does not want to touch weapons and shields because of picking several cards that might be damaged. That is why I prepared a card separaion skill for weapons and shields..."; - } - next; - mes .@n$; - mes "Generally the fee is 1,000,000 Zeny. During the card separation, you can use ^990000special items that reduce the rate of destroying equipment or cards^000000. We don't charge additional zeny for this."; - next; - mes .@n$; - mes "There is a possibility of destroying them even using a special item. Also, ^ff0000the refine level might be lost^000000. Do you have any equipment to separate?"; - next; - - for(.@i = 0; .@i<getarraysize(.@equip_slot); ++.@i) { - if (getequipisequiped(.@equip_slot[.@i])) - .@menu$ += getequipname(.@equip_slot[.@i])+":"; - else - .@menu$ += "^999999"+.@equip_name$[.@i]+" (empty)^000000:"; - } - - .@i = select("Stop the work:"+((.@Jeremy)?"How is it possible?":"")+":"+.@menu$); - switch(.@i) { - case 1: - mes .@n$; - mes "Whenever you need the work, visit me here."; - close; - case 2: - mes .@n$; - mes "You wonder what is so special. Well, I hate to give only a guide, so let me tell you the story..."; - next; - mes "^000099Jeremy is stretching his shoulders and hands. He might be waiting for someone to talk with him.^000000"; - next; - mes .@n$; - mes "Do you know that Malangdo's specialty is canned food?"; - next; - select("I knew that well. Is it that limited?"); - mes .@n$; - mes "Hehe... Everyone loves it. But there were some problems before."; - next; - select("Problems? Is there any faulty fish?"); - mes .@n$; - mes "No, the fish does not have any problem. The problem is lots of fish oil produced after processing. That is such an industrial waste."; - next; - mes .@n$; - mes "However, after a revitalizing refining process, this fish oil became valuable to use for old equipment care and industrial lubricant."; - next; - mes .@n$; - mes "In addition, this oil is so useful to separate relics from equipped weapons that we can't buy Premium Lubricant and Ordinary Lubricant with Zeny."; - next; - mes .@n$; - mes "Well, don't worry about money. Surely the Premium Lubricant is expensive. If you pay some zeny, I can give you cheaper lubricant."; - next; - mes .@n$; - mes "I'm not sure about the quality of success. Anyway, this is so cheap, right?"; - close; - default: - .@equip_num = .@equip_slot[.@i-3]; - if (!getequipisequiped(.@equip_num)) { - mes .@n$; - if (.@Jeremy) - mes "In this part, there is nothing?"; - else - mes "There is nothing on that part?"; - close; - } - break; - } - - setarray .@equip_card, getequipcardid(.@equip_num,0),getequipcardid(.@equip_num,1),getequipcardid(.@equip_num,2),getequipcardid(.@equip_num,3); - setarray .@mvp_list, Gloom_Under_Night_Card, Golden_Bug_Card, Nidhogg_Shadow_Card, Dark_Lord_Card, Doppelganger_Card, - Dracula_Card, Drake_Card, Detale_Card, Randgris_Card, B_Seyren_Card, - Maya_Card, Mistress_Card, Baphomet_Card, Bacsojin_Card, Berzebub_Card, - Apocalips_H_Card, B_Ygnizem_Card, B_Shecil_Card, Amon_Ra_Card, Atroce_Card, - B_Eremes_Card, Eddga_Card, Osiris_Card, Orc_Load_Card, Orc_Hero_Card, - Incant_Samurai_Card, Moonlight_Flower_Card, Ifrit_Card, Lord_Of_Death_Card, Ktullanux_Card, - Kiel_Card, Thanatos_Card, Lady_Tanee_Card, Fallen_Bishop_Card, Tao_Gunka_Card, - Turtle_General_Card, Pharaoh_Card, Knight_Windstorm_Card, Phreeoni_Card, B_Katrinn_Card, - B_Magaleta_Card, Garm_Card, B_Harword_Card, Dark_Snake_Lord_Card, Rsx_0806_Card; - .@boss_chk = false; - - if (.@Jeremy) { - .@cardcount = 4; - for (.@i = 0; .@i < 4; ++.@i) { - if (.@equip_card[.@i] >= 4700 // Armor Enchant System - || .@equip_card[.@i] == 0) { - .@equip_card[.@i] = 0; - --.@cardcount; - } - } - if (!.@cardcount) { - mes .@n$; - mes "The card is not equipped. Do you want to check again?"; - close; - } - for (.@i = 0; .@i < 4; ++.@i) { - if (.@equip_card[.@i] == 0) - continue; - for (.@j = 0; .@j < getarraysize(.@mvp_list); ++.@j) { - if (.@equip_card[.@i] == .@mvp_list[.@j]) - .@boss_chk = true; - } - } - } else { - // Official "Richard" script uses a hardcoded list including every possible item. - //if (!getequipisequiped(.@equip_num)) { - // mes "[Richard]"; - // mes "I'm sorry. We don't provide that equipmnet yet."; - // close; - //} - - mes "[Richard]"; - mes "Which number socket do you want to separate the card? From the left socket, they are sorted 1,2,3,4."; - next; - .@menu$ = ""; - for(.@i = 0; .@i<4; ++.@i) { - if (.@equip_card[.@i] && .@equip_card[.@i] < 4700) // Armor Enchant System - .@menu$ += "Socket "+(.@i+1)+" - "+getitemname(.@equip_card[.@i])+":"; - else - .@menu$ += "^777777Socket "+(.@i+1)+" - No card^000000:"; - } - .@i = select("Stop the work:"+ .@menu$); - switch(.@i) { - case 1: - mes .@n$; - mes "Whenever you need to work, please come to me."; - close; - default: - .@slot = .@i-2; - if (.@equip_card[.@slot] == 0 || .@equip_card[.@slot] >= 4700) { - mes .@n$; - mes "This socket is not equipped with any card. Why don't you check again?"; - close; - } - break; - } - for (.@i = 0; .@i < getarraysize(.@mvp_list); ++.@i) { - if (.@equip_card[.@slot] == .@mvp_list[.@i]) - .@boss_chk = true; - } - } - if (!.@boss_chk) { - mes .@n$; - if (.@Jeremy) - mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:"; - else - mes "Please choose the working fee."; - next; - .@menu$ = "Next time...:"+ - ((Zeny >= 1000000)?"Use 1,000,000z (Do not use special item):":"^999999Use 1,000,000z (Insufficient)^000000:")+ - ((countitem(High_RankLubricant))?"Use Premium Lubricant:":"^999999Premium Lubricant (Insufficient)^000000:")+ - ((countitem(General_Lubricant))?"Use Ordinary Lubricant":"^999999Ordinary Lubricant (Insufficient)^000000"); - switch(select(.@menu$)) { - case 1: - mes .@n$; - mes "Whenever you need the work, visit me here."; - close; - case 2: - if (Zeny < 1000000) { - mes .@n$; - mes "You don't have enough zeny. Please come back with enough fees."; - close; - } - mes .@n$; - mes "This is pretty old equipment. There is a high rate of destroying the cards or equipment during the work. Are you sure you want to continue?"; - next; - if(select("Next time...", "Continue") == 1) { - mes .@n$; - mes "Whenever you need the work, visit me here."; - close; - } - .@sf_c_num = 150; - .@sf_r_num = 150; - .@sf_w_num = 150; - Zeny -= 1000000; - break; - case 3: - if (countitem(High_RankLubricant) == 0) { - mes .@n$; - mes "You don't have Premium Lubricant."; - close; - } - mes .@n$; - mes "If you use the Premium Lubricant, the rate of destruction will be decreased highly, but I can't give you a 100% guarantee. Are you sure you want to continue?"; - next; - if(select("Next time...", "Continue") == 1) { - mes .@n$; - mes "Whenever you need the work, visit me here."; - close; - } - .@sf_c_num = 75; - .@sf_r_num = 75; - .@sf_w_num = 75; - delitem High_RankLubricant,1; - break; - case 4: - if (countitem(General_Lubricant) == 0) { - mes .@n$; - mes "You don't have Ordinary Lubricant."; - close; - } - mes .@n$; - mes "If you use the Ordinary Lubricant, the rate of destruction will be decreased highly, but I can't give you a 100% guarantee. Are you sure you want to continue?"; - next; - if(select("Next time...", "Continue") == 1) { - mes .@n$; - mes "Whenever you need the work, visit me here."; - close; - } - .@sf_c_num = 75; - .@sf_r_num = 150; - .@sf_w_num = 150; - delitem General_Lubricant,1; - break; - } - } else { - mes .@n$; - mes "This equipment contains a precious MVP card. This card can't be separated with lubricant. If you bring the super surfactant ^0000ffSillit Pong^000000, I will be able to work."; - next; - switch(select("Next time...", "I have a Sillit Pong.")) { - case 1: - mes .@n$; - mes "Whenever you need the work, visit me here."; - close; - case 2: - if (countitem(Sillit_Pong_Bottle) == 0) { - mes .@n$; - mes "You don't have Sillit Pong."; - close; - } - break; - } - mes .@n$; - if (.@Jeremy) { - mes "Except cards, ^ff0000all enchanted effects will disappear.^000000 If you agree to this, please choose the work type:"; - .@menu$ = "Alright, let's do it!"; - } else { - mes "May I continue?"; - .@menu$ = "I got it. Just do it quickly!"; - } - next; - switch(select("Next time...:"+ .@menu$)) { - case 1: - mes .@n$; - mes "Whenever you need the work, visit me here."; - close; - case 2: - .@sf_c_num = 60; - .@sf_r_num = 60; - .@sf_w_num = 60; - delitem Sillit_Pong_Bottle,1; - break; - } - } - - .@equip_id = getequipid(.@equip_num); - .@equip_refine = getequiprefinerycnt(.@equip_num); - delequip .@equip_num; - - // Chance of retaining refine level. - if (rand(1,.@sf_r_num) >= 61) - .@equip_refine = 0; - - if (.@Jeremy) { - // Chance of retaining equipment. - if (rand(1,.@sf_w_num) < 61) { - .@equip_safe = 1; - getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,0; - } - - // Chance of retaining cards. - for(.@i = 0; .@i<4; ++.@i) { - if (.@equip_card[.@i]) { - if (rand(1,.@sf_c_num) < 61) - getitem .@equip_card[.@i],1; - else - .@card_break = 1; - } - } - } else { - .@card = .@equip_card[.@slot]; - .@equip_card[.@slot] = 0; - - // Chance of retaining equipment. - if (rand(1,.@sf_w_num) < 61) { - .@equip_safe = 1; - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; - } - - // Chance of retaining card. - if (rand(1,.@sf_c_num) < 61) - getitem .@card,1; - else - .@card_break = 1; - } - - // Display corresponding effect. - if (!.@equip_safe && .@card_break) - specialeffect(EF_LORD, AREA, playerattached()); - else if (.@equip_safe && .@card_break) - specialeffect(EF_SUI_EXPLOSION, AREA, playerattached()); - else if (!.@equip_safe && !.@card_break) - specialeffect(EF_FIREPILLAR, AREA, playerattached()); - else - specialeffect(EF_MAXPOWER, AREA, playerattached()); - - // Output results. - mes "-- Result of Card Separation --"; - if (.@equip_safe) { - mes "Crack has not occured during the card separation process."; - mes "^0000FFEquipment separation is normal.^000000"; - } else { - mes "Crack has occured during the card separation process."; - mes "Equipment has been damaged. ^ff0000Unrecoverable.^000000"; - } - mes "-------------------"; - if (!.@card_break) { - mes "Erosion of surface has not occured during the card separation process."; - mes "^0000ffCard separation has succeeded.^000000"; - } else { - mes "Erosion of surface has occured during the card separation process."; - mes "Card has been damaged. ^ff0000Unrecoverable.^000000"; - } - next; - mes .@n$; - mes "That is all for the results of the card separation. Please come again."; - close; -} -malangdo,215,166,4 duplicate(CardSeparation_mal) Jeremy#pa0829 4_CAT_DOWN -malangdo,208,166,6 duplicate(CardSeparation_mal) Richard#pa0829 4_CAT_ADV1 diff --git a/npc/re/merchants/catalog.txt b/npc/re/merchants/catalog.txt deleted file mode 100644 index f508014a1..000000000 --- a/npc/re/merchants/catalog.txt +++ /dev/null @@ -1,128 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Euphy -//= Copyright (C) Scriptor -//= Copyright (C) skyiing -//= -//= 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/>. -//========================================================================= -//= Catalog Magician -//================= Description =========================================== -//= Catalogs allow players to easily search for items in-game, and to -//= buy/sell directly from the catalog interface. -//================= Current Version ======================================= -//= 1.1 -//========================================================================= - -moc_para01,22,16,5 script Catalog Magician#catal01 4_M_BIBI,{ - if (!checkweight(Axe,3)) { - mes "- You have too many items. Please make space. -"; - close; - } - .@ticket_cost = 200; - mes "[Catalog Magician]"; - mes "Look... the Magic Academy"; - mes "in Geffen is now directly"; - mes "selling the brand new"; - mes "^007777Universal Catalog Silver^000000!"; - next; - mes "He is looking at the words"; - mes "written on his hand."; - mes "He seems too busy"; - mes "to look at you."; - next; - mes "[Catalog Magician]"; - mes "A brand new catalog"; - mes "has just come out!"; - mes "You can check"; - mes "what items you can trade"; - mes "and what items are on sale"; - mes "from the vendor."; - next; - mes "[Catalog Magician]"; - mes "The ^007777Universal Catalog Silver^000000"; - mes "costs only 200z!"; - mes "You can buy up to 50 pieces at once!"; - next; - switch(select("Buy a ^007777Universal Catalog Silver^000000", "I don't need it!", "You don't look like a vendor!")) { - case 1: - mes "[Catalog Magician]"; - mes "You... want all 50 pieces?"; - mes "Or how many do you need?"; - next; - while (1) { - input .@input; - mes "[Catalog Magician]"; - if (.@input == 0) { - mes "The trade has been stopped!"; - mes "I don't know what to do next..."; - mes "What should I do?"; - emotion e_swt2,1; - close; - } else if (.@input < 1 || .@input > 50) { - mes "It should be less than 50 pieces."; - next; - } else - break; - } - .@sell = .@ticket_cost * .@input; - mes "The total number of catalog(s) that you're trying to purchase is " + .@input + " pieces."; - mes "It costs " + .@sell + " z."; - if (Zeny < .@sell) { - mes "It seems you don't have enough money."; - mes "You can sell your equipment"; - mes "to make more money... if you want."; - close; - } - mes "Ok, here you go."; - Zeny -= .@sell; - getitem Vending_Search_Scroll,.@input; - close; - case 2: - mes "[Catalog Magician]"; - mes "Argh... you really need this"; - mes "item... Do you want me to"; - mes "explain again? I don't know"; - mes "what to do next..."; - mes "What should I do?"; - emotion e_swt2,1; - close; - case 3: - mes "[Catalog Magician]"; - mes "My real job is a magician."; - mes "I was going to ask the merchant"; - mes "guild to sell them, but they were"; - mes "trying use them as an appendix"; - mes "into broom sales. That's why"; - mes "I'm selling these by myself."; - next; - mes "[Catalog Magician]"; - mes "There are many adventurers"; - mes "here who come and go."; - mes "I'm pretty sure that I can sell to all of them soon."; - mes "Don't you think so?"; - mes "So... let's start!! Buy more of them, please! PLEASE...!"; - close; - } -} diff --git a/npc/re/merchants/coin_exchange.txt b/npc/re/merchants/coin_exchange.txt deleted file mode 100644 index f35c722f7..000000000 --- a/npc/re/merchants/coin_exchange.txt +++ /dev/null @@ -1,1234 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Dastgir -//= Copyright (C) rAthena Dev Team -//= Copyright (C) Lemongrass -//= 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/>. -//========================================================================= -//= Coin Merchants -//================= Description =========================================== -//= Renewal coin redemption NPCs. -//================= Current Version ======================================= -//= 1.2a -//========================================================================= - -//== Malangdo ============================================== -malangdo,220,167,5 script Coin Exchanger CX-1 2_VENDING_MACHINE1,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of objects. Let's try to continue after reducing those objects."; - close; - } - if (MaxWeight - Weight < 10000) { - mes "Can't continue because you have too many heavy objects. Let's try to continue after reducing the weight."; - close; - } - mes "[Coin Exchanger CX-1]"; - mes "Welcome to CX-1. If you have coins, you can exchange them to high or low grade coins."; - next; - setarray .@coins[1], - 6417, //Silvervine - 6418, //Agrade_Coin - 6419, //Bgrade_Coin - 6420, //Cgrade_Coin - 6421, //Dgrade_Coin - 6422; //Egrade_Coin - .@menu$ = "Stop:"; - for(.@i = 1; .@i<=6; ++.@i) { - if (countitem(.@coins[.@i])) - .@menu$ += getitemname(.@coins[.@i])+":"; - else - .@menu$ += "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:"; - } - .@i = select(.@menu$); - switch(.@i) { - case 1: - mes "[Coin Exchanger CX-1]"; - mes "Thank you for coming."; - close; - default: - .@coin = .@coins[.@i-1]; - .@coin_select = .@i-1; - break; - } - if (countitem(.@coin) == 0) { - mes "[Coin Exchanger CX-1]"; - mes "You chose a coin that you don't have."; - mes "Thank you for coming."; - close; - } - mes "[Coin Exchanger CX-1]"; - mes "----Rate of exchange----"; - mes "Higher exchange - 30 to 10"; - mes "Lower exchange - 10 to 30"; - mes "------------------------"; - mes "^ff3333When you exchange, we charge a fee according to the current market price.^000000"; - next; - setarray .@exchange_name$[0],"higher","lower"; - setarray .@exchange_rate[0],30,10; - setarray .@exchange_loss[0],rand(1,4),rand(1,2); // Amount deducted per exchange. - setarray .@exchange_id[0],.@coins[.@coin_select-1],.@coins[.@coin_select+1]; - if (.@exchange_id[0] == .@coins[1]) .@exchange_id[0] = 0; // Cannot exchange for Silvervine. - .@menu$ = "Stop:"; - for(.@i = 0; .@i<2; ++.@i) { - if (.@exchange_id[.@i] == 0) - .@menu$ += "^ff3333Unavailable exchange to "+.@exchange_name$[.@i]+" coin^000000:"; - else if (countitem(.@coin) < .@exchange_rate[.@i]) - .@menu$ += "^aaaaaaExchange to "+.@exchange_name$[.@i]+" coin (null)^000000:"; - else - .@menu$ += "Exchange to "+.@exchange_name$[.@i]+" coin - "+getitemname(.@coin)+" ("+.@exchange_rate[.@i]+" needed):"; - } - .@i = select(.@menu$)-2; - if (.@i == -1) { - mes "[Coin Exchanger CX-1]"; - mes "Thank you for coming."; - close; - } - if (.@exchange_id[.@i] == 0) { - mes "[Coin Exchanger CX-1]"; - mes "This coin is not available to exchange to "+.@exchange_name$[.@i]+" coin."; - mes "Thank you for coming."; - close; - } - if (countitem(.@coin) < .@exchange_rate[.@i]) { - mes "[Coin Exchanger CX-1]"; - mes "You don't have enough coins to exchange to "+.@exchange_name$[.@i]+" coin."; - mes "Thank you for coming."; - close; - } - .@exchange_total = .@exchange_rate[(!.@i)] - .@exchange_loss[(!.@i)]; - delitem .@coin, .@exchange_rate[.@i]; - getitem .@exchange_id[.@i], .@exchange_total; - mes "[Coin Exchanger CX-1]"; - mes "^003399"+.@exchange_rate[.@i]+"^000000 unit(s) of ^003399 "+getitemname(.@coin)+"^000000 taken."; - mes "I exchanged them for ^003399"+.@exchange_name$[.@i]+" coins^000000, after deducting ^003399"+.@exchange_loss[(!.@i)]+"^000000 unit(s), ^003399"+.@exchange_total+"^000000 unit(s) remaining."; - close; -} - -malangdo,218,165,5 script Special Vending Machine 2_DROP_MACHINE,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of objects. Let's try to continue after reducing those objects."; - close; - } - if (MaxWeight - Weight < 10000) { - mes "Can't continue because you have too many heavy objects. Let's try to continue after reducing the weight."; - close; - } - mes "[Special Vending Machine]"; - mes "Welcome to CX-82. You have a Silvervine Fruit, so you can purchase the Malangdo Specialty that has special ability."; - next; - callsub L_AddItem, //DisplayName,ItemID,Cost - "Seagod's Protection [23 hours]",16740,4, - "Seagod's Protection [7 days]",16763,12, - "Seagod's Protection [15 days]",16764,24, - "Octopus Hunting Stick [23 hours]",16765,2, - "Octopus Hunting Stick [3 days]",16766,5, - "Octopus Hunting Stick [7 days]",16767,10, - "Premium Lubricant",6441,56, - "Ordinary Lubricant",6440,36, - "Sillit Pong",6443,192; -L_AddItem: - .@menu$ = "Explanation:"; - for(.@i = 0; .@i<getargcount(); .@i += 3) - .@menu$ += getarg(.@i)+":"; - .@i = select(.@menu$)-2; - if (.@i == -1) { - mes "[Special Vending Machine]"; - mes "Seagod's Protection is an item used for entering the Culvert memorial dungeon during a certain period."; - next; - mes "[Special Vending Machine]"; - mes "Octopus Hunting Stick is an item used for entering the Culvert memorial dungeon during a certain period."; - next; - mes "[Special Vending Machine]"; - mes "Premium and Ordinary Lubricant are items used for separation of equipment and cards. If you visit the specialist Jeremy with either item, he will explain more details of the effects."; - next; - mes "[Special Vending Machine]"; - mes "Sillit Pong is special item that separates sockets with MVP cards. Unable to separate MVP card by Premium and Ordinary Lubricant."; - close; - } - .@cost = getarg(.@i*3+2); - mes "[Special Vending Machine]"; - mes "You choose ^005500"+getarg(.@i*3)+"^000000. For purchasing, you need ^005500"+.@cost+"^000000 unit(s) of Silvervine Fruit."; - next; - if (countitem(Silvervine) < .@cost) - .@ven_menu$ = "^999999Silvervine Fruit (missing "+(.@cost - countitem(Silvervine))+")^000000"; - else - .@ven_menu$ = "Purchase - Silvervine Fruit (have "+countitem(Silvervine)+")"; - switch(select("Stop", ""+.@ven_menu$)) { - case 1: - mes "[Special Vending Machine]"; - mes "Thank you for coming."; - close; - case 2: - if (countitem(Silvervine) < .@cost) { - mes "[Special Vending Machine]"; - mes "Not enough Silvervine Fruit."; - mes "Closing the transaction."; - mes "Thank you for coming."; - close; - } - mes "[Special Vending Machine]"; - mes "The transaction is completed. Thank you for coming."; - delitem Silvervine,.@cost; - getitem getarg(.@i*3+1),1; - close; - } -} - -malangdo,236,179,5 script Dark Merchant K 4_CAT_REST,{ - if (checkweight(Knife,1) == 0) { - mes "It seems you have too much in your inventory. Let's try again after getting rid of some of your belongings."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "Your inventory is too heavy now. Please come back after getting rid of some of your belongings."; - close; - } - mes "[Merchant K]"; - mes "Thank you for the trade."; - mes "We exchange ^ff000010 C Grade Coin^000000 to ^3333ff1 Mora Coin^000000. Shall we begin then?"; - next; - setarray .@coin_amount[0],10,100,500,1000; - while(1) { - .@menu$ = ""; - for(.@i = 0; .@i<getarraysize(.@coin_amount); ++.@i) { - if (countitem(Cgrade_Coin) >= .@coin_amount[.@i]) - .@menu$ += "Exchange "+(.@coin_amount[.@i]/10)+" Mora Coin:"; - else - .@menu$ += "^aaaaaaExchange "+(.@coin_amount[.@i]/10)+" Mora Coin (Not Enough)^000000:"; - } - .@i = select(.@menu$+"Quit")-1; - if (.@i == getarraysize(.@coin_amount)) { - mes "[Merchant K]"; - mes "Let's exchange some other time."; - close; - } - if (countitem(Cgrade_Coin) < .@coin_amount[.@i]) { - mes "[Merchant K]"; - mes "You need ^ff0000"+.@coin_amount[.@i]+"^000000 C Grade Coin to perform the exchange. But you don't seem to have enough now."; - close; - } - delitem Cgrade_Coin,.@coin_amount[.@i]; - getitem Mora_Coin,.@coin_amount[.@i]/10; - mes "[Merchant K]"; - mes "C Grade Coin ^003399"+.@coin_amount[.@i]+"^000000 well received."; //FIXME: Dialogue. - mes "Exchanged to ^003399"+(.@coin_amount[.@i]/10)+"^000000 Mora Coin."; - next; - mes "[Merchant K]"; - mes "Would you like to continue?"; - next; - } -} - -malangdo,233,180,3 script Dark MachineTX100 2_VENDING_MACHINE1,{ - if (checkweight(Knife,1) == 0) { - mes "It seems you have too much in your inventory. Let's try again after getting rid of some of your belongings."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "Your inventory is too heavy now. Please come back after getting rid of some of your belongings."; - close; - } - mes "[Dark Machine TX100]"; - mes "Thank you for visiting TX100. You can exchange coins into higher or lower level coins."; - next; - mes "[Dark Machine TX100]"; - mes "For a lower level coin exchange you can do 500 as a 1 time maximum, and for higher level coin exchange you can do 99 as a 1 time maximum."; - next; - setarray .@coins[1], - 6417, //Silvervine - 6418, //Agrade_Coin - 6419, //Bgrade_Coin - 6420, //Cgrade_Coin - 6421, //Dgrade_Coin - 6422; //Egrade_Coin - .@menu$ = "Quit:"; - for(.@i = 1; .@i<=6; ++.@i) { - if (countitem(.@coins[.@i])) - .@menu$ += getitemname(.@coins[.@i])+" (have "+countitem(.@coins[.@i])+"):"; - else - .@menu$ += "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:"; - } - .@i = select(.@menu$)-1; - if (.@i == 0) { - mes "[Dark Machine TX100]"; - mes "Thank you for coming."; - close; - } - .@coin = .@coins[.@i]; - setarray .@exchange_name$[0],"higher","lower"; - setarray .@exchange_id[0],.@coins[.@i-1],.@coins[.@i+1]; - if (.@exchange_id[0] == .@coins[1]) .@exchange_id[0] = 0; // Cannot exchange for Silvervine. - if (.@i > getarraysize(.@coins)) { - mes "[Dark Machine TX100]"; - mes "You've chosen abnormal menu."; - mes "Aborting process. Thank you for coming."; - close; - } - if (countitem(.@coin) == 0) { - mes "[Dark Machine TX100]"; - mes "You chose a coin that you don't have."; - mes "Aborting process. Thank you for coming."; - close; - } - mes "[Dark Machine TX100]"; - mes "----Exchange Rate----"; - mes "Higher Coin - 3 to 1"; - mes "Lower Coin - 1 to 3"; - mes "---------------------"; - mes "^ff3333We take a small vendor fee from your exchanged coins.^000000"; - next; - .@menu$ = "Quit:"; - if (.@exchange_id[0] == 0) - .@menu$ += "^ff3333Cannot exchange to higher level coin^000000:"; - else { - if (countitem(.@coin) >= 99) - .@menu$ += "Exchange 99 "+getitemname(.@coin)+" into higher level coin:"; - else - .@menu$ += "^aaaaaaExchange to higher level coin (Not enough)^000000:"; - } - if (.@exchange_id[1] == 0) - .@menu$ += "^ff3333Cannot exchange to lower level coin^000000:"; - else { - if (countitem(.@coin) > 500) - .@menu$ += "Exchange 500 "+getitemname(.@coin)+" into lower level coin:"; - else if (countitem(.@coin)) - .@menu$ += "Exchange "+countitem(.@coin)+" "+getitemname(.@coin)+" into lower level coin:"; - else - .@menu$ += "^aaaaaaExchange to lower level coin (Not enough)^000000:"; - } - .@i = select(.@menu$)-2; - if (.@i == -1) { - mes "[Dark Machine TX100]"; - mes "Thank you for coming."; - close; - } - if (.@exchange_id[.@i] == 0) { - mes "[Dark Machine TX100]"; - mes "This coin cannot be exchanged to a "+.@exchange_name$[.@i]+" level coin."; - mes "Aborting process. Thank you for coming."; - close; - } - if ((.@i == 0 && countitem(.@coin) < 100) || (.@i == 1 && countitem(.@coin) == 0)) { - mes "[Dark Machine TX100]"; - mes "You have not enough coins for a "+.@exchange_name$[.@i]+" level coin exchange."; - mes "Aborting process. Thank you for coming."; - close; - } - if (countitem(.@exchange_id[.@i]) > 28000) { - mes "[Dark Machine TX100]"; - mes "You have too many "+.@exchange_name$[.@i]+" level coins already. Please come back with less coins."; - close; - } - switch(.@i) { - case 0: - .@payment_amount = 99; - .@reward_amount = .@payment_amount/3; - .@coin_text$ = "High"; - break; - case 1: - .@payment_amount = (((countitem(.@coin) > 500))?500:countitem(.@coin)); - .@reward_amount = .@payment_amount*3; - .@coin_text$ = "Low"; - break; - } - .@fee = rand(1,3); - delitem .@coin, .@payment_amount; - getitem .@exchange_id[.@i], .@reward_amount - .@fee; - mes "[Dark Machine TX100]"; - mes "Received ^003399"+getitemname(.@coin)+"^000000 for ^003399"+.@payment_amount+"^000000 unit(s)."; - mes "We have excanged your coin to ^003399"+(.@reward_amount-.@fee)+"^000000 unit(s) of ^003399"+.@coin_text$+" Level Coin^000000, deducted ^003399"+.@fee+"^000000 unit(s) as exchanging fee."; - close; -} - -malangdo,175,145,4 script Can Agency Guard 4_CAT_MERMASTER,{ - if (checkweight(Knife,1) == 0) { - mes "You seem to have too many items. Give it a try after sorting out the item kinds."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You're not likely to be able to go on due to the heavy items you've got. Give it a try after lightening the weight."; - close; - } - mes "[Can Agency Guard]"; - mes "Hey, you there... Have you seen any ^0000ffMalangdo Cat Can^000000s around here?"; - next; - switch(select("Why are you asking?", "Oh, you mean these?")) { - case 1: - mes "[Can Agency Guard]"; - mes "Umm."; - mes "We at the Can Agency recently got some suspicious intelligence about them..."; - next; - mes "[Can Agency Guard]"; - mes "There were faulty products in bulk on the can production line for Malangdo specialty. These products, to be discarded, seem to have fallen into a retail dealer's hands."; - next; - mes "[Can Agency Guard]"; - mes "Actually they were hard to distinguish from normal products. But it obviously says ^0000ffMalangdo Cat Can^000000 outside."; - next; - mes "[Can Agency Guard]"; - mes "As faulty products are moving around on the market, we've been collecting them as is our duty. Have you ever seen anyone who has things like what I'm describing?"; - next; - mes "[Can Agency Guard]"; - mes "If you find anyone selling these products, please come and tell me."; - close; - case 2: - if (countitem(12633) == 0) { - mes "[Can Agency Guard]"; - mes "Umm? I cannot see the ^0000ffMalangdo Cat Can^000000 from you. Don't forget to bring it to me if you've found out..."; - close; - } - break; - } - mes "[Can Agency Guard]"; - mes "The Malangdo Cat Can is a faulty product. Let me exchange it to 3 E Grade Coins. How about that?"; - next; - switch(select("I won't exchange", "^0000ff1^000000 Can -> ^0000ff3^000000 E Grade Coin", "^0000ff10^000000 Can -> ^0000ff30^000000 E Grade Coin", "^0000ff100^000000 Can -> ^0000ff300^000000 E Grade Coin", "Exchange all I've got")) { - case 1: - mes "[Can Agency Guard]"; - mes "Umm, I'm not here forever, so come to me if you'd like to exchange while I still am."; - close; - case 2: - .@check = 1; - .@count = 1; - break; - case 3: - .@check = 10; - .@count = 10; - break; - case 4: - .@check = 100; - .@count = 100; - break; - case 5: - .@check = 1; - .@count = countitem(12633); - break; - } - if (countitem(12633) < .@check) { - if (.@check == 1) { - mes "[Can Agency Guard]"; - mes "Umm? I cannot see the ^0000ffMalangdo Cat Can^000000 from you. Don't forget to bring it to me if you've found out..."; - close; - } else { - mes "[Can Agency Guard]"; - mes "Umm? I don't think you have enough to exchange... Come to me again when the amount is exactly decided."; - close; - } - } - delitem 12633,.@count; - getitem Egrade_Coin,.@count*3; - mes "[Can Agency Guard]"; - mes "Exchanged "+.@count+" Malangdo Cat Can to "+(.@count*3)+" E Class Coin. Check it out."; - close; -} - -function script F_mal_coin { - -//- Initial dialogue and checks - -// -- callfunc "F_mal_coin",0,"[<NPC Name>]",<NPC ID>; - if (getarg(0) == 0) { - if (getarg(2) != 2 && BaseLevel < 50) { - mes getarg(1); - mes "Ahaaa~"; - mes "If you want to buy this stuff,"; - mes "you can talk to me"; - mes "when you grow up a little more."; - mes "This stuff is too expensive"; - mes "for a child~"; - close; - } - mes getarg(1); - mes "Nice to meet you~~"; - mes "I am! YES~~ That's right!"; - mes "I'm selling special stuff"; - mes "which you can see only here on Meow Meow Island!"; - next; - mes getarg(1); - mes "How about it? What are you waiting for?"; - mes "Why don't you take a look at"; - mes "what kinds of stuff I have?"; - next; - switch(getarg(2)) { - case 1: - mes "[Wandering Merchant]"; - mes "Oh~"; - mes "These are rental items, so make sure you know if you have the ^0000FF1 hour^000000 or ^0000FF7 day^000000 version."; - next; - break; - case 2: - break; - case 3: - mes "[Roving Merchant]"; - mes "Just for your information,"; - mes "Sow Bug, Starfish, Dried Squid, and Flying Fish are the items which you can use for 1 hour."; - next; - break; - } - mes getarg(1); - mes "Well then, do you want to take a look at what I have now?"; - next; - switch(select("Yes", "No")) { - case 1: - if (checkweight(Knife,1) == 0) { - mes getarg(1); - mes "It seems that there are too many items in your inventory."; - mes "Please make space and come back again~"; - close; - } - if (MaxWeight - Weight < 2500) { - mes getarg(1); - mes "It seems that you're overweight."; - mes "Please reduce your weight and come back again~"; - close; - } - mes getarg(1); - mes "Well, take a good look at them~~~"; - next; - return; - case 2: - mes getarg(1); - mes "Well, then. I'll see you next time."; - mes "Goodbye."; - close; - } - } - -//- Exchange function - -// -- callfunc "F_mal_coin",1,"[<NPC Name>]","<Display Name>",<Item ID>,<Egrade_Coin>,<Malang_Sp_Can>,<Silvervine> - if (getarg(0) == 1) { - mes getarg(1); - mes "The price of ^0000FF["+getarg(2)+"]^000000 is"; - if (getarg(4) && getarg(5)) { // Type 1: Egrade_Coin or Malang_Sp_Can - mes getarg(4)+" E Grade Coin or "+getarg(5)+" Malangdo Canned Specialties."; - .@type = 1; - .@menu$ = "Yes.:No, I'll purchase with cans.:I don't want to purchase any."; - } else if (getarg(5)) { // Type 2: Malang_Sp_Can only - mes getarg(5)+" Malangdo Canned Specialties."; - .@type = 2; - .@menu$ = "Yes.::No."; - } else { // Type 3: Silvervine only - mes getarg(6)+" Silvervine Fruit."; - .@type = 3; - .@menu$ = "Yes.::I don't want to purchase any."; - } - next; - mes getarg(1); - if (.@type == 1) { - mes "Would you like to purchase"; - mes "^0000FF["+getarg(2)+"]^000000 with E Grade Coins?"; - } else { - mes "Would you like to"; - mes "purchase ^0000FF["+getarg(2)+"]^000000?"; - } - next; - switch(select(.@menu$)) { - case 2: - .@type = 2; - case 1: - switch(.@type) { - case 1: - .@item = 6422; //Egrade_Coin - .@amount = getarg(4); - .@str$ = "coins"; - break; - case 2: - .@item = 12636; //Malang_Sp_Can - .@amount = getarg(5); - .@str$ = "cans"; - break; - case 3: - .@item = 6417; //Silvervine - .@amount = getarg(6); - .@str$ = "Silvervine Fruit"; - break; - } - if (countitem(.@item) < .@amount) { - mes getarg(1); - mes "I'm sorry, you need more "+.@str$+"."; - close; - } - if (MaxWeight - Weight < getiteminfo(getarg(3), ITEMINFO_WEIGHT)) { - mes getarg(1); - mes "Sorry, you've purchased too many."; - mes "You need to make more space in your inventory. Please come back later."; - close; - } - mes getarg(1); - mes "Thank you."; - delitem .@item,.@amount; - getitem getarg(3),1; - return; - case 3: - mes getarg(1); - mes "Always be careful"; - mes "when you purchase items."; - close; - } - } -} -malangdo,162,146,5 script Wandering Merchant#mal 4_M_MERCAT1,{ - callfunc "F_mal_coin",0,"[Wandering Merchant]",1; - setarray .@items[1], - 16743,16747,16741,16745,16749,16751, // 1 hour items. - 16742,16744,16746,16748,16752,16750; // 7 day items. - setarray .@names$[1], - "Spearfish","Tuna","Hairtail","Saurel","Malang Snow Crab","Brindle Eel", - "Hairtail (7Days)","Spearfish (7Days)","Saurel (7Days)","Tuna (7Days)","Brindle Eel (7Days)","Malang Snow Crab (7Days)"; - while(1) { - .@i = select( - "[Spearfish(1hr)] 8 E-Coins/50 Cans", - "[Tuna(1hr)] 8 E-Coins/50 Cans", - "[Hairtail(1hr)] 8 E-Coins/50 Cans", - "[Saurel(1hr)] 8 E-Coins/50 Can", - "[Malang Snow Crab(1hr)] 8 E-Coins/50 Can", - "[Brindle Eel(1hr)] 8 E-Coins/50 Can", - "[Hairtail(7Days)] 10 Silvervine Fruit", - "[Spearfish(7Days)] 10 Silvervine Fruit", - "[Saurel(7Days)] 10 Silvervine Fruit", - "[Tuna(7Days)] 10 Silvervine Fruit", - "[Brindle Eel(7Days)] 10 Silvervine Fruit", - "[Malang Snow Crab(7Days)] 10 Silvervine Fruit", - "End purchasing." - ); - if (.@i == 13) { - mes "[Wandering Merchant]"; - mes "Well, then. I'll see you next time."; - mes "Goodbye."; - close; - } - mes "[Wandering Merchant]"; - mes "Are you interested in ^0000FF["+.@names$[.@i]+"]^000000?"; - switch(.@i) { - case 1: //Spearfish_Box1 - case 8: //Spearfish_Box2 - mes "This is... a fish that moves according to the season, very tasty!"; - mes "But this is only a food that I'm talking about, yummy~"; - next; - mes "[Wandering Merchant]"; - mes "Of course, this is ^DC143CTwo-Handed Spear^000000."; - mes "It gives a high chance of"; - mes "causing the Bleeding status"; - mes "when you're using Pierce or Clashing Spiral~"; - next; - mes "[Wandering Merchant]"; - mes "More details are..."; - mes "Increase 100% of Clashing Spiral ATK and 50% of Inspiration ATK,"; - mes "additional ATK + 30 when Base Lv. is over 100."; - mes "Base ATK is 220."; - next; - break; - case 2: //Tuna_Box1 - case 10: //Tuna_Box2 - mes "This is a very popular fish"; - mes "which is used in various dishes."; - mes "Swordman, Merchant, and Acolyte classes can use it"; - mes "as a ^DC143CMace^000000."; - next; - mes "[Wandering Merchant]"; - mes "It gives a high chance of executing the Stun or Auto-Spell Bash"; - mes "when using close-range physical attacks."; - mes "Base ATK is 180."; - next; - mes "[Wandering Merchant]"; - mes "More details are..."; - mes "additional ATK + 20 when Base Lv. is over 100,"; - mes "freeze self with low rate."; - next; - break; - case 3: //Hairtail_Box1 - case 7: //Hairtail_Box2 - mes "This fish looks like a long belt."; - next; - mes "[Wandering Merchant]"; - mes "This is a ^DC143CTwo-Handed Sword^000000"; - mes "which most swordmen can use."; - mes "It increases 50% of critical damage when attacking and CRI + 20."; - mes "Base ATK is 220."; - next; - mes "[Wandering Merchant]"; - mes "More details are..."; - mes "additional ATK + 50 when Base Lv. is over 100."; - next; - break; - case 4: //Saurel_Box1 - case 9: //Saurel_Box2 - mes "This is a ^DC143CDagger^000000 which gives MATK + 100"; - mes "and ATK + 30 for 7sec at a certain rate with physical attacks."; - next; - mes "[Wandering Merchant]"; - mes "More details are..."; - mes "gives MATK + 20 for 7sec at a certain rate with magical attacks"; - mes "and additional MATK + 10, ATK + 10 when Base Lv. is over 100."; - mes "Base ATK is 160."; - next; - break; - case 5: //Malang_Crab_Box1 - case 12: //Malang_Crab_Box2 - mes "This is a ^DC143CBow^000000 which increases LUK + 3 and 50% of critical damage,"; - mes "and increases 20% of long rage phyical ATK when Base Lv. is over 100."; - mes "Base ATK is 120."; - next; - mes "[Wandering Merchant]"; - mes "More details are..."; - mes "can be used by Archer, Thief, and Rogue classes."; - next; - break; - case 6: //Brindle_Eel_Box1 - case 11: //Brindle_Eel_Box2 - mes "This is a ^DC143CBow^000000."; - mes "Because it has elastic force,"; - mes "we started to use it as a Bow."; - mes "Base ATK is 180."; - next; - mes "[Wandering Merchant]"; - mes "More details are..."; - mes "AGI + 3, and ASPD + 2 for 5sec at a certain rate with long range physical attacks."; - mes "Also gives additional 20% of long range physical ATK when Base Lv. is over 100."; - mes "Hunter, Bard, and Dancer classes can use it."; - next; - break; - } - if (.@i < 7) - setarray .@price[0],8,50,0; // 1 hour items cost 8 Egrade_Coin or 50 Malang_Sp_Can. - else - setarray .@price[0],0,0,10; // 7 day items cost 10 Silvervine. - callfunc "F_mal_coin",1,"[Wandering Merchant]",.@names$[.@i],.@items[.@i],.@price[0],.@price[1],.@price[2]; - next; - } -} - -malangdo,173,145,4 script Stinky Merchant 4_M_MERCAT2,{ - callfunc "F_mal_coin",0,"[Stinky Merchant]",2; - setarray .@items[1],2873,16015; - setarray .@names$[1],"Cat Hand Glove","Cat Club"; - while(1) { - .@i = select( - "[Cat Hand Glove] 32 E-Coins/200 Cans", - "[Cat Club] 32 E-Coins/200 Cans", - "End purchasing." - ); - if (.@i == 3) { - mes "[Stinky Merchant]"; - mes "Well, then. I'll see you next time."; - mes "Goodbye."; - close; - } - mes "[Stinky Merchant]"; - mes "Are you interested in ^0000FF["+.@names$[.@i]+"]^000000?"; - switch(.@i) { - case 1: //Cat_Hand_Glove - mes "This is a glove which can give happiness"; - mes "just by wearing it."; - next; - mes "[Stinky Merchant]"; - mes "This is an ^DC143CAccessory^000000"; - mes "and its defense is 5."; - mes "It also gives"; - mes "VIT + 1, AGI + 1, DEX + 1, LUK + 1."; - next; - mes "[Stinky Merchant]"; - mes "More details are..."; - mes "SLOT : 1 / Refine : Unable / Destruction : Unable"; - next; - break; - case 2: //Cat_Club - mes "It looks like it wouldn't hurt, don't you think so?"; - mes "But I'm telling you, it can hurt someone."; - next; - mes "[Stinky Merchant]"; - mes "This is a ^DC143CMace^000000 that increases 15% of damage to the animal type of monster."; - mes "Base ATK is 88."; - mes "The other details are"; - mes "Weapon Lv : 1 / SLOT : 3 / Refine : Able / Destruction : Unable"; - next; - break; - } - callfunc "F_mal_coin",1,"[Stinky Merchant]",.@names$[.@i],.@items[.@i],32,200,0; - next; - } -} - -malangdo,150,135,5 script Roving Merchant 4_M_MERCAT1,{ - callfunc "F_mal_coin",0,"[Roving Merchant]",3; - setarray .@items[1],12639,12637,12638,12640; - setarray .@names$[1],"Flying Fish","Sow Bug","Dried Squid","Starfish"; - while(1) { - .@i = select( - "[Flying Fish] 200 Cans", - "[Sow Bug] 200 Cans", - "[Dried Squid] 200 Cans", - "[Starfish] 200 Cans", - "End purchasing." - ); - if (.@i == 5) { - mes "[Roving Merchant]"; - mes "Well, then. I'll see you next time."; - mes "Goodbye."; - close; - } - mes "[Roving Merchant]"; - mes "Are you interested in ^0000FF["+.@names$[.@i]+"]^000000?"; - switch(.@i) { - case 1: //Flying_Fish_Box - mes "This is the one that flies"; - mes "with a big pectoral."; - next; - mes "[Roving Merchant]"; - mes "This is a ^DC143CThrowing Weapon^000000."; - mes "Of course, it can give fatal wounds to the enemy"; - mes "at a certain rate when attacking."; - next; - mes "[Roving Merchant]"; - mes "Its property is neutral and ATK is 50."; - next; - break; - case 2: //Gong_Bug_Pocket - mes "In that case, I'll explain for you."; - mes "This is a ^DC143CBullet^000000 which stuns the enemy at a certain rate when attacking."; - next; - mes "[Roving Merchant]"; - mes "I feel somthing bad"; - mes "is moving in my pocket but..."; - mes "it is neutral property and its ATK is 50."; - next; - break; - case 3: //Dried_Squid_Box - mes "I'll explain about this item."; - mes "This is a ^DC143CThrowing Weapon^000000 which causes darkness at a certain rate."; - mes "It's neutral property and its ATK is 50."; - next; - mes "[Roving Merchant]"; - mes "It is compressed"; - mes "and put into a very small box,"; - mes "so be careful when you open it."; - next; - break; - case 4: //Starfish_Box - mes "I'll explain about this item."; - mes "This is a ^DC143CThrowing Weapon^000000 which stuns the enemy at a certain rate."; - next; - mes "[Roving Merchant]"; - mes "It is perfectly organized and packed"; - mes "so you can't even see inside."; - mes "It is neutral property and its ATK is 110."; - next; - break; - } - mes "[Roving Merchant]"; - mes "For your information,"; - mes "one box contains"; - mes "200 units."; - next; - callfunc "F_mal_coin",1,"[Roving Merchant]",.@names$[.@i],.@items[.@i],0,200,0; - next; - } -} - -//== Eclage ================================================ -ecl_in01,66,95,3 script Armor Merchant Naphara#e 4_F_FAIRYKID,{ - if (!checkweight(Axe,3)) { - mes "- Stop Here!! -"; - mes "- You have too many items. -"; - mes "- You cannot carry any more items. -"; - mes "- Lighten your load and -"; - mes "- try again. -"; - close; - } - mes "[Armor Merchant]"; - mes "Hello, this is Naphara's store, a place of high class goods."; - mes "What would you need?"; - next; - .@choice = select("Str Glove", "Int Glove", "Agi Glove", "Vit Glove", "Dex Glove", "Luk Glove"); - .@choice -= 1; - mes "[Armor Merchant]"; - mes "^3131FF" + .name$[.@choice] + " For ^000000,"; - mes "^3131FFMHP + 100, MSP + 20^000000"; - mes "^3131FF" + .descript$[.@choice] + "^000000"; - mes "^3131FF" + .descript2$[.@choice] + "^000000"; - mes "^3131FFRequired Level: 100^000000"; - mes "^3131FFSlot:0^000000"; - mes "^3131FFWeight:10^000000"; - mes "are the characteristic options."; - next; - mes "[Armor Merchant]"; - mes "It costs 10 Splendide Coins."; - mes "Would you like to buy it?"; - next; - if (select("Buy it.", "Don't buy it.")==1) { - if (countitem(Splendide_Coin) < 10) { - mes "[Armor Merchant]"; - mes "It seems like you don't have enough coins."; - close; - } - delitem Splendide_Coin,10; //Splendide_Coin - getitem (.@choice+2917),1; - mes "[Armor Merchant]"; - mes "Great, it's yours. Thank you."; - } - close; - -OnInit: - setarray .name$[0],"Str Glove","Int Glove","Agi Glove","Vit Glove","Dex Glove","Luk Glove"; - setarray .descript$[0],"ATK+1 increases for every STR+10", - "MATK+1 increases for every INT+10", - "FLEE+1 increases for every AGI+10", - "MHP+50 for every VIT+10", - "HIT+1 increases for every DEX+10", - "CRI+1 increases for every LUK+10"; - setarray .descript2$[0],"ATK +1% added above STR 110", - "MATK +1% added above INT 110", - "Complete Flee +1 added above AGI 110", - "MHP+1 added above VIT 110", - "Ranged attack power +1% added above DEX 110", - "Critical damage +1% added above LUK 110"; - end; -} - -ecl_in01,64,97,5 script Slot Expert Nattuer#ecl 4_F_FAIRYKID,{ - disable_items; - mes "[Slot Expert]"; - mes "I am Slot Expert Nattuer."; - mes "If you bring me an item from my little brother Naphara along with 5 Splendide Coins, I will open up one Slot for you."; - next; - if (select("Activate a Slot.", "Forget it.")==2){ - close; - } - mes "[Slot Expert]"; - mes "Slot activation is an extremely difficult procedure that can fail even with heightened care and the use of a magnifying lens."; - next; - mes "[Slot Expert]"; - mes "Of course, if your heart were as big as that flower-filled land, you wouldn't mind. Right? Should I go for it?"; - next; - if (select("Continue.", "Forget it.")==2) { - close; - } - mes "[Slot Expert]"; - mes "Which item would you like to activate with a Slot?"; - next; - .@choice = select("Str Glove", "Int Glove", "Ag Glove", "Vit Glove", "Dex Glove", "Luk Glove"); - .@choice += 2916; - mes "[Slot Expert]"; - mes "Let's confirm for the last time. Is the one you want " + getitemname(.@choice) + "?"; - next; - if (select("Yes", "No")==2) { - mes "[Slot Expert]"; - mes "Why don't you talk to me when you know for sure."; - close; - } - if (countitem(.@choice) < 1) { - mes "[Slot Expert]"; - mes "You don't have that item. Why don't you talk to me when you know for sure."; - close; - } - if (countitem(Splendide_Coin) < 5) { - mes "[Slot Expert]"; - mes "You don't have enough coins. Why don't you talk to me when you know for sure."; - close; - } - progressbar "0xFFFF00",3; - mes "[Slot Expert]"; - delitem Splendide_Coin,5; //Splendide_Coin - .@luckyday = rand(1,100); - if ( (.@luckyday%20) > 0){ - emotion e_dots; - delitem .@choice,1; - mes "Shoot, I'm sorry. It failed."; - mes "But I'm sure it will work next time. I have a feeling."; - close; - } - emotion e_no1; - delitem .@choice,1; - getitem (.@choice+6),1; - mes "My eyes feel like they're gonna pop out."; - mes "Nonetheless, congratulations. Slot activation was successful."; - close; -} - -ecl_in01,33,98,5 script Herb Merchant Plafina#e 4_M_FAIRYKID2,{ - if (checkweight(Axe,1)==0) { - mes "- Stop Here!! -"; - mes "- You have too many items. -"; - mes "- You cannot carry any more items. -"; - mes "- Lighten your load and -"; - mes "- try again. -"; - close; - } - mes "[Herb Merchant]"; - mes "Welcome, this is Plafina's Herb Store where only the freshest herbs are provided~!"; - next; - .@item = select("Snow Flip", "Peony Mommy", "Slapping Herb", "Yggdrasil Dust", "End conversation")-1; - if (.@item==4){ - mes "[Herb Merchant]"; - mes "Come back anytime."; - close; - } - mes "[Herb Merchant]"; - switch (.@item){ - case 0: - mes "Snow Flip has special effects on ^3131FFBurning, Bleeding, Deep Sleep, Sleep^000000."; - break; - case 1: - mes "Peony Mamy has special effects on ^3131FFFrost, Frozen, Freezing^000000"; - break; - case 2: - mes "Slapping Herb has special effects on ^3131FFStun, Fear, Chaos, Hallucination^000000"; - break; - case 3: - mes "Yggdrasil Dust has special effects on ^3131FFBlind, Curse, Decrease Agility, Reverse Orcish^000000."; - break; - } - mes "Requires 5 seconds between uses."; - mes "It costs "+ .cost[.@item] +" Splendide Coins for each."; - next; - .@buy = select("Buy 1.", "Buy 10.", "Don't buy."); - if (.@buy==3){ - close; - } - if (.@buy==2){ - .@buy = 10; - } - mes "[Herb Merchant]"; - mes "Would you like to buy "+ .@buy +" "+ getitemname(.items[.@item]) +"?"; - next; - if (select("Buy.", "Don't buy.")==2){ - close; - } - if (countitem(Splendide_Coin) < (.cost[.@item]*.@buy) ) { - mes "[Herb Merchant]"; - mes "You don't have enough coins."; - close; - } - mes "[Herb Merchant]"; - mes "Thank you for your business."; - delitem Splendide_Coin,.cost[.@item]*.@buy; //Splendide_Coin - getitem .items[.@item],.@buy; - close; - -OnInit: - setarray .items[0],Snow_Flip,Peony_Mommy,Slapping_Herb,Yggdrasil_Dust; - setarray .cost[0],5,5,1,1; //Splendide Coins - end; -} - -ecl_in01,67,39,4 script Replication Expert Paltu 4_M_FAIRYKID4,{ - if (checkweight(Axe,3)==0) { - mes "You have too many items to continue."; - close; - } - emotion e_lv; - mes "[Paltu]"; - mes "Woohoo- Greetings. What are you looking for? Lots of goods here."; - next; - switch (select("No thanks.", "Replication?", "I know you got lots up your sleeve!")) { - case 1: - emotion e_an; - mes "[Paltu]"; - mes "Really? Hmm?"; - close; - case 2: - mes "[Paltu]"; - mes "One can say that there's no one better in Eclage than I at utilizing magic resistance."; - next; - mes "[Paltu]"; - mes "I'll give you a good price whatever it is. Just trust me."; - next; - select("Could you do something for me?"); - emotion e_no1; - mes "[Paltu]"; - mes "Hey, I like your attitude."; - next; - mes "[Paltu]"; - mes "Ah- you know the hat you're wearing?"; - next; - emotion e_what; - mes "[Paltu]"; - mes "Don't you have any of those hats lying around in storage that are solid but too ugly to wear? You do, right?"; - next; - select("........."); - emotion e_dots,1; - emotion e_heh; - mes "[Paltu]"; - mes "See! I knew it. I knew it from the first minute."; - next; - mes "[Paltu]"; - mes "If you bring me ^ff0000 50 Splendide Coins and the ingredients^000000, I'll make you a new hat in the same shape but worn as a ^ff0000Costume^000000."; - next; - mes "[Paltu]"; - mes "Hmm, what was it...?"; - mes "I think you adventurers call them ^0571B0Costumes^000000? right?"; - next; - select("Yes~ What do you need?"); - mes "[Paltu]"; - mes "I need 1 ^0571B0hat to replicate^000000 and"; - mes "I need ^E1281E 4 Crystal Mirrors^000000 for magic resistance, ^E1281E 1 Fairy Magic Powder^000000 as the catalyst, and ^E1281E Emerald, Ruby, Sapphire, Topaz, and Zircon, 10 of each^000000, to be used for amplifying the magic power."; - next; - emotion e_no; - mes "[Paltu]"; - mes "There's quite a lot of ingredients, right? Well, I can't do anything about that. Dealing with magic power is not a joke."; - next; - select("Which hats can be replicated?"); - mes "[Paltu]"; - mes "Oh! You're pretty sharp!"; - mes "Almost forgot the most important thing."; - next; - mes "[Paltu]"; - mes "Hats that I can replicate are:"; - mes "^0571B0Frog Hat, Romantic Flower, Magestic Goat, Blush, Valkyrie Helm, Deviruchi Hat, Assassin Mask, Elven Ears, Hahoe Mask, and Boys Cap^000000 a total of 10 types."; - next; - mes "[Paltu]"; - mes "What do you think? I'll make it happen as long as I have the ingredients and the compensation."; - next; - if (select("I'll do it later.", "Show me what you got!") == 1) { - emotion e_dots; - mes "[Paltu]"; - mes "What? Are you kidding me? Please tell me you are!"; - close; - } - break; - } - disable_items; - emotion e_lv2; - mes "[Paltu]"; - mes "Oh wow."; - mes "You made the right call. I thought I was going to starve to death because the Laphines have no interest in pretty hats."; - next; - mes "[Paltu]"; - mes "I'll make it a great deal for you. You really should know I'm giving you a good deal here."; - next; - mes "[Paltu]"; - mes "Is there something you had in mind? Why don't you take a look?"; - next; - setarray .@items[0],Frog_Cap, - Centimental_Flower, - Magestic_Goat, - Blush, - Valkyrie_Helm, - Deviruchi_Cap, - Assassin_Mask_, - Elven_Ears, - Hahoe_Mask, - Boys_Cap; - setarray .@costumes[0], C_Frog_Cap, - C_Centimental_Flower, - C_Magestic_Goat, - C_Blush, - C_Valkyrie_Helm, - C_Deviruchi_Cap, - C_Assassin_Mask_, - C_Elven_Ears, - C_Hahoe_Mask, - C_Boys_Cap; - if ((countitem(Splendide_Coin) >= 50) && (countitem(Crystal_Mirror) >= 4) && countitem(Angel_Magic_Power) && (countitem(Azure_Jewel) >= 10) && (countitem(Cardinal_Jewel) >= 10) && (countitem(Blue_Jewel) >= 10) && (countitem(Golden_Jewel) >= 10) && (countitem(Bluish_Green_Jewel) >= 10)) - .@item_check =1; - - for(.@i = 0; .@i<getarraysize(.@items); .@i++) { - if (.@item_check && countitem(.@items[.@i])) - .@menu$ = .@menu$+getitemname(.@items[.@i])+" (^2502FDAble to Replicate^000000):"; - else - .@menu$ = .@menu$+getitemname(.@items[.@i])+" (^777777Insufficient ingredients^000000):"; - } - .@i = select(.@menu$)-1; - mes "[Paltu]"; - mes "Is ^0571B0"+getitemname(.@items[.@i])+"^000000 what you wanted?"; - next; - if (.@item_check == 0 || countitem(.@items[.@i]) == 0) { - emotion e_sob; - mes "[Paltu]"; - mes "Ay... Credit purchases are difficult for me."; - next; - mes "[Paltu]"; - mes "^0571B0"+getitemname(.@items[.@i])+"^000000 and"; - mes "^E1281E50 Splendide Coins, 4 Crystal Mirrors, 1 Fairy Magic Powder, 10 of each Emerald, Ruby, Sapphire, Topaz, and Zircon^000000 are necessary."; - next; - mes "[Paltu]"; - mes "I'm in a tight spot myself. Please consider my situation also."; - close; - } - emotion e_what; - mes "[Paltu]"; - mes "Yes, this is more than enough. Should I make it now?"; - next; - if (select("Please make it now.", "Oops, I have to take care of something...") == 2) { - emotion e_omg; - mes "[Paltu]"; - mes "Hey.. Hey! Hey! Where you going?"; - close; - } - emotion e_omg; - mes "[Paltu]"; - mes "I got it. Oh right! Almost forgot again."; - next; - mes "[Paltu]"; - mes "^FF0000In the process of replication, magic intervention phenomenon causes the hat to lose all of its refinements, cards, and hidden enchantments.^000000"; - next; - mes "[Paltu]"; - mes "^FF0000And if you possess multiple hats of the same type, the one you don't want can undergo the replication process, so please check to make sure.^000000"; - next; - mes "[Paltu]"; - mes "So any problems with that?"; - next; - if (select("Let me go check.", "Start the replication process.")==1) { - mes "[Paltu]"; - mes "Yeah, please make sure!"; - close; - } - emotion e_gg; - mes "[Paltu]"; - mes "Woohoo- Got it."; - mes "It's finally time for me to use my skills again."; - next; - emotion e_swt2; - mes "[Paltu]"; - mes "Do this thing here, and do that thing there, and then do this thing here again..."; - next; - emotion e_dots; - emotion e_swt2; - mes "[Paltu]"; - mes "... .. ..."; - specialeffect EF_BEGINSPELL; - progressbar "0xFFFF00",1; - specialeffect EF_BEGINSPELL2; - progressbar "0xFFFF00",1; - specialeffect EF_BEGINSPELL3; - progressbar "0xFFFF00",1; - specialeffect EF_BEGINSPELL4; - progressbar "0xFFFF00",1; - specialeffect EF_MVP; - next; - delitem Splendide_Coin,50; - delitem Crystal_Mirror,4; - delitem Angel_Magic_Power,1; - delitem Azure_Jewel,10; - delitem Cardinal_Jewel,10; - delitem Blue_Jewel,10; - delitem Golden_Jewel,10; - delitem Bluish_Green_Jewel,10; - delitem .@items[.@i],1; - getitem .@costumes[.@i],1; - mes "[Paltu]"; - mes "Good. This is a satisfying result."; - mes "I'll do even a better job next time. Please tell others about my work. Have a good day~"; - close; -} diff --git a/npc/re/merchants/diamond.txt b/npc/re/merchants/diamond.txt deleted file mode 100644 index 665af5e6a..000000000 --- a/npc/re/merchants/diamond.txt +++ /dev/null @@ -1,237 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Z3R0 -//= -//= 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/>. -//========================================================================= -//= Rare Diamond Merchant -//================= Description =========================================== -//= Exchanges 17 Carat Diamond -//================= Current Version ======================================= -//= 1.5 -//========================================================================= - -- script RareDiamondMerchant 1_M_MERCHANT,{ - - .@npc$ = "[Rare Diamond Merchant]"; - - mes .@npc$; - mes "Ladies and Gentlemen! ! !"; - mes "You've heard rumors but you've never once seen with your own eyes"; - mes "the world's rarest diamond!"; - mes "The ^FF82FF'17 Carat Diamond'^000000 is currently on sale for a cheap price!!"; - mes "If valuable diamonds interest you then listen up!"; - next; - - mes .@npc$; - mes "You can give the diamond as a gift to your lover."; - mes "The receiver of the ^FF82FF'17 Carat Diamond'^000000 will cherish it"; - mes "and treasure you in their heart."; - emotion e_loud; - next; - - mes .@npc$; - mes "What? You don't have a lover?"; - mes "You can still just hang on to it for yourself."; - mes "The enchanting aura of the ^FF82FF'17 Carat Diamond'^000000 is likely"; - mes "to bring love into your life."; - next; - - mes .@npc$; - mes "Known as the captivating diamond of diamonds..."; - mes "It is the ^FF82FF'17 Carat Diamond'^000000!"; - next; - - .@menu$ = "^FF82FF'17 Carat Diamond'^000000?"; - if (countitem(17Carat_Dia)) - .@menu$ += ":Exchange my 17 Carat Diamond for zeny..."; - - switch(select(.@menu$)) { - case 1: - mes .@npc$; - mes "Yes!"; - mes "Hehe, the ^FF82FF'17 Carat Diamond'^000000 you see right now"; - mes "is one of the highest quality 17 carat diamonds."; - mes "Comparing it to any pea-sized, colorless rock you may have"; - mes "dug up from Morroc is unspeakable!"; - emotion e_omg; - next; - mes .@npc$; - mes "Some claim that this is the very same diamond"; - mes "that was seen by Kachua in Comodo!"; - next; - if (select("End Conversation", "How much is it?") == 1) { - mes .@npc$; - mes "It's rather inexpensive!"; - mes "If you're interested, talk to me any time!"; - close; - } - mes .@npc$; - mes "Of course! The most important thing is price!"; - mes "As I've said earlier, the ^FF82FF'17 Carat Diamond'^000000 has been"; - mes "appraised as a 17 carat diamond."; - mes "There aren't many like it in the world."; - next; - mes .@npc$; - mes "The price is a mere 500 million zeny!"; - mes "There is also a 1,000,000z service fee."; - mes "Compared to the quality of the diamond"; - mes "this is a small price to pay."; - next; - if (select("^828282It's too expensive.^000000", "I'll buy it.") == 1) { - mes .@npc$; - mes "To say that a diamond such as the"; - mes "^FF82FF'17 Carat Diamond'^000000 is too expensive, "; - mes "you leave me speechless."; - close; - } - mes .@npc$; - mes "OOOH! I knew from the moment I saw you that you were the rightful"; - mes "owner of this wonderful diamond."; - mes "I'm glad I wasn't wrong!"; - mes "I believe this diamond will suit you quite well."; - mes "All I need from you is to complete this contract."; - next; - while(1) { - if (select("^B9062FI will sign the contract.^000000", "^828282Nevermind, I changed my mind.^000000") == 2) { - mes .@npc$; - mes "I see, that's too bad.."; - close; - } - mes .@npc$; - mes "What is your name?"; - next; - mes "[" + strcharinfo(PC_NAME) + "]"; - mes "My name is " + strcharinfo(PC_NAME) + "."; - next; - mes .@npc$; - mes "Alright then, please sign here."; - next; - input .@charname$; - if (.@charname$ == strcharinfo(PC_NAME)) { - mes .@npc$; - mes "Okay, good."; - mes "All that is left now is payment."; - next; - if (Zeny >= 501000000) { - mes .@npc$; - mes ". . . . . ."; - next; - mes .@npc$; - mes "Calculating the price and service fee.."; - mes "501,000,000 zeny."; - mes "Amount has been confirmed."; - emotion e_loud; - Zeny -= 501000000; - getitem 6024, 1; - next; - mes .@npc$; - mes "You may exchange the diamond back for zeny at any time."; - mes "However, there will be a 1,000,000z service fee."; - mes "Thank you for your business."; - emotion e_thx; - close; - } - else { - mes .@npc$; - mes "Hm?"; - mes "I'm sorry, but you don't have sufficient funds."; - mes "Including the service fee, a total of 501,000,000z is required."; - mes "Please check your zeny balance and try again."; - emotion e_hmm; - close; - } - } - else { - mes .@npc$; - mes "Is this really your signature?"; - mes "Will sign again to confirm?"; - next; - } - } - case 2: - mes .@npc$; - mes "AAH. You would like to exchange your ^FF82FF'17 Carat Diamond'^000000 for zeny?"; - emotion e_gasp; - next; - if (select("Yes", "No") == 2) { - mes .@npc$; - mes "Then, what is it you desire?.."; - mes ". . . . . ...."; - emotion e_dots; - close; - } - mes .@npc$; - mes "I see. After I receive your signature, "; - mes "You must offer your ^FF82FF'17 Carat Diamond'^000000."; - mes "Also don't forget there is a 1,000,000z service fee!"; - next; - mes .@npc$; - mes "What is your name?"; - next; - mes "[" + strcharinfo(PC_NAME) + "]"; - mes "My name is " + strcharinfo(PC_NAME) + "."; - next; - mes .@npc$; - mes "Alright then, please sign here."; - next; - while (1) { - if (select("Sign", "Don't Sign") == 2) { - mes .@npc$; - mes "The trade cannot be completed without your signature."; - close; - } - input .@charname$; - if (.@charname$ == strcharinfo(PC_NAME)) { - mes .@npc$; - mes "Your signature has been received."; - mes "I will now take your ^FF82FF'17 Carat Diamond'^000000.."; - mes "You will receive ^0000FF499,000,000z^000000 afterwards."; - next; - mes .@npc$; - mes "Thank you for your business."; - mes "Whenever you need a ^FF82FF'17 Carat Diamond'^000000,"; - mes "come back anytime with 500 million zeny."; - emotion e_thx; - delitem 6024, 1; - Zeny += 499000000; - close; - } - else { - mes .@npc$; - mes "Is this really your signature?"; - mes "Will sign again to confirm?"; - next; - } - } - } -} - -prontera,165,89,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#1 1_M_MERCHANT -geffen,106,63,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#2 1_M_MERCHANT -morocc,146,100,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#3 1_M_MERCHANT -alberta,129,60,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#4 1_M_MERCHANT -lighthalzen,163,65,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#5 1_M_MERCHANT -rachel,106,142,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#6 1_M_MERCHANT -payon,180,130,6 duplicate(RareDiamondMerchant) Rare Diamond Merchant#7 1_M_MERCHANT diff --git a/npc/re/merchants/enchan_ko.txt b/npc/re/merchants/enchan_ko.txt deleted file mode 100644 index 97b307ddd..000000000 --- a/npc/re/merchants/enchan_ko.txt +++ /dev/null @@ -1,576 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules 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/>. -//========================================================================= -//= Kagerou/Oboro Gear Enchants -//================= Description =========================================== -//= Adds enchantments to Kagerou/Oboro gear. -//================= Current Version ======================================= -//= 1.0 -//========================================================================= - -//== Main NPC :: job_ko ==================================== -que_ng,75,20,3 script Artisan Tene#ko 4_M_JPN2,{ - disable_items; - mes "[Artisan Tene]"; - mes "Hello? I'm Artisan Tene, the most respectful blacksmith of them all."; - next; - mes "[Artisan Tene]"; - mes "How may I help you?"; - next; - switch (select("Which blacksmith?", "I want to add option.", "I want to remove option.")) { - case 1: // Which blacksmith? - mes "[Artisan Tene]"; - mes "Oh! Sorry, I didn't introduce myself."; - next; - mes "[Artisan Tene]"; - mes "I can add or remove options from some weapons and armor at a small price."; - next; - mes "[Artisan Tene]"; - mes "Oh! Do you want to know the list of weapons and armor I work on?"; - next; - switch (select("Take a look at the weapon list.", "Take a look at the armor list.")) { - case 1: // Take a look at the weapon list - mes "[Artisan Tene]"; - mes "Are you interested in the weapon list?"; - next; - mes "[Artisan Tene]"; - mes "The weapons I work on are "; - mes "^ff0000Raksasa Dagger [1]^000000"; - mes "^ff0000Mikatsuki[1]^000000"; - mes "^ff0000Huuma Swirling Petal [2]^000000"; - mes "^ff0000Huuma Fluttering Snow^000000"; - mes "^ff0000Huuma Thunderstorm^000000"; - break; - case 2: // Take a look at the armor list - mes "[Artisan Tene]"; - mes "Are you interested in the armor list?"; - next; - mes "[Artisan Tene]"; - mes "The armor I work on is"; - mes "^ff0000Wolf Armguard [1]^000000"; - mes "^ff0000Crescent Armguard [1]^000000"; - mes "^ff0000Ninja Scale Armor [1]^000000"; - mes "^ff0000Tenebris Latitantes [1]^000000"; - mes "^ff0000Special Ninja Suit [1]^000000"; - break; - } - next; - mes "[Artisan Tene]"; - mes "This is it. I'm still in practice to learn and handle more battlegear."; - next; - mes "[Artisan Tene]"; - mes "If you'd like, I can add options to your 4th and 3rd Slots at a small cost."; - close; - case 2: // I want to add option - mes "[Artisan Tene]"; - mes "Oh! You need to add an option."; - mes "I use the method of adding options to your 4th and 3rd slots of battlegear equipped."; - next; - mes "[Artisan Tene]"; - mes "Since I use a stable and unique way of adding options, there are no risks of ^ff0000'Reset Refine'^000000 or ^ff0000'Losing Cards'^000000 equipped."; - next; - mes "[Artisan Tene]"; - mes "But since the costs of materials are high, I only ask for a ^5565AA small cost^000000 for my services with the exception of the material expenses."; - next; - mes "[Artisan Tene]"; - mes "Ha ha. I must have talked too much. Which class of equipment do you want to add an option to?"; - next; - switch (select("Weapon...", "Armor...")) { - case 1: - mes "[Artisan Tene]"; - mes "So you want to add an option to your weapon. That will be ^ff0000100,000 Zeny for a 1 time service.^000000"; - next; - mes "[Artisan Tene]"; - mes "^FF0000Ah! I can add an additional option if you equip a one-handed weapon on your right hand because it is easier for me to work on.^000000"; - next; - mes "[Artisan Tene]"; - mes "Which weapon do you want to add an option to?"; - next; - switch (select("Later...", "Raksasa Dagger [1]", "Mikatsuki [1]", "Huuma Swirling Petal [2]", "Huuma Fluttering Snow", "Huuma Thunderstorm")) { - case 1: - mes "[Artisan Tene]"; - mes "Changed your mind? Very well. Hope to see you later."; - close; - case 2: - .@equip_id = Raksasa_Dagger; - break; - case 3: - .@equip_id = Mikatsuki; - break; - case 4: - .@equip_id = Huuma_Swirling_Petal; - break; - case 5: - .@equip_id = Huuma_Fluttering_Snow; - break; - case 6: - .@equip_id = Huuma_Thunderstorm; - break; - } - .@part = EQI_HAND_R; - break; - case 2: - mes "[Artisan Tene]"; - mes "So you want to add an option to your armor. That will be ^ff0000100,000 Zeny for a 1 time service.^000000"; - next; - mes "[Artisan Tene]"; - mes "Which armor do you want to add an option to?"; - next; - switch (select("Later...", "Wolf Armguard [1]", "Crescent Armguard [1]", "Ninja Scale Armor [1]", "Tenebris Latitantes [1]", "Special Ninja Suit [1]")) { - case 1: - mes "[Artisan Tene]"; - mes "Changed your mind? Very well. Hope to see you later."; - close; - case 2: - .@part = EQI_HAND_L; - .@equip_id = Wolf_Armguard; - break; - case 3: - .@part = EQI_HAND_L; - .@equip_id = Crescent_Armguard; - break; - case 4: - .@part = EQI_ARMOR; - .@equip_id = Ninja_Scale_Armor; - break; - case 5: - .@part = EQI_ARMOR; - .@equip_id = Tenebris_Latitantes; - break; - case 6: - .@part = EQI_ARMOR; - .@equip_id = Special_Ninja_Suit_; - break; - } - break; - } - break; - case 3: // I want to remove option - mes "[Artisan Tene]"; - mes "You want to remove an option from your item. You didn't like the option?"; - next; - mes "[Artisan Tene]"; - mes "Sorry but I'm not experienced enough. You've paid me for nothing."; - next; - mes "[Artisan Tene]"; - mes "^ff0000Removing an option will be 100,000 Zeny.^000000 Which option from the list of items do you want to remove?"; - next; - switch(select("Later...", "Raksasa Dagger [1]", "Mikatsuki [1]", "Huuma Swirling Petal [2]", "Huuma Fluttering Snow", "Huuma Thunderstorm", "Wolf Armguard [1]", "Crescent Armguard [1]", "Ninja Scale Armor [1]", "Tenebris Latitantes [1]", "Special Ninja Suit [1]")) { - case 1: - mes "[Artisan Tene]"; - mes "Removing options is expensive, isn't it? Sorry. I will work harder in developing my skills and bring down costs as well."; - close; - case 2: - .@part = EQI_HAND_R; - .@equip_id = Raksasa_Dagger; - break; - case 3: - .@part = EQI_HAND_R; - .@equip_id = Mikatsuki; - break; - case 4: - .@part = EQI_HAND_R; - .@equip_id = Huuma_Swirling_Petal; - break; - case 5: - .@part = EQI_HAND_R; - .@equip_id = Huuma_Fluttering_Snow; - break; - case 6: - .@part = EQI_HAND_R; - .@equip_id = Huuma_Thunderstorm; - break; - case 7: - .@part = EQI_HAND_L; - .@equip_id = Wolf_Armguard; - break; - case 8: - .@part = EQI_HAND_L; - .@equip_id = Crescent_Armguard; - break; - case 9: - .@part = EQI_ARMOR; - .@equip_id = Ninja_Scale_Armor; - break; - case 10: - .@part = EQI_ARMOR; - .@equip_id = Tenebris_Latitantes; - break; - case 11: - .@part = EQI_ARMOR; - .@equip_id = Special_Ninja_Suit_; - break; - } - mes "[Artisan Tene]"; - mes "You want to reset ^44B7BC" + getitemname(.@equip_id) + "^000000?"; - next; - mes "[Artisan Tene]"; - mes "The cost is the same but I do provide a service to remove only the option on the 3rd slot and leave the 4th slot as is. Are you interested?"; - next; - switch (select("Reset only the 3rd Slot.", "Reset all.")) { - case 1: - mes "[Artisan Tene]"; - mes "Very well. I will reset only your 3rd slot."; - next; - .@only_3rd = true; - break; - case 2: - mes "[Artisan Tene]"; - mes "Very well. I will reset all slots."; - next; - break; - } - .@remove = true; - break; - } - if (getequipisequiped(.@part) == 0) { - mes "[Artisan Tene]"; - mes "You will have to equip all items before ^44B7BC" + getitemname(.@equip_id) + "^000000."; - close; - } - if (Zeny < 100000) { // Custom Translation - mes "[Artisan Tene]"; - mes "I'm sorry, but you don't have enough Zeny!"; - next; - mes "[Artisan Tene]"; - mes "Our charge is very low, so please bear with me."; - close; - } - if (getequipid(.@part) != .@equip_id) { - mes "[Artisan Tene]"; - mes "I don't think this is the equipment you requested."; - next; - mes "[Artisan Tene]"; - mes "I cannot work on equipment other than those from my list."; - close; - } - - .@equip_refine = getequiprefinerycnt(.@part); - setarray .@equip_card, getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3); - - .@enchants = callsub(S_IsEnchanted, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3]); - // Initialization - if (.@remove) { - if (!.@enchants) { - mes "[Artisan Tene]"; - mes "This equipment is is not enchanted. Please check again."; //custom translation - close; - } - if (.@only_3rd && .@enchants < 2) { - mes "[Artisan Tene]"; - mes "The third slot is is not enchanted. Please check again."; //custom translation - close; - } - .@equip_card[2] = 0; - if (!.@only_3rd) - .@equip_card[3] = 0; - progressbar "ffff00",2; - Zeny -= 100000; - delequip .@part; - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; - - mes "[Artisan Tene]"; - mes "Initialization complete."; - close; - } - - // Enchantment - if (.@equip_refine <= 4) .@ko_type01 = 1; - else if (.@equip_refine <= 7) .@ko_type01 = 2; - else if (.@equip_refine <= 9) .@ko_type01 = 3; - else if (.@equip_refine <= 12) .@ko_type01 = 4; - else .@ko_type01 = 5; - - //custom translations - .@available_slots = callsub(S_CanEnchant, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3]); - if (!.@available_slots) { - mes "[Artisan Tene]"; - mes "This equipment cannot be further enchanted."; - next; - mes "[Artisan Tene]"; - mes "If you are not satisfied with the enchantments, I suggest that you initialize."; - close; - } - mes "[Artisan Tene]"; - if (.@available_slots < 2) - mes "The fourth slot has already been enchanted. Shall I enchant the third slot as well?"; - else - mes "This equipment is not currently enchanted. Shall I enchant the fourth slot?"; - next; - if (select("Do it later", "Do it now") == 1) { - mes "[Artisan Tene]"; - mes "Very well. Hope to see you later."; - close; - } - mes "[Artisan Tene]"; - if (.@available_slots < 2) - mes "Starting to enchant the third slot."; - else - mes "Starting to enchant the fourth slot."; - next; - if (.@available_slots >= 2) { // slot 4 - .@r = rand(1,1000); - switch (.@ko_type01) { - case 1: - if (.@r <= 200) .@e_socket04 = Mdef2; - else if (.@r <= 350) .@e_socket04 = Mdef4; - else if (.@r <= 450) .@e_socket04 = Mdef6; - else if (.@r <= 500) .@e_socket04 = Mdef8; - else if (.@r <= 700) .@e_socket04 = Def3; - else if (.@r <= 850) .@e_socket04 = Def6; - else if (.@r <= 950) .@e_socket04 = Def9; - else .@e_socket04 = Def12; - .@enchant = .@e_socket04; - break; - case 2: - if (.@r <= 90) .@d_socket04 = Mdef2; - else if (.@r <= 170) .@d_socket04 = Mdef4; - else if (.@r <= 240) .@d_socket04 = Mdef6; - else if (.@r <= 300) .@d_socket04 = Mdef8; - else if (.@r <= 390) .@d_socket04 = Def3; - else if (.@r <= 470) .@d_socket04 = Def6; - else if (.@r <= 540) .@d_socket04 = Def9; - else if (.@r <= 600) .@d_socket04 = Def12; - else if (.@r <= 660) .@d_socket04 = Strength1; - else if (.@r <= 720) .@d_socket04 = Inteligence1; - else if (.@r <= 780) .@d_socket04 = Vitality1; - else if (.@r <= 840) .@d_socket04 = Dexterity1; - else if (.@r <= 900) .@d_socket04 = Agility1; - else .@d_socket04 = Luck1; - .@enchant = .@d_socket04; - break; - case 3: - if (.@r <= 90) .@c_socket04 = Strength1; - else if (.@r <= 180) .@c_socket04 = Inteligence1; - else if (.@r <= 270) .@c_socket04 = Vitality1; - else if (.@r <= 360) .@c_socket04 = Dexterity1; - else if (.@r <= 450) .@c_socket04 = Agility1; - else if (.@r <= 600) .@c_socket04 = Luck1; - else if (.@r <= 660) .@c_socket04 = Strength2; - else if (.@r <= 720) .@c_socket04 = Inteligence2; - else if (.@r <= 780) .@c_socket04 = Vitality2; - else if (.@r <= 840) .@c_socket04 = Dexterity2; - else if (.@r <= 900) .@c_socket04 = Agility2; - else .@c_socket04 = Luck2; - .@enchant = .@c_socket04; - break; - case 4: - if (.@r <= 70) .@b_socket04 = Strength1; - else if (.@r <= 140) .@b_socket04 = Inteligence1; - else if (.@r <= 210) .@b_socket04 = Vitality1; - else if (.@r <= 280) .@b_socket04 = Dexterity1; - else if (.@r <= 350) .@b_socket04 = Agility1; - else if (.@r <= 440) .@b_socket04 = Luck1; - else if (.@r <= 495) .@b_socket04 = Strength2; - else if (.@r <= 550) .@b_socket04 = Inteligence2; - else if (.@r <= 605) .@b_socket04 = Vitality2; - else if (.@r <= 660) .@b_socket04 = Dexterity2; - else if (.@r <= 715) .@b_socket04 = Agility2; - else if (.@r <= 800) .@b_socket04 = Luck2; - else if (.@r <= 860) .@b_socket04 = HP100; - else if (.@r <= 910) .@b_socket04 = HP200; - else if (.@r <= 950) .@b_socket04 = HP300; - else if (.@r <= 980) .@b_socket04 = SP50; - else .@b_socket04 = SP100; - .@enchant = .@b_socket04; - break; - case 5: - if (.@r <= 59) .@a_socket04 = Strength2; - else if (.@r <= 118) .@a_socket04 = Inteligence2; - else if (.@r <= 177) .@a_socket04 = Vitality2; - else if (.@r <= 236) .@a_socket04 = Dexterity2; - else if (.@r <= 295) .@a_socket04 = Agility2; - else if (.@r <= 354) .@a_socket04 = Luck2; - else if (.@r <= 413) .@a_socket04 = HP100; - else if (.@r <= 472) .@a_socket04 = HP200; - else if (.@r <= 530) .@a_socket04 = HP300; - else if (.@r <= 589) .@a_socket04 = SP50; - else if (.@r <= 648) .@a_socket04 = SP100; - else if (.@r <= 707) .@a_socket04 = Strength3; - else if (.@r <= 765) .@a_socket04 = Inteligence3; - else if (.@r <= 824) .@a_socket04 = Vitality3; - else if (.@r <= 883) .@a_socket04 = Dexterity3; - else if (.@r <= 942) .@a_socket04 = Agility3; - else .@a_socket04 = Luck3; - .@enchant = .@a_socket04; - break; - } - .@equip_card[2] = .@enchant; - } else if (.@available_slots == 1) { // slot 3 - .@r = rand(1,1000); - switch (.@ko_type01) { - case 1: - if (.@r <= 125) .@e_socket03 = Mdef2; - else if (.@r <= 250) .@e_socket03 = Mdef4; - else if (.@r <= 375) .@e_socket03 = Mdef6; - else if (.@r <= 500) .@e_socket03 = Mdef8; - else if (.@r <= 625) .@e_socket03 = Def3; - else if (.@r <= 750) .@e_socket03 = Def6; - else if (.@r <= 875) .@e_socket03 = Def9; - else .@e_socket03 = Def12; - .@enchant = .@e_socket03; - break; - case 2: - if (.@r <= 100) .@d_socket03 = Mdef2; - else if (.@r <= 190) .@d_socket03 = Mdef4; - else if (.@r <= 270) .@d_socket03 = Mdef6; - else if (.@r <= 340) .@d_socket03 = Mdef8; - else if (.@r <= 440) .@d_socket03 = Def3; - else if (.@r <= 530) .@d_socket03 = Def6; - else if (.@r <= 610) .@d_socket03 = Def9; - else if (.@r <= 680) .@d_socket03 = Def12; - else if (.@r <= 720) .@d_socket03 = Strength1; - else if (.@r <= 760) .@d_socket03 = Inteligence1; - else if (.@r <= 800) .@d_socket03 = Vitality1; - else if (.@r <= 850) .@d_socket03 = Dexterity1; - else if (.@r <= 880) .@d_socket03 = Agility1; - else .@d_socket03 = Luck1; - .@enchant = .@d_socket03; - break; - case 3: - if (.@r <= 100) .@c_socket03 = Strength1; - else if (.@r <= 200) .@c_socket03 = Inteligence1; - else if (.@r <= 305) .@c_socket03 = Vitality1; - else if (.@r <= 410) .@c_socket03 = Dexterity1; - else if (.@r <= 500) .@c_socket03 = Agility1; - else if (.@r <= 700) .@c_socket03 = Luck1; - else if (.@r <= 750) .@c_socket03 = Strength2; - else if (.@r <= 780) .@c_socket03 = Inteligence2; - else if (.@r <= 830) .@c_socket03 = Vitality2; - else if (.@r <= 880) .@c_socket03 = Dexterity2; - else if (.@r <= 900) .@c_socket03 = Agility2; - else .@c_socket03 = Luck2; - .@enchant = .@c_socket03; - break; - case 4: - if (.@r <= 70) .@b_socket03 = Strength1; - else if (.@r <= 160) .@b_socket03 = Inteligence1; - else if (.@r <= 250) .@b_socket03 = Vitality1; - else if (.@r <= 340) .@b_socket03 = Dexterity1; - else if (.@r <= 400) .@b_socket03 = Agility1; - else if (.@r <= 500) .@b_socket03 = Luck1; - else if (.@r <= 540) .@b_socket03 = Strength2; - else if (.@r <= 580) .@b_socket03 = Inteligence2; - else if (.@r <= 625) .@b_socket03 = Vitality2; - else if (.@r <= 670) .@b_socket03 = Dexterity2; - else if (.@r <= 700) .@b_socket03 = Agility2; - else if (.@r <= 800) .@b_socket03 = Luck2; - else if (.@r <= 860) .@b_socket03 = HP100; - else if (.@r <= 900) .@b_socket03 = HP200; - else if (.@r <= 920) .@b_socket03 = HP300; - else if (.@r <= 965) .@b_socket03 = SP50; - else .@b_socket03 = SP100; - .@enchant = .@b_socket03; - break; - case 5: - if (.@r <= 59) .@a_socket03 = Strength2; - else if (.@r <= 118) .@a_socket03 = Inteligence2; - else if (.@r <= 177) .@a_socket03 = Vitality2; - else if (.@r <= 236) .@a_socket03 = Dexterity2; - else if (.@r <= 295) .@a_socket03 = Agility2; - else if (.@r <= 354) .@a_socket03 = Luck2; - else if (.@r <= 413) .@a_socket03 = HP100; - else if (.@r <= 472) .@a_socket03 = HP200; - else if (.@r <= 530) .@a_socket03 = HP300; - else if (.@r <= 589) .@a_socket03 = SP50; - else if (.@r <= 648) .@a_socket03 = SP100; - else if (.@r <= 707) .@a_socket03 = Strength3; - else if (.@r <= 765) .@a_socket03 = Inteligence3; - else if (.@r <= 824) .@a_socket03 = Vitality3; - else if (.@r <= 883) .@a_socket03 = Dexterity3; - else if (.@r <= 942) .@a_socket03 = Agility3; - else .@a_socket03 = Luck3; - .@enchant = .@a_socket03; - break; - } - .@equip_card[2] = .@equip_card[3]; - .@equip_card[3] = .@enchant; - } else { - mes "[Artisan Tene]"; - mes "An unknown error has occurred. Please contact customer service. *^_^*"; - close; - } - progressbar "0xFFFF00",2; - Zeny -= 100000; - delequip .@part; - - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; - - mes "[Artisan Tene]"; - mes "^44B7BC" + getitemname(.@equip_id) + "^000000"; - mes "The equipment has been enchanted."; //custom translation - close; - -/** - * Checks if the item having the given card set is enchanted - * - * callsub(S_IsEnchanted, <card1>, <card2>, <card3>, <card4>) - * - * @param card1, card2, card3, card4: card IDs in the respective slots - * @return the amount of enchants ({0, 1, 2}) - */ -S_IsEnchanted: - .@card1 = getarg(0); - .@card2 = getarg(1); - .@card3 = getarg(2); - .@card4 = getarg(3); - if (.@card1 == -256 || .@card1 == 254 || .@card1 == 255) - return 0; - if (.@card3 >= 4700 && .@card3 < 5000) { - if (.@card4 >= 4700 && .@card4 < 5000) { - return 2; - } - return 1; - } - return 0; - -/** - * Checks if the item can be enchanted - * - * callsub(S_CanEnchant, <card1>, <card2>, <card3>, <card4>) - * - * @param card1, card2, card3, card4: card IDs in the respective slots - * @return the amount of available enchant slots ({2, 1, 0}) - */ -S_CanEnchant: - .@card1 = getarg(0); - .@card2 = getarg(1); - .@card3 = getarg(2); - .@card4 = getarg(3); - if (.@card1 != 0) - return 0; - if (.@card2 != 0) - return 0; - if (.@card3 != 0) - return 0; - if (.@card4 != 0) { - if (.@card4 < 4700 || .@card4 >= 5000) - return 0; - return 1; - } - return 2; -} diff --git a/npc/re/merchants/enchan_mal.txt b/npc/re/merchants/enchan_mal.txt deleted file mode 100644 index e921a7336..000000000 --- a/npc/re/merchants/enchan_mal.txt +++ /dev/null @@ -1,668 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Euphy -//= Copyright (C) Muad_Dib -//= -//= 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/>. -//========================================================================= -//= Malangdo Enchants -//================= Description =========================================== -//= Adds enchantments to many high level weapons in exchange for Malangdo -//= coins. -//================= Current Version ======================================= -//= 1.0a -//========================================================================= - -malangdo,213,167,4 script Mayomayo#mal 4_CAT_3COLOR,{ - disable_items; - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of objects. Let's try to continue after reducing those objects."; - close; - } - if (MaxWeight - Weight < 10000) { - mes "Can't continue because you have too many heavy objects. Let's try to continue after reducing the weight."; - close; - } - mes "[Mayomayo]"; - mes "Wow welcome. It is new Mayomayo refinement store~ I enchant some luxury weapons including level 4 weapons."; - next; - switch(select("Any store policy changes?", "Enchant High Ranked Weapon", "Initialize Enchant (Need Silvervine Fruit)")) { - case 1: - mes "[Mayomayo]"; - mes "When I enchant weapons, the slotted cards or refined level are dissipated sometimes. I hated it. However, one day I found how to do it without any extinction."; - next; - mes "[Mayomayo]"; - mes "Have you ever seen a building of person of reinforcement capacity association?"; - next; - if(select("I've seen it before.", "I haven't seen it before.") == 2) { - mes "[Mayomayo]"; - mes "That builiding is located to the southeast of where I am. Why don't you go on a field trip there?"; - close; - } - mes "[Mayomayo]"; - mes "If you go to the place, there is someone who enchants the Archangel Wing. At that time that was amazing, because that was impossible ability by my own skill."; - next; - mes "[Mayomayo]"; - mes "Every night I became his butler and did odd jobs. That is how I learned to enchant."; - next; - mes "[Mayomayo]"; - mes "Several rules are changed. Well, you better have experience."; - close; - case 2: - @mal_enchant_select = 1; - break; - case 3: - @mal_enchant_select = 2; - break; - } - - if (!getequipisequiped(EQI_HAND_R)) { - mes "[Mayomayo]"; - mes "Did you take off your equipment?"; - @mal_enchant_select = 0; - close; - } - @mal_equip_id = getequipid(EQI_HAND_R); - .@equip_type = getiteminfo(@mal_equip_id, ITEMINFO_SUBTYPE); - - //callsub L_Socket,<cost multiplier>,<4-x enchants possible>; - switch(.@equip_type) { // Check weapon type first to speed up the checks. - case W_DAGGER: // Daggers - switch(@mal_equip_id) { - case 1224: callsub L_Socket,1,2; //Sword_Breaker - case 1225: callsub L_Socket,1,2; //Mail_Breaker - case 1227: callsub L_Socket,1,2; //Weeder_Knife - case 1229: callsub L_Socket,1,2; //Mamas_Knife - case 1232: callsub L_Socket,1,2; //Assasin_Dagger - case 1233: callsub L_Socket,1,2; //Exercise - case 1235: callsub L_Socket,1,2; //Azoth - case 1236: callsub L_Socket,1,2; //Sucsamad - case 1237: callsub L_Socket,1,2; //Grimtooth_ - case 1240: callsub L_Socket,1,2; //Princess_Knife - case 1241: callsub L_Socket,1,2; //Cursed_Dagger - case 1242: callsub L_Socket,1,2; //Counter_Dagger - case 1244: callsub L_Socket,1,2; //Holy_Dagger - case 13046: callsub L_Socket,1,3; //Krieg - case 13047: callsub L_Socket,1,2; //Weihna - case 13061: callsub L_Socket,1,2; //Black_Wing - case 1223: callsub L_Socket,2,2; //Forturn_Sword - case 1228: callsub L_Socket,2,2; //Combat_Knife - case 1234: callsub L_Socket,2,2; //Moonlight_Sword - case 1230: callsub L_Socket,4,2; //House_Auger - case 1231: callsub L_Socket,4,2; //Bazerald - case 13062: callsub L_Socket,4,2; //Ancient_Dagger - } - break; - case W_KATAR: // Katars - switch(@mal_equip_id) { - case 1271: callsub L_Socket,1,2; //Blood_Tears - case 1263: callsub L_Socket,1,2; //Unholy_Touch - case 1270: callsub L_Socket,1,2; //Drill_Katar - case 1284: callsub L_Socket,1,2; //Krishna - case 1285: callsub L_Socket,1,2; //Cakram - case 1268: callsub L_Socket,2,2; //Wild_Beast_Claw - case 1269: callsub L_Socket,2,2; //Inverse_Scale - case 1265: callsub L_Socket,2,2; //Bloody_Roar - case 1261: callsub L_Socket,4,2; //Infiltrator - case 1266: callsub L_Socket,4,2; //Infiltrator_ - } - break; - case W_1HAXE: // 1-H Axes - switch(@mal_equip_id) { - case 1305: callsub L_Socket,1,2; //Cleaver - case 1311: callsub L_Socket,1,2; //Vecer_Axe - } - break; - case W_2HAXE: // 2-H Axes - switch(@mal_equip_id) { - case 1364: callsub L_Socket,1,2; //Great_Axe - case 1365: callsub L_Socket,1,2; //Sabbath - case 1385: callsub L_Socket,1,2; //Bradium_Stonehammer - case 1367: callsub L_Socket,1,2; //Slaughter - case 1368: callsub L_Socket,1,2; //Tomahawk - case 1387: callsub L_Socket,2,2; //Giant_Axe - case 1369: callsub L_Socket,2,2; //Guillotine - case 1363: callsub L_Socket,2,2; //Brood_Axe - case 1376: callsub L_Socket,4,2; //Heart_Breaker - case 1377: callsub L_Socket,4,2; //Hurricane_Fury - case 1366: callsub L_Socket,4,2; //Right_Epsilon - case 1370: callsub L_Socket,4,2; //Doom_Slayer - case 1371: callsub L_Socket,4,2; //Doom_Slayer_ - } - break; - case W_1HSWORD: // 1-H Swords - switch(@mal_equip_id) { - case 1131: callsub L_Socket,1,2; //Ice_Falchon - case 1133: callsub L_Socket,1,2; //Fire_Brand - case 1134: callsub L_Socket,1,2; //Scissores_Sword - case 1135: callsub L_Socket,1,2; //Cutlas - case 1136: callsub L_Socket,1,2; //Solar_Sword - case 1138: callsub L_Socket,1,2; //Mysteltainn_ - case 1139: callsub L_Socket,1,2; //Tale_Fing_ - case 1140: callsub L_Socket,1,2; //Byeorrun_Gum - case 1141: callsub L_Socket,1,2; //Immaterial_Sword - case 1148: callsub L_Socket,1,2; //Star_Dust_Blade - case 13421: callsub L_Socket,1,2; //Ruber - case 13431: callsub L_Socket,2,2; //Chrome_Sword - case 1137: callsub L_Socket,2,2; //Excalibur - case 1130: callsub L_Socket,2,2; //Nagan - case 1132: callsub L_Socket,4,2; //Edge - } - break; - case W_2HSWORD: // 2-H Swords - switch(@mal_equip_id) { - case 1164: callsub L_Socket,1,2; //Muramasa - case 1166: callsub L_Socket,1,2; //Dragon_Slayer - case 1167: callsub L_Socket,1,2; //Schweizersabel - case 1168: callsub L_Socket,1,2; //Zweihander - case 1170: callsub L_Socket,1,2; //Katzbalger - case 1171: callsub L_Socket,1,2; //Zweihander_ - case 1176: callsub L_Socket,1,2; //Muscle_Cutter - case 1178: callsub L_Socket,1,2; //Schweizersabel_ - case 1180: callsub L_Socket,1,2; //Dragon_Slayer_ - case 1181: callsub L_Socket,1,2; //Tae_Goo_Lyeon - case 1182: callsub L_Socket,1,2; //Bloody_Eater - case 1188: callsub L_Socket,1,2; //Veteran_Sword - case 1189: callsub L_Socket,1,3; //Krasnaya - case 1196: callsub L_Socket,2,2; //Chrome_Twohand_Sword - case 1165: callsub L_Socket,2,2; //Masamune - case 1169: callsub L_Socket,2,2; //Executioner_ - case 1179: callsub L_Socket,2,2; //Executioner__ - case 1175: callsub L_Socket,2,2; //Altas_Weapon - case 1185: callsub L_Socket,4,2; //Violet_Fear - case 1186: callsub L_Socket,4,2; //Death_Guidance - } - break; - case W_1HSPEAR: // 1-H Spears - switch(@mal_equip_id) { - case 1420: callsub L_Socket,1,2; //Long_Horn - case 1413: callsub L_Socket,1,2; //Gungnir - case 1414: callsub L_Socket,1,2; //Gelerdria - case 1416: callsub L_Socket,1,2; //Tjungkuletti - case 1418: callsub L_Socket,1,2; //Gungnir_ - case 1433: callsub L_Socket,2,2; //Imperial_Spear - case 1415: callsub L_Socket,2,2; //Skewer - case 1421: callsub L_Socket,2,2; //Battle_Hook - case 1422: callsub L_Socket,4,2; //Hunting_Spear - } - break; - case W_2HSPEAR: // 2-H Spears - switch(@mal_equip_id) { - case 1466: callsub L_Socket,1,2; //Crescent_Scythe - case 1467: callsub L_Socket,1,2; //Bill_Guisarme - case 1468: callsub L_Socket,1,2; //Zephyrus - case 1469: callsub L_Socket,1,2; //Longinuss_Spear - case 1470: callsub L_Socket,1,2; //Brionac - case 1471: callsub L_Socket,1,2; //Hell_Fire - case 1474: callsub L_Socket,1,2; //Gae_Bolg - case 1477: callsub L_Socket,1,2; //Spectral_Spear - case 1478: callsub L_Socket,1,2; //Ahlspiess - case 1479: callsub L_Socket,1,2; //Spectral_Spear_ - case 1480: callsub L_Socket,1,2; //Gae_Bolg_ - case 1481: callsub L_Socket,1,3; //Zephyrus_ - case 1484: callsub L_Socket,2,2; //Cardo - } - break; - case W_STAFF: // Staves - switch(@mal_equip_id) { - case 1616: callsub L_Socket,1,2; //Staff_Of_Wing - case 1629: callsub L_Socket,1,2; //Walking_Stick - case 1631: callsub L_Socket,1,2; //Holy_Stick - case 1643: callsub L_Socket,1,2; //Dead_Tree_Cane - case 1654: callsub L_Socket,1,2; //Mental_Stick - case 1636: callsub L_Socket,2,2; //Thorn_Staff - case 1637: callsub L_Socket,2,2; //Eraser - case 1473: callsub L_Socket,1,2; //Wizardy_Staff - } - break; - case W_2HSTAFF: // New 2-H Staves - switch(@mal_equip_id) { - case 2004: callsub L_Socket,1,2; //Kronos - case 2005: callsub L_Socket,1,2; //Dea_Staff - case 2001: callsub L_Socket,2,2; //Divine_Cross - case 2000: callsub L_Socket,4,2; //Destruction_Rod - } - break; - case W_MACE: // Maces - switch(@mal_equip_id) { - case 1524: callsub L_Socket,1,2; //Golden_Mace - case 1525: callsub L_Socket,1,2; //Long_Mace - case 1527: callsub L_Socket,1,2; //Quadrille - case 1539: callsub L_Socket,1,2; //Golden_Mace_ - case 1541: callsub L_Socket,1,2; //Nemesis - case 16000: callsub L_Socket,1,2; //Erde - case 16001: callsub L_Socket,1,2; //Red_Square_Bag - case 16010: callsub L_Socket,1,2; //Red_Ether_Bag - case 1523: callsub L_Socket,2,2; //Spike - case 1538: callsub L_Socket,2,2; //Spike_ - case 1526: callsub L_Socket,2,2; //Slash - case 1528: callsub L_Socket,4,2; //Grand_Cross - case 1540: callsub L_Socket,4,2; //Grand_Cross_ - } - break; - case W_BOOK: // Books - switch(@mal_equip_id) { - case 1557: callsub L_Socket,1,2; //Book_Of_The_Apocalypse - case 1558: callsub L_Socket,1,2; //Girls_Diary - case 1559: callsub L_Socket,1,2; //Legacy_Of_Dragon - case 1561: callsub L_Socket,1,2; //Hardback - case 1562: callsub L_Socket,1,2; //Bible_Of_Battlefield - case 1565: callsub L_Socket,4,2; //Death_Note - } - break; - case W_KNUCKLE: // Knuckles - switch(@mal_equip_id) { - case 1813: callsub L_Socket,1,2; //Kaiser_Knuckle - case 1814: callsub L_Socket,1,2; //Berserk - case 1815: callsub L_Socket,1,2; //Claw_Of_Garm - case 1816: callsub L_Socket,1,2; //Berserk_ - case 1830: callsub L_Socket,2,2; //Sura_Rampage - } - break; - case W_BOW: // Bows - switch(@mal_equip_id) { - case 1719: callsub L_Socket,1,2; //Bow_Of_Roguemaster - case 1722: callsub L_Socket,1,2; //Balistar - case 1724: callsub L_Socket,1,2; //Dragon_Wing - case 1725: callsub L_Socket,1,2; //Bow_Of_Minstrel - case 1727: callsub L_Socket,1,2; //Balistar_ - case 1737: callsub L_Socket,1,2; //Ixion_Wing - case 1740: callsub L_Socket,1,2; //Nepenthes_Bow - case 1741: callsub L_Socket,1,2; //Cursed_Lyre - case 1745: callsub L_Socket,1,2; //Falken_Blitz - case 18103: callsub L_Socket,1,2; //Mystic_Bow - case 1720: callsub L_Socket,2,2; //Bow_Of_Rudra - } - break; - case W_MUSICAL: // Musical Instruments - switch(@mal_equip_id) { - case 1913: callsub L_Socket,1,2; //Electronic_Guitar - case 1918: callsub L_Socket,1,2; //Oriental_Lute - case 1920: callsub L_Socket,1,2; //Berserk_Guitar - case 1922: callsub L_Socket,1,2; //Oriental_Lute_ - case 1926: callsub L_Socket,1,2; //Harp_Of_Nepenthes - case 1930: callsub L_Socket,2,2; //Green_Whistle - } - break; - case W_WHIP: // Whips - switch(@mal_equip_id) { - case 1962: callsub L_Socket,1,2; //Lariat - case 1963: callsub L_Socket,1,2; //Rapture_Rose - case 1964: callsub L_Socket,1,2; //Chemeti - case 1969: callsub L_Socket,1,2; //Bladed_Whip - case 1970: callsub L_Socket,1,2; //Queens_Whip - case 1972: callsub L_Socket,1,2; //Electric_Eel - case 1973: callsub L_Socket,1,2; //Sea_Witch_Foot - case 1974: callsub L_Socket,1,2; //Carrot_Whip - case 1976: callsub L_Socket,1,2; //Queens_Whip_ - case 1979: callsub L_Socket,1,2; //Stem_Of_Nepenthes - case 1984: callsub L_Socket,2,2; //Stem_Whip - case 1985: callsub L_Socket,4,2; //Rosebine - } - break; - case W_2HMACE: - case W_REVOLVER: - case W_RIFLE: - case W_GATLING: - case W_SHOTGUN: - case W_GRENADE: - case W_HUUMA: - break; - } - mes "[Mayomayo]"; - if (@mal_enchant_select == 1) - mes "This is not a suitable equipment for the enchant. Don't forget we only take care of high class weapons, including level 4 weapons~"; - else - mes "This equipment can not be initialized. Don't forget we only handle some luxury weapons, including level 4 weapons~"; - @mal_equip_id = 0; - @mal_enchant_select = 0; - close; - -L_Socket: - .@select = @mal_enchant_select; - .@equip_id = @mal_equip_id; - .@equip_name$ = getitemname(.@equip_id)+((getitemslots(.@equip_id))?"["+getitemslots(.@equip_id)+"]":""); - .@equip_refine = getequiprefinerycnt(EQI_HAND_R); - setarray .@equip_card[0], getequipcardid(EQI_HAND_R,0),getequipcardid(EQI_HAND_R,1),getequipcardid(EQI_HAND_R,2),getequipcardid(EQI_HAND_R,3); - @mal_equip_id = 0; - @mal_enchant_select = 0; - - if (.@select == 1) { - mes "[Mayomayo]"; - mes "^0000ff"+.@equip_name$+"^000000! Do you want to enchant this equipment? How will you pay for this?"; - next; - - setarray .@coin[0],6422,6421,6420,6419,6418,6423; // Payment ID - setarray .@cost[0], 15, 10, 6, 3, 2, 1; // Payment multiplier - - .@menu$ = "Stop:"; - for(.@i = 0; .@i<getarraysize(.@coin); ++.@i) { - .@count[.@i] = countitem(.@coin[.@i]); - .@total[.@i] = getarg(0)*.@cost[.@i]; - if (.@count[.@i] < .@total[.@i]) - .@menu$ += "^999999"+getitemname(.@coin[.@i])+" (missing "+(.@total[.@i]-.@count[.@i])+")^000000:"; - else - .@menu$ += getitemname(.@coin[.@i])+" (have "+.@count[.@i]+", need "+.@total[.@i]+"):"; - } - .@coin_select = select(.@menu$)-2; - if (.@coin_select == -1) { - mes "[Mayomayo]"; - mes "Come back again if you change your mind."; - close; - } else if (.@count[.@coin_select] < .@total[.@coin_select]) { - mes "[Mayomayo]"; - mes "You don't have enough coins. Do you want to check again?"; - close; - } - switch(.@coin_select) { - case 0: //Egrade_Coin - .@enchant_type = 10; - break; - case 1: //Dgrade_Coin - .@enchant_type = 9; - break; - case 2: //Cgrade_Coin - .@enchant_type = 8; - break; - case 3: //Bgrade_Coin - .@enchant_type = 7; - break; - case 4: //Agrade_Coin - case 5: //Anger_Seagod - mes "[Mayomayo]"; - mes "When you use the "+getitemname(.@coin[.@coin_select])+", you can choose the enchant type."; - next; - switch(select("Stop", "Short Range Type", "Long Range Type", "Caster Type")) { - case 1: - mes "[Mayomayo]"; - mes "Ok. If you change your mind, let me know."; - close; - case 2: - .@enchant_type = ((.@coin_select == 4)?4:1); - break; - case 3: - .@enchant_type = ((.@coin_select == 4)?5:2); - break; - case 4: - .@enchant_type = ((.@coin_select == 4)?6:3); - break; - } - break; - } - if (.@equip_card[3] == 0 && getarg(1) < 4) { - .@socket = 4; - .@str$ = "1st"; - } else if (.@equip_card[2] == 0 && getarg(1) < 3) { - .@socket = 3; - .@str$ = "2nd"; - } else { - mes "[Mayomayo]"; - mes "This equipment is at the end of enchant. Please initialize the enchant and you will be able to enchant it again, or bring another weapon."; - close; - } - mes "[Mayomayo]"; - mes "I'm trying for the "+.@str$+" enchant. ^ff0000It will not touch previous refinement and cards. Also, the equipment will not be destroyed.^000000 Can I continue?"; - next; - if(select("I'll come back later.", "Please, continue.") == 1) { - mes "[Mayomayo]"; - mes "Ok. If you change your mind, come back again."; - close; - } - switch(.@enchant_type) { - case 10: //Egrade_Coin - .@i = rand(1,531); - if (.@i < 101) .@enchant = 4787; //Mdef4 - else if (.@i < 201) .@enchant = 4792; //Def6 - else if (.@i < 301) .@enchant = 4801; //SP100 - else if (.@i < 351) .@enchant = 4795; //HP100 - else if (.@i < 401) .@enchant = 4796; //HP200 - else if (.@i < 451) .@enchant = 4819; //Atk1 - else if (.@i < 476) .@enchant = 4720; //Dexterity1 - else if (.@i < 501) .@enchant = 4740; //Vitality1 - else if (.@i < 526) .@enchant = 4750; //Luck1 - else if (.@i < 528) .@enchant = 4700; //Strength1 - else if (.@i < 530) .@enchant = 4730; //Agility1 - else if (.@i < 532) .@enchant = 4710; //Inteligence1 - else .@enchant = 9; - break; - case 9: //Dgrade_Coin - .@i = rand(1,531); - if (.@i < 101) .@enchant = 4795; //HP100 - else if (.@i < 201) .@enchant = 4796; //HP200 - else if (.@i < 301) .@enchant = 4819; //Atk1 - else if (.@i < 351) .@enchant = 4720; //Dexterity1 - else if (.@i < 401) .@enchant = 4740; //Vitality1 - else if (.@i < 451) .@enchant = 4750; //Luck1 - else if (.@i < 476) .@enchant = 4700; //Strength1 - else if (.@i < 501) .@enchant = 4730; //Agility1 - else if (.@i < 526) .@enchant = 4710; //Inteligence1 - else if (.@i < 528) .@enchant = 4701; //Strength2 - else if (.@i < 530) .@enchant = 4731; //Agility2 - else if (.@i < 532) .@enchant = 4711; //Inteligence2 - else .@enchant = 9; - break; - case 8: //Cgrade_Coin - .@i = rand(1,531); - if (.@i < 101) .@enchant = 4720; //Dexterity1 - else if (.@i < 201) .@enchant = 4740; //Vitality1 - else if (.@i < 301) .@enchant = 4750; //Luck1 - else if (.@i < 351) .@enchant = 4700; //Strength1 - else if (.@i < 401) .@enchant = 4730; //Agility1 - else if (.@i < 451) .@enchant = 4710; //Inteligence1 - else if (.@i < 476) .@enchant = 4701; //Strength2 - else if (.@i < 501) .@enchant = 4731; //Agility2 - else if (.@i < 526) .@enchant = 4711; //Inteligence2 - else if (.@i < 528) .@enchant = 4702; //Strength3 - else if (.@i < 530) .@enchant = 4732; //Agility3 - else if (.@i < 532) .@enchant = 4712; //Inteligence3 - else .@enchant = 9; - break; - case 7: //Bgrade_Coin - .@i = rand(1,531); - if (.@i < 101) .@enchant = 4700; //Strength1 - else if (.@i < 201) .@enchant = 4730; //Agility1 - else if (.@i < 301) .@enchant = 4710; //Inteligence1 - else if (.@i < 351) .@enchant = 4701; //Strength2 - else if (.@i < 401) .@enchant = 4731; //Agility2 - else if (.@i < 451) .@enchant = 4711; //Inteligence2 - else if (.@i < 476) .@enchant = 4702; //Strength3 - else if (.@i < 501) .@enchant = 4732; //Agility3 - else if (.@i < 526) .@enchant = 4712; //Inteligence3 - else if (.@i < 528) .@enchant = 4703; //Strength4 - else if (.@i < 530) .@enchant = 4733; //Agility4 - else if (.@i < 532) .@enchant = 4713; //Inteligence4 - else .@enchant = 9; - break; - case 6: //Agrade_Coin - Caster - .@i = rand(1,555); - if (.@i < 81) .@enchant = 4711; //Inteligence2 - else if (.@i < 161) .@enchant = 4721; //Dexterity2 - else if (.@i < 241) .@enchant = 4814; //Spell2 - else if (.@i < 311) .@enchant = 4712; //Inteligence3 - else if (.@i < 371) .@enchant = 4722; //Dexterity3 - else if (.@i < 431) .@enchant = 4813; //Spell3 - else if (.@i < 476) .@enchant = 4713; //Inteligence4 - else if (.@i < 516) .@enchant = 4812; //Spell4 - else if (.@i < 526) .@enchant = 4760; //Matk1 - else if (.@i < 546) .@enchant = 4714; //Inteligence5 - else if (.@i < 551) .@enchant = 4826; //Spell5 - else if (.@i < 556) .@enchant = 4761; //Matk2 - else .@enchant = 9; - break; - case 5: //Agrade_Coin - Long Range - .@i = rand(1,555); - if (.@i < 81) .@enchant = 4731; //Agility2 - else if (.@i < 161) .@enchant = 4833; //Expert_Archer2 - else if (.@i < 241) .@enchant = 4817; //Sharp2 - else if (.@i < 311) .@enchant = 4732; //Agility3 - else if (.@i < 371) .@enchant = 4834; //Expert_Archer3 - else if (.@i < 431) .@enchant = 4816; //Sharp3 - else if (.@i < 476) .@enchant = 4733; //Agility4 - else if (.@i < 516) .@enchant = 4835; //Expert_Archer4 - else if (.@i < 526) .@enchant = 4807; //Atk_Speed1 - else if (.@i < 546) .@enchant = 4734; //Agility5 - else if (.@i < 551) .@enchant = 4836; //Expert_Archer5 - else if (.@i < 556) .@enchant = 4807; //Atk_Speed1 - else .@enchant = 9; - break; - case 4: //Agrade_Coin - Short Range - .@i = rand(1,555); - if (.@i < 81) .@enchant = 4731; //Agility2 - else if (.@i < 161) .@enchant = 4808; //Fighting_Spirit4 - else if (.@i < 241) .@enchant = 4817; //Sharp2 - else if (.@i < 311) .@enchant = 4732; //Agility3 - else if (.@i < 371) .@enchant = 4820; //Fighting_Spirit5 - else if (.@i < 431) .@enchant = 4816; //Sharp3 - else if (.@i < 476) .@enchant = 4733; //Agility4 - else if (.@i < 516) .@enchant = 4821; //Fighting_Spirit6 - else if (.@i < 526) .@enchant = 4807; //Atk_Speed1 - else if (.@i < 546) .@enchant = 4734; //Agility5 - else if (.@i < 551) .@enchant = 4822; //Fighting_Spirit7 - else if (.@i < 556) .@enchant = 4807; //Atk_Speed1 - else .@enchant = 9; - break; - case 3: //Anger_Seagod - Caster - .@i = rand(1,555); - if (.@i < 81) .@enchant = 4712; //Inteligence3 - else if (.@i < 161) .@enchant = 4722; //Dexterity3 - else if (.@i < 241) .@enchant = 4813; //Spell3 - else if (.@i < 311) .@enchant = 4713; //Inteligence4 - else if (.@i < 371) .@enchant = 4812; //Spell4 - else if (.@i < 431) .@enchant = 4760; //Matk1 - else if (.@i < 476) .@enchant = 4714; //Inteligence5 - else if (.@i < 516) .@enchant = 4826; //Spell5 - else if (.@i < 526) .@enchant = 4761; //Matk2 - else if (.@i < 546) .@enchant = 4715; //Inteligence6 - else if (.@i < 551) .@enchant = 4827; //Spell6 - else if (.@i < 556) .@enchant = 4761; //Matk2 - else .@enchant = 9; - break; - case 2: //Anger_Seagod - Long Range - .@i = rand(1,555); - if (.@i < 81) .@enchant = 4732; //Agility3 - else if (.@i < 161) .@enchant = 4834; //Expert_Archer3 - else if (.@i < 241) .@enchant = 4843; //Sharp4 - else if (.@i < 311) .@enchant = 4733; //Agility4 - else if (.@i < 371) .@enchant = 4835; //Expert_Archer4 - else if (.@i < 431) .@enchant = 4844; //Sharp5 - else if (.@i < 476) .@enchant = 4734; //Agility5 - else if (.@i < 516) .@enchant = 4836; //Expert_Archer5 - else if (.@i < 526) .@enchant = 4807; //Atk_Speed1 - else if (.@i < 546) .@enchant = 4735; //Agility6 - else if (.@i < 551) .@enchant = 4837; //Expert_Archer6 - else if (.@i < 556) .@enchant = 4807; //Atk_Speed1 - else .@enchant = 9; - break; - case 1: //Anger_Seagod - Short Range - .@i = rand(1,555); - if (.@i < 81) .@enchant = 4732; //Agility3 - else if (.@i < 161) .@enchant = 4820; //Fighting_Spirit5 - else if (.@i < 241) .@enchant = 4843; //Sharp4 - else if (.@i < 311) .@enchant = 4733; //Agility4 - else if (.@i < 371) .@enchant = 4821; //Fighting_Spirit6 - else if (.@i < 431) .@enchant = 4844; //Sharp5 - else if (.@i < 476) .@enchant = 4734; //Agility5 - else if (.@i < 516) .@enchant = 4822; //Fighting_Spirit7 - else if (.@i < 526) .@enchant = 4807; //Atk_Speed1 - else if (.@i < 546) .@enchant = 4735; //Agility6 - else if (.@i < 551) .@enchant = 4823; //Fighting_Spirit8 - else if (.@i < 556) .@enchant = 4807; //Atk_Speed1 - else .@enchant = 9; - break; - default: - mes "[Mayomayo]"; - mes "There is something wrong. Please try again."; - close; - } - if (.@equip_card[3] == 0 && getarg(1) < 4) .@equip_card[3] = .@enchant; - else if (.@equip_card[2] == 0 && getarg(1) < 3) .@equip_card[2] = .@enchant; - else if (.@equip_card[1] == 0 && getarg(1) < 2) .@equip_card[1] = .@enchant; - else if (.@equip_card[0] == 0 && getarg(1) < 1) .@equip_card[0] = .@enchant; - else { - mes "[Mayomayo]"; - mes "This equipment is at the end of enchant. I provide enchant for two times maximum."; - next; - mes "[Mayomayo]"; - mes "Surely I don't enchant at card socket, therefore weapons that have 3 slots can be enchanted only 1 time. Don't forget this~"; - close; - } - if (.@enchant == 9) { // Should never happen. - specialeffect(EF_SUI_EXPLOSION, AREA, playerattached()); - mes "[Mayomayo]"; - mes "Oh my god!"; - mes "This equipment is destroyed because it could not endure powerful ability. I'm so sorry."; - delitem .@coin[.@coin_select],.@total[.@coin_select]; - delequip EQI_HAND_R; - close; - } - specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); - mes "[Mayomayo]"; - mes "I have enchanted ^990000slot "+.@socket+"^000000 of this equipment."; - delitem .@coin[.@coin_select],.@total[.@coin_select]; - delequip EQI_HAND_R; - - // GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3] - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; - - close; - } else if (.@select == 2) { - mes "[Mayomayo]"; - mes "I will only initialize the enchant effect without touching previous refined level and cards."; - next; - if(select("Stop", "Continue") == 1) { - mes "[Mayomayo]"; - mes "If you change your mind, come back anytime."; - close; - } - if (countitem(Silvervine) == 0) { - mes "[Mayomayo]"; - mes "I'm sorry. You don't have Silvervine Fruit. Please check your inventory again?"; - close; - } - if (!getequipisequiped(EQI_HAND_R)) { - mes "[Mayomayo]"; - mes "Did you take off the equipment?"; - close; - } - if (.@equip_card[3] == 0) { - mes "[Mayomayo]"; - mes "This equipment has nothing to initialize. Please check again."; - close; - } - specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); - mes "[Mayomayo]"; - mes "Initialize the enchant effect from the equipment."; - delitem Silvervine,1; - delequip EQI_HAND_R; - - // GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3] - for(.@i = 0; .@i<4; ++.@i) { - if (.@equip_card[.@i] >= 4700) // Armor Enchant System - .@equip_card[.@i] = 0; - } - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; - - close; - } -} diff --git a/npc/re/merchants/enchan_mora.txt b/npc/re/merchants/enchan_mora.txt deleted file mode 100644 index 46979c82b..000000000 --- a/npc/re/merchants/enchan_mora.txt +++ /dev/null @@ -1,1768 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) DeadlySilence -//= Copyright (C) Lemongrass -//= 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/>. -//========================================================================= -//= Mora Enchants -//================= Description =========================================== -//= Adds enchantments to various items in exchange for Mora coins. -//================= Current Version ======================================= -//= 1.2 -//========================================================================= - -//== Arch Bishop Enchants :: coin_arc ====================== -mora,88,89,5 script Keeper of Secrets#pa082 4_M_MERCAT1,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of things with you to do that. Throw out some of them and try again."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much weight to do that. Reduce the weight and try again."; - close; - } - disable_items; - if (countitem(Mora_Coin) < 10) { - mes "[Artifice]"; - mes "Relics for Archbishops are meant for defense and support!"; - next; - mes "[Artifice]"; - mes "Like the other Guardians, they may trade coins for their relics, so collect Mora Coins!"; - next; - mes "[Artifice]"; - mes "If you collect more than 10 coins then come to me to trade!"; - close; - } - mes "[Artifice]"; - mes "By the light! You look like you are ready to gain access to our relics."; - next; - mes "[Artifice]"; - mes "Ring, Shoes, Shawl, Robe, Shield, or Weapon."; - mes "Select one of the six kinds of relics to receive."; - next; - mes "[Artifice]"; - mes "I'll randomly give you one of 2 types of the equipment, depending upon the weather and my mood."; - next; - mes "[Artifice]"; - mes "All I need is 10 Mora Coins of yours to grant you a relic!"; - next; - switch(select("I don't think I'm ready.", "I'm ready to exchange my Mora Coins.", "Exchange my Ring.")) { - case 1: - mes "[Artifice]"; - mes "See you next time!"; - close; - case 2: - mes "[Artifice]"; - // What does this even mean? (custom dialogue below) - //mes "You influence what part are you?"; - mes "What kind of relic do you want?"; - next; - switch(select("I'm not ready.", "Ring", "Shoes", "Shawl", "Robe", "Shield", "Weapon")) { - case 1: - mes "[Artifice]"; - mes "Go with the light."; - close; - case 2: - if (countitem(Light_Of_Cure) || countitem(Seal_Of_Cathedral) || countitem(Ring_Of_Archbishop)) { - mes "[Artifice]"; - mes "You are already allowed access to our relics by your possession of a Ring!"; - close; - } - if (Class == Job_Arch_Bishop || Class == Job_Arch_Bishop_T || Class == Job_Baby_Bishop) { - setarray .@items[0],2864,2865,2866; //Light_Of_Cure,Seal_Of_Cathedral,Ring_Of_Archbishop - break; - } else { - mes "[Artifice]"; - mes "We prefer to only deal with Arch-Bishops."; - close; - } - case 3: - setarray .@items[0],2471,2472; //Shoes_Of_Affection,Shoes_Of_Judgement - break; - case 4: - setarray .@items[0],2569,2570; //Shawl_Of_Affection,Shawl_Of_Judgement - break; - case 5: - setarray .@items[0],15029,15030; //Robe_Of_Affection,Robe_Of_Judgement - break; - case 6: - setarray .@items[0],2156; //Bible_Of_Promise1 - break; - case 7: - setarray .@items[0],1657,16013; //Wand_Of_Affection,Mace_Of_Judgement - break; - } - .@item = .@items[rand(getarraysize(.@items))]; - delitem Mora_Coin,10; - getitem .@item,1; - mes "[Artifice]"; - mes "You have obtained ^aa00aa"+getitemname(.@item)+"^000000. May the Blessing of the Light be with you."; - close; - case 3: - if (Class == Job_Arch_Bishop || Class == Job_Arch_Bishop_T || Class == Job_Baby_Bishop) { - mes "[Artifice]"; - mes "We exchange rings into coins for those who cannot control the ring."; - next; - mes "[Artifice]"; - mes "It seems that you have power to control the ring so I cannot exchange it into coins."; - close; - } - if (countitem(Light_Of_Cure)) .@item = 2864; //Light_Of_Cure - else if (countitem(Seal_Of_Cathedral)) .@item = 2865; //Seal_Of_Cathedral - else if (countitem(Ring_Of_Archbishop)) .@item = 2866; //Ring_Of_Archbishop - else { - mes "[Artifice]"; - mes "Did you change something?"; - close; - } - mes "[Artifice]"; - mes "You have a "+getitemname(.@item)+". Do you really want to trade it for 10 Mora Coins?"; - next; - switch(select("I'm not ready", "Exchange my "+getitemname(.@item))) { - case 1: - mes "[Artifice]"; - mes "If you change your mind, please stop by again."; - close; - case 2: - delitem .@item,1; - getitem Mora_Coin,10; - mes "[Artifice]"; - mes "I think that was an even trade."; - close; - } - } -} - -mora,96,74,5 script Master of Relics#pa0829 4_M_MERCAT1,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of things with you to do that. Throw out some of them and try again."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much weight to do that. Reduce the weight and try again."; - close; - } - disable_items; - mes "[Relice]"; - mes "I enhance Relics that holy Arch-Bishops use, it will take 2 Mora Coins and the relic to allow me to attempt to enhance it."; - next; - switch(select("More details please.", "Please Enhance my Relic.")) { - case 1: - mes "[Relice]"; - mes "Let me briefly explain, for 2 Mora Coins and the relic I can give you a single Enchantment on that relic."; - next; - mes "[Relice]"; - mes "Even though this relic was already enchanted, we will re-enchant it without checking its status."; - next; - mes "[Relice]"; - mes "So it you have already enchanted relic, please put it some place safe and come back."; - next; - mes "[Relice]"; - mes "Ah, one more thing! It is possible I can fail though and if that happens the relic is lost forever."; - close; - case 2: - mes "[Relice]"; - mes "Ok, you can get a new Relic from Artifice if it fails."; - next; - mes "[Relice]"; - mes "If you have a ritual for luck, you should use it now!"; - next; - .@select = select("Wait a minute!", "Light of Cure", "Seal of Cathedral", "Ring of Archbishop", "Shoes of Affection", "Shoes of Judgement", "Shawl of Affection", "Shawl of Judgement", "Robe of Affection", "Robe of Judgement", "Bible of Promise 1st Vol", "Wand of Affection", "Mace of Judgement"); - switch(.@select) { - case 1: - mes "[Relice]"; - mes "Certainly. Go with the Light."; - close; - case 2: - case 3: - case 4: - setarray .@items[0],2864,2865,2866; //Light_Of_Cure,Seal_Of_Cathedral,Ring_Of_Archbishop - setarray .@special[0],4803,4804,4805; //Highness_Heal_3sec,Coluceo_Heal30,Heal_Amount2 - .@item = .@items[.@select-2]; - .@sp = .@special[.@select-2]; - .@enchant_type = 1; - break; - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - setarray .@items[0],2471,2472,2569,2570,15029,15030,2156; //Shoes_Of_Affection,Shoes_Of_Judgement,Shawl_Of_Affection,Shawl_Of_Judgement,Robe_Of_Affection,Robe_Of_Judgement,Bible_Of_Promise1 - .@item = .@items[.@select-5]; - .@enchant_type = 2; - break; - case 12: - .@item = 1657; //Wand_Of_Affection - .@enchant_type = 3; - break; - case 13: - .@item = 16013; //Mace_Of_Judgement - .@enchant_type = 4; - break; - } - if (countitem(Mora_Coin) < 2 || countitem(.@item) == 0) { - mes "[Relice]"; - mes "For 2 Mora Coins I can strengthen the relic you have in many ways!"; - close; - } - specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); - delitem Mora_Coin,2; - delitem .@item,1; - switch(.@enchant_type) { - case 1: - .@i = rand(1,1487); - if (.@i <= 1024) { - // Basic combinations - // (raw: .@i increments by 16, 4 repeats) - setarray .@enchant_slot2[0],4711,4720,4721,4740; //Inteligence2,Dexterity1,Dexterity2,Vitality1 - setarray .@enchant_slot3[0],.@sp,4799,4766,4788; //[sp],HP500,Atk2,Mdef6 - setarray .@enchants[2], - .@enchant_slot2[rand(getarraysize(.@enchant_slot2))], - .@enchant_slot3[rand(getarraysize(.@enchant_slot3))]; - } - else if (.@i <= 1040) setarray .@enchants[2],.@sp,.@sp; //[sp] [sp] - else if (.@i <= 1487) { - mes "[Relice]"; - mes "Sometimes things just don't work out the way you want. I hope next time things go better for you. Until then, good bye."; - close; - } - break; - case 2: - .@i = rand(1,1487); - if (.@i <= 1024) { - // Basic combinations - // (raw: .@i increments by 16) - setarray .@enchant_slot1[0],4710,4711,4720,4721; //Inteligence1,Inteligence2,Dexterity1,Dexterity2 - setarray .@enchant_slot2[0],4711,4720,4721,4740; //Inteligence2,Dexterity1,Dexterity2,Vitality1 - setarray .@enchant_slot3[0],4764,4799,4766,4788; //Critical5,HP500,Atk2,Mdef6 - setarray .@enchants[1], - .@enchant_slot1[rand(getarraysize(.@enchant_slot1))], - .@enchant_slot2[rand(getarraysize(.@enchant_slot2))], - .@enchant_slot3[rand(getarraysize(.@enchant_slot3))]; - } - else if (.@i <= 1026) setarray .@enchants[1],4761,4761,4761; //Matk2 Matk2 Matk2 - else if (.@i <= 1028) setarray .@enchants[1],4712,4713,4713; //Inteligence3 Inteligence4 Inteligence4 - else if (.@i <= 1030) setarray .@enchants[1],4712,4761,4761; //Inteligence3 Matk2 Matk2 - else if (.@i <= 1032) setarray .@enchants[1],4712,4713,4761; //Inteligence3 Inteligence4 Matk2 - else if (.@i <= 1034) setarray .@enchants[1],4722,4723,4723; //Dexterity3 Dexterity4 Dexterity4 - else if (.@i <= 1036) setarray .@enchants[1],4722,4703,4703; //Dexterity3 Strength4 Strength4 - else if (.@i <= 1038) setarray .@enchants[1],4722,4767,4767; //Dexterity3 Atk3 Atk3 - else if (.@i <= 1040) setarray .@enchants[1],4767,4767,4767; //Atk3 Atk3 Atk3 - else if (.@i <= 1487) { - mes "[Relice]"; - mes "Sometimes things just don't work out the way you want. I hope next time things go better for you. Until then, good bye."; - close; - } - break; - case 3: - .@i = rand(1,2852); - if (.@i <= 1984) { - // Basic combinations - // (raw: .@i increments by 31, 4 repeats) - setarray .@enchant_slot2[0],4720,4740,4741,4801; //Dexterity1,Vitality1,Vitality2,SP100 - setarray .@enchant_slot3[0],4710,4711,4721,4760; //Inteligence1,Inteligence2,Dexterity2,Matk1 - setarray .@enchants[2], - .@enchant_slot2[rand(getarraysize(.@enchant_slot2))], - .@enchant_slot3[rand(getarraysize(.@enchant_slot3))]; - } - else if (.@i <= 1986) setarray .@enchants[2],4761,4761; //Matk2 Matk2 - else if (.@i <= 1988) setarray .@enchants[2],4761,4723; //Matk2 Dexterity4 - else if (.@i <= 1990) setarray .@enchants[2],4761,4714; //Matk2 Inteligence5 - else if (.@i <= 1992) setarray .@enchants[2],4714,4714; //Inteligence5 Inteligence5 - else if (.@i <= 1994) setarray .@enchants[2],4714,4723; //Inteligence5 Dexterity4 - else if (.@i <= 1996) setarray .@enchants[2],4723,4723; //Dexterity4 Dexterity4 - else if (.@i <= 2852) { - mes "[Relice]"; - mes "Sometimes things just don't work out the way you want. I hope next time things go better for you. Until then, good bye."; - close; - } - break; - case 4: - .@i = rand(1,2852); - if (.@i <= 1984) { - // Basic combinations - // (raw: .@i increments by 31, 4 repeats) - setarray .@enchant_slot2[0],4720,4740,4741,4701; //Dexterity1,Vitality1,Vitality2,Strength2 - setarray .@enchant_slot3[0],4700,4701,4721,4767; //Strength1,Strength2,Dexterity2,Atk3 - setarray .@enchants[2], - .@enchant_slot2[rand(getarraysize(.@enchant_slot2))], - .@enchant_slot3[rand(getarraysize(.@enchant_slot3))]; - } - else if (.@i <= 1986) setarray .@enchants[2],4767,4767; //Atk3 Atk3 - else if (.@i <= 1988) setarray .@enchants[2],4767,4723; //Atk3 Dexterity4 - else if (.@i <= 1990) setarray .@enchants[2],4767,4704; //Atk3 Strength5 - else if (.@i <= 1992) setarray .@enchants[2],4704,4704; //Strength5 Strength5 - else if (.@i <= 1994) setarray .@enchants[2],4704,4723; //Strength5 Dexterity4 - else if (.@i <= 1996) setarray .@enchants[2],4723,4723; //Dexterity4 Dexterity4 - else if (.@i <= 2852) { - mes "[Relice]"; - mes "Sometimes things just don't work out the way you want. I hope next time things go better for you. Until then, good bye."; - close; - } - break; - } - getitem2 .@item,1,1,0,0,0,.@enchants[1],.@enchants[2],.@enchants[3]; - mes "[Relice]"; - mes "The strengthening went well, lucky you!"; - close; - } -} - -//== Warlock Enchants :: coin_warrock ====================== -mora,104,76,4 script Guardian of Artifacts#p 4_M_MERCAT1,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of things with you to do that. Throw out some of them and try again."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much weight to do that. Reduce the weight and try again."; - close; - } - if (countitem(Mora_Coin) < 10) { - mes "[Guardian of Artifacts]"; - mes "My job is to guard the Warlock's ancient artifacts."; - next; - mes "[Guardian of Artifacts]"; - mes "Well, it's not a big deal actually. I give out artifacts to those who deserve them for the price of a few Mora Coins."; - next; - mes "[Guardian of Artifacts]"; - mes "You can trade with me when you have 10 or more Coins. See you later."; - close; - } - mes "[Guardian of Artifacts]"; - mes "Wow~ I see you're ready for the Warlock's Ancient Artifacts."; - next; - mes "[Guardian of Artifacts]"; - mes "You can choose from four types of items:"; - mes "staffs, orbs, shoes, and robes."; - next; - mes "[Guardian of Artifacts]"; - mes "There are four options available for each type, but the item available will change day to day, depending on my mood."; - next; - mes "[Guardian of Artifacts]"; - mes "Do you want to buy an artifact with your Mora Coins?"; - next; - if(select("Maybe later... I have things to do.", "Yes, I do.") == 1) { - mes "[Guardian of Artifacts]"; - mes "Okay, see you later then."; - close; - } - mes "[Guardian of Artifacts]"; - mes "What type of item do you want to buy?"; - next; - switch(select("Quit", "Shoes", "Orbs", "Robes", "Staves")) { - case 1: - mes "[Guardian of Artifacts]"; - mes "Okay, see you later then."; - close; - case 2: - setarray .@items[0],2467,2468,2469,2470; //Golden_Rod_Shoes,Aqua_Shoes,Crimson_Shoes,Forest_Shoes - .@plural = 1; - break; - case 3: - setarray .@items[0],2859,2860,2861,2862; //Golden_Rod_Orb,Aqua_Orb,Crimson_Orb,Forest_Orb - break; - case 4: - setarray .@items[0],15025,15026,15027,15028; //Golden_Rod_Robe,Aqua_Robe,Crimson_Robe,Forest_Robe - break; - case 5: - setarray .@items[0],2007,2008,2009,2010; //Golden_Rod_Staff,Aqua_Staff,Crimson_Staff,Forest_Staff - break; - } - if (countitem(Mora_Coin) < 10) { - mes "[Guardian of Artifacts]"; - mes "Would you please come back when you have enough Coins?"; - close; - } - .@item = .@items[rand(getarraysize(.@items))]; - delitem Mora_Coin,10; - getitem .@item,1; - mes "[Guardian of Artifacts]"; - mes "I have ^aa00aa"+getitemname(.@item)+"^000000 available today. I hope "+((.@plural)?"they":"it")+" will come in handy..."; - close; -} - -mora,99,93,5 script Artifact Crafter#pa0829 4_M_MERCAT1,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of things with you to do that. Throw out some of them and try again."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much weight to do that. Reduce the weight and try again."; - close; - } - disable_items; - mes "[Artifact Crafter]"; - mes "My job is to imbue artifacts with new power. If you have enough Coins, you can have one of the following items reinforced."; - next; - if(select("Tell me more.", "I want to have my item reinforced.") == 1) { - mes "[Artifact Crafter]"; - mes "Let me explain. One reinforcement costs you two Coins."; - next; - .@info_only = 1; - } - mes "[Artifact Crafter]"; - mes "And, I'll work on the item whether it's been already reinforced or not."; - next; - mes "[Artifact Crafter]"; - mes "So if you have an artifact reinforced to your liking, put it in a safe place and come back."; - next; - mes "[Artifact Crafter]"; - mes "And another thing, the artifact will be destroyed if the reinforcement fails. Please keep that in mind."; - if (.@info_only) - close; - next; - .@select = select("Maybe next time.", "Golden Rod Staff", "Aqua Staff", "Crimson Staff", "Forest Staff", "Golden Rod Shoes", "Aqua Shoes", "Crimson Shoes", "Forest Shoes", "Golden Rod Orb", "Aqua Orb", "Crimson Orb", "Forest Orb", "Golden Rod Robe", "Aqua Robe", "Crimson Robe", "Forest Robe"); - switch(.@select) { - case 1: - mes "[Artifact Crafter]"; - mes "As you wish."; - close; - case 2: - case 3: - case 4: - case 5: - setarray .@items[0],2007,2008,2009,2010; //Golden_Rod_Staff,Aqua_Staff,Crimson_Staff,Forest_Staff - .@enchant_type = 1; - break; - case 6: - case 7: - case 8: - case 9: - setarray .@items[0],2467,2468,2469,2470; //Golden_Rod_Shoes,Aqua_Shoes,Crimson_Shoes,Forest_Shoes - .@enchant_type = 2; - break; - case 10: - case 11: - case 12: - case 13: - setarray .@items[0],2859,2860,2861,2862; //Golden_Rod_Orb,Aqua_Orb,Crimson_Orb,Forest_Orb - .@enchant_type = 2; - break; - case 14: - case 15: - case 16: - case 17: - setarray .@items[0],15025,15026,15027,15028; //Golden_Rod_Robe,Aqua_Robe,Crimson_Robe,Forest_Robe - .@enchant_type = 2; - break; - } - .@item = .@items[(.@select-2)%4]; - if (countitem(Mora_Coin) < 2 || countitem(.@item) == 0) { - mes "[Artifact Crafter]"; - mes "You have to have 2 Mora Coins and an item to be reinforced before I can do my work."; - close; - } - specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); - delitem Mora_Coin,2; - delitem .@item,1; - switch(.@enchant_type) { - case 1: - .@i = rand(1,2847); - if (.@i <= 1984) { - // Basic combinations - // (raw: .@i increments by 31, 4 repeats) - setarray .@enchant_slot2[0],4720,4796,4710,4801; //Dexterity1,HP200,Inteligence1,SP100 - setarray .@enchant_slot3[0],4786,4760,4711,4721; //Mdef2,Matk1,Inteligence2,Dexterity2 - setarray .@enchants[2], - .@enchant_slot2[rand(getarraysize(.@enchant_slot2))], - .@enchant_slot3[rand(getarraysize(.@enchant_slot3))]; - } - else if (.@i <= 1986) setarray .@enchants[2],4713,4761; //Inteligence4 Matk2 - else if (.@i <= 1988) setarray .@enchants[2],4713,4713; //Inteligence4 Inteligence4 - else if (.@i <= 1990) setarray .@enchants[2],4761,4761; //Matk2 Matk2 - else if (.@i <= 1992) setarray .@enchants[2],4761,4713; //Matk2 Inteligence4 - else if (.@i <= 2847) { - mes "[Artifact Crafter]"; - mes "Oh no... it broke... Well, it happens. Better luck next time."; - close; - } - break; - case 2: - .@i = rand(1,2858); - if (.@i <= 1984) { - // Basic combinations - // (raw: .@i increments by 31) - setarray .@enchant_slot1[0],4710,4711,4720,4721; //Inteligence1,Inteligence2,Dexterity1,Dexterity2 - setarray .@enchant_slot2[0],4720,4796,4710,4801; //Dexterity1,HP200,Inteligence1,SP100 - setarray .@enchant_slot3[0],4786,4760,4711,4721; //Mdef2,Matk1,Inteligence2,Dexterity2 - setarray .@enchants[1], - .@enchant_slot1[rand(getarraysize(.@enchant_slot1))], - .@enchant_slot2[rand(getarraysize(.@enchant_slot2))], - .@enchant_slot3[rand(getarraysize(.@enchant_slot3))]; - } - else if (.@i <= 1986) setarray .@enchants[1],4712,4713,4761; //Inteligence3 Inteligence4 Matk2 - else if (.@i <= 1988) setarray .@enchants[1],4712,4713,4713; //Inteligence3 Inteligence4 Inteligence4 - else if (.@i <= 1990) setarray .@enchants[1],4712,4761,4761; //Inteligence3 Matk2 Matk2 - else if (.@i <= 1992) setarray .@enchants[1],4712,4761,4713; //Inteligence3 Matk2 Inteligence4 - else if (.@i <= 1994) setarray .@enchants[1],4722,4713,4761; //Dexterity3 Inteligence4 Matk2 - else if (.@i <= 1996) setarray .@enchants[1],4722,4713,4713; //Dexterity3 Inteligence4 Inteligence4 - else if (.@i <= 1998) setarray .@enchants[1],4722,4761,4761; //Dexterity3 Matk2 Matk2 - else if (.@i <= 2000) setarray .@enchants[1],4722,4761,4713; //Dexterity3 Matk2 Inteligence4 - else if (.@i <= 2858) { - mes "[Artifact Crafter]"; - mes "Oh no... it broke... Well, it happens. Better luck next time."; - close; - } - break; - } - getitem2 .@item,1,1,0,0,0,.@enchants[1],.@enchants[2],.@enchants[3]; - mes "[Artifact Crafter]"; - mes "Looks like my effort was successful."; - close; -} - -//== Rune Knight, Guillotine Cross, & Ranger Enchants :: new_artifact = -mora,152,97,5 script Guardian of Power#pa082 4_F_DOGTRAVELER,{ - if (checkweight(Knife,1) == 0) { - mes "Reduce the amount of items that you have in your inventory before continuing."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much in your inventory."; - close; - } - if (countitem(Mora_Coin) < 10) { - mes "[Guardian of Power]"; - mes "I give Rune Knights, Guillotine Crosses, and Rangers ancient artifacts to help them carry out their missions."; - next; - mes "[Guardian of Power]"; - mes "There are guardians that give Mora Village coins which you can use to exchange for these artifacts."; - next; - mes "[Guardian of Power]"; - mes "If you collect 10 or more Mora coins, then I can trade them for the artifacts."; - close; - } - mes "[Guardian of Power]"; - mes "I think that you're ready to receive the ancient artifacts."; - next; - mes "[Guardian of Power]"; - mes "Based on what class you specify, there are various artifacts available."; - next; - mes "[Guardian of Power]"; - mes "^ff0000Choose carefully because these artifacts aren't easy to come by^000000. So what class do you want it for?"; - next; - setarray .@jobs$[0],"Rune Knight","Guillotine Cross","Ranger"; - .@job = select("Cancel", "Rune Knight", "Guillotine Cross", "Ranger")-2; - if (.@job == -1) { - mes "[Guardian of Power]"; - mes "Talk to me later then."; - close; - } - mes "[Guardian of Power]"; - mes .@jobs$[.@job]+"?"; - mes "Which artifact do you want?"; - next; - switch(.@job) { - case 0: // Rune Knight - setarray .@items[0],2475,2476,2574,2575; - .@i = select("Cancel", "Ur's Greaves (Shoes)", "Peuz's Greaves (Shoes)", "Ur's Manteau (Garment)", "Peuz's Manteau (Garment)")-2; - break; - case 1: // Guillotine Cross - setarray .@items[0],2477,2478,2577,2578; - .@i = select("Cancel", "Sapha Shoes (Shoes)", "Nab Shoes (Shoes)", "Sapha Hood (Garment)", "Nab Hood (Garment)")-2; - break; - case 2: // Ranger - setarray .@items[0],2479,2480,2580,2581; - .@i = select("Cancel", "White Wing Boots (Shoes)", "Black Wing Boots (Shoes)", "White Wing Manteau (Garment)", "Black Wing Manteau (Garment)")-2; - break; - } - if (.@i == -1) { - mes "[Guardian of Power]"; - mes "Talk to me later then."; - close; - } - if (countitem(Mora_Coin) < 10) { - mes "[Guardian of Power]"; - mes "Didn't I tell you to bring the correct amount of Mora Coins?"; - close; - } - delitem Mora_Coin,10; - getitem .@items[.@i],1; - mes "[Guardian of Power]"; - mes "Thank you for the 10 Mora Coins. Here is your artifact for the "+.@jobs$[.@job]+" job. Come back whenever you get more Mora Coins."; - close; -} - -mora,148,98,3 script Artifact Researcher#new 4_F_MORAFINE2,{ - if (checkweight(Knife,1) == 0) { - mes "Reduce the amount of items that you have in your inventory before continuing."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much in your inventory."; - close; - } - disable_items; - mes "[Artifact Researcher]"; - mes "Nice to meet you."; - mes "I'm here in Mora studying ancient relics and artifacts. The new discoveries of Adventurers has made this village very exciting for me."; - next; - switch(select("Tell me more...", "Give abilities to artifacts.", "Reset Enhanced abilities.")) { - case 1: - mes "[Artifact Researcher]"; - mes "New artifacts have been found here in Mora village, haven't you heard the news?"; - next; - mes "[Artifact Researcher]"; - mes "If you come across any of these artifacts, there are hidden powers that can be extracted from them."; - next; - mes "[Artifact Researcher]"; - mes "I'm going to continue my research for these artifacts. We researchers are taking Mora Coins as payment for our services..."; - next; - mes "[Artifact Researcher]"; - mes "I'm offering my services to give abilities to the artifacts for 100,000 zeny and 1 Mora Coin."; - next; - mes "[Artifact Researcher]"; - mes "The best part of my service is that any enhancements that you have in these artifacts will not be harmed."; - close; - case 2: - @mora_enchant_select = 1; - break; - case 3: - @mora_enchant_select = 2; - break; - } - if (Zeny < 100000 || countitem(Mora_Coin) == 0) { - mes "[Artifact Researcher]"; - mes "I'm not giving these services out for free pal. 100,000 zeny and 1 Mora Coin. Is that too much to ask?"; - close; - } - mes "[Artifact Researcher]"; - mes "Ok, so are you ready? Before I start working on this, what kind of equipment did you want me to enhance?"; - next; - .@i = select("I'm not wearing the equipment", "1. Weapon", "2. Shoes", "3. Garment", "4. Armor", "5. Accessory")-2; - if (.@i == -1) { - mes "[Artifact Researcher]"; - mes "Make sure you're wearing the equipment first."; - close; - } - setarray .@parts[0], EQI_HAND_R, EQI_SHOES, EQI_GARMENT, EQI_ARMOR, EQI_ACC_L; - .@part = .@parts[.@i]; - if (!getequipisequiped(.@part)) { - mes "[Artifact Researcher]"; - mes "Make sure you're wearing the equipment first."; - close; - } - .@equip_id = getequipid(.@part); - @mora_equip_part = .@part; - - //callsub L_Socket,<enchant type>,<bonus enchant type>,<4-x enchants possible>; - // Enchant types: - // [1]ATK [2]CRIT [3]EVA [4]Healer [5]Spell 1 [6]Assist 1 [7]Assist 2 [8]STR [9]Range [10]Physical [11]Spell 2 - switch(.@part) { - case 4: //EQI_HAND_R - switch(.@equip_id) { - case 1660: callsub L_Socket,4,5,1; //Wand_Of_Affection2 - case 2011: callsub L_Socket,5,11,1; //Golden_Rod_Staff2 - case 2012: callsub L_Socket,5,11,1; //Aqua_Staff2 - case 2013: callsub L_Socket,5,11,1; //Crimson_Staff2 - case 2014: callsub L_Socket,5,11,1; //Forest_Staff2 - case 16018: callsub L_Socket,1,5,1; //Mace_Of_Judgement2 - } - break; - case 6: //EQI_SHOES - switch(.@equip_id) { - case 2475: callsub L_Socket,6,8,1; //Ur_Greave - case 2476: callsub L_Socket,6,10,1; //Peuz_Greave - case 2477: callsub L_Socket,6,2,1; //Sabah_Shoes - case 2478: callsub L_Socket,6,1,1; //Nab_Shoes - case 2479: callsub L_Socket,6,2,1; //White_Wing_Boots - case 2480: callsub L_Socket,6,1,1; //Black_Wing_Boots - } - break; - case 5: //EQI_GARMENT - switch(.@equip_id) { - case 2574: callsub L_Socket,3,8,1; //Ur_Manteau - case 2575: callsub L_Socket,3,2,1; //Peuz_Manteau - case 2577: callsub L_Socket,3,2,1; //Sabah_Hood - case 2578: callsub L_Socket,3,2,1; //Nab_Hood - case 2580: callsub L_Socket,3,1,1; //White_Wing_Manteau - case 2581: callsub L_Socket,3,1,1; //Black_Wing_Manteau - } - break; - case 2: //EQI_ARMOR - switch(.@equip_id) { - case 15036: callsub L_Socket,8,1,1; //Ur_Plate - case 15037: callsub L_Socket,10,2,1; //Peuz_Plate - case 15038: callsub L_Socket,2,10,1; //Sabah_Cloth - case 15039: callsub L_Socket,1,2,1; //Nab_Cloth - case 15042: callsub L_Socket,2,9,1; //White_Wing_Suits - case 15043: callsub L_Socket,1,9,1; //Black_Wing_Suits - } - break; - case 7: //EQI_ACC_L - switch(.@equip_id) { - case 2883: callsub L_Socket,6,0,2; //Ur_Seal - case 2884: callsub L_Socket,6,0,2; //Peuz_Seal - case 2886: callsub L_Socket,6,0,2; //Sabah_Ring - case 2887: callsub L_Socket,6,0,2; //Nab_Ring - case 2890: callsub L_Socket,6,0,2; //White_Wing_Brooch - case 2891: callsub L_Socket,6,0,2; //Black_wing_Brooch - } - break; - } - mes "[Artifact Researcher]"; - mes "^990099"+getequipname(.@part)+"^000000??"; - mes "I really want to study this equipment..."; - @mora_equip_part = 0; - close; - -L_Socket: - .@select = @mora_enchant_select; - .@enchant_type = getarg(0); - .@part = @mora_equip_part; - .@equip_id = getequipid(.@part); - .@equip_name$ = getitemname(.@equip_id); - .@equip_refine = getequiprefinerycnt(.@part); - setarray .@equip_card[0], getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3); - @mora_equip_part = 0; - @mora_enchant_select = 0; - - if (.@select == 1) { - // If refine is +9 or higher, unlock bonus enchant type. - if (.@equip_refine >= 9 && getarg(1) > 0) { - if (.@enchant_type < 1 || .@enchant_type > 11 || getarg(1) > 11) { - mes "[Artifact Researcher]"; - mes "Mm-hmm something is wrong."; - close; - } - setarray .@enchant_type$[1],"ATK Type","Critical Type","Evasion Type","Healer Type","Spell Ability 1","Assist Ability 1","Assist Ability 2","Strength","Range Type","Physical Type","Spell Ability 2"; - mes "[Artifact Researcher]"; - mes "It's a considerable reinforcement to the equipment. In this case extended enhancements can be granted. Which stat do you want to enhance?"; - next; - switch(select(.@enchant_type$[.@enchant_type],.@enchant_type$[getarg(1)])) { - case 1: - break; - case 2: - .@enchant_type = getarg(1); - break; - } - } - if (.@equip_card[3] == 0 && getarg(2) < 4) { - .@slot = 4; - mes "[Artifact Researcher]"; - mes "Attempting to strengthen the ability further. The previous enforcement won't be affected. Do you want to continue?"; - } else if (.@equip_card[2] == 0 && getarg(2) < 3) { - .@slot = 3; - mes "[Artifact Researcher]"; - mes "Attempting second enhancement. The previous enforcement won't be affected."; - next; - mes "[Artifact Researcher]"; - mes "I may have a chance to fail now with this attempt. Do you wish to continue?"; - } else if (.@equip_card[1] == 0 && getarg(2) < 2) { - .@slot = 2; - mes "[Artifact Researcher]"; - mes "Let's start the third enhancement. I can give the best stats at this stage but remember, ^990000there is now a chance for the artifact to be destroyed and previous enhancements will be erased^000000. Continue?"; - } else { - mes "[Artifact Researcher]"; - mes "This artifact has been strengthened to the limit. Further enhancement is impossible at its current state."; - close; - } - next; - if(select("I'll come back later.", "Please continue!") == 1) { - mes "[Artifact Researcher]"; - mes "If you change your mind, please come back."; - close; - } - switch(.@enchant_type) { - case 1: //Attack - if (.@slot == 4) .@i = rand(1,525); - else if (.@slot == 3) .@i = rand(301,655); - else if (.@slot == 2) .@i = rand(451,750); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4700; //Strength1 - else if (.@i < 201) .@enchant = 4811; //Fighting_Spirit1 - else if (.@i < 301) .@enchant = 4819; //Atk1 - else if (.@i < 351) .@enchant = 4701; //Strength2 - else if (.@i < 401) .@enchant = 4810; //Fighting_Spirit2 - else if (.@i < 451) .@enchant = 4766; //Atk2 - else if (.@i < 476) .@enchant = 4702; //Strength3 - else if (.@i < 501) .@enchant = 4809; //Fighting_Spirit3 - else if (.@i < 526) .@enchant = 4767; //Atk3 - else if (.@i < 626) .@enchant = 0; - else if (.@i < 641) .@enchant = 4703; //Strength4 - else if (.@i < 656) .@enchant = 4808; //Fighting_Spirit4 - else if (.@i < 661) .@enchant = 4704; //Strength5 - else if (.@i < 666) .@enchant = 4820; //Fighting_Spirit5 - else if (.@i < 668) .@enchant = 4705; //Strength6 - else if (.@i < 670) .@enchant = 4821; //Fighting_Spirit6 - else .@enchant = 9; - break; - case 2: //Critical - if (.@slot == 4) .@i = rand(1,470); - else if (.@slot == 3) .@i = rand(201,610); - else if (.@slot == 2) .@i = rand(381,750); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4750; //Luck1 - else if (.@i < 201) .@enchant = 4700; //Strength1 - else if (.@i < 261) .@enchant = 4751; //Luck2 - else if (.@i < 321) .@enchant = 4701; //Strength2 - else if (.@i < 351) .@enchant = 4752; //Luck3 - else if (.@i < 381) .@enchant = 4702; //Strength3 - else if (.@i < 411) .@enchant = 4764; //Critical5 - else if (.@i < 441) .@enchant = 4818; //Sharp1 - else if (.@i < 471) .@enchant = 4752; //Luck3 - else if (.@i < 571) .@enchant = 0; - else if (.@i < 586) .@enchant = 4753; //Luck4 - else if (.@i < 601) .@enchant = 4754; //Luck5 - else if (.@i < 606) .@enchant = 4765; //Critical7 - else if (.@i < 611) .@enchant = 4817; //Sharp2 - else if (.@i < 616) .@enchant = 4703; //Strength4 - else if (.@i < 618) .@enchant = 4816; //Sharp3 - else .@enchant = 9; - break; - case 3: //Evasion - if (.@slot == 4) .@i = rand(1,525); - else if (.@slot == 3) .@i = rand(301,670); - else if (.@slot == 2) .@i = rand(451,800); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4859; //Evasion1 - else if (.@i < 201) .@enchant = 4750; //Luck1 - else if (.@i < 301) .@enchant = 4730; //Agility1 - else if (.@i < 351) .@enchant = 4860; //Evasion3 - else if (.@i < 401) .@enchant = 4751; //Luck2 - else if (.@i < 451) .@enchant = 4731; //Agility2 - else if (.@i < 476) .@enchant = 4731; //Agility2 - else if (.@i < 501) .@enchant = 4752; //Luck3 - else if (.@i < 526) .@enchant = 4732; //Agility3 - else if (.@i < 626) .@enchant = 0; - else if (.@i < 641) .@enchant = 4762; //Evasion6 - else if (.@i < 656) .@enchant = 4753; //Luck4 - else if (.@i < 671) .@enchant = 4733; //Agility4 - else if (.@i < 676) .@enchant = 4763; //Evasion12 - else if (.@i < 681) .@enchant = 4754; //Luck5 - else if (.@i < 683) .@enchant = 4734; //Agility5 - else .@enchant = 9; - break; - case 4: //Healer - if (.@slot == 4) .@i = rand(1,375); - else if (.@slot == 3) .@i = rand(201,535); - else if (.@slot == 2) .@i = rand(301,650); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4710; //Inteligence1 - else if (.@i < 201) .@enchant = 4720; //Dexterity1 - else if (.@i < 251) .@enchant = 4711; //Inteligence2 - else if (.@i < 301) .@enchant = 4721; //Dexterity2 - else if (.@i < 326) .@enchant = 4805; //Heal_Amount2 - else if (.@i < 351) .@enchant = 4712; //Inteligence3 - else if (.@i < 376) .@enchant = 4722; //Dexterity3 - else if (.@i < 476) .@enchant = 0; - else if (.@i < 491) .@enchant = 4760; //Matk1 - else if (.@i < 506) .@enchant = 4850; //Heal_Amount3 - else if (.@i < 521) .@enchant = 4713; //Inteligence4 - else if (.@i < 536) .@enchant = 4723; //Dexterity4 - else if (.@i < 541) .@enchant = 4761; //Matk2 - else if (.@i < 546) .@enchant = 4851; //Heal_Amount4 - else if (.@i < 548) .@enchant = 4806; //Matk3 - else if (.@i < 550) .@enchant = 4852; //Heal_Amount5 - else .@enchant = 9; - break; - case 5: //Spell 1 - if (.@slot == 4) .@i = rand(1,600); - else if (.@slot == 3) .@i = rand(401,760); - else if (.@slot == 2) .@i = rand(401,766); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4710; //Inteligence1 - else if (.@i < 201) .@enchant = 4720; //Dexterity1 - else if (.@i < 301) .@enchant = 4795; //HP100 - else if (.@i < 401) .@enchant = 4815; //Spell1 - else if (.@i < 451) .@enchant = 4711; //Inteligence2 - else if (.@i < 501) .@enchant = 4721; //Dexterity2 - else if (.@i < 551) .@enchant = 4796; //HP200 - else if (.@i < 601) .@enchant = 4814; //Spell2 - else if (.@i < 701) .@enchant = 0; - else if (.@i < 716) .@enchant = 4712; //Inteligence3 - else if (.@i < 731) .@enchant = 4722; //Dexterity3 - else if (.@i < 746) .@enchant = 4797; //HP300 - else if (.@i < 761) .@enchant = 4813; //Spell3 - else if (.@i < 763) .@enchant = 4713; //Inteligence4 - else if (.@i < 765) .@enchant = 4723; //Dexterity4 - else if (.@i < 767) .@enchant = 4812; //Spell4 - else .@enchant = 9; - break; - case 6: //Assist 1 - if (.@slot == 4) .@i = rand(1,520); - else if (.@slot == 3) .@i = rand(321,720); - else if (.@slot == 2) .@i = rand(521,850); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 81) .@enchant = 4792; //Def6 - else if (.@i < 161) .@enchant = 4787; //Mdef4 - else if (.@i < 241) .@enchant = 4801; //SP100 - else if (.@i < 321) .@enchant = 4796; //HP200 - else if (.@i < 371) .@enchant = 4700; //Strength1 - else if (.@i < 421) .@enchant = 4720; //Dexterity1 - else if (.@i < 471) .@enchant = 4730; //Agility1 - else if (.@i < 521) .@enchant = 4740; //Vitality1 - else if (.@i < 621) .@enchant = 0; - else if (.@i < 646) .@enchant = 4793; //Def9 - else if (.@i < 671) .@enchant = 4788; //Mdef6 - else if (.@i < 696) .@enchant = 4802; //SP150 - else if (.@i < 721) .@enchant = 4797; //HP300 - else if (.@i < 731) .@enchant = 4701; //Strength2 - else if (.@i < 741) .@enchant = 4721; //Dexterity2 - else if (.@i < 751) .@enchant = 4731; //Agility2 - else .@enchant = 9; - break; - case 7: //Assist 2 - if (.@slot == 4) .@i = rand(1,520); - else if (.@slot == 3) .@i = rand(321,720); - else if (.@slot == 2) .@i = rand(521,850); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 81) .@enchant = 4792; //Def6 - else if (.@i < 161) .@enchant = 4787; //Mdef4 - else if (.@i < 241) .@enchant = 4801; //SP100 - else if (.@i < 321) .@enchant = 4796; //HP200 - else if (.@i < 371) .@enchant = 4710; //Inteligence1 - else if (.@i < 421) .@enchant = 4720; //Dexterity1 - else if (.@i < 471) .@enchant = 4730; //Agility1 - else if (.@i < 521) .@enchant = 4740; //Vitality1 - else if (.@i < 621) .@enchant = 0; - else if (.@i < 646) .@enchant = 4793; //Def9 - else if (.@i < 671) .@enchant = 4788; //Mdef6 - else if (.@i < 696) .@enchant = 4802; //SP150 - else if (.@i < 721) .@enchant = 4797; //HP300 - else if (.@i < 731) .@enchant = 4711; //Inteligence2 - else if (.@i < 741) .@enchant = 4721; //Dexterity2 - else if (.@i < 751) .@enchant = 4741; //Vitality2 - else .@enchant = 9; - break; - case 8: //Strength - if (.@slot == 4) .@i = rand(1,525); - else if (.@slot == 3) .@i = rand(301,685); - else if (.@slot == 2) .@i = rand(451,800); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4740; //Vitality1 - else if (.@i < 201) .@enchant = 4797; //HP300 - else if (.@i < 301) .@enchant = 4791; //Def3 - else if (.@i < 351) .@enchant = 4741; //Vitality2 - else if (.@i < 401) .@enchant = 4798; //HP400 - else if (.@i < 451) .@enchant = 4792; //Def6 - else if (.@i < 476) .@enchant = 4742; //Vitality3 - else if (.@i < 501) .@enchant = 4793; //Def9 - else if (.@i < 526) .@enchant = 4799; //HP500 - else if (.@i < 626) .@enchant = 0; - else if (.@i < 641) .@enchant = 4742; //Vitality3 - else if (.@i < 656) .@enchant = 4743; //Vitality4 - else if (.@i < 671) .@enchant = 4794; //Def12 - //else if (.@i < 686) .@enchant = 01; // ?? - else if (.@i < 688) .@enchant = 4744; //Vitality5 - //else if (.@i < 690) .@enchant = 02; // ?? - else .@enchant = 9; - break; - case 9: //Range - if (.@slot == 4) .@i = rand(1,470); - else if (.@slot == 3) .@i = rand(201,610); - else if (.@slot == 2) .@i = rand(321,750); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4750; //Luck1 - else if (.@i < 201) .@enchant = 4720; //Dexterity1 - else if (.@i < 261) .@enchant = 4751; //Luck2 - else if (.@i < 321) .@enchant = 4721; //Dexterity2 - else if (.@i < 351) .@enchant = 4752; //Luck3 - else if (.@i < 381) .@enchant = 4722; //Dexterity3 - else if (.@i < 411) .@enchant = 4764; //Critical5 - else if (.@i < 441) .@enchant = 4832; //Expert_Archer1 - else if (.@i < 471) .@enchant = 4753; //Luck4 - else if (.@i < 571) .@enchant = 0; - else if (.@i < 586) .@enchant = 4723; //Dexterity4 - else if (.@i < 601) .@enchant = 4833; //Expert_Archer2 - else if (.@i < 606) .@enchant = 4765; //Critical7 - else if (.@i < 611) .@enchant = 4834; //Expert_Archer3 - else if (.@i < 616) .@enchant = 4724; //Dexterity5 - else if (.@i < 618) .@enchant = 4835; //Expert_Archer4 - else .@enchant = 9; - break; - case 10: //Physical - if (.@slot == 4) .@i = rand(1,600); - else if (.@slot == 3) .@i = rand(401,800); - else if (.@slot == 2) .@i = rand(601,930); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4791; //Def3 - else if (.@i < 201) .@enchant = 4730; //Agility1 - else if (.@i < 301) .@enchant = 4750; //Luck1 - else if (.@i < 401) .@enchant = 4795; //HP100 - else if (.@i < 451) .@enchant = 4792; //Def6 - else if (.@i < 501) .@enchant = 4731; //Agility2 - else if (.@i < 551) .@enchant = 4751; //Luck2 - else if (.@i < 601) .@enchant = 4796; //HP200 - else if (.@i < 701) .@enchant = 0; - else if (.@i < 726) .@enchant = 4793; //Def9 - else if (.@i < 751) .@enchant = 4732; //Agility3 - else if (.@i < 776) .@enchant = 4752; //Luck3 - else if (.@i < 801) .@enchant = 4797; //HP300 - else if (.@i < 816) .@enchant = 4733; //Agility4 - else if (.@i < 831) .@enchant = 4753; //Luck4 - else if (.@i < 833) .@enchant = 4807; //Atk_Speed1 - else .@enchant = 9; - break; - case 11: //Spell 2 - if (.@slot == 4) .@i = rand(1,600); - else if (.@slot == 3) .@i = rand(401,760); - else if (.@slot == 2) .@i = rand(401,766); - else { - mes "[Artifact Researcher]"; - mes "An unknown error has occurred."; - close; - } - if (.@i < 101) .@enchant = 4711; //Inteligence2 - else if (.@i < 201) .@enchant = 4721; //Dexterity2 - else if (.@i < 301) .@enchant = 4796; //HP200 - else if (.@i < 401) .@enchant = 4814; //Spell2 - else if (.@i < 451) .@enchant = 4712; //Inteligence3 - else if (.@i < 501) .@enchant = 4722; //Dexterity3 - else if (.@i < 551) .@enchant = 4760; //Matk1 - else if (.@i < 601) .@enchant = 4813; //Spell3 - else if (.@i < 701) .@enchant = 0; - else if (.@i < 716) .@enchant = 4713; //Inteligence4 - else if (.@i < 731) .@enchant = 4723; //Dexterity4 - else if (.@i < 746) .@enchant = 4761; //Matk2 - else if (.@i < 761) .@enchant = 4812; //Spell4 - else if (.@i < 763) .@enchant = 4714; //Inteligence5 - else if (.@i < 765) .@enchant = 4724; //Dexterity5 - else if (.@i < 767) .@enchant = 4806; //Matk3 - else .@enchant = 9; - break; - default: - mes "[Artifact Researcher]"; - mes "Well I guess I was wrong..."; - close; - } - if (.@equip_card[3] == 0 && getarg(2) < 4) { - .@equip_card[3] = .@enchant; - } else if (.@equip_card[2] == 0 && getarg(2) < 3) { - .@equip_card[2] = .@enchant; - if (.@enchant == 0) { - .@equip_card[3] = 0; - } - } else if (.@equip_card[1] == 0 && getarg(2) < 2) { - .@equip_card[1] = .@enchant; - if (.@enchant == 0) { - .@equip_card[2] = 0; - .@equip_card[3] = 0; - } - } else { - mes "[Artifact Researcher]"; - mes "I think there was an enhancing limit to the artifacts."; - close; - } - if (Zeny < 100000 || countitem(Mora_Coin) == 0) { - mes "[Artifact Researcher]"; - mes "I'm not going to do the work unless you pay the fee."; - close; - } - delitem Mora_Coin,1; - Zeny -= 100000; - delequip .@part; - if (.@enchant == 9) { - specialeffect(EF_SUI_EXPLOSION, AREA, playerattached()); - mes "[Artifact Researcher]"; - mes "This!"; - mes "I... I'm sorry but the equipment has been destroyed."; - close; - } - if (.@enchant == 0) { - specialeffect(EF_SHIELDCHARGE, AREA, playerattached()); - mes "[Artifact Researcher]"; - mes "Since the balance of power does not match, the given existing ability has been destroyed. It is unfortunate but please try again next time."; - } else { - specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); - mes "[Artifact Researcher]"; - // Replacing original dialogue since it doesn't make sense. - //mes "The artifact ^990000"+.@slot+" will have the first enhancement retained."; - mes "I've successfully enhanced the artifact ^990000"+.@equip_name$+"^000000 at socket "+.@slot+"."; - } - - // GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3] - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; - - close; - } else if (.@select == 2) { - if (Zeny < 100000 || countitem(Mora_Coin) == 0) { - mes "[Artifact Researcher]"; - mes "You've got to pay if you want the services."; - close; - } - specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); - mes "[Artifact Researcher]"; - mes "The ability to enhance remains."; - delitem Mora_Coin,1; - Zeny -= 100000; - delequip .@part; - - // GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@equip_card[3] - for(.@i = 0; .@i<4; ++.@i) { - if (.@equip_card[.@i] >= 4700) // Armor Enchant System - .@equip_card[.@i] = 0; - } - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; - - close; - } -} - -//== Arch Bishop & Warlock Empowering :: relic_change ====== -mora,124,82,4 script Artifact Collector#blan 4_M_RAFLE_OR,{ - if (checkweight(Knife,1) == 0) { - mes "Reduce the amount of items that you have in your inventory before continuing."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much in your inventory."; - close; - } - disable_items; - emotion e_ho; - mes "Those Mora Artifacts look so perfect!"; - mes "But I know you want them to be even better!"; - next; - mes "[Artifact Collector]"; - mes "Greetings Adventurer. We will be great friends in a moment after I tell you how to Empower your Artifacts!"; - next; - switch(select("Let's do this!", "Empower Artifacts?", "Nope, not for me!")) { - case 1: - break; - case 2: - emotion e_ok; - mes "[Artifact Collector]"; - mes "You seem like a pretty good judge of character."; - next; - mes "[Artifact Collector]"; - mes "For over 200 years I've been working with Artifacts here in Mora. Toiling to get the perfect +9!"; - next; - select("Gulp... +9?!"); - emotion e_omg,1; - mes "[Artifact Collector]"; - mes "My business is collecting the old relics and refining them to their essence!"; - next; - emotion e_sob; - mes "[Artifact Collector]"; - mes "Finding the perfect Artifact for me to experiment on is my life's work."; - mes "Plus seeing the wonder of our ancestor's legacy is also gratifying."; - next; - select("I can see how that could be fun."); - emotion e_pat; - mes "[Artifact Collector]"; - mes "Thank you human."; - next; - mes "[Artifact Collector]"; - mes "I've been doing this for over 200 years, and honestly the readily available supply is gone, and Artificer and Artifact Crafter won't trade me anymore..."; - next; - emotion e_dots; - mes "[Artifact Collector]"; - mes "But maybe the Humans that are starting to visit can bring in some new stock!"; - next; - select("Humans... Stock?"); - emotion e_what,1; - mes "[Artifact Collector]"; - mes "Yes! If the humans can bring me new artifacts I can work on my ultimate achievement!"; - next; - select("Ultimate Achievement?"); - emotion e_what,1; - emotion e_ok; - mes "[Artifact Collector]"; - mes "Patience, we'll get to that..."; - next; - mes "[Artifact Collector]"; - mes "I am a collector, by trade, but my greatest achievement is empowering some artifacts with greater power!"; - mes "I have only perfected my ability on a few Artifact types so far."; - next; - mes "[Artifact Collector]"; - mes "You might just be the human to help me complete my plan."; - next; - emotion e_otl; - mes "[Artifact Collector]"; - mes "Oh how I love how fate works sometimes..."; - next; - mes "[Artifact Collector]"; - mes "+1, +2, +3, +4, +5, +6 those refinements are not strong enough to work on my craft."; - next; - emotion e_otl,0; - mes "[Artifact Collector]"; - mes "But +7! +7 is rare and just barely strong enough to work in my crafting attempts."; - next; - select("I'm gonna be abused again..."); - emotion e_hmm,1; - mes "[Artifact Collector]"; - mes "Right you are! I know it is natural for you Humans to help a friend, even without the friend asking..."; - next; - select("I'm not sure if..."); - emotion e_what,1; - mes "[Artifact Collector]"; - mes "Of course I'll accept your help! Find me..."; - next; - mes "- Golden Rod Staff -"; - mes "- Aqua Staff -"; - mes "- Crimson Staff -"; - mes "- Forest Staff -"; - mes "- Staff of Mercy -"; - mes "- Mace of Judgement -"; - next; - select("Anything else?"); - emotion e_what,1; - mes "[Artifact Collector]"; - mes "Well aside from the +7, there are very specific enchantments that need to be on the artifact that help catalyze the process."; - next; - mes "[Artifact Collector]"; - mes "If either the +7 or the specific enchantment is missing I can't do it."; - next; - select("So the Refining will be preserved?"); - emotion e_omg,1; - emotion e_an; - mes "[Artifact Collector]"; - mes "No, but what you'll get back is so much better!"; - next; - mes "[Artifact Collector]"; - mes "By now you are wondering more about the artifacts I'm looking for?"; - next; - emotion e_what; - mes "[Artifact Collector]"; - mes "Go ahead and ask!"; - next; - setarray .@artifacts[0],1657,16013,2007,2008,2009,2010; - setarray .@empowered[0],1660,16018,2011,2012,2013,2014; - while(1) { - .@i = select("I don't think I'm interested", "Staff of Mercy", "Mace of Judgement", "Golden Rod Staff", "Aqua Staff", "Crimson Staff", "Forest Staff")-2; - if (.@i == -1) { - emotion e_what; - mes "[Artifact Collector]"; - mes "Ok, well maybe someday you will be."; - close; - } - mes "[Artifact Collector]"; - mes getitemname(.@artifacts[.@i])+" must of course be refined to +7 or higher for me to distill it to an enchantment."; - next; - switch(.@i) { - case 0: - setarray .@enchants[0],4761,4723,4714; - .@str$ = "MATK+2%, DEX+4, INT+5"; - break; - case 1: - setarray .@enchants[0],4767,4723,4704; - .@str$ = "ATK+3%, DEX+4, STR+5"; - break; - default: - setarray .@enchants[0],4761,4713; - .@str$ = "MATK+2%, INT+4"; - break; - } - mes "[Artifact Collector]"; - mes "It must also carry any of these enchantments: "+.@str$+" to be craftable by me."; - next; - select(getitemname(.@empowered[.@i])+" attributes?"); - callsub L_ShowInfo, .@empowered[.@i]; - mes "[Artifact Collector]"; - mes "But please if you do get one, please let me work on it, I'm begging you."; - next; - } - case 3: - mes "[Artifact Collector]"; - mes "Have yourself a great day. Bye~"; - close; - } - emotion e_flash; - mes "[Artifact Collector]"; - mes "Let me take a look at what you have brought me."; - next; - if (!getequipisequiped(EQI_HAND_R)) { - emotion e_an; - mes "[Artifact Collector]"; - mes "I don't know what you are trying to do... I can't enhance what you don't have."; - close; - } - .@equip_id = getequipid(EQI_HAND_R); - setarray .@equip_card[2], getequipcardid(EQI_HAND_R,2),getequipcardid(EQI_HAND_R,3); - switch(.@equip_id) { - case 2007: //Golden_Rod_Staff - case 2008: //Aqua_Staff - case 2009: //Crimson_Staff - case 2010: //Forest_Staff - if (.@equip_card[2] == 4761 || .@equip_card[3] == 4761 || //Matk2 - .@equip_card[2] == 4713 || .@equip_card[3] == 4713) //Inteligence4 - .@empowered = .@equip_id+4; //Golden_Rod_Staff2,Aqua_Staff2,Crimson_Staff2,Forest_Staff2 - break; - case 1657: //Wand_Of_Affection - if (.@equip_card[2] == 4761 || .@equip_card[3] == 4761 || //Matk2 - .@equip_card[2] == 4714 || .@equip_card[3] == 4714 || //Inteligence5 - .@equip_card[2] == 4723 || .@equip_card[3] == 4723) //Dexterity4 - .@empowered = 1660; //Wand_Of_Affection2 - break; - case 16013: //Mace_Of_Judgement - if (.@equip_card[2] == 4723 || .@equip_card[3] == 4723 || //Dexterity4 - .@equip_card[2] == 4704 || .@equip_card[3] == 4704 || //Strength5 - .@equip_card[2] == 4767 || .@equip_card[3] == 4767) //Atk3 - .@empowered = 16018; //Mace_Of_Judgement2 - break; - default: - emotion e_an; - mes "[Artifact Collector]"; - mes "The weapon you have isn't one of the Artifacts I can work with."; - close; - } - if (getequiprefinerycnt(EQI_HAND_R) < 7) { - emotion e_an; - mes "[Artifact Collector]"; - mes "I must insist that the refine level of the Artifact be at least +7!"; - close; - } - if (!.@empowered) { - emotion e_an; - mes "[Artifact Collector]"; - mes "These attributes just won't do for my research process, try re-randoming them."; - close; - } - emotion e_slur; - mes "[Artifact Collector]"; - mes "I'm tingling with excitement!"; - mes "You've brought me everything I need!!"; - next; - emotion e_ok; - mes "[Artifact Collector]"; - mes "If you are ready I am about to show you what I can do with your +"+getequiprefinerycnt(EQI_HAND_R)+" Artifact!"; - next; - mes "[Artifact Collector]"; - mes "I'm going to take your ^FF0000"+getequipname(EQI_HAND_R)+"^000000 and exchange it, are you ready?"; - next; - switch(select("NOOO!", "Yes, I'm ready!", "What will it be after?")) { - case 1: - emotion e_an; - mes "[Artifact Collector]"; - mes "You've got to be kidding... you got my hopes up..."; - close; - case 2: - break; - case 3: - callsub L_ShowInfo, .@empowered; - mes "[Artifact Collector]"; - mes "Surely you want to go on?"; - next; - if(select("No, I don't.", "Yes, do it!") == 1) { - emotion e_an; - mes "[Artifact Collector]"; - mes "You've got to be kidding... you got my hopes up..."; - close; - } - break; - } - emotion e_heh; - delequip EQI_HAND_R; - getitem .@empowered,1; - mes "[Artifact Collector]"; - mes "It is perfectly done, you will be so happy! Good bye friend~"; - close; - -L_ShowInfo: - mes "[Artifact Collector]"; - mes getitemname(getarg(0)); - switch(getarg(0)) { - case 1660: //Wand_Of_Affection2 - mes "One handed Staff / Attack : 30"; - mes "Weight : 50 / Any Sex"; - mes "Archbishop only"; - mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000"; - mes "MATK + 180, INT + 4."; - mes "Adds 20% Heal Bonus."; - mes "If worn with Robes, Shoes, and Robe of Mercy Increase Heal Bonus by an additional 45% and SP consumption of 'Heal' by 50."; - mes "When receives close physical attack, Lv.1 Silentium will be excuted at a certain rate."; - mes "Recuces 3 seconds of delay after excuting Clearance, Laudaramus, and Laudaagnus skills."; - break; - case 16018: //Mace_Of_Judgement2 - mes "Mace / Attack : 170"; - mes "Weight : 120 / Any Sex"; - mes "Archbishop only"; - mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000"; - mes "MATK + 180, STR + 2, INT + 2."; - mes "Physical and Magical Attacks have a chance to increase damage by 40% to Demon monsters for 7 seconds."; - mes "If worn with Judgement Golves, Shoes and Shawl, increase Damage against Undead by 30%."; - mes "Increase damage of Adoramus by 200%, and increase SP cost of Adoramus by 30."; - break; - case 2011: //Golden_Rod_Staff2 - mes "Staff / Attack: 30"; - mes "Weight : 90 / Any Sex"; - mes "Warlock only"; - mes "Weapon Level : 4 / ^ff0000Required Level : 130^000000"; - mes "INT + 5, MATK + 270."; - mes "Increase Jupitel Thunder damage by 30%."; - mes "If worn with Golden Robe, Golden Shoes, and Golden Orb Increase Wind Magic damage by 60%."; - mes "Lower Earth Magic damage by 60% and resistance to Earth by 50%."; - break; - case 2012: //Aqua_Staff2 - mes "Staff / Attack : 30"; - mes "Weight : 90 / Any Sex"; - mes "Warlock only"; - mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000"; - mes "INT + 5, MATK + 270."; - mes "Increase Cold Bolt and Frost Diver damage by 30%."; - mes "If worn with Aqua Robe, Shoes, and Orb Increase Water Magic damage by 60%."; - mes "Lower Wind Magic damage by 60% and resistance to Wind by 50%."; - break; - case 2013: //Crimson_Staff2 - mes "Staff / Attack : 30"; - mes "Weight : 90 / Any Sex"; - mes "Warlock only"; - mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000"; - mes "INT + 5, MATK + 270."; - mes "Increase Fire Bolt and Fireball damage by 30%."; - mes "If worn with Crimson Robe, Shoes, and Orb Increase Fire Magic damage by 60%."; - mes "Lower Water Magic damage by 60% and resistance to Water by 50%."; - break; - case 2014: //Forest_Staff2 - mes "Staff / Attack : 30"; - mes "Weight : 90 / Any Sex"; - mes "Warlock only"; - mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000"; - mes "INT + 5, MATK + 270."; - mes "Increase Earth Spike and Heaven's Drive damage by 30%."; - mes "If worn with Forest Robe, Shoes, and Orb Increase Earth Magic damage by 60%."; - mes "Lower Fire Magic damage by 60% and resistance to Fire by 50%."; - break; - } - next; - return; -} - -//== Other Enchants :: sangjo ============================== -function script F_Mora_Enchant { - specialeffect(EF_REPAIRWEAPON, AREA, playerattached()); - progressbar "ffff00",3; - delitem Mora_Coin,5; - delitem getarg(0),1; - .@i = rand(1,4568); - if (.@i <= 3168) { - // Basic combinations - // (raw: .@i increments by 11) - setarray .@enchant_slot1[0],4766,4767,4764,4765,4762,4763,4760,4761; //Atk2,Atk3,Critical5,Critical7,Evasion6,Evasion12,Matk1,Matk2 - setarray .@enchant_slot2[0],4720,4721,4710,4711,4750,4751; //Dexterity1,Dexterity2,Inteligence1,Inteligence2,Luck1,Luck2 - setarray .@enchant_slot3[0],4700,4701,4730,4731,4740,4741; //Strength1,Strength2,Agility1,Agility2,Vitality1,Vitality2 - setarray .@enchants[1], - .@enchant_slot1[rand(getarraysize(.@enchant_slot1))], - .@enchant_slot2[rand(getarraysize(.@enchant_slot2))], - .@enchant_slot3[rand(getarraysize(.@enchant_slot3))]; - } - else if (.@i <= 3179) setarray .@enchants[1],4761,4720,4700; //Matk2 Dexterity1 Strength1 - else if (.@i <= 3181) setarray .@enchants[1],4761,4712,4712; //Matk2 Inteligence3 Inteligence3 - else if (.@i <= 3183) setarray .@enchants[1],4765,4732,4732; //Critical7 Agility3 Agility3 - else if (.@i <= 3185) setarray .@enchants[1],4763,4752,4753; //Evasion12 Luck3 Luck4 - else if (.@i <= 3187) setarray .@enchants[1],4763,4742,4742; //Evasion12 Vitality3 Vitality3 - else if (.@i <= 3189) setarray .@enchants[1],4763,4722,4722; //Evasion12 Dexterity3 Dexterity3 - else if (.@i <= 3191) setarray .@enchants[1],4742,4742,4742; //Vitality3 Vitality3 Vitality3 - else if (.@i <= 3193) setarray .@enchants[1],4761,4722,4722; //Matk2 Dexterity3 Dexterity3 - else if (.@i <= 3195) setarray .@enchants[1],4767,4702,4702; //Atk3 Strength3 Strength3 - else if (.@i <= 3197) setarray .@enchants[1],4763,4732,4732; //Evasion12 Agility3 Agility3 - else if (.@i <= 4568) return 0; - - getitem2 getarg(0),1,1,0,0,0,.@enchants[1],.@enchants[2],.@enchants[3]; - return 1; -} -mora,105,176,4 script Master Tailor#pa0829 4_ELEPHANT,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of things with you to do that. Throw out some of them and try again."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much weight to do that. Reduce the weight and try again."; - close; - } - if (countitem(Mora_Coin) < 5 || countitem(Army_Padding) < 1) { - mes "[Master Tailor]"; - mes "With my touch, I can turn a typical army padding into a piece of art. I'm Kay the Master Tailor, creating art with army paddings."; - next; - mes "[Master Tailor]"; - mes "Well, what's in a name? I can turn your army padding into a piece of art if you bring ^ff00005 Mora Coins and an Army Padding^000000."; - if (countitem(Mora_Coin)) { - next; - mes "[Master Tailor]"; - mes "I happen to have a few army paddings in stock. Would you like to buy one? The price is 1 Mora Coin. So cheap."; - next; - switch(select("Maybe next time.", "I'll buy one now.")) { - case 1: - mes "[Master Tailor]"; - mes "Okay, I understand."; - mes "Come back for one if you change your mind."; - close; - case 2: - delitem Mora_Coin,1; - getitem Army_Padding,1; - mes "[Master Tailor]"; - mes "Here it is."; - mes "It's very nice and fluffy. Please come back."; - close; - } - } - close; - } - mes "[Master Tailor]"; - mes "Have you come to add art to one of your army paddings?"; - next; - switch(select("Please tell me more.", "Yes, I have.")) { - case 1: - mes "[Master Tailor]"; - mes "A typical army padding isn't warm enough. It feels rough on your skin and doesn't look good. And artistic value? It has next to none."; - next; - mes "[Master Tailor]"; - mes "However, I'll embroider it with velvet threads, and add three options to it."; - next; - mes "[Master Tailor]"; - mes "Bring me ^8888005 Mora Coins^000000 and an Army Padding, and we can add some art together!"; - close; - case 2: - mes "[Master Tailor]"; - mes "I'm telling you just in case - I'll do whatever I need to do with your army padding, whether it's brand-new or has been mended before."; - next; - mes "[Master Tailor]"; - mes "So if you have with you an army padding mended to your liking, put it in a safe place and come back."; - next; - mes "[Master Tailor]"; - mes "And another thing - once I fail to add art to it, it becomes unusable... you'll need to buy a new one in that case."; - next; - switch(select("Come on, what's the rush?", "Okay! Let's do it!!")) { - case 1: - mes "[Master Tailor]"; - mes "What's wrong with you?"; - mes "The villagers keep me busy enough."; - close; - case 2: - if (countitem(Mora_Coin) < 5 || countitem(Army_Padding) == 0) { - mes "[Master Tailor]"; - mes "It looks like you don't have everything you need."; - next; - mes "[Master Tailor]"; - mes "You have to have 5 Mora Coins and an Army Padding with you before I can do my work."; - close; - } - if (callfunc("F_Mora_Enchant",15024) == 0) { - mes "[Master Tailor]"; - mes "Oh......"; - mes "I can't believe I messed up."; - next; - mes "[Master Tailor]"; - mes "I want to be alone. Go away!"; - close; - } - mes "[Master Tailor]"; - mes "My art looks great."; - close; - } - } -} - -mora,123,177,6 script Pendant Crafter#pa0829 4_ELEPHANT,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of things with you to do that. Throw out some of them and try again."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much weight to do that. Reduce the weight and try again."; - close; - } - if (countitem(Mora_Coin) < 5 || countitem(Pendant_Of_Guardian) == 0) { - mes "[Pendant Crafter]"; - mes "My job is to polish the stone in a Guardian's Pendant, and then carve a symbol with special power on it."; - next; - mes "[Pendant Crafter]"; - mes "The process gives the Guardian's Pendant more power than an ordinary accessory."; - next; - mes "[Pendant Crafter]"; - mes "If you're interested, I can work on your pendant for ^ff00005 Mora Coins^000000. Of course you need to have a Guardian's Pendant so I can work on with you."; - close; - } - mes "[Pendant Crafter]"; - mes "Have you come to have your Guardian's Pendant upgraded?"; - next; - switch(select("Please tell me more.", "Yes, I have.")) { - case 1: - mes "[Pendant Crafter]"; - mes "My job is to polish the stone in a Guardian's Pendant, and then carve a symbol with special power on it."; - next; - mes "[Pendant Crafter]"; - mes "The process gives the Guardian's Pendant more power than an ordinary accessory."; - next; - mes "[Pendant Crafter]"; - mes "If you're interested, I can work on your pendant for ^ff00005 Mora Coins^000000. Of course you need to have a Guardian's Pendant so I can work on with you."; - close; - case 2: - mes "[Pendant Crafter]"; - mes "I'm telling you just in case - "; - mes "If I work on a Guardian's Pendant that's been upgraded before, it loses its original power."; - next; - mes "[Pendant Crafter]"; - mes "And worse, it can lose its power and become an ordinary pendant. Of course, stone is not as susceptible to damage as cloth, so you won't lose the pendant itself."; - next; - switch(select("Come on, what's the rush?", "Okay! Let's do it!!")) { - case 1: - mes "[Pendant Crafter]"; - mes "Come back when you're not in a hurry. I always have a lot of time on my hands."; - close; - case 2: - if (countitem(Mora_Coin) < 5 || countitem(Pendant_Of_Guardian) == 0) { - mes "[Pendant Crafter]"; - mes "It looks like you don't have everything you need."; - next; - mes "[Pendant Crafter]"; - mes "You must have 5 Mora Coins and a Guardian's Pendant with you before I can do my work."; - close; - } - if (callfunc("F_Mora_Enchant",2858) == 0) { - getitem Pendant_Of_Guardian,1; - mes "[Pendant Crafter]"; - mes "What~!!"; - mes "What on earth is wrong with it!!"; - close; - } - mes "[Pendant Crafter]"; - mes "Looks like I did it!"; - close; - } - } -} - -mora,134,166,4 script Bulberry Westhood#pa0829 4_ELEPHANT,{ - if (checkweight(Knife,1) == 0) { - mes "You have too many kinds of things with you to do that. Throw out some of them and try again."; - close; - } - if (MaxWeight - Weight < 1000) { - mes "You are carrying too much weight to do that. Reduce the weight and try again."; - close; - } - if (countitem(Mora_Coin) < 5 || countitem(Muffler_Of_Roki) == 0) { - mes "[Bulberry Westhood]"; - mes "I'm Bulberry Westhood, keeping the tradition of quality hoods alive."; - next; - mes "[Bulberry Westhood]"; - mes "I only handle quality items - not random scarfs from a marketplace."; - next; - mes "[Bulberry Westhood]"; - mes "If you have anything that you think is of high enough quality, come find me with ^ff00005 Mora Coins^000000."; - next; - mes "[Bulberry Westhood]"; - mes "I can improve its high quality with my own hands."; - close; - } - mes "[Bulberry Westhood]"; - mes "So you have a Loki's Scarf 1042 Special Edition. You really have an eye for quality. Can I start working on it right away?"; - next; - switch(select("I don't get it.", "Yes, please.")) { - case 1: - mes "[Bulberry Westhood]"; - mes "Like I said, I only handle quality items - not random scarfs from a marketplace."; - next; - mes "[Bulberry Westhood]"; - mes "This Loki's Scarf you have is awesome. It's a limited edition product with Loki's crest on it!"; - next; - mes "[Bulberry Westhood]"; - mes "My specialty is bringing out the hidden power at the small cost of... "; - mes "5 Mora Coins."; - next; - mes "[Bulberry Westhood]"; - mes "Come back if you change your mind."; - close; - case 2: - mes "[Bulberry Westhood]"; - mes "I'm telling you just in case - "; - mes "If I work on a Loki's Scarf that's been upgraded before, it loses its original power."; - next; - mes "[Bulberry Westhood]"; - mes "And worse, it can lose all its power becoming an ordinary scarf."; - next; - mes "[Bulberry Westhood]"; - mes "Of course, the Loki's Scarf is a quality item, so you won't lose the scarf itself in the process."; - next; - switch(select("Maybe later, sir...", "I'd like to own a quality item!")) { - case 1: - mes "[Bulberry Westhood]"; - mes "Ha...!"; - mes "You say 'later' when you can have the best quality item right away? Well, have it your own way."; - close; - case 2: - if (countitem(Mora_Coin) < 5 || countitem(Muffler_Of_Roki) == 0) { - mes "[Bulberry Westhood]"; - mes "It looks like you don't everything you need."; - next; - mes "[Bulberry Westhood]"; - mes "You must have 5 Mora Coins and a Loki's Scarf with you before you can have the best quality item."; - close; - } - if (callfunc("F_Mora_Enchant",2568) == 0) { - getitem Muffler_Of_Roki,1; - mes "[Bulberry Westhood]"; - mes "Aaarrgghh, this is impossible!"; - mes "My! My Loki's Scarf!...."; - next; - mes "[Bulberry Westhood]"; - mes "Oh, I apologize for my disgraceful behavior. I was too upset."; - next; - mes "[Bulberry Westhood]"; - mes "Fortunately, it's still in its original state before I started working on it. It's not torn or stretched. It's a quality item after all. Oh ho ho~"; - close; - } - mes "[Bulberry Westhood]"; - mes "Wow~ mission complete!"; - close; - } - } -} diff --git a/npc/re/merchants/enchan_upg.txt b/npc/re/merchants/enchan_upg.txt deleted file mode 100644 index 3193fcf1b..000000000 --- a/npc/re/merchants/enchan_upg.txt +++ /dev/null @@ -1,285 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Euphy -//= Copyright (C) Skorm -//= -//= 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/>. -//========================================================================= -//= Upgrade Weapon Enchants -//================= Description =========================================== -//= Adds enchantments to Upgrade weapons. -//================= Current Version ======================================= -//= 1.1 -//========================================================================= - -prt_in,28,73,3 script Devil Enchant Master#prq 1_M_SMITH,{ - disable_items; - if (checkweight(Knife,1) == 0) { - mes "You are carrying too many items, please reduce it and come back again!"; - close; - } - if (MaxWeight - Weight < 10000) { - mes "You are over the weight limit, please reduce it and come back again!"; - close; - } - mes "[Devil Enchant Master]"; - mes "Yes?"; - mes "You are looking for me?"; - next; - switch(select("This is the first time seeing you!", "I heard that you are the best!", "Please initialize the enchant.")) { - case 1: - mes "[Devil Enchant Master]"; - mes "Ha ha ha~ Of course, I am not the kind of person that simply deals with people."; - next; - mes "[Devil Enchant Master]"; - mes "Including you! Even if you offer me plenty of money, I will not simply enchant for you!!"; - next; - mes "[Devil Enchant Master]"; - mes "Have you seen my title? Very few people have this title for a reason!"; - next; - mes "[Devil Enchant Master]"; - mes "I will only enchant if you bring an ^0000ffEnchant Book^000000 along!"; - next; - mes "[Devil Enchant Master]"; - mes "Else, I will not enchant for you...."; - close; - case 2: - if (!countitem(Enchant_Book)) { - mes "[Devil Enchant Master]"; - mes "Are you listening to me? I will only do for you if you bring the Enchant Book!"; - close; - } - .@select = 1; - break; - case 3: - mes "[Devil Enchant Master]"; - if (Zeny < 100000) { - mes "Initializing will cost 100,000 zeny. It seems you do not have enough zeny..."; - close; - } - mes "Initializing will cost 100,000 zeny and confirming whether the weapon is enchanted!"; - next; - if (select("Let me think about it.", "Initialize it now!") == 1) { - mes "[Devil Enchant Master]"; - mes "Come back after you have confirmed!"; - close; - } - .@select = 2; - break; - } - .@part = EQI_HAND_R; - - mes "[Devil Enchant Master]"; - if (!getequipisequiped(.@part)) { - mes "Are you trying to remove the enchanted equipment?"; - close; - } - setarray .@equip_card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3); - if (!getequipisequiped(.@part)) { - mes "It is dangerous to remove equipment during enchant process!"; - close; - } - .@equip_id = getequipid(.@part); - .@item$ = "|1292|1394|1491|1585|2015|13071|13115|16019|18112|21000|"; - if (!compare(.@item$,"|"+.@equip_id+"|")) { - mes "I don't want to touch your equipment now!"; - close; - } - .@equip_refine = getequiprefinerycnt(.@part); - - if (.@select == 1) { - if (!countitem(Enchant_Book)) { - mes "Are you listening to me? I will only do for you if you bring the Enchant Book!"; - close; - } - mes "Which type of effect do you want to enchant?"; - next; - switch(select("Let me think about it.", "Physical Series", "Magical Series")) { - case 1: - mes "[Devil Enchant Master]"; - mes "Come back again after you change your mind!"; - close; - case 2: - .@enc_type = 1; - break; - case 3: - .@enc_type = 2; - break; - } - mes "[Devil Enchant Master]"; - if (.@equip_card[3]) { - mes "This equipment has been enchanted! You need to initialize first before you want to enchant it again."; - close; - } - mes "The enchant process might fail, and ^ff0000it will reduce partial refine level^000000, but the slotted card and weapon will not be broken! Are you sure you want to continue?"; - next; - if (select("Next time!", "Start now!") == 1) { - mes "[Devil Enchant Master]"; - mes "Come back again after you have decided!"; - close; - } - if (.@equip_card[3]) { - mes "[Devil Enchant Master]"; - mes "It seems there's a problem, let me take a look."; - close; - } - - if (.@enc_type == 1) { // Physical Series - .@i = rand(1,1300); - if (.@i < 51) .@enchant = 4734; //Agility5 - else if (.@i < 76) .@enchant = 4735; //Agility6 - else if (.@i < 88) .@enchant = 4736; //Agility7 - else if (.@i < 93) .@enchant = 4737; //Agility8 - else if (.@i < 95) .@enchant = 4738; //Agility9 - else if (.@i < 96) .@enchant = 4739; //Agility10 - else if (.@i < 146) .@enchant = 4724; //Dexterity5 - else if (.@i < 171) .@enchant = 4725; //Dexterity6 - else if (.@i < 183) .@enchant = 4726; //Dexterity7 - else if (.@i < 188) .@enchant = 4727; //Dexterity8 - else if (.@i < 190) .@enchant = 4728; //Dexterity9 - else if (.@i < 191) .@enchant = 4729; //Dexterity10 - else if (.@i < 291) .@enchant = 4704; //Strength5 - else if (.@i < 341) .@enchant = 4705; //Strength6 - else if (.@i < 366) .@enchant = 4706; //Strength7 - else if (.@i < 378) .@enchant = 4707; //Strength8 - else if (.@i < 383) .@enchant = 4708; //Strength9 - else if (.@i < 384) .@enchant = 4709; //Strength10 - else if (.@i < 434) .@enchant = 4754; //Luck5 - else if (.@i < 459) .@enchant = 4755; //Luck6 - else if (.@i < 471) .@enchant = 4756; //Luck7 - else if (.@i < 476) .@enchant = 4757; //Luck8 - else if (.@i < 478) .@enchant = 4758; //Luck9 - else if (.@i < 479) .@enchant = 4759; //Luck10 - else if (.@i < 679) .@enchant = 4744; //Vitality5 - else if (.@i < 779) .@enchant = 4745; //Vitality6 - else if (.@i < 829) .@enchant = 4746; //Vitality7 - else if (.@i < 854) .@enchant = 4747; //Vitality8 - else if (.@i < 866) .@enchant = 4748; //Vitality9 - else if (.@i < 867) .@enchant = 4749; //Vitality10 - else if (.@i < 967) .@enchant = 4808; //Fighting_Spirit4 - else if (.@i < 992) .@enchant = 4820; //Fighting_Spirit5 - else if (.@i < 1092) .@enchant = 4835; //Expert_Archer4 - else if (.@i < 1117) .@enchant = 4836; //Expert_Archer5 - else if (.@i < 1217) .@enchant = 4835; //Expert_Archer4 - else if (.@i < 1242) .@enchant = 4836; //Expert_Archer5 - else .@enchant = 0; - } else if (.@enc_type == 2) { // Magical Series - .@i = rand(1,1200); - if (.@i < 51) .@enchant = 4714; //Inteligence5 - else if (.@i < 76) .@enchant = 4715; //Inteligence6 - else if (.@i < 88) .@enchant = 4716; //Inteligence7 - else if (.@i < 93) .@enchant = 4717; //Inteligence8 - else if (.@i < 95) .@enchant = 4718; //Inteligence9 - else if (.@i < 96) .@enchant = 4719; //Inteligence10 - else if (.@i < 146) .@enchant = 4724; //Dexterity5 - else if (.@i < 171) .@enchant = 4725; //Dexterity6 - else if (.@i < 183) .@enchant = 4726; //Dexterity7 - else if (.@i < 188) .@enchant = 4727; //Dexterity8 - else if (.@i < 190) .@enchant = 4728; //Dexterity9 - else if (.@i < 191) .@enchant = 4729; //Dexterity10 - else if (.@i < 291) .@enchant = 4734; //Agility5 - else if (.@i < 341) .@enchant = 4735; //Agility6 - else if (.@i < 366) .@enchant = 4736; //Agility7 - else if (.@i < 378) .@enchant = 4737; //Agility8 - else if (.@i < 383) .@enchant = 4738; //Agility9 - else if (.@i < 384) .@enchant = 4739; //Agility10 - else if (.@i < 484) .@enchant = 4754; //Luck5 - else if (.@i < 534) .@enchant = 4755; //Luck6 - else if (.@i < 559) .@enchant = 4756; //Luck7 - else if (.@i < 571) .@enchant = 4757; //Luck8 - else if (.@i < 576) .@enchant = 4758; //Luck9 - else if (.@i < 577) .@enchant = 4759; //Luck10 - else if (.@i < 777) .@enchant = 4744; //Vitality5 - else if (.@i < 877) .@enchant = 4745; //Vitality6 - else if (.@i < 927) .@enchant = 4746; //Vitality7 - else if (.@i < 952) .@enchant = 4747; //Vitality8 - else if (.@i < 964) .@enchant = 4748; //Vitality9 - else if (.@i < 969) .@enchant = 4749; //Vitality10 - else if (.@i < 1069) .@enchant = 4812; //Spell4 - else if (.@i < 1094) .@enchant = 4826; //Spell5 - else if (.@i < 1119) .@enchant = 4761; //Matk2 - else if (.@i < 1124) .@enchant = 4806; //Matk3 - else .@enchant = 0; - } else { - mes "[Devil Enchant Master]"; - mes "Hmm! This item is having a problem, please check it again!"; - close; - } - mes "[Devil Enchant Master]"; - if (.@equip_card[3]) { - mes "This item has been enchanted!"; - close; - } - if (!countitem(Enchant_Book)) { - mes "Are you listening to me? I will only do for you if you bring the Enchant Book!"; - close; - } - if (.@enchant == 0) { - specialeffect EF_SHIELDCHARGE; - mes "Oh! Unbelievable!! It failed!! Please come again!"; - .@lost_refine = rand(0,.@equip_refine); - .@equip_refine -= .@lost_refine; - } else { - specialeffect EF_REPAIRWEAPON; - mes "The slot ^9900004^000000 has been enchanted!"; - } - delitem Enchant_Book,1; - delequip .@part; - - // GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] .@enchant - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@enchant; - - if (.@lost_refine) { - next; - mes "[Devil Enchant Master]"; - mes "The failure has reduced the refine by "+.@lost_refine+" level"+((.@lost_refine == 1)?"":"s")+"! Don't be depressed!"; - } - close; - } else if (.@select == 2) { - if (Zeny < 100000) { - mes "You need to bring some money to initialize!!"; - close; - } - if (.@equip_card[3] < 4700) { // Armor Enchant System - mes "This item is not enchanted!"; - close; - } - if (!getequipisequiped(.@part)) { - mes "Are you unequipping now?"; - close; - } - specialeffect EF_REPAIRWEAPON; - mes "I initialized the enchant effects."; - Zeny -= 100000; - delequip .@part; - - // GetNonSlotItemSock2 .@equip_refine .@equip_id .@equip_card[0] .@equip_card[1] .@equip_card[2] 0 - getitem2 .@equip_id,1,1,.@equip_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],0; - - close; - } else { - mes "It seems you have chosen the wrong job??"; - close; - } -} diff --git a/npc/re/merchants/flute.txt b/npc/re/merchants/flute.txt deleted file mode 100644 index 98fd3789c..000000000 --- a/npc/re/merchants/flute.txt +++ /dev/null @@ -1,161 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Euphy -//= Copyright (C) Ziu -//= Copyright (C) Muad_Dib -//= Copyright (C) Masao -//= -//= 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/>. -//========================================================================= -//= Falcon & Wolf Flute Trader -//================= Description =========================================== -//= Sells Falcon Flute and Wolf Flute. -//================= Current Version ======================================= -//= 1.2a -//========================================================================= - -- script Falcon Flute Trader::fflute FAKE_NPC,{ - mes "[Falcon Flute Trader]"; - if (BaseJob == Job_Hunter) { - mes "Do you need a Falcon?"; - mes "With a magical Flute, you can call your Falcon from anywhere!"; - next; - mes "[Falcon Flute Trader]"; - mes "It's marvelous, isn't it? Ha ha ha!"; - next; - mes "[Falcon Flute Trader]"; - mes "Why I'm selling these Falcon Flutes?"; - mes "It's because I have no clue how they work."; - mes "Ha ha ha!"; - next; - mes "[Falcon Flute Trader]"; - mes "Of course, you'll need the Skill ^ff0000Falcon Mastery^000000."; - mes "I don't have the Skill, so I don't know how to handle Falcons."; - mes "As it's for now, I may never have a Falcon."; - next; - mes "[Falcon Flute Trader]"; - mes "But I can't give you one for free!"; - mes "I have to make money since i also need to eat!"; - next; - mes "[Falcon Flute Trader]"; - mes "If you need a Falcon Flute I will sell them for 12,500 zeny. Or is that too expensive?"; - next; - if (eaclass()&EAJL_THIRD) { - mes "[Falcon Flute Trader]"; - mes "For Rangers, however, I have a special price of 10,000 zeny!"; - .@price = 10000; - next; - } else - .@price = 12500; - if(select("Don't buy one", "Buy a Falcon Flute") == 1) { - mes "[Falcon Flute Trader]"; - mes "That's too bad. If you need one, come back!"; - close; - } - if (Zeny >= .@price) { - if (countitem(Falcon_Flute) >= 1) { - mes "[Falcon Flute Trader]"; - mes "As I can see you already have a Falcon Flute!"; - mes "Don't worry, my young friend, once you've purchased the Falcon Flute you won't need to do so again"; - mes "since the Falcon Flute won't disappear upon usage, isn't that great?"; - close; - } - mes "[Falcon Flute Trader]"; - mes "Here, take this flute."; - mes "With it you can whistle for your Falcon from anywhere."; - Zeny -= .@price; - getitem Falcon_Flute,1; - next; - mes "[Falcon Flute Trader]"; - mes "Just a reminder."; - mes "You need the Skill ^ff0000Falcon Mastery^000000 in order to use it!"; - close; - } - mes "[Falcon Flute Trader]"; - mes "I'm sorry but you don't have enough money to buy a Falcon Flute, please come back when you have more money!"; - close; - } - if (BaseJob == Job_Archer) { - mes "Hello, young one!"; - mes "Currently I can't help you,"; - mes "but why don't you return to me when you've become a great Hunter and learned how to handle Falcons properly?"; - close; - } - mes "Isn't it a beautiful day today?"; - close; -} -hu_in01,386,306,3 duplicate(fflute) Falcon Flute Trader#fft 1_M_BARD -pay_arche,91,134,3 duplicate(fflute) Falcon Flute Trader#fft2 1_M_BARD - -tur_dun01,89,170,5 script Expert Flute Crafter 1_M_ORIENT01,{ - if (Class == Job_Ranger || Class == Job_Ranger_T || Class == Job_Baby_Ranger) { - if (countitem(Wolfs_Flute)) { - mes "[Expert Flute Crafter]"; - mes "The Wolf Flute you have is crafted by myself, with wood."; - mes "You can come back here and find me if you lose your Wolf flute!"; - next; - mes "[Expert Flute Crafter]"; - mes "The flute can only be crafted by me."; - mes "It is just a little matter for me to craft another flute!!"; - close; - } - mes "[Expert Flute Crafter]"; - mes "Do you need anything?"; - mes "A new Wolf Flute?"; - next; - switch(select("Please give me a new Wolf Flute.", "No.")) { - case 1: - if (countitem(Bamboo_Cut) && Zeny >= 100000) { - mes "[Expert Flute Crafter]"; - mes "Have you brought all the materials?"; - mes "Wow! All your materials are not bad!"; - mes "That's good enough."; - next; - mes "[Expert Flute Crafter]"; - mes "Here's the new Wolf Flute."; - mes "Hope you are ready to use it."; - delitem Bamboo_Cut,1; - Zeny -= 100000; - getitem Wolfs_Flute,1; - close; - } - mes "[Expert Flute Crafter]"; - mes "If you want to craft a new Wolf Flute, I need you to bring me ^4d4dff1 Bamboo Cut and 100,000 zeny.^000000"; - next; - mes "[Expert Flute Crafter]"; - mes "^4d4dffBamboo Cut can be obtained from Kapha or Karakasa.^000000"; - close; - case 2: - mes "[Expert Flute Crafter]"; - mes "If you do not summon a wolf, then you don't need the Wolf Flute."; - mes "You can come back here and find me if you change your mind."; - mes "Isn't that right?"; - close; - } - } - mes "[Expert Flute Crafter]"; - mes "Eeehh? You are not a Ranger?"; - mes "Then this flute is totally useless for you!"; - close; -} diff --git a/npc/re/merchants/hd_refiner.txt b/npc/re/merchants/hd_refiner.txt deleted file mode 100644 index 17979642e..000000000 --- a/npc/re/merchants/hd_refiner.txt +++ /dev/null @@ -1,325 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules 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/>. -//========================================================================= -//= HD Refiners -//================= Description =========================================== -//= Refiners that use HD ores to refine equipment. -//================= Additional Comments =================================== -//= Upon failure, the equipment is not destroyed; rather, its refine level -//= decreases by 1. The success rate is identical to that for Enriched ores. -//= - "Blacksmith Mighty Hammer" only refines from +7~9. -//= - "Basta" only refines from +10 and up. -//================= Current Version ======================================= -//= 1.0 -//========================================================================= - -//== Blacksmith Mighty Hammer (+7~9) ======================= -- script ::MightyHammer FAKE_NPC,{ - disable_items; - mes "[Blacksmith Mighty Hammer]"; - mes "Unlike others, I am a blacksmith who refines a very limited number of items."; - mes "I refine only items that are ^CC0000+7 to +9^000000."; - next; - mes "[Blacksmith Mighty Hammer]"; - mes "My specialty is that even if my refining fails, the refine level decreases by 1 without losing the gear. Isn't it great?"; - next; - mes "[Blacksmith Mighty Hammer]"; - mes "So lets kick this into overdrive, what d' ya say? What item do 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]+"-[Not equipped]")+":"; - .@part = select(.@menu$); - if (!getequipisequiped(.@part)) { - mes "[Blacksmith Mighty Hammer]"; - switch(.@part) { - case 1: - mes "I'm a blacksmith, not a hairstylist."; - break; - case 2: - mes "With my hammer, I will make you a star of the sky."; - break; - case 3: - case 4: - mes "Making artificial hands is not my specialty."; - break; - case 5: - mes "Bring out the item so I can refine it!"; - break; - case 6: - mes "Where is this foot odor coming from?"; - break; - case 7: - case 8: - mes "Where is the accessory?"; - break; - case 9: - mes "What do you want me to refine?"; - break; - case 10: - mes "Huh? What do you want me to do?"; - break; - } - close; - } - if (!getequipisenableref(.@part)) { - mes "[Blacksmith Mighty Hammer]"; - mes "This item can't be refined."; - close; - } - if (getequiprefinerycnt(.@part) < 7 || getequiprefinerycnt(.@part) > 9) { - mes "[Blacksmith Mighty Hammer]"; - mes "I only handle items with refine levels from +7 to +9."; - close; - } - switch(getequipweaponlv(.@part)) { - default: - case 0: - .@price = 20000; - .@material = 6241; //HD_Elunium - break; - case 1: - case 2: - case 3: - case 4: - .@price = 20000; - .@material = 6240; //HD_Oridecon - break; - } - mes "[Blacksmith Mighty Hammer]"; - mes "In order to refine the gear you selected you need ^ff9999"+getitemname(.@material)+"^000000 and 20,000 zeny as a fee."; - mes "Do you have them ready?"; - next; - if(select("Yes", "No") == 2) { - mes "[Blacksmith Mighty Hammer]"; - mes "I will wait until you are ready."; - close; - } - if (getequippercentrefinery(.@part) < 100) { - mes "[Blacksmith Mighty Hammer]"; - mes "It looks like this item will likely fail to be refined."; - mes "Well, even if it fails, it only decreases by 1 refine level."; - mes "Would you like to continue refining?"; - next; - if(select("Yes", "No") == 2) { - mes "[Blacksmith Mighty Hammer]"; - mes "Only those who overcome fear of failure will obtain a masterpiece."; - close; - } - } - if (countitem(.@material) == 0 || Zeny < .@price) { - mes "[Blacksmith Mighty Hammer]"; - mes "Didn't you just say you had everything ready?"; - close; - } - delitem .@material,1; - Zeny -= .@price; - mes "[Blacksmith Mighty Hammer]"; - mes "Tac! Tac! Tac!"; - if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) { - successrefitem .@part; - next; - emotion e_no1; - mes "[Blacksmith Mighty Hammer]"; - mes "The sound refreshes my mind everytime I hear it."; - mes "Here, have it. Refine succeeded flawlessly!"; - close; - } - downrefitem .@part; - next; - emotion e_omg; - mes "[Blacksmith Mighty Hammer]"; - mes "Oops!!"; - next; - mes "[Blacksmith Mighty Hammer]"; - mes "I am sure a person like you would never blame me for a decrease in refine level by 1. Hmm."; - close; -} -prt_in,59,54,3 duplicate(MightyHammer) Mighty Hammer#prt 4_M_DWARF -morocc_in,65,30,3 duplicate(MightyHammer) Mighty Hammer#morocc 4_M_DWARF -payon,148,176,3 duplicate(MightyHammer) Mighty Hammer#pay 4_M_DWARF -alberta_in,16,56,3 duplicate(MightyHammer) Mighty Hammer#alb 4_M_DWARF -yuno_in01,171,18,3 duplicate(MightyHammer) Mighty Hammer#yuno 4_M_DWARF -ein_in01,22,82,3 duplicate(MightyHammer) Mighty Hammer#ein 4_M_DWARF -lhz_in02,280,19,3 duplicate(MightyHammer) Mighty Hammer#lhz 4_M_DWARF - -//- iRO NPC locations - -//moc_para01,38,185,4 duplicate(MightyHammer) Mighty Hammer#ed 4_M_DWARF -//payon,174,133,4 duplicate(MightyHammer) Mighty Hammer#im 4_M_DWARF - -//== Basta (+10 and up) ==================================== -- script ::Basta FAKE_NPC,{ - disable_items; - mes "[Basta]"; - mes "I'm the best Blacksmith in the whole world, Basta."; - mes "But I don't provide a normal refine service."; - mes "I only refine equipment ^CC0000over +10^000000."; - next; - mes "[Basta]"; - mes "Which equipment do 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]+"-[Unequipped]")+":"; - .@part = select(.@menu$); - if (!getequipisequiped(.@part)) { - mes "[Basta]"; - switch(.@part) { - case 1: - mes "Is your head an equipment?"; - break; - case 2: - mes "What do you want me to do?"; - break; - case 3: - case 4: - mes "Making artificial hands is not my specialty."; - break; - case 5: - mes "Do you even know what a robe is?"; - break; - case 6: - mes "If you want to refine your feet, don't come to me, try running a marathon."; - break; - case 7: - case 8: - mes "Where is the accessory?"; - break; - case 9: - mes "Well... I don't see any equipment worth refining."; - break; - case 10: - mes "I can't make you smart. Go see a school teacher for that."; - break; - } - close; - } - if (!getequipisenableref(.@part)) { - mes "[Basta]"; - mes "Even I cannot refine this item. There's no way."; - close; - } - if (getequiprefinerycnt(.@part) < 10) { - mes "[Basta]"; - mes "Haven't I told you? I only refine equipments that are +10 and above."; - close; - } - if (getequiprefinerycnt(.@part) == 20) { - mes "[Basta]"; - mes "This weapon is perfect, no need to refine it anymore~"; - close; - } - switch(getequipweaponlv(.@part)) { - default: - case 0: - .@price = 100000; - .@material = 6225; //HD_Carnium - .@type$ = "armor"; - break; - case 1: - case 2: - case 3: - case 4: - .@price = 100000; - .@material = 6226; //HD_Bradium - .@type$ = "weapon"; - break; - } - mes "[Basta]"; - mes "Hmm... is this the one you want to refine?"; - mes "To refine this equipment, I need 1 ^ff9999"+getitemname(.@material)+"^000000 and 100,000 zeny as a fee."; - mes "Do you really want to refine this?"; - next; - if(select("Yes", "No") == 2) { - mes "[Basta]"; - mes "Okay. If that's what you want..."; - close; - } - if (getequippercentrefinery(.@part) < 100) { - mes "[Basta]"; - mes "This "+.@type$+" has already been refined pretty high."; - mes "If you try to refine it more, the refine level could decrease."; - next; - mes "[Basta]"; - mes "I am different from the blacksmiths in others places."; - mes "It is impossible that the refine level will drop by, say, 3 or 4... that sounds scary."; - mes "Here it can only decrease by 1 level."; - next; - mes "[Basta]"; - mes "Compared to other blacksmiths, the risk is smaller."; - mes "I've given all precautions. Do you want to try it?"; - next; - if(select("Yes", "No") == 2) { - mes "[Basta]"; - mes "Well~"; - mes "Not challenging at all could also be a kind of wisdom in life."; - close; - } - } - if (countitem(.@material) == 0 || Zeny < .@price) { - mes "[Basta]"; - mes "Hmm... You didn't bring all the materials needed."; - mes "Come back when you have them all."; - close; - } - delitem .@material,1; - Zeny -= .@price; - mes "Pow! Pow! Pow! Pow!"; - if (getequippercentrefinery(.@part) > rand(100) || getequippercentrefinery(.@part) > rand(100)) { - successrefitem .@part; - next; - emotion e_no1; - mes "[Basta]"; - mes "Great! Nicely done!!"; - mes "I really am the best blacksmith in the whole wide world!"; - close; - } - downrefitem .@part; - next; - emotion (!rand(5))?e_cash:e_omg; - mes "[Basta]"; - mes "Aaaaaaaaaaak!!!"; - next; - mes "[Basta]"; - mes "Damn it!"; - mes "Refining failed and refine level has decreased!"; - mes "Even the best blacksmith in the world doesn't guarantee 100% success!"; - mes "Too bad."; - next; - mes "[Basta]"; - mes "I'll do better next time! Don't worry!"; - close; -} -prt_in,57,54,3 duplicate(Basta) Basta#prt 4_M_DWARF -morocc_in,68,30,3 duplicate(Basta) Basta#morocc 4_M_DWARF -payon,148,174,3 duplicate(Basta) Basta#payon 4_M_DWARF -alberta_in,18,56,3 duplicate(Basta) Basta#alberta 4_M_DWARF -yuno_in01,173,18,3 duplicate(Basta) Basta#yuno 4_M_DWARF -ein_in01,24,82,3 duplicate(Basta) Basta#einbroch 4_M_DWARF -lhz_in02,280,17,3 duplicate(Basta) Basta#lighthalzen 4_M_DWARF diff --git a/npc/re/merchants/inn.txt b/npc/re/merchants/inn.txt deleted file mode 100644 index d44ddd986..000000000 --- a/npc/re/merchants/inn.txt +++ /dev/null @@ -1,73 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) L0ne_W0lf -//= Copyright (C) c -//= -//= 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/>. -//========================================================================= -//= Inn Npcs (Renewal) -//================= Description =========================================== -//= Inn Npcs, Save and Heal -//================= Current Version ======================================= -//= 1.1 -//========================================================================= - -//== Brasilis ============================================== -bra_in01,27,24,3 script Hotel Keeper#bra1 4_F_BRZ_WOMAN,{ - mes "[Hotel Keeper]"; - mes "Welcome to the beautiful Brasilis Hotel."; - next; - switch(select("Save", "Rest -5000 zeny")) { - case 1: - mes "[Hotel Keeper]"; - mes "Do you want to save here at the Brasilis Hotel?"; - next; - switch(select("No thank you.", "Absolutely.")) { - case 1: - mes "[Hotel Keeper]"; - mes "Ok then, enjoy your stay."; - close; - case 2: - mes "[Hotel Keeper]"; - mes "Your respawn has been saved here at the hotel. I hope that you enjoy your stay here in Brasilis."; - savepoint "bra_in01",144,69; - close; - } - case 2: - if (Zeny > 4999) { - mes "[Hotel Keeper]"; - mes "I will show you a great room."; - close2; - Zeny -= 5000; - percentheal 100,100; - warp "bra_in01",144,69; - end; - } - else { - mes "[Hotel Keeper]"; - mes "I'm sorry, but the service charge is 5,000 zeny per night."; - close; - } - } -} diff --git a/npc/re/merchants/ninja_craftsman.txt b/npc/re/merchants/ninja_craftsman.txt deleted file mode 100644 index 4a3744269..000000000 --- a/npc/re/merchants/ninja_craftsman.txt +++ /dev/null @@ -1,371 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Dastgir -//= -//= 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/>. -//========================================================================= -//= Ninja Weapon and Armor -//================= Description =========================================== -//= Ninja Armor and Weapon Craftsman -//================= Current Version ======================================= -//= 1.0 -//========================================================================= - -que_ng,21,72,6 script Master Craftsman Gyo#arm 4_M_RASWORD,{ - mes "[Gyo]"; - mes "How would you define victory?"; - mes "To fell the enemy..."; - mes "However, the most important thing is..."; - mes "Never to fall yourself!"; - next; - mes "[Gyo]"; - mes "For that, you must better protect yourself."; - mes "You cannot protect 'others' while you hinder your 'own' protection."; - next; - if (select("Combine armor.", "End conversation.") == 2) { - mes "[Gyo]"; - mes "Prudence is also an important virtue in battle."; - close; - } - switch (select("Wolf Armguard", "Crescent Armguard", "Ninja Scale Armor", "Shadow King's Armor", "Quit.")) { - case 1: - mes "[Gyo]"; - mes "Wolf Armguard... One beastly piece of armor."; - next; - callsub L_Menu,Wolf_Armguard; - close; - case 2: - mes "[Gyo]"; - mes "Crescent Armguard... A thing of beauty and strength... With none the lesser."; - next; - callsub L_Menu,Crescent_Armguard; - close; - case 3: - mes "[Gyo]"; - mes "Ninja Scale Armor... It's said that a legendary Ninja once wore it."; - next; - callsub L_Menu,Ninja_Scale_Armor; - close; - case 4: - mes "[Gyo]"; - mes "Shadow King's Armor... It was made to protect others."; - next; - callsub L_Menu,Tenebris_Latitantes; - close; - case 5: - mes "[Gyo]"; - mes "Looks like you need more time to decide."; - close; - } - -L_Menu: - .@item_make = getarg(0); - while(1){ - switch(select("Check Ingredients.", "Check Stats.", "Combine.", "Quit.")){ - case 1: - mes "[Gyo]"; - mes "To make a ^ff0000"+getitemname(.@item_make)+", "+callsub(L_Ingredients,.@item_make)+".^000000"; - if (.@item_make==Wolf_Armguard) - mes "Can you feel it? The throbbing of the wolf blood..."; - else if (.@item_make==Crescent_Armguard) - mes "A crescent as beautiful and clear as a crystal will be engraved on it."; - else if (.@item_make==Ninja_Scale_Armor) - mes "You can feel its legendary powers."; - else if (.@item_make==Tenebris_Latitantes) - mes "With the darkness it erases existence itself..."; - break; - case 2: - mes "["+ getitemname(getarg(0)) +"]"; - if (.@item_make == Wolf_Armguard){ - mes "Chance to have 5 sec. of ATK +100, FLEE -50 upon melee attack."; - mes "Shield Type, Defense 45, Slot 1"; - mes "Required Level 100, Ninja Type Only"; - } - else if (.@item_make == Crescent_Armguard){ - mes "Decreases post skill delay for 2% for every enhancement."; - mes "Shield Type, Defense 70, Slot 1"; - mes "Required Level 100, Ninja Type Only"; - } - else if (.@item_make == Ninja_Scale_Armor){ - mes "MHP+15%, MSP-30%."; - mes "Armor Type, Defense 90, Slot 1"; - mes "Required Level 100, Ninja Type Only"; - } - else if (.@item_make == Tenebris_Latitantes){ - mes "Chance to activate Lvl. 1 Illusion - Shadow when attacked by melee attacks."; - mes "Armor Type, Defense 60, Slot 1"; - mes "Required Level 100, Ninja Type Only"; - } - break; - case 3: - mes "[Gyo]"; - mes "Make sure that ^ff0000you have the correct ingredients and equipment at hand.^000000"; - mes "No use crying over it later."; - next; - if (select("Combine.", "Quit.") == 2) { - mes "[Gyo]"; - mes "Looks like you need more time to decide."; - close; - } - if (checkweight(Knife,1) == 0 || (MaxWeight - Weight) < 2000) { - mes "- Hold on!! -"; - mes "- You cannot receive items -"; - mes "- because you carry too much. -"; - mes "- Please try again -"; - mes "- after lightening your burden. -"; - close; - } - mes "[Gyo]"; - switch(.@item_make){ - case 2172: //Wolf_Armguard - if (countitem(Fox_Armguard) && countitem(Wolf_Blood) > 9) { - delitem Fox_Armguard,1; //Fox_Armguard - delitem Wolf_Blood,10; //Wolf_Blood - getitem Wolf_Armguard,1; //Wolf_Armguard - mes "Can you feel the wolfish instinct?"; - mes "Wild, but beautiful..."; - } - else { - mes "You don't have enough ingredients."; - mes "Look again......"; - } - break; - case 2173: //Crescent_Armguard - if (countitem(Fox_Armguard) && countitem(Fragment_Of_Crystal) > 99) { - delitem Fox_Armguard,1; //Fox_Armguard - delitem Fragment_Of_Crystal,100; //Fragment_Of_Crystal - getitem Crescent_Armguard,1; //Crescent_Armguard - mes "B-e-a-utiful......"; - mes "Feel the overwhelming magic within."; - } - else { - mes "You don't have enough ingredients."; - mes "Look again......"; - } - break; - case 15054: //Ninja_Scale_Armor - if (countitem(Scale_Of_Red_Dragon) > 29 && countitem(Ice_Scale) > 29 && countitem(Dark_Red_Scale) > 29) { - delitem Scale_Of_Red_Dragon,30; //Scale_Of_Red_Dragon - delitem Ice_Scale,30; //Ice_Scale - delitem Dark_Red_Scale,30; //Dark_Red_Scale - getitem Ninja_Scale_Armor,1; //Ninja_Scale_Armor - mes "This armor holds a legend..."; - mes "Though I don't believe in them..."; - } - else { - mes "You don't have enough ingredients."; - mes "Look again......"; - } - break; - case 15055: //Tenebris_Latitantes - if (countitem(Special_Ninja_Suit_) && countitem(Piece_Of_Darkness) > 9) { - delitem Special_Ninja_Suit_,1; //Special_Ninja_Suit_ - delitem Piece_Of_Darkness,10; //Piece_Of_Darkness - getitem Tenebris_Latitantes,1; //Tenebris_Latitantes - mes "How about it?"; - mes "It looks like two sets of them, doesn't it?"; - } - else { - mes "You don't have enough ingredients."; - mes "Look again......"; - } - break; - } - close; - case 4: - mes "[Gyo]"; - mes "Looks like you need more time to decide."; - close; - } - next; - } - -L_Ingredients: - switch(getarg(0)){ - case 2172: //Wolf_Armguard - return "you need 1 Fox Armguard and 10 Blood of Wolf"; - case 2173: //Crescent_Armguard - return "you need 1 Fox Armguard and 100 Crystal Fragments"; - case 15054: //Ninja_Scale_Armor - return "you need 30 Fire Dragon Scales, 30 Ice Scales and 30 Darkred Scale Pieces"; - case 15055: //Tenebris_Latitantes - return "you'll need a Special Ninja Suit with a slot and 10 Dark Pieces"; - } - end; -} - -que_ng,23,70,6 script Master Craftsman Ki#weap 4_DST_SOLDIER,{ - mes "[Ki]"; - mes "To attack is the best means of defense."; - mes "A powerful weapon will make you truly complete."; - next; - mes "[Ki]"; - mes "Of course, it would be better to have something special at hand."; - next; - if (select("Combine weapon.", "End conversation.") == 2) { - mes "[Ki]"; - mes "Being too careful could sometimes be lethal."; - close; - } - switch (select("Raksasa Dagger", "Mikatsuki", "Petal Shuriken", "Quit.")) { - case 1: - mes "[Ki]"; - mes "Raksasa Dagger can only be used after plenty of training."; - next; - callsub L_Menu,Raksasa_Dagger; - close; - case 2: - mes "[Ki]"; - mes "Mikatsuki... A beautiful curve like the crescent moon..."; - mes "There aren't many who can make them."; - next; - callsub L_Menu,Mikatsuki; - close; - case 3: - mes "[Ki]"; - mes "Petal Shuriken... Have you every seen petals swirl?"; - next; - callsub L_Menu,Huuma_Swirling_Petal; - close; - case 4: - mes "[Ki]"; - mes "Think carefully~~"; - close; - } - -L_Menu: - .@item_make = getarg(0); - while(1){ - switch(select("Check Ingredients.", "Check Stats.", "Combine.", "Quit.")){ - case 1: - mes "[Ki]"; - mes "To make a ^ff0000"+getitemname(.@item_make)+", "+callsub(L_Ingredients,.@item_make)+".^000000"; - if (.@item_make==Raksasa_Dagger) - mes "The garnet gives the Raksasa Dagger its unique color."; - else if (.@item_make==Mikatsuki) - mes "The opal is what gives off the translucent glow."; - else if (.@item_make==Huuma_Swirling_Petal) - mes "It may seem like too many shurikens are needed... But it is essential for the beautiful fluttering effect."; - break; - case 2: - mes "["+ getitemname(getarg(0)) +"]"; - if (.@item_make == Raksasa_Dagger){ - mes "INT+3 MATK+100."; - mes "Dagger Type, ATK 120, Slot 1"; - mes "Required Level 110, Ninja Type Only"; - } - else if (.@item_make == Mikatsuki){ - mes "MATK + 120, Fluctuated Casting and SP use decreased by 5% upon skill use."; - mes "Dagger Type, ATK 50, Weapon Lvl. 4"; - mes "Slot 1"; - mes "Required Level 100, Ninja Type Only"; - } - else if (.@item_make == Huuma_Swirling_Petal){ - mes "MATK + 50, Petal Shuriken skill damage increased by 20%."; - mes "Shuriken Type, ATK 150"; - mes "Weapon Lvl. 3, Slot 2"; - mes "Required Level 110, Ninja Type Only"; - } - break; - case 3: - mes "[Ki]"; - mes "Make sure that ^ff0000you have the correct ingredients and equipment at hand.^000000"; - mes "No use crying over it later."; - next; - if (select("Combine.", "Quit.") == 2) { - mes "[Ki]"; - mes "Think carefully~~"; - close; - } - if (checkweight(Knife,1) == 0 || (MaxWeight - Weight) < 2000) { - mes "- Hold on!! -"; - mes "- You cannot receive items -"; - mes "- because you carry too much. -"; - mes "- Please try again -"; - mes "- after lightening your burden. -"; - close; - } - mes "[Ki]"; - switch(.@item_make){ - case 13076: //Raksasa_Dagger - if (countitem(Murasame_) && countitem(Dark_Red_Jewel)) { - delitem Murasame_,1; //Murasame_ - delitem Dark_Red_Jewel,1; //Dark_Red_Jewel - getitem Raksasa_Dagger,1; //Raksasa_Dagger - mes "Oh yes..."; - mes "It is a beautiful glow..."; - } else { - mes "Hmm... You do not have enough to make a Raksasa Dagger."; - mes "Why don't you check again?"; - mes "Some just can't give up what they hold."; - } - break; - case 13078: //Mikatsuki - if (countitem(Hakujin_) && countitem(White_Jewel)) { - delitem Hakujin_,1; //Hakujin_ - delitem White_Jewel,1; //White_Jewel - getitem Mikatsuki,1; //Mikatsuki - mes "Splendid..."; - mes "It is always mesmerizing to look upon such a beautiful weapon..."; - } - else { - mes "Hmm... You do not have enough to make a Mikatsuki."; - mes "Why don't you check again?"; - mes "Some just can't give up what they hold."; - } - break; - case 13313: //Huuma_Swirling_Petal - if (countitem(Huuma_Calm_Mind) && countitem(Broken_Shuriken) > 99) { - delitem Huuma_Calm_Mind,1; //Huuma_Calm_Mind - delitem Broken_Shuriken,100; //Broken_Shuriken - getitem Huuma_Swirling_Petal,1; //Huuma_Swirling_Petal - mes "Swirling Petal!!"; - } - else { - mes "Hmm... You do not have enough to make Petal Shurikens."; - mes "Why don't you check again?"; - mes "Some just can't give up what they hold."; - } - break; - } - close; - case 4: - mes "[Ki]"; - mes "Looks like you need more time to decide."; - close; - } - next; - } - -L_Ingredients: - switch(getarg(0)){ - case 13076: //Raksasa_Dagger - return "you need 1 Murasame with 2 sockets and 1 Garnet"; - case 13078: //Mikatsuki - return "you need a Hakujin with a Slot and an Opal"; - case 13313: //Huuma_Swirling_Petal - return "you need one Huuma Calm Mind Shuriken and 100 Broken Shurikens"; - } - end; -} diff --git a/npc/re/merchants/quivers.txt b/npc/re/merchants/quivers.txt deleted file mode 100644 index ececa55a2..000000000 --- a/npc/re/merchants/quivers.txt +++ /dev/null @@ -1,142 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) Euphy -//= Copyright (C) L0ne_W0lf -//= Copyright (C) Muad_Dib (Prometheus Project) -//= -//= 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/>. -//========================================================================= -//= Arrow Quivers (Renewal) -//================= Description =========================================== -//= Turns arrows into Arrow Quivers. -//================= Current Version ======================================= -//= 1.1 -//========================================================================= - -mora,106,117,3 script Quiver Maker#mora 4_M_RAFLE_GR,{ - if (checkweight(Knife,1) == 0) { - mes "[Quiver Maker]"; - mes "You have too many things with you."; - mes "Make some space in your inventory and come back. I'll tell you something interesting."; - close; - } - if (MaxWeight - Weight < 2000) { - mes "[Quiver Maker]"; - mes "You seem worn out with all that stuff."; - mes "Make some space in your inventory and come back. I'll tell you something interesting."; - close; - } - mes "[Quiver Maker]"; - mes "Mora villagers ask what good quivers are. They just don't know how the world works."; - mes "No wonder they don't know a thing about quivers - spreading jam over leaves all day long."; - next; - switch(select("Please make me a quiver.", "What's a quiver?")) { - case 1: - mes "[Quiver Maker]"; - mes "At last someone appreciates a quiver!"; - mes "I can make Elven Quivers and Hunting Quivers."; - mes "Which do you need?"; - next; - switch(select("An Elven Quiver", "A Hunting Quiver", "I don't need a quiver.")) { - case 1: callsub S_BuyQuiver,1773,500,500,12575; //Arrow_Of_Elf_Cntr - case 2: callsub S_BuyQuiver,1774,500,500,12576; //Hunting_Arrow_Cntr - case 3: - mes "[Quiver Maker]"; - mes "You can buy arrows off the tool merchant next to me."; - close; - } - case 2: - mes "[Quiver Maker]"; - mes "An arrow may be thin and light, but carrying hundreds and thousands of arrows is like carrying a whole log."; - next; - mes "[Quiver Maker]"; - mes "But when you have quivers, you can put arrows in them and save weight and space."; - mes "If you're interested in one, I'll stitch one up for you."; - close; - } - end; - -// Arguments: -// 0: Type of Arrow to be packaged (item ID). -// 1: How many of each 'getarg(0)' arrow per quiver. -// 2: The cost of making a 'getarg(0)' quiver. -// 3: The quiver given by the NPC (item ID). -S_BuyQuiver: - if (countitem(getarg(0)) < getarg(1)) { - mes "[Quiver Maker]"; - mes "Bring more than "+getarg(1)+" "+getitemname(getarg(0))+" and I'll make you a quiver."; - close; - } - mes "[Quiver Maker]"; - mes "Oh, I see you have "+getitemname(getarg(0))+" in your hand!"; - mes "Are you interested in using a quiver? It's really convenient!"; - mes "If you're interested, I can trade "+getarg(1)+" of those arrows for one of these quivers for ^FF3131"+getarg(2)+" zeny^000000."; - next; - switch(select("Trade all the arrows you have", "Get only one quiver", "Don't trade")) { - case 1: - .@arrows = countitem(getarg(0)); - .@quiver = .@arrows / getarg(1); - .@arrows_used = .@quiver * getarg(1); - .@arrow_zeny01 = .@quiver * getarg(2); - mes "The number of arrows you have : ^3131FF"+.@arrows+"^000000"; - mes "The number of quivers available : ^3131FF"+.@quiver+"^000000"; - mes "Zeny needed for trade : ^3131FF"+.@arrow_zeny01+" zeny^000000"; - next; - mes "Trade?"; - next; - if(select("Trade", "Don't trade") == 2) { - mes "[Quiver Maker]"; - mes "Hey, you don't doubt my skills, do you?"; - close; - } - break; - case 2: - .@quiver = 1; - .@arrows_used = getarg(1); - .@arrow_zeny01 = getarg(2); - .@zeny_mes = 1; - break; - case 3: - mes "[Quiver Maker]"; - mes "Hey, you don't doubt my skills, do you?"; - close; - } - if (Zeny < .@arrow_zeny01) { - mes "[Quiver Maker]"; - if (.@zeny_mes == 1) - mes "I said I'd accept human coins just for you, and you still don't want to spend the money?"; - else - mes "You really don't expect to get your hands on a masterpiece for nothing, do you?"; - close; - } - mes "[Quiver Maker]"; - mes "Hey, here you are."; - mes "There is ^3131FFsomething you need to know^000000 - try to remember it."; - mes "^FF0000You can't use quivers when your encumbrance is over 70%.^000000"; - mes "You'd better keep that in mind, or you might be in trouble later."; - Zeny -= .@arrow_zeny01; - delitem getarg(0),.@arrows_used; - getitem getarg(3),.@quiver; - close; -} diff --git a/npc/re/merchants/refine.txt b/npc/re/merchants/refine.txt deleted file mode 100644 index 6356acfca..000000000 --- a/npc/re/merchants/refine.txt +++ /dev/null @@ -1,569 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 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 { - 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; -} diff --git a/npc/re/merchants/renters.txt b/npc/re/merchants/renters.txt deleted file mode 100644 index ab6b3f9ac..000000000 --- a/npc/re/merchants/renters.txt +++ /dev/null @@ -1,225 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules Dev Team -//= Copyright (C) rAthena Dev Team -//= Copyright (C) Euphy -//= Copyright (C) Daegaladh -//= Copyright (C) eAthena Dev Team -//= -//= 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/>. -//========================================================================= -//= Renters (Renewal) -//================= Description =========================================== -//= Renewal-specific breeder NPCs. -//================= Current Version ======================================= -//= 2.1 -//========================================================================= - -//== Dragon Breeder ======================================== -job3_rune01,88,62,5 script Dragon Breeder 8W_SOLDIER,{ - mes "[Dragon Breeder]"; - if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) { - mes "Welcome. Would you like to rent a Dragon?"; - next; - switch(select("Yes", "No")) { - case 1: - //if (!getskilllv(RK_DRAGONTRAINING)) { - if (!getskilllv(KN_RIDING)) { - mes "[Dragon Breeder]"; - mes "Please learn how to ride a Dragon first."; - close; - } else if (checkmount()) { - mes "[Dragon Breeder]"; - mes "You already have a Dragon."; - close; - } else if(hascashmount()) { - mes "[Dragon Breeder]"; - mes "Please remove your cash mount."; - close; - } - setmount(MOUNT_DRAGON); - close; - case 2: - mes "[Dragon Breeder]"; - mes "I see. Then have a great day."; - close; - } - } - mes "What are you doing here?"; - mes "Only Rune Knights can rent a Dragon."; - close; -} - -//== Dragon/Gryphon Master ================================= -prontera,130,213,5 script Riding Creature Master 8W_SOLDIER,{ - mes "[Riding Creature Master]"; - if (Class == Job_Rune_Knight || Class == Job_Rune_Knight_T || Class == Job_Baby_Rune) { - mes "Welcome. Would you like to rent a Dragon?"; - next; - switch(select("Yes", "No")) { - case 1: - //if (!getskilllv(RK_DRAGONTRAINING)) { - if (!getskilllv(KN_RIDING)) { - mes "[Riding Creature Master]"; - mes "Please learn how to ride a Dragon first."; - close; - } else if (checkmount()) { - mes "[Riding Creature Master]"; - mes "You already have a Dragon."; - close; - } else if(hascashmount()) { - mes "[Riding Creature Master]"; - mes "Please remove your cash mount."; - close; - } - setmount(MOUNT_DRAGON); - close; - case 2: - mes "[Riding Creature Master]"; - mes "I see. Then have a great day."; - close; - } - } - if (Class == Job_Royal_Guard || Class == Job_Royal_Guard_T || Class == Job_Baby_Guard) { - mes "Welcome. Would you like to rent a Gryphon?"; - next; - switch(select("Yes", "No")) { - case 1: - if(!getskilllv(KN_RIDING)) { - mes "[Riding Creature Master]"; - mes "Please learn how to ride a Gryphon first."; - close; - } else if (checkmount()) { - mes "[Riding Creature Master]"; - mes "You already have a Gryphon."; - close; - } else if(hascashmount()) { - mes "[Riding Creature Master]"; - mes "Please remove your cash mount."; - close; - } - setmount(MOUNT_PECO); - close; - case 2: - mes "[Riding Creature Master]"; - mes "I see. Then have a great day."; - close; - } - } - mes "I'm here to provide Rune Knights and Royal Guards with riding creatures."; - close; -} - -geffen,100,55,3 duplicate(Riding Creature Master) Riding Creature Master#2 8W_SOLDIER -payon,166,102,5 duplicate(Riding Creature Master) Riding Creature Master#3 8W_SOLDIER -aldebaran,133,109,5 duplicate(Riding Creature Master) Riding Creature Master#4 8W_SOLDIER -yuno,171,187,3 duplicate(Riding Creature Master) Riding Creature Master#5 8W_SOLDIER -rachel,106,130,5 duplicate(Riding Creature Master) Riding Creature Master#6 8W_SOLDIER - -//== Peco removing NPC ===================================== -prontera,125,208,5 script Peco Peco Remover 8W_SOLDIER,{ - mes "[Soldier]"; - mes "If you're unable to dismount from a Peco Peco"; - mes "for some unknown reason,"; - mes "please feel free to use my services."; - if (checkmount() == MOUNT_PECO) { - next; - mes "[Soldier]"; - mes "You're riding a Peco Peco."; - mes "Would you like to dismount?"; - next; - switch(select("Yes", "No")) { - case 1: - setmount(MOUNT_NONE); - mes "[Soldier]"; - mes "Say, how does it feel to"; - mes "step on the ground on your own"; - mes "feet again?"; - close; - case 2: - mes "[Soldier]"; - mes "I see. Please feel free to ask me"; - mes "if you change your mind."; - close; - } - } - close; -} - -//== Magic Gear Renter ===================================== -- script ::mgm FAKE_NPC,{ - mes "[Magic Gear Master]"; - if (Class == Job_Mechanic || Class == Job_Mechanic_T || Class == Job_Baby_Mechanic) { - mes "Welcome, Mechanic."; - mes "Would you like to rent a Pushcart or"; - mes "ride a Magic Gear?"; - next; - switch(select("Rent a Pushcart", "Ride a Magic Gear", "Cancel")) { - case 1: - if (checkcart()) { - mes "[Magic Gear Master]"; - mes "I'm sorry, but you already"; - mes "have a Pushcart."; - close; - } - setcart; - mes "[Magic Gear Master]"; - mes "There you go!"; - close; - case 2: - if (checkmount() == MOUNT_MADO) { - mes "[Magic Gear Master]"; - mes "I'm sorry, but you're already"; - mes "riding a Magic Gear."; - close; - } else if (!getskilllv(NC_MADOLICENCE)) { - mes "[Magic Gear Master]"; - mes "Please learn the skill to get the Magic Gear License first."; - close; - } else if(hascashmount()) { - mes "[Magic Gear Master]"; - mes "Please remove your cash mount."; - close; - } - setmount(MOUNT_MADO); - mes "[Magic Gear Master]"; - mes "Have fun, and please come again!"; - close; - case 3: - close; - } - } - mes "How may I help you?"; - mes "Magic Gears are only available for Mechanics."; - close; -} -prontera,163,178,3 duplicate(mgm) Magic Gear Master#prt 8W_SOLDIER -geffen,103,55,5 duplicate(mgm) Magic Gear Master#gef 8W_SOLDIER -payon,166,106,5 duplicate(mgm) Magic Gear Master#pay 8W_SOLDIER -aldebaran,133,112,5 duplicate(mgm) Magic Gear Master#alde 8W_SOLDIER -yuno,167,187,3 duplicate(mgm) Magic Gear Master#yuno 8W_SOLDIER -rachel,106,134,5 duplicate(mgm) Magic Gear Master#ra 8W_SOLDIER -dicastes01,187,207,3 duplicate(mgm) Magic Gear Master#dic 8W_SOLDIER -manuk,273,212,5 duplicate(mgm) Magic Gear Master#man 8W_SOLDIER -splendide,180,174,5 duplicate(mgm) Magic Gear Master#spl 8W_SOLDIER -mid_camp,242,243,3 duplicate(mgm) Magic Gear Master#mid 8W_SOLDIER diff --git a/npc/re/merchants/shadow_refiner.txt b/npc/re/merchants/shadow_refiner.txt deleted file mode 100644 index f03d348b2..000000000 --- a/npc/re/merchants/shadow_refiner.txt +++ /dev/null @@ -1,188 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2017 Hercules Dev Team -//= Copyright (C) Dastgir -//= Copyright (C) Smokexyz (v2.0) -//= -//= 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/>. -//========================================================================= -//= Shadow Refiner -//================= Description =========================================== -//= Shadow item refiner -//================= Current Version ======================================= -//= 2.0 -//========================================================================= - -itemmall,31,76,3 script Shadow Blacksmith#nomal 4_F_JOB_BLACKSMITH,{ - - // Configuration - .@npc_name$ = "[Shadow Blacksmith]"; - .@zeny_cost = 20000; // Amount of zeny to be charged for refining. - - disable_items; - mesf("%s", .@npc_name$); - mes("Do you want to refine a Shadow item?"); - mes("Please choose the part you want to refine."); - next; - setarray(.@position$[0],"Armor","Weapon","Shield","Shoes","Earring","Pendant"); - for (.@i=EQI_SHADOW_ARMOR; .@i <= EQI_SHADOW_ACC_L; .@i++){ - .@menu$ = .@menu$ + (getequipisequiped(.@i) ? getequipname(.@i) : ("^8C8C8C" + .@position$[.@i-EQI_SHADOW_ARMOR] + " [Not Equipped]^000000" + ":")); - } - .@menu$ = .@menu$ + "Refine Info"; - .@SelectedPart = select(.@menu$) + EQI_SHADOW_ARMOR - 1; - if (.@SelectedPart == EQI_SHADOW_ACC_L + 1){ // Refine Info - mesf("%s", .@npc_name$); - mes("Shadow items gain extra bonus effects depending on their refine level, similar to normal weapon and armor items."); - next; - mesf("%s", .@npc_name$); - mes("Refining effects for each Shadow item parts are -"); - mes("Weapon: ATK, MATK + 1 increase for each +1 refine success."); - mes("Etc: HP + 10 increase for each +1 refine success."); - next; - mesf("%s", .@npc_name$); - mesf("You need %s and %s as the ingredient, along with a refine fee %d Zeny.", getitemname(Oridecon), getitemname(Elunium), .@zeny_cost); - next; - mesf("%s", .@npc_name$); - mes("When refining to +5 or higher, you risk breaking your Shadow item."); - mes("You may also use Enriched or HD ingredients for the refinement."); - close; - } - while(true) { - mesf("%s", .@npc_name$); - mesf("%d Zeny will be spent as a refine fee.", .@zeny_cost); - mes("Choose the ingredient and start refining."); - next; - .@index = 0; - if (.@SelectedPart != EQI_SHADOW_WEAPON) - .@index = 1; - setarray .@s_material1[0], Oridecon, Elunium; - setarray .@s_material2[0], Enriched_Oridecon, Enriched_Elunium; - setarray .@s_material3[0], HD_Oridecon, HD_Elunium; - .@refine_type = REFINE_CHANCE_TYPE_NORMAL; - if (countitem(.@s_material1[.@index])) - .@mate$[0] = getitemname(.@s_material1[.@index]); - else{ - .@mate$[0] = "^8C8C8C"+ getitemname(.@s_material1[.@index]) +"^000000"; - .@miss[0] = 1; - } - if (countitem(.@s_material2[.@index])) - .@mate$[1] = getitemname(.@s_material2[.@index]); - else{ - .@mate$[1] = "^8C8C8C"+ getitemname(.@s_material2[.@index]) +"^000000"; - .@miss[1] = 1; - } - if (getequiprefinerycnt(.@SelectedPart) > 6 && countitem(.@s_material3[.@index])) - .@mate$[2] = getitemname(.@s_material3[.@index]); - else { - .@mate$[2] = "^8C8C8C"+ getitemname(.@s_material3[.@index]) +"^000000"; - .@miss[2] = 1; - } - //----------------------------------------------------------------------------- - .@option = select("Cancel", .@mate$[0], .@mate$[1], .@mate$[2]); - if (.@option == 1){ - mesf("%s", .@npc_name$); - mes("You've cancelled refining."); - close; - } - .@option -= 2; - .@hoihoi = false; - if (.@option == 2){ //HD - if (getequiprefinerycnt(.@SelectedPart) < 7){ - mesf("%s", .@npc_name$); - mes("HD ingredients are only possible to be used when refining an item of quality +7 or higher."); - close; - } - .@hoihoi = true; - } else if (.@option == 1) { - .@refine_type = REFINE_CHANCE_TYPE_ENRICHED; - } - if (.@miss[.@option]){ - mesf("%s", .@npc_name$); - mes("You do not have the proper ingredient to proceed with refining."); - close; - } - .@choose = getd(".@s_weapon"+(.@option+1)+"["+ .@index +"]"); - if (Zeny < 20000) { - mesf("%s", .@npc_name$); - mes("You do not have enough Zeny to pay the refine fee."); - close; - } - if (getequiprefinerycnt(.@SelectedPart) > 9) { - mesf("%s", .@npc_name$); - mes("Shadow item refining is only possible up to +10 level."); - close; - } - if (!getequipisenableref(.@SelectedPart)) { - mesf("%s", .@npc_name$); - mes("This item cannot be refined."); - close; - } - if (getequippercentrefinery(.@SelectedPart, .@refine_type) < 100) { - mesf("%s", .@npc_name$); - mes("Safety guaranteed refine limit for shadow item is until +4."); - if (.@hoihoi == false) { - mes("If you try more refining, the item might break upon failing. Do you still want to refine?"); - } - else { - mes("If you try more refining, the item refine level might go down when failed. Do you still want to refine?"); - } - next; - if (select("Proceed","Cancel") == 2) { - mesf("%s", .@npc_name$); - mes("You've cancelled refining."); - close; - } - } - //----------------------------------------------------------------------------- - mesf("%s", .@npc_name$); - mes("Here we go--!!!"); - next; - if (Zeny < 20000) { - mesf("%s", .@npc_name$); - mes("You do not have enough Zeny to pay the refine fee."); - close; - } - if (countitem(.@choose) == 0) { - mesf("%s", .@npc_name$); - mes("You do not have enough "+ getitemname(.@choose) +"."); - close; - } - delitem(.@choose, 1); - Zeny -= 20000; - if (getequippercentrefinery(.@SelectedPart, .@refine_type) > rand(100)) { - successrefitem(.@SelectedPart); - mesf("%s", .@npc_name$); - mes("Refine was successful."); - next; - } - else { - if (.@hoihoi == true) - downrefitem(.@SelectedPart); - else - failedrefitem(.@SelectedPart); - mesf("%s", .@npc_name$); - mes("Oh no.. Refine has failed."); - close; - } - } -} diff --git a/npc/re/merchants/shops.txt b/npc/re/merchants/shops.txt deleted file mode 100644 index 543d9cdc7..000000000 --- a/npc/re/merchants/shops.txt +++ /dev/null @@ -1,1057 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2016 Hercules Dev Team -//= Copyright (C) Frost -//= Copyright (C) rAthena Dev Team -//= Copyright (C) Lemongrass -//= Copyright (C) Streusel -//= Copyright (C) Euphy -//= Copyright (C) Joseph -//= Copyright (C) eAthena Dev Team -//= Copyright (C) Kenpachi -//= -//= 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/>. -//========================================================================= -//= Shops (Renewal) -//================= Description =========================================== -//= Renewal-specific town shop NPCs. -//================= Current Version ======================================= -//= 2.4 -//========================================================================= - -//== Comodo ================================================ -comodo,106,213,5 trader Tropic Fruit Dealer 4_F_07,{ -OnInit: - sellitem Comodo_Tropic_Fruit; -} - -comodo,196,162,3 trader Harive#candy 4_M_MINSTREL,{ -OnInit: - sellitem Protect_Neck_Candy; - sellitem Heartbroken_Tears; -} - -//== Dewata ================================================ -dewata,218,164,4 trader Weapon Dealer 4_M_DEWMAN,{ -OnInit: - sellitem Main_Gauche; - sellitem Stiletto; - sellitem Blade; - sellitem Ring_Pommel_Saber; - sellitem Katana; - sellitem Bastard_Sword; - sellitem Pike; - sellitem Partizan; - sellitem Hammer; - sellitem Chain; -} - -dewata,182,164,6 trader Tool Dealer 4_M_DEWMAN,{ -OnInit: - sellitem Spectacles; - sellitem Arrow; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; - sellitem One_Eyed_Glass; - sellitem Empty_Bottle; -} - -dewata,145,267,6 trader Fruit Gardener 4_M_DEWOLDWOMAN,{ -OnInit: - sellitem Apple; - sellitem Banana; - sellitem Carrot; - sellitem Sweet_Potato; - sellitem Pumpkin; -} - -dewata,158,182,6 trader Armor Dealer 4_M_DEWMAN,{ -OnInit: - sellitem Bandana; - sellitem Sandals; - sellitem Shoes; - sellitem Hood; - sellitem Muffler; - sellitem Guard; - sellitem Buckler; - sellitem Adventure_Suit; - sellitem Silk_Robe; - sellitem Silver_Robe; - sellitem Wooden_Mail; - sellitem Belt; -} - -//== Einbroch ============================================== -einbroch,122,250,4 trader Black Marketeer#ein 1_M_03,{ -OnInit: - sellitem Flame_Thrower; - sellitem Accelerator; - sellitem Hovering_Booster; - sellitem Suicidal_Device; - sellitem Shape_Shifter; - sellitem Cooling_Device; - sellitem Mag_Field_Generator; - sellitem Barrier_Builder; - sellitem Repair_Kit; - sellitem Cannon_Ball; - sellitem Holy_Cannon_Ball; - sellitem Dark_Cannon_Ball; - sellitem Soul_Cannon_Ball; - sellitem Iron_Cannon_Ball; - sellitem Vulcan_Bullet; - sellitem Magic_Gear_Fuel; - sellitem Liquid_Condensed_Bullet; - sellitem Monkey_Wrench; - sellitem Camouflage_Generator; - sellitem RepairA; - sellitem RepairB; - sellitem RepairC; -} - -//== El Dicastes =========================================== -dic_in01,238,107,5 trader Peddler#dic 4_M_HUMERCHANT,{ -OnInit: - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Spectacles; - sellitem Leaf_Of_Yggdrasil; -} - -dicastes01,207,200,6 trader Points Merchant#dic 1_F_01,{ -OnInit: - sellitem Scarlet_Pts; - sellitem Indigo_Pts; - sellitem Yellow_Wish_Pts; - sellitem Lime_Green_Pts; -} - -//== Izlude ================================================ -izlude,124,165,4 trader Fruit Gardener#iz 1_M_INNKEEPER,{ -OnInit: - sellitem Apple; - sellitem Banana; - sellitem Carrot; - sellitem Sweet_Potato; -} - -izlude_a,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_a 1_M_INNKEEPER -izlude_b,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_b 1_M_INNKEEPER -izlude_c,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_c 1_M_INNKEEPER -izlude_d,124,165,4 duplicate(Fruit Gardener#iz) Fruit Gardener#iz_d 1_M_INNKEEPER - -izlude,160,186,0 trader Butcher#iz 1_M_JOBGUIDER,{ -OnInit: - sellitem Meat; -} - -izlude_a,160,186,0 duplicate(Butcher#iz) Butcher#iz_a 1_M_JOBGUIDER -izlude_b,160,186,0 duplicate(Butcher#iz) Butcher#iz_b 1_M_JOBGUIDER -izlude_c,160,186,0 duplicate(Butcher#iz) Butcher#iz_c 1_M_JOBGUIDER -izlude_d,160,186,0 duplicate(Butcher#iz) Butcher#iz_d 1_M_JOBGUIDER - -izlude,128,158,7 trader Vendor from Milk Ranch#i 4_F_01,{ -OnInit: - sellitem Milk; -} - -izlude_a,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#a 4_F_01 -izlude_b,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#b 4_F_01 -izlude_c,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#c 4_F_01 -izlude_d,128,158,7 duplicate(Vendor from Milk Ranch#i) Vendor from Milk Ranch#d 4_F_01 - -izlude_in,72,98,3 trader Pet Groomer#iz 4_F_TELEPORTER,{ -OnInit: - sellitem Pet_Food; - sellitem Pet_Incubator; - sellitem Backpack; - sellitem Rocker_Glasses; - sellitem Vital_Flower_; - sellitem Flame_Gemstone; - sellitem Bun_; - sellitem Vital_Flower; - sellitem Damp_Darkness; - sellitem Small_Snow_Flower; - sellitem Fresh_Plant; - sellitem Big_Cell; - sellitem Apple_Pudding; - sellitem Mystic_Stone; - sellitem Flavored_Alcohol; - sellitem Spirit_Liquor; - sellitem Pumpkin_Pie_; - sellitem Sunset_On_The_Rock; - sellitem Morning_Dew; - sellitem Grilled_Rice_Cake; -} - -izlude_in,57,110,0 trader Tool Dealer#iz 1_M_01,{ -OnInit: - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; - sellitem Arrow; -} - -izlude_in,72,110,3 trader Trading Merchant#iz 4_M_HUMERCHANT,{ -OnInit: - sellitem Bullet; - sellitem Silver_Bullet; - sellitem Shell_Of_Blood; - sellitem Branch; - sellitem Crimson_Bolt; - sellitem The_Cyclone; - sellitem Rolling_Stone; - sellitem Black_Rose; - sellitem Long_Barrel; - sellitem Jungle_Carbine; - sellitem Thunder_P; -} - -//== Juno ================================================== -s_atelier,114,117,1 trader Part-Timer#sc_yuno 4_F_03,{ -OnInit: - sellitem Surface_Paint; - sellitem Face_Paint; -} - -//== Lighthalzen =========================================== -lighthalzen,337,240,4 trader Trap Specialist#lhz 1_F_01,{ -OnInit: - sellitem Special_Alloy_Trap; - sellitem Special_Alloy_Trap_Box; -} - -lhz_in03,181,17,4 trader Black Marketeer#lhz 1_M_03,{ -OnInit: - sellitem Flame_Thrower; - sellitem Accelerator; - sellitem Hovering_Booster; - sellitem Suicidal_Device; - sellitem Shape_Shifter; - sellitem Cooling_Device; - sellitem Mag_Field_Generator; - sellitem Barrier_Builder; - sellitem Repair_Kit; - sellitem Cannon_Ball; - sellitem Holy_Cannon_Ball; - sellitem Dark_Cannon_Ball; - sellitem Soul_Cannon_Ball; - sellitem Iron_Cannon_Ball; - sellitem Vulcan_Bullet; - sellitem Magic_Gear_Fuel; - sellitem Liquid_Condensed_Bullet; - sellitem Monkey_Wrench; - sellitem Camouflage_Generator; - sellitem RepairA; - sellitem RepairB; - sellitem RepairC; -} - -s_atelier,15,65,5 trader Part-Timer#sc_lgt 4_M_ORIENT02,{ -OnInit: - sellitem Surface_Paint; - sellitem Face_Paint; -} - -//== Malangdo ============================================== -malangdo,232,163,5 trader Tool Dealer Myo 4_CAT_ADV2,{ -OnInit: - sellitem Spectacles; - sellitem Arrow; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; - sellitem Empty_Bottle; -} - -//== Mora ================================================== -mora,100,118,4 trader Tool Dealer#mora 4_M_RAFLE_OLD,{ -OnInit: - sellitem Red_Raffle_Sap; - sellitem Yellow_Raffle_Sap; - sellitem White_Raffle_Sap; - sellitem Wing_Of_Butterfly; - sellitem Wing_Of_Fly; - sellitem Spectacles; - sellitem Arrow_Of_Elf; - sellitem Hunting_Arrow; -} - -mora,138,110,4 trader Mora Chef 4_F_RAFLE_PK,{ -OnInit: - sellitem Beef_Toast; -} - -//== Mid Camp ============================================== -mid_camp,129,284,4 trader Trap Specialist#mid 1_F_01,{ -OnInit: - sellitem Special_Alloy_Trap; - sellitem Special_Alloy_Trap_Box; -} - -mid_camp,184,263,4 trader Black Marketeer#mid 1_M_03,{ -OnInit: - sellitem Flame_Thrower; - sellitem Accelerator; - sellitem Hovering_Booster; - sellitem Suicidal_Device; - sellitem Shape_Shifter; - sellitem Cooling_Device; - sellitem Mag_Field_Generator; - sellitem Barrier_Builder; - sellitem Repair_Kit; - sellitem Cannon_Ball; - sellitem Holy_Cannon_Ball; - sellitem Dark_Cannon_Ball; - sellitem Soul_Cannon_Ball; - sellitem Iron_Cannon_Ball; - sellitem Vulcan_Bullet; - sellitem Magic_Gear_Fuel; - sellitem Liquid_Condensed_Bullet; - sellitem Monkey_Wrench; - sellitem Camouflage_Generator; - sellitem RepairA; - sellitem RepairB; - sellitem RepairC; -} - -//== Payon ================================================= -payon,123,109,4 trader Trap Specialist#pay 1_F_01,{ -OnInit: - sellitem Special_Alloy_Trap; - sellitem Special_Alloy_Trap_Box; -} - -//== Port Malaya =========================================== -ma_in01,73,22,3 trader Weapon Dealer#ma 4_M_DEWMAN,{ -OnInit: - sellitem Main_Gauche; - sellitem Stiletto; - sellitem Blade; - sellitem Ring_Pommel_Saber; - sellitem Katana; - sellitem Bastard_Sword; - sellitem Pike; - sellitem Partizan; - sellitem Hammer; - sellitem Chain; -} - -ma_in01,22,23,3 trader Tool Dealer#ma 4_M_DEWMAN,{ -OnInit: - sellitem Spectacles; - sellitem Arrow; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; - sellitem One_Eyed_Glass; -} - -malaya,150,261,3 trader Fruit Gardener#ma 4_M_DEWOLDWOMAN,{ -OnInit: - sellitem Apple; - sellitem Banana; - sellitem Carrot; - sellitem Sweet_Potato; - sellitem Pumpkin; -} - -ma_in01,67,13,5 trader Armor Dealer#ma 4_M_DEWMAN,{ -OnInit: - sellitem Bandana; - sellitem Sandals; - sellitem Shoes; - sellitem Hood; - sellitem Muffler; - sellitem Guard; - sellitem Buckler; - sellitem Adventure_Suit; - sellitem Silk_Robe; - sellitem Silver_Robe; - sellitem Wooden_Mail; - sellitem Belt; -} - -//== Prontera ============================================== -/* -prontera,104,88,5 trader Stuff Gimme 4_M_MASKMAN,{ -OnInit: - sellitem Old_Card_Album; -} -*/ - -prt_in,126,76,0 trader Tool Dealer#prt1 1_M_INNKEEPER,{ -OnInit: - sellitem Spectacles; - sellitem Arrow; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; -} - -prt_in,117,79,5 trader Toy Supplier#prt 4_M_PIERROT,{ -OnInit: - sellitem One_Eyed_Glass; - sellitem Sunglasses; - sellitem Spinning_Eyes; - sellitem Eye_Bandage; - sellitem Luxury_Sunglasses; - sellitem Granpa_Beard; -} - -prt_fild05,290,221,2 trader Tool Dealer#prt 4_M_01,{ -OnInit: - sellitem Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Center_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; -} - -prt_in,109,68,4 trader Trap Specialist#prt 1_F_01,{ -OnInit: - sellitem Special_Alloy_Trap; - sellitem Special_Alloy_Trap_Box; -} - -prt_in,175,137,4 trader Black Marketeer#prt 1_M_03,{ -OnInit: - sellitem Flame_Thrower; - sellitem Accelerator; - sellitem Hovering_Booster; - sellitem Suicidal_Device; - sellitem Shape_Shifter; - sellitem Cooling_Device; - sellitem Mag_Field_Generator; - sellitem Barrier_Builder; - sellitem Repair_Kit; - sellitem Cannon_Ball; - sellitem Holy_Cannon_Ball; - sellitem Dark_Cannon_Ball; - sellitem Soul_Cannon_Ball; - sellitem Iron_Cannon_Ball; - sellitem Vulcan_Bullet; - sellitem Magic_Gear_Fuel; - sellitem Liquid_Condensed_Bullet; - sellitem Monkey_Wrench; - sellitem Camouflage_Generator; - sellitem RepairA; - sellitem RepairB; - sellitem RepairC; -} - -s_atelier,17,110,1 trader Part-Timer#sc_prt 1_F_02,{ -OnInit: - sellitem Surface_Paint; - sellitem Face_Paint; -} - -//- Ninja Shops - -prontera,178,244,3 trader Amatsu Trader#nin 4_M_01,{ -OnInit: - sellitem Shuriken; - sellitem Nimbus_Shuriken; - sellitem Flash_Shuriken; - sellitem Sharp_Leaf_Shuriken; - sellitem Thorn_Needle_Shuriken; - sellitem Explosive_Kunai; - sellitem Makibishi; - sellitem Arm_Guard; - sellitem Fox_Armguard; - sellitem Special_Ninja_Suit; - sellitem Flame_Stone; - sellitem Ice_Stone; - sellitem Wind_Stone; - sellitem Shadow_Orb; - sellitem Charm_Fire; - sellitem Charm_Ice; - sellitem Charm_Wind; - sellitem Charm_Earth; -} - -prontera,218,211,4 trader Pet Groomer#prt 4_M_TELEPORTER,{ -OnInit: - sellitem Pet_Food; - sellitem Pet_Incubator; - sellitem Backpack; - sellitem Rocker_Glasses; - sellitem Vital_Flower_; - sellitem Flame_Gemstone; - sellitem Bun_; - sellitem Vital_Flower; - sellitem Damp_Darkness; - sellitem Small_Snow_Flower; - sellitem Fresh_Plant; - sellitem Big_Cell; - sellitem Apple_Pudding; - sellitem Mystic_Stone; - sellitem Flavored_Alcohol; - sellitem Spirit_Liquor; - sellitem Pumpkin_Pie_; - sellitem Sunset_On_The_Rock; - sellitem Morning_Dew; - sellitem Grilled_Rice_Cake; -} - -prontera,92,209,4 trader Rebellion Weapon Vending 2_VENDING_MACHINE1,{ -OnInit: - sellitem H_FEATHER_H_FIRE; - sellitem ALTAIR_ARES; - sellitem COLORSCOPE; - sellitem RAG203; - sellitem DEATHFIRE; - sellitem R_THUNDER; - sellitem P_BREAKER; - sellitem MINIMAY; - sellitem TEMPEST; - sellitem END_OF_HORIZON; - sellitem Southern_Cross_R; -} - -prontera,96,209,4 trader Rebellion Prop Vending 2_VENDING_MACHINE1,{ -OnInit: - sellitem Slug_Bullet_1; - sellitem Slug_Bullet_2; - sellitem Slug_Bullet_3; - sellitem Fullmetal_Jacket_Bullet; - sellitem Mine_Projectile; - sellitem Dragon_Tail_Missile; - sellitem Special_Alloy_Trap; - sellitem Bullet; - sellitem Silver_Bullet_; - sellitem Shell_Of_Blood_; - sellitem AP_Ammo; - sellitem Blaze_Bullet; - sellitem Freezing_Bullet; - sellitem Electric_Shock_Bullet; - sellitem Magical_Stone_Bullet; - sellitem Sanctified_Bullet; - sellitem Flare_Sphere_; - sellitem Lighting_Sphere_; - sellitem Poison_Sphere_; - sellitem Blind_Sphere_; - sellitem Freezing_Sphere_; -} - -//== Morroc =============================================== -morocc,156,76,4 trader Butcher#moc1 1_M_MERCHANT,{ -OnInit: - sellitem Meat; -} - -moc_ruins,91,128,4 trader Tool Dealer#moc1 4_F_04,{ -OnInit: - sellitem Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; -} - -moc_ruins,114,63,6 trader Tool Dealer#moc2 4W_M_03,{ -OnInit: - sellitem Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; -} - -morocc,147,103,6 trader Tool Dealer#moc3 4W_M_03,{ -OnInit: - sellitem Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; -} - -morocc,151,241,4 trader Tool Dealer#moc4 4_F_04,{ -OnInit: - sellitem Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; -} - -moc_ruins,118,170,4 trader Pet Groomer#moc 4_M_TELEPORTER,{ -OnInit: - sellitem Pet_Food; - sellitem Pet_Incubator; - sellitem Backpack; - sellitem Rocker_Glasses; - sellitem Vital_Flower_; - sellitem Flame_Gemstone; - sellitem Bun_; - sellitem Vital_Flower; - sellitem Damp_Darkness; - sellitem Small_Snow_Flower; - sellitem Fresh_Plant; - sellitem Big_Cell; - sellitem Apple_Pudding; - sellitem Mystic_Stone; - sellitem Flavored_Alcohol; - sellitem Spirit_Liquor; - sellitem Pumpkin_Pie_; - sellitem Sunset_On_The_Rock; - sellitem Morning_Dew; - sellitem Grilled_Rice_Cake; -} - -morocc,203,87,4 trader Pet Groomer#moc1 4_M_TELEPORTER,{ -OnInit: - sellitem Pet_Food; - sellitem Pet_Incubator; - sellitem Backpack; - sellitem Rocker_Glasses; - sellitem Vital_Flower_; - sellitem Flame_Gemstone; - sellitem Bun_; - sellitem Vital_Flower; - sellitem Damp_Darkness; - sellitem Small_Snow_Flower; - sellitem Fresh_Plant; - sellitem Big_Cell; - sellitem Apple_Pudding; - sellitem Mystic_Stone; - sellitem Flavored_Alcohol; - sellitem Spirit_Liquor; - sellitem Pumpkin_Pie_; - sellitem Sunset_On_The_Rock; - sellitem Morning_Dew; - sellitem Grilled_Rice_Cake; -} - -morocc,154,55,6 trader Jeweler#moc3 4W_M_03,{ -OnInit: - sellitem Crystal_Jewel; - sellitem Diamond_Ring; -} - -morocc,171,103,4 trader Item Collector#moc3 4_M_03,{ -OnInit: - sellitem Scell; - sellitem Monsters_Feed; - sellitem Animals_Skin; - sellitem Bill_Of_Birds; -} - -morocc,205,247,2 trader Item Collector#moc4 4_M_03,{ -OnInit: - sellitem Scell; - sellitem Monsters_Feed; - sellitem Animals_Skin; - sellitem Bill_Of_Birds; -} - -morocc,140,90,6 trader Trader#moc6 4W_M_03,{ -OnInit: - sellitem Banana; -} - -morocc,166,54,2 trader Jeweler#moc4 8_F,{ -OnInit: - sellitem Azure_Jewel; - sellitem Cardinal_Jewel; - sellitem Blue_Jewel; - sellitem Golden_Jewel; - sellitem Bluish_Green_Jewel; -} - -morocc,34,68,0 trader Trader#moc7 4_F_04,{ -OnInit: - sellitem Witherless_Rose; -} - -morocc,269,193,4 trader Trader#moc8 4_M_ORIENT02,{ -OnInit: - sellitem Skul_Ring; - sellitem Sword_Mace; - sellitem Stunner; -} - -morocc,256,191,5 trader Trader#moc9 4_F_04,{ -OnInit: - sellitem Flower_Ring; -} - -//== Geffen ================================================ -geffen_in,77,167,0 trader Tool Dealer#gef 1_F_03,{ -OnInit: - sellitem Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; -} - -geffen,193,152,4 trader Pet Groomer#gef 4_F_TELEPORTER,{ -OnInit: - sellitem Pet_Food; - sellitem Pet_Incubator; - sellitem Backpack; - sellitem Rocker_Glasses; - sellitem Vital_Flower_; - sellitem Flame_Gemstone; - sellitem Bun_; - sellitem Vital_Flower; - sellitem Damp_Darkness; - sellitem Small_Snow_Flower; - sellitem Fresh_Plant; - sellitem Big_Cell; - sellitem Apple_Pudding; - sellitem Mystic_Stone; - sellitem Flavored_Alcohol; - sellitem Spirit_Liquor; - sellitem Pumpkin_Pie_; - sellitem Sunset_On_The_Rock; - sellitem Morning_Dew; - sellitem Grilled_Rice_Cake; -} - -geffen_in,171,123,4 trader Tool Dealer#gef2 1_M_WIZARD,{ -OnInit: - sellitem Empty_Cylinder; - sellitem Empty_Potion; - sellitem Empty_Bottle; -} - -//== Alberta =============================================== -alb2trea,87,65,5 trader Tool Dealer#alb 4_M_01,{ -OnInit: - sellitem Arrow; - sellitem Silver_Arrow; - sellitem Fire_Arrow; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; -} - -alberta_in,182,97,0 trader Tool Dealer#alb2 1_F_MERCHANT_01,{ -OnInit: - sellitem Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; -} - -alberta_in,176,81,3 trader Trading Merchant#alb 4_M_HUMERCHANT,{ -OnInit: - sellitem Bullet; - sellitem Silver_Bullet_; - sellitem Shell_Of_Blood_; - sellitem Branch; - sellitem Crimson_Bolt; - sellitem The_Cyclone; - sellitem Rolling_Stone; - sellitem Black_Rose; - sellitem Long_Barrel; - sellitem Jungle_Carbine; - sellitem Thunder_P; -} - -//== Payon ================================================= -payon,159,96,4 trader Tool Dealer#pay3 4_M_ORIENT01,{ -OnInit: - sellitem Arrow; - sellitem Red_Potion; - sellitem Center_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; -} - -payon_in01,5,49,7 trader Tool Dealer#pay 4_M_ORIENT01,{ -OnInit: - sellitem Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; -} - -payon,177,131,4 trader Pet Groomer#pay 4_F_TELEPORTER,{ -OnInit: - sellitem Pet_Food; - sellitem Pet_Incubator; - sellitem Backpack; - sellitem Rocker_Glasses; - sellitem Vital_Flower_; - sellitem Flame_Gemstone; - sellitem Bun_; - sellitem Vital_Flower; - sellitem Damp_Darkness; - sellitem Small_Snow_Flower; - sellitem Fresh_Plant; - sellitem Big_Cell; - sellitem Apple_Pudding; - sellitem Mystic_Stone; - sellitem Flavored_Alcohol; - sellitem Spirit_Liquor; - sellitem Pumpkin_Pie_; - sellitem Sunset_On_The_Rock; - sellitem Morning_Dew; - sellitem Grilled_Rice_Cake; -} - -payon_in02,87,34,0 trader Tool Dealer#pay2 1_F_ORIENT_01,{ -OnInit: - sellitem Arrow; - sellitem Silver_Arrow; - sellitem Spectacles; - sellitem Red_Potion; - sellitem Orange_Potion; - sellitem Yellow_Potion; - sellitem White_Potion; - sellitem Center_Potion; - sellitem Awakening_Potion; - sellitem Empty_Bottle; - sellitem Wing_Of_Fly; - sellitem Wing_Of_Butterfly; - sellitem Booby_Trap; -} - -//== Rachel ================================================ -ra_in01,263,281,4 trader Trap Specialist#ra 1_F_01,{ -OnInit: - sellitem Special_Alloy_Trap; - sellitem Special_Alloy_Trap_Box; -} - -ra_in01,257,266,4 trader Black Marketeer#ra 1_M_03,{ -OnInit: - sellitem Flame_Thrower; - sellitem Accelerator; - sellitem Hovering_Booster; - sellitem Suicidal_Device; - sellitem Shape_Shifter; - sellitem Cooling_Device; - sellitem Mag_Field_Generator; - sellitem Barrier_Builder; - sellitem Repair_Kit; - sellitem Cannon_Ball; - sellitem Holy_Cannon_Ball; - sellitem Dark_Cannon_Ball; - sellitem Soul_Cannon_Ball; - sellitem Iron_Cannon_Ball; - sellitem Vulcan_Bullet; - sellitem Magic_Gear_Fuel; - sellitem Liquid_Condensed_Bullet; - sellitem Monkey_Wrench; - sellitem Camouflage_Generator; - sellitem RepairA; - sellitem RepairB; - sellitem RepairC; -} - -s_atelier,137,60,3 trader Part-Timer#sc_ra 1_F_GYPSY,{ -OnInit: - sellitem Surface_Paint; - sellitem Face_Paint; -} - -//== Cooking Addition ====================================== -prontera,156,212,1 trader Chef Assistant#prt 8_F_GIRL,{ -OnInit: - sellitem Combination_Kit; - sellitem Mushroom; - sellitem Pot; - sellitem Bread; - sellitem Grain; - sellitem Cooking_Oil; - sellitem Plain_Sauce; - sellitem Hot_Sauce; - sellitem Sweet_Sauce; - sellitem Red_Spice; - sellitem Yellow_Spice; - sellitem Delicious_Fish; - sellitem Outdoor_Cooking_Kits; - sellitem Indoor_Cooking_Kits; - sellitem High_end_Cooking_Kits; - sellitem Cookbook01; - sellitem Cookbook02; - sellitem Cookbook03; - sellitem Cookbook04; - sellitem Cookbook05; -} - -moc_ruins,115,123,5 trader Chef Assistant#moc 4_M_04,{ -OnInit: - sellitem Combination_Kit; - sellitem Mushroom; - sellitem Pot; - sellitem Bread; - sellitem Grain; - sellitem Cooking_Oil; - sellitem Plain_Sauce; - sellitem Hot_Sauce; - sellitem Sweet_Sauce; - sellitem Red_Spice; - sellitem Yellow_Spice; - sellitem Delicious_Fish; - sellitem Outdoor_Cooking_Kits; - sellitem Indoor_Cooking_Kits; - sellitem High_end_Cooking_Kits; -} - -geffen,196,111,3 trader Chef Assistant#gef 4_M_03,{ -OnInit: - sellitem Combination_Kit; - sellitem Mushroom; - sellitem Pot; - sellitem Bread; - sellitem Grain; - sellitem Cooking_Oil; - sellitem Plain_Sauce; - sellitem Hot_Sauce; - sellitem Sweet_Sauce; - sellitem Red_Spice; - sellitem Yellow_Spice; - sellitem Delicious_Fish; - sellitem Outdoor_Cooking_Kits; - sellitem Indoor_Cooking_Kits; - sellitem High_end_Cooking_Kits; -} - -alberta,167,135,5 trader Chef Assistant#alb 4_M_05,{ -OnInit: - sellitem Combination_Kit; - sellitem Mushroom; - sellitem Pot; - sellitem Bread; - sellitem Grain; - sellitem Cooking_Oil; - sellitem Plain_Sauce; - sellitem Hot_Sauce; - sellitem Sweet_Sauce; - sellitem Red_Spice; - sellitem Yellow_Spice; - sellitem Delicious_Fish; - sellitem Outdoor_Cooking_Kits; - sellitem Indoor_Cooking_Kits; - sellitem High_end_Cooking_Kits; -} - -payon,206,119,5 trader Chef Assistant#pay 4_M_ORIENT02,{ -OnInit: - sellitem Combination_Kit; - sellitem Mushroom; - sellitem Pot; - sellitem Bread; - sellitem Grain; - sellitem Cooking_Oil; - sellitem Plain_Sauce; - sellitem Hot_Sauce; - sellitem Sweet_Sauce; - sellitem Red_Spice; - sellitem Yellow_Spice; - sellitem Delicious_Fish; - sellitem Outdoor_Cooking_Kits; - sellitem Indoor_Cooking_Kits; - sellitem High_end_Cooking_Kits; -} diff --git a/npc/re/merchants/ticket_refiner.txt b/npc/re/merchants/ticket_refiner.txt deleted file mode 100644 index 5b69fbc38..000000000 --- a/npc/re/merchants/ticket_refiner.txt +++ /dev/null @@ -1,182 +0,0 @@ -//================= Hercules Script ======================================= -//= _ _ _ -//= | | | | | | -//= | |_| | ___ _ __ ___ _ _| | ___ ___ -//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| -//= | | | | __/ | | (__| |_| | | __/\__ \ -//= \_| |_/\___|_| \___|\__,_|_|\___||___/ -//================= License =============================================== -//= This file is part of Hercules. -//= http://herc.ws - http://github.com/HerculesWS/Hercules -//= -//= Copyright (C) 2012-2015 Hercules 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/>. -//========================================================================= -//= Ticket Refiner -//================= Description =========================================== -//= Refiner that uses +5~9/+11 refine tickets to refine equipment with no -//= chance of failure. -//================= Additional Comments =================================== -//= NOTE: This NPC is currently disabled on official servers. -//================= Current Version ======================================= -//= 1.0 -//========================================================================= - -prontera,184,177,6 script Refine Master 4_M_REPAIR,{ - disable_items; - if (countitem(Guarantee_Weapon_11Up) || countitem(Guarantee_Weapon_9Up) || countitem(Guarantee_Weapon_8Up) || countitem(Guarantee_Weapon_7Up) || countitem(Guarantee_Weapon_6Up) || countitem(Guarantee_Weapon_5Up)) - .@bWeaponUp = 1; - if (countitem(Guarantee_Armor_11Up) || countitem(Guarantee_Armor_9Up) || countitem(Guarantee_Armor_8Up) || countitem(Guarantee_Armor_7Up) || countitem(Guarantee_Armor_6Up) || countitem(Guarantee_Armor_5Up)) - .@bArmorUp = 1; - if (!.@bWeaponUp && !.@bArmorUp) { - mes "[Refine Master]"; - mes "Hello!"; - mes "What's up?"; - mes "I'm a specialist"; - mes "for refining items,"; - mes "but I don't work anymore."; - next; - switch(select("I'll go on my way.", "Hmm... this makes me curious.")) { - case 1: - mes "[Refine Master]"; - mes "Take care, adventurer."; - close; - case 2: - mes "[Refine Master]"; - mes "Actully, I sometimes provide refine services for adventurers with a ^006400Refine Ticket^000000..."; - mes "Bye bye~!"; - close; - } - } - emotion e_gasp; - mes "[Refine Master]"; - mes "Greetings!"; - mes "I can refine an item up to the ^006400same level as your ticket^000000."; - mes "You don't have to worry! There's no chance of breaking your item."; - next; - if(select("I'll come back later.", "Refine item with ticket.") == 1) { - mes "[Refine Master]"; - mes "Okay."; - mes "You can come again later."; - close; - } - mes "[Refine Master]"; - mes "Which equipment would you like to refine?"; - next; - setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower"; - .@menu$ = ""; - for(.@i = 1; .@i<=10; ++.@i) - .@menu$ += ((getequipisequiped(.@i))?getequipname(.@i):.@position$[.@i]+"- [Empty]")+":"; - .@part = select(.@menu$); - if (!getequipisequiped(.@part)) { - mes "[Refine Master]"; - mes "You have to equip the item you want to refine."; - close; - } - if (!getequipisenableref(.@part)) { - emotion e_otl; - mes "[Refine Master]"; - mes "Oh, I'm sorry."; - mes "This item is impossible to refine."; - close; - } - switch(getequipweaponlv(.@part)) { - default: - case 0: - setarray .@tickets[0],6457,6235,6234,6233,6232,6239; - setarray .@levels[0],5,6,7,8,9,11; - .@type$ = "Armor"; - .@check = .@bArmorUp; - break; - case 1: - case 2: - case 3: - case 4: - setarray .@tickets[0],6456,6231,6230,6229,6228,6238; - setarray .@levels[0],5,6,7,8,9,11; - .@type$ = "Weapon"; - .@check = .@bWeaponUp; - break; - } - if (!.@check) { - emotion e_dots; - mes "[Refine Master]"; - mes "If you want to refine this ^006400"+.@type$+"^000000, please come along with ^006400"+.@type$+" Refine Ticket^000000."; - mes "See you later!"; - close; - } - mes "[Refine Master]"; - mes "Please choose which ^006400"+.@type$+" Refine Ticket^000000 you want to use."; - next; - .@menu$ = ""; - for(.@i = 0; .@i<getarraysize(.@tickets); ++.@i) - .@menu$ += getitemname(.@tickets[.@i])+":"; - .@select = select(.@menu$)-1; - .@ticket_lv = .@levels[.@select]; - .@ticket_id = .@tickets[.@select]; - if (countitem(.@ticket_id) == 0) { - emotion e_what; - mes "[Refine Master]"; - mes getitemname(.@ticket_id)+" is not in your inventory. Did you put it in your storage?"; - mes "Please check again."; - mes "See you later!"; - close; - } - if (getequiprefinerycnt(.@part) >= .@ticket_lv) { - emotion e_swt2; - mes "[Refine Master]"; - mes "^8B4513This item is already refined as much as your deed.^000000"; - mes "Please come along with an item refined less than your ticket."; - close; - } - mes "[Refine Master]"; - mes "I'm going to refine ^006400"+getequipname(.@part)+"^8B4513 up to the +"+.@ticket_lv+" level^000000 with ^006400"+getitemname(.@ticket_id)+"^000000."; - mes "May I proceed?"; - next; - if(select("No.", "Yes.") == 1) { - emotion e_dots; - mes "[Refine Master]"; - mes "Oh, you changed your mind."; - mes "Ok."; - mes "You can come back later."; - close; - } - mes "[Refine Master]"; - mes "Great."; - mes "As you wish!"; - mes "I have my own special way to refine..."; - mes ".......ka boom!"; - specialeffect EF_SUI_EXPLOSION; - if (countitem(.@ticket_id)) - delitem .@ticket_id,1; - else { - next; - mes "Error!"; - mes "Please report this."; - close; - } - for(.@i = getequiprefinerycnt(.@part); .@i<.@ticket_lv; ++.@i) - successrefitem .@part; - next; - emotion e_ho; - mes "[Refine Master]"; - mes "Alright, here it is~"; - mes "Well, ^0000FF"+strcharinfo(PC_NAME)+"^000000!"; - mes "Congratulations on your shining "+.@type$+"."; - mes "You look GREAT!"; - mes "Farewell~!"; - close; -} |