Explorar el Código

- More optimization of custom folder.
- Removed Fredzilla's duping auction script (no need for it since we have official auction system).
- Removed 'Temp Gefenia Warper' because we have 'The Sign Quest'.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13213 54d463be-8e91-2dee-dedb-b68131a5f0ec

Kisuka hace 16 años
padre
commit
0264d62651

+ 0 - 563
npc/custom/Auctioneer.txt

@@ -1,563 +0,0 @@
-//===== eAthena Script ======================================================================
-//= 1. Auctioneer
-//= 2. Auction Helping (Gives info only, but still good to have in)
-//===== Original By =========================================================================
-//= Fredzilla
-//===== Helped By ===========================================================================
-//= Not one quite yet, but you never know ;)
-//===== Current Version: ====================================================================
-//= 1.0 (Beta) < Thats means it is in testing
-//===== Compatible With: ====================================================================
-//= Any eAthena, that also has a script_athena.conf
-//===== Description: ========================================================================
-//= Lets a people place items into an auction, max of 10 items per round
-//= People can bid on them item
-//= Then buy the items, and sellers pickup there money
-//===== Comments and Credits ===========================================================
-//= This script would not have been made possible if it was not for "Maeki Rika"
-//= My praise goes out to her for finding out all the things we can do with the
-//= current system that eAthena uses
-//=
-//= More comments are listed down the page, in a attempt to explain what is going on in each
-//= section of the script
-//=
-//= This script is currently in testing, and any loss of items will, not only need to be 
-//= reported inside the thread I made for this script, but be replaced by GM if proof was given :D
-//===========================================================================================
-
-prontera,153,193,5	script	Auctioneer	807,{
-	mes "[Auctioneer]";
-	set @num,0;
-// These few line below are to recover item that would be lost due to a new auction starting
-L_RNameLoop:
-	if(strcharinfo(0)==$ANamesB$[@num] && $paidB[@num]==0) goto L_RBackup;
-	set @num,@num+1;
-	if(@num<10) goto L_RNameLoop;
-	if($Auction==1) goto L_Register;
-	if($Auction==2) goto L_Bid;
-	if($Auction==3) goto L_PayPickup;
-
-// After a server restart, and no auction value is set, it will run this
-// People who placed items in there before the restart should still be to retrieve there items
-
-	mes "You are able to sell and buy things inside the auction, unfortunately nothing has been started, you need to wait for the auction to start";
-	mes "No items lost will be given back, please remember you used this at your own risk";
-	next;
-	mes "[Auctioneer]";
-	mes "I am very sorry if you have lost items";
-	close;
-
-// If the Auction has started, it will run this, during this time items can be registered and registered items retrieved
-
-L_Register:
-	mes "Welcome to the auction, you may register you items at this time";
-	next;
-	set @num,0;
-L_NameLoop:
-	if(strcharinfo(0)==$ANames$[@num]) goto L_Already;
-	set @num,@num+1;
-	if(@num<10) goto L_NameLoop;
-	if(getarraysize($AItems)==10) goto L_AFull;
-	menu "I want to register an item now",L_IRegister,"I don't want to leave an item",-;
-L_End:
-	mes "[Auctioneer]";
-	mes "Ok, come back whenever";
-	close;
-L_IRegister:
-	mes "[Auctioneer]";
-	mes "Listed below is the first 10 items you have on you now";
-	mes "What do you want to register?";
-	next;
-	set @array,0;
-	set @item,500;
-//	set @loopcount,0;
-L_ILoop:
-//	set @loopcount,@loopcount+1;
-//	debugmes @loopcount;
-	set @item,@item+1;
-	if(@item>=13005) goto L_Menu;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	set @item,@item+1;
-	if(countitem(@item)>0) set @item2[@array],@item;
-	if(countitem(@item)>0) set @array,@array+1;
-	if(@array==10) goto L_Menu;
-	goto L_ILoop;
-L_Menu:
-	menu getitemname(@item2[0]),-,getitemname(@item2[1]),-,getitemname(@item2[2]),-,getitemname(@item2[3]),-,getitemname(@item2[4]),-,getitemname(@item2[5]),-,getitemname(@item2[6]),-,getitemname(@item2[7]),-,getitemname(@item2[8]),-,getitemname(@item2[9]),-,"Next Page",L_WipeLoop;
-	set @setitem,@item2[@menu-1];
-	set @num,0;
-L_SorryLoop:
-	set @num,@num+1;
-	if(@menu==@num && @setitem == 0) goto L_Sorry;
-	if(@num==10) goto L_FinalReg;
-	goto L_SorryLoop;
-L_FinalReg:
-	mes "[Auctioneer]";
-	mes "Please remember that if this item does contain cards, or is crafted, these distinctions will be lost when it is put into the auction";
-	mes "This also means if you get the item back, that this applies to, you will have lost out";
-	mes " ";
-	mes "So you want to register your "+getitemname(@setitem);
-	next;
-	menu "Yes please",-,"No",L_End;
-	mes "[Auctioneer]";
-	mes "Ok I will register this item now";
-	next;
-	set @amount,1;
-	if(countitem(@setitem)==1) goto L_FinalInput;
-	mes "[Auctioneer]";
-	mes "Wait a minute it seems you have more than one of that item, please enter the ammount you want to put in the aution";
-	next;
-	input @amount;
-	if(countitem(@setitem)<@amount) goto L_NotEnough;
-L_FinalInput:
-	set $AItems[$array],@setitem;
-	set $ANames$[$array],strcharinfo(0);
-	set $AAmount[$array],@amount;
-	set $array,$array+1;
-	delitem @setitem,@amount;
-	mes "[Auctioneer]";
-	mes "You item has been taken into storage, ready for sale, the auction will begin soon, watch for the announcment";
-	close;
-L_AFull:
-	mes "[Auctioneer]";
-	mes "Oh, sorry, it seems my auction is full this time round, please try in the next one";
-	close;
-L_WipeLoop:
-	deletearray @item2[0],10;
-	set @array,0;
-	goto L_ILoop;
-L_Sorry:
-	mes "[Auctioneer]";
-	mes "It seems that is all you have to offer me, come back when you know what you want to sell";
-	close;
-L_Already:
-	mes "[Auctioneer]";
-	mes "It seems you already have have an item registered here, would you like to retrieve your item?";
-	next;
-	menu "Yes",-,"No",L_End;
-	getitem $AItems[@num],$AAmount[@num];
-L_AItemsLoop:
-	set $AItems[@num],$AItems[@num+1];
-	set $ANames$[@num],$ANames$[@num+1];
-	set $AAmount[@num],$AAmount[@num+1];
-	set @num,@num+1;
-	if(@num<10) goto L_AItemsLoop;
-	set $array,$array-1;
-	set @num,0;
-	mes "[Auctioneer]";
-	mes "Ok, all items present and acounted for, have a nice day";
-	close;
-L_NotEnough:
-	mes "[Auctioneer]";
-	mes "Seems you don't have that many "+getitemname(@setitem)+"'s";
-	close;
-// If the Auction has enterd phase 2, it will run this, during this time items you can bid on registered
-// No items can be retrieved during this time, they are now stuck
-
-L_Bid:
-	mes "What would you like to bid on?";
-	next;
-	set @num,0;
-L_MenuLoop:
-	set @menu$[@num],$AAmount[@num]+" x "+getitemname($AItems[@num])+" "+$bid[@num]+"z";
-	set @num,@num+1;
-	if($AItems[@num]!=0) goto L_MenuLoop;
-	menu 
-	@menu$[0],-,
-	@menu$[1],-,
-	@menu$[2],-,
-	@menu$[3],-,
-	@menu$[4],-,
-	@menu$[5],-,
-	@menu$[6],-,
-	@menu$[7],-,
-	@menu$[8],-,
-	@menu$[9],-;
-	mes "[Auctioneer]";
-	set @num,@menu-1;
-	if(strcharinfo(0)==$ANames$[@num]) goto L_CantBid;
-L_ReBid:
-	mes "You are currently bidding on "+$AAmount[@num]+" x "+getitemname($AItems[@num]);
-	mes "The current bid is at "+$bid[@num]+"z";
-	mes "This was made by "+$bidders$[@num];
-	if($bidders$[@num]==strcharinfo(0)) goto L_AlreadyBid;
-	mes "How much do you want to bid yourself";
-	mes "(Use 0 to cancel at this point)";
-	next;
-	input @bid;
-	if(@bid<=0) goto L_End;
-	if(zeny<@bid) goto L_LowZeny;
-	if(@bid<$bid[@num]) goto L_LowBid;
-	mes "[Auctioneer]";
-	mes "You are about to bid "+@bid+"z for "+$AAmount[@num]+" x "+getitemname($AItems[@num]);
-	mes "Are you sure?";
-	next;
-	menu "Yes",-,"No",L_End;
-	set $bid[@num],@bid;
-	set $bidders$[@num],strcharinfo(0);
-	mes "[Auctioneer]";
-	mes "Your bid has been entered";
-	close;
-L_LowZeny:
-	mes "[Auctioneer]";
-	mes "Sorry you need to show me that amount as proof you could pay, if you do win";
-	mes "Please either get more money, or bid lower";
-	close;
-L_CantBid:
-	mes "Sorry, you can't bid on your own lots";
-	close;
-L_LowBid:
-	mes "[Auctioneer]";
-	mes "Your bid seems lower than the current one, try entering a higher ammount of zeny";
-	next;
-	mes "[Auctioneer]";
-	goto L_ReBid;
-L_AlreadyBid:
-	mes "Hey wait, that is you, you can't bid again";
-	close;
-// If the Auction has entered phase 3, it will run this
-// During this time, items that have been bid on can be bought
-// Items not bid on can be picked back up by the seller
-// And if any of the items have been bought, and are paid for, seller can pick up their money
-
-L_PayPickup:
-	mes "The auction has now ended";
-	mes "What would you like to do?";
-	next;
-	menu "Check for items I have sold",-,"Check for items I have won",L_Won,"Nothing",L_End;
-
-// Check starts here for if you have sold anything during this auction
-
-	set @num,0;
-L_SoldLoop:
-	if($ANames$[@num]==strcharinfo(0)) goto L_Sold;
-	set @num,@num+1;
-	if(@num<10) goto L_SoldLoop;
-	mes "[Auctioneer]";
-	mes "Sorry it seems you have either picked up all you items, money";
-	mes "or you didn't register any items in this auction";
-	close;
-L_Sold:
-	mes "[Auctioneer]";
-	if($paid[@num]==3) goto L_Returned;
-	mes "Ah I see here, you sold your "+$AAmount[@num]+" x "+getitemname($AItems[@num]);
-	mes "Lets see here it sold for";
-	next;
-	if($bid[@num]==0) goto L_GiveBack;
-	if($paid[@num]==2) goto L_AlreadyPaid;
-	mes "[Auctioneer]";
-	mes $bid[@num]+"z and "+$bidders$[@num]+" bought it from you";
-	if($paid[@num]!=1) goto L_NoMoney;
-	mes "They have fully paid for it, so here is your money";
-	next;
-	set zeny,zeny+$bid[@num];
-	set $paid[@num],2;
-	goto L_End;
-L_AlreadyPaid:
-	mes "[Auctioneer]";
-	mes "Hmm, seems you already have you money for this lot, not trying to con me are you?";
-	close;
-L_Returned:
-	mes "[Auctioneer]";
-	mes "Seems we returned you item already";
-	close;
-L_GiveBack:
-	mes "[Auctioneer]";
-	mes "Seems no-one wanted your item(s)";
-	mes "So you can have them back now";
-	getitem $AItems[@num],$AAmount[@num];
-	set $paid[@num],3;
-	close;
-L_NoMoney:
-	mes "Sorry to say this but they haven't paid this yet";
-	mes "You can go and talk to them now, or you can wait";
-	mes "If they haven't paid by the time the next Auction starts come back to me to retrieve your item(s)";
-	close;
-
-// Check starts here for if you won any items during this auction, futher options follow
-
-L_Won:
-	set @num,0;
-	mes "[Auctioneer]";
-L_WonLoop:
-	if($bidders$[@num]==strcharinfo(0)) goto L_Winner;
-L_CarryOn:
-	set @num,@num+1;
-	if(@num<10) goto L_WonLoop;
-	mes "Sorry you didn't win any of the lots, please try again next time";
-	close;
-L_Winner:
-	if($paid[@num]>0) goto L_CarryOn;
-	mes "Well it does seem you have won an item";
-	mes "You won "+$AAmount[@num]+" x "+getitemname($AItems[@num]);
-	mes "And you bid "+$bid[@num]+"z for this lot";
-	mes "What do you want to do now?";
-	next;
-
-// At this point they can choose from 3 options, to Buy the current lot
-// see the next one they might have won, or give up that lot
-
-	menu "Buy this lot",-,"See Next Lot you won",L_CarryOn,"Relinquish this lot",L_Back;
-	if(zeny<$bid[@num]) goto L_2lowzeny;
-	set zeny,zeny-$bid[@num];
-	getitem $AItems[@num],$AAmount[@num];
-	set $paid[@num],1;
-	mes "[Auctioneer]";
-	mes "Our transaction is completed";
-	mes "See you again soon";
-	close;
-L_2lowzeny:
-	mes "[Auctioneer]";
-	mes "Sorry it seems you don't have enough zeny on you, please acquire more";
-	close;
-L_Back:
-	mes "[Auctioneer]";
-	mes "Are you sure you want to give up this lot?";
-	next;
-	menu "Yes",-,"No",L_End;
-	set $bid[@num],0;
-	set $bidders$[@num],"no-one";
-	mes "[Auctioneer]";
-	mes "It is done, you might want to tell "+$ANames$[@num]+" they can come and pickup his item(s)";
-	close;	
-	
-// All the times that will start the Auction
-
-OnClock0100:
-OnClock0400:
-OnClock0700:
-OnClock1000:
-OnClock1300:
-OnClock1600:
-OnClock1900:
-OnClock2200:
-// Starting Backup
-	copyarray $AItemsB[0],$AItems[0],10;
-	copyarray $ANamesB$[0],$ANames$[0],10;
-	copyarray $AAmountB[0],$AAmount[0],10;
-	copyarray $paidB[0],$paid[0],10;
-// End backup - Start Wiping
-	deletearray $paid[0],10;
-	deletearray $bid[0],10;
-	deletearray $bidders$[0],10;
-	deletearray $AItems[0],10;
-	deletearray $ANames$[0],10;
-	deletearray $AAmount[0],10;
-	set $array,0;
-// End Wiping - Begin Announce + Phase setting
-	announce "Registration time has begun, see the Auctioneer to register your items",0;
-	cleararray $bidders$[0],"no-one",10;
-	set $Auction,1;
-	end;
-
-// All the times that will start the bidding section
-
-OnClock0200:
-OnClock0500:
-OnClock0800:
-OnClock1100:
-OnClock1400:
-OnClock1700:
-OnClock2000:
-OnClock2300:
-	if($Auction==0) end;
-	announce "Registration time has ended, time for the biding to begin",0;
-	set $Auction,2;
-	initnpctimer;
-	end;
-
-// All the times that will start the last phase, buying and seller, and item retrieval
-
-OnClock0300:
-OnClock0600:
-OnClock0900:
-OnClock1200:
-OnClock1500:
-OnClock1800:
-OnClock2100:
-OnClock0000:
-	if($Auction==0) end;
-	announce "Bidding time has ended, see the Auctioneer to get your items, or money",0;
-	set $Auction,3;
-	end;
-
-// On the start of the server it will reset the Auction state, but not the items it contains
-// so people still have have a chance to retrieve there lost items
-
-OnInit:
-	copyarray $AItemsB[0],$AItems[0],10;
-	copyarray $ANamesB$[0],$ANames$[0],10;
-	copyarray $AAmountB[0],$AAmount[0],10;
-	copyarray $paidB[0],$paid[0],10;
-	deletearray $paid[0],10;
-	deletearray $bid[0],10;
-	deletearray $bidders$[0],10;
-	deletearray $AItems[0],10;
-	deletearray $ANames$[0],10;
-	deletearray $AAmount[0],10;
-	set $array,0;
-	set $Auction,0;
-	end;
-
-// All below is for anouncing the items in this auction, if there are none it will say so
-// and if there are none in there at the start of phase 2 it will reset the auctions state
-// This is to stop the auction ending message, and will only start again when it reachs phase 1 again
-
-OnTimer5000:
-	announce "Today in our auction we have",0;
-	end;
-OnTimer7000:
-	if($AItems[0]==0) setnpctimer 25001;
-	if($AAmount[0]==1) announce "A lovely "+getitemname($AItems[0])+" left by "+$ANames$[0],0; 
-	if($AAmount[0]>1) announce $AAmount[0]+" lovely "+getitemname($AItems[0])+" left by "+$ANames$[0],0;
-	end;
-OnTimer9000:
-	if($AItems[1]==0) setnpctimer 25001;
-	if($AAmount[1]==1) announce "A great "+getitemname($AItems[1])+" left by "+$ANames$[1],0;
-	if($AAmount[1]>1) announce $AAmount[1]+" great "+getitemname($AItems[1])+" left by "+$ANames$[1],0;
-	end;
-OnTimer11000:
-	if($AItems[2]==0) setnpctimer 25001;
-	if($AAmount[2]==1) announce "A excellent "+getitemname($AItems[2])+" left by "+$ANames$[2],0;
-	if($AAmount[2]>1) announce $AAmount[2]+" excellent "+getitemname($AItems[2])+" left by "+$ANames$[2],0;
-	end;
-OnTimer13000:
-	if($AItems[3]==0) setnpctimer 25001;
-	if($AAmount[3]==1) announce "A superb "+getitemname($AItems[3])+" left by "+$ANames$[3],0;
-	if($AAmount[3]>1) announce $AAmount[3]+" superb "+getitemname($AItems[3])+" left by "+$ANames$[3],0;
-	end;
-OnTimer15000:
-	if($AItems[4]==0) setnpctimer 25001;
-	if($AAmount[4]==1) announce "A terrific "+getitemname($AItems[4])+" left by "+$ANames$[4],0;
-	if($AAmount[4]>1) announce $AAmount[4]+" terrific "+getitemname($AItems[4])+" left by "+$ANames$[4],0;
-	end;
-OnTimer17000:
-	if($AItems[5]==0) setnpctimer 25001;
-	if($AAmount[5]==1) announce "A wonderful "+getitemname($AItems[5])+" left by "+$ANames$[5],0;
-	if($AAmount[5]>1) announce $AAmount[5]+" wonderful "+getitemname($AItems[5])+" left by "+$ANames$[5],0;
-	end;
-OnTimer19000:
-	if($AItems[6]==0) setnpctimer 25001;
-	if($AAmount[6]==1) announce "A pretty "+getitemname($AItems[6])+" left by "+$ANames$[6],0;
-	if($AAmount[6]>1) announce $AAmount[6]+" pretty "+getitemname($AItems[6])+" left by "+$ANames$[6],0;
-	end;
-OnTimer21000:
-	if($AItems[7]==0) setnpctimer 25001;
-	if($AAmount[7]==1) announce "A sweet "+getitemname($AItems[7])+" left by "+$ANames$[7],0;
-	if($AAmount[7]>1) announce $AAmount[7]+" sweet "+getitemname($AItems[7])+" left by "+$ANames$[7],0;
-	end;
-OnTimer23000:
-	if($AItems[8]==0) setnpctimer 25001;
-	if($AAmount[8]==1) announce "A stunning "+getitemname($AItems[8])+" left by "+$ANames$[8],0;
-	if($AAmount[8]>1) announce $AAmount[8]+" stunning "+getitemname($AItems[8])+" left by "+$ANames$[8],0;
-	end;
-OnTimer25000:
-	if($AItems[9]==0) end;
-	if($AAmount[9]==1) announce "A fine "+getitemname($AItems[9])+" left by "+$ANames$[9],0;
-	if($AAmount[9]>1) announce $AAmount[9]+" fine "+getitemname($AItems[9])+" left by "+$ANames$[9],0;
-OnTimer27000:
-	if($AItems[0]!=0) announce "That is all the items we have this time round, so get bidding",0;
-	if($AItems[0]==0) announce "Seems there are no items this time round",0;
-	if($AItems[0]==0) set $Auction,0;
-	stopnpctimer;
-	setnpctimer 0;
-	end;
-
-// this is only be run if you own any items left over, not paid for, from the last auction, or the server failed, and items are left over
-
-L_RBackup:
-	mes "You seem to have items left over from the last auction, here you go, have it back";
-	next;
-	getitem $AItemsB[@num],$AAmountB[@num];
-L_BItemsLoop:
-	set $AItemsB[@num],$AItemsB[@num+1];
-	set $ANamesB$[@num],$ANamesB$[@num+1];
-	set $AAmountB[@num],$AAmountB[@num+1];
-	set @num,@num+1;
-	if(@num<10) goto L_BItemsLoop;
-	mes "[Auctioneer]";
-	mes "Have a nice day";
-	close;
-}
-
-// Only for display purposes, and telling people info about the auction
-// Can also be used for finding out what phase the auction is in
-
-prontera,158,193,3	script	Auction Helper	833,{
-	mes "[Auction Helper]";
-	set @num,0;
-	if($Auction==0 && $AItemsB[@num]!=0) goto L_ItemRecover;
-	if(($Auction==1 || $Auction ==2) && $AItems[@num]!=0) goto L_LLoop;
-	if($Auction==3 && $AItems[@num]!=0) goto L_Win;
-	mes "Ok Currently we have nothing in the auction.";
-	mes "Please return at the correct time.";
-	close;
-L_LLoop:
-	mes "Ok Currently we have :-";
-L_Loop:
-	mes $ANames$[@num]+" with "+$AAmount[@num]+" x "+getitemname($AItems[@num])+"('s)";
-	set @num,@num+1;
-	if($AItems[@num]==0) close;
-	if(@num<10) goto L_Loop;
-	close;
-L_ItemRecover:
-	mes "Seems there was a problem, and the auction ended prematurely.";
-	mes "This means we still have :-";
-L_BLoop:
-	if($paid[@num]==0) mes $ANamesB$[@num]+" with "+$AAmountB[@num]+" x "+getitemname($AItemsB[@num])+"('s)";
-	set @num,@num+1;
-	if($AItems[@num]==0) close;
-	if(@num<10) goto L_BLoop;
-	close;
-L_Win:
-	mes "The Auction is in the last stage, at this point you can :-"; 
-	mes " * buy your items";
-	mes " * Pick-up you money";
-	mes "(or if you were unlucky)";
-	mes " * Pick-up unsold items";
-	next;
-	mes "[Auction Helper]";
-	mes "Here is a list of Sellers and Winners";
-	set @num,0;
-L_Loop2:
-	mes $ANames$[@num]+" with "+$AAmount[@num]+" "+getitemname($AItems[@num])+"('s), won by "+$bidders$[@num]+" for "+$bid[@num]+"z";
-	set @num,@num+1;
-	if($AItems[@num]==0) close;
-	if(@num<10) goto L_Loop2;
-	close;
-
-}

