diff options
Diffstat (limited to 'world/map/npc/mobs')
-rw-r--r-- | world/map/npc/mobs/mob_kill_handler.txt | 66 | ||||
-rw-r--r-- | world/map/npc/mobs/mob_points.txt | 178 |
2 files changed, 244 insertions, 0 deletions
diff --git a/world/map/npc/mobs/mob_kill_handler.txt b/world/map/npc/mobs/mob_kill_handler.txt new file mode 100644 index 00000000..5542dcdb --- /dev/null +++ b/world/map/npc/mobs/mob_kill_handler.txt @@ -0,0 +1,66 @@ + +-|script|#MobKillHandlerInit|32767 +{ + end; + +OnInit: + setarray $@QuestMobs, Maggot, Scorpion, RedScorpion, BlackScorpion, Pinkie, Fluffy, EasterFluffy, Mouboo, Squirrel, TameScorpion, HouseMaggot, AngryScorpion, + Terranite, Yeti, Reinboo, DemonicMouboo, ViciousSquirrel, WickedMushroom, Bluepar, Santaboo, Pollett; + setarray $@NatureKarmaGood, Scorpion, RedScorpion, BlackScorpion, AngryScorpion, DemonicMouboo, ViciousSquirrel, WickedMushroom, Bluepar; + setarray $@NatureKarmaBad, Pinkie, Fluffy, EasterFluffy, Mouboo, Squirrel, Reinboo, Santaboo, Pollett; + setarray $@NatureKarmaBadVal, 3, 3, 3, 4, 2, 3, 3, 3; + end; +} + +function|script|MobKillHandler +{ + if (@mobID < 1002) goto L_Return; + + set .@find, array_search(@mobID, $@QuestMobs); + if (.@find < 0) goto L_Return; + + callfunc "ValonCount"; + if (((QL_VALON >= 2) && (QL_VALON < 6)) && (@mobID == $@ValonMob[@valon_mob])) + goto L_ValonMobKill; + goto L_NatureKarma; + +L_ValonMobKill: + callfunc "AddValonCntMask"; + goto L_NatureKarma; + +L_NatureKarma: + set .@find, array_search(@mobID, $@NatureKarmaGood); + if (.@find >= 0) goto L_Good; + set .@find, array_search(@mobID, $@NatureKarmaBad); + if (.@find >= 0) goto L_Bad; + goto L_Celestia; + + // Attitude adjustment for the witch (can we refactor this to another function? Not sure about max. recursion depth) + +L_Bad: + set @value, $@NatureKarmaBadVal[.@find]; + callfunc "QuestSagathaAnnoy"; + goto L_Celestia; + +L_Good: + set @value, 1; + callfunc "QuestSagathaHappy"; + goto L_Celestia; + +L_Celestia: + if (QL_CELESTIA < 5 || QL_CELESTIA >= 205 || @mobID != Yeti) goto L_Terranite; + set QL_CELESTIA, QL_CELESTIA + 1; + if (QL_CELESTIA == 205) + message strcharinfo(0), "Yeti : ##3This should be enough yetis killed to please Celestia."; + goto L_Terranite; + +L_Terranite: + if (TERRAC < 1 || TERRAC > 1500 || @mobID != Terranite) goto L_Return; + if (TERRAC % 100 == 0) + message strcharinfo(0), "Terranite : ##3Total Terranites Slain: "+TERRAC; + set TERRAC, TERRAC + 1; + goto L_Return; + +L_Return: + return; +} diff --git a/world/map/npc/mobs/mob_points.txt b/world/map/npc/mobs/mob_points.txt new file mode 100644 index 00000000..4d63fca3 --- /dev/null +++ b/world/map/npc/mobs/mob_points.txt @@ -0,0 +1,178 @@ +// Mob points + +function|script|MobPoints +{ + if (@mobID < 1002) goto L_Return; + + setarray @points, + 1, // Maggot + 2, // Scorpion + 20, // Red Scorpion + 40, // Green Slime + 30, // Giant Maggot + 15, // Yellow Slime + 25, // Red Slime + 45, // Black Scorpion + 50, // Snake + 6, // Fire Goblin + 55, // Spider + 35, // Evil Mushroom + 35, // Pink Flower + 40, // Santa Slime + 15, // Rudolph Slime + 2, // Bat + 16, // Pinkie + 10, // Spiky Mushroom + 14, // Fluffy + 25, // Cave Snake + 200, // Jack O + 85, // Fire Skull + 85, // Poison Skull + 20, // Log Head + 70, // Mountain Snake + 15, // Easter Fluffy + 40, // Mouboo + 0, // Mauve Plant + 0, // Cobalt Plant + 0, // Gamboge Plant + 0, // Alizarin Plant + 20, // Sea Slime + 75, // Grass Snake + 0, // Silk Worm + 125, // Zombie + 0, // Clover Patch + 5, // Squirrel + 0, // Fire Lizard + 80, // Wisp + 15, // Snail + 80, // Spectre + 100, // Skeleton + 100, // Lady Skeleton + 150, // Fallen + 0, // Snake Lord + 80, // Poltergeist + 0, // Duck + 15, // Bee + 0, // Larvespa + 0, // Vespa + 0, // Hivespa + 0, // Froad + 0, // Troll + 15, // Butterfly + 2, // Cave Maggot + 10, // Angry Scorpion + 6, // Ice Goblin + 20, // Archant + 40, // Giant Cave Maggot + 35, // Moggun + 100, // Terranite + 10, // Pumpkin + 10, // Bandit + 20, // Bandit Lord + 30, // Vampire Bat + 20, // Reaper + 20, // Reaper2 + 100, // Scythe + 20, // Ball Lightning + 60, // Ice Element + 80, // Yeti + 100, // The Lost + 60, // Red Bone + 60, // Stalker + 0, // Dreadwing + 100, // Drunken Skeleton + 100, // Tipsy Skeleton + 100, // Drunken Lady Skeleton + 60, // BlueSpark + 60, // RedSpark + 0, // Serqet + 60, // HuntsmanSpider, + 40, // CrotcherScorpion, + 0, // IceSkull, + 120, // FeyElement, + 10, // Larvern, + 60, // Hyvern, + 20, // HungryFluffy, + 40, // Wolvern, + 50, // BlueSlime, + 0, // SlimeBlast, + 20, // WhiteSlime, + 40, // Reinboo, + 0, // WhiteBell, + 60, // SoulSnake + 100, // SoulEater + 25, // CopperSlime + 0, // SleepingBandit + 20, // AzulSlime + 80, // DemonicSpirit + 940, // Luvia + 150, // WitchGuard + 50, // DemonicMouboo + 15, // ViciousSquirrel + 20, // WickedMushroom + 18, // Bluepar + 10, // AngryFireGoblin + 35, // AngrySeaSlime + 50, // CandiedSlime + 40, // Santaboo + 30, // Pollett + 100, //Nutcracker + 40, // SeaSlimeMother + 50, // UndeadWitch + 60, // UndeadTroll + 80, // GreenSlimeMother + 100, // Thug + 100, // Swashbuckler + 100, // Grenadier + 150, // DreadPirateMarley + 10, // DreadPirateMarleyClone + 100, // Wight + 100, // ManaGhost + 100, // PsiBrain + 150, // GeneralKurkan + 175 // GeneralRazha + // No more room! script engine is buggy, sorry. + // -o11c + ; // END + + setarray @points_extended, + 200, // 1129 GeneralTerogan + 100, // 1130 Moonshroom + 20, // 1131 ManaBug + 80, // 1132 LavaSlime + 80, // 1133 Anne + 200, // 1134 SUSAN + 80, // 1135 LovelyMaggot + 10, // 1136 LesserGhost + 500, // 1137 Tormenta + 200, // 1138 ManaGuardian + 10, // 1139 Virus + 200, // 1140 Tengu + 200, // 1141 Sasquatch + 999, // 1142 ZaxDeKagen + 200, // 1143 ManaSlayer + 200 // 1144 GreatDragon + ; + + if ((MPQUEST == 1) && (@mobID < 1129)) + goto L_Table1; + + if ((MPQUEST == 1) && (@mobID > 1128)) + goto L_Table2; + + goto L_PostLoop; + +L_Table1: + set Mobpt, Mobpt + @points[@mobID - 1002]; + goto L_PostLoop; + +L_Table2: + set Mobpt, Mobpt + @points_extended[@mobID - 1129]; + goto L_PostLoop; + +L_PostLoop: + goto L_Return; + +L_Return: + return; +} |