From f435bbcaab6139d0ce232ce0ba1f49bc5d9eaf0b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Mon, 10 Jun 2019 11:09:15 -0300 Subject: Rewrite Cindy Quest. Difficulty was fixed, wave spawn was fixed, etc. --- npc/021-4/main.txt | 87 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 58 insertions(+), 29 deletions(-) (limited to 'npc/021-4/main.txt') diff --git a/npc/021-4/main.txt b/npc/021-4/main.txt index 30c5c2bb2..cb6003b44 100644 --- a/npc/021-4/main.txt +++ b/npc/021-4/main.txt @@ -115,7 +115,7 @@ L_Cheat: L_Reset: if ($@CINDY_HERO$ == strcharinfo(0)) { goto L_Winner; - } else if (is_gm()) { + } else if (is_gm() && $@GM_OVERRIDE) { $@CINDY_STATE=0; npctalk l("*beeep*"); } @@ -235,7 +235,7 @@ L_CleanUp: end; // Main loop -OnTimer2500: +OnTimer2000: .@y=mobcount("021-4", "Cindy#Outside::OnPetDeath"); // This finishes the quest @@ -245,35 +245,65 @@ OnTimer2500: areatimer "021-4", 20, 20, 100, 80, 10, "Cindy#Outside::OnReward"; goto L_CleanUp; } - .wtime+=5; - .@bonus=(.lifetime/5)*5; // After every 5 rounds, spawn slower - if (.wtime >= rand(90,120)+.@bonus+(.lifetime*rand(11,12))) { + .wtime+=2; + + // Before 10 minutes, spawn every ~ 2 minutes + .@bonus=rand2(110,130); + // After 10 waves, spawn each ~ 10 minutes + if (.lifetime >= 10) + .@bonus+=500; + + // After 15 waves, we'll go a bit slower, but not much. + // You are a noob and should fail the quest. + if (.lifetime >= 15) + .@bonus+=.lifetime*2; + + if (.wtime >= .@bonus) { + // A new wave have passed .wtime=0; .lifetime+=1; - .@pl = getmapusers("021-4")+1; - // Wave Limit: After limit, monsters stop spawning, but wave counter keeps going - if (.lifetime <= .wavelimit) { - // If gate was unlocked, more Yetis will appear depending on switches state. - if (.canfinish) - .@pl+=5-CindySwitch_Check_214(); - .@value=(.@pl/2)+($@CINDY_STATE/2)+(.lifetime/3); - areamonster "021-4", 20, 20, 100, 80, "Yeti", Yeti, (.@value+1)/2, "Cindy#Outside::OnPetDeath"; - areamonster "021-4", 20, 20, 100, 80, "Moggun", Moggun, (.@value+1)/2, "Cindy#Outside::OnPetDeath"; - npctalk any("Yetis!", - "Watch out!", - "More of them are coming!", - "Be careful! There's more!", - "More Yetis! Will this never end?", - "AAAAH! YETIS!", - "*shierks*", - "There are coming more and more!", - "More Yetis! We are hopeless!", - "Keep your guard up!", - "Hit and run, hit and run! More of them!"); - } + .@pl = getmapusers("021-4"); + + // Once the gate is open, more Yetis spawn, but not much + if (.canfinish) + .@pl+=1; + + // Value is given as: 1 Yeti per player + .@value=.@pl; + // + 1 Yeti per difficulty setting + .@value+=($@CINDY_STATE/2); + // +1 Yetis if you are alone because this is not a solo quest at heart + if (.@pl == 1) + .@value+=1; + + // To make easier, we spawn some Mogguns, too. + // The ratio is Yeti 2:1 Moggun. (Third Yeti is replaced) + .@mogg=.@value/3; + .@yeti=.@value-@mogg; + areamonster "021-4", 20, 20, 100, 80, "Yeti", Yeti, .@yeti, "Cindy#Outside::OnPetDeath"; + areamonster "021-4", 20, 20, 100, 80, "Moggun", Moggun, .@mogg, "Cindy#Outside::OnPetDeath"; + npctalk any("Yetis!", + "Watch out!", + "More of them are coming!", + "Be careful! There's more!", + "More Yetis! Will this never end?", + "AAAAH! YETIS!", + "*shierks*", + "There are coming more and more!", + "More Yetis! We are hopeless!", + "Keep your guard up!", + "Hit and run, hit and run! More of them!"); } - areamonster "021-4", 20, 20, 100, 80, "Slime Blast", SlimeBlast, $@CINDY_STATE; - if (.lifetime >= 63) + + // Regardless of Wave, Blue Slimes and Slime Blast will show up. + // This is based difficulty setting (previous fails) + if (.wtime % 10 == 2) { + .@mid=any(SlimeBlast, SlimeBlast, SlimeBlast, BlueSlime, BlueSlime, AzulSlime); + areamonster "021-4", 20, 20, 100, 80, strmobinfo(1, .@mid), .@mid, $@CINDY_STATE; + } + + // You're taking too much time, clear the spot after the 40th wave + if (.lifetime >= 40) goto L_Reckless; initnpctimer; end; @@ -283,7 +313,6 @@ OnInit: .lifetime=0; // Controls Yeti Wave .wtime=0; // Timer runs sort of often. WTime controls automatic Yeti advance .canfinish=0;// Can finish or must talk to cage first? - .wavelimit=30; // max number of waves $@CINDY_HERO$=""; disablenpc "#CindySwitch_06"; disablenpc "#CindySwitch_07"; -- cgit v1.2.3-60-g2f50