+ 32 - 67
npc/custom/breeder.txt

@@ -14,75 +14,40 @@
 //= 1.3 Simplified the checks of job [Silentdragon]
 //= 1.3a Fixed a Typo Error. [Samuray22]
 //	-Thanks to ~AnnieRuru~.
+//= 1.4 Optimized Script. No need for 50 million Labels. [Spre]
 //============================================================ 
-
-
-prontera,122,200,1	script	Universal Rental Npc	726,{
+ 
+prontera,124,201,1	script	Universal Rental Npc	726,{
 	mes "[Universal Rental Npc]";
 	mes "Hi, here you can rent Carts, Falcons or Pecopecos.";
 	next;
-
-L_Menu:
-	menu "Rent a Cart",L_Cart,"Rent a Falcon",L_Falcon,"Rent a Pecopeco",L_Peco,"Quit",L_Quit;
-	close;
-
-L_Cart:
-	if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0) goto L_Cart_Ok;
-	mes "[Universal Rental Npc]";
-	mes "Sorry " + strcharinfo(0) + ", but I only rent carts to people with the Merchant job root, who have enough skills to handle a cart.";
-	close;
-
-L_Cart_Ok:
-	if(getskilllv("MC_PUSHCART")<1) goto L_Need_Skill;
-	setcart;
-	goto L_Quit2;
-
-L_Need_Skill:
-	mes "[Universal Rental Npc]";
-	mes "Sorry you don't have the required skill to rent a cart.";
-	close;
-
-L_Falcon:
-	if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0) goto L_Falc;
-	if(getskilllv("HT_FALCON")<1) goto L_Need_Skill2;
-
-	mes "[Universal Rental Npc]";
-	mes "Sorry " + strcharinfo(0) + ", but I only rent falcons to Hunters and Snipers who the ability to handle 'em.";
-	close;
-
-L_Falc:
-	setfalcon;
-	goto L_Quit2;
-
-L_Need_Skill2:
-	mes "[Universal Rental Npc]";
-	mes "Sorry you don't have the required skill to own a Falcon.";
-	close;
-
-L_Peco:
-	if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0) goto L_Peco_Ok;
-	if(getskilllv("KN_RIDING")<1) goto L_Need_Skill3;
-
-	mes "[Universal Rental Npc]";
-	mes "Sorry " + strcharinfo(0) + ", but I only rent Pecopecos to Knights and Crusaders who have the ability to handle 'em.";
-	close;
-
-L_Peco_Ok:
-	setriding;
-	goto L_Quit2;
-
-L_Need_Skill3:
-	mes "[Universal Rental Npc]";
-	mes "Sorry you don't have the required skill to ride a Peco Peco.";
-	close;
-
-L_Quit:
-	mes "[Universal Rental Npc]";
-	mes strcharinfo(0) + ", please come back when you are ready to rent something.";
-	close;
-
-L_Quit2:
-	mes "[Universal Rental Npc]";
-	mes strcharinfo(0) + ", please come again when you want another...";
-	close;
+	switch(select("Cart:Falcon:Peco")) {
+		case 1:
+			if((BaseClass == Job_Merchant || BaseJob == Job_SuperNovice) && checkcart() == 0 && getskilllv("MC_PUSHCART")>0) {
+				setcart;
+				close;
+			}else{
+				mes "[Universal Rental Npc]";
+				mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
+				close;
+			}
+		case 2:
+			if(BaseJob != Job_Archer && BaseClass == Job_Archer && checkfalcon() == 0 && getskilllv("HT_FALCON")>0) {
+				setfalcon;
+				close;
+			}else{
+				mes "[Universal Rental Npc]";
+				mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
+				close;
+			}					
+		case 3:
+			if (BaseJob != Job_Swordman && BaseClass == Job_Swordman && checkriding() == 0 && getskilllv("KN_RIDING")>0) {
+				setriding;
+				close;
+			}else{
+				mes "[Universal Rental Npc]";
+				mes "Sorry " + strcharinfo(0) + ", Please make sure you are the required job and have the required skill.";
+				close;
+			}
+	}
 }

