diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-04-09 13:33:57 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-04-09 13:33:57 -0300 |
commit | cf18ce071c79ae37e14ea38943e0b1d88da70a7b (patch) | |
tree | f9159c9b60b3018300dd22ffba0d797bc5e828e5 /npc/002-2/bleacher.txt | |
parent | 8a4bf716002a017de77fe7df301ef8e4aaf00a2e (diff) | |
download | serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.gz serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.bz2 serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.xz serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.zip |
Override
Diffstat (limited to 'npc/002-2/bleacher.txt')
-rwxr-xr-x | npc/002-2/bleacher.txt | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/npc/002-2/bleacher.txt b/npc/002-2/bleacher.txt new file mode 100755 index 00000000..daea556d --- /dev/null +++ b/npc/002-2/bleacher.txt @@ -0,0 +1,130 @@ + +002-2,72,92,0 script Candide NPC156,{ + mes "[Candide]"; + mes "\"Greetings! I am Candide the Bleacher."; + mes "Tulimshar is my homeland, where I learned the ancient art of bleaching.\""; + next; + mes "\"Bleaching was originally done by the sun, but now we use ash combined with special ingredients to remove color from fabric.\""; + next; + menu + "What is needed for the bleaching process?", L_Materials, + "I'd like to bleach something.", L_bleach_menu, + "So long.", L_close; + +L_Materials: + mes "[Candide]"; + mes "\"For each item, I will need 3 piles of ash and 5,000 GP for the special ingredients.\""; + next; + menu + "I'd like to bleach something.", L_bleach_menu, + "So long.", L_close; + +L_bleach_menu: + if (countitem("PileOfAsh") < 3) goto L_No_Ash; + if (Zeny < 5000) goto L_No_Money; + cleararray @CANDIDE_items,0,getarraysize(@CANDIDE_items); + cleararray @CANDIDE_color,0,getarraysize(@CANDIDE_color); + cleararray @CANDIDE_menu$,"",getarraysize(@CANDIDE_menu$); + @w = 0; + freeloop 1; // do not check for infinity loop + callsub S_LoopArray; + freeloop 0; // re-enable infinity loop check + @w = 0; + @c = 0; + @p = 0; + if(@CANDIDE_menu$[0] == "") goto L_Nothing; + mes "[Candide]"; + mes "\"Yes?\""; + next; + menu + "Nevermind.", L_close, + @CANDIDE_menu$[0], L_MenuItems, // base array was too big for a dynamic menu so we can't use it + @CANDIDE_menu$[1], L_MenuItems, + @CANDIDE_menu$[2], L_MenuItems, + @CANDIDE_menu$[3], L_MenuItems, + @CANDIDE_menu$[4], L_MenuItems, + @CANDIDE_menu$[5], L_MenuItems, + @CANDIDE_menu$[6], L_MenuItems, + @CANDIDE_menu$[7], L_MenuItems, + @CANDIDE_menu$[8], L_MenuItems, + @CANDIDE_menu$[9], L_MenuItems, + @CANDIDE_menu$[10], L_MenuItems, + @CANDIDE_menu$[11], L_MenuItems, + @CANDIDE_menu$[12], L_MenuItems, + @CANDIDE_menu$[13], L_MenuItems, + @CANDIDE_menu$[14], L_MenuItems, + @CANDIDE_menu$[15], L_MenuItems, + @CANDIDE_menu$[16], L_MenuItems, + @CANDIDE_menu$[17], L_MenuItems; + +S_LoopArray: + @c = 0; + callsub S_LoopColor; + @w = @w + 1; + if(@w < getarraysize($@DYE_items$)) goto S_LoopArray; + return; + +S_LoopColor: + if(countitem($@DYE_colors$[@c] + $@DYE_items$[@w]) > 0) + goto L_AddToMenu; + goto L_LoopColor2; + +L_AddToMenu: + @CANDIDE_items[@p] = @w; + @CANDIDE_color[@p] = @c; + @CANDIDE_menu$[@p] = $@DYE_color_names$[@c]+" "+$@DYE_item_names$[@w]; + @p = @p + 1; + goto L_LoopColor2; + +L_LoopColor2: + @c = @c + 1; + if(@c < getarraysize($@DYE_colors$)) goto S_LoopColor; + return; + +L_Nothing: + mes "[Candide]"; + mes "\"Sorry, you have nothing to bleach.\""; + next; + goto L_close; + +L_MenuItems: + if (countitem("PileOfAsh") < 3) goto L_No_Ash; + if (Zeny < 5000) goto L_No_Money; + @m = @menu - 2; + @it$ = $@DYE_colors$[@CANDIDE_color[@m]] + $@DYE_items$[@CANDIDE_items[@m]]; + if(getitemlink(@it$) == "Unknown Item") mapexit; + delitem @it$, 1; + delitem "PileOfAsh", 3; + Zeny = Zeny - 5000; + getitem $@DYE_items$[@CANDIDE_items[@m]], 1; + goto L_Again; + +L_Again: + mes "[Candide]"; + mes "\"Would you like to bleach something else?\""; + next; + menu + "Yes.", L_bleach_menu, + "No.", L_close; + +L_No_Ash: + mes "[Candide]"; + mes "\"You don't have enough ash for me to bleach anything."; + mes "I need three piles.\""; + next; + goto L_close; + +L_No_Money: + mes "[Candide]"; + mes "\"You don't have enough gold for me to bleach anything."; + mes "I need 5,000 GP for supplies.\""; + next; + goto L_close; + +L_close: + mes "[Candide]"; + mes "\"Come again.\""; + close2; + emotion EMOTE_GRIN, strcharinfo(0); + end; +} |