diff options
Diffstat (limited to 'npc/re/merchants/3rd_trader.txt')
-rw-r--r-- | npc/re/merchants/3rd_trader.txt | 266 |
1 files changed, 159 insertions, 107 deletions
diff --git a/npc/re/merchants/3rd_trader.txt b/npc/re/merchants/3rd_trader.txt index 86dd01656..134a3422d 100644 --- a/npc/re/merchants/3rd_trader.txt +++ b/npc/re/merchants/3rd_trader.txt @@ -1,20 +1,26 @@ //===== Hercules Script ====================================== //= 3rd Item Seller -//===== By: ================================================== +//===== By: ================================================== //= Masao, Mercurial -//===== Current Version: ===================================== -//= 1.2 -//===== Description: ========================================= -//= [Aegis Conversion] -//= Sells some 3rd Job related items. -//===== Additional Comments: ================================= +//===== Current Version: ===================================== +//= 1.5 +//===== Description: ========================================= +//= [Official Conversion] +//= Sells some 3rd Job related items: +//= - Poison Herbs, Rune Stones, Rare Herbs, Points +//===== Additional Comments: ================================= //= 1.0 First Version. //= 1.1 Optimized Poison Herb Salesman NPC //= 1.2 Optimized and standardized. [Euphy] -//============================================================ +//= 1.3 Added Malangdo/Mora Points NPC. [Euphy] +//= 1.4 Updated to match the official scripts. [Euphy] +//= 1.5 Added Izlude duplicates. [Euphy] +//============================================================ -job3_guil01,79,96,3 script Poison Herb Salesman::PHS 877,{ - if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) { +// Poison Herb Merchants (Guillotine Cross) +//============================================================ +- script ::phs -1,{ + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; @@ -22,68 +28,65 @@ job3_guil01,79,96,3 script Poison Herb Salesman::PHS 877,{ mes "- after you lose some weight. -"; close; } - mes "[Poison Herb Salesman]"; + mes "[Poison Herb Merchant]"; mes "I am the professional"; - mes "poison herb seller."; - mes "Which one do you want?"; - mes "They cost 4,000 zeny each!"; - set .@i, select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit")-1; + mes "Poison Herb merchant."; + mes "Each Herb costs 4,000 zeny."; + mes "What would you like?"; next; + set .@i, select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1; + mes "[Poison Herb Merchant]"; if (.@i < 6) { - mes "[Poison Herb Salesman]"; - mes "How many do you want? You can"; - mes "only buy a maximum of 2000 ea"; - mes "and if you want to cancel, enter '0'."; - next; - input .@amount; - mes "[Poison Herb Salesman]"; - if (.@amount == 0) { - mes "You've cancelled the trade."; - close; - } - if (.@amount > 2000) { - mes "Please check the maximum"; - mes "amount and then try again."; - close; - } - if (Zeny < .@amount*4000) { - mes "Please check the money you have."; - mes "It doesn't seem like you have enough money."; - close; - } - set Zeny, Zeny-(.@amount*4000); - getitem 7932+.@i,.@amount; - mes "Thank you. See you~!"; - close; + set .@item,7932+.@i; + set .@price,4000; + set .@max,2000; + set .@max$,"2,000"; + } else if (.@i == 6) { + set .@item,7931; + set .@price,5000; + set .@max,500; + set .@max$,"500"; + mes "Each Poison Kit costs 5,000 zeny."; } else { - mes "[Poison Herb Salesman]"; - mes "You can only buy"; - mes "1 Poison Kit and it costs 5,000 zeny."; - mes "Will you buy it?"; - next; - if(select("Yes, I will.:No, I won't.") == 2) { - mes "[Poison Herb Salesman]"; - mes "Well, I see. See you~!"; - close; - } - mes "[Poison Herb Salesman]"; - if (Zeny < 5000) { - mes "Please check the money you have."; - mes "It doesn't seem like you have enough money."; - close; - } - set Zeny, Zeny-5000; - getitem 7931,1; - mes "[Poison Herb Salesman]"; - mes "Thank you. See you~!"; + 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; + } + set .@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; } + set Zeny, Zeny - .@total; + getitem .@item, .@amount; + mes "[Poison Herb Merchant]"; + mes "Thank you. Come back again~!"; + close; } -morocc,190,96,4 duplicate(PHS) Poison Herb Salesman#moc 877 -lhz_in02,16,205,4 duplicate(PHS) Poison Herb Salesman#lhz 877 +job3_guil01,79,96,3 duplicate(phs) Poison Herb Merchant 877 +morocc,191,94,4 duplicate(phs) Poison Herb Merchant#moc 877 //Official: (190,96) -> in a wall +lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 877 -job3_rune01,90,62,3 script Rune Salesman::runesale 853,{ - if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) { +// Rune Stone Merchants (Rune Knight) +//============================================================ +- script ::runesale -1,{ + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; @@ -91,57 +94,67 @@ job3_rune01,90,62,3 script Rune Salesman::runesale 853,{ mes "- after you lose some weight. -"; close; } - mes "[Rune Salesman]"; + mes "[Rune Merchant]"; mes "Hey, do you need Runes?!"; - mes "I sell all kinds of Rune Stones!"; - mes "What kind of Rune do you want?"; + mes "I sell all sorts of Rune Stones!"; + mes "What would you like?"; next; set .@i, select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones."); - mes "[Rune Salesman]"; + mes "[Rune Merchant]"; if (.@i == 1) { mes "High-quality Runes!"; mes "They cost 2,500 zeny each!"; - setarray .@rune[0],12734,2500; + set .@item,12734; //Runstone_Quality + set .@price,2500; } else { mes "Ordinary Rune Stones?"; mes "They cost 1,000 zeny each!"; + set .@item,12737; //Runstone_Ordinary + set .@price,1000; setarray .@rune[0],12737,1000; } - mes "Tell me how many you want to buy"; + mes "Tell me how many you want,"; mes "and remember, you can only"; - mes "buy a maximum amount of 2000 ea!"; + mes "buy a maximum of '2000' ea."; next; input .@amount; - mes "[Rune Salesman]"; if (.@amount == 0) { - mes "You're not buying? Go away!"; + mes "[Rune Merchant]"; + mes "You're not buying? Please leave!"; close; } if (.@amount > 2000) { - mes "Please check the maximum"; - mes "amount and then come back to me again!"; + mes "[Rune Merchant]"; + mes "The number must be less than 2,000!"; close; } - if (Zeny < .@amount*.@rune[1]) { - mes "Money! Money!"; - mes "You are short of money!"; - mes "Check the amount of money you have!!"; + set .@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(.@rune[0],.@amount)) { - mes "You're not able to carry it, so why are you trying to buy it?!"; + 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; } - set Zeny, Zeny-(.@amount*.@rune[1]); - getitem .@rune[0],.@amount; - mes "You can buy more again."; - mes "So, see you later."; + set Zeny, Zeny - .@total; + getitem .@item, .@amount; + mes "[Rune Merchant]"; + mes "Thank you."; + mes "Please come back again~!"; close; } -prontera,168,228,3 duplicate(runesale) Rune Salesman#1 853 +job3_rune01,90,62,3 duplicate(runesale) Rune Merchant#job3 853 +prontera,168,228,3 duplicate(runesale) Rune Merchant#prt 853 +// Rare Herb Merchants (Guillotine Cross) +//============================================================ job3_guil01,91,93,3 script Rare Herb Collector 49,{ - if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) { + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; @@ -151,27 +164,48 @@ job3_guil01,91,93,3 script Rare Herb Collector 49,{ } 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 am dealing in the herb called Izidor. If you are interested, you can buy them."; + 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; - set .@i, select("How can I buy them?:Exchange it with Animal Blood:Exchange it with a Bitter Herb:Exchange it with a Deadly Noxious Herb:Exchange it with a Frozen Rose:Exchange it with Ment:Exchange it with Hinalle")-1; - if (.@i == 0) { + set .@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 any of those items for 10,000 zeny: Animal Blood, Bitter Herb, Deadly Noxious Herb, Frozen Rose, Ment or Hinalle. "; + 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 I ask for money? That is just to pay a little respect to a collector like me. Ha ha ha..."; + 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[1],702,621,631,749,605,703; + setarray .@exchange[0],702,621,631,749,605,703; + set .@item, .@exchange[.@i]; + set .@price, 10000; + mes "[Rare Poison Herb Collector]"; - if (!countitem(.@exchange[.@i]) || Zeny < 10000) { - mes "Hey, try again after you've prepared all the requirements for the exchange."; + 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; + } + set .@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 "Thank you. I've received your payment."; - delitem .@exchange[.@i],1; - set Zeny, Zeny-10000; - getitem 709,1; + mes "[Rare Poison Herb Collector]"; + mes "Good. I've received the money and the special item."; + delitem .@item, .@amount; + set Zeny, Zeny - .@total; + getitem 709, .@amount; //Izidor close; } } @@ -180,8 +214,10 @@ job3_guil01,91,93,3 script Rare Herb Collector 49,{ close; } -gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{ - if (checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) { +// Point Merchants (Sorcerer) +//============================================================ +- script ::pss -1,{ + if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; @@ -189,11 +225,11 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{ mes "- after you lose some weight. -"; close; } - mes "[Point Salesman]"; + mes "[Point Merchant]"; mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?"; next; set .@i, select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1; - mes "[Point Salesman]"; + mes "[Point Merchant]"; if (.@i == 4) { mes "You can't find the stuff you need?"; close; @@ -205,7 +241,7 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{ mes "If you want to cancel, enter 0."; next; input .@amount; - mes "[Point Salesman]"; + mes "[Point Merchant]"; if (.@amount == 0) { mes "You've cancelled the trade."; close; @@ -223,6 +259,22 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer::pss 700,{ mes "Thank you very much. See you~!"; close; } -comodo,241,103,6 duplicate(pss) Point Salesman#1 700 -alberta,105,52,7 duplicate(pss) Point Salesman#2 700 -veins,202,128,6 duplicate(pss) Point Salesman#3 700 +gef_tower,105,172,5 duplicate(pss) Point Merchant#Sorcerer 700 +prt_in,131,66,0 duplicate(pss) Point Merchant#Prontera 700 +alberta,105,52,7 duplicate(pss) Point Merchant#Alberta 700 +aldebaran,133,114,5 duplicate(pss) Point Merchant#Aldebaran 700 +comodo,193,159,5 duplicate(pss) Point Merchant#Comodo 700 +geffen,129,49,5 duplicate(pss) Point Merchant#Geffen 700 +izlude,138,163,5 duplicate(pss) Point Merchant#Izlude 700 // Old coordinates: izlude (135,121) +izlude_a,138,163,5 duplicate(pss) Point Merchant#Izlude_a 700 +izlude_b,138,163,5 duplicate(pss) Point Merchant#Izlude_b 700 +izlude_c,138,163,5 duplicate(pss) Point Merchant#Izlude_c 700 +izlude_d,138,163,5 duplicate(pss) Point Merchant#Izlude_d 700 +malangdo,214,163,5 duplicate(pss) Point Merchant#Malangdo 700 +mora,115,118,3 duplicate(pss) Point Merchant#Mora 700 +ra_in01,256,273,3 duplicate(pss) Point Merchant#Rachel 700 +veins,202,128,5 duplicate(pss) Point Merchant#Veins 700 +dicastes01,207,200,5 duplicate(pss) Point Merchant#Dicastes 700 +manuk,261,206,3 duplicate(pss) Point Merchant#Manuk 700 +splendide,207,160,5 duplicate(pss) Point Merchant#Splendide 700 +mid_camp,224,237,3 duplicate(pss) Point Merchant#Midgard 700 |