summaryrefslogblamecommitdiff
path: root/npc/re/merchants/3rd_trader.txt
blob: b63fca71c7f53c54d8468f72c042008640fc0bfc (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                                                              
                   
                                                              
                    






                                                              


                                           



                                                              
 



                                                                    





                                                      
         
                                     
                                    


                                          
             

                                                                                               
                      









                                                        
                






















                                                               
                      
         
                                 



                                           
 


                                                                                                                 
 



                                                                    



                                                    
                                                      

                      
                              
                                       

                                               
             
                                                                                   
                              
                       

                                                 

                                                    
                

                                                 

                                                     

                                              
                                         
                                         
                                          

                       
                            

                                                       


                              

                                                          

                      





                                                           

                      


                                                                                                 

                      
                                 



                                       
              
 

                                                                                
 

                                                              
                                                                
                                                                    



                                                    
                                                      

                      
                                                                                                          
                                                   
                                                                                                                                                                               
                     

                                                                                                                                                                                                                                     
                                                           
                                                                                                                                                                             

                                                           
                                                                                                                          
                              
                        



                                                                       
                                                           


















                                                                                                          

                                      


                                                                                  
                                                 
                                                       







                                                                                                                                                  



                                                                    



                                                    
                                                      

                      
                               
                                                                                                            
             
                                                                                                                                  
                               

                                                         
                      







                                                                           
                               

                                                  
                      


                                                           
                      

                                                   

                                                                                        
         
                                      


                                             
 


















                                                                                                                    
//===== Hercules Script ======================================
//= 3rd Item Seller
//===== By: ==================================================
//= Masao, Mercurial
//===== 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]
//============================================================

// 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. -";
		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;
	set .@i, select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
	mes "[Poison Herb Merchant]";
	if (.@i < 6) {
		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 "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;
}
job3_guil01,79,96,3	duplicate(phs)	Poison Herb Merchant	4_F_YUNYANG
morocc,191,94,4	duplicate(phs)	Poison Herb Merchant#moc	4_F_YUNYANG	//Official: (190,96) -> in a wall
lhz_in02,16,205,4	duplicate(phs)	Poison Herb Merchant#lhz	4_F_YUNYANG

// 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. -";
		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;
	set .@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!";
		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,";
	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;
	}
	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(.@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 - .@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(1201,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;
		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 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;
			set .@item, .@exchange[.@i];
			set .@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;
			}
			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 "[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;
		}
	}
	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	-1,{
	if (checkweight(1201,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;
	set .@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;
	}
	set Zeny, 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