//===== rAthena Script ======================================= //= 3rd Item Seller //===== By: ================================================== //= Masao //= Mercurial //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== //= rAthena SVN //===== Description: ========================================= //= [Aegis Conversion] //= Sells some 3rd Job related Items. //===== Additional Comments: ================================= //= v1.1 Optimized Poison Herb Salesman NPC //= v1.0 First Version. //============================================================ job3_guil01,79,96,3 script Poison Herb Salesman::PHS 877,{ // We are unsure about agis script command equivalent please refer to 3rd_trader.sc line 3 //if( (countitem(1201)>=30000) || checkweight() ) for(set .x,0; .x.maxHerbs) // checks if herbs count exceeds maxHerbs limit { next; mes .npcName$; mes "Please check the maximum"; mes "amount and then try again."; close; } else if(.herbsCount+countitem(.herbs[.herbType]) > .maxItemStack) // Check item stack according to Aegis script { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } else { if(Zeny<(.herbsCount*.herbCost)) // Check if Zeny is enough { next; mes .npcName$; mes "Please check the money you have."; mes "It doesn't seem like you have enough money."; close; } else // all requirements are met give the item { set Zeny,Zeny-(.herbsCount*.herbCost); getitem .herbs[.herbType],.herbsCount; next; mes .npcName$; mes "Thank you. See you~!"; close; } } } OnInit: // Initialize Item Id's on script engine Init Event set .npcName$,"[Poison Herb Salesman]"; setarray .herbs[0],7932,7933,7934,7935,7936,7937,7931; setarray .herbCost[0],4000,4000,4000,4000,4000,4000,5000; set .maxHerbs,2000; set .poisHerbCost,5000; set .maxItemStack,30000; } job3_rune01,90,62,3 script Rune Salesman::runesale 853,{ if(checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } mes "[Rune Salesman]"; mes "Hey, do you need Runes?!"; mes "I sell all kinds of Rune Stones!"; mes "What kind of Rune do you want?"; next; switch(select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.")) { case 1: mes "[Rune Salesman]"; mes "High-quality Runes!"; mes "They cost 2,500 zeny each!"; mes "Tell me how many you want to buy"; mes "and remember, you can only"; mes "buy a maximum amount of 2000 ea!"; next; input .@amount; if(.@amount == 0) { mes "[Rune Salesman]"; mes "You're not buying? Go away!"; close; } else if(.@amount > 2000) { mes "[Rune Salesman]"; mes "Please check the maximum"; mes "amount and then come back to me again!"; close; } else if(Zeny < .@amount * 2500) { mes "[Rune Salesman]"; mes "Money! Money!"; mes "You are short of money!"; mes "Check the amount of money you have!!"; close; } set .@checkweight,.@amount * 100; if (MaxWeight < .@checkweight) { mes "[Rune Salesman]"; mes "You're not able to carry it, so why are you trying to buy it?!"; close; } set Zeny,Zeny - .@amount * 2500; getitem 12734,.@amount; mes "[Rune Salesman]"; mes "You can buy more again."; mes "So, see you later."; close; case 2: mes "[Rune Salesman]"; mes "Ordinary Rune Stones?"; mes "They cost 1,000 zeny each!"; mes "Tell me how many you want to buy"; mes "and remember, you can only"; mes "buy a maximum amount of 2000 ea!"; next; input .@amount; if(.@amount == 0) { mes "[Rune Salesman]"; mes "You're not buying? Go away!"; close; } else if(.@amount > 2000) { mes "[Rune Salesman]"; mes "Please check the maximum"; mes "amount and then come back to me again!"; close; } else if(Zeny < .@amount * 1000) { mes "[Rune Salesman]"; mes "Money! Money!"; mes "You are short of money!"; mes "Check the amount of money you have!!"; close; } set .@checkweight,.@amount * 100; if (MaxWeight < .@checkweight) { mes "[Rune Salesman]"; mes "You're not able to carry it, so why are you trying to buy it?!"; close; } set Zeny,Zeny - .@amount * 1000; getitem 12737,.@amount; mes "[Rune Salesman]"; mes "You can buy more again."; mes "So, see you later."; close; } } job3_guil01,91,93,3 script Rare Herb Collector 49,{ if(checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } if (Class == 4059 || Class == 4065) { 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."; next; switch(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")) { case 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. "; 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..."; close; case 2: if ((countitem(702) > 0) && (Zeny > 9999)) { mes "[Rare Poison Herb Collector]"; mes "Thank you. I've received your payment."; delitem 702,1; set Zeny,Zeny - 10000; getitem 709,1; close; } mes "[Rare Poison Herb Collector]"; mes "Hey, try again after you've prepared all the requirements for the exchange."; close; case 3: if ((countitem(621) > 0) && (Zeny > 9999)) { mes "[Rare Poison Herb Collector]"; mes "Thank you. I've received your payment."; delitem 621,1; set Zeny,Zeny - 10000; getitem 709,1; close; } mes "[Rare Poison Herb Collector]"; mes "Hey, try again after you've prepared all the requirements for the exchange."; close; case 4: if ((countitem(631) > 0) && (Zeny > 9999)) { mes "[Rare Poison Herb Collector]"; mes "Thank you. I've received your payment."; delitem 631,1; set Zeny,Zeny - 10000; getitem 709,1; close; } mes "[Rare Poison Herb Collector]"; mes "Hey, try again after you've prepared all the requirements for the exchange."; close; case 5: if ((countitem(749) > 0) && (Zeny > 9999)) { mes "[Rare Poison Herb Collector]"; mes "Thank you. I've received your payment."; delitem 749,1; set Zeny,Zeny - 10000; getitem 709,1; close; } mes "[Rare Poison Herb Collector]"; mes "Hey, try again after you've prepared all the requirements for the exchange."; close; case 6: if ((countitem(605) > 0) && (Zeny > 9999)) { mes "[Rare Poison Herb Collector]"; mes "Thank you. I've received your payment."; delitem 605,1; set Zeny,Zeny - 10000; getitem 709,1; close; } mes "[Rare Poison Herb Collector]"; mes "Hey, try again after you've prepared all the requirements for the exchange."; close; case 7: if ((countitem(703) > 0) && (Zeny > 9999)) { mes "[Rare Poison Herb Collector]"; mes "Thank you. I've received your payment."; delitem 703,1; set Zeny,Zeny - 10000; getitem 709,1; close; } mes "[Rare Poison Herb Collector]"; mes "Hey, try again after you've prepared all the requirements for the exchange."; 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; } gef_tower,105,172,5 script Point Salesman#Sorcerer 700,{ if(checkweight(1201,1) == 0 || MaxWeight - Weight < 20000) { mes "- Wait a minute !! -"; mes "- Currently you're carrying -"; mes "- too many items with you. -"; mes "- Please try again -"; mes "- after you loose some weight. -"; close; } mes "[Point Salesman]"; mes "Hello. I'm selling a catalyst that are called ^FF0000Points^000000 for Sorcerers. What would you like?"; next; switch(select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")) { case 1: mes "[Point Salesman]"; mes "You have chosen Scarlet Points."; mes "How many do you want?"; mes "If you want to cancel, enter 0."; next; input .@amount; if (.@amount == 0) { mes "[Point Salesman]"; mes "You've cancelled the trade."; close; } set .@po_weight,.@amount * 10; set .@tt_weight,MaxWeight - .@po_weight; set .@po_money,.@amount * 200; if (.@tt_weight > 0) { if (Zeny >= .@po_money) { set Zeny,Zeny - .@po_money; getitem 6360,.@amount; mes "[Point Salesman]"; mes "Thank you very much. See you~!"; close; } mes "[Point Salesman]"; mes "You don't seem to have enough money."; close; } mes "[Point Salesman]"; mes "You don't have enough space in your inventory to buy this amount."; close; case 2: mes "[Point Salesman]"; mes "You have chosen Lime Green Points."; mes "How many do you want?"; mes "If you want to cancel, enter 0."; next; input .@amount; if (.@amount == 0) { mes "[Point Salesman]"; mes "You've cancelled the trade."; close; } set .@po_weight,.@amount * 10; set .@tt_weight,MaxWeight - .@po_weight; set .@po_money,.@amount * 200; if (.@tt_weight > 0) { if (Zeny >= .@po_money) { set Zeny,Zeny - .@po_money; getitem 6363,.@amount; mes "[Point Salesman]"; mes "Thank you very much. See you~!"; close; } mes "[Point Salesman]"; mes "You don't seem to have enough money."; close; } mes "[Point Salesman]"; mes "You don't have enough space in your inventory to buy this amount."; close; case 3: mes "[Point Salesman]"; mes "You have chosen Indigo Points."; mes "How many do you want?"; mes "If you want to cancel, enter 0."; next; input .@amount; if (.@amount == 0) { mes "[Point Salesman]"; mes "You've cancelled the trade."; close; } set .@po_weight,.@amount * 10; set .@tt_weight,MaxWeight - .@po_weight; set .@po_money,.@amount * 200; if (.@tt_weight > 0) { if (Zeny >= .@po_money) { set Zeny,Zeny - .@po_money; getitem 6361,.@amount; mes "[Point Salesman]"; mes "Thank you very much. See you~!"; close; } mes "[Point Salesman]"; mes "You don't seem to have enough money."; close; } mes "[Point Salesman]"; mes "You don't have enough space in your inventory to buy this amount."; close; case 4: mes "[Point Salesman]"; mes "You have chosen Yellow Wish Points."; mes "How many do you want?"; mes "If you want to cancel, enter 0."; next; input .@amount; if (.@amount == 0) { mes "[Point Salesman]"; mes "You've cancelled the trade."; close; } set .@po_weight,.@amount * 10; set .@tt_weight,MaxWeight - .@po_weight; set .@po_money,.@amount * 200; if (.@tt_weight > 0) { if (Zeny >= .@po_money) { set Zeny,Zeny - .@po_money; getitem 6362,.@amount; mes "[Point Salesman]"; mes "Thank you very much. See you~!"; close; } mes "[Point Salesman]"; mes "You don't seem to have enough money."; close; } mes "[Point Salesman]"; mes "You don't have enough space in your inventory to buy this amount."; close; case 5: mes "[Point Salesman]"; mes "You can't find the stuff you need?"; close; } } morocc,190,96,4 duplicate(PHS) Poison Herb Salesman#moc 877 lhz_in02,16,205,4 duplicate(PHS) Poison Herb Salesman#lhz 877 prontera,168,228,3 duplicate(runesale) Rune Salesman#1 853