From cd71949def7c2c9b86991b92f4462136671757a3 Mon Sep 17 00:00:00 2001 From: wushin Date: Wed, 25 Dec 2013 09:08:06 -0600 Subject: Annual Xmas Event --- world/map/npc/annuals/xmas/list.txt | 102 ++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 world/map/npc/annuals/xmas/list.txt (limited to 'world/map/npc/annuals/xmas/list.txt') diff --git a/world/map/npc/annuals/xmas/list.txt b/world/map/npc/annuals/xmas/list.txt new file mode 100644 index 00000000..a03db395 --- /dev/null +++ b/world/map/npc/annuals/xmas/list.txt @@ -0,0 +1,102 @@ +// This file is part of Christmas Event +// author: Jenalya, Chayenne, cinderweb, wushin +// please see #XmasConfig + +function|script|XmasCheckList|, +{ + set @xmas_list_count, 0; + set @xmas_list_loop, 0; + + if((@xmas_list_deliver) || !(@xmas_list_gather)) + goto L_Return; + +L_Loop: + if(XMASTIME & $@xmas_child_list[@xmas_list_loop]) + goto L_AddOne; + goto L_LoopAgain; + +L_AddOne: + set @xmas_list_count, (@xmas_list_count + 1); + goto L_LoopAgain; + +L_LoopAgain: + if((@xmas_list_loop + 1) == getarraysize($@xmas_child_list)) + goto L_ListTally; + set @xmas_list_loop, (@xmas_list_loop + 1); + goto L_Loop; + +L_ListTally: + if(@xmas_list_count == $@xmas_perfect_list_count) + goto L_PerfectList; + if(@xmas_list_count > $@xmas_required_list_count) + goto L_SetListState; + goto L_Return; + +L_PerfectList: + set XMASTIME, XMASTIME | $@xmas_all_lists_bit; + goto L_SetListState; + +L_SetListState: + set @xmas_state, $@xmas_list_complete_state; + callfunc "XmasSetState"; + goto L_Return; + +L_Return: + set @xmas_list_loop, 0; + return; +} + +function|script|XmasList|, +{ + callfunc "XmasStates"; + + if(($@xmas_time) && (@xmas_list_gather) && !(@xmas_list_complete)) + goto L_QuestTime; + goto L_Return; + +L_QuestTime: + if(XMASTIME & $@xmas_child_list[$@child_number]) + goto L_Return; + goto L_GetList; + +L_GetList: + menu + "Hey, I have come to collect your wish list for Santa", L_List, + "Oh sorry, what were you going to say?", L_Return; + +L_List: + mes "[" + $@xmas_child_list_name$[$@child_number] + "]"; + mes "Here is my list. Make sure it gets delivered, please!"; + next; + mes "You store " + $@xmas_child_list_name$[$@child_number] + "'s wish list carefully in a hidden pocket of your backpack."; + set XMASTIME, XMASTIME | $@xmas_child_list[$@child_number]; + callfunc "XmasXpReward"; + menu + "I really should be going.", L_Return; + +L_Return: + return; +} + +function|script|XmasListList|, +{ + set @xmas_list_loop, 0; + set @xmas_child_loop, 0; + +L_Loop: + set @xmas_child_loop, ($@xmas_child_list[@xmas_list_loop]); + if ((XMASTIME & @xmas_child_loop) != 0) goto L_LoopAgain; + mes "\"" + $@xmas_child_list_name$[@xmas_list_loop] + "\""; + next; + goto L_LoopAgain; + +L_LoopAgain: + if((@xmas_list_loop + 1) == getarraysize($@xmas_child_list_name$)) + goto L_Return; + set @xmas_list_loop, (@xmas_list_loop + 1); + goto L_Loop; + +L_Return: + set @xmas_list_loop, 0; + return; +} -- cgit v1.2.3-60-g2f50