Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* npc/other/Global_Functions.txt#L589
- function script F_InsertComma {
- set .@str$, getarg(0);
- for (set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3)
- set .@str$, insertchar(.@str$,",",.@i);
- return .@str$;
- }
- */
- - script Stylist -1,{
- OnTalk:
- if (.ignore_secure_npctimeout)
- ignoretimeout 1;
- mes "[^0055FF ::: Adv. 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"+F_InsertComma(.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),"Current "+.menu_name$[@style]+" Style : #"+.@style_number;
- .@removed = 0;
- if (compare(.@blacklist$,","+.@style_number+",")){
- message strcharinfo(0),"[ REMOVED ] "+.menu_name$[@style]+" : "+.@style_number+"th";
- .@removed = 1;
- } 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 "+.menu_name$[@style]+"^000000 ]",
- ((!.@backward)?"Backward":"Forward")+" - [ ^777777"+((!.@backward)? .@prev:.@next)+"th "+.menu_name$[@style]+"^000000 ]",
- "Random "+.menu_name$[@style],
- "Pick a "+.menu_name$[@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:
- .@style_number = rand(.min_style[@style], .max_style[@style]);
- break;
- case 4:
- message strcharinfo(0),"Available "+.menu_name$[@style]+" : "+.min_style[@style]+" ~ "+.max_style[@style]+".";
- input .@style_number,.min_style[@style],.max_style[@style];
- break;
- case 5:
- .@atoi_currency = atoi(.currency$[@style]);
- if (@style_value == .@style_number){
- message strcharinfo(0),"But that is your current "+.menu_name$[@style]+".";
- 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 brand 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"+F_InsertComma(.cost[@style])+" "+.currency_name$[@style]+"^000000";
- close2;
- }
- default:
- setlook .look_type[@style],@style_value;
- break;
- }
- } while (@select != 5 && @select != 255);
- mes "Come back again next time. ^^";
- @select = 0;
- if (.ignore_secure_npctimeout)
- ignoretimeout 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;
- // ignore SECURE_NPCTIMEOUT
- .ignore_secure_npctimeout = 1;
- // 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,
- 10000, // Hairstyle (10,000 Zeny)
- 10000, // Hair Color (10,000 Zeny)
- 10000; // Cloth Color (10,000 Zeny)
- // Blacklisted Style for each style and each gender.
- // --- Female ---
- .blacklist_hairstyle_0$ = "2,4,6";
- .blacklist_haircolor_0$ = "1,3,5";
- .blacklist_cloth_0$ = "1,2,3";
- // --- Male ---
- .blacklist_hairstyle_1$ = "3,5,7";
- .blacklist_haircolor_1$ = "2,4,6";
- .blacklist_cloth_1$ = "4,5,6";
- // 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,170,181,3 script Adv. Stylist#main 878,{
- doevent "Stylist::OnTalk";
- }
- prontera,115,181,5 duplicate(Adv. Stylist#main) Adv. Stylist#1 878
- prontera,115,181,5 duplicate(Adv. Stylist#main) Adv. Stylist#2 878
- prontera,115,181,5 duplicate(Adv. Stylist#main) Adv. Stylist#3 878
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement