Good day! I would like to ask for help ... Im using @Emistry's Adv. Stylist ... I would like to ask for help to make the required Item [MULTIPLE] ... Like example for hair dye will ask for 3 different item requiremets (ex. 2 cobalt dye, 2 scarlet dye and 2 lemon dye)... Thankyou
/* 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,
100000, // Hairstyle (10,000 Zeny)
30000, // Hair Color (10,000 Zeny)
70000; // 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,80,91,7 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
Question
Eross
Good day! I would like to ask for help ... Im using @Emistry's Adv. Stylist ... I would like to ask for help to make the required Item [MULTIPLE] ... Like example for hair dye will ask for 3 different item requiremets (ex. 2 cobalt dye, 2 scarlet dye and 2 lemon dye)... Thankyou
/* 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, 100000, // Hairstyle (10,000 Zeny) 30000, // Hair Color (10,000 Zeny) 70000; // 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,80,91,7 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
Link to comment
Share on other sites
0 answers 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.