Jump to content
  • 0

How to add checkweight on this


Question

Posted

Hello can anyone please edit this script from emistry,

i want it to have a checkweight before buying items cuz when buying items and the player is overweight the item drops.

thanks in advance :)

// Leave this alone...
- shop Emistry_Shop -1,512:100


prontera,155,181,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 Selection
select("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;

}

1 answer to this question

Recommended Posts

Posted

try add this...

if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){
if( Weight > ( MaxWeight / 2 ) ){
 mes "Please make sure you are not OverWeight.";
 close;
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...