Jump to content
  • 0
HisokaMachi

can some one make this compatible to herc

Question

can you make it compatible to hercules?
 

 

// 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:100quiz_02,300,237	,5	script	Sample	757,{function ShopSettings;function ValidateCost;function CurrencyInfo;function ClearData;function ValueConvert;function ErrorNotice;mes "Each Shop from the Menu may purchase using ^FF0000Different Currency^000000.";mes "^00FF00____________________________^000000";mes "So,Which shop you would like to look at it";next;// Menu Selectionselect("Shop 1","Shop 2","Shop 3");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...wait awhile";mes "^00FF00____________________________^000000";CurrencyInfo( @Currency$ );mes "^00FF00____________________________^000000";callshop "Emistry_Shop",1;npcshopattach "Emistry_Shop";end;function	ShopSettings	{	switch( getarg(0) ){		Case 1:			// Currency [ Item ID / Variable Name ]			set @Currency$,"7179";			// Item ID Lists			setarray @ItemLists[0],6153,7227;			// Item Price			setarray @ItemCost[0],100,1;			break;		Case 2:			// Currency [ Item ID / Variable Name ]			set @Currency$,"7227";			// Item ID Lists			setarray @ItemLists[0],2306,2302,2303,2304,2305,2301;			// Item Price			setarray @ItemCost[0],2,2,3,4,5,6;			break;		Case 3:			// Currency [ Item ID / Variable Name ]			set @Currency$,"#CASHPOINTS";			// 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 "^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;} 
Edited by jaBote
Codeboxed. Please codebox your scripts prior to posting.

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

I've codeboxed your code. Please codebox it prior to posting since it easens our work.

 

I've changed 4 'Case' to 'case since that's the only script error found there (in addition to missing tabs to separate appropriate parts of the NPC declarations. I won't fix again this kind of errors for you since you've already been explained how to solve them (and console tells you how to fix them yourself anyways).

 

Here's your 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:100  quiz_02,300,237,5	script	Sample	757,{function ShopSettings;function ValidateCost;function CurrencyInfo;function ClearData;function ValueConvert;function ErrorNotice; mes "Each Shop from the Menu may purchase using ^FF0000Different Currency^000000.";mes "^00FF00____________________________^000000";mes "So,Which shop you would like to look at it";next;// Menu Selectionselect("Shop 1","Shop 2","Shop 3"); 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...wait awhile";mes "^00FF00____________________________^000000";CurrencyInfo( @Currency$ );mes "^00FF00____________________________^000000";callshop "Emistry_Shop",1;npcshopattach "Emistry_Shop";end;  function    ShopSettings    {    switch( getarg(0) ){        case 1:            // Currency [ Item ID / Variable Name ]            set @Currency$,"7179";            // Item ID Lists            setarray @ItemLists[0],6153,7227;            // Item Price            setarray @ItemCost[0],100,1;            break;        case 2:            // Currency [ Item ID / Variable Name ]            set @Currency$,"7227";            // Item ID Lists            setarray @ItemLists[0],2306,2302,2303,2304,2305,2301;            // Item Price            setarray @ItemCost[0],2,2,3,4,5,6;            break;        case 3:            // Currency [ Item ID / Variable Name ]            set @Currency$,"#CASHPOINTS";            // 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 "^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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×
×
  • Create New...

Important Information

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