Jump to content
  • 0
Sign in to follow this  
Zalbahis

R> Currency Shop

Question

I would to request, a Currency shop for Zeny, Cash points and Items thanks :), cause Sir Emistry Script won't work on Hercules..

Thanks in Advance and More Power.. Cheers!

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 0

I haven't any problems at the Emulator, But the Npc says I have an Error with an Invalid Menu Selection..
well here's the script..

// Settings ://	-	Only required to edit the ShopSetting() Function//			Notes : You may also add / remove Menu ( If any ) //	-	Shop Currency can be either ItemID or Variable Name, but must write within Quotation Marks ( "" )//			Ex. of Variable.	->	Zeny , #CASHPOINTS , #KAFRAPOINTS , CustomVariable , #CustomVariable//	-	ERROR Message are used to show Invalid Settings in your NPC.// Leave this alone...-	shop	Emistry_Shop	-1,512:100pvp_y_3-3,171,314,4	script	Weapons	513,{function ShopSettings;function ValidateCost;function CurrencyInfo;function ClearData;function ValueConvert;function ErrorNotice;mes "Hello and Good Day to you!, I have the finest Weapons";mes "In town Take a Look and I'm sure you'll gotta love it";next;// Menu Selectionselect("1 & 2 Handed Swords","Axe & Daggers","Mace & Knux");ClearData();ShopSettings( @menu );npcshopitem "Emistry_Shop",512,100;npcshopdelitem "Emistry_Shop",512;for(set .@i,0; .@i < getarraysize( @ItemLists ); set .@i,.@i+1)	npcshopadditem "Emistry_Shop",@ItemLists[.@i],@ItemCost[.@i];mes "Okay.. These are all I have in Stock";callshop "Emistry_Shop",1;npcshopattach "Emistry_Shop";end;function	ShopSettings	{	switch( getarg(0) ){		Case 1:			// Currency [ Item ID / Variable Name ]			set @Currency$,"zeny";			// Item ID Lists			setarray @ItemLists[0],1108,1117,1124,1130,1120,1149,1155,1158,1163,1164,1165;			// Item Price			setarray @ItemCost[0],2500,3000,10000,12000,50000,70000,22500,60000,74000,90000,12000;			break;		Case 2:			// Currency [ Item ID / Variable Name ]			set @Currency$,"zeny";			// Item ID Lists			setarray @ItemLists[0],1302;			// Item Price			setarray @ItemCost[0],10000;			break;		Case 3:			// Currency [ Item ID / Variable Name ]			set @Currency$,"zeny";			// Item ID Lists			setarray @ItemLists[0],2306,2302,2303,2304,2305,2301;			// Item Price			setarray @ItemCost[0],20,22,34,445,52,641;			break;		// Case 4,5,6.....etc...		default:			ErrorNotice( "Invalid Menu Selection for Menu "+@menu+"." );			close;	}		if( @Currency$ == "" )	ErrorNotice( "Invalid Currency Setting in Menu "+@menu+" ." );if( getarraysize( @ItemCost ) != getarraysize( @ItemLists ) || getarraysize( @ItemLists ) != getarraysize( @ItemCost ) )	ErrorNotice( "Missing or Extra Value of Item or Cost Settings in Menu "+@menu+" ." );return;}function	ErrorNotice	{	mes "^FF0000ERROR^000000 - "+getarg(0);	mes "^00FF00____________________________^000000";	mes "Inform this Message to ^0000FFGame Staffs^000000 immediately !";	close;}function	CurrencyInfo	{	if( getitemname( atoi( getarg(0) ) ) != "null" ){		mes "Item Currency : ^FF0000"+getitemname( atoi( getarg(0) ) )+"^000000";		mes "Available Amount : ^0000FF"+ValueConvert( countitem( atoi( getarg(0) ) ) )+"^000000";	}else if( getitemname( atoi( getarg(0) ) ) == "null" ){		mes "Variable Currency : ^FF0000"+getarg(0)+"^000000";		mes "Available Amount : ^0000FF"+ValueConvert( getd( getarg(0) ) )+"^000000";	}return;}function	ValidateCost	{	if( getitemname( atoi( getarg(0) ) ) != "null" ){		if( countitem( atoi( getarg(0) ) ) < getarg(1) ) return 1;	}else{		if( getd( getarg(0) ) < getarg(1) ) return 1;	}return 0;}function ClearData	{	set @Currency$,"";	set @TotalCost,0;	deletearray @bought_nameid[0],getarraysize( @bought_nameid );	deletearray @bought_quantity[0],getarraysize( @bought_quantity );	deletearray @ItemLists[0],getarraysize( @ItemLists );	deletearray @ItemCost[0],getarraysize( @ItemCost );return;}function	ValueConvert	{	set .@num, atoi(""+getarg(0));	if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);	set .@l, getstrlen(""+.@num);	for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {		set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;			if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;	}	return .@num$;}OnBuyItem:	ShopSettings( @menu );	for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1)		for(set @j,0; @j < getarraysize( @ItemLists ); set @j,@j+1)			if( @ItemLists[@j] == @bought_nameid[@i] )			set @TotalCost,@TotalCost + ( @ItemCost[@j] * @bought_quantity[@i] );		mes "[ Jimboy ]";	mes "^FF0000       BILLING LIST^000000";	mes "^00FF00____________________________^000000";	for( set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1 )			mes "^FF0000"+@bought_quantity[@i]+" x ^0000FF"+getitemname( @bought_nameid[@i] )+"^000000";	mes "^00FF00____________________________^000000";	if( getitemname( atoi( @Currency$ ) ) != "null" )		mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" x "+getitemname( atoi( @Currency$ ) )+"^000000";	else if( getitemname( atoi( @Currency$ ) ) == "null" ){		mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" "+@Currency$+"^000000";	}		mes "^00FF00____________________________^000000";	if( ValidateCost( @Currency$,@TotalCost ) ){		if( getitemname( atoi( @Currency$ ) ) != "null" )			mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+getitemname( atoi( @Currency$ ) )+"^000000";		else{			mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+@Currency$+"^000000";		}	}else{		if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){			if( getitemname( atoi( @Currency$ ) ) != "null" )				delitem atoi( @Currency$ ),@TotalCost;			else{				set getd( @Currency$ ),getd( @Currency$ ) - @TotalCost;			}			for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1)				getitem @bought_nameid[@i],@bought_quantity[@i];			message strcharinfo(0),"Purchased "+getarraysize( @bought_nameid )+" Items.";			mes "Thank you for shopping.";		}	}ClearData();close;}

Share this post


Link to post
Share on other sites
  • 0

It's working fine with me also no encountered error im using hercules latest svn, works also with rathena latest svn, hmmmm is this the same with your currency npc @emistry ^_^

Edited by pr3p

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.