From 724f7aae73213d35f7b71d0b640e55aab6946778 Mon Sep 17 00:00:00 2001 From: CriticalXI Date: Wed, 22 Jan 2025 15:28:38 -0700 Subject: [PATCH] [lua, sql] HNM Kings Rework --- scripts/actions/mobskills/absolute_terror.lua | 2 +- scripts/actions/mobskills/aqua_breath.lua | 3 +- scripts/actions/mobskills/dragon_breath.lua | 4 +- scripts/actions/mobskills/earth_breath.lua | 3 +- scripts/actions/mobskills/harden_shell.lua | 8 +- .../actions/mobskills/head_butt_turtle.lua | 5 +- scripts/actions/mobskills/howl.lua | 2 +- scripts/actions/mobskills/hurricane_wing.lua | 11 +- scripts/actions/mobskills/shock_wave.lua | 15 +- scripts/actions/mobskills/spike_flail.lua | 4 +- scripts/actions/mobskills/thunderbolt.lua | 7 +- scripts/actions/mobskills/tortoise_stomp.lua | 5 +- scripts/actions/mobskills/wild_horn.lua | 2 +- scripts/actions/spells/black/meteor.lua | 6 + scripts/effects/super_buff.lua | 14 +- .../Behemoths_Dominion/mobs/Behemoth.lua | 3 + .../Behemoths_Dominion/mobs/King_Behemoth.lua | 22 ++- scripts/zones/Dragons_Aery/mobs/Darter.lua | 15 ++ scripts/zones/Dragons_Aery/mobs/Fafnir.lua | 3 +- scripts/zones/Dragons_Aery/mobs/Nidhogg.lua | 5 +- .../Valley_of_Sorrows/mobs/Adamantoise.lua | 12 +- .../Valley_of_Sorrows/mobs/Aspidochelone.lua | 82 ++++++++- sql/mob_droplist.sql | 158 +++++++++--------- sql/mob_groups.sql | 8 +- sql/mob_pools.sql | 12 +- 25 files changed, 280 insertions(+), 131 deletions(-) create mode 100644 scripts/zones/Dragons_Aery/mobs/Darter.lua diff --git a/scripts/actions/mobskills/absolute_terror.lua b/scripts/actions/mobskills/absolute_terror.lua index 6734376a238..319d74e5278 100644 --- a/scripts/actions/mobskills/absolute_terror.lua +++ b/scripts/actions/mobskills/absolute_terror.lua @@ -22,7 +22,7 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local power = 30 - local duration = 30 -- Reference: http://wiki.ffxiclopedia.org/wiki/Absolute_Terror + local duration = math.random(15, 45) if skill:isAoE() then duration = 10 diff --git a/scripts/actions/mobskills/aqua_breath.lua b/scripts/actions/mobskills/aqua_breath.lua index ac8b14d13e5..b0cbe3c5705 100644 --- a/scripts/actions/mobskills/aqua_breath.lua +++ b/scripts/actions/mobskills/aqua_breath.lua @@ -14,7 +14,8 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - local dmgmod = xi.mobskills.mobBreathMove(mob, target, skill, 0.25, 1.5, xi.element.WATER, 400) + -- TODO: Needs a flat bonus 100 damage added to breath + local dmgmod = xi.mobskills.mobBreathMove(mob, target, skill, 0.10, 1.5, xi.element.WATER, 500) local dmg = xi.mobskills.mobFinalAdjustments(dmgmod, mob, skill, target, xi.attackType.BREATH, xi.damageType.WATER, xi.mobskills.shadowBehavior.IGNORE_SHADOWS) target:takeDamage(dmg, mob, xi.attackType.BREATH, xi.damageType.WATER) diff --git a/scripts/actions/mobskills/dragon_breath.lua b/scripts/actions/mobskills/dragon_breath.lua index 5b0394de602..367732ab85b 100644 --- a/scripts/actions/mobskills/dragon_breath.lua +++ b/scripts/actions/mobskills/dragon_breath.lua @@ -22,8 +22,8 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - local dmgmod = xi.mobskills.mobBreathMove(mob, target, skill, 0.2, 1.25, xi.element.FIRE, 1400) - dmgmod = utils.conalDamageAdjustment(mob, target, skill, dmgmod, 0.9) + local dmgmod = xi.mobskills.mobBreathMove(mob, target, skill, 0.15, 1.25, xi.element.FIRE, 1596) + dmgmod = utils.conalDamageAdjustment(mob, target, skill, dmgmod, 0.2) local dmg = xi.mobskills.mobFinalAdjustments(dmgmod, mob, skill, target, xi.attackType.BREATH, xi.damageType.FIRE, xi.mobskills.shadowBehavior.IGNORE_SHADOWS) diff --git a/scripts/actions/mobskills/earth_breath.lua b/scripts/actions/mobskills/earth_breath.lua index 7a21f41653b..0523e7b5d96 100644 --- a/scripts/actions/mobskills/earth_breath.lua +++ b/scripts/actions/mobskills/earth_breath.lua @@ -13,7 +13,8 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - local dmgmod = xi.mobskills.mobBreathMove(mob, target, skill, 0.167, 1.875, xi.element.EARTH, 500) + -- TODO: Needs a flat bonus 100 damage added to breath + local dmgmod = xi.mobskills.mobBreathMove(mob, target, skill, 0.10, 1.875, xi.element.EARTH, 500) local dmg = xi.mobskills.mobFinalAdjustments(dmgmod, mob, skill, target, xi.attackType.BREATH, xi.damageType.EARTH, xi.mobskills.shadowBehavior.IGNORE_SHADOWS) target:takeDamage(dmg, mob, xi.attackType.BREATH, xi.damageType.EARTH) diff --git a/scripts/actions/mobskills/harden_shell.lua b/scripts/actions/mobskills/harden_shell.lua index 5488ac31dbe..6342fe20f4c 100644 --- a/scripts/actions/mobskills/harden_shell.lua +++ b/scripts/actions/mobskills/harden_shell.lua @@ -11,7 +11,13 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.DEFENSE_BOOST, 100, 0, 60)) + local duration = math.random(60, 180) + + if mob:isNM() then + skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.DEFENSE_BOOST, 80, 0, duration)) + else + skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.DEFENSE_BOOST, 33, 0, duration)) + end return xi.effect.DEFENSE_BOOST end diff --git a/scripts/actions/mobskills/head_butt_turtle.lua b/scripts/actions/mobskills/head_butt_turtle.lua index d269082b930..39b03f1bad3 100644 --- a/scripts/actions/mobskills/head_butt_turtle.lua +++ b/scripts/actions/mobskills/head_butt_turtle.lua @@ -12,11 +12,12 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local numhits = 1 local accmod = 1 - local dmgmod = 3 + local dmgmod = 1 local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, dmgmod, xi.mobskills.physicalTpBonus.DMG_VARIES, 1, 2, 3) local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.BLUNT, info.hitslanded) - xi.mobskills.mobPhysicalStatusEffectMove(mob, target, skill, xi.effect.ACCURACY_DOWN, 50, 0, 120) + local duration = math.random(120, 180) + xi.mobskills.mobPhysicalStatusEffectMove(mob, target, skill, xi.effect.ACCURACY_DOWN, 40, 0, duration) target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.BLUNT) return dmg diff --git a/scripts/actions/mobskills/howl.lua b/scripts/actions/mobskills/howl.lua index 69e87e3ab71..32392a72aac 100644 --- a/scripts/actions/mobskills/howl.lua +++ b/scripts/actions/mobskills/howl.lua @@ -14,7 +14,7 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.WARCRY, 25, 0, 180)) + skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.WARCRY, 15, 0, 180)) return xi.effect.WARCRY end diff --git a/scripts/actions/mobskills/hurricane_wing.lua b/scripts/actions/mobskills/hurricane_wing.lua index 3acdaa3f7b5..428b27f781b 100644 --- a/scripts/actions/mobskills/hurricane_wing.lua +++ b/scripts/actions/mobskills/hurricane_wing.lua @@ -22,13 +22,18 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - local damage = mob:getWeaponDmg() * 5 + local damage = mob:getWeaponDmg() - damage = xi.mobskills.mobMagicalMove(mob, target, skill, damage, xi.element.WIND, 1, xi.mobskills.magicalTpBonus.NO_EFFECT) + damage = xi.mobskills.mobMagicalMove(mob, target, skill, damage, xi.element.WIND, 4, xi.mobskills.magicalTpBonus.NO_EFFECT) damage = xi.mobskills.mobFinalAdjustments(damage, mob, skill, target, xi.attackType.MAGICAL, xi.damageType.WIND, xi.mobskills.shadowBehavior.WIPE_SHADOWS) target:takeDamage(damage, mob, xi.attackType.MAGICAL, xi.damageType.WIND) - xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.BLINDNESS, 60, 0, 30) + + if mob:getPool() == 2840 then -- Nidhogg + xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.BLINDNESS, 160, 0, 30) + else + xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.BLINDNESS, 100, 0, 30) + end return damage end diff --git a/scripts/actions/mobskills/shock_wave.lua b/scripts/actions/mobskills/shock_wave.lua index 869305532ff..24e740325f1 100644 --- a/scripts/actions/mobskills/shock_wave.lua +++ b/scripts/actions/mobskills/shock_wave.lua @@ -14,13 +14,14 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - local numhits = 1 - local accmod = 1 - local dmgmod = 3.2 - local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, dmgmod, xi.mobskills.magicalTpBonus.NO_EFFECT) - local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.BLUNT, xi.mobskills.shadowBehavior.IGNORE_SHADOWS) - target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.BLUNT) - return dmg + local damage = mob:getWeaponDmg() + + damage = xi.mobskills.mobMagicalMove(mob, target, skill, damage, xi.element.WIND, 0.6, xi.mobskills.magicalTpBonus.NO_EFFECT, 1) + damage = xi.mobskills.mobFinalAdjustments(damage, mob, skill, target, xi.attackType.MAGICAL, xi.damageType.WIND, xi.mobskills.shadowBehavior.WIPE_SHADOWS) + + target:takeDamage(damage, mob, xi.attackType.MAGICAL, xi.damageType.WIND) + + return damage end return mobskillObject diff --git a/scripts/actions/mobskills/spike_flail.lua b/scripts/actions/mobskills/spike_flail.lua index c91fac4b6e2..2b6198149ad 100644 --- a/scripts/actions/mobskills/spike_flail.lua +++ b/scripts/actions/mobskills/spike_flail.lua @@ -25,8 +25,8 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local numhits = 1 - local accmod = 2 - local dmgmod = math.random(5, 7) + local accmod = 1 + local dmgmod = 4 local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, dmgmod, xi.mobskills.physicalTpBonus.DMG_VARIES, 2, 3, 4) local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.SLASHING, xi.mobskills.shadowBehavior.NUMSHADOWS_3) target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.SLASHING) diff --git a/scripts/actions/mobskills/thunderbolt.lua b/scripts/actions/mobskills/thunderbolt.lua index f065df435fd..a7e114a97ec 100644 --- a/scripts/actions/mobskills/thunderbolt.lua +++ b/scripts/actions/mobskills/thunderbolt.lua @@ -12,13 +12,14 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(target, mob, skill) - local damage = mob:getWeaponDmg() * 2 + local damage = mob:getWeaponDmg() + local duration = math.random(8, 14) - damage = xi.mobskills.mobMagicalMove(mob, target, skill, damage, xi.element.THUNDER, 1, xi.mobskills.magicalTpBonus.NO_EFFECT) + damage = xi.mobskills.mobMagicalMove(mob, target, skill, damage, xi.element.THUNDER, 0.6, xi.mobskills.magicalTpBonus.NO_EFFECT) damage = xi.mobskills.mobFinalAdjustments(damage, mob, skill, target, xi.attackType.MAGICAL, xi.damageType.THUNDER, xi.mobskills.shadowBehavior.IGNORE_SHADOWS) target:takeDamage(damage, mob, xi.attackType.MAGICAL, xi.damageType.THUNDER) - xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.STUN, 1, 0, 4) + xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.STUN, 1, 0, duration) return damage end diff --git a/scripts/actions/mobskills/tortoise_stomp.lua b/scripts/actions/mobskills/tortoise_stomp.lua index e2112f6e5a4..774fac5c76d 100644 --- a/scripts/actions/mobskills/tortoise_stomp.lua +++ b/scripts/actions/mobskills/tortoise_stomp.lua @@ -15,11 +15,12 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local numhits = 1 local accmod = 1 - local dmgmod = 2.8 + local dmgmod = 1 local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, dmgmod, xi.mobskills.magicalTpBonus.NO_EFFECT) local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.BLUNT, info.hitslanded) - xi.mobskills.mobPhysicalStatusEffectMove(mob, target, skill, xi.effect.DEFENSE_DOWN, 30, 0, 180) + local duration = math.random(120, 180) + xi.mobskills.mobPhysicalStatusEffectMove(mob, target, skill, xi.effect.DEFENSE_DOWN, 25, 0, duration) target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.BLUNT) return dmg diff --git a/scripts/actions/mobskills/wild_horn.lua b/scripts/actions/mobskills/wild_horn.lua index 6790e7879a5..2d1c5571db7 100644 --- a/scripts/actions/mobskills/wild_horn.lua +++ b/scripts/actions/mobskills/wild_horn.lua @@ -19,7 +19,7 @@ end mobskillObject.onMobWeaponSkill = function(target, mob, skill) local numhits = 3 local accmod = 1 - local dmgmod = 1.3 + local dmgmod = 1.5 local info = xi.mobskills.mobPhysicalMove(mob, target, skill, numhits, accmod, dmgmod, xi.mobskills.magicalTpBonus.NO_EFFECT) local dmg = xi.mobskills.mobFinalAdjustments(info.dmg, mob, skill, target, xi.attackType.PHYSICAL, xi.damageType.SLASHING, info.hitslanded) target:takeDamage(dmg, mob, xi.attackType.PHYSICAL, xi.damageType.SLASHING) diff --git a/scripts/actions/spells/black/meteor.lua b/scripts/actions/spells/black/meteor.lua index e98cac3c6a5..7606ddf9344 100644 --- a/scripts/actions/spells/black/meteor.lua +++ b/scripts/actions/spells/black/meteor.lua @@ -26,6 +26,12 @@ spellObject.onSpellCast = function(caster, target, spell) local dmg = 0 if caster:isPC() then dmg = ((100 + caster:getMod(xi.mod.MATT)) / (100 + target:getMod(xi.mod.MDEF))) * (caster:getStat(xi.mod.INT) + caster:getSkillLevel(xi.skill.ELEMENTAL_MAGIC) / 6) * 3.5 + elseif -- Behemoth family + caster:isMob() and + (caster:getFamily() == 51 or + caster:getFamily() == 479) + then + dmg = 14 + caster:getMainLvl() * 30 else dmg = ((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 end diff --git a/scripts/effects/super_buff.lua b/scripts/effects/super_buff.lua index 7393d0103a9..eb4264f9d54 100644 --- a/scripts/effects/super_buff.lua +++ b/scripts/effects/super_buff.lua @@ -6,10 +6,9 @@ local effectObject = {} effectObject.onEffectGain = function(target, effect) local power = effect:getPower() - target:addMod(xi.mod.ATTP, power) - target:addMod(xi.mod.DEFP, power) - target:addMod(xi.mod.MATT, power) - target:addMod(xi.mod.MEVA, power) + target:addMod(xi.mod.UDMGMAGIC, -500) + target:addMod(xi.mod.UDMGPHYS, -5000) + target:addMod(xi.mod.UDMGRANGE, -5000) -- The following only applies to Nidhogg. If this buff is to be used anywhere else, a check on mob name (NOT ID) would be a good choice target:setAnimationSub(2) end @@ -19,10 +18,9 @@ end effectObject.onEffectLose = function(target, effect) local power = effect:getPower() - target:delMod(xi.mod.ATTP, power) - target:delMod(xi.mod.DEFP, power) - target:delMod(xi.mod.MATT, power) - target:delMod(xi.mod.MEVA, power) + target:delMod(xi.mod.UDMGMAGIC, -500) + target:delMod(xi.mod.UDMGPHYS, -5000) + target:delMod(xi.mod.UDMGRANGE, -5000) target:setAnimationSub(0) end diff --git a/scripts/zones/Behemoths_Dominion/mobs/Behemoth.lua b/scripts/zones/Behemoths_Dominion/mobs/Behemoth.lua index fde66753b35..dbec36d7867 100644 --- a/scripts/zones/Behemoths_Dominion/mobs/Behemoth.lua +++ b/scripts/zones/Behemoths_Dominion/mobs/Behemoth.lua @@ -11,6 +11,9 @@ local entity = {} entity.onMobSpawn = function(mob) mob:setLocalVar('[rage]timer', 1800) -- 30 minutes mob:setMobMod(xi.mobMod.NO_MOVE, 0) + mob:setMobMod(xi.mobMod.WEAPON_BONUS, 37) -- Level 70 + 38 = 108 Base Weapon Damage + mob:setMod(xi.mod.EVA, 301) + mob:setMod(xi.mod.ATT, 211) -- Despawn the ??? GetNPCByID(ID.npc.BEHEMOTH_QM):setStatus(xi.status.DISAPPEAR) diff --git a/scripts/zones/Behemoths_Dominion/mobs/King_Behemoth.lua b/scripts/zones/Behemoths_Dominion/mobs/King_Behemoth.lua index b8e62426939..382d723986b 100644 --- a/scripts/zones/Behemoths_Dominion/mobs/King_Behemoth.lua +++ b/scripts/zones/Behemoths_Dominion/mobs/King_Behemoth.lua @@ -16,6 +16,15 @@ end entity.onMobSpawn = function(mob) mob:setLocalVar('[rage]timer', 3600) -- 60 minutes mob:setMobMod(xi.mobMod.NO_MOVE, 0) + mob:setMobMod(xi.mobMod.WEAPON_BONUS, 58) -- Level 70 + 38 = 108 Base Weapon Damage + mob:setMod(xi.mod.MDEF, 20) + mob:setMod(xi.mod.ATT, 462) + mob:setMod(xi.mod.DEF, 500) + mob:setMod(xi.mod.EVA, 370) + mob:setMod(xi.mod.TRIPLE_ATTACK, 5) + mob:addImmunity(xi.immunity.LIGHT_SLEEP) + mob:addImmunity(xi.immunity.DARK_SLEEP) + mob:addImmunity(xi.immunity.STUN) -- Despawn the ??? GetNPCByID(ID.npc.BEHEMOTH_QM):setStatus(xi.status.DISAPPEAR) @@ -45,10 +54,19 @@ entity.onMobFight = function(mob, target) mob:setMobMod(xi.mobMod.NO_MOVE, 0) end end + + local delay = mob:getLocalVar("delay") + if + os.time() > delay and + mob:canUseAbilities() + then -- Use Meteor every 40s, based on capture + mob:castSpell(218, target) -- meteor + mob:setLocalVar("delay", os.time() + 40) + end end entity.onAdditionalEffect = function(mob, target, damage) - return xi.mob.onAddEffect(mob, target, damage, xi.mob.ae.STUN, { chance = 20, duration = math.random(5, 10) }) + return xi.mob.onAddEffect(mob, target, damage, xi.mob.ae.STUN, { chance = 20, duration = math.random(4, 8) }) end entity.onSpellPrecast = function(mob, spell) @@ -57,7 +75,7 @@ entity.onSpellPrecast = function(mob, spell) spell:setFlag(xi.magic.spellFlag.HIT_ALL) spell:setRadius(30) spell:setAnimation(280) - spell:setMPCost(1) + spell:setMPCost(0) end end diff --git a/scripts/zones/Dragons_Aery/mobs/Darter.lua b/scripts/zones/Dragons_Aery/mobs/Darter.lua new file mode 100644 index 00000000000..851c12177ec --- /dev/null +++ b/scripts/zones/Dragons_Aery/mobs/Darter.lua @@ -0,0 +1,15 @@ +----------------------------------- +-- Area: Dragons Aery +-- HNM: Fafnir +----------------------------------- +local ID = zones[xi.zone.DRAGONS_AERY] +mixins = { require('scripts/mixins/rage') } +----------------------------------- +---@type TMobEntity +local entity = {} + +entity.onMobInitialize = function(mob) + mob:setMobMod(xi.mobMod.ALLI_HATE, 30) -- 30 yalm distance +end + +return entity \ No newline at end of file diff --git a/scripts/zones/Dragons_Aery/mobs/Fafnir.lua b/scripts/zones/Dragons_Aery/mobs/Fafnir.lua index db7bf3a03c7..cc3f0b52b64 100644 --- a/scripts/zones/Dragons_Aery/mobs/Fafnir.lua +++ b/scripts/zones/Dragons_Aery/mobs/Fafnir.lua @@ -10,7 +10,8 @@ local entity = {} entity.onMobSpawn = function(mob) mob:setLocalVar('[rage]timer', 3600) -- 60 minutes - mob:setMobMod(xi.mobMod.WEAPON_BONUS, 50) -- Level 90 + 50 = 140 Base Weapon Damage + mob:setMobMod(xi.mobMod.WEAPON_BONUS, 48) -- Level 90 + 50 = 140 Base Weapon Damage + mob:setMod(xi.mod.ATT, 435) -- Despawn the ??? GetNPCByID(ID.npc.FAFNIR_QM):setStatus(xi.status.DISAPPEAR) diff --git a/scripts/zones/Dragons_Aery/mobs/Nidhogg.lua b/scripts/zones/Dragons_Aery/mobs/Nidhogg.lua index fb389b6925b..3c3178b2f96 100644 --- a/scripts/zones/Dragons_Aery/mobs/Nidhogg.lua +++ b/scripts/zones/Dragons_Aery/mobs/Nidhogg.lua @@ -10,8 +10,11 @@ local entity = {} entity.onMobSpawn = function(mob) mob:setLocalVar('[rage]timer', 3600) -- 60 minutes - mob:setMobMod(xi.mobMod.WEAPON_BONUS, 50) -- Level 90 + 50 = 140 Base Weapon Damage + mob:setMobMod(xi.mobMod.WEAPON_BONUS, 48) -- Level 90 + 50 = 140 Base Weapon Damage mob:setMobMod(xi.mobMod.NO_MOVE, 0) + mob:setMod(xi.mod.ATT, 445) + mob:setMod(xi.mod.ACC, 444) + mob:setMod(xi.mod.EVA, 327) -- Despawn the ??? GetNPCByID(ID.npc.FAFNIR_QM):setStatus(xi.status.DISAPPEAR) diff --git a/scripts/zones/Valley_of_Sorrows/mobs/Adamantoise.lua b/scripts/zones/Valley_of_Sorrows/mobs/Adamantoise.lua index eef1aa25e35..939daa4410d 100644 --- a/scripts/zones/Valley_of_Sorrows/mobs/Adamantoise.lua +++ b/scripts/zones/Valley_of_Sorrows/mobs/Adamantoise.lua @@ -3,13 +3,23 @@ -- HNM: Adamantoise ----------------------------------- local ID = zones[xi.zone.VALLEY_OF_SORROWS] -mixins = { require('scripts/mixins/rage') } +mixins = +{ + require('scripts/mixins/rage'), + require('scripts/mixins/draw_in'), +} ----------------------------------- ---@type TMobEntity local entity = {} entity.onMobSpawn = function(mob) mob:setLocalVar('[rage]timer', 1800) -- 30 minutes + mob:addImmunity(xi.immunity.LIGHT_SLEEP) + mob:addImmunity(xi.immunity.DARK_SLEEP) + mob:setMod(xi.mod.DMGMAGIC, -3500) + mob:setMobMod(xi.mobMod.WEAPON_BONUS, 36) -- Level 70 + 38 = 108 Base Weapon Damage + mob:setMod(xi.mod.DEF, 4112) + mob:setMod(xi.mod.ATT, 450) -- Despawn the ??? GetNPCByID(ID.npc.ADAMANTOISE_QM):setStatus(xi.status.DISAPPEAR) diff --git a/scripts/zones/Valley_of_Sorrows/mobs/Aspidochelone.lua b/scripts/zones/Valley_of_Sorrows/mobs/Aspidochelone.lua index 5634d08d501..1d618c226aa 100644 --- a/scripts/zones/Valley_of_Sorrows/mobs/Aspidochelone.lua +++ b/scripts/zones/Valley_of_Sorrows/mobs/Aspidochelone.lua @@ -3,16 +3,92 @@ -- HNM: Aspidochelone ----------------------------------- local ID = zones[xi.zone.VALLEY_OF_SORROWS] -mixins = { require('scripts/mixins/rage') } +mixins = +{ + require('scripts/mixins/rage'), + require('scripts/mixins/draw_in'), +} ----------------------------------- ---@type TMobEntity local entity = {} -entity.onMobSpawn = function(mob) - mob:setLocalVar('[rage]timer', 3600) -- 60 minutes +local intoShell = function(mob) + mob:setLocalVar("changeTime", os.time() + 90) + mob:setAnimationSub(1) + mob:setMobAbilityEnabled(false) + mob:setAutoAttackEnabled(false) + mob:setMod(xi.mod.REGEN, 130) + mob:setMod(xi.mod.UDMGRANGE, -9500) + mob:setMod(xi.mod.UDMGPHYS, -9500) + mob:setMobMod(xi.mobMod.NO_MOVE, 1) +end + +local outOfShell = function(mob) + mob:setMobAbilityEnabled(true) + mob:setAutoAttackEnabled(true) + mob:setMod(xi.mod.REGEN, 0) + mob:setMod(xi.mod.UDMGRANGE, 0) + mob:setMod(xi.mod.UDMGPHYS, 0) + mob:setMobMod(xi.mobMod.NO_MOVE, 0) +end +entity.onMobSpawn = function(mob) -- Despawn the ??? GetNPCByID(ID.npc.ADAMANTOISE_QM):setStatus(xi.status.DISAPPEAR) + + outOfShell(mob) -- Ensure out of shell mods are set on spawn + + mob:setLocalVar('[rage]timer', 3600) -- 60 minutes + mob:setLocalVar("dmgToChange", mob:getHP() - 1000) + mob:addImmunity(xi.immunity.LIGHT_SLEEP) + mob:addImmunity(xi.immunity.DARK_SLEEP) + mob:addMod(xi.mod.DOUBLE_ATTACK, 20) + mob:setMod(xi.mod.UDMGMAGIC, -3000) + mob:setMod(xi.mod.CURSERES, 100) + mob:setMobMod(xi.mobMod.WEAPON_BONUS, 45) -- Level 85 + 45 = 130 Base Weapon Damage + mob:setMod(xi.mod.DEF, 702) + mob:setMod(xi.mod.ATT, 395) + mob:setMod(xi.mod.EVA, 310) + mob:setAnimationSub(0) +end + +entity.onMobFight = function(mob, target) + -- Aspid changes shell state at 1000 HP intervals based on what HP it was at when it last changed shell + -- If it in its shell, it will come out of shell at the damage threshold, reaching 100% HP, or 90 seconds have passed + local changeHP = mob:getLocalVar("dmgToChange") + + if -- In shell + mob:getAnimationSub() == 1 and + (os.time() > mob:getLocalVar("changeTime") or + mob:getHPP() == 100) + then + outOfShell(mob) + mob:setAnimationSub(2) + mob:setTP(3000) -- Immediately TPs coming out of shell + end + + if + changeHP ~= 0 and + mob:getHP() <= changeHP + then + mob:setLocalVar("dmgToChange", 0) + + if mob:getAnimationSub() == 1 then + outOfShell(mob) + mob:setAnimationSub(2) + mob:setTP(3000) -- Immediately TPs coming out of shell + elseif + mob:getAnimationSub() == 2 or + mob:getAnimationSub() == 0 + then + intoShell(mob) + end + + -- Complete shell exit/enter animation then set hp change var + mob:timer(1500, function(mobArg) + mobArg:setLocalVar("dmgToChange", mob:getHP() - 1000) + end) + end end entity.onMobDeath = function(mob, player, optParams) diff --git a/sql/mob_droplist.sql b/sql/mob_droplist.sql index 3c74faf559f..be3c9db72d8 100644 --- a/sql/mob_droplist.sql +++ b/sql/mob_droplist.sql @@ -227,14 +227,14 @@ INSERT INTO `mob_droplist` VALUES (20,0,0,1000,748,20); -- Gold Beastcoi INSERT INTO `mob_droplist` VALUES (20,0,0,1000,1455,20); -- One Byne Bill (2.0%) -- ZoneID: 128 - Adamantoise -INSERT INTO `mob_droplist` VALUES (21,0,0,1000,646,1060); -- Chunk Of Adaman Ore (106.0%) -INSERT INTO `mob_droplist` VALUES (21,0,0,1000,646,530); -- Chunk Of Adaman Ore (53.0%) -INSERT INTO `mob_droplist` VALUES (21,0,0,1000,646,350); -- Chunk Of Adaman Ore (35.0%) -INSERT INTO `mob_droplist` VALUES (21,0,0,1000,646,260); -- Chunk Of Adaman Ore (26.0%) -INSERT INTO `mob_droplist` VALUES (21,0,0,1000,12361,190); -- Sipar (19.0%) -INSERT INTO `mob_droplist` VALUES (21,0,0,1000,13794,110); -- Heavy Cuirass (11.0%) -INSERT INTO `mob_droplist` VALUES (21,0,0,1000,3344,@UNCOMMON); -- Clump Of Red Pondweed (Uncommon, 10%) -INSERT INTO `mob_droplist` VALUES (21,0,0,1000,908,90); -- Adamantoise Shell (9.0%) +INSERT INTO `mob_droplist` VALUES (21,0,0,1000,646,@ALWAYS); -- Chunk Of Adaman Ore (Always, 100%) +INSERT INTO `mob_droplist` VALUES (21,0,0,1000,646,@VCOMMON); -- Chunk Of Adaman Ore (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (21,0,0,1000,646,@VCOMMON); -- Chunk Of Adaman Ore (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (21,0,0,1000,646,@VCOMMON); -- Chunk Of Adaman Ore (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (21,0,0,1000,12361,@COMMON); -- Sipar (Common, 15%) +INSERT INTO `mob_droplist` VALUES (21,0,0,1000,13794,@UNCOMMON); -- Heavy Cuirass (Uncommon, 10%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1525,@UNCOMMON); -- Adamantoise Egg (Uncommon, 10%) +INSERT INTO `mob_droplist` VALUES (21,0,0,1000,3344,@RARE); -- Clump Of Red Pondweed (Rare, 5%) -- ZoneID: 92 - Adaman Quadav INSERT INTO `mob_droplist` VALUES (22,0,0,1000,2504,130); -- Heavy Quadav Chestplate (13.0%) @@ -1779,22 +1779,22 @@ INSERT INTO `mob_droplist` VALUES (182,0,0,1000,529,60); -- Luminicloth (6. INSERT INTO `mob_droplist` VALUES (182,2,0,1000,825,0); -- Square Of Cotton Cloth (Steal) -- ZoneID: 128 - Aspidochelone -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,646,890); -- Chunk Of Adaman Ore (89.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,646,450); -- Chunk Of Adaman Ore (45.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,908,370); -- Adamantoise Shell (37.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1325,350); -- Aquarian Abjuration Body (35.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1318,340); -- Dryadic Abjuration Feet (34.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,646,300); -- Chunk Of Adaman Ore (30.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1333,270); -- Martial Abjuration Feet (27.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1335,260); -- Wyrmal Abjuration Body (26.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1525,250); -- Adamantoise Egg (25.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,646,220); -- Chunk Of Adaman Ore (22.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1325,180); -- Aquarian Abjuration Body (18.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1318,170); -- Dryadic Abjuration Feet (17.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,12361,160); -- Sipar (16.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1333,140); -- Martial Abjuration Feet (14.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1335,130); -- Wyrmal Abjuration Body (13.0%) -INSERT INTO `mob_droplist` VALUES (183,0,0,1000,13794,70); -- Heavy Cuirass (7.0%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,1525,@ALWAYS); -- Adamantoise Egg (Always, 100%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,646,@ALWAYS); -- Chunk Of Adaman Ore (Always, 100%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,646,@VCOMMON); -- Chunk Of Adaman Ore (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,646,@COMMON); -- Chunk Of Adaman Ore (Common, 15%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,646,@COMMON); -- Chunk Of Adaman Ore (Common, 15%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,908,@VCOMMON); -- Adamantoise Shell (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,12361,@COMMON); -- Sipar (Common, 15%) +INSERT INTO `mob_droplist` VALUES (183,0,0,1000,13794,@RARE); -- Heavy Cuirass (Rare, 5%) +INSERT INTO `mob_droplist` VALUES (183,1,1,@ALWAYS,1318,250); -- Dryadic Abjuration Feet (Group 1 - 100%) +INSERT INTO `mob_droplist` VALUES (183,1,1,@ALWAYS,1325,250); -- Aquarian Abjuration Body (Group 1 - 100%) +INSERT INTO `mob_droplist` VALUES (183,1,1,@ALWAYS,1333,250); -- Martial Abjuration Feet (Group 1 - 100%) +INSERT INTO `mob_droplist` VALUES (183,1,1,@ALWAYS,1335,250); -- Wyrmal Abjuration Body (Group 1 - 100%) +INSERT INTO `mob_droplist` VALUES (183,1,2,@VCOMMON,1318,250); -- Dryadic Abjuration Feet (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (183,1,2,@VCOMMON,1325,250); -- Aquarian Abjuration Body (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (183,1,2,@VCOMMON,1333,250); -- Martial Abjuration Feet (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (183,1,2,@VCOMMON,1335,250); -- Wyrmal Abjuration Body (Group 2 - 25.0%) -- ZoneID: 254 - Assailer Chariot INSERT INTO `mob_droplist` VALUES (184,0,0,1000,727,@UNCOMMON); -- Dogwood Log (Uncommon, 10%) @@ -2458,11 +2458,11 @@ INSERT INTO `mob_droplist` VALUES (250,0,0,1000,894,@UNCOMMON); -- Beetle Jaw (U INSERT INTO `mob_droplist` VALUES (250,0,0,1000,1029,60); -- Horutoto Chest Key (6.0%) -- ZoneID: 127 - Behemoth -INSERT INTO `mob_droplist` VALUES (251,0,0,1000,860,960); -- Behemoth Hide (96.0%) -INSERT INTO `mob_droplist` VALUES (251,0,0,1000,860,480); -- Behemoth Hide (48.0%) -INSERT INTO `mob_droplist` VALUES (251,0,0,1000,16869,220); -- Thundercloud (22.0%) -INSERT INTO `mob_droplist` VALUES (251,0,0,1000,17294,140); -- Comet Tail (14.0%) -INSERT INTO `mob_droplist` VALUES (251,0,0,1000,3342,@UNCOMMON); -- Savory Shank (Uncommon, 10%) +INSERT INTO `mob_droplist` VALUES (251,0,0,1000,860,@VCOMMON); -- Behemoth Hide (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (251,0,0,1000,860,@VCOMMON); -- Behemoth Hide (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (251,0,0,1000,16869,@COMMON); -- Thundercloud (Common, 15%) +INSERT INTO `mob_droplist` VALUES (251,0,0,1000,17294,@UNCOMMON); -- Comet Tail (Uncommon, 10%) +INSERT INTO `mob_droplist` VALUES (251,0,0,1000,3342,@UNCOMMON); -- Savory Shank (Uncommon, 10%) -- ZoneID: 45 - Beholder INSERT INTO `mob_droplist` VALUES (252,0,0,1000,2917,@UNCOMMON); -- Bloodshot Hecteye (Uncommon, 10%) @@ -6657,21 +6657,25 @@ INSERT INTO `mob_droplist` VALUES (804,0,0,1000,935,80); -- Ahriman Wing (8.0%) INSERT INTO `mob_droplist` VALUES (804,2,0,1000,921,0); -- Bottle Of Ahriman Tears (Steal) -- ZoneID: 154 - Fafnir -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,903,900); -- Dragon Talon (90.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,867,750); -- Handful Of Dragon Scales (75.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,14075,570); -- Andvaranauts (57.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,13914,500); -- Aegishjalmr (50.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,1339,410); -- Neptunal Abjuration Head (41.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,4486,410); -- Dragon Heart (41.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,1326,310); -- Aquarian Abjuration Hands (31.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,16942,290); -- Balmung (29.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,17653,270); -- Hrotti (27.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,1321,@VCOMMON); -- Earthen Abjuration Hands (Very Common, 24%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,1328,@VCOMMON); -- Aquarian Abjuration Feet (Very Common, 24%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,3340,@UNCOMMON); -- Cup Of Sweet Tea (Uncommon, 10%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,4272,30); -- Slice Of Dragon Meat (3.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,1133,20); -- Vial Of Dragon Blood (2.0%) -INSERT INTO `mob_droplist` VALUES (805,0,0,1000,16555,@VRARE); -- Ridill (Very Rare, 1%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,903,@ALWAYS); -- Dragon Talon (Always, 100%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,867,@ALWAYS); -- Handful Of Dragon Scales (Always, 100%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,867,@VCOMMON); -- Handful Of Dragon Scales (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,14075,@VCOMMON); -- Andvaranauts (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,13914,@VCOMMON); -- Aegishjalmr (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,4486,@VCOMMON); -- Dragon Heart (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,16942,@UNCOMMON); -- Balmung (Uncommon, 10%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,17653,@UNCOMMON); -- Hrotti (Uncommon, 10%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,3340,@RARE); -- Cup Of Sweet Tea (Rare, 5%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,1526,@RARE); -- Wyrm Beard (Rare, 5%) +INSERT INTO `mob_droplist` VALUES (805,0,0,1000,16555,@RARE); -- Ridill (Rare, 5%) +INSERT INTO `mob_droplist` VALUES (805,1,1,@VCOMMON,1321,250); -- Earthen Abjuration Hands (Group 1 - 25.0%) +INSERT INTO `mob_droplist` VALUES (805,1,1,@VCOMMON,1326,250); -- Aquarian Abjuration Hands (Group 1 - 25.0%) +INSERT INTO `mob_droplist` VALUES (805,1,1,@VCOMMON,1328,250); -- Aquarian Abjuration Feet (Group 1 - 25.0%) +INSERT INTO `mob_droplist` VALUES (805,1,1,@VCOMMON,1339,250); -- Neptunal Abjuration Head (Group 1 - 25.0%) +INSERT INTO `mob_droplist` VALUES (805,1,2,@VCOMMON,1321,250); -- Earthen Abjuration Hands (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (805,1,2,@VCOMMON,1326,250); -- Aquarian Abjuration Hands (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (805,1,2,@VCOMMON,1328,250); -- Aquarian Abjuration Feet (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (805,1,2,@VCOMMON,1339,250); -- Neptunal Abjuration Head (Group 2 - 25.0%) -- ZoneID: 39 - Fairy Ring INSERT INTO `mob_droplist` VALUES (806,0,0,1000,5895,850); -- Odorless Fungus (85.0%) @@ -11829,22 +11833,22 @@ INSERT INTO `mob_droplist` VALUES (1449,0,0,1000,836,@VCOMMON); -- Square Of Da INSERT INTO `mob_droplist` VALUES (1449,0,0,1000,15899,@RARE); -- Velocious Belt (Rare, 5%) -- ZoneID: 127 - King Behemoth -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,860,@ALWAYS); -- Behemoth Hide (Always, 100%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,883,@ALWAYS); -- Behemoth Horn (Always, 100%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1527,670); -- Behemoth Tongue (67.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,831,530); -- Square Of Shining Cloth (53.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,860,400); -- Behemoth Hide (40.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1334,380); -- Wyrmal Abjuration Head (38.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1322,320); -- Earthen Abjuration Legs (32.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1332,290); -- Martial Abjuration Legs (29.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1328,270); -- Aquarian Abjuration Feet (27.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,883,250); -- Behemoth Horn (25.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1334,190); -- Wyrmal Abjuration Head (19.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1322,160); -- Earthen Abjuration Legs (16.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1332,140); -- Martial Abjuration Legs (14.0%) -INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1328,130); -- Aquarian Abjuration Feet (13.0%) -INSERT INTO `mob_droplist` VALUES (1450,1,1,1000,13415,950); -- Pixie Earring (Group 1 - 95.0%) -INSERT INTO `mob_droplist` VALUES (1450,1,1,1000,13566,@RARE); -- Defending Ring (Group 1 - Rare, 5%) +INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,1527,@ALWAYS); -- Behemoth Tongue (Always, 100%) +INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,831,@VCOMMON); -- Square Of Shining Cloth (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,860,@ALWAYS); -- Behemoth Hide (Always, 100%) +INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,860,@COMMON); -- Behemoth Hide (Common, 15%) +INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,883,@ALWAYS); -- Behemoth Horn (Always, 100%) +INSERT INTO `mob_droplist` VALUES (1450,0,0,1000,883,@COMMON); -- Behemoth Horn (Common, 15%) +INSERT INTO `mob_droplist` VALUES (1450,1,1,1000,13415,950); -- Pixie Earring (Group 1 - 95.0%) +INSERT INTO `mob_droplist` VALUES (1450,1,1,1000,13566,@RARE); -- Defending Ring (Group 1 - Rare, 5%) +INSERT INTO `mob_droplist` VALUES (1450,1,2,@ALWAYS,1322,250); -- Earthen Abjuration Legs (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1450,1,2,@ALWAYS,1328,250); -- Aquarian Abjuration Feet (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1450,1,2,@ALWAYS,1332,250); -- Martial Abjuration Legs (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1450,1,2,@ALWAYS,1334,250); -- Wyrmal Abjuration Head (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1450,1,3,@UNCOMMON,1322,250); -- Earthen Abjuration Legs (Group 3 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1450,1,3,@UNCOMMON,1328,250); -- Aquarian Abjuration Feet (Group 3 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1450,1,3,@UNCOMMON,1332,250); -- Martial Abjuration Legs (Group 3 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1450,1,3,@UNCOMMON,1334,250); -- Wyrmal Abjuration Head (Group 3 - 25.0%) -- ZoneID: 125 - King Vinegarroon INSERT INTO `mob_droplist` VALUES (1451,0,0,1000,15223,@VCOMMON); -- Aces Helm (Very Common, 24%) @@ -13929,24 +13933,22 @@ INSERT INTO `mob_droplist` VALUES (1780,4,0,1000,4409,0); -- Hard-Boiled Egg ( INSERT INTO `mob_droplist` VALUES (1780,4,0,1000,4552,0); -- Serving Of Herb Crawler Eggs (Despoil) -- ZoneID: 154 - Nidhogg -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1133,@ALWAYS); -- Vial Of Dragon Blood (Always, 100%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,4486,@ALWAYS); -- Dragon Heart (Always, 100%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,865,700); -- Handful Of Nidhoggs Scales (70.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1133,500); -- Vial Of Dragon Blood (50.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1330,370); -- Martial Abjuration Body (37.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,865,350); -- Handful Of Nidhoggs Scales (35.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1526,350); -- Wyrm Beard (35.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1320,270); -- Earthen Abjuration Body (27.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1325,270); -- Aquarian Abjuration Body (27.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1342,260); -- Neptunal Abjuration Legs (26.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1330,180); -- Martial Abjuration Body (18.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,865,170); -- Handful Of Nidhoggs Scales (17.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1320,130); -- Earthen Abjuration Body (13.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1325,130); -- Aquarian Abjuration Body (13.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1342,130); -- Neptunal Abjuration Legs (13.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,4272,130); -- Slice Of Dragon Meat (13.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,867,60); -- Handful Of Dragon Scales (6.0%) -INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,903,20); -- Dragon Talon (2.0%) +INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1526,@ALWAYS); -- Wyrm Beard (Always, 100%) +INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1133,@ALWAYS); -- Vial Of Dragon Blood (Always, 100%) +INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,1133,@COMMON); -- Vial Of Dragon Blood (Common, 15%) +INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,4486,@ALWAYS); -- Dragon Heart (Always, 100%) +INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,865,@VCOMMON); -- Handful Of Nidhoggs Scales (Very Common, 24%) +INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,865,@COMMON); -- Handful Of Nidhoggs Scales (Common, 15%) +INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,865,@COMMON); -- Handful Of Nidhoggs Scales (Common, 15%) +INSERT INTO `mob_droplist` VALUES (1781,0,0,1000,4272,@RARE); -- Slice Of Dragon Meat (Rare, 5%) +INSERT INTO `mob_droplist` VALUES (1781,1,1,@ALWAYS,1320,250); -- Earthen Abjuration Body (Group 1 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1781,1,1,@ALWAYS,1325,250); -- Aquarian Abjuration Body (Group 1 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1781,1,1,@ALWAYS,1330,250); -- Martial Abjuration Body (Group 1 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1781,1,1,@ALWAYS,1342,250); -- Neptunal Abjuration Legs (Group 1 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1781,1,2,@UNCOMMON,1320,250); -- Earthen Abjuration Body (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1781,1,2,@UNCOMMON,1325,250); -- Aquarian Abjuration Body (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1781,1,2,@UNCOMMON,1330,250); -- Martial Abjuration Body (Group 2 - 25.0%) +INSERT INTO `mob_droplist` VALUES (1781,1,2,@UNCOMMON,1342,250); -- Neptunal Abjuration Legs (Group 2 - 25.0%) -- ZoneID: 12 - Nightmare Bats INSERT INTO `mob_droplist` VALUES (1782,0,0,1000,922,400); -- Bat Wing (40.0%) diff --git a/sql/mob_groups.sql b/sql/mob_groups.sql index 66f3e937b60..d6446014a56 100644 --- a/sql/mob_groups.sql +++ b/sql/mob_groups.sql @@ -9018,8 +9018,8 @@ INSERT INTO `mob_groups` VALUES (5,980,127,'Demonic_Weapon',330,0,0,0,0,45,46,0) INSERT INTO `mob_groups` VALUES (6,2442,127,'Lost_Soul_blm',330,1,1541,0,0,45,47,0); INSERT INTO `mob_groups` VALUES (7,2585,127,'Master_Coeurl',330,0,1638,0,0,45,50,0); INSERT INTO `mob_groups` VALUES (8,407,127,'Bhuta',330,1,264,0,0,46,48,0); -INSERT INTO `mob_groups` VALUES (9,387,127,'Behemoth',0,128,251,35000,0,70,70,0); -INSERT INTO `mob_groups` VALUES (10,2255,127,'King_Behemoth',0,128,1450,75000,0,85,85,0); +INSERT INTO `mob_groups` VALUES (9,387,127,'Behemoth',0,128,251,50000,0,70,70,0); +INSERT INTO `mob_groups` VALUES (10,2255,127,'King_Behemoth',0,128,1450,90000,0,85,85,0); INSERT INTO `mob_groups` VALUES (11,3135,127,'Picklix_Longindex',0,128,0,0,0,60,60,0); INSERT INTO `mob_groups` VALUES (12,2767,127,'Moxnix_Nightgoggle',0,128,0,0,0,58,58,0); INSERT INTO `mob_groups` VALUES (13,1074,127,'Doglix_Muttsnout',0,128,0,0,0,58,58,0); @@ -9039,8 +9039,8 @@ INSERT INTO `mob_groups` VALUES (2,3120,128,'Peryton',330,0,1991,0,0,69,72,0); INSERT INTO `mob_groups` VALUES (3,1341,128,'Fire_Elemental',330,4,6860,0,0,66,68,0); INSERT INTO `mob_groups` VALUES (4,71,128,'Air_Elemental',330,4,38,0,0,66,68,0); INSERT INTO `mob_groups` VALUES (5,4125,128,'Valley_Manticore',330,0,2537,0,0,71,74,0); -INSERT INTO `mob_groups` VALUES (6,44,128,'Adamantoise',0,128,21,7000,0,70,70,0); -INSERT INTO `mob_groups` VALUES (7,268,128,'Aspidochelone',0,128,183,15000,0,85,85,0); +INSERT INTO `mob_groups` VALUES (6,44,128,'Adamantoise',0,128,21,10000,0,70,70,0); +INSERT INTO `mob_groups` VALUES (7,268,128,'Aspidochelone',0,128,183,13000,0,85,85,0); INSERT INTO `mob_groups` VALUES (8,3643,128,'Skahnowa',0,128,0,0,0,1,1,0); INSERT INTO `mob_groups` VALUES (9,6856,128,'Tolba',0,128,0,0,0,0,0,0); diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index ed2e80666c3..04d8cef7168 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -97,7 +97,7 @@ INSERT INTO `mob_pools` VALUES (40,'Acrophies','Acrophies',172,0x000014010000000 INSERT INTO `mob_pools` VALUES (41,'Acro_Bat','Acro_Bat',46,0x0000000100000000000000000000000000000000,1,1,11,240,100,0,0,0,0,0,0,0,3185,1667,8,0,0,0,0,46,46); INSERT INTO `mob_pools` VALUES (42,'Adam','Adam',149,0x0100000100000000000000000000000000000000,1,1,7,240,100,0,1,1,0,16,0,0,0,3,0,0,0,0,0,149,149); INSERT INTO `mob_pools` VALUES (43,'Adamantking_Effigy','Adamantking_Effigy',94,0x0000220400000000000000000000000000000000,1,1,12,240,100,0,1,0,1,0,6800,0,0,1665,0,0,0,0,0,94,94); -INSERT INTO `mob_pools` VALUES (44,'Adamantoise','Adamantoise',2,0x0000900100000000000000000000000000000000,1,1,7,380,125,0,1,0,0,2,6144,0,0,1153,8,0,0,0,0,2,2); +INSERT INTO `mob_pools` VALUES (44,'Adamantoise','Adamantoise',2,0x0000900100000000000000000000000000000000,7,4,7,250,100,0,1,0,0,2,0,0,0,1153,8,0,0,0,0,2,2); INSERT INTO `mob_pools` VALUES (45,'Adamantshell','Adamantshell',77,0x0000640100000000000000000000000000000000,7,7,4,240,100,0,1,1,1,16,2048,0,1755,1667,8,0,0,0,256,77,77); INSERT INTO `mob_pools` VALUES (46,'Adaman_Quadav','Adaman_Quadav',202,0x0000910200000000000000000000000000000000,8,8,4,265,100,0,1,1,1,2,0,0,0,1157,0,0,5,0,0,202,202); INSERT INTO `mob_pools` VALUES (47,'Adamastor','Adamastor',126,0x0000C40200000000000000000000000000000000,1,1,11,240,100,0,0,0,0,2,0,32,0,1183,0,0,0,0,0,809,126); @@ -321,7 +321,7 @@ INSERT INTO `mob_pools` VALUES (264,'Ashu_Talif_Marine','Ashu_Talif_Marine',359, INSERT INTO `mob_pools` VALUES (265,'Ash_Dragon','Ash_Dragon',87,0x0000A40100000000000000000000000000000000,1,1,12,240,100,0,1,0,0,2,0,0,7,1157,0,0,0,0,0,87,87); INSERT INTO `mob_pools` VALUES (266,'Ash_Lizard','Ash_Lizard',174,0x0000490100000000000000000000000000000000,1,1,7,240,100,0,0,0,1,0,0,0,291,1155,0,0,0,0,0,174,174); INSERT INTO `mob_pools` VALUES (267,'Asphyxiated_Amsel','Asphyxiated_Amsel',121,0x0000700100000000000000000000000000000000,4,4,12,240,100,0,1,0,0,2,0,32,0,1183,0,0,28,0,0,121,121); -INSERT INTO `mob_pools` VALUES (268,'Aspidochelone','Aspidochelone',2,0x0000910100000000000000000000000000000000,1,1,7,380,125,0,1,1,0,2,6144,0,363,1155,6,0,0,0,0,2,2); +INSERT INTO `mob_pools` VALUES (268,'Aspidochelone','Aspidochelone',2,0x0000910100000000000000000000000000000000,7,4,7,250,100,0,1,1,0,2,0,0,363,1155,6,0,0,0,0,2,2); INSERT INTO `mob_pools` VALUES (269,'Asrai','Asrai',114,0x0000410500000000000000000000000000000000,1,1,8,200,100,0,1,0,0,6,0,32,6585,1179,0,0,0,0,0,114,114); INSERT INTO `mob_pools` VALUES (270,'Assailer_Chariot','Assailer_Chariot',63,0x0000200700000000000000000000000000000000,4,4,12,240,100,0,1,1,1,2,0,0,0,1157,0,0,281,0,0,978,63); INSERT INTO `mob_pools` VALUES (271,'Assassin_Fly','Assassin_Fly',113,0x0000C10100000000000000000000000000000000,1,1,8,240,100,0,0,0,1,0,0,0,616,1665,8,0,0,0,0,113,113); @@ -440,7 +440,7 @@ INSERT INTO `mob_pools` VALUES (383,'Bearclaw_Leveret','Bearclaw_Leveret',206,0x INSERT INTO `mob_pools` VALUES (384,'Bearclaw_Rabbit','Bearclaw_Rabbit',206,0x00000E0100000000000000000000000000000000,1,1,7,240,100,0,1,1,1,16,0,0,4385,135,0,0,0,0,0,206,206); INSERT INTO `mob_pools` VALUES (385,'Beelzebub','Beelzebub',48,0x0000100100000000000000000000000000000000,3,3,11,240,100,0,1,1,1,16,0,32,3240,159,0,0,74,0,0,48,48); INSERT INTO `mob_pools` VALUES (386,'Beet_Leafhopper','Beet_Leafhopper',113,0x0000C00100000000000000000000000000000000,1,1,8,240,100,0,1,0,1,2,0,0,1505,643,0,0,0,0,0,113,113); -INSERT INTO `mob_pools` VALUES (387,'Behemoth','Behemoth',51,0x0000940100000000000000000000000000000000,1,1,6,380,125,1024,1,1,0,2,0,0,0,129,0,0,0,0,0,51,51); +INSERT INTO `mob_pools` VALUES (387,'Behemoth','Behemoth',51,0x0000940100000000000000000000000000000000,1,6,6,210,100,1024,1,1,0,2,0,0,0,129,0,0,0,0,0,51,51); INSERT INTO `mob_pools` VALUES (388,'Beholder','Beholder',139,0x0000800100000000000000000000000000000000,4,4,12,240,100,0,1,0,0,0,0,0,0,131,0,0,10,0,0,139,139); INSERT INTO `mob_pools` VALUES (389,'Beli','Beli',126,0x0000C70200000000000000000000000000000000,11,1,5,240,100,0,1,1,1,16,0,32,7,157,0,0,0,0,256,126,126); INSERT INTO `mob_pools` VALUES (390,'Bendigeit_Vran','Bendigeit_Vran',221,0x0000130200000000000000000000000000000000,1,1,2,360,100,0,1,0,1,2,0,32,894,155,0,0,0,0,0,221,221); @@ -1333,7 +1333,7 @@ INSERT INTO `mob_pools` VALUES (1276,'Expunger','Expunger',86,0x0000400100000000 INSERT INTO `mob_pools` VALUES (1277,'Eyy_Mon_the_Ironbreaker','Eyy_Mon_the_Ironbreaker',360,0x00004C0200000000000000000000000000000000,13,13,2,240,100,0,1,0,1,2,0,32,0,1179,0,0,7,0,0,360,360); INSERT INTO `mob_pools` VALUES (1278,'Fachan','Fachan',4,0x0000080100000000000000000000000000000000,1,4,11,240,100,0,1,0,1,0,0,0,131,131,0,0,11,0,0,4,4); INSERT INTO `mob_pools` VALUES (1279,'Faerie','Faerie',195,0x0000EE0700000000000000000000000000000000,1,1,0,240,100,0,0,0,0,0,0,0,0,513,8,0,0,0,0,195,195); -INSERT INTO `mob_pools` VALUES (1280,'Fafnir','Fafnir',260,0x00000F0300000000000000000000000000000000,1,1,7,240,125,1040,1,1,1,2,0,32,0,153,0,0,0,0,0,260,260); +INSERT INTO `mob_pools` VALUES (1280,'Fafnir','Fafnir',260,0x00000F0300000000000000000000000000000000,1,1,7,240,100,1040,1,1,1,2,0,32,0,153,0,0,0,0,0,260,260); INSERT INTO `mob_pools` VALUES (1281,'Fairy_Ring','Fairy_Ring',116,0x0000780100000000000000000000000000000000,1,1,11,240,100,0,1,1,1,2,0,32,0,157,0,0,0,0,0,2009,116); INSERT INTO `mob_pools` VALUES (1282,'Falcatus_Aranei','Falcatus_Aranei',235,0x0000360100000000000000000000000000000000,1,1,7,240,100,0,0,0,1,2,0,0,0,3,0,0,0,0,0,236,235); INSERT INTO `mob_pools` VALUES (1283,'Fallen_Evacuee_blm','Fallen_Evacuee_blm',227,0x0000340200000000000000000000000000000000,4,4,5,240,100,0,1,0,0,0,0,0,350,129,0,0,28,0,0,227,227); @@ -2307,7 +2307,7 @@ INSERT INTO `mob_pools` VALUES (2251,'Kinepikwa','Kinepikwa',192,0x0000DF0700000 INSERT INTO `mob_pools` VALUES (2252,'Kingslayer_Doggvdegg','Kingslayer_Doggvdegg',334,0x00001B0800000000000000000000000000000000,1,1,4,240,100,0,1,1,1,0,0,0,1,157,0,0,0,0,0,334,334); INSERT INTO `mob_pools` VALUES (2253,'King_Apkallu','King_Apkallu',27,0x0000BB0600000000000000000000000000000000,2,2,1,480,100,0,0,0,0,0,0,0,616,133,5,0,0,0,0,27,27); INSERT INTO `mob_pools` VALUES (2254,'King_Arthro','King_Arthro',77,0x0000650100000000000000000000000000000000,2,5,12,240,100,0,1,0,0,2,20,32,514,157,0,0,79,0,0,77,77); -INSERT INTO `mob_pools` VALUES (2255,'King_Behemoth','King_Behemoth',479,0x0000940100000000000000000000000000000000,1,1,6,380,125,1024,1,1,0,2,6168,0,6713,131,0,0,126,0,0,479,479); +INSERT INTO `mob_pools` VALUES (2255,'King_Behemoth','King_Behemoth',479,0x0000940100000000000000000000000000000000,1,6,6,210,100,1024,1,1,0,2,0,0,6713,131,0,0,0,0,0,479,479); INSERT INTO `mob_pools` VALUES (2256,'King_Buffalo','King_Buffalo',57,0x00004D0500000000000000000000000000000000,1,8,12,360,100,0,1,0,0,0,0,0,608,133,0,0,0,0,0,57,57); INSERT INTO `mob_pools` VALUES (2257,'King_Goldemar','King_Goldemar',90,0x00002F0700000000000000000000000000000000,4,4,12,240,100,0,0,0,0,2,0,0,1,139,0,0,2,0,0,90,90); INSERT INTO `mob_pools` VALUES (2258,'King_of_Batons','King_of_Batons',61,0x0000AF0100000000000000000000000000000000,4,4,12,240,100,0,1,1,1,18,0,0,1048,135,0,0,2,0,0,61,61); @@ -2892,7 +2892,7 @@ INSERT INTO `mob_pools` VALUES (2836,'Nguruvilu','Nguruvilu',198,0x0000D00600000 INSERT INTO `mob_pools` VALUES (2837,'Nickel_Quadav','Nickel_Quadav',202,0x00008B0200000000000000000000000000000000,7,7,3,265,100,0,1,0,1,0,0,0,1,131,0,0,4,0,0,202,202); INSERT INTO `mob_pools` VALUES (2838,'Nickur','Nickur',86,0x0000400100000000000000000000000000000000,1,1,5,270,100,0,1,1,1,16,0,0,0,3,0,0,0,0,0,86,86); INSERT INTO `mob_pools` VALUES (2839,'Nicolaus','Nicolaus',149,0x0100070100108320003083408350006000700000,20,20,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,149); -INSERT INTO `mob_pools` VALUES (2840,'Nidhogg','Nidhogg',263,0x00000F0300000000000000000000000000000000,1,1,7,240,125,1040,1,1,0,2,0,32,46,155,6,0,0,0,0,263,263); +INSERT INTO `mob_pools` VALUES (2840,'Nidhogg','Nidhogg',263,0x00000F0300000000000000000000000000000000,1,1,7,240,100,1040,1,1,0,2,0,32,46,155,6,0,0,0,0,263,263); INSERT INTO `mob_pools` VALUES (2841,'Feraloxs_Slime','Feraloxs_Slime',229,0x0000240100000000000000000000000000000000,4,4,7,240,100,0,1,0,1,8,0,32,0,155,0,0,54,0,0,229,229); INSERT INTO `mob_pools` VALUES (2842,'Nightmare_Bats_IC_UR','Nightmare_Bats_IC_UR',47,0x0000040100000000000000000000000000000000,1,1,5,240,100,0,1,0,1,0,0,64,238,643,8,0,0,0,0,47,47); INSERT INTO `mob_pools` VALUES (2843,'Nightmare_Bugard','Nightmare_Bugard',58,0x0000470500000000000000000000000000000000,1,1,5,300,100,0,1,0,1,0,0,0,0,131,0,0,0,0,0,58,58);