+ 0 - 34
npc/custom/gefenia.txt

@@ -1,34 +0,0 @@
-//===== eAthena Script =======================================
-//= Gefenia Warper Script
-//===== By: ==================================================
-//= Darkchild (1.0)
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Any Athena Version; RO Episode 6+
-//===== Description: =========================================
-//= Temp Warper to Gefenia
-//===== Additional Comments: =================================
-//= IF you know how you SHOULD get there then please tell me
-//= there's OFFICIAL The Sign quest
-//============================================================
-
-
-prontera,154,198,5	script	Geovani	805,{
-	mes "[Geovani]";
-	mes "Hi there my friend,";
-	mes "A while ago a very wise man taught me something.";
-	next;
-	mes "[Geovani]";
-	mes "He taught me how to warp people";
-	mes "And yesterday i finally mastered it!!";
-	next;
-	mes "[Geovani]";
-	mes "Want me to show you?";
-	mes "I can warp you to Gefenia, the old ruins of the rebuild city, Geffen";
-	next;
-	menu "Sure, Warp Me ;)",Mwarpme,"Nah, Don't Try It On me",-;
-	close;
-Mwarpme:
-	warp "gefenia01",	40,	103;	close;
-}

+ 12 - 13
npc/custom/healers/heal.txt

@@ -3,38 +3,37 @@
 //===== By: ==================================================
 //= Lotsa People (1.x)
 //===== Current Version: =====================================
