//================= 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 . //========================================================================= //= 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= .@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,"[]",; 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,"[]","",,,, 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