009-2,32,104,0|script|Selim|326
{
cleararray @items$, "", getarraysize(@items$);
cleararray @item_names$, "", getarraysize(@item_names$);
set @r, 0;
set @j, getarraysize($@DYE_items$);
goto L_CloneArray; // clone the array from DyeConfig
L_CloneArray:
set @items$[@r], $@DYE_items$[@r];
set @item_names$[@r], $@DYE_item_names$[@r];
set @r, @r + 1;
if(@r < @j) goto L_CloneArray;
set @r, 0;
set @j, 0;
goto L_Main;
L_Main:
mes "[Selim]";
mes "\"Greetings, fair traveler. With what may I help you?\"";
menu
"Greetings, are you the store merchant?", L_ask_selim,
"But what are dyes and what purpose do they serve?", L_ask_dye,
"Can you dye something for me?", L_clothes_choice,
"Can you also remove color from clothing?", L_ask_bleach,
"About these sorcerer robes...", L_asksorcererrobe,
"Never mind.", L_Close;
L_ask_bleach:
mes "[Selim]";
mes "\"I'm afraid no.";
mes "For that, you would need to visit Candide in the Tulimshar marketplace.\"";
goto L_Main;
L_ask_selim:
mes "[Selim]";
mes "\"That is an honest mistake you have made.";
mes "However I am not the merchant, but rather a Master Dyer here to serve the good people of this town.";
mes "I dye things, upon request.\"";
menu
"But what are dyes and where can I get them?", L_ask_dye,
"Can you dye something for me?", L_clothes_choice,
"Can you also remove color from clothing?", L_ask_bleach,
"Good bye.", L_Close;
L_ask_dye:
mes "[Selim]";
mes "\"Dyes are special liquids used to add color to clothing. If you want me to dye something for you you will have to bring me some dye first.";
mes "Those behind me are nearly empty and won't last for your item.\"";
menu
"What do you mean, `bring you dye'?", L_explain_dye,
"Where would I get dye?", L_explain_dye,
"Good bye.", L_Close;
L_clothes_choice:
mes "[Selim]";
mes "\"What can I dye for you today?\"";
next;
callfunc "DynamicItemMenu$";
set @default_choice$, "";
set @item_del$, @item$;
set @name$, @item_names$[@index];
cleararray @items$, "", getarraysize(@items$);
cleararray @item_names$, "", getarraysize(@item_names$);
if(@item$ == "") goto L_Close;
goto L_picked_item;
L_asksorcererrobe:
mes "[Selim]";
mes "\"Yes?\"";
next;
menu
"Do you think you can dye that line to a different color?", L_Next1;
L_Next1:
mes "[Selim]";
mes "\"Hum, I fear I can't do that. The area is too small and I can operate only on large ones.";
mes "But with the appropriate materials, maybe a talented tailor can make the change.\"";
next;
menu
"Oh, I see!", L_Next;
L_Next:
mes "[Selim]";
mes "\"Of course I can help you by dyeing the materials your tailor will want.";
mes "All I need is a piece of Cotton Cloth.\"";
set @item_del$, "CottonCloth";
menu
"Sure. Here is one.", L_picked_item,
"I have to go pick that.", L_Close;
L_picked_item:
if (countitem(@item_del$) == 0) goto L_havenone;
goto L_colour;
L_colour:
mes "[Selim]";
mes "\"Excellent. Now, what color do you want?\"";
next;
set @r, 0;
set @j, getarraysize($@DYE_colors$);
callsub S_CloneColors;
set @default_choice$, "I have no dye.";
callfunc "DynamicItemMenu$";
cleararray @items$, "", getarraysize(@items$);
cleararray @item_names$, "", getarraysize(@item_names$);
set @default_choice$, "";
if (@item$ == "") goto L_no_dye;
set @colour, @index;
goto L_finish;
S_CloneColors:
set @items$[@r], $@DYE_colors$[@r] + "Dye";
set @item_names$[@r], $@DYE_color_names$[@r];
set @r, @r + 1;
if(@r < @j) goto S_CloneColors;
set @r, 0;
set @j, 0;
return;
L_no_dye:
mes "[Selim]";
mes "\"I would love to dye your " + @name$ + " for you, but you will have to bring me some dye first.";
mes "Those behind me are nearly empty and won't last for your item.\"";
next;
menu
"I wanted to dye a different item anyway.", L_clothes_choice,
"What do you mean, `bring you dye'?", L_explain_dye,
"Where would I get dye?", L_explain_dye,
"Never mind.", L_Close;
L_explain_dye:
if (QUEST_clothdyer_knowsdye < 1)
set QUEST_clothdyer_knowsdye, 1;
mes "[Selim]";
mes "\"Well, dye is very expensive, and since I don't charge adventurers anything, I can't give you any for free.";
mes "But most alchemists can make dye; perhaps you can find one around here.\"";
goto L_Close;
L_finish:
if(getitemlink($@DYE_colors$[@colour] + @item_del$) == "Unknown Item") mapexit;
if(countitem(@item_del$) < 1) goto L_havenone;
delitem @item$, 1;
delitem @item_del$, 1;
getitem $@DYE_colors$[@colour] + @item_del$, 1;
mes "[Selim]";
mes "\"Here's your " + $@DYE_color_names$[@colour] + " " + @name$ + "! Please let dry for a minute.\"";
goto L_Close;
L_havenone:
mes "[Selim]";
mes "\"You don't have any uncolored " + @name$ + "? That's unfortunate.";
mes "Would you like to dye something else?\"";
next;
goto L_clothes_choice;
L_Close:
mes "\"Farewell and good luck in your journeys!\"";
close2;
emotion EMOTE_WINK, strcharinfo(0);
end;
}