-//= 3.0
+//= 3.1
 //===== Compatible With: =====================================
 //= eAthena 0.1+;
 //===== Description: =========================================
 //= Healer NPC Which Heals For Free
 //===== Additional Comments: =================================
-//= 3.0 By massdriller, Changed and edited the script
-//= added other warp points of maps.
-//= 2.0 By Darkchild, Duplicates And Changed A Bit
-//= you can replace this script file by heal_payment.txt
-//= if you want that players have to pay their healings.
+//= 2.0 Duplicates And Changed A Bit you can replace this script file by 
+//= heal_payment.txt if you want that players have to pay their healings. [Darkchild]
+//= 3.0 Changed and edited the script added other warp points of maps. [massdriller]
+//= 3.1 Optimized for the greater good. [Kisuka]
 //============================================================
 
 prontera,150,184,5	script	Healer#h1-1::Healer	742,{
-
 	mes "[Healer]";
 	mes "I have amazing healing powers!!";
 	mes "You look like a person who needs them";
 	mes "Want some?";
 	next;
-	menu "Heal",-,"No thanks",CANCEL;
-		percentheal 100,100;
+	if (select("Heal:No thanks") == 2) {
 		mes "[Healer]";
-		mes "Wonderfull, You are now healed!.";
-		mes "Have fun adventuring!!";
+		mes "Allright, come back if you need a heal.";
 		close;
-	CANCEL:
+	}
+	percentheal 100,100;
 	mes "[Healer]";
