From cf18ce071c79ae37e14ea38943e0b1d88da70a7b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 9 Apr 2021 13:33:57 -0300 Subject: Override --- npc/031-4/_import.txt | 5 ++ npc/031-4/barrier.txt | 9 ++ npc/031-4/cindyCave.txt | 224 ++++++++++++++++++++++++++++++++++++++++++++++++ npc/031-4/mapflags.txt | 2 + 4 files changed, 240 insertions(+) create mode 100644 npc/031-4/_import.txt create mode 100755 npc/031-4/barrier.txt create mode 100755 npc/031-4/cindyCave.txt create mode 100755 npc/031-4/mapflags.txt (limited to 'npc/031-4') diff --git a/npc/031-4/_import.txt b/npc/031-4/_import.txt new file mode 100644 index 00000000..d14a4183 --- /dev/null +++ b/npc/031-4/_import.txt @@ -0,0 +1,5 @@ +// Map 031-4: Cindy Cave +// This file is generated automatically. All manually added changes will be removed when running the Converter. +"npc/031-4/barrier.txt", +"npc/031-4/cindyCave.txt", +"npc/031-4/mapflags.txt", diff --git a/npc/031-4/barrier.txt b/npc/031-4/barrier.txt new file mode 100755 index 00000000..64dcb8c1 --- /dev/null +++ b/npc/031-4/barrier.txt @@ -0,0 +1,9 @@ +031-4,40,71,0 script #YetiBarrier-inside NPC45,0,0,{ + if ($@FIGHT_YETI_STATUS == 1) goto L_Block; + warp "031-3", 46, 25; + end; + +L_Block: + message strcharinfo(0), "A force field seems to be blocking you from exiting."; + end; +} diff --git a/npc/031-4/cindyCave.txt b/npc/031-4/cindyCave.txt new file mode 100755 index 00000000..46886638 --- /dev/null +++ b/npc/031-4/cindyCave.txt @@ -0,0 +1,224 @@ + +031-4,42,42,0 script Cindy NPC198,{ + if ($@FIGHT_YETI_STATUS != 0) goto L_Yeti; + + @KEYS_AMOUNT = 10; + @minLevel = 70; + + if (QL_CINDY == 4) goto L_Please_Visit; + if (QL_CINDY == 2) goto L_Reward; + if (QL_CINDY == 1) goto L_Please_Help; + + mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage."; + next; + mes "You don't know what to do."; + goto L_close; + +L_Please_Help: + mes "There is a little girl in a cage. As you come near, she starts to shiver and back off from you as far as she can in that small cage."; + next; + menu + "Hello Cindy, I'm here to save you.", L_Next; + +L_Next: + mes "Cindy doesn't look so scared anymore."; + next; + mes "[Cindy]"; + mes "\"Hello, adventurer. Did my mother send you?\""; + next; + mes "\"It's so cold in here! Can you please open the cage?\""; + next; + mes "\"But be careful. If the Yetis hear you, they will come!\""; + menu + "Try to open the cage", L_Try_Cage, + "Leave", L_close; + +L_Try_Cage: + if (BaseLevel < @minLevel) + goto L_To_Weak; + if (countitem("TreasureKey") < @KEYS_AMOUNT) + goto L_Not_Enough_Keys; + delitem "TreasureKey", @KEYS_AMOUNT; + mes "As you try to open the door of the cage, there is a loud squeaking noise."; + next; + mes "You get an uncomfortable feeling and Cindy starts to shiver."; + if ($@FIGHT_YETI_STATUS != 0) + goto L_Yeti; + npctalk strnpcinfo(0), "Oh no, the Yetis..."; + + // initialize fight + $@FIGHT_YETI_STATUS = 1; + $@FIGHT_YETI_WAVE = 0; + $@YETI_COUNT = 1; + $@FIGHT_YETI_PLAYER_COUNT = getmapusers("031-4"); + areamonster "031-4", 0, 0, 95, 91, "", 1072, 1, "Cindy::OnPetDeath"; + + initnpctimer; + goto L_close; + +L_Yeti: + mes "[Cindy]"; + mes "\"Watch out, the Yetis!\""; + goto L_close; + +L_Reward: + mes "[Cindy]"; + mes "\"You are a hero! All these strong monsters!\""; + next; + mes "\"I've found this thing in the cave - it looks valuable. I want you to have it.\""; + next; + getinventorylist; + if (@inventorylist_count == 100) + goto L_Full_Inv; + + @reward = rand(15); + if (@reward < 10) + goto L_Wizard_Hat; + getitem "WoodenStaff", 1; + QL_CINDY = 3; + goto L_Visit; + +L_Wizard_Hat: + // get a wizard hat in one of the ten colors - no white + setarray @wizardhats[0], 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209; + getitem @wizardhats[@reward], 1; + QL_CINDY = 3; + goto L_Visit; + +L_Visit: + mes "\"Thank you so much; please come to my home. It's the house at the beach.\""; + next; + mes "\"I'm sure my mother wants to thank you as well.\""; + goto L_close; + +L_Please_Visit: + mes "[Cindy]"; + mes "\"Thank you, thank you! You're a hero! Please come home with me to our house at the beach!\""; + goto L_close; + +L_To_Weak: + mes "You try to open the cage, but it's stuck. It seems you're too weak!"; + goto L_close; + +L_Not_Enough_Keys: + mes "You don't have enough keys to open the cage."; + goto L_close; + +L_Full_Inv: + mes "\"Oh, it seems you carry so much stuff - I will keep it for you until you can take it.\""; + goto L_close; + +L_close: + @KEYS_AMOUNT = 0; + @minLevel = 0; + @inventorylist_count = 0; + cleararray @wizardhats, 0, 10; + @reward = 0; + close; + +OnTimer5000: + setnpctimer 0; + if ($@FIGHT_YETI_STATUS != 0) + goto L_CaveLogic; + goto L_Return_1; + +L_Return_1: + $@FIGHT_YETI_PLAYER_COUNT = 0; + areatimer 0, "031-4", 0, 0, 95, 91, 10, "Cindy::OnTick"; + end; + +L_CaveLogic: + $@FIGHT_YETI_ROUND_PEN = $@FIGHT_YETI_PLAYER_COUNT; + if ($@FIGHT_YETI_ROUND_PEN > 60) + $@FIGHT_YETI_ROUND_PEN = 60; + if ($@FIGHT_YETI_PLAYER_COUNT <= 0) + goto L_CleanUp; + set $@FIGHT_YETI_ROUND_TIMER, $@FIGHT_YETI_ROUND_TIMER + 5; // Advance 5 seconds + if (mobcount("031-4", "Cindy::OnPetDeath") < 0) + goto L_NextWave; + if ($@FIGHT_YETI_ROUND_TIMER + $@FIGHT_YETI_ROUND_PEN >= 120) + goto L_NextWave; + goto L_Return_1; + +L_NextWave: + $@FIGHT_YETI_ROUND_TIMER = 0; + $@FIGHT_YETI_WAVE = $@FIGHT_YETI_WAVE + 1; + if ($@FIGHT_YETI_WAVE > 10 + && $@YETI_COUNT == 0) + goto L_CleanUp; + if ($@FIGHT_YETI_WAVE > 10 + && $@FIGHT_YETI_WAVE < 22) + goto L_Return_1; + if ($@FIGHT_YETI_WAVE > 22) + areamonster "031-4", 0, 0, 95, 91, "", 1072, $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5, "Cindy::OnPetDeath"; + if ($@FIGHT_YETI_WAVE > 22) + $@YETI_COUNT = $@YETI_COUNT + $@FIGHT_YETI_WAVE*2 + $@FIGHT_YETI_PLAYER_COUNT*5; + $@FIGHT_YETI_NUMBER = (5 + (1 * $@FIGHT_YETI_WAVE) + (2 * $@FIGHT_YETI_PLAYER_COUNT))/4; + $@YETI_COUNT = $@YETI_COUNT + $@FIGHT_YETI_NUMBER; + + areamonster "031-4", 0, 0, 95, 91, "", 1072, $@FIGHT_YETI_NUMBER, "Cindy::OnPetDeath"; + + $@msg$ = $@FIGHT_YETI_MESSAGES$[$@FIGHT_YETI_WAVE]; + if ($@msg$ == "") + goto L_Return_1; + mapannounce "031-4", $@msg$, 0; + mapannounce "031-3", $@msg$, 0; + $@msg$ = ""; + goto L_Return_1; + +OnTick: + if (ispcdead()) end; + $@FIGHT_YETI_PLAYER_COUNT = $@FIGHT_YETI_PLAYER_COUNT + 1; + end; + +OnPetDeath: + $@YETI_COUNT = $@YETI_COUNT - 1; + end; + +L_CleanUp: + areatimer 0, "031-4", 0, 0, 95, 91, 10, "Cindy::OnReward"; + $@FIGHT_YETI_STATUS = 0; + $@FIGHT_YETI_PLAYER_COUNT = 0; + $@FIGHT_YETI_WAVE = 0; + $@FIGHT_YETI_ROUND_TIMER = 0; + $@YETI_COUNT = 0; + $@FIGHT_YETI_ROUND_PEN = 0; + $@FIGHT_YETI_NUMBER = 0; + killmonster "031-4", "Cindy::OnPetDeath"; + stopnpctimer; + setnpctimer 0; + end; + +OnReward: + if (ispcdead()) end; + @bonus = (BaseLevel/2); + DailyQuestBonus = DailyQuestBonus + @bonus; + message strcharinfo(0), "You feel a temporary rush of power and zest for action. " + @bonus + " daily bonus gained." ; + if (QL_CINDY != 1 ) + goto L_End; + QL_CINDY = 2; + message strcharinfo(0), "Cindy looks relieved and as if she wants to talk with you."; + BOSS_POINTS = BOSS_POINTS + 70; + message strcharinfo(0), "You gain 70 Boss Points giving you a total of " + BOSS_POINTS + "."; + goto L_End; + +L_End: + @bonus = 0; + end; + +OnInit: + setarray $@FIGHT_YETI_MESSAGES$[0], + "", // unused + // " : " is magic so that it says "global announcement from" + "Cindy : Yetis!", + "Cindy : Watch out!", + "Cindy : More of them are coming!", + "Cindy : Be careful! More of them!", + "Cindy : Attention! There is another bunch of them!", + "Cindy : Hang on! More of them!", + "Cindy : More Yetis! Will this never end?", + "Cindy : There are coming more and more!", + "Cindy : Watch your back! There are so many of them!", + "Cindy : This seems to be their final attack! I believe in you!"; + end; +} diff --git a/npc/031-4/mapflags.txt b/npc/031-4/mapflags.txt new file mode 100755 index 00000000..06a10489 --- /dev/null +++ b/npc/031-4/mapflags.txt @@ -0,0 +1,2 @@ +031-4 mapflag nosave 031-3,46,26 +//031-4 mapflag resave 031-3,46,26 -- cgit v1.2.3-70-g09d2