From 10ab9302a5b4261f0e08f5060cde787bfd6c1022 Mon Sep 17 00:00:00 2001 From: Skold177 <113406182+Skold177@users.noreply.github.com> Date: Fri, 20 Mar 2026 13:12:40 -0400 Subject: [PATCH] [lua] [sql] Follow the White Rabbit Adds the ENM Follow the White Rabbit with captures from retail. --- scripts/actions/mobskills/wild_ginseng.lua | 25 ++++ .../follow_the_white_rabbit.lua | 122 ++++++++++++++++++ scripts/enum/mob_skill.lua | 2 + scripts/zones/Bearclaw_Pinnacle/IDs.lua | 1 + .../mobs/Bearclaw_Leveret.lua | 75 +++++++++++ .../mobs/Bearclaw_Rabbit.lua | 62 +++++++++ sql/mob_groups.sql | 4 +- sql/mob_pools.sql | 2 +- sql/mob_skills.sql | 10 +- sql/mob_spawn_points.sql | 36 +++--- 10 files changed, 313 insertions(+), 26 deletions(-) create mode 100644 scripts/actions/mobskills/wild_ginseng.lua create mode 100644 scripts/battlefields/Bearclaw_Pinnacle/follow_the_white_rabbit.lua create mode 100644 scripts/zones/Bearclaw_Pinnacle/mobs/Bearclaw_Leveret.lua create mode 100644 scripts/zones/Bearclaw_Pinnacle/mobs/Bearclaw_Rabbit.lua diff --git a/scripts/actions/mobskills/wild_ginseng.lua b/scripts/actions/mobskills/wild_ginseng.lua new file mode 100644 index 00000000000..afb56aa0340 --- /dev/null +++ b/scripts/actions/mobskills/wild_ginseng.lua @@ -0,0 +1,25 @@ +----------------------------------- +-- Wild Ginseng +-- Description: Adds Haste, Protect, Shell, Regen, and Blink to user. +-- NOTE: These values are ripped from the monstrosity version of this skill, and may not be 100% accurate. +-- TODO: Capture accurate values. +----------------------------------- + +---@type TMobSkill +local mobskillObject = {} + +mobskillObject.onMobSkillCheck = function(target, mob, skill) + return 0 +end + +mobskillObject.onMobWeaponSkill = function(mob, target, skill, action) + xi.mobskills.mobBuffMove(mob, xi.effect.HASTE, 2000, 0, 180) + xi.mobskills.mobBuffMove(mob, xi.effect.PROTECT, 60, 0, 180) + xi.mobskills.mobBuffMove(mob, xi.effect.SHELL, 1750, 0, 180) + xi.mobskills.mobBuffMove(mob, xi.effect.REGEN, 30, 0, 180) + skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.BLINK, 3, 0, 180)) + + return xi.effect.BLINK +end + +return mobskillObject diff --git a/scripts/battlefields/Bearclaw_Pinnacle/follow_the_white_rabbit.lua b/scripts/battlefields/Bearclaw_Pinnacle/follow_the_white_rabbit.lua new file mode 100644 index 00000000000..274992f258e --- /dev/null +++ b/scripts/battlefields/Bearclaw_Pinnacle/follow_the_white_rabbit.lua @@ -0,0 +1,122 @@ +----------------------------------- +-- Follow the White Rabbit +-- Bearclaw Pinnacle ENM, Zephyr Fan +-- !addkeyitem ZEPHYR_FAN +----------------------------------- +local ID = zones[xi.zone.BEARCLAW_PINNACLE] +----------------------------------- + +local content = Battlefield:new({ + zoneId = xi.zone.BEARCLAW_PINNACLE, + battlefieldId = xi.battlefield.id.FOLLOW_THE_WHITE_RABBIT, + maxPlayers = 18, + levelCap = 75, + timeLimit = utils.minutes(30), + index = 1, + entryNpc = 'Wind_Pillar_2', + exitNpc = 'Wind_Pillar_Exit', + requiredKeyItems = { xi.ki.ZEPHYR_FAN, message = ID.text.ZEPHYR_RIPS }, + grantXP = 2500, + armouryCrates = + { + ID.mob.BEARCLAW_RABBIT + 6, + ID.mob.BEARCLAW_RABBIT + 13, + ID.mob.BEARCLAW_RABBIT + 21, + }, +}) + +local function handleDeath(battlefield, mob) + local baseId = ID.mob.BEARCLAW_RABBIT + (battlefield:getArea() - 1) * 7 + + for mobId = baseId, baseId + 5 do + local rabbit = GetMobByID(mobId) + if rabbit and rabbit:isAlive() then + return + end + end + + content:handleAllMonstersDefeated(battlefield, mob) +end + +content.groups = +{ + { + -- Bearclaw Rabbit + mobIds = + { + { + ID.mob.BEARCLAW_RABBIT, + }, + + { + ID.mob.BEARCLAW_RABBIT + 7, + }, + + { + ID.mob.BEARCLAW_RABBIT + 14, + }, + + }, + + death = handleDeath, + }, + + { + -- Bearclaw Leveret + mobIds = + { + { + ID.mob.BEARCLAW_RABBIT + 1, + ID.mob.BEARCLAW_RABBIT + 2, + ID.mob.BEARCLAW_RABBIT + 3, + ID.mob.BEARCLAW_RABBIT + 4, + ID.mob.BEARCLAW_RABBIT + 5, + }, + + { + ID.mob.BEARCLAW_RABBIT + 8, + ID.mob.BEARCLAW_RABBIT + 9, + ID.mob.BEARCLAW_RABBIT + 10, + ID.mob.BEARCLAW_RABBIT + 11, + ID.mob.BEARCLAW_RABBIT + 12, + }, + + { + ID.mob.BEARCLAW_RABBIT + 15, + ID.mob.BEARCLAW_RABBIT + 16, + ID.mob.BEARCLAW_RABBIT + 17, + ID.mob.BEARCLAW_RABBIT + 18, + ID.mob.BEARCLAW_RABBIT + 19, + }, + }, + + spawned = false, + death = handleDeath, + }, +} + +content.loot = +{ + { + { itemId = xi.item.SQUARE_OF_GALATEIA, weight = 3750 }, + { itemId = xi.item.SQUARE_OF_KEJUSU_SATIN, weight = 2500 }, + { itemId = xi.item.POT_OF_VIRIDIAN_URUSHI, weight = 3750 }, + }, + + { + { itemId = xi.item.NONE, weight = 9500 }, + { itemId = xi.item.CLOUD_EVOKER, weight = 500 }, + }, + + { + quantity = 2, + { itemId = xi.item.NONE, weight = 5500 }, + { itemId = xi.item.MARTIAL_SWORD, weight = 800 }, + { itemId = xi.item.SHAMO, weight = 800 }, + { itemId = xi.item.VENTURERS_BELT, weight = 800 }, + { itemId = xi.item.SERENE_RING, weight = 700 }, + { itemId = xi.item.SCROLL_OF_RAISE_III, weight = 1400 }, + }, +} + +return content:register() diff --git a/scripts/enum/mob_skill.lua b/scripts/enum/mob_skill.lua index bc005d30ae3..f6ec3797a5b 100644 --- a/scripts/enum/mob_skill.lua +++ b/scripts/enum/mob_skill.lua @@ -88,6 +88,7 @@ xi.mobSkill = BAD_BREATH_1 = 319, THOUSAND_NEEDLES_1 = 322, + WILD_CARROT_1 = 323, DRILL_BRANCH = 328, PINECONE_BOMB = 329, @@ -564,6 +565,7 @@ xi.mobSkill = CHTHONIAN_RAY = 1359, APOCALYPTIC_RAY = 1360, + WILD_GINSENG = 1362, HUNGRY_CRUNCH = 1363, SINUATE_RUSH = 1367, diff --git a/scripts/zones/Bearclaw_Pinnacle/IDs.lua b/scripts/zones/Bearclaw_Pinnacle/IDs.lua index e224ba963d4..b1d291caaa9 100644 --- a/scripts/zones/Bearclaw_Pinnacle/IDs.lua +++ b/scripts/zones/Bearclaw_Pinnacle/IDs.lua @@ -34,6 +34,7 @@ zones[xi.zone.BEARCLAW_PINNACLE] = }, mob = { + BEARCLAW_RABBIT = GetFirstID('Bearclaw_Rabbit'), SNOW_DEVIL = GetFirstID('Snow_Devil_war'), SNOLL_TZAR_OFFSET = GetFirstID('Snoll_Tzar'), }, diff --git a/scripts/zones/Bearclaw_Pinnacle/mobs/Bearclaw_Leveret.lua b/scripts/zones/Bearclaw_Pinnacle/mobs/Bearclaw_Leveret.lua new file mode 100644 index 00000000000..8630540d1da --- /dev/null +++ b/scripts/zones/Bearclaw_Pinnacle/mobs/Bearclaw_Leveret.lua @@ -0,0 +1,75 @@ +---@type TMobEntity +local entity = {} + +entity.onMobInitialize = function(mob) + mob:addImmunity(xi.immunity.LIGHT_SLEEP) + mob:addImmunity(xi.immunity.SILENCE) +end + +entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.DESPAWN_TIME_REDUCTION, 15) + mob:setLocalVar('bloodWeaponUsed', 0) +end + +-- If the "real" Bearclaw Leveret is below 35% HP, use Blood Weapon +entity.onMobFight = function(mob, target) + if + mob:getLocalVar('chosenLeveret') == 1 and + mob:getLocalVar('bloodWeaponUsed') == 0 and + mob:getHPP() <= 35 + then + mob:setLocalVar('bloodWeaponUsed', 1) + mob:useMobAbility(xi.mobSkill.BLOOD_WEAPON_1) + end +end + +entity.onMobMobskillChoose = function(mob, target, skillId) + local skills = + { + xi.mobSkill.FOOT_KICK_1, + xi.mobSkill.WHIRL_CLAWS_1, + xi.mobSkill.SNOW_CLOUD_1, + xi.mobSkill.WILD_CARROT_1, + } + + return skills[math.random(1, #skills)] +end + +-- The "real" Bearclaw Leveret has a small chance to proc enblizzard damage on hit, revealing itself to players +entity.onAdditionalEffect = function(mob, target, damage) + local pTable = + { + chance = 5, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.ICE, + basePower = math.floor(damage / 2), + actorStat = xi.mod.INT, + } + + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) +end + +-- When a Bearclaw Leveret dies, if it is the "real" one, kill the others +entity.onMobDeath = function(mob, player, optParams) + if optParams.isKiller or optParams.noKiller then + if mob:getLocalVar('chosenLeveret') == 1 then + local battlefield = mob:getBattlefield() + + if not battlefield then + return + end + + local baseId = battlefield:getLocalVar('baseId') + + for i = 1, 5 do + local bearclawLeveret = GetMobByID(baseId + i) + if bearclawLeveret and bearclawLeveret:isAlive() then + -- They actually "die" and are not just "despawned", they fall over like they die in my capture. + bearclawLeveret:setHP(0) + end + end + end + end +end + +return entity diff --git a/scripts/zones/Bearclaw_Pinnacle/mobs/Bearclaw_Rabbit.lua b/scripts/zones/Bearclaw_Pinnacle/mobs/Bearclaw_Rabbit.lua new file mode 100644 index 00000000000..4eda466bdd8 --- /dev/null +++ b/scripts/zones/Bearclaw_Pinnacle/mobs/Bearclaw_Rabbit.lua @@ -0,0 +1,62 @@ +---@type TMobEntity +local entity = {} + +entity.onMobInitialize = function(mob) + mob:addImmunity(xi.immunity.LIGHT_SLEEP) + mob:addImmunity(xi.immunity.SILENCE) +end + +entity.onMobSpawn = function(mob) + mob:setLocalVar('leveretsSpawned', 0) + mob:setMod(xi.mod.DOUBLE_ATTACK, 15) + mob:setMod(xi.mod.DESPAWN_TIME_REDUCTION, 15) +end + +entity.onMobFight = function(mob, target) + -- At 85% HP, spawn the Bearclaw Leverets and choose one to be the "real" one + if + mob:getHPP() <= 85 and + mob:getLocalVar('leveretsSpawned') == 0 + then + mob:setLocalVar('leveretsSpawned', 1) + local battlefield = mob:getBattlefield() + + if not battlefield then + return + end + + local baseId = mob:getID() + + battlefield:setLocalVar('baseId', baseId) + + SpawnMob(baseId + 1) -- Bearclaw Leveret + SpawnMob(baseId + 2) -- Bearclaw Leveret + SpawnMob(baseId + 3) -- Bearclaw Leveret + SpawnMob(baseId + 4) -- Bearclaw Leveret + SpawnMob(baseId + 5) -- Bearclaw Leveret + + for i = 1, 5 do + GetMobByID(baseId + i):updateEnmity(target) + end + + local chosenLeveret = GetMobByID(baseId + math.random(1, 5)) + if chosenLeveret then + chosenLeveret:setLocalVar('chosenLeveret', 1) + chosenLeveret:setMobMod(xi.mobMod.ADD_EFFECT, 1) + end + end +end + +entity.onMobMobskillChoose = function(mob, target, skillId) + local skills = + { + xi.mobSkill.FOOT_KICK_1, + xi.mobSkill.WHIRL_CLAWS_1, + xi.mobSkill.SNOW_CLOUD_1, + xi.mobSkill.WILD_GINSENG, + } + + return skills[math.random(1, #skills)] +end + +return entity diff --git a/sql/mob_groups.sql b/sql/mob_groups.sql index eac91ebcf7a..45a677deadc 100644 --- a/sql/mob_groups.sql +++ b/sql/mob_groups.sql @@ -266,8 +266,8 @@ INSERT INTO `mob_groups` VALUES (55,6812,5,'Little_Wingman',0,128,0,0,0,0,NULL); -- Bearclaw_Pinnacle (Zone 6) -- ------------------------------------------------------------ INSERT INTO `mob_groups` VALUES (1,3684,6,'Snoll_Tzar',0,128,0,7000,0,0,NULL); -INSERT INTO `mob_groups` VALUES (2,384,6,'Bearclaw_Rabbit',0,128,0,0,0,0,NULL); -INSERT INTO `mob_groups` VALUES (3,383,6,'Bearclaw_Leveret',0,128,0,0,0,0,NULL); +INSERT INTO `mob_groups` VALUES (2,384,6,'Bearclaw_Rabbit',0,128,0,10000,0,0,NULL); +INSERT INTO `mob_groups` VALUES (3,383,6,'Bearclaw_Leveret',0,128,0,4500,0,0,NULL); INSERT INTO `mob_groups` VALUES (4,7100,6,'Snow_Devil_war',0,128,0,2000,0,0,NULL); INSERT INTO `mob_groups` VALUES (9,7099,6,'Snow_Devil_blm',0,128,0,2000,4000,0,NULL); INSERT INTO `mob_groups` VALUES (5,1190,6,'Eldertaur',0,128,0,5000,10000,0,NULL); diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index 59c182e890a..b679ea97184 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -438,7 +438,7 @@ INSERT INTO `mob_pools` VALUES (379,'Beach_Monk','Beach_Monk',218,0x000060010000 INSERT INTO `mob_pools` VALUES (380,'Beach_Pugil','Beach_Pugil',197,0x00005C0100000000000000000000000000000000,1,1,7,240,100,0,0,0,1,0,0,0,0,131,0,0,0,0,0,197,197,1,27); INSERT INTO `mob_pools` VALUES (381,'Beadeaux_Vanguard','Beadeaux_Vanguard',202,0x00004E0800000000000000000000000000000000,7,7,3,265,100,0,1,0,1,0,0,0,0,129,0,0,4,0,0,202,202,0,12); INSERT INTO `mob_pools` VALUES (382,'Beady_Beetle','Beady_Beetle',49,0x0000980100000000000000000000000000000000,7,7,8,240,100,0,0,0,1,0,0,0,185,131,0,0,0,0,0,49,49,1,12); -INSERT INTO `mob_pools` VALUES (383,'Bearclaw_Leveret','Bearclaw_Leveret',206,0x00000E0100000000000000000000000000000000,1,1,7,240,100,0,1,1,1,16,0,0,0,3,0,0,0,0,0,206,206,2,14); +INSERT INTO `mob_pools` VALUES (383,'Bearclaw_Leveret','Bearclaw_Leveret',206,0x00000E0100000000000000000000000000000000,8,8,7,240,100,0,1,1,1,16,0,0,0,3,0,0,0,0,0,206,206,2,14); INSERT INTO `mob_pools` VALUES (384,'Bearclaw_Rabbit','Bearclaw_Rabbit',206,0x00000E0100000000000000000000000000000000,1,1,7,240,100,0,1,1,1,16,0,0,4385,135,0,0,0,0,0,206,206,3,18); INSERT INTO `mob_pools` VALUES (385,'Beelzebub','Beelzebub',48,0x0000100100000000000000000000000000000000,3,3,11,240,100,0,1,1,1,16,0,32,3240,159,0,0,1,0,0,2060,48,3,13); INSERT INTO `mob_pools` VALUES (386,'Beet_Leafhopper','Beet_Leafhopper',113,0x0000C00100000000000000000000000000000000,1,1,8,240,100,0,1,0,1,2,0,0,1505,643,0,0,0,0,0,113,113,1,15); diff --git a/sql/mob_skills.sql b/sql/mob_skills.sql index ce139604d8b..15ed0c30ccf 100644 --- a/sql/mob_skills.sql +++ b/sql/mob_skills.sql @@ -281,9 +281,9 @@ INSERT INTO `mob_skills` VALUES (253,253,'barbed_crescent',0,0.0,7.0,2000,0,4,0, INSERT INTO `mob_skills` VALUES (254,254,'vulcan_shot',1,0.0,14.0,2000,0,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (255,190,'dimensional_death',0,0.0,7.0,2000,2000,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (256,253,'heat_wave',2,0.0,50.0,2000,500,6,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (257,1,'foot_kick',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (258,2,'dust_cloud',4,0.0,10.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (259,3,'whirl_claws',1,0.0,5.0,2000,1500,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (257,1,'foot_kick',0,0.0,7.0,2000,200,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (258,2,'dust_cloud',4,0.0,10.0,2000,200,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (259,3,'whirl_claws',1,0.0,5.0,2000,200,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (260,4,'lamb_chop',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (261,5,'rage',0,0.0,7.0,2000,1500,1,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (262,6,'sheep_charge',0,0.0,7.0,2000,1500,4,0,0,1,0,0,0); @@ -685,7 +685,7 @@ INSERT INTO `mob_skills` VALUES (653,397,'chaotic_eye',0,0.0,10.0,2000,1500,4,0, INSERT INTO `mob_skills` VALUES (658,402,'catapult',0,0.0,25.0,2000,0,4,4,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (659,403,'cursed_sphere',2,0.0,10.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (660,404,'venom',4,0.0,10.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (661,970,'snow_cloud',4,0.0,10.0,2000,1500,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (661,970,'snow_cloud',4,0.0,10.0,2000,200,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (662,406,'lightning_roar',4,0.0,9.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (663,407,'ice_roar',4,0.0,9.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (664,408,'impact_roar',4,0.0,9.0,2000,1500,4,0,0,0,0,0,0); @@ -1386,7 +1386,7 @@ INSERT INTO `mob_skills` VALUES (1358,1009,'plasma_charge',0,0.0,7.0,2000,1000,1 INSERT INTO `mob_skills` VALUES (1359,855,'chthonian_ray',4,0.0,25.0,2000,2800,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1360,855,'apocalyptic_ray',4,0.0,10.0,2000,2800,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (1361,1105,'viscid_secretion',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); --- INSERT INTO `mob_skills` VALUES (1362,1106,'wild_ginseng',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (1362,37,'wild_ginseng',0,0.0,7.0,2000,2600,1,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1363,822,'hungry_crunch',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1364,848,'mighty_snort',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1365,1043,'tail_thrust',0,0.0,7.0,2000,1000,4,0,0,0,0,0,0); diff --git a/sql/mob_spawn_points.sql b/sql/mob_spawn_points.sql index 0e3f5731815..9f40b68894d 100644 --- a/sql/mob_spawn_points.sql +++ b/sql/mob_spawn_points.sql @@ -1180,24 +1180,24 @@ INSERT INTO `mob_spawn_points` VALUES (16801794,0,'Snoll_Tzar','Snoll Tzar',1,65 INSERT INTO `mob_spawn_points` VALUES (16801795,0,'Snoll_Tzar','Snoll Tzar',1,65,66,-621.041,0.414,221.900,64); -- Follow the White Rabbit -INSERT INTO `mob_spawn_points` VALUES (16801796,0,'Bearclaw_Rabbit','Bearclaw Rabbit',2,75,75,-458.421,0.054,871.617,85); -INSERT INTO `mob_spawn_points` VALUES (16801797,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-461.019,-0.120,849.945,200); -INSERT INTO `mob_spawn_points` VALUES (16801798,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-461.576,-0.019,847.450,181); -INSERT INTO `mob_spawn_points` VALUES (16801799,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-461.607,-0.048,848.282,201); -INSERT INTO `mob_spawn_points` VALUES (16801800,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-461.963,-0.038,847.539,201); -INSERT INTO `mob_spawn_points` VALUES (16801801,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-461.385,-0.073,848.442,200); -INSERT INTO `mob_spawn_points` VALUES (16801803,0,'Bearclaw_Rabbit','Bearclaw Rabbit',2,75,75,-217.539,-0.174,467.558,85); -INSERT INTO `mob_spawn_points` VALUES (16801804,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-220.137,-0.348,445.886,200); -INSERT INTO `mob_spawn_points` VALUES (16801805,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-220.694,-0.247,443.391,181); -INSERT INTO `mob_spawn_points` VALUES (16801806,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-220.725,-0.276,444.223,201); -INSERT INTO `mob_spawn_points` VALUES (16801807,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-221.081,-0.266,443.480,201); -INSERT INTO `mob_spawn_points` VALUES (16801808,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-220.503,-0.301,444.383,200); -INSERT INTO `mob_spawn_points` VALUES (16801810,0,'Bearclaw_Rabbit','Bearclaw Rabbit',2,75,75,-617.871,-0.195,187.885,85); -INSERT INTO `mob_spawn_points` VALUES (16801811,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-620.469,-0.369,166.213,200); -INSERT INTO `mob_spawn_points` VALUES (16801812,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-621.026,-0.268,163.718,181); -INSERT INTO `mob_spawn_points` VALUES (16801813,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-621.057,-0.297,164.550,201); -INSERT INTO `mob_spawn_points` VALUES (16801814,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-621.413,-0.287,163.807,201); -INSERT INTO `mob_spawn_points` VALUES (16801815,0,'Bearclaw_Leveret','Bearclaw Leveret',3,75,75,-620.835,-0.322,164.710,200); +INSERT INTO `mob_spawn_points` VALUES (16801796,0,'Bearclaw_Rabbit','Bearclaw Rabbit',2,75,75,-460,-0.097,902,64); +INSERT INTO `mob_spawn_points` VALUES (16801797,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-459.494,0.085,899.878,64); +INSERT INTO `mob_spawn_points` VALUES (16801798,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-458.452,0.106,899.559,64); +INSERT INTO `mob_spawn_points` VALUES (16801799,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-460.131,0.073,900.111,64); +INSERT INTO `mob_spawn_points` VALUES (16801800,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-458.905,0.093,899.814,64); +INSERT INTO `mob_spawn_points` VALUES (16801801,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-458.34,0.104,899.561,64); +INSERT INTO `mob_spawn_points` VALUES (16801803,0,'Bearclaw_Rabbit','Bearclaw Rabbit',2,75,75,-220.327,-0.42,501.149,64); +INSERT INTO `mob_spawn_points` VALUES (16801804,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-219.821,-0.238,499.027,64); +INSERT INTO `mob_spawn_points` VALUES (16801805,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-218.779,-0.217,498.708,64); +INSERT INTO `mob_spawn_points` VALUES (16801806,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-220.458,-0.250,499.260,64); +INSERT INTO `mob_spawn_points` VALUES (16801807,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-219.232,-0.230,498.963,64); +INSERT INTO `mob_spawn_points` VALUES (16801808,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-218.667,-0.219,498.710,64); +INSERT INTO `mob_spawn_points` VALUES (16801810,0,'Bearclaw_Rabbit','Bearclaw Rabbit',2,75,75,-620.565,0.095,221.161,64); +INSERT INTO `mob_spawn_points` VALUES (16801811,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-620.059,0.277,219.039,64); +INSERT INTO `mob_spawn_points` VALUES (16801812,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-619.017,0.298,218.720,64); +INSERT INTO `mob_spawn_points` VALUES (16801813,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-620.696,0.265,219.272,64); +INSERT INTO `mob_spawn_points` VALUES (16801814,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-619.470,0.285,218.975,64); +INSERT INTO `mob_spawn_points` VALUES (16801815,0,'Bearclaw_Leveret','Bearclaw Leveret',3,73,73,-618.905,0.296,218.722,64); -- When Hell Freezes Over INSERT INTO `mob_spawn_points` VALUES (16801818,0,'Snow_Devil_war','Snow Devil',4,78,78,-465.000,0.000,903.000,64);