-	mes "Allright, come back if you need a heal.";
+	mes "Wonderfull, You are now healed!.";
+	mes "Have fun adventuring!!";
 	close;
 }
 
+// --------- NPC Clones ---------
 morocc,159,96,5	duplicate(Healer)	Healer#h1-2	742
 ayothaya,155,111,5	duplicate(Healer)	Healer#h1-3	742
 geffen,121,61,5	duplicate(Healer)	Healer#h1-4	742

+ 48 - 30
npc/custom/jobs/reset.txt

@@ -1,4 +1,17 @@
-//Reset NPC for Athena by Script&DB Team 
+//===== eAthena Script =======================================
+//= Reset NPC for Athena by Script & DB Team
+//===== By: ================================================== 
+//= eAthena Team
+//===== Current Version: ===================================== 
+//= 1.1
+//===== Compatible With: ===================================== 
+//= Any eAthena Version
+//===== Description: ========================================= 
+//= Resets skills, stats, or both.
+//===== Additional Comments: ================================= 
+//= 1.0 First Version
+//= 1.1 Optimized for the greater good. [Kisuka]
+//============================================================ 
 prontera,150,193,4	script	Reset Girl	124,{
 	mes "[Reset Girl]";
 	mes "I am a Reset Girl.";
@@ -7,34 +20,39 @@ prontera,150,193,4	script	Reset Girl	124,{
 	mes "Reset Both: 9,000z";
 	mes "Please select the service you want:";
 	next;
-	menu "^FF3355Reset Skills",L0,"Reset Stats",L1,"Reset Both^000000",L2,"Quit",LEnd;
-	
-	L0:
-		mes "[Reset Girl]";
-		if (Zeny < 5000) goto NeedZenys;
-		mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
-		set Zeny,zeny-5000;
-		ResetSkill;
-		close;
-	L1:
-		mes "[Reset Girl]";
-		if (Zeny < 5000) goto NeedZenys;
-		mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
-		set Zeny,zeny-5000;
-		ResetStatus;
-		close;
-	L2:
-		mes "[Reset Girl]";
-		if (Zeny < 9000) goto NeedZenys;
-		mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
-		set Zeny,zeny-9000;
-		ResetSkill;
-		ResetStatus;
-		close;
-
-		NeedZenys:
-			mes "Sorry, you don't have enough Zeny.";
+	switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Quit")) {
+		case 1:
+			mes "[Reset Girl]";
+			if (Zeny < 5000) {
+				mes "Sorry, you don't have enough Zeny.";
+				close;
+			}
+			mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
+			set Zeny,zeny-5000;
+			ResetSkill;
 			close;
-	LEnd:
-		close;	
+		case 2:
+			mes "[Reset Girl]";
+			if (Zeny < 5000) {
+				mes "Sorry, you don't have enough Zeny.";
+				close;
+			}
+			mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
+			set Zeny,zeny-5000;
+			ResetStatus;
+			close;
+		case 3:
+			mes "[Reset Girl]";
+			if (Zeny < 9000) {
+				mes "Sorry, you don't have enough Zeny.";
+				close;
+			}
+			mes "Alright, here we go now.. Remember, changes won't take effect until you log back on!";
+			set Zeny,zeny-9000;
+			ResetSkill;
+			ResetStatus;
+			close;
+		case 4:
+			close;
+	}
 }

+ 0 - 5
npc/scripts_custom.conf

@@ -9,9 +9,6 @@
 //                     Your scripts go here!!
 // --------------------------------------------------------------
 // ----------------------- Basic  Scripts -----------------------
-// -- Auctioneer - Use at own risk [Fredzilla]
-// Warning: It dupe items.
-//npc: npc/custom/Auctioneer.txt
 // -- Card Remover
 //npc: npc/custom/card_remover.txt
 // -- Write your name on your equipment/weapon (mini-quest)
@@ -28,8 +25,6 @@
 //npc: npc/custom/healers/heal_payment.txt
 // -- Black Jack
 //npc: npc/custom/blackjack.txt
-// -- Gefenia
-//npc: npc/custom/gefenia.txt
 // -- City and Dungeon Warper
 //npc: npc/custom/warper.txt
 // -- Stylist