- Rebranded NPC Information
- Optimized Poison Herb Salesman since an optimized version already exist. (Tested and Approved) git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15221 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
ad5a13c3e5
commit
7bd1a9bfb4
@ -1,259 +1,145 @@
|
||||
//===== eAthena Script =======================================
|
||||
//===== rAthena Script =======================================
|
||||
//= 3rd Item Seller
|
||||
//===== By: ==================================================
|
||||
//= Masao
|
||||
//= Mercurial
|
||||
//===== Current Version: =====================================
|
||||
//= 1.0
|
||||
//= 1.1
|
||||
//===== Compatible With: =====================================
|
||||
//= eAthena SVN
|
||||
//= 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::phsale 877,{
|
||||
|
||||
if(checkweight(1201,1) == 0 || MaxWeight - Weight < 20000)
|
||||
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<getarraysize(.herbs); set .x,.x+1)
|
||||
{
|
||||
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(!checkweight(.herbs[.x],.maxHerbs))
|
||||
{
|
||||
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 "[Poison Herb Salesman]";
|
||||
|
||||
mes .npcName$;
|
||||
mes "I am the professional";
|
||||
mes "poison herb seller.";
|
||||
mes "Which one do you want?";
|
||||
mes "They cost 4,000 zeny each!";
|
||||
mes "They cost "+.herbCost[0]+" zeny each!";
|
||||
set .herbType,select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit")-1;
|
||||
next;
|
||||
switch(select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit"))
|
||||
if(.herbType==(getarraysize(.herbs)-1))
|
||||
{
|
||||
case 1:
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "How many do you want? You can";
|
||||
mes "only buy a maximum of 2000ea";
|
||||
mes "and if you want to cancel, enter '0'.";
|
||||
next;
|
||||
input .@amount;
|
||||
if(.@amount == 0)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "You've cancelled the trade.";
|
||||
close;
|
||||
}
|
||||
else if(.@amount > 2000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the maximum";
|
||||
mes "amount and then try again.";
|
||||
close;
|
||||
}
|
||||
else if(Zeny < .@amount * 4000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
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,.@amount;
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Thank you. See you~!";
|
||||
close;
|
||||
case 2:
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "How many do you want? You can";
|
||||
mes "only buy a maximum of 2000ea";
|
||||
mes "and if you want to cancel, enter '0'.";
|
||||
next;
|
||||
input .@amount;
|
||||
if(.@amount == 0)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "You've cancelled the trade.";
|
||||
close;
|
||||
}
|
||||
else if(.@amount > 2000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the maximum";
|
||||
mes "amount and then try again.";
|
||||
close;
|
||||
}
|
||||
else if(Zeny < .@amount * 4000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the money you have,";
|
||||
mes "It doesn't seem like you have enough money.";
|
||||
close;
|
||||
}
|
||||
set Zeny,Zeny - .@amount * 4000;
|
||||
getitem 7933,.@amount;
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Thank you. See you~!";
|
||||
close;
|
||||
case 3:
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "How many do you want? You can";
|
||||
mes "only buy a maximum of 2000ea";
|
||||
mes "and if you want to cancel, enter '0'.";
|
||||
next;
|
||||
input .@amount;
|
||||
if(.@amount == 0)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "You've cancelled the trade.";
|
||||
close;
|
||||
}
|
||||
else if(.@amount > 2000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the maximum";
|
||||
mes "amount and then try again.";
|
||||
close;
|
||||
}
|
||||
else if(Zeny < .@amount * 4000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the money you have,";
|
||||
mes "It doesn't seem like you have enough money.";
|
||||
close;
|
||||
}
|
||||
set Zeny,Zeny - .@amount * 4000;
|
||||
getitem 7934,.@amount;
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Thank you. See you~!";
|
||||
close;
|
||||
case 4:
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "How many do you want? You can";
|
||||
mes "only buy a maximum of 2000ea";
|
||||
mes "and if you want to cancel, enter '0'.";
|
||||
next;
|
||||
input .@amount;
|
||||
if(.@amount == 0)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "You've cancelled the trade.";
|
||||
close;
|
||||
}
|
||||
else if(.@amount > 2000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the maximum";
|
||||
mes "amount and then try again.";
|
||||
close;
|
||||
}
|
||||
else if(Zeny < .@amount * 4000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the money you have,";
|
||||
mes "It doesn't seem like you have enough money.";
|
||||
close;
|
||||
}
|
||||
set Zeny,Zeny - .@amount * 4000;
|
||||
getitem 7935,.@amount;
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Thank you. See you~!";
|
||||
close;
|
||||
case 5:
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "How many do you want? You can";
|
||||
mes "only buy a maximum of 2000ea";
|
||||
mes "and if you want to cancel, enter '0'.";
|
||||
next;
|
||||
input .@amount;
|
||||
if(.@amount == 0)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "You've cancelled the trade.";
|
||||
close;
|
||||
}
|
||||
else if(.@amount > 2000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the maximum";
|
||||
mes "amount and then try again.";
|
||||
close;
|
||||
}
|
||||
else if(Zeny < .@amount * 4000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the money you have,";
|
||||
mes "It doesn't seem like you have enough money.";
|
||||
close;
|
||||
}
|
||||
set Zeny,Zeny - .@amount * 4000;
|
||||
getitem 7936,.@amount;
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Thank you. See you~!";
|
||||
close;
|
||||
case 6:
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "How many do you want? You can";
|
||||
mes "only buy a maximum of 2000ea";
|
||||
mes "and if you want to cancel, enter '0'.";
|
||||
next;
|
||||
input .@amount;
|
||||
if(.@amount == 0)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "You've cancelled the trade.";
|
||||
close;
|
||||
}
|
||||
else if(.@amount > 2000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the maximum";
|
||||
mes "amount and then try again.";
|
||||
close;
|
||||
}
|
||||
else if(Zeny < .@amount * 4000)
|
||||
{
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Please check the money you have,";
|
||||
mes "It doesn't seem like you have enough money.";
|
||||
close;
|
||||
}
|
||||
set Zeny,Zeny - .@amount * 4000;
|
||||
getitem 7937,.@amount;
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Thank you. See you~!";
|
||||
close;
|
||||
case 7:
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes .npcName$;
|
||||
mes "You can only buy";
|
||||
mes "1 Poison Kit and it costs 5,000 zeny.";
|
||||
mes "1 Poison Kit and it costs "+.herbCost[(getarraysize(.herbs)-1)]+" zeny.";
|
||||
mes "Will you buy it?";
|
||||
next;
|
||||
|
||||
switch(select("Yes, I will.:No, I won't."))
|
||||
{
|
||||
case 1:
|
||||
if(Zeny < 5000)
|
||||
{
|
||||
case 1:
|
||||
if(Zeny < .poisHerbCost)
|
||||
{
|
||||
next;
|
||||
mes .npcName$;
|
||||
mes "Please check the money you have.";
|
||||
mes "It doesn't seem like you have enough money.";
|
||||
close;
|
||||
}
|
||||
else
|
||||
{
|
||||
set Zeny,Zeny-.poisHerbCost;
|
||||
getitem .herbs[getarraysize(.herbs)-1],1;
|
||||
next;
|
||||
mes .npcName$;
|
||||
mes "Thank you. See you~!";
|
||||
close;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
next;
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Well, I see. See you~!";
|
||||
close;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mes .npcName$;
|
||||
mes "How many do you want? You can";
|
||||
mes "only buy a maximum of "+.maxHerbs+" ea";
|
||||
mes "and if you want to cancel, enter '0'.";
|
||||
input .herbsCount;
|
||||
if(.herbsCount<=0) // check if player canceled herb purchase
|
||||
{
|
||||
next;
|
||||
mes .npcName$;
|
||||
mes "You've cancelled the trade.";
|
||||
close;
|
||||
}
|
||||
else if(.herbsCount>.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;
|
||||
}
|
||||
set Zeny,Zeny - 5000;
|
||||
getitem 7931,1;
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Thank you. See you~!";
|
||||
close;
|
||||
case 2:
|
||||
mes "[Poison Herb Salesman]";
|
||||
mes "Well, I see. See you~!";
|
||||
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)
|
||||
@ -629,6 +515,7 @@ gef_tower,105,172,5 script Point Salesman#Sorcerer 700,{
|
||||
}
|
||||
}
|
||||
|
||||
morocc,190,96,4 duplicate(phsale) Poison Herb Salesman#1 877
|
||||
lhz_in02,16,205,4 duplicate(phsale) Poison Herb Salesman#2 877
|
||||
|
||||
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
|
Loading…
x
Reference in New Issue
Block a user