diff options
Diffstat (limited to 'world/map/npc/xmas/2011/santa.txt')
-rw-r--r-- | world/map/npc/xmas/2011/santa.txt | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/world/map/npc/xmas/2011/santa.txt b/world/map/npc/xmas/2011/santa.txt new file mode 100644 index 00000000..70e83e7e --- /dev/null +++ b/world/map/npc/xmas/2011/santa.txt @@ -0,0 +1,138 @@ +// This file is part of Christmas Event 2011 +// author: Jenalya +// Santa's room is open after Christmas +// gives rewards depending on how much the player helped + +030-2.gat,197,62,0|script|Santa|105,{ + + if (!(gettime(7) == $@xmas2011_year && gettime(6) == 12 && gettime(5) >= $@xmas2011_start_day)) + goto L_NoEvent; + if ((gettime(7) == $@xmas2011_year && gettime(6) == 12 && gettime(5) >= $@xmas2011_reward_start_day)) + goto L_RewardTime; + + if (xmas11 & $@xmas11_talkedToChief) goto L_Helping; + + mes "[Santa]"; + mes "\"Oh, how did you come in? I'm very sorry, but I have to ask you to leave my room."; + mes "I'll have time for you after Christmas.\""; + warp "030-2.gat", 78, 88; + goto L_Close; + +L_Helping: + mes "[Santa]"; + mes "\"Hello. I see you're helping with the preparations for Christmas. That's very kind of you."; + mes "But I have to ask you to leave my room, I'll have time for you after Christmas.\""; + warp "030-2.gat", 78, 88; + goto L_Close; + +L_NoEvent: + mes "[Santa]"; + mes "\"I'm sorry, we're closing this house around this time of the year.\""; + warp "030-1.gat", 99, 55; + goto L_Close; + +L_RewardTime: + callfunc "xmas2011points"; + if (xmas11 & $@xmas11_SantaReward) goto L_Done; + + mes "[Santa]"; + mes "\"Welcome to my house!\""; + + if (@helppoints == 0) + goto L_NoHelp; + getinventorylist; + if (@inventorylist_count > 80) + goto L_Full_Inv; + mes "[Santa]"; + mes "\"I see you've been helping with the preparations for Christmas.\""; + next; + if (@helppoints < $@xmas2011_main_rewardcost) + goto L_NoMainReward; + getitem "ElfNightcap", 1; + set @helppoints, @helppoints - $@xmas2011_main_rewardcost; + mes "\"Things would've been a disaster without your help! Please have this."; + mes "Something a helper of mine really needs after the work is done.\""; + next; + +L_NoMainReward: + if (@helppoints < $@xmas2011_toy_rewardcost) + goto L_NoToyReward; +L_ToyAgain: + set @toy_reward, rand(4); + if (@toy_reward == 0) + getitem "PlushMouboo", 1; + if (@toy_reward == 1) + getitem "StickReinboo", 1; + if (@toy_reward == 2) + getitem "Doll", 1; + if (@toy_reward == 3) + getitem "LeatherBall", 1; + set @helppoints, @helppoints - $@xmas2011_toy_rewardcost; + if (@helppoints >= $@xmas2011_toy_rewardcost) + goto L_ToyAgain; + mes "\"I have some toys for you.\""; + next; + +L_NoToyReward: + if (@helppoints < $@xmas2011_gloves_rewardcost) + goto L_NoGlovesReward; + set @gloves, $@glove_id + rand(10); + getitem @gloves, 1; + set @helppoints, @helppoints - $@xmas2011_gloves_rewardcost; + mes "\"This will keep your hands warm.\""; + next; + +L_NoGlovesReward: + if (@helppoints == 0) + goto L_Done; + mes "\"Have some candy.\""; + next; + if (@helppoints < $@xmas2011_gingerbreadman_rewardcost) + goto L_NoGBMReward; + set @candy_amount, @helppoints/$@xmas2011_gingerbreadman_rewardcost; + getitem "GingerBreadMan", @candy_amount; + set @helppoints, @helppoints - @candy_amount*$@xmas2011_gingerbreadman_rewardcost; +L_NoGBMReward: + if (@helppoints < $@xmas2011_xmascake_rewardcost) + goto L_NoXmasCakeReward; + set @candy_amount, @helppoints/$@xmas2011_xmascake_rewardcost; + getitem "XmasCake", @candy_amount; + set @helppoints, @helppoints - @candy_amount*$@xmas2011_xmascake_rewardcost; +L_NoXmasCakeReward: + if (@helppoints < $@xmas2011_candy_rewardcost) + goto L_Done; + set @candy_amount, @helppoints/$@xmas2011_candy_rewardcost; + getitem "Candy", @candy_amount; + set @helppoints, @helppoints - @candy_amount*$@xmas2011_candy_rewardcost; + +L_Done: + mes "[Santa]"; + mes "\"Merry Christmas!\""; + set xmas11, xmas11 | $@xmas11_SantaReward; + goto L_Close; + +L_Full_Inv: + mes "[Santa]"; + mes "\"Ho, you carry a lot of things with you. Please come back later.\""; + goto L_Close; + +L_NoHelp: + mes "[Santa]"; + if (@sabotagepoints > 0) + mes "\"You weren't a good kid this year...\""; + if (@sabotagepoints > 0) + mes "He looks very disappointed."; + if (@sabotagepoints == 0) + mes "\"Please enjoy your time in my house! Merry Christmas!\""; + goto L_Close; + +L_Close: + set @menu, 0; + set @inventorylist_count, 0; + set @toy_reward, 0; + set @gloves, 0; + set @candy_amount, 0; + set @sabotagepoints, 0; + set @helppoints, 0; + close; +} |