From 8ae8829bcfe56ca9d59dbd805b4e3a932630a591 Mon Sep 17 00:00:00 2001 From: ThrisStraizo <45871917+ThrisStraizo@users.noreply.github.com> Date: Sun, 15 Feb 2026 12:30:35 -0800 Subject: [PATCH] Ranger AF3 Audit This PR audits the RNG AF3 quest mob for HP/DMG/STP/Immunities and other behavior. --- scripts/zones/Xarcabard/IDs.lua | 4 ++++ scripts/zones/Xarcabard/mobs/Koenigstiger.lua | 12 ++++++++++++ scripts/zones/Xarcabard/npcs/qm6.lua | 4 ++++ scripts/zones/Xarcabard/npcs/qm7.lua | 9 ++++++++- sql/mob_groups.sql | 2 +- sql/mob_pools.sql | 2 +- sql/mob_spawn_points.sql | 2 +- 7 files changed, 31 insertions(+), 4 deletions(-) diff --git a/scripts/zones/Xarcabard/IDs.lua b/scripts/zones/Xarcabard/IDs.lua index 98f0b49652a..32992238fc5 100644 --- a/scripts/zones/Xarcabard/IDs.lua +++ b/scripts/zones/Xarcabard/IDs.lua @@ -21,6 +21,8 @@ zones[xi.zone.XARCABARD] = MEMBERS_LEVELS_ARE_RESTRICTED = 7037, -- Your party is unable to participate because certain members' levels are restricted. CONQUEST_BASE = 7082, -- Tallying conquest results... BEASTMEN_BANNER = 7161, -- There was a curse on the beastmen's banner! + PRESENCE_IN_CAVE = 7242, -- You sense a presence in the cave... + MONSTER_APPEARS = 7245, -- A monster appears from deep within the cave! SENSE_EVIL = 7370, -- You can sense an evil force around you. DO_NOT_SENSE = 7371, -- You do not sense anything out of the ordinary. ALREADY_OBTAINED_TELE = 7391, -- You already possess the gate crystal for this telepoint. @@ -29,6 +31,8 @@ zones[xi.zone.XARCABARD] = BLOCKS_OF_ICE = 7738, -- You can hear blocks of ice moving from deep within the cave. PERENNIAL_SNOW_DEFAULT = 7739, -- How many millennia has this snow been here, hidden from the rays of the sun? PERENNIAL_SNOW_WAIT = 7741, -- The you buried is not yet purified. + CAVERN_CONTINUES = 7796, -- The cavern continues on for quite a distance. + NOTHING_MORE = 7797, -- There is nothing more to be done here. YOU_CANNOT_ENTER_DYNAMIS = 7863, -- You cannot enter Dynamis - [Dummy/San d'Oria/Bastok/Windurst/Jeuno/Beaucedine/Xarcabard/Valkurm/Buburimu/Qufim/Tavnazia] for [day/days] (Vana'diel time). PLAYERS_HAVE_NOT_REACHED_LEVEL = 7865, -- Players who have not reached level are prohibited from entering Dynamis. DYNA_NPC_DEFAULT_MESSAGE = 7902, -- There is a symbol carved into the rock here. diff --git a/scripts/zones/Xarcabard/mobs/Koenigstiger.lua b/scripts/zones/Xarcabard/mobs/Koenigstiger.lua index 6fa6282a8f1..fe3e74a57b5 100644 --- a/scripts/zones/Xarcabard/mobs/Koenigstiger.lua +++ b/scripts/zones/Xarcabard/mobs/Koenigstiger.lua @@ -8,6 +8,18 @@ local entity = {} entity.onMobInitialize = function(mob) mob:setMobMod(xi.mobMod.IDLE_DESPAWN, 240) + mob:addImmunity(xi.immunity.DARK_SLEEP) + mob:addImmunity(xi.immunity.LIGHT_SLEEP) +end + +entity.onMobSpawn = function(mob) + mob:setMobMod(xi.mobMod.BASE_DAMAGE_MULTIPLIER, 300) + mob:setMod(xi.mod.STORETP, 75) -- 8 hits to 1k tp + mob:setMobMod(xi.mobMod.MAGIC_DELAY, 0) +end + +entity.onMobSpellChoose = function(mob, target, spellId) + return xi.magic.spell.GRAVIGA end entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Xarcabard/npcs/qm6.lua b/scripts/zones/Xarcabard/npcs/qm6.lua index e76f6c24172..391d6b02101 100644 --- a/scripts/zones/Xarcabard/npcs/qm6.lua +++ b/scripts/zones/Xarcabard/npcs/qm6.lua @@ -4,6 +4,8 @@ -- Involved in Quests: RNG AF3 - Unbridled Passion -- !pos -254.883 -17.003 -150.818 112 ----------------------------------- +local ID = zones[xi.zone.XARCABARD] +----------------------------------- ---@type TNpcEntity local entity = {} @@ -14,6 +16,8 @@ entity.onTrigger = function(player, npc) player:startEvent(6, 0, 13360) elseif unbridledPassionCS == 6 then player:startEvent(7) + else + player:messageSpecial(ID.text.CAVERN_CONTINUES) end end diff --git a/scripts/zones/Xarcabard/npcs/qm7.lua b/scripts/zones/Xarcabard/npcs/qm7.lua index 426fafc8834..531297247b1 100644 --- a/scripts/zones/Xarcabard/npcs/qm7.lua +++ b/scripts/zones/Xarcabard/npcs/qm7.lua @@ -10,16 +10,23 @@ local ID = zones[xi.zone.XARCABARD] local entity = {} entity.onTrigger = function(player, npc) - if + if player:getCharVar('unbridledPassion') == 5 then + player:messageSpecial(ID.text.NOTHING_MORE) + elseif GetMobByID(ID.mob.KOENIGSTIGER):isAlive() then + player:messageSpecial(ID.text.PRESENCE_IN_CAVE) + elseif player:getCharVar('unbridledPassion') == 4 and not GetMobByID(ID.mob.KOENIGSTIGER):isSpawned() then player:startEvent(8) + else + player:messageSpecial(ID.text.CAVERN_CONTINUES) end end entity.onEventFinish = function(player, csid, option, npc) if csid == 8 then + player:messageSpecial(ID.text.MONSTER_APPEARS) SpawnMob(ID.mob.KOENIGSTIGER):updateClaim(player) end end diff --git a/sql/mob_groups.sql b/sql/mob_groups.sql index bc69bf54859..d61832c85e4 100644 --- a/sql/mob_groups.sql +++ b/sql/mob_groups.sql @@ -8482,7 +8482,7 @@ INSERT INTO `mob_groups` VALUES (25,693,112,'Chaos_Elemental',0,128,452,3000,300 INSERT INTO `mob_groups` VALUES (26,510,112,'Boreal_Hound',300,0,0,26000,0,0,NULL); INSERT INTO `mob_groups` VALUES (27,509,112,'Boreal_Coeurl',300,0,0,26000,0,0,NULL); INSERT INTO `mob_groups` VALUES (28,511,112,'Boreal_Tiger',300,0,0,26000,0,0,NULL); -INSERT INTO `mob_groups` VALUES (29,2276,112,'Koenigstiger',0,128,0,0,0,0,NULL); +INSERT INTO `mob_groups` VALUES (29,2276,112,'Koenigstiger',0,128,0,22000,10000,0,NULL); INSERT INTO `mob_groups` VALUES (30,1983,112,'Hobgoblin_Warrior',0,128,0,0,0,0,NULL); INSERT INTO `mob_groups` VALUES (31,1984,112,'Hobgoblin_White_Mage',0,128,0,0,0,0,NULL); INSERT INTO `mob_groups` VALUES (32,1972,112,'Hobgoblin_Black_Mage',0,128,0,0,0,0,NULL); diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index a9cb26d93d5..a4fe191d577 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -2331,7 +2331,7 @@ INSERT INTO `mob_pools` VALUES (2272,'Knight_Crawler_BT','Knight_Crawler_BT',79, INSERT INTO `mob_pools` VALUES (2273,'Knii_Hoqo_the_Bisector','Knii_Hoqo_the_Bisector',270,0x00003A0400000000000000000000000000000000,12,12,10,240,100,0,1,0,1,2,0,32,0,159,0,0,0,0,0,360,360,3,20); INSERT INTO `mob_pools` VALUES (2274,'Knoll_Clionid','Knoll_Clionid',65,0x00004C0900000000000000000000000000000000,4,4,11,240,100,0,0,0,0,0,0,0,0,131,0,0,2,0,0,65,65,1,8); INSERT INTO `mob_pools` VALUES (2275,'Knotty_Treant','Knotty_Treant',245,0x0000840100000000000000000000000000000000,1,1,7,240,100,0,1,0,0,0,0,0,642,131,0,0,0,0,0,245,245,1,37); -INSERT INTO `mob_pools` VALUES (2276,'Koenigstiger','Koenigstiger',242,0x0000340100000000000000000000000000000000,1,5,7,240,100,0,1,0,1,2,0,0,3127,131,0,0,0,0,0,242,242,1,25); +INSERT INTO `mob_pools` VALUES (2276,'Koenigstiger','Koenigstiger',242,0x0000340100000000000000000000000000000000,1,5,7,240,100,0,1,0,1,2,0,0,3127,131,0,0,1,0,0,242,242,1,25); INSERT INTO `mob_pools` VALUES (2277,'Koghatu','Koghatu',1,0x0000F20600000000000000000000000000000000,6,6,2,240,100,0,1,0,0,2,0,0,7,157,0,0,0,0,0,966,1,2,22); INSERT INTO `mob_pools` VALUES (2278,'Koios','Koios',45,0x00001A0300000000000000000000000000000000,1,1,6,240,100,0,0,0,0,2,0,0,1,157,0,0,0,0,0,45,321,NULL,NULL); INSERT INTO `mob_pools` VALUES (2279,'Koo_Buzu_the_Theomanic','Koo_Buzu_the_Theomanic',270,0x0000540200000000000000000000000000000000,15,15,6,240,100,0,1,1,1,16,0,0,0,0,0,0,30,0,256,360,360,NULL,NULL); diff --git a/sql/mob_spawn_points.sql b/sql/mob_spawn_points.sql index a105b1b8256..9f66214b6f1 100644 --- a/sql/mob_spawn_points.sql +++ b/sql/mob_spawn_points.sql @@ -39236,7 +39236,7 @@ INSERT INTO `mob_spawn_points` VALUES (17236201,0,'Chaos_Elemental','Chaos Eleme INSERT INTO `mob_spawn_points` VALUES (17236202,0,'Boreal_Hound','Boreal Hound',26,53,53,-22.162,-24.674,-495.609,127); INSERT INTO `mob_spawn_points` VALUES (17236203,0,'Boreal_Coeurl','Boreal Coeurl',27,53,53,583.522,-8.858,295.294,64); INSERT INTO `mob_spawn_points` VALUES (17236204,0,'Boreal_Tiger','Boreal Tiger',28,53,53,342.267,-28.927,373.998,64); -INSERT INTO `mob_spawn_points` VALUES (17236205,0,'Koenigstiger','Koenigstiger',29,63,63,-293.000,-22.000,146.000,194); +INSERT INTO `mob_spawn_points` VALUES (17236205,0,'Koenigstiger','Koenigstiger',29,63,63,-296.000,-25.054,151.250,194); INSERT INTO `mob_spawn_points` VALUES (17236206,0,'Hobgoblin_Warrior','Hobgoblin Warrior',30,50,55,0.000,0.000,0.000,0); INSERT INTO `mob_spawn_points` VALUES (17236207,0,'Hobgoblin_White_Mage','Hobgoblin White Mage',31,50,55,0.000,0.000,0.000,0); INSERT INTO `mob_spawn_points` VALUES (17236208,0,'Hobgoblin_Black_Mage','Hobgoblin Black Mage',32,50,55,0.000,0.000,0.000,0);