Jump to content
  • 0

npc with access restriction


Question

2 answers to this question

Recommended Posts

  • 1
Posted (edited)

I didn't test it

// credits to Annieruru
 
-	script	Stylist	-1,{
	if(vip_status(VIP_STATUS_ACTIVE))
		setarray .@max_style,getbattleflag( "max_hair_style" ),getbattleflag( "max_hair_color" ),getbattleflag( "max_cloth_color" );
	else
		setarray .@max_style,29,80,180;

	cutin "hairstyle_"+Sex, 3;
	mes .npc_name$;
	mes "Eu posso mudar sua aparência.";
	if( .item_size ){
		mes " ";
		mes "^777777[ TAXAS DO SERVIÇO ]^000000";
		for( .@i = 0; .@i < .menu_size; .@i++ )
			if( .npc_mode & ( 1 << .@i ) )
				if( .item[.@i] )
					mes "^0055FF"+.menu_name$[.@i]+" : ^777777"+ .item[.@i] +" x "+getitemname(7420)+"^000000";
				else
					mes "^0055FF"+.menu_name$[.@i]+" : ^777777Free of Charge^000000";
	}
	next;
	.@style = ( select( .npc_menu$ ) - 1 );
	.@style_value = getlook( .look_type[.@style] );
	deletearray .@blacklist;
	switch( .@style ){
		Case 0: .@blacklist$ = ","+getd( ".blacklist_hairstyle_"+Sex+"$" )+","; break;
		Case 1: .@blacklist$ = ","+getd( ".blacklist_haircolor_"+Sex+"$" )+","; break;
		Case 2: .@blacklist$ = ","+getd( ".blacklist_clothe_"+Sex+"$" )+","; break;
		default: break;
	}
 
	.@style_number = .min_style[.@style];
 
	do{
		next;
		mes .npc_name$;
		mes "Current "+.menu_name$[.@style]+" : ^0055FF"+.@style_number+"th^000000";
		mes " ";
		.@removed = 0;
		if( compare( .@blacklist$,","+.@style_number+"," ) ){
			mes "^FF0000NOTE : This style REMOVED^000000";
			.@removed = 1;
			setlook .look_type[.@style],.min_style[.@style];
		}else{
			setlook .look_type[.@style],.@style_number;
			if( .item[.@style] ){
				mes "Cost : ^777777"+ .item[.@style] +" x "+getitemname(7420)+"^000000";
				mes " ";
			}
		}
 
		.@next = .@style_number + 1;
		.@prev = .@style_number - 1;
		if( .@next > .@max_style[.@style] ) .@next = .min_style[.@style];
		if( .@prev < .min_style[.@style] ) .@prev = .@max_style[.@style];
 
		.@select = prompt( "Próximo - [ ^777777"+.@next+"th Style^000000 ]",
					"Voltar - [ ^777777"+.@prev+"th Style^000000 ]",
					"Pular para...",
					( .@removed )?"":"^0055FFCerto, eu quero esse "+.menu_name$[.@style]+"^000000" );
 
		switch( .@select ){
			Case 1:	.@style_number = .@next; break;
			Case 2:	.@style_number = .@prev; break;
			Case 3:	
				mes "Available Style : ^0055FF"+.min_style[.@style]+" ~ "+.@max_style[.@style]+"^000000.";
				input .@style_number,.min_style[.@style],.@max_style[.@style];
				break;
			Case 4:
				if( .@style_value == .@style_number ){
					mes "Swt..this is your original hairstyles.";
				} else if( .item[.@style] && countitem(7420) < .item[.@style] ){
					mes "Você não tem suficientes "+getitemname(7420)+" para mudar a "+.menu_name$[.@style]+".";
				}else{
					mes "Aproveite seu ^0055FFNEW "+.menu_name$[.@style]+" !!";
					if( .item[.@style] )
						delitem 7420, .item[.@style];
					.@style_value = .@style_number;
				}
			default:
				setlook .look_type[.@style],.@style_value;
				break;
		}
	}while( .@select != 4 && .@select != 255 );
	close;
 
 
OnInit:
waitingroom "[Estilista]",0;
	// NPC name
	.npc_name$ = "[^0055FF ::: Estilista ::: ^000000]";
 
	// NPC Mode ( Bitmask )
	//	1 - Enable Hairstyle
	//	2 - Enable Hair Color
	//	4 - Enable Cloth Color
	.npc_mode = 7;
 
	// Menu Name
	setarray .menu_name$,
		"Estilo do Cabelo",
		"Cor do Cabelo",
		"Cor da Roupa";
 
	// Payment (7420)
	setarray .item,
		5,	//	Hairstyle
		5,	//	Hair Color
		5;	//	Cloth Color
 
 
 
	// Blacklisted Style for each style and each gender.
	// --- Female ---
	.blacklist_hairstyle_0$ = "2,4,6";
	.blacklist_haircolor_0$ = "1,3,5";
	.blacklist_cloth_0$ = "143,188,261";
	// --- Male ---
	.blacklist_hairstyle_1$ = "3,5,7";
	.blacklist_haircolor_1$ = "2,4,6";
	.blacklist_cloth_1$ = "143,188,261";
 
	// Dont edit
	setarray .min_style,getbattleflag( "min_hair_style" ),getbattleflag( "min_hair_color" ),getbattleflag( "min_cloth_color" );
	
	.menu_size = getarraysize( .menu_name$ );
	.item_size = getarraysize( .item );
	setarray .look_type,LOOK_HAIR,LOOK_HAIR_COLOR,LOOK_CLOTHES_COLOR;
	for( .npc_menu$ = ""; .@i < .menu_size; .@i++ )
		.npc_menu$ = .npc_menu$ + ( ( .npc_mode & ( 1 << .@i ) )? .menu_name$[.@i]:"" ) +":";
	end;
 
}
 
 
// NPC Lists
prontera,175,202,4	duplicate(Stylist)	Estilista#4	878

 

