summaryrefslogtreecommitdiff
path: root/npc/021-4
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-06-10 11:09:15 -0300
committerJesusaves <cpntb1@ymail.com>2019-06-10 11:09:15 -0300
commitf435bbcaab6139d0ce232ce0ba1f49bc5d9eaf0b (patch)
treea0849478024dd47c8a6145c8473631dc455a9971 /npc/021-4
parent6c3f9b19c38060babd5ea8fd6e1c4689717eb377 (diff)
downloadserverdata-f435bbcaab6139d0ce232ce0ba1f49bc5d9eaf0b.tar.gz
serverdata-f435bbcaab6139d0ce232ce0ba1f49bc5d9eaf0b.tar.bz2
serverdata-f435bbcaab6139d0ce232ce0ba1f49bc5d9eaf0b.tar.xz
serverdata-f435bbcaab6139d0ce232ce0ba1f49bc5d9eaf0b.zip
Rewrite Cindy Quest. Difficulty was fixed, wave spawn was fixed, etc.
Diffstat (limited to 'npc/021-4')
-rw-r--r--npc/021-4/main.txt87
1 files changed, 58 insertions, 29 deletions
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";