summaryrefslogtreecommitdiff
path: root/world/map/npc/mobs
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/mobs')
-rw-r--r--world/map/npc/mobs/mob_kill_handler.txt66
-rw-r--r--world/map/npc/mobs/mob_points.txt178
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;
+}