From e27e7da5dfd87225870dd05906ef421914d45a91 Mon Sep 17 00:00:00 2001 From: Frankie-hz <105882754+Frankie-hz@users.noreply.github.com> Date: Fri, 15 May 2026 21:26:39 -0400 Subject: [PATCH] [cpp, lua, sql] Renames family to species --- .../actions/mobskills/abrasive_tantara.lua | 2 +- scripts/actions/mobskills/astral_flow_pet.lua | 2 +- scripts/actions/mobskills/crosswind.lua | 2 +- .../actions/mobskills/deafening_tantara.lua | 2 +- scripts/actions/mobskills/digest.lua | 8 +- scripts/actions/mobskills/frenetic_rip.lua | 2 +- .../actions/mobskills/stifling_tantara.lua | 2 +- scripts/actions/spells/black/meteor.lua | 2 +- .../{getmobspecies.lua => getspecies.lua} | 6 +- scripts/effects/counterstance.lua | 2 +- scripts/enum/mob_sublink.lua | 2 +- scripts/globals/magian.lua | 4 +- scripts/globals/roe.lua | 4 +- scripts/globals/znm.lua | 8 +- scripts/mixins/families/gear.lua | 4 +- scripts/mixins/job_special.lua | 2 +- scripts/specs/core/CBaseEntity.lua | 2 +- scripts/zones/AlTaieu/mobs/Jailer_of_Love.lua | 8 +- sql/mob_family_mods.sql | 676 ----------------- sql/mob_pools.sql | 4 +- sql/mob_species_mods.sql | 677 ++++++++++++++++++ ...mily_system.sql => mob_species_system.sql} | 4 +- src/map/entities/mobentity.cpp | 2 +- src/map/entities/mobentity.h | 2 +- src/map/instance_loader.cpp | 6 +- src/map/latent_effect_container.cpp | 2 +- src/map/lua/lua_baseentity.cpp | 24 +- src/map/lua/lua_baseentity.h | 2 +- src/map/utils/mobutils.cpp | 66 +- src/map/utils/mobutils.h | 4 +- src/map/utils/petutils.cpp | 10 +- src/map/utils/petutils.h | 4 +- src/map/utils/trustutils.cpp | 10 +- src/map/utils/zoneutils.cpp | 6 +- 34 files changed, 782 insertions(+), 781 deletions(-) rename scripts/commands/{getmobspecies.lua => getspecies.lua} (89%) delete mode 100644 sql/mob_family_mods.sql create mode 100644 sql/mob_species_mods.sql rename sql/{mob_family_system.sql => mob_species_system.sql} (99%) diff --git a/scripts/actions/mobskills/abrasive_tantara.lua b/scripts/actions/mobskills/abrasive_tantara.lua index 4dfa0a546a8..4faa69770f3 100644 --- a/scripts/actions/mobskills/abrasive_tantara.lua +++ b/scripts/actions/mobskills/abrasive_tantara.lua @@ -11,7 +11,7 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) - if mob:getAnimationSub() == 5 and mob:getFamily() == xi.mobSpecies.IMP then -- Imps without horn + if mob:getAnimationSub() == 5 and mob:getSpecies() == xi.mobSpecies.IMP then -- Imps without horn return 1 else return 0 diff --git a/scripts/actions/mobskills/astral_flow_pet.lua b/scripts/actions/mobskills/astral_flow_pet.lua index 8ddf54992db..68f64ab2662 100644 --- a/scripts/actions/mobskills/astral_flow_pet.lua +++ b/scripts/actions/mobskills/astral_flow_pet.lua @@ -57,7 +57,7 @@ mobskillObject.onMobWeaponSkill = function(mob, target, skill, action) end -- Find proper pet skill - local petFamily = pet:getFamily() + local petFamily = pet:getSpecies() local skillId = xi.mobSkill.SEARING_LIGHT_1 -- Default to Searing Light if not found below for mobSkillId, petFamilyList in pairs(petAstralFlowAbility) do diff --git a/scripts/actions/mobskills/crosswind.lua b/scripts/actions/mobskills/crosswind.lua index 8f8ad871abb..9b810a7068f 100644 --- a/scripts/actions/mobskills/crosswind.lua +++ b/scripts/actions/mobskills/crosswind.lua @@ -8,7 +8,7 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) if - mob:getFamily() == xi.mobSpecies.WARDEN and -- Pandemonium Warden TODO: Set skill lists + mob:getSpecies() == xi.mobSpecies.WARDEN and -- Pandemonium Warden TODO: Set skill lists mob:getModelId() ~= 1746 then return 1 diff --git a/scripts/actions/mobskills/deafening_tantara.lua b/scripts/actions/mobskills/deafening_tantara.lua index c126b41fb10..fe29736f18d 100644 --- a/scripts/actions/mobskills/deafening_tantara.lua +++ b/scripts/actions/mobskills/deafening_tantara.lua @@ -11,7 +11,7 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) - if mob:getAnimationSub() == 5 and mob:getFamily() == xi.mobSpecies.IMP then -- Imps without horn + if mob:getAnimationSub() == 5 and mob:getSpecies() == xi.mobSpecies.IMP then -- Imps without horn return 1 else return 0 diff --git a/scripts/actions/mobskills/digest.lua b/scripts/actions/mobskills/digest.lua index 0d1f7c2718f..5ec7ffec332 100644 --- a/scripts/actions/mobskills/digest.lua +++ b/scripts/actions/mobskills/digest.lua @@ -10,10 +10,10 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) -- TODO: Move to mobskill script? if - mob:getFamily() == xi.mobSpecies.BOIL or -- Boil - mob:getFamily() == xi.mobSpecies.CLOT or -- Clot - mob:getFamily() == xi.mobSpecies.SCUM or -- Scum - mob:getFamily() == xi.mobSpecies.SLIME -- Slime + mob:getSpecies() == xi.mobSpecies.BOIL or -- Boil + mob:getSpecies() == xi.mobSpecies.CLOT or -- Clot + mob:getSpecies() == xi.mobSpecies.SCUM or -- Scum + mob:getSpecies() == xi.mobSpecies.SLIME -- Slime then -- Slime family if mob:checkDistance(target) < 3 then -- Don't use it if he is on his target. return 1 diff --git a/scripts/actions/mobskills/frenetic_rip.lua b/scripts/actions/mobskills/frenetic_rip.lua index 119538a7d80..e913744beb7 100644 --- a/scripts/actions/mobskills/frenetic_rip.lua +++ b/scripts/actions/mobskills/frenetic_rip.lua @@ -9,7 +9,7 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) if mob:getAnimationSub() == 4 and - mob:getFamily() == xi.mobSpecies.HORNED_IMP + mob:getSpecies() == xi.mobSpecies.HORNED_IMP then return 1 else diff --git a/scripts/actions/mobskills/stifling_tantara.lua b/scripts/actions/mobskills/stifling_tantara.lua index 019441358c2..d301fbee7a7 100644 --- a/scripts/actions/mobskills/stifling_tantara.lua +++ b/scripts/actions/mobskills/stifling_tantara.lua @@ -8,7 +8,7 @@ local mobskillObject = {} mobskillObject.onMobSkillCheck = function(target, mob, skill) - if mob:getAnimationSub() == 5 and mob:getFamily() == xi.mobSpecies.IMP then -- Imps without horn + if mob:getAnimationSub() == 5 and mob:getSpecies() == xi.mobSpecies.IMP then -- Imps without horn return 1 else return 0 diff --git a/scripts/actions/spells/black/meteor.lua b/scripts/actions/spells/black/meteor.lua index a636b58e97f..f6f543cd54c 100644 --- a/scripts/actions/spells/black/meteor.lua +++ b/scripts/actions/spells/black/meteor.lua @@ -32,7 +32,7 @@ spellObject.onSpellCast = function(caster, target, spell) -- TODO: Account for all mitigation sources. -- TODO: Account for rage. damage = caster:getMainLvl() * 15.5 - elseif caster:getFamily() == xi.mobSpecies.PROMATHIA then -- Promathia family + elseif caster:getSpecies() == xi.mobSpecies.PROMATHIA then -- Promathia family damage = caster:getMainLvl() * 7 else damage = ((100 + caster:getMod(xi.mod.MATT)) / (100 + target:getMod(xi.mod.MDEF))) * (caster:getStat(xi.mod.INT) + (caster:getMaxSkillLevel(caster:getMainLvl(), xi.job.BLM, xi.skill.ELEMENTAL_MAGIC)) / 6) * 9.4 diff --git a/scripts/commands/getmobspecies.lua b/scripts/commands/getspecies.lua similarity index 89% rename from scripts/commands/getmobspecies.lua rename to scripts/commands/getspecies.lua index 752ee9ebddc..f5a45483589 100644 --- a/scripts/commands/getmobspecies.lua +++ b/scripts/commands/getspecies.lua @@ -1,5 +1,5 @@ ----------------------------------- --- func: getmobspecies +-- func: getspecies -- desc: Prints the mob's species ID. ----------------------------------- ---@type TCommand @@ -13,7 +13,7 @@ commandObj.cmdprops = local function error(player, msg) player:printToPlayer(msg) - player:printToPlayer('!getmobspecies (mob ID)') + player:printToPlayer('!getspecies (mob ID)') end local function getSpeciesName(id) @@ -42,7 +42,7 @@ commandObj.onTrigger = function(player, mobId) end end - local speciesId = targ:getFamily() + local speciesId = targ:getSpecies() player:printToPlayer(string.format('%s %i mob species is %i (%s).', targ:getName(), targ:getID(), speciesId, getSpeciesName(speciesId))) end diff --git a/scripts/effects/counterstance.lua b/scripts/effects/counterstance.lua index 252937a7051..9db2665cc49 100644 --- a/scripts/effects/counterstance.lua +++ b/scripts/effects/counterstance.lua @@ -6,7 +6,7 @@ local effectObject = {} effectObject.onEffectGain = function(target, effect) - if target:isMob() and target:getFamily() == xi.mobSpecies.BUGBEAR then -- Bugbear Family + if target:isMob() and target:getSpecies() == xi.mobSpecies.BUGBEAR then -- Bugbear Family effect:addMod(xi.mod.ATTP, 15) end diff --git a/scripts/enum/mob_sublink.lua b/scripts/enum/mob_sublink.lua index 89e4edb2a41..d296b92f064 100644 --- a/scripts/enum/mob_sublink.lua +++ b/scripts/enum/mob_sublink.lua @@ -1,5 +1,5 @@ ----------------------------------- --- Mob SUBLINK mobMod values. These are assigned in mob_family_mods.sql or in mob scripts. +-- Mob SUBLINK mobMod values. These are assigned in mob_species_mods.sql or in mob scripts. -- The SUBLINK mobMod enables mobs from different families to link with one another if they share a SUBLINK value and they have linking enabled. ----------------------------------- xi = xi or {} diff --git a/scripts/globals/magian.lua b/scripts/globals/magian.lua index 54c820c9b8c..cabf8b72257 100644 --- a/scripts/globals/magian.lua +++ b/scripts/globals/magian.lua @@ -894,8 +894,8 @@ local trialConditions = return not trialData.mobEcosystem or mob:getEcosystem() == trialData.mobEcosystem end, - ['mobFamily'] = function(trialData, player, mob, paramTable) - return not trialData.mobFamily or trialData.mobFamily[mob:getFamily()] + ['mobSpecies'] = function(trialData, player, mob, paramTable) + return not trialData.mobSpecies or trialData.mobSpecies[mob:getSpecies()] end, ['mobSuperFamily'] = function(trialData, player, mob, paramTable) diff --git a/scripts/globals/roe.lua b/scripts/globals/roe.lua index 2d36bc004b8..22aad525bec 100644 --- a/scripts/globals/roe.lua +++ b/scripts/globals/roe.lua @@ -26,8 +26,8 @@ local checks = return (params.mob and player:checkKillCredit(params.mob)) and true or false end, - mobFamily = function(self, player, params) -- Mob family in set - return (params.mob and self.reqs.mobFamily[params.mob:getFamily()]) and true or false + mobSpecies = function(self, player, params) -- Mob species in set + return (params.mob and self.reqs.mobSpecies[params.mob:getSpecies()]) and true or false end, mobSuperFamily = function(self, player, params) -- Mob super family in set diff --git a/scripts/globals/znm.lua b/scripts/globals/znm.lua index 15f5d23b96a..540176ed01c 100644 --- a/scripts/globals/znm.lua +++ b/scripts/globals/znm.lua @@ -168,7 +168,7 @@ xi.znm.soultrapper.onItemCheck = function(target, item, param, caster) -- can not be used on non mobs or Structure type mobs if not target:isMob() or - (target:getFamily() >= 370 and target:getFamily() <= 379) -- All structures + (target:getSpecies() >= 370 and target:getSpecies() <= 379) -- All structures then return xi.msg.basic.ITEM_CANNOT_USE_TARGET end @@ -273,13 +273,13 @@ xi.znm.soultrapper.getZeniValue = function(target, player) zeni = zeni * 1 + math.abs(hpp - 100) / 6 if - target:getFamily() == xi.mobSpecies.EUVHI and + target:getSpecies() == xi.mobSpecies.EUVHI and target:getZoneID() == 33 then -- Dahak and Aw'euvhi zeni = zeni + xi.znm.SOULPLATE_UNIQUE_AMOUNT elseif - target:getFamily() == xi.mobSpecies.CHIGOE or - target:getFamily() == xi.mobSpecies.DJIGGA + target:getSpecies() == xi.mobSpecies.CHIGOE or + target:getSpecies() == xi.mobSpecies.DJIGGA then -- chigoe penalty zeni = zeni - xi.znm.SOULPLATE_UNIQUE_AMOUNT -- Generic NM/Rarity Component diff --git a/scripts/mixins/families/gear.lua b/scripts/mixins/families/gear.lua index 9536caf6273..af8331d15c4 100644 --- a/scripts/mixins/families/gear.lua +++ b/scripts/mixins/families/gear.lua @@ -5,7 +5,7 @@ g_mixins.families = g_mixins.families or {} g_mixins.families.gear = function(gearMob) gearMob:addListener('SPAWN', 'TRIPLE_GEAR_DROP', function(mob) -- Setup Triple Gears losing gears - if mob:getFamily() == xi.mobSpecies.TRIPLE_GEAR then + if mob:getSpecies() == xi.mobSpecies.TRIPLE_GEAR then mob:setLocalVar('gearDrop1', math.random(45, 60)) mob:setLocalVar('gearDrop2', math.random(35, 20)) end @@ -13,7 +13,7 @@ g_mixins.families.gear = function(gearMob) gearMob:addListener('COMBAT_TICK', 'GEARS_CTICK', function(mob) -- Triple Gears only - if mob:getFamily() == xi.mobSpecies.TRIPLE_GEAR then + if mob:getSpecies() == xi.mobSpecies.TRIPLE_GEAR then local mobHPP = mob:getHPP() local tripleGear = 0 local doubleGear = 1 diff --git a/scripts/mixins/job_special.lua b/scripts/mixins/job_special.lua index 86ce044bd22..ad5c2e70083 100644 --- a/scripts/mixins/job_special.lua +++ b/scripts/mixins/job_special.lua @@ -275,7 +275,7 @@ g_mixins.job_special = function(jobSpecialMob) local ability = job2hr[mJob] if mJob == xi.job.RNG then - ability = familyEES[mob:getFamily()] + ability = familyEES[mob:getSpecies()] elseif mJob == xi.job.SMN and mob:isInDynamis() then ability = xi.mobSkill.ASTRAL_FLOW_MAAT end diff --git a/scripts/specs/core/CBaseEntity.lua b/scripts/specs/core/CBaseEntity.lua index 68d0d480d7c..31c1e77d29c 100644 --- a/scripts/specs/core/CBaseEntity.lua +++ b/scripts/specs/core/CBaseEntity.lua @@ -3671,7 +3671,7 @@ end ---@nodiscard ---@return integer -function CBaseEntity:getFamily() +function CBaseEntity:getSpecies() end ---@nodiscard diff --git a/scripts/zones/AlTaieu/mobs/Jailer_of_Love.lua b/scripts/zones/AlTaieu/mobs/Jailer_of_Love.lua index f6b2c6f53b2..06ec048deaf 100644 --- a/scripts/zones/AlTaieu/mobs/Jailer_of_Love.lua +++ b/scripts/zones/AlTaieu/mobs/Jailer_of_Love.lua @@ -58,13 +58,13 @@ local astralFlowPets = function() -- Picking annoying abilities for now... pet:timer(1500, function(petArg) if - petArg:getFamily() == xi.mobSpecies.XZOMIT or -- xzomit - petArg:getFamily() == xi.mobSpecies.XZOMIT_CHILD -- xzomit child + petArg:getSpecies() == xi.mobSpecies.XZOMIT or -- xzomit + petArg:getSpecies() == xi.mobSpecies.XZOMIT_CHILD -- xzomit child then petArg:useMobAbility(xi.mobskill.MANTLE_PIERCE) - elseif petArg:getFamily() == xi.mobSpecies.HPEMDE then -- hpemde + elseif petArg:getSpecies() == xi.mobSpecies.HPEMDE then -- hpemde petArg:useMobAbility(xi.mobskill.SINUATE_RUSH) - elseif petArg:getFamily() == xi.mobSpecies.PHUABO then -- Phuabo + elseif petArg:getSpecies() == xi.mobSpecies.PHUABO then -- Phuabo petArg:useMobAbility(xi.mobskill.AERIAL_COLLISION) end end) diff --git a/sql/mob_family_mods.sql b/sql/mob_family_mods.sql deleted file mode 100644 index 39175482a85..00000000000 --- a/sql/mob_family_mods.sql +++ /dev/null @@ -1,676 +0,0 @@ -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `mob_family_mods` --- - -DROP TABLE IF EXISTS `mob_family_mods`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `mob_family_mods` ( - `familyid` smallint(5) unsigned NOT NULL, - `modid` smallint(5) unsigned NOT NULL, - `value` smallint(5) NOT NULL DEFAULT '0', - `is_mob_mod` boolean NOT NULL DEFAULT '0', - PRIMARY KEY (`familyid`,`modid`) -) ENGINE=Aria TRANSACTIONAL=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci AVG_ROW_LENGTH=13 PACK_KEYS=1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `mob_family_mods` --- - -LOCK TABLES `mob_family_mods` WRITE; -/*!40000 ALTER TABLE `mob_family_mods` DISABLE KEYS */; --- Adamantoise -INSERT INTO `mob_family_mods` VALUES (298,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (298,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (298,63,20,0); -- DEFP: 20 - --- Ahriman -INSERT INTO `mob_family_mods` VALUES (195,7,60,1); -- GA_CHANCE: 60 -INSERT INTO `mob_family_mods` VALUES (195,29,20,0); -- MDEF: 20 -INSERT INTO `mob_family_mods` VALUES (195,36,40,1); -- ROAM_COOL: 40 -INSERT INTO `mob_family_mods` VALUES (195,51,5,1); -- ROAM_TURNS: 5 -INSERT INTO `mob_family_mods` VALUES (195,56,-1,1); -- HP_STANDBACK: -1 -INSERT INTO `mob_family_mods` VALUES (195,244,20,0); -- SILENCERES: 20 - --- Animated Weapon -INSERT INTO `mob_family_mods` VALUES (476,3,50,1); -- MP_BASE: 50 - --- Antlion -INSERT INTO `mob_family_mods` VALUES (422,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (422,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (422,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (422,63,20,0); -- DEFP: 20 - --- Apkallu -INSERT INTO `mob_family_mods` VALUES (171,10,14,1); -- SUBLINK: 14 (Apkallu) - --- Avatar-Atomos -INSERT INTO `mob_family_mods` VALUES (240,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Alexander -INSERT INTO `mob_family_mods` VALUES (239,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Carbuncle -INSERT INTO `mob_family_mods` VALUES (243,3,100,1); -- MP_BASE: 100 -INSERT INTO `mob_family_mods` VALUES (243,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Diabolos -INSERT INTO `mob_family_mods` VALUES (245,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Fenrir -INSERT INTO `mob_family_mods` VALUES (246,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Garuda -INSERT INTO `mob_family_mods` VALUES (247,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Ifrit -INSERT INTO `mob_family_mods` VALUES (248,56,-1,1); -- HP_STANDBACK: -1 - --- Monoceros -INSERT INTO `mob_family_mods` VALUES (272,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Leviathan -INSERT INTO `mob_family_mods` VALUES (249,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Odin -INSERT INTO `mob_family_mods` VALUES (250,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Odin - --- Avatar-Ramuh -INSERT INTO `mob_family_mods` VALUES (252,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Shiva -INSERT INTO `mob_family_mods` VALUES (253,56,-1,1); -- HP_STANDBACK: -1 - --- Avatar-Titan -INSERT INTO `mob_family_mods` VALUES (255,56,-1,1); -- HP_STANDBACK: -1 - --- Bat -INSERT INTO `mob_family_mods` VALUES (173,10,3,1); -- SUBLINK: 3 (Single Bat, Bat Trio, Vampyr) -INSERT INTO `mob_family_mods` VALUES (173,36,35,1); -- ROAM_COOL: 35 -INSERT INTO `mob_family_mods` VALUES (173,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (173,52,30,1); -- ROAM_RATE: 30 - --- Bat Trio -INSERT INTO `mob_family_mods` VALUES (181,10,3,1); -- SUBLINK: 3 (Single Bat, Bat Trio, Vampyr) -INSERT INTO `mob_family_mods` VALUES (181,36,35,1); -- ROAM_COOL: 35 -INSERT INTO `mob_family_mods` VALUES (181,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (181,52,30,1); -- ROAM_RATE: 30 - --- Bee -INSERT INTO `mob_family_mods` VALUES (425,36,15,1); -- ROAM_COOL: 15 -INSERT INTO `mob_family_mods` VALUES (425,51,2,1); -- ROAM_TURNS: 2 - --- Beetle -INSERT INTO `mob_family_mods` VALUES (429,31,15,1); -- ROAM_DISTANCE: 15 -INSERT INTO `mob_family_mods` VALUES (429,36,60,1); -- ROAM_COOL: 60 -INSERT INTO `mob_family_mods` VALUES (429,52,30,1); -- ROAM_RATE: 30 - --- Behemoth -INSERT INTO `mob_family_mods` VALUES (85,36,50,1); -- ROAM_COOL: 50 - --- Bhoot -INSERT INTO `mob_family_mods` VALUES (407,242,20,0); -- PARALYZERES: 20 - --- Bomb -INSERT INTO `mob_family_mods` VALUES (46,36,30,1); -- ROAM_COOL: 30 -INSERT INTO `mob_family_mods` VALUES (46,51,5,1); -- ROAM_TURNS: 5 -INSERT INTO `mob_family_mods` VALUES (46,52,20,1); -- ROAM_RATE: 20 - --- Buffalo -INSERT INTO `mob_family_mods` VALUES (88,3,50,1); -- MP_BASE: 50 -INSERT INTO `mob_family_mods` VALUES (88,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (88,51,4,1); -- ROAM_TURNS: 4 -INSERT INTO `mob_family_mods` VALUES (88,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (88,62,10,0); -- ATTP: 10 -INSERT INTO `mob_family_mods` VALUES (88,63,20,0); -- DEFP: 20 - --- Bugard -INSERT INTO `mob_family_mods` VALUES (302,36,45,1); -- ROAM_COOL: 45 -INSERT INTO `mob_family_mods` VALUES (302,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (302,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (302,62,10,0); -- ATTP: 10 -INSERT INTO `mob_family_mods` VALUES (302,63,20,0); -- DEFP: 20 - --- Bugbear -INSERT INTO `mob_family_mods` VALUES (118,10,5,1); -- SUBLINK: 5 (Bugbear, Goblin, Moblin) -INSERT INTO `mob_family_mods` VALUES (118,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (118,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (118,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (118,63,20,0); -- DEFP: 20 - --- Cardian: https://www.bg-wiki.com/ffxi/Category:Cardian -INSERT INTO `mob_family_mods` VALUES (49,29,25,0); -- MDEF: 25 -INSERT INTO `mob_family_mods` VALUES (49,36,40,1); -- ROAM_COOL: 40 -INSERT INTO `mob_family_mods` VALUES (49,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (49,52,20,1); -- ROAM_RATE: 20 -INSERT INTO `mob_family_mods` VALUES (49,389,-2500,0); -- UDMGMAGIC: -2500 - --- Cerberus -INSERT INTO `mob_family_mods` VALUES (90,36,50,1); -- ROAM_COOL: 50 - --- Chariot -INSERT INTO `mob_family_mods` VALUES (75,10,15,1); -- SUBLINK: 15 (Chariot, Gear, Rampart) - --- Bomb-Cluster -INSERT INTO `mob_family_mods` VALUES (59,36,40,1); -- ROAM_COOL: 40 -INSERT INTO `mob_family_mods` VALUES (59,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (59,52,20,1); -- ROAM_RATE: 20 - --- Cockatrice -INSERT INTO `mob_family_mods` VALUES (177,36,30,1); -- ROAM_COOL: 30 -INSERT INTO `mob_family_mods` VALUES (177,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (177,52,30,1); -- ROAM_RATE: 30 - --- Coeurl -INSERT INTO `mob_family_mods` VALUES (92,31,5,1); -- ROAM_DISTANCE: 5 -INSERT INTO `mob_family_mods` VALUES (92,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (92,52,30,1); -- ROAM_RATE: 30 - --- Colibri -INSERT INTO `mob_family_mods` VALUES (179,3,50,1); -- MP_BASE: 50 -INSERT INTO `mob_family_mods` VALUES (179,29,10,0); -- MDEF: 10 -INSERT INTO `mob_family_mods` VALUES (179,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (179,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (179,68,20,0); -- EVA: 20 - --- Corse: https://www.bg-wiki.com/ffxi/Category:Corse -INSERT INTO `mob_family_mods` VALUES (394,29,25,0); -- MDEF: 25 -INSERT INTO `mob_family_mods` VALUES (394,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (394,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (394,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (394,388,-5000,0); -- UDMGBREATH: -5000 -INSERT INTO `mob_family_mods` VALUES (394,389,-2500,0); -- UDMGMAGIC: -2500 - --- Crab -INSERT INTO `mob_family_mods` VALUES (25,36,15,1); -- ROAM_COOL: 15 - --- Crawler -INSERT INTO `mob_family_mods` VALUES (437,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (437,52,30,1); -- ROAM_RATE: 30 - --- Dhalmel -INSERT INTO `mob_family_mods` VALUES (95,36,30,1); -- ROAM_COOL: 30 -INSERT INTO `mob_family_mods` VALUES (95,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (95,52,30,1); -- ROAM_RATE: 30 - --- Diremite -INSERT INTO `mob_family_mods` VALUES (442,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (442,51,2,1); -- ROAM_TURNS: 2 - --- Doll -INSERT INTO `mob_family_mods` VALUES (60,31,5,1); -- ROAM_DISTANCE: 5 -INSERT INTO `mob_family_mods` VALUES (60,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (60,52,30,1); -- ROAM_RATE: 30 - --- Doll - --- Doomed -INSERT INTO `mob_family_mods` VALUES (398,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (398,52,30,1); -- ROAM_RATE: 30 - --- Dragon -INSERT INTO `mob_family_mods` VALUES (219,3,10,1); -- MP_BASE: 10 -INSERT INTO `mob_family_mods` VALUES (219,4,18,1); -- SIGHT_RANGE: 18 -INSERT INTO `mob_family_mods` VALUES (219,5,10,1); -- SOUND_RANGE: 10 -INSERT INTO `mob_family_mods` VALUES (219,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (219,54,1000,1); -- GIL_BONUS: 1000 -INSERT INTO `mob_family_mods` VALUES (219,62,20,0); -- ATTP: 20 - --- Dynamisstatue-Goblin -INSERT INTO `mob_family_mods` VALUES (126,23,2047,1); -- IMMUNITY: 2047 -INSERT INTO `mob_family_mods` VALUES (126,56,-1,1); -- HP_STANDBACK: -1 -INSERT INTO `mob_family_mods` VALUES (126,73,100,0); -- STORETP: 100 - --- Dynamisstatue-Orc -INSERT INTO `mob_family_mods` VALUES (139,23,2047,1); -- IMMUNITY: 2047 -INSERT INTO `mob_family_mods` VALUES (139,56,-1,1); -- HP_STANDBACK: -1 -INSERT INTO `mob_family_mods` VALUES (139,73,100,0); -- STORETP: 100 - --- Dynamisstatue-Quadav -INSERT INTO `mob_family_mods` VALUES (150,23,2047,1); -- IMMUNITY: 2047 -INSERT INTO `mob_family_mods` VALUES (150,56,-1,1); -- HP_STANDBACK: -1 -INSERT INTO `mob_family_mods` VALUES (150,73,100,0); -- STORETP: 100 - --- Dynamisstatue-Yagudo -INSERT INTO `mob_family_mods` VALUES (168,23,2047,1); -- IMMUNITY: 2047 -INSERT INTO `mob_family_mods` VALUES (168,56,-1,1); -- HP_STANDBACK: -1 -INSERT INTO `mob_family_mods` VALUES (168,73,100,0); -- STORETP: 100 - --- Lizard-Ice -INSERT INTO `mob_family_mods` VALUES (308,36,60,1); -- ROAM_COOL: 60 -INSERT INTO `mob_family_mods` VALUES (308,51,4,1); -- ROAM_TURNS: 4 -INSERT INTO `mob_family_mods` VALUES (308,52,30,1); -- ROAM_RATE: 30 - --- Eft -INSERT INTO `mob_family_mods` VALUES (303,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (303,51,5,1); -- ROAM_TURNS: 5 -INSERT INTO `mob_family_mods` VALUES (303,52,30,1); -- ROAM_RATE: 30 - --- Elemental-Air -INSERT INTO `mob_family_mods` VALUES (256,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (256,56,-1,1); -- HP_STANDBACK: -1 - --- Elemental-Dark -INSERT INTO `mob_family_mods` VALUES (259,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (259,56,-1,1); -- HP_STANDBACK: -1 - --- Elemental-Earth -INSERT INTO `mob_family_mods` VALUES (260,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (260,56,-1,1); -- HP_STANDBACK: -1 - --- Elemental-Fire -INSERT INTO `mob_family_mods` VALUES (261,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (261,56,-1,1); -- HP_STANDBACK: -1 - --- Elemental-Ice -INSERT INTO `mob_family_mods` VALUES (263,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (263,56,-1,1); -- HP_STANDBACK: -1 - --- Elemental-Light -INSERT INTO `mob_family_mods` VALUES (264,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (264,56,-1,1); -- HP_STANDBACK: -1 - --- Elemental-Lightning -INSERT INTO `mob_family_mods` VALUES (265,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (265,56,-1,1); -- HP_STANDBACK: -1 - --- Elemental-Water -INSERT INTO `mob_family_mods` VALUES (267,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (267,56,-1,1); -- HP_STANDBACK: -1 - --- Evil Weapon: https://www.bg-wiki.com/ffxi/Category:Evil_Weapon -INSERT INTO `mob_family_mods` VALUES (62,3,50,1); -- MP_BASE: 50 -INSERT INTO `mob_family_mods` VALUES (62,36,45,1); -- ROAM_COOL: 45 -INSERT INTO `mob_family_mods` VALUES (62,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (62,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (62,389,-1250,0); -- UDMGMAGIC: -1250 - --- Non-Beastmen regular frogs -INSERT INTO `mob_family_mods` VALUES (32,62,1,1); -- NO_STANDBACK: 1 - --- Flan: https://www.bg-wiki.com/ffxi/Category:Flan -INSERT INTO `mob_family_mods` VALUES (5,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (5,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (5,388,2500,0); -- UDMGBREATH: 2500 -INSERT INTO `mob_family_mods` VALUES (5,389,2500,0); -- UDMGMAGIC: 2500 - --- Fomor -INSERT INTO `mob_family_mods` VALUES (403,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (403,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (403,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (403,54,100,1); -- GIL_BONUS: 100 - --- Funguar -INSERT INTO `mob_family_mods` VALUES (338,31,15,1); -- ROAM_DISTANCE: 15 -INSERT INTO `mob_family_mods` VALUES (338,36,60,1); -- ROAM_COOL: 60 -INSERT INTO `mob_family_mods` VALUES (338,52,30,1); -- ROAM_RATE: 30 - --- Gear -INSERT INTO `mob_family_mods` VALUES (79,10,15,1); -- SUBLINK: 15 (Chariot, Gear, Rampart) - --- Ghost -INSERT INTO `mob_family_mods` VALUES (408,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (408,52,30,1); -- ROAM_RATE: 30 - --- Ghrah: https://www.bg-wiki.com/ffxi/Category:Ghrah -INSERT INTO `mob_family_mods` VALUES (328,389,-1250,0); -- UDMGMAGIC: -1250 - --- Greater Bird -INSERT INTO `mob_family_mods` VALUES (188,36,40,1); -- ROAM_COOL: 40 -INSERT INTO `mob_family_mods` VALUES (188,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (188,52,30,1); -- ROAM_RATE: 30 - --- Gigas -INSERT INTO `mob_family_mods` VALUES (121,31,5,1); -- ROAM_DISTANCE: 5 -INSERT INTO `mob_family_mods` VALUES (121,36,25,1); -- ROAM_COOL: 25 -INSERT INTO `mob_family_mods` VALUES (121,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (121,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (121,54,180,1); -- GIL_BONUS: 180 - --- Goblin -INSERT INTO `mob_family_mods` VALUES (126,10,5,1); -- SUBLINK: 5 (Bugbear, Goblin, Moblin) - --- Golem -INSERT INTO `mob_family_mods` VALUES (63,4,4,1); -- SIGHT_RANGE: 4 -INSERT INTO `mob_family_mods` VALUES (63,31,5,1); -- ROAM_DISTANCE: 5 -INSERT INTO `mob_family_mods` VALUES (63,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (63,52,30,1); -- ROAM_RATE: 30 - --- Goobbue -INSERT INTO `mob_family_mods` VALUES (340,31,5,1); -- ROAM_DISTANCE: 5 -INSERT INTO `mob_family_mods` VALUES (340,36,60,1); -- ROAM_COOL: 60 -INSERT INTO `mob_family_mods` VALUES (340,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (340,62,10,0); -- ATTP: 10 - --- Hecteyes -INSERT INTO `mob_family_mods` VALUES (7,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (7,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (7,56,-1,1); -- HP_STANDBACK: -1 -INSERT INTO `mob_family_mods` VALUES (7,68,10,0); -- EVA: 10 - --- Hippogryph -INSERT INTO `mob_family_mods` VALUES (187,3,50,1); -- MP_BASE: 50 -INSERT INTO `mob_family_mods` VALUES (187,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (187,51,2,1); -- ROAM_TURNS: 2 - --- Hound -INSERT INTO `mob_family_mods` VALUES (409,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (409,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (409,52,30,1); -- ROAM_RATE: 30 - --- Hound - --- Humanoid-Hume -INSERT INTO `mob_family_mods` VALUES (295,4,30,1); -- SIGHT_RANGE: 30 - --- Hybridelemental-Air -INSERT INTO `mob_family_mods` VALUES (257,51,3,1); -- ROAM_TURNS: 3 - --- Hybridelemental-Dark -INSERT INTO `mob_family_mods` VALUES (258,51,3,1); -- ROAM_TURNS: 3 - --- Hybridelemental-Earth -INSERT INTO `mob_family_mods` VALUES (262,51,3,1); -- ROAM_TURNS: 3 - --- Hybridelemental-Fire -INSERT INTO `mob_family_mods` VALUES (266,51,3,1); -- ROAM_TURNS: 3 - --- Hybridelemental-Ice - --- Hybridelemental-Light - --- Hybridelemental-Lightning - --- Hybridelemental-Water - --- Hydra -INSERT INTO `mob_family_mods` VALUES (222,31,5,1); -- ROAM_DISTANCE: 5 -INSERT INTO `mob_family_mods` VALUES (222,36,55,1); -- ROAM_COOL: 55 - --- Hydra - --- Imp -INSERT INTO `mob_family_mods` VALUES (212,10,13,1); -- SUBLINK: 13 (Imps) -INSERT INTO `mob_family_mods` VALUES (212,29,24,0); -- MDEF: 24 -INSERT INTO `mob_family_mods` VALUES (212,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (212,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (212,56,-1,1); -- HP_STANDBACK: -1 -INSERT INTO `mob_family_mods` VALUES (212,4,10,1); -- SIGHT_RANGE: 10 -INSERT INTO `mob_family_mods` VALUES (212,5,5,1); -- SOUND_RANGE: 5 - --- Imp - --- Kindred: https://www.bg-wiki.com/ffxi/Category:Demon -INSERT INTO `mob_family_mods` VALUES (201,10,1,1); -- SUBLINK: 1 (Kindred, Tauri) -INSERT INTO `mob_family_mods` VALUES (201,11,15,1); -- LINK_RADIUS: 15 -INSERT INTO `mob_family_mods` VALUES (201,29,25,0); -- MDEF: 25 -INSERT INTO `mob_family_mods` VALUES (201,31,15,1); -- ROAM_DISTANCE: 15 -INSERT INTO `mob_family_mods` VALUES (201,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (201,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (201,54,120,1); -- GIL_BONUS: 120 -INSERT INTO `mob_family_mods` VALUES (201,389,-2500,0); -- UDMGMAGIC: -2500 - --- Lamiae: https://www.bg-wiki.com/ffxi/Category:Lamiae -INSERT INTO `mob_family_mods` VALUES (129,10,10,1); -- SUBLINK: 10 (Lamiae) -INSERT INTO `mob_family_mods` VALUES (129,29,13,0); -- MDEF: 13 -INSERT INTO `mob_family_mods` VALUES (129,389,-1250,0); -- UDMGMAGIC: -1250 - --- Leech -INSERT INTO `mob_family_mods` VALUES (8,31,15,1); -- ROAM_DISTANCE: 15 - --- Lizard -INSERT INTO `mob_family_mods` VALUES (306,36,60,1); -- ROAM_COOL: 60 -INSERT INTO `mob_family_mods` VALUES (306,51,4,1); -- ROAM_TURNS: 4 -INSERT INTO `mob_family_mods` VALUES (306,52,30,1); -- ROAM_RATE: 30 - --- Magic Pot: https://www.bg-wiki.com/ffxi/Category:Magic_Pot -INSERT INTO `mob_family_mods` VALUES (69,31,5,1); -- ROAM_DISTANCE: 5 -INSERT INTO `mob_family_mods` VALUES (69,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (69,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (69,389,-5000,0); -- UDMGMAGIC: -5000 - --- Mamool Ja -INSERT INTO `mob_family_mods` VALUES (132,10,8,1); -- SUBLINK: 8 (Mamool Ja, Sahagin) -INSERT INTO `mob_family_mods` VALUES (132,68,10,0); -- EVA: 10 - --- Manticore -INSERT INTO `mob_family_mods` VALUES (98,31,30,1); -- ROAM_DISTANCE: 30 -INSERT INTO `mob_family_mods` VALUES (98,36,60,1); -- ROAM_COOL: 60 -INSERT INTO `mob_family_mods` VALUES (98,51,4,1); -- ROAM_TURNS: 4 -INSERT INTO `mob_family_mods` VALUES (98,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (98,62,10,0); -- ATTP: 10 -INSERT INTO `mob_family_mods` VALUES (98,3,50,0); -- HPP: 50 - --- Marid -INSERT INTO `mob_family_mods` VALUES (99,36,30,1); -- ROAM_COOL: 30 -INSERT INTO `mob_family_mods` VALUES (99,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (99,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (99,63,20,0); -- DEFP: 20 - --- Merrow -INSERT INTO `mob_family_mods` VALUES (131,10,10,1); -- SUBLINK: 10 (Lamiae) - --- Moblin -INSERT INTO `mob_family_mods` VALUES (127,10,5,1); -- SUBLINK: 5 (Bugbear, Goblin, Moblin) - --- Morbol -INSERT INTO `mob_family_mods` VALUES (353,36,30,1); -- ROAM_COOL: 30 -INSERT INTO `mob_family_mods` VALUES (353,52,30,1); -- ROAM_RATE: 30 - --- Opo-Opo -INSERT INTO `mob_family_mods` VALUES (100,36,35,1); -- ROAM_COOL: 35 -INSERT INTO `mob_family_mods` VALUES (100,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (100,52,20,1); -- ROAM_RATE: 20 - --- Orc -INSERT INTO `mob_family_mods` VALUES (139,10,2,1); -- SUBLINK: 2 (Orc, Orc Warmachine) -INSERT INTO `mob_family_mods` VALUES (139,3,5,0); -- HPP: 5 - --- Orc-Warmachine -INSERT INTO `mob_family_mods` VALUES (143,10,2,1); -- SUBLINK: 2 (Orc, Orc Warmachine) -INSERT INTO `mob_family_mods` VALUES (143,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (143,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (143,3,5,0); -- HPP: 5 - --- Wyvern-Pet -INSERT INTO `mob_family_mods` VALUES (236,3,40,1); -- MP_BASE: 40 - --- Phuabo -INSERT INTO `mob_family_mods` VALUES (323,3,50,1); -- MP_BASE: 50 - --- Qiqirn -INSERT INTO `mob_family_mods` VALUES (147,10,12,1); -- SUBLINK: 12 (Qiqirn) - --- Quadav -INSERT INTO `mob_family_mods` VALUES (150,3,-5,0); -- HPP: -5 - --- Qutrub -INSERT INTO `mob_family_mods` VALUES (414,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (414,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (414,52,30,1); -- ROAM_RATE: 30 - --- Rabbit -INSERT INTO `mob_family_mods` VALUES (106,31,15,1); -- ROAM_DISTANCE: 15 -INSERT INTO `mob_family_mods` VALUES (106,36,35,1); -- ROAM_COOL: 35 -INSERT INTO `mob_family_mods` VALUES (106,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (106,52,30,1); -- ROAM_RATE: 30 - --- Rafflesia -INSERT INTO `mob_family_mods` VALUES (359,3,50,1); -- MP_BASE: 50 - --- Ram -INSERT INTO `mob_family_mods` VALUES (108,36,60,1); -- ROAM_COOL: 60 -INSERT INTO `mob_family_mods` VALUES (108,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (108,62,10,0); -- ATTP: 10 -INSERT INTO `mob_family_mods` VALUES (108,63,20,0); -- DEFP: 20 - --- Rampart -INSERT INTO `mob_family_mods` VALUES (84,10,15,1); -- SUBLINK: 15 (Chariot, Gear, Rampart) - --- Raptor -INSERT INTO `mob_family_mods` VALUES (315,31,30,1); -- ROAM_DISTANCE: 30 -INSERT INTO `mob_family_mods` VALUES (315,36,40,1); -- ROAM_COOL: 40 -INSERT INTO `mob_family_mods` VALUES (315,51,3,1); -- ROAM_TURNS: 3 - --- Sabotender -INSERT INTO `mob_family_mods` VALUES (334,10,7,1); -- SUBLINK: 7 (Sabotender) -INSERT INTO `mob_family_mods` VALUES (334,36,10,1); -- ROAM_COOL: 10 -INSERT INTO `mob_family_mods` VALUES (334,52,20,1); -- ROAM_RATE: 20 - --- Sahagin -INSERT INTO `mob_family_mods` VALUES (151,10,8,1); -- SUBLINK: 8 (Mamool Ja, Sahagin) -INSERT INTO `mob_family_mods` VALUES (151,20,128,0); -- WATER_MEVA: 128 - --- Sapling -INSERT INTO `mob_family_mods` VALUES (360,10,4,1); -- SUBLINK: 4 (Sapling, Treant) -INSERT INTO `mob_family_mods` VALUES (360,31,20,1); -- ROAM_DISTANCE: 20 - --- Scorpion -INSERT INTO `mob_family_mods` VALUES (460,23,256,1); -- IMMUNITY: 256 -INSERT INTO `mob_family_mods` VALUES (460,36,55,1); -- ROAM_COOL: 55 -INSERT INTO `mob_family_mods` VALUES (460,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (460,62,20,0); -- ATTP: 20 - --- Sea Monk -INSERT INTO `mob_family_mods` VALUES (42,36,30,1); -- ROAM_COOL: 30 - --- Sea Monk - --- Shadow -INSERT INTO `mob_family_mods` VALUES (415,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (415,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (415,52,30,1); -- ROAM_RATE: 30 - --- Sheep -INSERT INTO `mob_family_mods` VALUES (111,31,15,1); -- ROAM_DISTANCE: 15 -INSERT INTO `mob_family_mods` VALUES (111,36,60,1); -- ROAM_COOL: 60 -INSERT INTO `mob_family_mods` VALUES (111,51,5,1); -- ROAM_TURNS: 5 -INSERT INTO `mob_family_mods` VALUES (111,52,30,1); -- ROAM_RATE: 30 - --- Skeleton -INSERT INTO `mob_family_mods` VALUES (419,36,65,1); -- ROAM_COOL: 65 -INSERT INTO `mob_family_mods` VALUES (419,51,5,1); -- ROAM_TURNS: 5 -INSERT INTO `mob_family_mods` VALUES (419,52,30,1); -- ROAM_RATE: 30 - --- Snoll -INSERT INTO `mob_family_mods` VALUES (48,36,40,1); -- ROAM_COOL: 40 -INSERT INTO `mob_family_mods` VALUES (48,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (48,52,20,1); -- ROAM_RATE: 20 - --- Soulflayer -INSERT INTO `mob_family_mods` VALUES (215,10,11,1); -- SUBLINK: 11 (Soulflayers) -INSERT INTO `mob_family_mods` VALUES (215,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (215,51,3,1); -- ROAM_TURNS: 3 - --- Spheroid -INSERT INTO `mob_family_mods` VALUES (74,37,1,1); -- ALWAYS_AGGRO: 1 - --- Structure -INSERT INTO `mob_family_mods` VALUES (370,4,30,1); -- SIGHT_RANGE: 30 - --- Tauri -INSERT INTO `mob_family_mods` VALUES (217,10,1,1); -- SUBLINK: 1 (Kindred, Tauri) -INSERT INTO `mob_family_mods` VALUES (217,36,40,1); -- ROAM_COOL: 40 -INSERT INTO `mob_family_mods` VALUES (217,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (217,52,30,1); -- ROAM_RATE: 30 - --- Tiger -INSERT INTO `mob_family_mods` VALUES (114,31,15,1); -- ROAM_DISTANCE: 15 -INSERT INTO `mob_family_mods` VALUES (114,36,45,1); -- ROAM_COOL: 45 -INSERT INTO `mob_family_mods` VALUES (114,51,3,1); -- ROAM_TURNS: 3 -INSERT INTO `mob_family_mods` VALUES (114,62,10,0); -- ATTP: 10 - --- Tonberry -INSERT INTO `mob_family_mods` VALUES (159,36,25,1); -- ROAM_COOL: 25 -INSERT INTO `mob_family_mods` VALUES (159,51,5,1); -- ROAM_TURNS: 5 -INSERT INTO `mob_family_mods` VALUES (159,52,30,1); -- ROAM_RATE: 30 - --- Treant -INSERT INTO `mob_family_mods` VALUES (366,10,4,1); -- SUBLINK: 4 (Sapling, Treant) -INSERT INTO `mob_family_mods` VALUES (366,36,65,1); -- ROAM_COOL: 65 -INSERT INTO `mob_family_mods` VALUES (366,52,30,1); -- ROAM_RATE: 30 -INSERT INTO `mob_family_mods` VALUES (366,63,20,0); -- DEFP: 20 - --- Troll -INSERT INTO `mob_family_mods` VALUES (163,10,9,1); -- SUBLINK: 9 (Trolls) - --- Uragnite -INSERT INTO `mob_family_mods` VALUES (44,36,40,1); -- ROAM_COOL: 40 -INSERT INTO `mob_family_mods` VALUES (44,52,30,1); -- ROAM_RATE: 30 - --- Wamoura -INSERT INTO `mob_family_mods` VALUES (470,3,50,1); -- MP_BASE: 50 -INSERT INTO `mob_family_mods` VALUES (470,10,6,1); -- SUBLINK: 6 (Wamoura, Wamouracampa) - --- Wamouracampa -INSERT INTO `mob_family_mods` VALUES (471,10,6,1); -- SUBLINK: 6 (Wamouracampa, Brassborer) - --- Wanderer -INSERT INTO `mob_family_mods` VALUES (290,3,50,1); -- MP_BASE: 50 - --- Wivre -INSERT INTO `mob_family_mods` VALUES (319,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (319,52,30,1); -- ROAM_RATE: 30 - --- Worm -INSERT INTO `mob_family_mods` VALUES (23,34,25,1); -- MAGIC_COOL: 25 -INSERT INTO `mob_family_mods` VALUES (23,36,90,1); -- ROAM_COOL: 90 -INSERT INTO `mob_family_mods` VALUES (23,52,30,1); -- ROAM_RATE: 30 - --- Wyrm-Ouryu -INSERT INTO `mob_family_mods` VALUES (225,36,55,1); -- ROAM_COOL: 55 - --- Wyvern-Simorg -INSERT INTO `mob_family_mods` VALUES (235,36,55,1); -- ROAM_COOL: 55 - --- Yovra -INSERT INTO `mob_family_mods` VALUES (327,3,50,1); -- MP_BASE: 50 - --- Zdei -INSERT INTO `mob_family_mods` VALUES (331,4,10,1); -- SIGHT_RANGE: 10 -INSERT INTO `mob_family_mods` VALUES (331,102,60,1); -- MOBMOD_SIGHT_ANGLE - --- Vampyr -INSERT INTO `mob_family_mods` VALUES (421,10,3,1); -- SUBLINK: 3 (Single Bat, Bat Trio, Vampyr) -INSERT INTO `mob_family_mods` VALUES (421,36,50,1); -- ROAM_COOL: 50 -INSERT INTO `mob_family_mods` VALUES (421,51,2,1); -- ROAM_TURNS: 2 -INSERT INTO `mob_family_mods` VALUES (421,52,30,1); -- ROAM_RATE: 30 - --- Sabotender-Florido -INSERT INTO `mob_family_mods` VALUES (335,10,7,1); -- SUBLINK: 7 (Sabotender) - --- Lamiae -INSERT INTO `mob_family_mods` VALUES (130,10,10,1); -- SUBLINK: 10 (Lamiae) - --- Apkallu -INSERT INTO `mob_family_mods` VALUES (171,4,5,1); -- SIGHT_RANGE: 5 - --- Flan -INSERT INTO `mob_family_mods` VALUES (5,56,-1,1); -- HP_STANDBACK: -1 -INSERT INTO `mob_family_mods` VALUES (5,69,1,1); -- NO_LINK: 1 - -/*!40000 ALTER TABLE `mob_family_mods` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index a09c31695ae..3c81566faaf 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -20,7 +20,7 @@ CREATE TABLE `mob_pools` ( `poolid` int(10) unsigned NOT NULL, `name` varchar(32) DEFAULT NULL, `packet_name` varchar(24) DEFAULT NULL, - `familyid` smallint(4) unsigned NOT NULL DEFAULT 0, + `speciesid` smallint(4) unsigned NOT NULL DEFAULT 0, `modelid` binary(20) NOT NULL, `mJob` tinyint(2) unsigned NOT NULL DEFAULT 1, `sJob` tinyint(2) unsigned NOT NULL DEFAULT 1, @@ -7519,7 +7519,7 @@ INSERT INTO `mob_pools` VALUES (30001,'Bozzetto_Breadwinner','Bozzetto Breadwinn `poolid` int(10) unsigned NOT NULL, `name` varchar(24) DEFAULT NULL, `packet_name` varchar(24) DEFAULT NULL, - `familyid` smallint(4) unsigned NOT NULL DEFAULT '0', + `speciesid` smallint(4) unsigned NOT NULL DEFAULT '0', `modelid` binary(20) NOT NULL, `mJob` tinyint(2) unsigned NOT NULL DEFAULT '1', `sJob` tinyint(2) unsigned NOT NULL DEFAULT '1', diff --git a/sql/mob_species_mods.sql b/sql/mob_species_mods.sql new file mode 100644 index 00000000000..a7055f371de --- /dev/null +++ b/sql/mob_species_mods.sql @@ -0,0 +1,677 @@ +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `mob_species_mods` +-- + +DROP TABLE IF EXISTS `mob_species_mods`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `mob_species_mods` ( + `speciesid` smallint(5) unsigned NOT NULL, + `modid` smallint(5) unsigned NOT NULL, + `value` smallint(5) NOT NULL DEFAULT '0', + `is_mob_mod` boolean NOT NULL DEFAULT '0', + PRIMARY KEY (`speciesid`,`modid`) +) ENGINE=Aria TRANSACTIONAL=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci AVG_ROW_LENGTH=13 PACK_KEYS=1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `mob_species_mods` +-- + +LOCK TABLES `mob_species_mods` WRITE; +/*!40000 ALTER TABLE `mob_species_mods` DISABLE KEYS */; +-- Adamantoise +INSERT INTO `mob_species_mods` VALUES (298,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (298,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (298,63,20,0); -- DEFP: 20 + +-- Ahriman +INSERT INTO `mob_species_mods` VALUES (195,7,60,1); -- GA_CHANCE: 60 +INSERT INTO `mob_species_mods` VALUES (195,29,20,0); -- MDEF: 20 +INSERT INTO `mob_species_mods` VALUES (195,36,40,1); -- ROAM_COOL: 40 +INSERT INTO `mob_species_mods` VALUES (195,51,5,1); -- ROAM_TURNS: 5 +INSERT INTO `mob_species_mods` VALUES (195,56,-1,1); -- HP_STANDBACK: -1 +INSERT INTO `mob_species_mods` VALUES (195,244,20,0); -- SILENCERES: 20 + +-- Animated Weapon +INSERT INTO `mob_species_mods` VALUES (476,3,50,1); -- MP_BASE: 50 + +-- Antlion +INSERT INTO `mob_species_mods` VALUES (422,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (422,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (422,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (422,63,20,0); -- DEFP: 20 + +-- Apkallu +INSERT INTO `mob_species_mods` VALUES (171,10,14,1); -- SUBLINK: 14 (Apkallu) + +-- Avatar-Atomos +INSERT INTO `mob_species_mods` VALUES (240,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Alexander +INSERT INTO `mob_species_mods` VALUES (239,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Carbuncle +INSERT INTO `mob_species_mods` VALUES (243,3,100,1); -- MP_BASE: 100 +INSERT INTO `mob_species_mods` VALUES (243,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Diabolos +INSERT INTO `mob_species_mods` VALUES (245,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Fenrir +INSERT INTO `mob_species_mods` VALUES (246,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Garuda +INSERT INTO `mob_species_mods` VALUES (247,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Ifrit +INSERT INTO `mob_species_mods` VALUES (248,56,-1,1); -- HP_STANDBACK: -1 + +-- Monoceros +INSERT INTO `mob_species_mods` VALUES (272,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Leviathan +INSERT INTO `mob_species_mods` VALUES (249,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Odin +INSERT INTO `mob_species_mods` VALUES (250,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Odin + +-- Avatar-Ramuh +INSERT INTO `mob_species_mods` VALUES (252,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Shiva +INSERT INTO `mob_species_mods` VALUES (253,56,-1,1); -- HP_STANDBACK: -1 + +-- Avatar-Titan +INSERT INTO `mob_species_mods` VALUES (255,56,-1,1); -- HP_STANDBACK: -1 + +-- Bat +INSERT INTO `mob_species_mods` VALUES (173,10,3,1); -- SUBLINK: 3 (Single Bat, Bat Trio, Vampyr) +INSERT INTO `mob_species_mods` VALUES (173,36,35,1); -- ROAM_COOL: 35 +INSERT INTO `mob_species_mods` VALUES (173,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (173,52,30,1); -- ROAM_RATE: 30 + +-- Bat Trio +INSERT INTO `mob_species_mods` VALUES (181,10,3,1); -- SUBLINK: 3 (Single Bat, Bat Trio, Vampyr) +INSERT INTO `mob_species_mods` VALUES (181,36,35,1); -- ROAM_COOL: 35 +INSERT INTO `mob_species_mods` VALUES (181,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (181,52,30,1); -- ROAM_RATE: 30 + +-- Bee +INSERT INTO `mob_species_mods` VALUES (425,36,15,1); -- ROAM_COOL: 15 +INSERT INTO `mob_species_mods` VALUES (425,51,2,1); -- ROAM_TURNS: 2 + +-- Beetle +INSERT INTO `mob_species_mods` VALUES (429,31,15,1); -- ROAM_DISTANCE: 15 +INSERT INTO `mob_species_mods` VALUES (429,36,60,1); -- ROAM_COOL: 60 +INSERT INTO `mob_species_mods` VALUES (429,52,30,1); -- ROAM_RATE: 30 + +-- Behemoth +INSERT INTO `mob_species_mods` VALUES (85,36,50,1); -- ROAM_COOL: 50 + +-- Bhoot +INSERT INTO `mob_species_mods` VALUES (407,242,20,0); -- PARALYZERES: 20 + +-- Bomb +INSERT INTO `mob_species_mods` VALUES (46,36,30,1); -- ROAM_COOL: 30 +INSERT INTO `mob_species_mods` VALUES (46,51,5,1); -- ROAM_TURNS: 5 +INSERT INTO `mob_species_mods` VALUES (46,52,20,1); -- ROAM_RATE: 20 + +-- Buffalo +INSERT INTO `mob_species_mods` VALUES (88,3,50,1); -- MP_BASE: 50 +INSERT INTO `mob_species_mods` VALUES (88,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (88,51,4,1); -- ROAM_TURNS: 4 +INSERT INTO `mob_species_mods` VALUES (88,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (88,62,10,0); -- ATTP: 10 +INSERT INTO `mob_species_mods` VALUES (88,63,20,0); -- DEFP: 20 + +-- Bugard +INSERT INTO `mob_species_mods` VALUES (302,36,45,1); -- ROAM_COOL: 45 +INSERT INTO `mob_species_mods` VALUES (302,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (302,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (302,62,10,0); -- ATTP: 10 +INSERT INTO `mob_species_mods` VALUES (302,63,20,0); -- DEFP: 20 + +-- Bugbear +INSERT INTO `mob_species_mods` VALUES (118,10,5,1); -- SUBLINK: 5 (Bugbear, Goblin, Moblin) +INSERT INTO `mob_species_mods` VALUES (118,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (118,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (118,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (118,63,20,0); -- DEFP: 20 + +-- Cardian: https://www.bg-wiki.com/ffxi/Category:Cardian +INSERT INTO `mob_species_mods` VALUES (49,29,25,0); -- MDEF: 25 +INSERT INTO `mob_species_mods` VALUES (49,36,40,1); -- ROAM_COOL: 40 +INSERT INTO `mob_species_mods` VALUES (49,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (49,52,20,1); -- ROAM_RATE: 20 +INSERT INTO `mob_species_mods` VALUES (49,389,-2500,0); -- UDMGMAGIC: -2500 + +-- Cerberus +INSERT INTO `mob_species_mods` VALUES (90,36,50,1); -- ROAM_COOL: 50 + +-- Chariot +INSERT INTO `mob_species_mods` VALUES (75,10,15,1); -- SUBLINK: 15 (Chariot, Gear, Rampart) + +-- Bomb-Cluster +INSERT INTO `mob_species_mods` VALUES (59,36,40,1); -- ROAM_COOL: 40 +INSERT INTO `mob_species_mods` VALUES (59,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (59,52,20,1); -- ROAM_RATE: 20 + +-- Cockatrice +INSERT INTO `mob_species_mods` VALUES (177,36,30,1); -- ROAM_COOL: 30 +INSERT INTO `mob_species_mods` VALUES (177,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (177,52,30,1); -- ROAM_RATE: 30 + +-- Coeurl +INSERT INTO `mob_species_mods` VALUES (92,31,5,1); -- ROAM_DISTANCE: 5 +INSERT INTO `mob_species_mods` VALUES (92,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (92,52,30,1); -- ROAM_RATE: 30 + +-- Colibri +INSERT INTO `mob_species_mods` VALUES (179,3,50,1); -- MP_BASE: 50 +INSERT INTO `mob_species_mods` VALUES (179,29,10,0); -- MDEF: 10 +INSERT INTO `mob_species_mods` VALUES (179,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (179,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (179,68,20,0); -- EVA: 20 + +-- Corse: https://www.bg-wiki.com/ffxi/Category:Corse +INSERT INTO `mob_species_mods` VALUES (394,29,25,0); -- MDEF: 25 +INSERT INTO `mob_species_mods` VALUES (394,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (394,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (394,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (394,388,-5000,0); -- UDMGBREATH: -5000 +INSERT INTO `mob_species_mods` VALUES (394,389,-2500,0); -- UDMGMAGIC: -2500 + +-- Crab +INSERT INTO `mob_species_mods` VALUES (25,36,15,1); -- ROAM_COOL: 15 + +-- Crawler +INSERT INTO `mob_species_mods` VALUES (437,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (437,52,30,1); -- ROAM_RATE: 30 + +-- Dhalmel +INSERT INTO `mob_species_mods` VALUES (95,36,30,1); -- ROAM_COOL: 30 +INSERT INTO `mob_species_mods` VALUES (95,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (95,52,30,1); -- ROAM_RATE: 30 + +-- Diremite +INSERT INTO `mob_species_mods` VALUES (442,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (442,51,2,1); -- ROAM_TURNS: 2 + +-- Doll +INSERT INTO `mob_species_mods` VALUES (60,31,5,1); -- ROAM_DISTANCE: 5 +INSERT INTO `mob_species_mods` VALUES (60,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (60,52,30,1); -- ROAM_RATE: 30 + +-- Doll + +-- Doomed +INSERT INTO `mob_species_mods` VALUES (398,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (398,52,30,1); -- ROAM_RATE: 30 + +-- Dragon +INSERT INTO `mob_species_mods` VALUES (219,3,10,1); -- MP_BASE: 10 +INSERT INTO `mob_species_mods` VALUES (219,4,18,1); -- SIGHT_RANGE: 18 +INSERT INTO `mob_species_mods` VALUES (219,5,10,1); -- SOUND_RANGE: 10 +INSERT INTO `mob_species_mods` VALUES (219,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (219,54,1000,1); -- GIL_BONUS: 1000 +INSERT INTO `mob_species_mods` VALUES (219,62,20,0); -- ATTP: 20 + +-- Dynamisstatue-Goblin +INSERT INTO `mob_species_mods` VALUES (126,23,2047,1); -- IMMUNITY: 2047 +INSERT INTO `mob_species_mods` VALUES (126,56,-1,1); -- HP_STANDBACK: -1 +INSERT INTO `mob_species_mods` VALUES (126,73,100,0); -- STORETP: 100 + +-- Dynamisstatue-Orc +INSERT INTO `mob_species_mods` VALUES (139,23,2047,1); -- IMMUNITY: 2047 +INSERT INTO `mob_species_mods` VALUES (139,56,-1,1); -- HP_STANDBACK: -1 +INSERT INTO `mob_species_mods` VALUES (139,73,100,0); -- STORETP: 100 + +-- Dynamisstatue-Quadav +INSERT INTO `mob_species_mods` VALUES (150,23,2047,1); -- IMMUNITY: 2047 +INSERT INTO `mob_species_mods` VALUES (150,56,-1,1); -- HP_STANDBACK: -1 +INSERT INTO `mob_species_mods` VALUES (150,73,100,0); -- STORETP: 100 + +-- Dynamisstatue-Yagudo +INSERT INTO `mob_species_mods` VALUES (168,23,2047,1); -- IMMUNITY: 2047 +INSERT INTO `mob_species_mods` VALUES (168,56,-1,1); -- HP_STANDBACK: -1 +INSERT INTO `mob_species_mods` VALUES (168,73,100,0); -- STORETP: 100 + +-- Lizard-Ice +INSERT INTO `mob_species_mods` VALUES (308,36,60,1); -- ROAM_COOL: 60 +INSERT INTO `mob_species_mods` VALUES (308,51,4,1); -- ROAM_TURNS: 4 +INSERT INTO `mob_species_mods` VALUES (308,52,30,1); -- ROAM_RATE: 30 + +-- Eft +INSERT INTO `mob_species_mods` VALUES (303,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (303,51,5,1); -- ROAM_TURNS: 5 +INSERT INTO `mob_species_mods` VALUES (303,52,30,1); -- ROAM_RATE: 30 + +-- Elemental-Air +INSERT INTO `mob_species_mods` VALUES (256,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (256,56,-1,1); -- HP_STANDBACK: -1 + +-- Elemental-Dark +INSERT INTO `mob_species_mods` VALUES (259,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (259,56,-1,1); -- HP_STANDBACK: -1 + +-- Elemental-Earth +INSERT INTO `mob_species_mods` VALUES (260,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (260,56,-1,1); -- HP_STANDBACK: -1 + +-- Elemental-Fire +INSERT INTO `mob_species_mods` VALUES (261,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (261,56,-1,1); -- HP_STANDBACK: -1 + +-- Elemental-Ice +INSERT INTO `mob_species_mods` VALUES (263,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (263,56,-1,1); -- HP_STANDBACK: -1 + +-- Elemental-Light +INSERT INTO `mob_species_mods` VALUES (264,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (264,56,-1,1); -- HP_STANDBACK: -1 + +-- Elemental-Lightning +INSERT INTO `mob_species_mods` VALUES (265,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (265,56,-1,1); -- HP_STANDBACK: -1 + +-- Elemental-Water +INSERT INTO `mob_species_mods` VALUES (267,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (267,56,-1,1); -- HP_STANDBACK: -1 + +-- Evil Weapon: https://www.bg-wiki.com/ffxi/Category:Evil_Weapon +INSERT INTO `mob_species_mods` VALUES (62,3,50,1); -- MP_BASE: 50 +INSERT INTO `mob_species_mods` VALUES (62,36,45,1); -- ROAM_COOL: 45 +INSERT INTO `mob_species_mods` VALUES (62,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (62,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (62,389,-1250,0); -- UDMGMAGIC: -1250 + +-- Non-Beastmen regular frogs +INSERT INTO `mob_species_mods` VALUES (32,62,1,1); -- NO_STANDBACK: 1 + +-- Flan: https://www.bg-wiki.com/ffxi/Category:Flan +INSERT INTO `mob_species_mods` VALUES (5,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (5,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (5,388,2500,0); -- UDMGBREATH: 2500 +INSERT INTO `mob_species_mods` VALUES (5,389,2500,0); -- UDMGMAGIC: 2500 + +-- Fomor +INSERT INTO `mob_species_mods` VALUES (403,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (403,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (403,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (403,54,100,1); -- GIL_BONUS: 100 + +-- Funguar +INSERT INTO `mob_species_mods` VALUES (338,31,15,1); -- ROAM_DISTANCE: 15 +INSERT INTO `mob_species_mods` VALUES (338,36,60,1); -- ROAM_COOL: 60 +INSERT INTO `mob_species_mods` VALUES (338,52,30,1); -- ROAM_RATE: 30 + +-- Gear +INSERT INTO `mob_species_mods` VALUES (79,10,15,1); -- SUBLINK: 15 (Chariot, Gear, Rampart) + +-- Ghost +INSERT INTO `mob_species_mods` VALUES (408,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (408,52,30,1); -- ROAM_RATE: 30 + +-- Ghrah: https://www.bg-wiki.com/ffxi/Category:Ghrah +INSERT INTO `mob_species_mods` VALUES (328,389,-1250,0); -- UDMGMAGIC: -1250 + +-- Greater Bird +INSERT INTO `mob_species_mods` VALUES (188,36,40,1); -- ROAM_COOL: 40 +INSERT INTO `mob_species_mods` VALUES (188,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (188,52,30,1); -- ROAM_RATE: 30 + +-- Gigas +INSERT INTO `mob_species_mods` VALUES (121,31,5,1); -- ROAM_DISTANCE: 5 +INSERT INTO `mob_species_mods` VALUES (121,36,25,1); -- ROAM_COOL: 25 +INSERT INTO `mob_species_mods` VALUES (121,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (121,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (121,54,180,1); -- GIL_BONUS: 180 + +-- Goblin +INSERT INTO `mob_species_mods` VALUES (126,10,5,1); -- SUBLINK: 5 (Bugbear, Goblin, Moblin) + +-- Golem +INSERT INTO `mob_species_mods` VALUES (63,4,4,1); -- SIGHT_RANGE: 4 +INSERT INTO `mob_species_mods` VALUES (63,31,5,1); -- ROAM_DISTANCE: 5 +INSERT INTO `mob_species_mods` VALUES (63,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (63,52,30,1); -- ROAM_RATE: 30 + +-- Goobbue +INSERT INTO `mob_species_mods` VALUES (340,31,5,1); -- ROAM_DISTANCE: 5 +INSERT INTO `mob_species_mods` VALUES (340,36,60,1); -- ROAM_COOL: 60 +INSERT INTO `mob_species_mods` VALUES (340,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (340,62,10,0); -- ATTP: 10 + +-- Hecteyes +INSERT INTO `mob_species_mods` VALUES (7,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (7,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (7,56,-1,1); -- HP_STANDBACK: -1 +INSERT INTO `mob_species_mods` VALUES (7,68,10,0); -- EVA: 10 + +-- Hippogryph +INSERT INTO `mob_species_mods` VALUES (187,3,50,1); -- MP_BASE: 50 +INSERT INTO `mob_species_mods` VALUES (187,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (187,51,2,1); -- ROAM_TURNS: 2 + +-- Hound +INSERT INTO `mob_species_mods` VALUES (409,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (409,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (409,52,30,1); -- ROAM_RATE: 30 + +-- Hound + +-- Humanoid-Hume +INSERT INTO `mob_species_mods` VALUES (295,4,30,1); -- SIGHT_RANGE: 30 + +-- Hybridelemental-Air +INSERT INTO `mob_species_mods` VALUES (257,51,3,1); -- ROAM_TURNS: 3 + +-- Hybridelemental-Dark +INSERT INTO `mob_species_mods` VALUES (258,51,3,1); -- ROAM_TURNS: 3 + +-- Hybridelemental-Earth +INSERT INTO `mob_species_mods` VALUES (262,51,3,1); -- ROAM_TURNS: 3 + +-- Hybridelemental-Fire +INSERT INTO `mob_species_mods` VALUES (266,51,3,1); -- ROAM_TURNS: 3 + +-- Hybridelemental-Ice + +-- Hybridelemental-Light + +-- Hybridelemental-Lightning + +-- Hybridelemental-Water + +-- Hydra +INSERT INTO `mob_species_mods` VALUES (222,31,5,1); -- ROAM_DISTANCE: 5 +INSERT INTO `mob_species_mods` VALUES (222,36,55,1); -- ROAM_COOL: 55 + +-- Hydra + +-- Imp +INSERT INTO `mob_species_mods` VALUES (212,10,13,1); -- SUBLINK: 13 (Imps) +INSERT INTO `mob_species_mods` VALUES (212,29,24,0); -- MDEF: 24 +INSERT INTO `mob_species_mods` VALUES (212,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (212,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (212,56,-1,1); -- HP_STANDBACK: -1 +INSERT INTO `mob_species_mods` VALUES (212,4,10,1); -- SIGHT_RANGE: 10 +INSERT INTO `mob_species_mods` VALUES (212,5,5,1); -- SOUND_RANGE: 5 + +-- Imp + +-- Kindred: https://www.bg-wiki.com/ffxi/Category:Demon +INSERT INTO `mob_species_mods` VALUES (201,10,1,1); -- SUBLINK: 1 (Kindred, Tauri) +INSERT INTO `mob_species_mods` VALUES (201,11,15,1); -- LINK_RADIUS: 15 +INSERT INTO `mob_species_mods` VALUES (201,29,25,0); -- MDEF: 25 +INSERT INTO `mob_species_mods` VALUES (201,31,15,1); -- ROAM_DISTANCE: 15 +INSERT INTO `mob_species_mods` VALUES (201,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (201,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (201,54,120,1); -- GIL_BONUS: 120 +INSERT INTO `mob_species_mods` VALUES (201,389,-2500,0); -- UDMGMAGIC: -2500 + +-- Lamiae: https://www.bg-wiki.com/ffxi/Category:Lamiae +INSERT INTO `mob_species_mods` VALUES (129,10,10,1); -- SUBLINK: 10 (Lamiae) +INSERT INTO `mob_species_mods` VALUES (129,29,13,0); -- MDEF: 13 +INSERT INTO `mob_species_mods` VALUES (129,389,-1250,0); -- UDMGMAGIC: -1250 + +-- Leech +INSERT INTO `mob_species_mods` VALUES (8,31,15,1); -- ROAM_DISTANCE: 15 + +-- Lizard +INSERT INTO `mob_species_mods` VALUES (306,36,60,1); -- ROAM_COOL: 60 +INSERT INTO `mob_species_mods` VALUES (306,51,4,1); -- ROAM_TURNS: 4 +INSERT INTO `mob_species_mods` VALUES (306,52,30,1); -- ROAM_RATE: 30 + +-- Magic Pot: https://www.bg-wiki.com/ffxi/Category:Magic_Pot +INSERT INTO `mob_species_mods` VALUES (69,31,5,1); -- ROAM_DISTANCE: 5 +INSERT INTO `mob_species_mods` VALUES (69,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (69,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (69,389,-5000,0); -- UDMGMAGIC: -5000 + +-- Mamool Ja +INSERT INTO `mob_species_mods` VALUES (132,10,8,1); -- SUBLINK: 8 (Mamool Ja, Sahagin) +INSERT INTO `mob_species_mods` VALUES (132,68,10,0); -- EVA: 10 + +-- Manticore +INSERT INTO `mob_species_mods` VALUES (98,31,30,1); -- ROAM_DISTANCE: 30 +INSERT INTO `mob_species_mods` VALUES (98,36,60,1); -- ROAM_COOL: 60 +INSERT INTO `mob_species_mods` VALUES (98,51,4,1); -- ROAM_TURNS: 4 +INSERT INTO `mob_species_mods` VALUES (98,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (98,62,10,0); -- ATTP: 10 +INSERT INTO `mob_species_mods` VALUES (98,3,50,0); -- HPP: 50 + +-- Marid +INSERT INTO `mob_species_mods` VALUES (99,36,30,1); -- ROAM_COOL: 30 +INSERT INTO `mob_species_mods` VALUES (99,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (99,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (99,63,20,0); -- DEFP: 20 + +-- Merrow +INSERT INTO `mob_species_mods` VALUES (131,10,10,1); -- SUBLINK: 10 (Lamiae) + +-- Moblin +INSERT INTO `mob_species_mods` VALUES (127,10,5,1); -- SUBLINK: 5 (Bugbear, Goblin, Moblin) + +-- Morbol +INSERT INTO `mob_species_mods` VALUES (353,36,30,1); -- ROAM_COOL: 30 +INSERT INTO `mob_species_mods` VALUES (353,52,30,1); -- ROAM_RATE: 30 + +-- Opo-Opo +INSERT INTO `mob_species_mods` VALUES (100,36,35,1); -- ROAM_COOL: 35 +INSERT INTO `mob_species_mods` VALUES (100,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (100,52,20,1); -- ROAM_RATE: 20 + +-- Orc +INSERT INTO `mob_species_mods` VALUES (139,10,2,1); -- SUBLINK: 2 (Orc, Orc Warmachine) +INSERT INTO `mob_species_mods` VALUES (139,3,5,0); -- HPP: 5 + +-- Orc-Warmachine +INSERT INTO `mob_species_mods` VALUES (143,10,2,1); -- SUBLINK: 2 (Orc, Orc Warmachine) +INSERT INTO `mob_species_mods` VALUES (143,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (143,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (143,3,5,0); -- HPP: 5 + +-- Wyvern-Pet +INSERT INTO `mob_species_mods` VALUES (236,3,40,1); -- MP_BASE: 40 + +-- Phuabo +INSERT INTO `mob_species_mods` VALUES (323,3,50,1); -- MP_BASE: 50 + +-- Qiqirn +INSERT INTO `mob_species_mods` VALUES (147,10,12,1); -- SUBLINK: 12 (Qiqirn) + +-- Quadav +INSERT INTO `mob_species_mods` VALUES (150,3,-5,0); -- HPP: -5 + +-- Qutrub +INSERT INTO `mob_species_mods` VALUES (414,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (414,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (414,52,30,1); -- ROAM_RATE: 30 + +-- Rabbit +INSERT INTO `mob_species_mods` VALUES (106,31,15,1); -- ROAM_DISTANCE: 15 +INSERT INTO `mob_species_mods` VALUES (106,36,35,1); -- ROAM_COOL: 35 +INSERT INTO `mob_species_mods` VALUES (106,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (106,52,30,1); -- ROAM_RATE: 30 + +-- Rafflesia +INSERT INTO `mob_species_mods` VALUES (359,3,50,1); -- MP_BASE: 50 + +-- Ram +INSERT INTO `mob_species_mods` VALUES (108,36,60,1); -- ROAM_COOL: 60 +INSERT INTO `mob_species_mods` VALUES (108,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (108,62,10,0); -- ATTP: 10 +INSERT INTO `mob_species_mods` VALUES (108,63,20,0); -- DEFP: 20 + +-- Rampart +INSERT INTO `mob_species_mods` VALUES (84,10,15,1); -- SUBLINK: 15 (Chariot, Gear, Rampart) + +-- Raptor +INSERT INTO `mob_species_mods` VALUES (315,31,30,1); -- ROAM_DISTANCE: 30 +INSERT INTO `mob_species_mods` VALUES (315,36,40,1); -- ROAM_COOL: 40 +INSERT INTO `mob_species_mods` VALUES (315,51,3,1); -- ROAM_TURNS: 3 + +-- Sabotender +INSERT INTO `mob_species_mods` VALUES (334,10,7,1); -- SUBLINK: 7 (Sabotender) +INSERT INTO `mob_species_mods` VALUES (334,36,10,1); -- ROAM_COOL: 10 +INSERT INTO `mob_species_mods` VALUES (334,52,20,1); -- ROAM_RATE: 20 + +-- Sahagin +INSERT INTO `mob_species_mods` VALUES (151,10,8,1); -- SUBLINK: 8 (Mamool Ja, Sahagin) +INSERT INTO `mob_species_mods` VALUES (151,20,128,0); -- WATER_MEVA: 128 + +-- Sapling +INSERT INTO `mob_species_mods` VALUES (360,10,4,1); -- SUBLINK: 4 (Sapling, Treant) +INSERT INTO `mob_species_mods` VALUES (360,31,20,1); -- ROAM_DISTANCE: 20 + +-- Scorpion +INSERT INTO `mob_species_mods` VALUES (460,23,256,1); -- IMMUNITY: 256 +INSERT INTO `mob_species_mods` VALUES (460,36,55,1); -- ROAM_COOL: 55 +INSERT INTO `mob_species_mods` VALUES (460,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (460,62,20,0); -- ATTP: 20 + +-- Sea Monk +INSERT INTO `mob_species_mods` VALUES (42,36,30,1); -- ROAM_COOL: 30 + +-- Sea Monk + +-- Shadow +INSERT INTO `mob_species_mods` VALUES (415,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (415,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (415,52,30,1); -- ROAM_RATE: 30 + +-- Sheep +INSERT INTO `mob_species_mods` VALUES (111,31,15,1); -- ROAM_DISTANCE: 15 +INSERT INTO `mob_species_mods` VALUES (111,36,60,1); -- ROAM_COOL: 60 +INSERT INTO `mob_species_mods` VALUES (111,51,5,1); -- ROAM_TURNS: 5 +INSERT INTO `mob_species_mods` VALUES (111,52,30,1); -- ROAM_RATE: 30 + +-- Skeleton +INSERT INTO `mob_species_mods` VALUES (419,36,65,1); -- ROAM_COOL: 65 +INSERT INTO `mob_species_mods` VALUES (419,51,5,1); -- ROAM_TURNS: 5 +INSERT INTO `mob_species_mods` VALUES (419,52,30,1); -- ROAM_RATE: 30 + +-- Snoll +INSERT INTO `mob_species_mods` VALUES (48,36,40,1); -- ROAM_COOL: 40 +INSERT INTO `mob_species_mods` VALUES (48,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (48,52,20,1); -- ROAM_RATE: 20 + +-- Soulflayer +INSERT INTO `mob_species_mods` VALUES (215,10,11,1); -- SUBLINK: 11 (Soulflayers) +INSERT INTO `mob_species_mods` VALUES (215,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (215,51,3,1); -- ROAM_TURNS: 3 + +-- Spheroid +INSERT INTO `mob_species_mods` VALUES (74,37,1,1); -- ALWAYS_AGGRO: 1 + +-- Structure +INSERT INTO `mob_species_mods` VALUES (370,4,30,1); -- SIGHT_RANGE: 30 + +-- Tauri +INSERT INTO `mob_species_mods` VALUES (217,10,1,1); -- SUBLINK: 1 (Kindred, Tauri) +INSERT INTO `mob_species_mods` VALUES (217,36,40,1); -- ROAM_COOL: 40 +INSERT INTO `mob_species_mods` VALUES (217,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (217,52,30,1); -- ROAM_RATE: 30 + +-- Tiger +INSERT INTO `mob_species_mods` VALUES (114,31,15,1); -- ROAM_DISTANCE: 15 +INSERT INTO `mob_species_mods` VALUES (114,36,45,1); -- ROAM_COOL: 45 +INSERT INTO `mob_species_mods` VALUES (114,51,3,1); -- ROAM_TURNS: 3 +INSERT INTO `mob_species_mods` VALUES (114,62,10,0); -- ATTP: 10 + +-- Tonberry +INSERT INTO `mob_species_mods` VALUES (159,36,25,1); -- ROAM_COOL: 25 +INSERT INTO `mob_species_mods` VALUES (159,51,5,1); -- ROAM_TURNS: 5 +INSERT INTO `mob_species_mods` VALUES (159,52,30,1); -- ROAM_RATE: 30 + +-- Treant +INSERT INTO `mob_species_mods` VALUES (366,10,4,1); -- SUBLINK: 4 (Sapling, Treant) +INSERT INTO `mob_species_mods` VALUES (366,36,65,1); -- ROAM_COOL: 65 +INSERT INTO `mob_species_mods` VALUES (366,52,30,1); -- ROAM_RATE: 30 +INSERT INTO `mob_species_mods` VALUES (366,63,20,0); -- DEFP: 20 + +-- Troll +INSERT INTO `mob_species_mods` VALUES (163,10,9,1); -- SUBLINK: 9 (Trolls) +INSERT INTO `mob_species_mods` VALUES (163,3,50,0); -- HPP: 50 + +-- Uragnite +INSERT INTO `mob_species_mods` VALUES (44,36,40,1); -- ROAM_COOL: 40 +INSERT INTO `mob_species_mods` VALUES (44,52,30,1); -- ROAM_RATE: 30 + +-- Wamoura +INSERT INTO `mob_species_mods` VALUES (470,3,50,1); -- MP_BASE: 50 +INSERT INTO `mob_species_mods` VALUES (470,10,6,1); -- SUBLINK: 6 (Wamoura, Wamouracampa) + +-- Wamouracampa +INSERT INTO `mob_species_mods` VALUES (471,10,6,1); -- SUBLINK: 6 (Wamouracampa, Brassborer) + +-- Wanderer +INSERT INTO `mob_species_mods` VALUES (290,3,50,1); -- MP_BASE: 50 + +-- Wivre +INSERT INTO `mob_species_mods` VALUES (319,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (319,52,30,1); -- ROAM_RATE: 30 + +-- Worm +INSERT INTO `mob_species_mods` VALUES (23,34,25,1); -- MAGIC_COOL: 25 +INSERT INTO `mob_species_mods` VALUES (23,36,90,1); -- ROAM_COOL: 90 +INSERT INTO `mob_species_mods` VALUES (23,52,30,1); -- ROAM_RATE: 30 + +-- Wyrm-Ouryu +INSERT INTO `mob_species_mods` VALUES (225,36,55,1); -- ROAM_COOL: 55 + +-- Wyvern-Simorg +INSERT INTO `mob_species_mods` VALUES (235,36,55,1); -- ROAM_COOL: 55 + +-- Yovra +INSERT INTO `mob_species_mods` VALUES (327,3,50,1); -- MP_BASE: 50 + +-- Zdei +INSERT INTO `mob_species_mods` VALUES (331,4,10,1); -- SIGHT_RANGE: 10 +INSERT INTO `mob_species_mods` VALUES (331,102,60,1); -- MOBMOD_SIGHT_ANGLE + +-- Vampyr +INSERT INTO `mob_species_mods` VALUES (421,10,3,1); -- SUBLINK: 3 (Single Bat, Bat Trio, Vampyr) +INSERT INTO `mob_species_mods` VALUES (421,36,50,1); -- ROAM_COOL: 50 +INSERT INTO `mob_species_mods` VALUES (421,51,2,1); -- ROAM_TURNS: 2 +INSERT INTO `mob_species_mods` VALUES (421,52,30,1); -- ROAM_RATE: 30 + +-- Sabotender-Florido +INSERT INTO `mob_species_mods` VALUES (335,10,7,1); -- SUBLINK: 7 (Sabotender) + +-- Lamiae +INSERT INTO `mob_species_mods` VALUES (130,10,10,1); -- SUBLINK: 10 (Lamiae) + +-- Apkallu +INSERT INTO `mob_species_mods` VALUES (171,4,5,1); -- SIGHT_RANGE: 5 + +-- Flan +INSERT INTO `mob_species_mods` VALUES (5,56,-1,1); -- HP_STANDBACK: -1 +INSERT INTO `mob_species_mods` VALUES (5,69,1,1); -- NO_LINK: 1 + +/*!40000 ALTER TABLE `mob_species_mods` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; diff --git a/sql/mob_family_system.sql b/sql/mob_species_system.sql similarity index 99% rename from sql/mob_family_system.sql rename to sql/mob_species_system.sql index 80423361652..6cee834c888 100644 --- a/sql/mob_family_system.sql +++ b/sql/mob_species_system.sql @@ -17,7 +17,7 @@ DROP TABLE IF EXISTS `mob_family_system`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `mob_family_system` ( - `familyID` smallint(4) unsigned NOT NULL, + `speciesID` smallint(4) unsigned NOT NULL, `family` tinytext, `superFamilyID` smallint(4) unsigned NOT NULL DEFAULT 0, `superFamily` tinytext, @@ -40,7 +40,7 @@ CREATE TABLE `mob_family_system` ( `Element` float NOT NULL DEFAULT 0, `detects` smallint(5) NOT NULL DEFAULT 0, `charmable` tinyint(2) NOT NULL DEFAULT 0, - PRIMARY KEY (`familyID`) + PRIMARY KEY (`speciesID`) ) ENGINE=Aria TRANSACTIONAL=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci AVG_ROW_LENGTH=128; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/src/map/entities/mobentity.cpp b/src/map/entities/mobentity.cpp index d1a016cbc67..13dc0085b88 100644 --- a/src/map/entities/mobentity.cpp +++ b/src/map/entities/mobentity.cpp @@ -140,7 +140,7 @@ CMobEntity::CMobEntity() , m_GilfinderLevel(0) , m_ItemStolen(false) , m_ItemDespoiled(false) -, m_Family(0) +, m_Species(0) , m_SuperFamily(0) , m_MobSkillList(0) , m_Pool(0) diff --git a/src/map/entities/mobentity.h b/src/map/entities/mobentity.h index e332327f1e3..c28ad59baea 100644 --- a/src/map/entities/mobentity.h +++ b/src/map/entities/mobentity.h @@ -252,7 +252,7 @@ class CMobEntity : public CBattleEntity int16 m_GilfinderLevel; // Highest Level of Gilfinderthat apply to drops bool m_ItemStolen; // if true, mob has already been robbed. reset on respawn. also used for thf maat fight bool m_ItemDespoiled; // if true, mob has already been despoiled. reset on respawn. - uint16 m_Family; + uint16 m_Species; uint16 m_SuperFamily; uint16 m_MobSkillList; // Mob skill list defined from mob_pools uint32 m_Pool; // pool the mob came from diff --git a/src/map/instance_loader.cpp b/src/map/instance_loader.cpp index cf67f6218f7..c643e90f1d8 100644 --- a/src/map/instance_loader.cpp +++ b/src/map/instance_loader.cpp @@ -75,7 +75,7 @@ CInstance* CInstanceLoader::LoadInstance() const "magical_sdt, fire_sdt, ice_sdt, wind_sdt, earth_sdt, lightning_sdt, water_sdt, light_sdt, dark_sdt, " "fire_res_rank, ice_res_rank, wind_res_rank, earth_res_rank, lightning_res_rank, water_res_rank, light_res_rank, dark_res_rank, " "paralyze_res_rank, bind_res_rank, silence_res_rank, slow_res_rank, poison_res_rank, light_sleep_res_rank, dark_sleep_res_rank, blind_res_rank, " - "Element, mob_pools.familyid, name_prefix, entityFlags, animationsub, " + "Element, mob_pools.speciesid, name_prefix, entityFlags, animationsub, " "(mob_family_system.HP / 100) AS hp_scale, (mob_family_system.MP / 100) AS mp_scale, hasSpellScript, spellList, mob_groups.poolid, " "allegiance, namevis, aggro, mob_pools.skill_list_id, mob_pools.true_detection, detects, " "mob_family_system.charmable, mob_pools.modelSize, mob_pools.modelHitboxSize " @@ -83,7 +83,7 @@ CInstance* CInstanceLoader::LoadInstance() const "INNER JOIN mob_groups ON mob_groups.groupid = mob_spawn_points.groupid AND mob_groups.zoneid=((mob_spawn_points.mobid>>12)&0xFFF) " "INNER JOIN mob_pools ON mob_groups.poolid = mob_pools.poolid " "INNER JOIN mob_resistances ON mob_resistances.resist_id = mob_pools.resist_id " - "INNER JOIN mob_family_system ON mob_pools.familyid = mob_family_system.familyID " + "INNER JOIN mob_family_system ON mob_pools.speciesid = mob_family_system.speciesID " "WHERE instanceid = ? AND NOT (pos_x = 0 AND pos_y = 0 AND pos_z = 0)", m_PInstance->GetID()); @@ -183,7 +183,7 @@ CInstance* CInstanceLoader::LoadInstance() const PMob->setModifier(Mod::BLIND_RES_RANK, rset->get("blind_res_rank")); PMob->m_Element = rset->get("Element"); - PMob->m_Family = rset->get("familyid"); + PMob->m_Species = rset->get("speciesid"); PMob->m_name_prefix = rset->get("name_prefix"); PMob->m_flags = rset->get("entityFlags"); diff --git a/src/map/latent_effect_container.cpp b/src/map/latent_effect_container.cpp index 2f51328f279..facf25b9a27 100644 --- a/src/map/latent_effect_container.cpp +++ b/src/map/latent_effect_container.cpp @@ -1291,7 +1291,7 @@ bool CLatentEffectContainer::ProcessLatentEffect(CLatentEffect& latentEffect, bo CMobEntity* PMob = dynamic_cast(PTarget); if (PMob) { - expression = PMob->m_Family == latentEffect.GetConditionsValue(); + expression = PMob->m_Species == latentEffect.GetConditionsValue(); } } break; diff --git a/src/map/lua/lua_baseentity.cpp b/src/map/lua/lua_baseentity.cpp index 3dee8f44ca1..c3b5a576c03 100644 --- a/src/map/lua/lua_baseentity.cpp +++ b/src/map/lua/lua_baseentity.cpp @@ -17139,23 +17139,23 @@ uint16 CLuaBaseEntity::getSuperFamily() } /************************************************************************ - * Function: getFamily() - * Purpose : Returns the integer value of the associated Mob Family - * Example : if mob:getFamily() == 123 then - * Notes : To Do: Enumerate Mob Families in global script + * Function: getSpecies() + * Purpose : Returns the integer value of the associated Mob Species + * Example : if mob:getSpecies() == 123 then + * Notes : To Do: Enumerate Mob Species in global script ************************************************************************/ -uint16 CLuaBaseEntity::getFamily() +uint16 CLuaBaseEntity::getSpecies() { auto* entity = dynamic_cast(m_PBaseEntity); if (!entity) { - ShowWarning("CLuaBaseEntity::getFamily() - m_pBaseEntity is not a Mob."); + ShowWarning("CLuaBaseEntity::getSpecies() - m_pBaseEntity is not a Mob."); return 0; } - return entity->m_Family; + return entity->m_Species; } /************************************************************************ @@ -18653,17 +18653,17 @@ bool CLuaBaseEntity::hasTPMoves() return false; } - uint16 familyID = 0; + uint16 speciesID = 0; if (m_PBaseEntity->objtype & TYPE_PET) { - familyID = static_cast(m_PBaseEntity)->m_Family; + speciesID = static_cast(m_PBaseEntity)->m_Species; } else if (m_PBaseEntity->objtype & TYPE_MOB) { - familyID = static_cast(m_PBaseEntity)->m_Family; + speciesID = static_cast(m_PBaseEntity)->m_Species; } - const std::vector& MobSkills = battleutils::GetMobSkillList(familyID); + const std::vector& MobSkills = battleutils::GetMobSkillList(speciesID); return !MobSkills.empty(); } @@ -20491,7 +20491,7 @@ void CLuaBaseEntity::Register() SOL_REGISTER("setMobLevel", CLuaBaseEntity::setMobLevel); SOL_REGISTER("getEcosystem", CLuaBaseEntity::getEcosystem); SOL_REGISTER("getSuperFamily", CLuaBaseEntity::getSuperFamily); - SOL_REGISTER("getFamily", CLuaBaseEntity::getFamily); + SOL_REGISTER("getSpecies", CLuaBaseEntity::getSpecies); SOL_REGISTER("isMobType", CLuaBaseEntity::isMobType); SOL_REGISTER("isUndead", CLuaBaseEntity::isUndead); SOL_REGISTER("isNM", CLuaBaseEntity::isNM); diff --git a/src/map/lua/lua_baseentity.h b/src/map/lua/lua_baseentity.h index 25eab3c3c64..daf2923c154 100644 --- a/src/map/lua/lua_baseentity.h +++ b/src/map/lua/lua_baseentity.h @@ -846,7 +846,7 @@ class CLuaBaseEntity void setMobLevel(uint8 level, sol::optional recover); uint8 getEcosystem(); uint16 getSuperFamily(); - uint16 getFamily(); + uint16 getSpecies(); auto isMobType(uint8 mobType) const -> bool; // True if mob is of type passed to function bool isUndead(); bool isNM(); diff --git a/src/map/utils/mobutils.cpp b/src/map/utils/mobutils.cpp index 23208549638..e13735bc555 100644 --- a/src/map/utils/mobutils.cpp +++ b/src/map/utils/mobutils.cpp @@ -46,7 +46,7 @@ namespace mobutils { -ModsMap_t mobFamilyModsList; +ModsMap_t mobSpeciesModsList; ModsMap_t mobPoolModsList; ModsMap_t mobSpawnModsList; @@ -1058,7 +1058,7 @@ void CalculateMobStats(CMobEntity* PMob, bool recover) if (PMob->getMobMod(MOBMOD_DETECTION) == 0) { - ShowError("mobutils::CalculateMobStats Mob (%s, %d, %d) has no detection methods!", PMob->getName(), PMob->id, PMob->m_Family); + ShowError("mobutils::CalculateMobStats Mob (%s, %d, %d) has no detection methods!", PMob->getName(), PMob->id, PMob->m_Species); } } @@ -1277,9 +1277,9 @@ void SetupRoaming(CMobEntity* PMob) void SetupPetSkills(CMobEntity* PMob) { int16 skillListId = 0; - // same mob can spawn as different families + // same mob can spawn as different species // can't set this from the database - switch (PMob->m_Family) + switch (PMob->m_Species) { case 248: // ifrit skillListId = 715; @@ -1476,33 +1476,33 @@ void InitializeMob(CMobEntity* PMob) } /* -Loads up mob mods from mob_pool_mods and mob_family_mods table. This will allow you to change +Loads up mob mods from mob_pool_mods and mob_species_mods table. This will allow you to change a mobs regen rate, magic defense, triple attack rate from a table instead of hardcoding it. Usage: - Evil weapons have a magic defense boost. So pop that into mob_family_mods table. + Evil weapons have a magic defense boost. So pop that into mob_species_mods table. Goblin Diggers have a vermin killer trait, so find its poolid and put it in mod_pool_mods table. */ void LoadSqlModifiers() { // load family mods - auto rset = db::preparedStmt("SELECT familyid, modid, value, is_mob_mod " - "FROM mob_family_mods"); + auto rset = db::preparedStmt("SELECT speciesid, modid, value, is_mob_mod " + "FROM mob_species_mods"); FOR_DB_MULTIPLE_RESULTS(rset) { - ModsList_t* familyMods = GetMobFamilyMods(rset->get("familyid"), true); + ModsList_t* speciesMods = GetMobSpeciesMods(rset->get("speciesid"), true); auto* mod = new CModifier(rset->get("modid")); mod->setModAmount(rset->get("value")); if (rset->get("is_mob_mod")) { - familyMods->mobMods.emplace_back(mod); + speciesMods->mobMods.emplace_back(mod); } else { - familyMods->mods.emplace_back(mod); + speciesMods->mods.emplace_back(mod); } } @@ -1551,24 +1551,24 @@ void Cleanup() } mobSpawnModsList.clear(); - for (auto mobFamilyMods : mobFamilyModsList) + for (auto mobSpeciesMods : mobSpeciesModsList) { - if (mobFamilyMods.second) + if (mobSpeciesMods.second) { - for (auto mobMods : mobFamilyMods.second->mobMods) + for (auto mobMods : mobSpeciesMods.second->mobMods) { destroy(mobMods); } - for (auto mods : mobFamilyMods.second->mods) + for (auto mods : mobSpeciesMods.second->mods) { destroy(mods); } - destroy(mobFamilyMods.second); + destroy(mobSpeciesMods.second); } } - mobFamilyModsList.clear(); + mobSpeciesModsList.clear(); for (auto mobPoolMods : mobPoolModsList) { @@ -1589,20 +1589,20 @@ void Cleanup() mobPoolModsList.clear(); } -ModsList_t* GetMobFamilyMods(uint16 familyId, bool create) +ModsList_t* GetMobSpeciesMods(uint16 speciesId, bool create) { - if (mobFamilyModsList[familyId]) + if (mobSpeciesModsList[speciesId]) { - return mobFamilyModsList[familyId]; + return mobSpeciesModsList[speciesId]; } if (create) { // create new one ModsList_t* mods = new ModsList_t; - mods->id = familyId; + mods->id = speciesId; - mobFamilyModsList[familyId] = mods; + mobSpeciesModsList[speciesId] = mods; return mods; } @@ -1654,18 +1654,18 @@ ModsList_t* GetMobSpawnMods(uint32 mobId, bool create) void AddSqlModifiers(CMobEntity* PMob) { - // find my families mods - ModsList_t* PFamilyMods = GetMobFamilyMods(PMob->m_Family); + // find my species mods + ModsList_t* PSpeciesMods = GetMobSpeciesMods(PMob->m_Species); - if (PFamilyMods != nullptr) + if (PSpeciesMods != nullptr) { // add them - for (auto& mod : PFamilyMods->mods) + for (auto& mod : PSpeciesMods->mods) { PMob->addModifier(mod->getModID(), mod->getModAmount()); } // TODO: don't store mobmods in a CModifier - for (auto& mobMod : PFamilyMods->mobMods) + for (auto& mobMod : PSpeciesMods->mobMods) { PMob->setMobMod(static_cast(mobMod->getModID()), mobMod->getModAmount()); } @@ -1724,7 +1724,7 @@ auto InstantiateAlly(uint32 groupid, uint16 zoneID, CInstance* instance) -> CMob "fire_res_rank, ice_res_rank, wind_res_rank, earth_res_rank, lightning_res_rank, water_res_rank, light_res_rank, dark_res_rank, " "paralyze_res_rank, bind_res_rank, silence_res_rank, slow_res_rank, poison_res_rank, light_sleep_res_rank, dark_sleep_res_rank, blind_res_rank, " "Element, " - "mob_pools.familyid, name_prefix, entityFlags, animationsub, " + "mob_pools.speciesid, name_prefix, entityFlags, animationsub, " "(mob_family_system.HP / 100) AS hp_scale, (mob_family_system.MP / 100) AS mp_scale, hasSpellScript, spellList, " "mob_groups.poolid, allegiance, namevis, aggro, " "mob_pools.skill_list_id, mob_pools.true_detection, mob_family_system.detects, " @@ -1732,7 +1732,7 @@ auto InstantiateAlly(uint32 groupid, uint16 zoneID, CInstance* instance) -> CMob "FROM mob_groups INNER JOIN mob_spawn_points ON mob_groups.groupid = mob_spawn_points.groupid " "INNER JOIN mob_pools ON mob_groups.poolid = mob_pools.poolid " "INNER JOIN mob_resistances ON mob_pools.resist_id = mob_resistances.resist_id " - "INNER JOIN mob_family_system ON mob_pools.familyid = mob_family_system.familyID " + "INNER JOIN mob_family_system ON mob_pools.speciesid = mob_family_system.speciesID " "WHERE mob_groups.groupid = ? AND mob_groups.zoneid = ?", groupid, zoneID); @@ -1824,7 +1824,7 @@ auto InstantiateAlly(uint32 groupid, uint16 zoneID, CInstance* instance) -> CMob PMob->setModifier(Mod::BLIND_RES_RANK, rset->get("blind_res_rank")); PMob->m_Element = rset->get("Element"); - PMob->m_Family = rset->get("familyid"); + PMob->m_Species = rset->get("speciesid"); PMob->m_name_prefix = rset->get("name_prefix"); PMob->m_flags = rset->get("entityFlags"); @@ -1901,14 +1901,14 @@ auto InstantiateDynamicMob(uint32 groupid, uint16 groupZoneId, uint16 targetZone "water_sdt, light_sdt, dark_sdt, fire_res_rank, " "ice_res_rank, wind_res_rank, earth_res_rank, lightning_res_rank, " "water_res_rank, light_res_rank, dark_res_rank, Element, " - "mob_pools.familyid, name_prefix, entityFlags, animationsub, " + "mob_pools.speciesid, name_prefix, entityFlags, animationsub, " "(mob_family_system.HP / 100) AS hp_scale, (mob_family_system.MP / 100) AS mp_scale, hasSpellScript, spellList, " "mob_groups.poolid, allegiance, namevis, aggro, " "mob_pools.modelSize, mob_pools.modelHitboxSize, " "mob_pools.skill_list_id, mob_pools.true_detection, mob_family_system.detects " "FROM mob_groups INNER JOIN mob_pools ON mob_groups.poolid = mob_pools.poolid " "INNER JOIN mob_resistances ON mob_pools.resist_id = mob_resistances.resist_id " - "INNER JOIN mob_family_system ON mob_pools.familyid = mob_family_system.familyID " + "INNER JOIN mob_family_system ON mob_pools.speciesid = mob_family_system.speciesID " "WHERE mob_groups.groupid = ? AND mob_groups.zoneid = ?", groupid, groupZoneId); @@ -1985,7 +1985,7 @@ auto InstantiateDynamicMob(uint32 groupid, uint16 groupZoneId, uint16 targetZone PMob->setModifier(Mod::DARK_RES_RANK, rset->get("dark_res_rank")); PMob->m_Element = rset->get("Element"); - PMob->m_Family = rset->get("familyid"); + PMob->m_Species = rset->get("speciesid"); PMob->m_name_prefix = rset->get("name_prefix"); PMob->m_flags = rset->get("entityFlags"); diff --git a/src/map/utils/mobutils.h b/src/map/utils/mobutils.h index f84847531e1..eaff69d6a23 100644 --- a/src/map/utils/mobutils.h +++ b/src/map/utils/mobutils.h @@ -74,8 +74,8 @@ void InitializeMob(CMobEntity* PMob); void LoadSqlModifiers(); void Cleanup(); -// get modifiers for pool / family / spawn -ModsList_t* GetMobFamilyMods(uint16 familyId, bool create = false); +// get modifiers for species / pool / spawn +ModsList_t* GetMobSpeciesMods(uint16 speciesId, bool create = false); ModsList_t* GetMobPoolMods(uint32 poolId, bool create = false); ModsList_t* GetMobSpawnMods(uint32 mobId, bool create = false); diff --git a/src/map/utils/petutils.cpp b/src/map/utils/petutils.cpp index 44a7454003b..f0dcd5fce1c 100644 --- a/src/map/utils/petutils.cpp +++ b/src/map/utils/petutils.cpp @@ -73,7 +73,7 @@ void LoadPetList() "maxLevel, " "time, " "ecosystemID, " - "mob_pools.familyid, " + "mob_pools.speciesid, " "mob_pools.mJob, " "mob_pools.sJob, " "pet_list.element, " @@ -99,7 +99,7 @@ void LoadPetList() "cmbDelay, name_prefix, mob_pools.skill_list_id, damageType, " "mob_pools.modelSize, mob_pools.modelHitboxSize " "FROM pet_list, mob_pools, mob_resistances, mob_family_system " - "WHERE pet_list.poolid = mob_pools.poolid AND mob_resistances.resist_id = mob_pools.resist_id AND mob_pools.familyid = mob_family_system.familyID"; + "WHERE pet_list.poolid = mob_pools.poolid AND mob_resistances.resist_id = mob_pools.resist_id AND mob_pools.speciesid = mob_family_system.speciesID"; const auto rset = db::preparedStmt(query); FOR_DB_MULTIPLE_RESULTS(rset) @@ -116,7 +116,7 @@ void LoadPetList() Pet->modelSize = rset->getOrDefault("modelSize", 0); Pet->modelHitboxSize = std::max(0.0f, rset->getOrDefault("modelHitboxSize", 0) / 10.f); Pet->EcoSystem = rset->get("ecosystemID"); - Pet->m_Family = rset->get("familyid"); + Pet->m_Species = rset->get("speciesid"); Pet->mJob = rset->get("mJob"); Pet->sJob = rset->get("sJob"); Pet->m_Element = rset->get("element"); @@ -1258,7 +1258,7 @@ void SpawnMobPet(CBattleEntity* PMaster, uint32 PetID) PPet->name = petData->name; PPet->SetMJob(petData->mJob); PPet->m_EcoSystem = petData->EcoSystem; - PPet->m_Family = petData->m_Family; + PPet->m_Species = petData->m_Species; PPet->m_Element = petData->m_Element; PPet->HPscale = petData->HPscale; PPet->MPscale = petData->MPscale; @@ -1835,7 +1835,7 @@ void LoadPet(CBattleEntity* PMaster, uint32 PetID, bool spawningFromZone) } PPet->m_name_prefix = PPetData->name_prefix; - PPet->m_Family = PPetData->m_Family; + PPet->m_Species = PPetData->m_Species; PPet->m_MobSkillList = PPetData->m_MobSkillList; PPet->SetMJob(PPetData->mJob); PPet->m_Element = PPetData->m_Element; diff --git a/src/map/utils/petutils.h b/src/map/utils/petutils.h index be45e4bde1b..e1eda89e506 100644 --- a/src/map/utils/petutils.h +++ b/src/map/utils/petutils.h @@ -172,7 +172,7 @@ struct Pet_t uint8 name_prefix; uint8 modelSize{ 0 }; float modelHitboxSize{ 0.0f }; - uint16 m_Family; + uint16 m_Species; timer::duration time; // Duration of pet's "life span" before despawning uint8 mJob; @@ -244,7 +244,7 @@ struct Pet_t , minLevel(-1) , maxLevel(99) , name_prefix(0) - , m_Family(0) + , m_Species(0) , time(0s) , mJob(0) , sJob(0) diff --git a/src/map/utils/trustutils.cpp b/src/map/utils/trustutils.cpp index 59e92e4b059..2d6f5d0f41e 100644 --- a/src/map/utils/trustutils.cpp +++ b/src/map/utils/trustutils.cpp @@ -66,7 +66,7 @@ struct TrustData uint8 name_prefix{}; uint8 modelSize{ 0 }; float modelHitboxSize{ 0.0f }; - uint16 m_Family{}; + uint16 m_Species{}; uint8 mJob{}; uint8 sJob{}; @@ -194,7 +194,7 @@ void BuildTrustData(uint32 TrustID) "mob_pools.name, " "mob_pools.packet_name, " "mob_pools.modelid, " - "mob_pools.familyid, " + "mob_pools.speciesid, " "mob_pools.mJob, " "mob_pools.sJob, " "mob_pools.spellList, " @@ -240,7 +240,7 @@ void BuildTrustData(uint32 TrustID) "WHERE spell_list.spellid = ? " "AND (spell_list.spellid + 5000) = mob_pools.poolid " "AND mob_pools.resist_id = mob_resistances.resist_id " - "AND mob_pools.familyid = mob_family_system.familyID " + "AND mob_pools.speciesid = mob_family_system.speciesID " "ORDER BY spell_list.spellid", TrustID); @@ -258,7 +258,7 @@ void BuildTrustData(uint32 TrustID) db::extractFromBlob(rset, "modelid", data->look); - data->m_Family = rset->get("familyid"); + data->m_Species = rset->get("speciesid"); data->mJob = rset->get("mJob"); data->sJob = rset->get("sJob"); data->spellList = rset->get("spellList"); @@ -356,7 +356,7 @@ auto LoadTrust(CCharEntity* PMaster, uint32 TrustID) -> CTrustEntity* PTrust->m_Pool = trustData->pool; PTrust->packetName = trustData->packet_name; PTrust->m_name_prefix = trustData->name_prefix; - PTrust->m_Family = trustData->m_Family; + PTrust->m_Species = trustData->m_Species; PTrust->m_MobSkillList = trustData->m_MobSkillList; PTrust->HPscale = trustData->HPscale; PTrust->MPscale = trustData->MPscale; diff --git a/src/map/utils/zoneutils.cpp b/src/map/utils/zoneutils.cpp index 81bc6e90ead..6ee7bc78ee4 100644 --- a/src/map/utils/zoneutils.cpp +++ b/src/map/utils/zoneutils.cpp @@ -420,7 +420,7 @@ auto LoadMOBList(Scheduler& scheduler, const std::vector& zoneIds) -> Ta "magical_sdt, fire_sdt, ice_sdt, wind_sdt, earth_sdt, lightning_sdt, water_sdt, light_sdt, dark_sdt, " "fire_res_rank, ice_res_rank, wind_res_rank, earth_res_rank, lightning_res_rank, water_res_rank, light_res_rank, dark_res_rank, " "paralyze_res_rank, bind_res_rank, silence_res_rank, slow_res_rank, poison_res_rank, light_sleep_res_rank, dark_sleep_res_rank, blind_res_rank, " - "Element, mob_pools.familyid, mob_family_system.superFamilyID, name_prefix, entityFlags, animationsub, " + "Element, mob_pools.speciesid, mob_family_system.superFamilyID, name_prefix, entityFlags, animationsub, " "(mob_family_system.HP / 100), (mob_family_system.MP / 100), spellList, mob_groups.poolid, " "allegiance, namevis, aggro, roamflag, mob_pools.skill_list_id, mob_pools.true_detection, mob_family_system.detects, " "mob_family_system.charmable, mob_groups.content_tag, " @@ -430,7 +430,7 @@ auto LoadMOBList(Scheduler& scheduler, const std::vector& zoneIds) -> Ta "INNER JOIN mob_resistances ON mob_resistances.resist_id = mob_pools.resist_id " "INNER JOIN mob_spawn_points ON mob_groups.groupid = mob_spawn_points.groupid " "LEFT JOIN mob_spawn_slots ON (mob_spawn_slots.spawnslotid = mob_spawn_points.spawnslotid AND mob_spawn_slots.zoneid = mob_groups.zoneid) " - "INNER JOIN mob_family_system ON mob_pools.familyid = mob_family_system.familyID " + "INNER JOIN mob_family_system ON mob_pools.speciesid = mob_family_system.speciesID " "INNER JOIN zone_settings ON mob_groups.zoneid = zone_settings.zoneid " "WHERE NOT (pos_x = 0 AND pos_y = 0 AND pos_z = 0) " "AND mob_groups.zoneid = ((mobid >> 12) & 0xFFF) " @@ -554,7 +554,7 @@ auto LoadMOBList(Scheduler& scheduler, const std::vector& zoneIds) -> Ta PMob->setModifier(Mod::BLIND_RES_RANK, rset->get("blind_res_rank")); PMob->m_Element = rset->get("Element"); - PMob->m_Family = rset->get("familyid"); + PMob->m_Species = rset->get("speciesid"); PMob->m_SuperFamily = rset->get("superFamilyID"); PMob->m_name_prefix = rset->get("name_prefix"); PMob->m_flags = rset->get("entityFlags");