diff options
author | Hello TMW <hello@themanaworld.org> | 2024-12-17 00:22:44 +0000 |
---|---|---|
committer | Led Mitz <smoothshifter@tuta.io> | 2024-12-17 00:22:44 +0000 |
commit | f67c3300144dda53711fb491f2027e0ffdf0de17 (patch) | |
tree | 7eeb99e9b26ef3ddff46b045aa701c0cf22a8e6c | |
parent | c7963afd9f5ce57d3524b56d9709afeb68311158 (diff) | |
download | serverdata-f67c3300144dda53711fb491f2027e0ffdf0de17.tar.gz serverdata-f67c3300144dda53711fb491f2027e0ffdf0de17.tar.bz2 serverdata-f67c3300144dda53711fb491f2027e0ffdf0de17.tar.xz serverdata-f67c3300144dda53711fb491f2027e0ffdf0de17.zip |
This adds actual SuperSlime splitting on top of "spawns on mob kill"
Extras for spawns on mob kill - actual **slime splitting** fun is **here**.
The following extra spawns are in effect (compared to already merged):
Mob -> to what it decays
GreenSuperSlime -> AngryGreenSlime (same as GreenSlimeMother split)
YellowSuperSlime -> YellowSlime
RedSuperSlime -> RedSlime
BlueSuperSlime -> BlueSlime (fewer than former as they're powerful)
-rw-r--r-- | world/map/npc/functions/spawns_on_mobkill.txt | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/world/map/npc/functions/spawns_on_mobkill.txt b/world/map/npc/functions/spawns_on_mobkill.txt index 1a1d03e8..0d9596db 100644 --- a/world/map/npc/functions/spawns_on_mobkill.txt +++ b/world/map/npc/functions/spawns_on_mobkill.txt @@ -1,23 +1,39 @@ -// Spawns some mobs on death of some other mob. Say split slime -> few smaller ones +// Mob splitting/spawn logic By Hello=) + +// Spawns some mobs on death of other mob. E.g. split BIG slime -> few smaller ones // This function meant to be called with player RID attached (usually in OnMobKillEvent) // Inputs: nothing, but expects @mobID, @mobX and @mobY set (usually by server) // Return: nothing, but spawns few things. -// TODO: Add few big slime mobs and "split" these (this needs big slime GFX and making mob). function|script|spawns_on_mobkill { if (@mobID == SeaSlimeMother) goto L_SplitSea; - if (@mobID == GreenSlimeMother) goto L_SplitGreen; + if ((@mobID == GreenSlimeMother) || (@mobID == GreenSuperSlime)) goto L_SplitGreen; + if (@mobID == YellowSuperSlime) goto L_SplitYellow; + if (@mobID == RedSuperSlime) goto L_SplitRed; + if (@mobID == BlueSuperSlime) goto L_SplitBlue; if (@mobID == Tormenta) goto L_TorWitchDead; - if (@mobID == Blanc1) goto L_Blanc1Dead; if ((@mobID == Luvia) && (getmap() != "052-2")) goto L_LuvWitchDead; // Skip spawns if its Illia + if (@mobID == Blanc1) goto L_Blanc1Dead; return; // Not mob of interest -> do nothing L_SplitSea: - void call("spawn_mobs_around", getmap(), @mobX, @mobY, AngrySeaSlime, rand(8, 20)); + void call("spawn_mobs_around", getmap(), @mobX, @mobY, AngrySeaSlime, rand(8, 16)); return; L_SplitGreen: - void call("spawn_mobs_around", getmap(), @mobX, @mobY, AngryGreenSlime, rand(8, 20)); + void call("spawn_mobs_around", getmap(), @mobX, @mobY, AngryGreenSlime, rand(8, 16)); + return; + +L_SplitYellow: + void call("spawn_mobs_around", getmap(), @mobX, @mobY, YellowSlime, rand(6, 16)); + return; + +L_SplitRed: + void call("spawn_mobs_around", getmap(), @mobX, @mobY, RedSlime, rand(6, 16)); + return; + +L_SplitBlue: + void call("spawn_mobs_around", getmap(), @mobX, @mobY, BlueSlime, rand(3, 6)); return; L_TorWitchDead: @@ -27,8 +43,9 @@ L_TorWitchDead: return; L_LuvWitchDead: - void call("spawn_mobs_around", getmap(), @mobX, @mobY, VoidBat, rand(6, 10)); - void call("spawn_mobs_around", getmap(), @mobX, @mobY, DemonicSpirit, rand(4, 8)); + void call("spawn_mobs_around", getmap(), @mobX, @mobY, VoidBat, rand(7, 12)); + void call("spawn_mobs_around", getmap(), @mobX, @mobY, DemonicSpirit, rand(5, 8)); + void call("spawn_mobs_around", getmap(), @mobX, @mobY, UndeadWitch, 1); return; L_Blanc1Dead: |