diff options
-rw-r--r-- | world/map/npc/009-2/selim.txt | 21 | ||||
-rw-r--r-- | world/map/npc/010-2/loratay.txt | 154 |
2 files changed, 175 insertions, 0 deletions
diff --git a/world/map/npc/009-2/selim.txt b/world/map/npc/009-2/selim.txt index aa11ee25..0f01da40 100644 --- a/world/map/npc/009-2/selim.txt +++ b/world/map/npc/009-2/selim.txt @@ -48,6 +48,7 @@ L_clothes_choice: "White lined sorcerer robe", L_whitelinedsorcererrobe, "Bowler hat (brown)", L_bowlerhatbrown, "Fine dress", L_finedress, + "About these sorcerer robes...", L_asksorcererrobe, "I'm fine for now, thanks.", -; close; @@ -243,6 +244,26 @@ L_cottoncloth: set @name$, "cotton cloth"; goto L_picked_item; +L_asksorcererrobe: + mes "[Selim]"; + mes "\"Yes?\""; + next; + menu + "Do you think you can dye that line to a different color?", -; + 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!", -; + 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.\""; + menu + "Sure. Here is one.", L_cottoncloth, + "I have to go pick that.", -; + close; + L_picked_item: if (countitem(@del) == 0) goto L_havenone; diff --git a/world/map/npc/010-2/loratay.txt b/world/map/npc/010-2/loratay.txt index 4b9a629f..f3b22c63 100644 --- a/world/map/npc/010-2/loratay.txt +++ b/world/map/npc/010-2/loratay.txt @@ -3,7 +3,11 @@ set @ROBE_COCOONS_NR, 150; // must be multiple of ten set @ROBE_ZENY, 10000; set @FINEDRESS_COCOONS, 180; + set @SORCERER_ROBE_SEW_ZENY, 25000; + set @SORCERER_ROBE_NUM_COTTON_CLOTH, 2; + setarray @item_colors$, "red", "green", "dark blue", "yellow", "light blue", "pink", "black", "orange", "purple", "dark green", "white"; + if (@loratay_asking_robe == 1) goto L_ExamineSorcererRobe; if (QUEST_WG_state == 10) goto L_agostine_menu; if (QUEST_WG_state == 11 || QUEST_WG_state == 12) goto L_regular_intro; if (QUEST_WG_state == 13) goto L_proposal_intro; @@ -228,6 +232,7 @@ L_main_menu: "Can you make winter gloves me?", -, "Can you sew a robe for me?", L_robe, "Can you make a desert hat for me?", L_desert_hat, + "Can you enhance a sorcerer robe with another line color?", L_sorcerer_robe_linecolor, "Goodbye for now.", L_end; mes "[Lora Tay the Seamstress]"; mes "\"From what? Fluffy fur? I won't work with such lowly materials.\""; @@ -891,4 +896,153 @@ L_TooMany: mes "[Lora Tay the Seamstress]"; mes "\"You don't have anywhere to put this. Come back when you have more room.\""; close; + +L_sorcerer_robe_linecolor: + mes "[Lora Tay the Seamstress]"; + mes "\"Hmm, this has a line sewed on it already. I don't see another way than remove it and sew a new one."; + mes "That is quite a difficult work... for a casual tailor of course. I'll do that in a heart beat.\""; + next; + mes "\"However, you can expect this will cost you a large fee. Let's say " + @SORCERER_ROBE_SEW_ZENY + " GP."; + mes "Also, I will need " + @SORCERER_ROBE_NUM_COTTON_CLOTH + " sheets of Cotton Cloth of the color you want.\""; + next; + mes "\"Ok. Now please wear the robe you want me to change.\""; + set @loratay_asking_robe, 1; + close; + +L_ExamineSorcererRobe: + set @loratay_asking_robe, 0; + mes "[Lora Tay the Seamstress]"; + mes "\"Let's see...\""; + next; + set @chest_equip_id, getequipid(equip_torso); + callsub S_Get_SorcererRobeColors; + mes "Lora Tay takes a closer look at what you are wearing."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"Hmm. This " + @item_colors$[@current_linecolor] + " lined " + @item_colors$[@current_maincolor] + " sorcerer robe. I see. Is that ok?\""; + if (@current_maincolor == -1 || @current_linecolor == -1) + goto L_NotSorcererRobe; + menu + "Yes, that's fine. Take this one.", L_ChooseSorcererLineColor, + "No, I changed my mind.", -; + goto L_CleanSorcererRobe; + +L_NotSorcererRobe: + mes "\"This isn't a Sorcerer Robe dear. Stop taking me for a fool.\""; + goto L_CleanSorcererRobe; + +L_ChooseSorcererLineColor: + // Unequip the robe, just to simulate Lora Tay really took it + unequipbyid(equip_torso); + mes "[Lora Tay the Seamstress]"; + mes "\"And which Cotton Cloth color will you give me?\""; + menu + "A " + @item_colors$[0] + " one.", -, + "A " + @item_colors$[1] + " one.", -, + "A " + @item_colors$[2] + " one.", -, + "A " + @item_colors$[3] + " one.", -, + "A " + @item_colors$[4] + " one.", -, + "A " + @item_colors$[5] + " one.", -, + "A " + @item_colors$[6] + " one.", -, + "A " + @item_colors$[7] + " one.", -, + "A " + @item_colors$[8] + " one.", -, + "A " + @item_colors$[9] + " one.", -, + "A " + @item_colors$[10] + " one.", -, + "Hum. I changed my mind. Later maybe.", L_end; + + set @chosen_color, @menu - 1; + set @cotton_cloth_id, 2250 + @chosen_color; + // The White Cotton Cloth is in fact the undyed one. + if (@cotton_cloth_id == 2260) + set @cotton_cloth_id, 660; + if (countitem(@cotton_cloth_id) < 2) + goto L_NoColoredCottonCloth; + if (@current_linecolor == @chosen_color) + goto L_SorcererRobe_SameColor; + callsub S_Get_NewSorcererRobeId; + // Should not happen since it has been checked the player submitted a sorcerer robe + if (@new_sorcerer_robe_id == 0) + goto L_end; + + if (Zeny < @SORCERER_ROBE_SEW_ZENY) + goto L_SorcererRobe_NoZeny; + if (countitem(@chest_equip_id) == 0) + goto L_SorcererRobe_Vanished; + delitem @cotton_cloth_id, @SORCERER_ROBE_NUM_COTTON_CLOTH; + // Since we delete an unstackable item, we don't need to check + // for an available inventory slot. + delitem @chest_equip_id, 1; + set Zeny, Zeny - @SORCERER_ROBE_SEW_ZENY; + getitem @new_sorcerer_robe_id, 1; + mes "Lora Tay adjusts her glasses and removes carefully the " + @item_colors$[@current_linecolor] + " string of the robe."; + mes "Then she grabs the " + @item_colors$[@chosen_color] + " cotton cloth, unfolds it and pins her needle in it."; + next; + mes "She begins to sew the new string onto the sorcerer robe."; + next; + mes "She regularly flips and flips again the robe, which starts to show her new color."; + next; + mes "After a few minutes you barely noticed, the robe seems to be ready."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"There you are dear. I have to say I made a perfect job... As always."; + mes "I hope you'll enjoy your new robe.\""; + goto L_CleanSorcererRobe; + +L_SorcererRobe_SameColor: + mes "[Lora Tay the Seamstress]"; + mes "\"Are you blind? Your robe is already of this color dear!\""; + goto L_CleanSorcererRobe; + +L_SorcererRobe_Vanished: + mes "Lora Tay adjusts her glasses and looks around, as if something was missing."; + next; + mes "[Lora Tay the Seamstress]"; + mes "\"Uh? Where is your sorcerer robe?\""; + goto L_CleanSorcererRobe; + +S_Get_NewSorcererRobeId: + if (@chosen_color == 0 && @current_maincolor == 10) + set @new_sorcerer_robe_id, 798; + if (@chosen_color == 0 && @current_maincolor < 10) + set @new_sorcerer_robe_id, 2220 + @current_maincolor; + if (@chosen_color > 0) + set @new_sorcerer_robe_id, 5000 + @current_maincolor + (@chosen_color-1)*11; + return; + +L_NoColoredCottonCloth: + mes "[Lora Tay the Seamstress]"; + mes "\"You don't seem to own enough Cotton Cloth of this color. I need " + @SORCERER_ROBE_NUM_COTTON_CLOTH + " of them. Too bad.\""; + goto L_CleanSorcererRobe; + +L_SorcererRobe_NoZeny: + mes "[Lora Tay the Seamstress]"; + mes "\"You don't seem to be able to afford my services, dear.\""; + goto L_CleanSorcererRobe; + +S_Get_SorcererRobeColors: + set @current_maincolor, -1; + set @current_linecolor, -1; + // Line color + if (@chest_equip_id == 798 || (@chest_equip_id >= 2220 && @chest_equip_id <= 2229)) + set @current_linecolor, 0; + if (@chest_equip_id >= 5000 && @chest_equip_id <= 5109) + set @current_linecolor, 1 + (@chest_equip_id-5000)/11; + // Main color + if (@chest_equip_id == 798) + set @current_maincolor, 10; + if (@chest_equip_id >= 2220 && @chest_equip_id <= 2229) + set @current_maincolor, @chest_equip_id - (@chest_equip_id/10)*10; + if (@chest_equip_id >= 5000 && @chest_equip_id <= 5109) + set @current_maincolor, @chest_equip_id - 5000 - (@current_linecolor-1)*11; + return; + +L_CleanSorcererRobe: + set @current_maincolor, 0; + set @current_linecolor, 0; + set @chest_equip_id, 0; + set @new_sorcerer_robe_id, 0; + set @chosen_color, 0; + set @cotton_cloth_id, 0; + close; + } |