Hercules Elf Bot - Jul 29, 2012 22:57
					
				
				
					Originally posted by [b]Nezd[/b]
Original script:
Problem: can't make 100 gems, NPC can't tell if you have less then you past in input label.
[CODE]
//===== rAthena Script =======================================
//= Gemstone trader
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= [Aegis Conversion]
//= Trade various colors of gemstones for other color gemstones.
//===== Additional Comments: =================================
//= 1.0 Rescripted to Aegis 10.3 standards. [L0ne_W0lf]
//= Any notes pertaining to the prior trader may be found
//= in the cities/payon.txt
//= 1.1 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
//= 1.2 Updated input with min/max values. [L0ne_W0lf]
//= Added a checkweight.
//============================================================
payon,173,238,5 script Jade#pay 754,{
if (checkweight(1201,1) == 0) {
  mes "^3355FFWait a second! Right now, you're carrying too many items with you. Please come back after putting some of your things into Kafra Storage.^000000";
  close;
}
mes "[Jade]";
mes "Bring me two";
mes "Gemstones of the";
mes "same color, and I will";
mes "change them to Gemstones";
mes "of a different color.";
next;
switch(select("Blue Gemstones into Red ones!:Red Gemstones into Yellow ones!:Yellow Gemstones into Blue ones!")) {
case 1: callsub S_TradeGems,717,716;
case 2: callsub S_TradeGems,716,715;
case 3: callsub S_TradeGems,715,717;
}
S_TradeGems:
if (countitem(getarg(0)) < 2) {
  mes "[Jade]";
  mes "Hah...!";
  mes "You're kidding me, right?";
  mes "I can't provide you with this";
  mes "service if you don't";
  mes "give me at least";
  mes "2 "+getitemname(getarg(0))+"s!";
  close;
}
else {
  set .@gems,countitem(getarg(0))/2;
  mes "[Jade]";
  mes "I believe I can create";
  mes "a total of " + .@gems + " " + getitemname(getarg(1)) + "s";
  mes "using the "+getitemname(getarg(0))+"s";
  mes "that you currently have.";
  mes "What do you want to do?";
  next;
  switch(select("Give me as many as you can.:I want to set the amount.:I quit.")) {
  case 1:
   delitem getarg(0),.@gems * 2;
   getitem getarg(1),.@gems;
   mes "[Jade]";
   mes "There you go.";
   mes "Feel free to come";
   mes "back any time.";
   mes "Hm, what's that look for?";
   mes "Is there something on my face?";
   close;
  case 2:
   mes "[Jade]";
   mes "So how many";
   mes "do you want?";
   mes "The maximum number";
   mes "that you can enter is 100.";
   next;
   while(1) {
	input .@input,0,101;
	if (.@input == 0) {
	 mes "[Jade]";
	 mes "None at all?";
	 mes "I guess you";
	 mes "changed your mind...";
	 close;
	}
	else if (.@input > 100) {
	 mes "[Jade]";
	 mes "Errm...";
	 mes "I asked you to enter";
	 mes "an amount no greater";
	 mes "than 100, remember...?";
	 next;
	}
	else {
	 break;
	}
   }
   if (.@gems > .@input) {
	delitem getarg(0),.@input * 2;
	getitem getarg(1),.@input;
	mes "[Jade]";
	mes "There you go.";
	mes "Feel free to come";
	mes "back any time.";
	mes "Hm, what's that look for?";
	mes "Is there something on my face?";
   }
   close;
  case 3:
   mes "[Jade]";
   mes "Sure, no problem.";
   mes "Come back any time.";
   close;
  }
}
}
[/CODE]
New code:
[CODE]
//===== rAthena Script =======================================
//= Gemstone trader
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.2
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= [Aegis Conversion]
//= Trade various colors of gemstones for other color gemstones.
//===== Additional Comments: =================================
//= 1.0 Rescripted to Aegis 10.3 standards. [L0ne_W0lf]
//= Any notes pertaining to the prior trader may be found
//= in the cities/payon.txt
//= 1.1 Corrected NPC names to fall within proper restrictions. [L0ne_W0lf]
//= 1.2 Updated input with min/max values. [L0ne_W0lf]
//= Added a checkweight.
//= 1.3 Updated two little errors. [Nezdeshniy]
//= Corrected input for 100 items and add check for number in input label.
//============================================================
payon,173,238,5 script Jade#pay 754,{
if (checkweight(1201,1) == 0) {
  mes "^3355FFWait a second! Right now, you're carrying too many items with you. Please come back after putting some of your things into Kafra Storage.^000000";
  close;
}
mes "[Jade]";
mes "Bring me two";
mes "Gemstones of the";
mes "same color, and I will";
mes "change them to Gemstones";
mes "of a different color.";
next;
switch(select("Blue Gemstones into Red ones!:Red Gemstones into Yellow ones!:Yellow Gemstones into Blue ones!")) {
case 1: callsub S_TradeGems,717,716;
case 2: callsub S_TradeGems,716,715;
case 3: callsub S_TradeGems,715,717;
}
S_TradeGems:
if (countitem(getarg(0)) < 2) {
  mes "[Jade]";
  mes "Hah...!";
  mes "You're kidding me, right?";
  mes "I can't provide you with this";
  mes "service if you don't";
  mes "give me at least";
  mes "2 "+getitemname(getarg(0))+"s!";
  close;
}
else {
  set .@gems,countitem(getarg(0))/2;
  set .@gems_check,countitem(getarg(0));
  mes "[Jade]";
  mes "I believe I can create";
  mes "a total of " + .@gems + " " + getitemname(getarg(1)) + "s";
  mes "using the "+getitemname(getarg(0))+"s";
  mes "that you currently have.";
  mes "What do you want to do?";
  next;
  switch(select("Give me as many as you can.:I want to set the amount.:I quit.")) {
  case 1:
   delitem getarg(0),.@gems * 2;
   getitem getarg(1),.@gems;
   mes "[Jade]";
   mes "There you go.";
   mes "Feel free to come";
   mes "back any time.";
   mes "Hm, what's that look for?";
   mes "Is there something on my face?";
   close;
  case 2:
   mes "[Jade]";
   mes "So how many";
   mes "do you want?";
   mes "The maximum number";
   mes "that you can enter is 100.";
   next;
   while(1) {
	input .@input,0,101;
	if (.@input == 0) {
	 mes "[Jade]";
	 mes "None at all?";
	 mes "I guess you";
	 mes "changed your mind...";
	 close;
	}
	else if (.@input > 100) {
	 mes "[Jade]";
	 mes "Errm...";
	 mes "I asked you to enter";
	 mes "an amount no greater";
	 mes "than 100, remember...?";
	 next;
	}
	else if ((.@input * 2 ) > .@gems_check) {
	 mes "[Jade]";
	 mes "Sorry, the amount of your Gemstones is less than needed...";
	 next;
	}
	else {
	 break;
	}
   }
   if (.@gems >= .@input) {
	delitem getarg(0),.@input * 2;
	getitem getarg(1),.@input;
	mes "[Jade]";
	mes "There you go.";
	mes "Feel free to come";
	mes "back any time.";
	mes "Hm, what's that look for?";
	mes "Is there something on my face?";
   }
   close;
  case 3:
   mes "[Jade]";
   mes "Sure, no problem.";
   mes "Come back any time.";
   close;
  }
}
}
[/CODE]
				
								
					
						This post has been edited by
						Nezd
						on Jul 29, 2012 23:00