summaryrefslogblamecommitdiff
path: root/npc/merchants/novice_exchange.txt
blob: a0e6535b2a7ae423d119577c7f546aa45c160c6f (plain) (tree)





























































































































































                                                                                                                                       
 
//===== eAthena Script ========================================
//= Novice Goods Exchanger
//===== By: ==================================================
//= ???, eAthena Team
//===== Current Version: =====================================
//= 1.1a
//===== Compatible With: =====================================
//= eAthena 1.0+
//===== Description: =========================================
//= Exchanges your cheap loot to Red Potions.
//= Official NPC.
//===== Additional Comments: =================================
//= 1.1 Made it as a function. U can add your own Merchs [Lupus]
//= 1.1a Fixed item select [KarLaeda]
//============================================================

function	script	F_NMerch	{
	mes "["+getarg(0)+"]";
	if((Weight*100)/MaxWeight >= 90){
		mes "You will exceed your weight limit if you exchange for the Red Potions.";
		close;
	}
	mes "Good day!";
	mes "Do you have any collection items such as "+getitemname(getarg(1))+" or "+getitemname(getarg(3))+"?";
	if(getarg(5))
		mes "...how about "+getitemname(getarg(5))+"?..";
	mes "Oh, yeah, I need those for something.";
	next;
	mes "["+getarg(0)+"]";
	mes "Of course I am not asking you to give those for free!";
	mes "How about... if I give you 1 Red";
	mes "Potion for "+getarg(2)+" "+getitemname(getarg(1))+" or "+getarg(4)+" "+getitemname(getarg(3))+"?";
	if(getarg(5))
		mes "Or "+getarg(6)+" "+getitemname(getarg(5))+"?";
	next;
	switch (select("Sure!:Think you're ripping me off...:No, thanks")) {
	case 1:
		mes "["+getarg(0)+"]";
		mes "So which item do you bring me?";
		mes ""+getitemname(getarg(1))+"?  "+getitemname(getarg(3))+"?";
		if(getarg(5))
			mes "Or "+getitemname(getarg(5))+"?";
		next;
		if(getarg(5))
			set @i,select(""+getitemname(getarg(1))+"",""+getitemname(getarg(3))+"",""+getitemname(getarg(5))+"","Cancel");
		else
			set @i,select(""+getitemname(getarg(1))+"",""+getitemname(getarg(3))+"","Cancel");
		if(@i==4 || (@i==3 && !getarg(5))) {
			mes "["+getarg(0)+"]";
			mes "Sure, no problem.";
			close;
		}
		set @item,getarg(@i*2-1);
		set @amount,getarg(@i*2);
		set @have,countitem(@item);
		if(@have < @amount) {
			mes "["+getarg(0)+"]";
			mes "Hey, where are all those";
			mes getitemname(@item)+" you promised?";
			close;
		}
		mes "["+getarg(0)+"]";
		mes "Okay, let me take a look at the stuff you brought.";
		next;
		set @max,@have / @amount;
		mes "["+getarg(0)+"]";
		mes "You have total "+@have+" "+getitemname(@item)+"...";
		mes "I can give you";
		mes "total "+@max+" Red Potion for those.";
		next;
		mes "["+getarg(0)+"]";
		mes "What do you say? Deal?";
		next;
		if(select("Deal.:No deal.")==2) {
			mes "["+getarg(0)+"]";
			mes "Bah~ whatever.";
			mes "Bah!";
			close;
		}
		mes "["+getarg(0)+"]";
		mes "You know the exact number of Red Potions";
		mes "you can receive for "+getitemname(@item)+", don't you?";
		next;
		mes "["+getarg(0)+"]";
		mes "You can get Red Potions";
		mes "from minimum 1 to maximum 100 at once.";
		mes "If you change your mind, enter '0'";
		mes "to cancel.";
		while(1) {
			next;
			input @val;
			if(@val<0 || @val>100) {
				mes "["+getarg(0)+"]";
				mes "Uh oh, the number you entered";
				mes "seemed incorrect.";
				mes "You'd better check how many Red";
				mes "Potions you can get.";
				continue;
			}
			break;
		}
		mes "["+getarg(0)+"]";
		if(@val == 0) {
			mes "What...how the hell did you even";
			mes "bother to talk to me?";
			mes "Leave, I don't deal with whimsical";
			mes "people.";
			close;
		}
		if(@val > @max) {
			mes "Uh oh, the number you entered";
			mes "seemed incorrect.";
			mes "You'd better check how many Red";
			mes "Potions you can get.";
			close;
		}
		delitem @item,@amount*@val;
		getitem 501,@val;
		mes "There you go!";
		mes "Thanks, it was a good deal.";
		close;
	case 2:
		mes "["+getarg(0)+"]";
		mes "Did you say I am ripping you off?!";
		mes "You got to know how ignorant that comment was!";
		next;
		mes "["+getarg(0)+"]";
		mes "When you check the price of each item,";
		mes "I am doing a losing business.";
		mes "If you don't want to do then, fine!";
		close;
	case 3:
		mes "["+getarg(0)+"]";
		mes "Hah, no problem.";
		mes "Bah!";
		close;
	}
}

prontera.gat,123,102,5	script	Merchant#1	85,{
	callfunc "F_NMerch","Merchant",935,5,914,10,909,10;
}

geffen.gat,173,88,5	script	Merchant#2	85,{
	callfunc "F_NMerch","Merchant",935,5,915,6,909,10;
}

morocc.gat,180,259,3	script	Merchant#3	85,{
	callfunc "F_NMerch","Merchant",935,5,916,7,909,10;
}

aldebaran.gat,152,63,5	script	Merchant#4	85,{
	callfunc "F_NMerch","Merchant",955,1,916,7,909,10;
}

payon.gat,200,134,5	script	Merchant#5	85,{
	//we remove 3rd item, by adding 0,0
	callfunc "F_NMerch","Merchant",902,6,909,10,0,0;
}