Edited by sader1992
  • Love 1
  • 0
Posted
1 hour ago, sader1992 said:

I didn't test it


// credits to Annieruru
 
-	script	Stylist	-1,{
	if(vip_status(VIP_STATUS_ACTIVE))
		setarray .@max_style,getbattleflag( "max_hair_style" ),getbattleflag( "max_hair_color" ),getbattleflag( "max_cloth_color" );
	else
		setarray .@max_style,29,80,180;

	cutin "hairstyle_"+Sex, 3;
	mes .npc_name$;
	mes "Eu posso mudar sua aparência.";
	if( .item_size ){
		mes " ";
		mes "^777777[ TAXAS DO SERVIÇO ]^000000";
		for( .@i = 0; .@i < .menu_size; .@i++ )
			if( .npc_mode & ( 1 << .@i ) )
				if( .item[.@i] )
					mes "^0055FF"+.menu_name$[.@i]+" : ^777777"+ .item[.@i] +" x "+getitemname(7420)+"^000000";
				else
					mes "^0055FF"+.menu_name$[.@i]+" : ^777777Free of Charge^000000";
	}
	next;
	.@style = ( select( .npc_menu$ ) - 1 );
	.@style_value = getlook( .look_type[.@style] );
	deletearray .@blacklist;
	switch( .@style ){
		Case 0: .@blacklist$ = ","+getd( ".blacklist_hairstyle_"+Sex+"$" )+","; break;
		Case 1: .@blacklist$ = ","+getd( ".blacklist_haircolor_"+Sex+"$" )+","; break;
		Case 2: .@blacklist$ = ","+getd( ".blacklist_clothe_"+Sex+"$" )+","; break;
		default: break;
	}
 
	.@style_number = .min_style[.@style];
 
	do{
		next;
		mes .npc_name$;
		mes "Current "+.menu_name$[.@style]+" : ^0055FF"+.@style_number+"th^000000";
		mes " ";
		.@removed = 0;
		if( compare( .@blacklist$,","+.@style_number+"," ) ){
			mes "^FF0000NOTE : This style REMOVED^000000";
			.@removed = 1;
			setlook .look_type[.@style],.min_style[.@style];
		}else{
			setlook .look_type[.@style],.@style_number;
			if( .item[.@style] ){
				mes "Cost : ^777777"+ .item[.@style] +" x "+getitemname(7420)+"^000000";
				mes " ";
			}
		}
 
		.@next = .@style_number + 1;
		.@prev = .@style_number - 1;
		if( .@next > .@max_style[.@style] ) .@next = .min_style[.@style];
		if( .@prev < .min_style[.@style] ) .@prev = .@max_style[.@style];
 
		.@select = prompt( "Próximo - [ ^777777"+.@next+"th Style^000000 ]",
					"Voltar - [ ^777777"+.@prev+"th Style^000000 ]",
					"Pular para...",
					( .@removed )?"":"^0055FFCerto, eu quero esse "+.menu_name$[.@style]+"^000000" );
 
		switch( .@select ){
			Case 1:	.@style_number = .@next; break;
			Case 2:	.@style_number = .@prev; break;
			Case 3:	
				mes "Available Style : ^0055FF"+.min_style[.@style]+" ~ "+.@max_style[.@style]+"^000000.";
				input .@style_number,.min_style[.@style],.@max_style[.@style];
				break;
			Case 4:
				if( .@style_value == .@style_number ){
					mes "Swt..this is your original hairstyles.";
				} else if( .item[.@style] && countitem(7420) < .item[.@style] ){
					mes "Você não tem suficientes "+getitemname(7420)+" para mudar a "+.menu_name$[.@style]+".";
				}else{
					mes "Aproveite seu ^0055FFNEW "+.menu_name$[.@style]+" !!";
					if( .item[.@style] )
						delitem 7420, .item[.@style];
					.@style_value = .@style_number;
				}
			default:
				setlook .look_type[.@style],.@style_value;
				break;
		}
	}while( .@select != 4 && .@select != 255 );
	close;
 
 
OnInit:
waitingroom "[Estilista]",0;
	// NPC name
	.npc_name$ = "[^0055FF ::: Estilista ::: ^000000]";
 
	// NPC Mode ( Bitmask )
	//	1 - Enable Hairstyle
	//	2 - Enable Hair Color
	//	4 - Enable Cloth Color
	.npc_mode = 7;
 
	// Menu Name
	setarray .menu_name$,
		"Estilo do Cabelo",
		"Cor do Cabelo",
		"Cor da Roupa";
 
	// Payment (7420)
	setarray .item,
		5,	//	Hairstyle
		5,	//	Hair Color
		5;	//	Cloth Color
 
 
 
	// Blacklisted Style for each style and each gender.
	// --- Female ---
	.blacklist_hairstyle_0$ = "2,4,6";
	.blacklist_haircolor_0$ = "1,3,5";
	.blacklist_cloth_0$ = "143,188,261";
	// --- Male ---
	.blacklist_hairstyle_1$ = "3,5,7";
	.blacklist_haircolor_1$ = "2,4,6";
	.blacklist_cloth_1$ = "143,188,261";
 
	// Dont edit
	setarray .min_style,getbattleflag( "min_hair_style" ),getbattleflag( "min_hair_color" ),getbattleflag( "min_cloth_color" );
	
	.menu_size = getarraysize( .menu_name$ );
	.item_size = getarraysize( .item );
	setarray .look_type,LOOK_HAIR,LOOK_HAIR_COLOR,LOOK_CLOTHES_COLOR;
	for( .npc_menu$ = ""; .@i < .menu_size; .@i++ )
		.npc_menu$ = .npc_menu$ + ( ( .npc_mode & ( 1 << .@i ) )? .menu_name$[.@i]:"" ) +":";
	end;
 
}
 
 
// NPC Lists
prontera,175,202,4	duplicate(Stylist)	Estilista#4	878

 

it worked exactly as i wanted, thanks!

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...