From 3530813a33dc25b19e57dec306cb1710830a3380 Mon Sep 17 00:00:00 2001 From: Aerec Date: Sun, 9 Mar 2025 15:45:04 -0400 Subject: [PATCH] [BCNM] BCNM20 Charming Trio Updates Update charming trio mobs with latest capture data --- scripts/actions/mobskills/absorbing_kiss.lua | 17 ++++++++++++-- scripts/actions/mobskills/deep_kiss.lua | 17 ++++++++++++++ scripts/zones/Balgas_Dais/mobs/Pepper.lua | 24 ++++++++++++++++++++ scripts/zones/Balgas_Dais/mobs/Phoedme.lua | 24 ++++++++++++++++++++ scripts/zones/Balgas_Dais/mobs/Prune.lua | 24 ++++++++++++++++++++ sql/mob_groups.sql | 6 ++--- sql/mob_pools.sql | 6 ++--- sql/mob_skill_lists.sql | 24 -------------------- sql/mob_spawn_points.sql | 18 +++++++-------- 9 files changed, 119 insertions(+), 41 deletions(-) create mode 100644 scripts/zones/Balgas_Dais/mobs/Pepper.lua create mode 100644 scripts/zones/Balgas_Dais/mobs/Phoedme.lua create mode 100644 scripts/zones/Balgas_Dais/mobs/Prune.lua diff --git a/scripts/actions/mobskills/absorbing_kiss.lua b/scripts/actions/mobskills/absorbing_kiss.lua index b575cc512e8..c53b84a1682 100644 --- a/scripts/actions/mobskills/absorbing_kiss.lua +++ b/scripts/actions/mobskills/absorbing_kiss.lua @@ -10,12 +10,25 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) + local numAttriDrained = 1 + + if mob:getPool() == 3116 then -- BCNM20 Charming Trio: Pepper does all attribute drain + numAttriDrained = 7 + + for i = xi.effect.STR_DOWN, xi.effect.CHR_DOWN do + xi.mobskills.mobDrainAttribute(mob, target, i, 8, 3, 120) -- Can drain up to -8 per stat + skill:setMsg(xi.msg.basic.ATTR_DRAINED) -- Message for multiple attibutes drainged + end + + return numAttriDrained + end + -- str down - chr down - local effectType = math.random(136, 142) + local effectType = math.random(xi.effect.STR_DOWN, xi.effect.CHR_DOWN) skill:setMsg(xi.mobskills.mobDrainAttribute(mob, target, effectType, 10, 3, 120)) - return 1 + return numAttriDrained end return mobskillObject diff --git a/scripts/actions/mobskills/deep_kiss.lua b/scripts/actions/mobskills/deep_kiss.lua index b025f058248..7a8b4459af7 100644 --- a/scripts/actions/mobskills/deep_kiss.lua +++ b/scripts/actions/mobskills/deep_kiss.lua @@ -10,6 +10,23 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) + if mob:getPool() == 3132 then -- BCNM20 Charming Trio: Phoedme drains ALL effects except food/reraise + local count = target:countEffectWithFlag(xi.effectFlag.DISPELABLE) + + if count == 0 then + skill:setMsg(xi.msg.basic.SKILL_NO_EFFECT) + return count + end + + for i = 1, count do + mob:stealStatusEffect(target, xi.effectFlag.DISPELABLE) -- Steal all status effects valid on the player + end + + skill:setMsg(xi.msg.basic.EFFECT_DRAINED) + + return count + end + skill:setMsg(xi.mobskills.mobDrainStatusEffectMove(mob, target)) return 1 diff --git a/scripts/zones/Balgas_Dais/mobs/Pepper.lua b/scripts/zones/Balgas_Dais/mobs/Pepper.lua new file mode 100644 index 00000000000..aa6d31c97b7 --- /dev/null +++ b/scripts/zones/Balgas_Dais/mobs/Pepper.lua @@ -0,0 +1,24 @@ +----------------------------------- +-- Area: Balga's Dais +-- Mob: Pepper +-- BCNM: Charming Trio +----------------------------------- +---@type TMobEntity +local entity = {} + +entity.onMobInitialize = function(mob) + mob:setMod(xi.mobMod.CHARMABLE, 0) +end + +entity.onMobDeath = function(mob, player, optParams) +end + +entity.onSpellPrecast = function(mob, spell) + if spell:getID() == 245 then -- Drain CD + mob:setMobMod(xi.mobMod.MAGIC_COOL, 45) + else -- Aspir CD + mob:setMobMod(xi.mobMod.MAGIC_COOL, 15) + end +end + +return entity diff --git a/scripts/zones/Balgas_Dais/mobs/Phoedme.lua b/scripts/zones/Balgas_Dais/mobs/Phoedme.lua new file mode 100644 index 00000000000..29f96ab9ecc --- /dev/null +++ b/scripts/zones/Balgas_Dais/mobs/Phoedme.lua @@ -0,0 +1,24 @@ +----------------------------------- +-- Area: Balga's Dais +-- Mob: Phoedme +-- BCNM: Charming Trio +----------------------------------- +---@type TMobEntity +local entity = {} + +entity.onMobInitialize = function(mob) + mob:setMod(xi.mobMod.CHARMABLE, 0) +end + +entity.onMobDeath = function(mob, player, optParams) +end + +entity.onSpellPrecast = function(mob, spell) + if spell:getID() == 245 then -- Drain CD + mob:setMobMod(xi.mobMod.MAGIC_COOL, 45) + else -- Aspir CD + mob:setMobMod(xi.mobMod.MAGIC_COOL, 15) + end +end + +return entity diff --git a/scripts/zones/Balgas_Dais/mobs/Prune.lua b/scripts/zones/Balgas_Dais/mobs/Prune.lua new file mode 100644 index 00000000000..04bcadbd639 --- /dev/null +++ b/scripts/zones/Balgas_Dais/mobs/Prune.lua @@ -0,0 +1,24 @@ +----------------------------------- +-- Area: Balga's Dais +-- Mob: Prune +-- BCNM: Charming Trio +----------------------------------- +---@type TMobEntity +local entity = {} + +entity.onMobInitialize = function(mob) + mob:setMod(xi.mobMod.CHARMABLE, 0) +end + +entity.onMobDeath = function(mob, player, optParams) +end + +entity.onSpellPrecast = function(mob, spell) + if spell:getID() == 245 then -- Drain CD + mob:setMobMod(xi.mobMod.MAGIC_COOL, 45) + else -- Aspir CD + mob:setMobMod(xi.mobMod.MAGIC_COOL, 15) + end +end + +return entity diff --git a/sql/mob_groups.sql b/sql/mob_groups.sql index 8f8f1a93016..3263e17ba98 100644 --- a/sql/mob_groups.sql +++ b/sql/mob_groups.sql @@ -10389,9 +10389,9 @@ INSERT INTO `mob_groups` VALUES (9,2460,146,'Maat_mnk',0,128,0,2300,0,70,70,0); INSERT INTO `mob_groups` VALUES (10,5232,146,'Maat_whm',0,128,0,2300,1000,70,70,0); INSERT INTO `mob_groups` VALUES (11,5274,146,'Maat_smn',0,128,0,2300,1000,70,70,0); INSERT INTO `mob_groups` VALUES (12,2461,146,'Maats_Avatar',0,128,0,0,0,56,56,0); -INSERT INTO `mob_groups` VALUES (13,3214,146,'Prune',0,128,0,0,0,20,20,0); -INSERT INTO `mob_groups` VALUES (14,3116,146,'Pepper',0,128,0,0,0,20,20,0); -INSERT INTO `mob_groups` VALUES (15,3132,146,'Phoedme',0,128,0,0,0,20,20,0); +INSERT INTO `mob_groups` VALUES (13,3214,146,'Prune',0,128,0,600,0,21,21,0); +INSERT INTO `mob_groups` VALUES (14,3116,146,'Pepper',0,128,0,600,0,21,21,0); +INSERT INTO `mob_groups` VALUES (15,3132,146,'Phoedme',0,128,0,600,0,21,21,0); INSERT INTO `mob_groups` VALUES (16,425,146,'Bitoso',0,128,0,3600,1200,31,33,0); INSERT INTO `mob_groups` VALUES (17,2822,146,'Nenaunir',0,128,0,0,0,30,30,0); INSERT INTO `mob_groups` VALUES (18,2823,146,'Nenaunirs_Wife',0,128,0,0,0,30,30,0); diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index bd02a1b7cf4..39e80b56a51 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -3169,7 +3169,7 @@ INSERT INTO `mob_pools` VALUES (3112,'Pee_Qoho_the_Python','Pee_Qoho_the_Python' INSERT INTO `mob_pools` VALUES (3113,'Peg_Powler','Peg_Powler',218,0x0000600100000000000000000000000000000000,2,2,7,360,100,0,1,0,0,2,0,0,0,133,0,0,0,0,0,218,218); INSERT INTO `mob_pools` VALUES (3114,'Peiste','Peiste',192,0x0000DF0700000000000000000000000000000000,1,1,7,240,100,0,1,0,0,0,0,0,449,131,4,0,0,0,0,192,192); INSERT INTO `mob_pools` VALUES (3115,'Pelican','Pelican',70,0x0000200100000000000000000000000000000000,1,1,6,240,100,0,1,0,0,2,0,0,0,135,1,0,0,0,0,70,70); -INSERT INTO `mob_pools` VALUES (3116,'Pepper','Pepper',172,0x0000140100000000000000000000000000000000,8,1,7,240,100,0,1,0,1,16,0,0,0,3,0,0,142,0,0,724,172); +INSERT INTO `mob_pools` VALUES (3116,'Pepper','Pepper',172,0x0000140100000000000000000000000000000000,8,1,7,240,100,0,1,0,1,16,6144,0,6,157,0,0,142,0,0,724,172); INSERT INTO `mob_pools` VALUES (3117,'Percipient_Fish','Percipient_Fish',197,0x00005C0100000000000000000000000000000000,7,7,7,240,100,0,1,1,0,0,0,0,0,131,0,0,0,0,0,197,197); INSERT INTO `mob_pools` VALUES (3118,'Percipient_Zoraal_Ja','Percipient_Zoraal_Ja',176,0x0600490600000000000000000000000000000000,9,9,2,280,100,0,1,0,1,0,0,32,4013,155,4,0,0,0,0,176,176); INSERT INTO `mob_pools` VALUES (3119,'Periqia_Pugil','Periqia_Pugil',197,0x00005C0100000000000000000000000000000000,1,1,7,240,100,0,0,0,1,0,0,0,1,131,0,0,0,0,0,197,197); @@ -3185,7 +3185,7 @@ INSERT INTO `mob_pools` VALUES (3128,'Phantom_Puk','Phantom_Puk',198,0x0000D0060 INSERT INTO `mob_pools` VALUES (3129,'Phantom_Worm','Phantom_Worm',258,0x0000AA0100000000000000000000000000000000,4,5,7,240,100,0,1,0,1,2,0,0,4937,135,0,0,9,0,64,258,258); INSERT INTO `mob_pools` VALUES (3130,'Phasma','Phasma',121,0x0000700100000000000000000000000000000000,4,4,12,240,100,0,1,0,0,0,0,0,502,643,0,0,28,0,0,121,121); INSERT INTO `mob_pools` VALUES (3131,'Phlebotomic_Slug','Phlebotomic_Slug',172,0x0000140100000000000000000000000000000000,1,1,7,240,100,0,0,0,1,0,0,0,191,643,0,0,0,0,0,172,172); -INSERT INTO `mob_pools` VALUES (3132,'Phoedme','Phoedme',172,0x0000140100000000000000000000000000000000,8,1,7,240,100,0,1,0,1,16,0,0,0,3,0,0,142,0,0,723,172); +INSERT INTO `mob_pools` VALUES (3132,'Phoedme','Phoedme',172,0x0000140100000000000000000000000000000000,8,1,7,240,100,0,1,0,1,16,6144,0,6,157,0,0,142,0,0,723,172); INSERT INTO `mob_pools` VALUES (3133,'Phorusrhacos','Phorusrhacos',125,0x0000500100000000000000000000000000000000,1,1,11,240,100,0,1,0,0,0,0,0,4186,131,0,0,0,0,0,125,125); INSERT INTO `mob_pools` VALUES (3134,'Piasa','Piasa',55,0x0000BC0100000000000000000000000000000000,1,1,6,240,100,0,0,0,0,2,0,0,0,647,0,0,0,0,0,826,55); INSERT INTO `mob_pools` VALUES (3135,'Picklix_Longindex','Picklix_Longindex',133,0x0000F90100000000000000000000000000000000,6,6,2,240,100,0,1,0,1,2,0,32,0,153,0,0,0,0,0,133,133); @@ -3267,7 +3267,7 @@ INSERT INTO `mob_pools` VALUES (3210,'Protoamoeban','Protoamoeban',5,0x00005C090 INSERT INTO `mob_pools` VALUES (3211,'Protozoan','Protozoan',229,0x0000240100000000000000000000000000000000,1,1,7,240,100,0,1,0,0,0,0,0,6353,131,0,0,0,0,0,229,229); INSERT INTO `mob_pools` VALUES (3212,'Provoker','Provoker',220,0x00005D0400000000000000000000000000000000,1,7,7,240,100,0,1,1,1,2,0,32,765,135,0,0,114,0,0,220,220); INSERT INTO `mob_pools` VALUES (3213,'Prowlox_Barrelbelly','Prowlox_Barrelbelly',373,0x00003E0400000000000000000000000000000000,11,11,2,240,100,0,1,0,1,2,0,32,0,159,0,0,0,0,0,373,373); -INSERT INTO `mob_pools` VALUES (3214,'Prune','Prune',172,0x0000140100000000000000000000000000000000,8,1,7,240,100,0,1,0,1,16,0,0,0,3,0,0,142,0,0,722,172); +INSERT INTO `mob_pools` VALUES (3214,'Prune','Prune',172,0x0000140100000000000000000000000000000000,8,1,7,240,100,0,1,0,1,16,6144,0,6,669,0,0,142,0,0,722,172); INSERT INTO `mob_pools` VALUES (3215,'Psycheflayer','Psycheflayer',233,0x0000EF0600000000000000000000000000000000,4,4,7,240,100,0,1,1,0,0,0,0,0,129,12,0,28,0,0,233,233); INSERT INTO `mob_pools` VALUES (3216,'Psychopomp','Psychopomp',73,0x0000A70800000000000000000000000000000000,4,1,12,240,100,0,1,0,0,0,0,0,0,131,0,0,2,0,0,91,73); INSERT INTO `mob_pools` VALUES (3217,'Puck','Puck',178,0x00002D0100000000000000000000000000000000,2,2,1,480,100,0,1,0,1,0,0,0,0,133,0,0,0,0,0,178,178); diff --git a/sql/mob_skill_lists.sql b/sql/mob_skill_lists.sql index 3f13c5bc7d5..56a1b990863 100644 --- a/sql/mob_skill_lists.sql +++ b/sql/mob_skill_lists.sql @@ -2413,32 +2413,8 @@ INSERT INTO `mob_skill_lists` VALUES ('Mob_Avatar_Carbuncle',721,909); INSERT INTO `mob_skill_lists` VALUES ('Mob_Avatar_Carbuncle',721,910); INSERT INTO `mob_skill_lists` VALUES ('Mob_Avatar_Carbuncle',721,911); INSERT INTO `mob_skill_lists` VALUES ('Prune',722,325); -INSERT INTO `mob_skill_lists` VALUES ('Prune',722,414); -INSERT INTO `mob_skill_lists` VALUES ('Prune',722,415); -INSERT INTO `mob_skill_lists` VALUES ('Prune',722,416); -INSERT INTO `mob_skill_lists` VALUES ('Prune',722,417); -INSERT INTO `mob_skill_lists` VALUES ('Prune',722,418); -INSERT INTO `mob_skill_lists` VALUES ('Prune',722,420); -INSERT INTO `mob_skill_lists` VALUES ('Prune',722,421); -INSERT INTO `mob_skill_lists` VALUES ('Prune',722,423); INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,327); -INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,414); -INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,415); -INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,416); -INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,417); -INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,418); -INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,421); -INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,420); -INSERT INTO `mob_skill_lists` VALUES ('Phoedme',723,423); INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,326); -INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,414); -INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,415); -INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,416); -INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,417); -INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,418); -INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,420); -INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,421); -INSERT INTO `mob_skill_lists` VALUES ('Pepper',724,423); INSERT INTO `mob_skill_lists` VALUES ('Medusa',725,1808); INSERT INTO `mob_skill_lists` VALUES ('Medusa',725,1809); INSERT INTO `mob_skill_lists` VALUES ('Medusa',725,1810); diff --git a/sql/mob_spawn_points.sql b/sql/mob_spawn_points.sql index 59dae44e290..6bb334316f7 100644 --- a/sql/mob_spawn_points.sql +++ b/sql/mob_spawn_points.sql @@ -52799,15 +52799,15 @@ INSERT INTO `mob_spawn_points` VALUES (17375267,'Maat','Maat',11,182.059,-64.000 INSERT INTO `mob_spawn_points` VALUES (17375268,'Maats_Avatar','Maat\'s Avatar',12,321.059,-119.000,400.999,189); -- Charming Trio -INSERT INTO `mob_spawn_points` VALUES (17375269,'Prune','Prune',13,-132.000,56.000,-224.000,65); -INSERT INTO `mob_spawn_points` VALUES (17375270,'Pepper','Pepper',14,-138.000,56.000,-224.000,65); -INSERT INTO `mob_spawn_points` VALUES (17375271,'Phoedme','Phoedme',15,-144.000,56.000,-224.000,65); -INSERT INTO `mob_spawn_points` VALUES (17375273,'Prune','Prune',13,28.231,-4.000,-24.076,65); -INSERT INTO `mob_spawn_points` VALUES (17375274,'Pepper','Pepper',14,22.231,-4.000,-24.076,65); -INSERT INTO `mob_spawn_points` VALUES (17375275,'Phoedme','Phoedme',15,16.231,-4.000,-24.076,65); -INSERT INTO `mob_spawn_points` VALUES (17375277,'Prune','Prune',13,188.059,-64.000,175.999,65); -INSERT INTO `mob_spawn_points` VALUES (17375278,'Pepper','Pepper',14,182.059,-64.000,175.999,65); -INSERT INTO `mob_spawn_points` VALUES (17375279,'Phoedme','Phoedme',15,176.059,-64.000,175.999,65); +INSERT INTO `mob_spawn_points` VALUES (17375269,'Prune','Prune',13,-136.000,56.24,-224.199,192); +INSERT INTO `mob_spawn_points` VALUES (17375270,'Pepper','Pepper',14,-139.000,56.043,-224.199,192); +INSERT INTO `mob_spawn_points` VALUES (17375271,'Phoedme','Phoedme',15,-142,56.24,-224.199,192); +INSERT INTO `mob_spawn_points` VALUES (17375273,'Prune','Prune',13,24.045,-3.759,-24.259,192); +INSERT INTO `mob_spawn_points` VALUES (17375274,'Pepper','Pepper',14,21.045,-3.956,-24.259,192); +INSERT INTO `mob_spawn_points` VALUES (17375275,'Phoedme','Phoedme',15,18.045,-3.759,-24.259,192); +INSERT INTO `mob_spawn_points` VALUES (17375277,'Prune','Prune',13,184.09,-63.758,175.681,192); +INSERT INTO `mob_spawn_points` VALUES (17375278,'Pepper','Pepper',14,181.09,-63.955,175.681,192); +INSERT INTO `mob_spawn_points` VALUES (17375279,'Phoedme','Phoedme',15,178.09,-63.758,175.681,192); -- Creeping Doom INSERT INTO `mob_spawn_points` VALUES (17375281,'Bitoso','Bitoso',16,-139.000,56.043,-224.199,192);