The forums will be going offline for an extended maintenance period at 1400hrs GMT on 19th June 2025. The number of hours for this downtime is intentionally not advertised due to the nature of these upgrades.
×
- 0
R> Simple Bodystyle changer
-
Recently Browsing 0 members
- No registered users viewing this page.
Question
Hayato
Hi.
Im looking for a NPC with only 1 option which is "Change to Alternative Outfit?/Change back to normal outfit?".
or could somebody add it to this stylist please?
// credits to Annieruru function script 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$; } - script Stylist -1,{ OnTalk: mes "[^0055FF ::: Stylist ::: ^000000]"; mes "I can change your appearance."; if( .cost_size ){ mes " "; mes "^777777[ SERVICES PAYMENT ]^000000"; for( .@i = 0; .@i < .menu_size; .@i++ ) if( .npc_mode & ( 1 << .@i ) ) if( .cost[.@i] ) mes "^0055FF"+.menu_name$[.@i]+" : ^777777"+ValueConvert( .cost[.@i] )+" "+.currency_name$[.@i]+"^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_cloth_"+Sex+"$" )+","; break; default: break; } .@style_number = .min_style[@style]; addtimer 1000,strnpcinfo(0)+"::OnPCLogoutEvent"; do{ message strcharinfo(0),.menu_name$[@style]+" : "+.@style_number+"th"; .@removed = 0; if( compare( .@blacklist$,","+.@style_number+"," ) ){ message strcharinfo(0),"[ REMOVED ] "+.menu_name$[@style]+" : "+.@style_number+"th"; .@removed = 1; // setlook .look_type[@style],.min_style[@style]; }else{ setlook .look_type[@style],.@style_number; } .@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( (( .@backward )?"Backward":"Forward" )+" - [ ^777777"+(( .@backward )? .@prev:.@next )+"th Style^000000 ]", (( !.@backward )?"Backward":"Forward" )+" - [ ^777777"+(( !.@backward )? .@prev:.@next )+"th Style^000000 ]", "Jump to a Style", ( .@removed )?"":"^0055FFOkay, I want this "+.menu_name$[@style]+"^000000" ); if( @select == 2 ) .@backward = !.@backward; switch( @select ){ Case 1: Case 2: .@style_number = (( .@backward )? .@prev:.@next ); break; Case 3: message strcharinfo(0),"Available Style : "+.min_style[@style]+" ~ "+.max_style[@style]+"."; input .@style_number,.min_style[@style],.max_style[@style]; break; Case 4: .@atoi_currency = atoi( .currency$[@style] ); if( @style_value == .@style_number ){ message strcharinfo(0),"Swt..that is your original hairstyles."; break; } else if( .@atoi_currency ){ if( countitem( .@atoi_currency ) >= .cost[@style] ){ .@success = 1; delitem .@atoi_currency,.cost[@style]; } }else{ if( getd( ""+.currency$[@style] ) >= .cost[@style] ){ .@success = 1; setd( ""+.currency$[@style] ),( getd( ""+.currency$[@style] ) - .cost[@style] ); } } if( .@success ){ message strcharinfo(0),"Enjoy your NEW "+.menu_name$[@style]+" !!"; @style_value = .@style_number; }else{ mes "You dont have enough "+.currency_name$[@style]+" to change this "+.menu_name$[@style]+"."; mes "Cost : ^777777"+ValueConvert( .cost[@style] )+" "+.currency_name$[@style]+"^000000"; close2; } default: setlook .look_type[@style],@style_value; break; } }while( @select != 4 && @select != 255 ); mes "Come back again next time. ^^"; @select = 0; close2; deltimer strnpcinfo(0)+"::OnPCLogoutEvent"; OnPCLogoutEvent: if( @select ) setlook .look_type[@style],@style_value; end; OnInit: // NPC Mode ( Bitmask ) // 1 - Enable Hairstyle // 2 - Enable Hair Color // 4 - Enable Cloth Color .npc_mode = 7; // Menu Name setarray .menu_name$, "Hair Style", "Hair Color", "Cloth Color"; // Payment Currency + Cost // Can be ITEM ID or Any Variable. setarray .currency$, "Zeny", // Hairstyle - Ex. need Zeny "Zeny", // Hair Color - Ex. need Zeny "Zeny"; // Cloth Color - Ex. need Zeny setarray .cost, 50000, // Hairstyle ( 10,000 Zeny ) 50000, // Hair Color ( 10,000 Zeny ) 50000; // Cloth Color ( 10,000 Zeny ) // Blacklisted Style for each style and each gender. // --- Female --- .blacklist_hairstyle_0$ = "0"; .blacklist_haircolor_0$ = "99"; .blacklist_cloth_0$ = "99"; // --- Male --- .blacklist_hairstyle_1$ = "0"; .blacklist_haircolor_1$ = "99"; .blacklist_cloth_1$ = "99"; // Dont edit setarray .min_style,getbattleflag( "min_hair_style" ),getbattleflag( "min_hair_color" ),getbattleflag( "min_cloth_color" ); setarray .max_style,getbattleflag( "max_hair_style" ),getbattleflag( "max_hair_color" ),getbattleflag( "max_cloth_color" ); .menu_size = getarraysize( .menu_name$ ); .cost_size = getarraysize( .cost ); 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]:"" ) +":"; for( .@i = 0; .@i < .cost_size; .@i++ ){ .@atoi = atoi( .currency$[.@i] ); .currency_name$[.@i] = ( ( !.@atoi || getitemname( .@atoi ) == "null" )? .currency$[.@i]:getitemname( .@atoi ) ); } end; } // NPC Lists prontera,184,216,4 script Stylist#main 878,{ doevent "Stylist::OnTalk"; } //prontera,149,184,5 duplicate(Adv. Stylist#main) Adv. Stylist#1 878
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.