diff options
-rw-r--r-- | npc/006-1/crazyfefe.txt | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/npc/006-1/crazyfefe.txt b/npc/006-1/crazyfefe.txt index 86047d367..806d7fcd1 100644 --- a/npc/006-1/crazyfefe.txt +++ b/npc/006-1/crazyfefe.txt @@ -133,7 +133,10 @@ L_Exit: - +// Recalc difficulty +OnSumLevel: + if (ispcdead()) end; + $@FEFE_DIFFICULTY+=BaseLevel; end; // Check if we're ready for next wave. Otherwise, do this check again after 5 seconds. L_CaveLogic: @@ -151,6 +154,10 @@ L_CaveLogic: goto L_CleanUp; } + // Recalculate difficulty + $@FEFE_DIFFICULTY=0; + areatimer "006-1", 20, 20, 70, 60, 10, "Crazyfefe::OnSumLevel"; + // reset timer initnpctimer; end; @@ -160,6 +167,7 @@ L_NextRound: $@FEFE_WAVE = $@FEFE_WAVE + 1; // Prepare next round, and reward survivors $@FEFE_CAVE_LEVEL = $@FEFE_CAVE_LEVEL + $@FEFE_CAVE_PLAYER_COUNT + rand(1,3) + $@FEFE_WAVE; + $@FEFE_DIFFICULTY+=$@FEFE_CAVE_PLAYER_COUNT+$@FEFE_WAVE; areatimer "006-1", 20, 20, 70, 60, 10, "Crazyfefe::OnReward"; mapannounce "006-1", "The wave nÂș "+$@FEFE_WAVE+" is starting with " + $@FEFE_CAVE_PLAYER_COUNT + " player(s) left alive." , 0; @@ -170,57 +178,52 @@ L_Summon: .@amount=($@FEFE_CAVE_LEVEL/rand(4,6))+1; freeloop(true); for (.@i = 0; .@i < .@amount; ++.@i) { - .@mid=rand(1,22); + .@monsterId=Piou; - switch (.@mid) { + .@lv=min(1, $@FEFE_DIFFICULTY/10); + + // Luck shall interfer with .@lv (up to +20 random levels) + // This prevents from excess of House Maggots, for example + .@lv+=any(0, 0, 0, 1, 1, 2); + + switch (.@lv) { case 1: - .@monsterId = CaveMaggot ; break; case 2: - //.@monsterId = Wolvern ; break; - .@monsterId = FallenGuard2 ; break; + .@monsterId = any(HouseMaggot, SlimeBlast) ; break; case 3: - .@monsterId = DarkLizard ; break; case 4: - .@monsterId = MagicGoblin ; break; + //.@monsterId = Wolvern ; break; + .@monsterId = any(AngryScorpion, CaveMaggot, MagicGoblin, ViciousSquirrel, AngryBat) ; break; case 5: - .@monsterId = Bandit ; break; case 6: - .@monsterId = GreenSlime ; break; + .@monsterId = any(AngryBat, RedSlime, AngryRedScorpion, DesertBandit, Bandit, Sarracenus, VampireBat, Skeleton, GreenSlime) ; break; case 7: - .@monsterId = LavaSlime ; break; case 8: - .@monsterId = Snake ; break; + .@monsterId = any(GreenSlime, LavaSlime, Bluepar, RedMushroom, CandiedSlime, RobinBandit, AngryYellowSlime, OldSnake, GrassSnake, BlueSlime) ; break; case 9: - .@monsterId = DesertBandit ; break; case 10: - .@monsterId = Sarracenus ; break; + .@monsterId = any(BlueSlime, SaxsoGhost, Snake, BlackSlime, Wolvern, FireSkull, DarkLizard, BlackScorpion) ; break; case 11: - .@monsterId = AngryRedScorpion ; break; case 12: - .@monsterId = BlackScorpion ; break; + .@monsterId = any(BlackScorpion, DustRifle, DustGatling, DustRevolver) ; break; case 13: - .@monsterId = FallenGuard1 ; break; case 14: - .@monsterId = Yeti ; break; + .@monsterId = any(DustRifle, DustGatling, DustRevolver, MountainSnake, Yeti, FallenGuard1, FallenGuard2) ; break; case 15: - .@monsterId = BlackSlime ; break; - //.@monsterId = JackO ; break; case 16: - .@monsterId = RobinBandit ; break; + .@monsterId = any(FallenGuard1, FallenGuard2, BanditLord, Yeti, WickedMushroom) ; break; case 17: - .@monsterId = CandiedSlime ; break; case 18: - .@monsterId = BlackMamba ; break; + .@monsterId = any(Forain, GreenDragon, Michel) ; break; case 19: - .@monsterId = WickedMushroom ; break; case 20: - .@monsterId = BlackSlime ; break; - case 21: - .@monsterId = RedMushroom ; break; + .@monsterId = any(FafiDragon, BlackMamba, JackO, Terranite) ; break; default: - .@monsterId = AngryScorpion ; break; + .@monsterId = any(Tipiu, GiantMutatedBat, Terranite, Reaper) ; break; } areamonster "006-1", 20, 20, 70, 60, strmobinfo(1, .@monsterId), .@monsterId, 1, "Crazyfefe::OnPetDeath"; + // We must lower difficulty according to summoned monster. Only 80% is lowered. + $@FEFE_DIFFICULTY-=min(1, (.@lv-10)*8); } freeloop(false); initnpctimer; |