From 0868d148c9b7b70b6fafd8a5bae3840c98ce7cda Mon Sep 17 00:00:00 2001 From: ThrisStraizo <45871917+ThrisStraizo@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:00:04 -0700 Subject: [PATCH 01/59] Adjust starter mob attack to match retail damage This PR adjusts the attack of starter mobs to deal the same damage observed on retail. --- scripts/zones/East_Ronfaure/mobs/Tunnel_Worm.lua | 1 + scripts/zones/East_Ronfaure/mobs/Wild_Rabbit.lua | 1 + scripts/zones/East_Sarutabaruta/mobs/Bumblebee.lua | 1 + scripts/zones/East_Sarutabaruta/mobs/Tiny_Mandragora.lua | 1 + scripts/zones/North_Gustaberg/mobs/Huge_Hornet.lua | 1 + scripts/zones/North_Gustaberg/mobs/Tunnel_Worm.lua | 1 + scripts/zones/South_Gustaberg/mobs/Huge_Hornet.lua | 1 + scripts/zones/South_Gustaberg/mobs/Tunnel_Worm.lua | 1 + scripts/zones/West_Ronfaure/mobs/Tunnel_Worm.lua | 1 + scripts/zones/West_Ronfaure/mobs/Wild_Rabbit.lua | 1 + scripts/zones/West_Sarutabaruta/mobs/Bumblebee.lua | 1 + scripts/zones/West_Sarutabaruta/mobs/Tiny_Mandragora.lua | 1 + 12 files changed, 12 insertions(+) diff --git a/scripts/zones/East_Ronfaure/mobs/Tunnel_Worm.lua b/scripts/zones/East_Ronfaure/mobs/Tunnel_Worm.lua index 8c2a3f671e4..b118459edc6 100644 --- a/scripts/zones/East_Ronfaure/mobs/Tunnel_Worm.lua +++ b/scripts/zones/East_Ronfaure/mobs/Tunnel_Worm.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/East_Ronfaure/mobs/Wild_Rabbit.lua b/scripts/zones/East_Ronfaure/mobs/Wild_Rabbit.lua index b1f5f1adde0..264a682e3d0 100644 --- a/scripts/zones/East_Ronfaure/mobs/Wild_Rabbit.lua +++ b/scripts/zones/East_Ronfaure/mobs/Wild_Rabbit.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/East_Sarutabaruta/mobs/Bumblebee.lua b/scripts/zones/East_Sarutabaruta/mobs/Bumblebee.lua index cbc72fbeb4a..0aa9c5aa355 100644 --- a/scripts/zones/East_Sarutabaruta/mobs/Bumblebee.lua +++ b/scripts/zones/East_Sarutabaruta/mobs/Bumblebee.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/East_Sarutabaruta/mobs/Tiny_Mandragora.lua b/scripts/zones/East_Sarutabaruta/mobs/Tiny_Mandragora.lua index 3b435f4c77b..dad8ac5b1e2 100644 --- a/scripts/zones/East_Sarutabaruta/mobs/Tiny_Mandragora.lua +++ b/scripts/zones/East_Sarutabaruta/mobs/Tiny_Mandragora.lua @@ -11,6 +11,7 @@ entity.onMobInitialize = function(mob) end entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/North_Gustaberg/mobs/Huge_Hornet.lua b/scripts/zones/North_Gustaberg/mobs/Huge_Hornet.lua index f1fdd07bb4a..05d126f6e64 100644 --- a/scripts/zones/North_Gustaberg/mobs/Huge_Hornet.lua +++ b/scripts/zones/North_Gustaberg/mobs/Huge_Hornet.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/North_Gustaberg/mobs/Tunnel_Worm.lua b/scripts/zones/North_Gustaberg/mobs/Tunnel_Worm.lua index c47b0705e74..b36a014ffc4 100644 --- a/scripts/zones/North_Gustaberg/mobs/Tunnel_Worm.lua +++ b/scripts/zones/North_Gustaberg/mobs/Tunnel_Worm.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/South_Gustaberg/mobs/Huge_Hornet.lua b/scripts/zones/South_Gustaberg/mobs/Huge_Hornet.lua index 2857d3d78f0..a6c026e9f16 100644 --- a/scripts/zones/South_Gustaberg/mobs/Huge_Hornet.lua +++ b/scripts/zones/South_Gustaberg/mobs/Huge_Hornet.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/South_Gustaberg/mobs/Tunnel_Worm.lua b/scripts/zones/South_Gustaberg/mobs/Tunnel_Worm.lua index 6aa4f1c6a54..908f34297eb 100644 --- a/scripts/zones/South_Gustaberg/mobs/Tunnel_Worm.lua +++ b/scripts/zones/South_Gustaberg/mobs/Tunnel_Worm.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/West_Ronfaure/mobs/Tunnel_Worm.lua b/scripts/zones/West_Ronfaure/mobs/Tunnel_Worm.lua index 7845e10447e..e884dc9a743 100644 --- a/scripts/zones/West_Ronfaure/mobs/Tunnel_Worm.lua +++ b/scripts/zones/West_Ronfaure/mobs/Tunnel_Worm.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/West_Ronfaure/mobs/Wild_Rabbit.lua b/scripts/zones/West_Ronfaure/mobs/Wild_Rabbit.lua index 5ae91e5c2ad..b229b196a80 100644 --- a/scripts/zones/West_Ronfaure/mobs/Wild_Rabbit.lua +++ b/scripts/zones/West_Ronfaure/mobs/Wild_Rabbit.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/West_Sarutabaruta/mobs/Bumblebee.lua b/scripts/zones/West_Sarutabaruta/mobs/Bumblebee.lua index c88665902fe..4ae8fc6b892 100644 --- a/scripts/zones/West_Sarutabaruta/mobs/Bumblebee.lua +++ b/scripts/zones/West_Sarutabaruta/mobs/Bumblebee.lua @@ -6,6 +6,7 @@ local entity = {} entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end diff --git a/scripts/zones/West_Sarutabaruta/mobs/Tiny_Mandragora.lua b/scripts/zones/West_Sarutabaruta/mobs/Tiny_Mandragora.lua index 394103ef713..07f589f1bae 100644 --- a/scripts/zones/West_Sarutabaruta/mobs/Tiny_Mandragora.lua +++ b/scripts/zones/West_Sarutabaruta/mobs/Tiny_Mandragora.lua @@ -11,6 +11,7 @@ entity.onMobInitialize = function(mob) end entity.onMobSpawn = function(mob) + mob:setMod(xi.mod.ATT, 1) mob:setMod(xi.mod.EXP_LVL_MOD, -2) -- Subtract 2 levels for /check and exp purposes end From 8dc35237e679ced39ee832581c5365ddf00a4a2a Mon Sep 17 00:00:00 2001 From: Kipling Date: Wed, 8 Jul 2026 16:05:12 -0700 Subject: [PATCH 02/59] Sky Respawn Timer Cleanup --- scripts/zones/Phanauet_Channel/mobs/Vodyanoi.lua | 2 +- scripts/zones/RuAun_Gardens/mobs/Despot.lua | 1 + scripts/zones/RuAun_Gardens/mobs/Groundskeeper.lua | 2 +- scripts/zones/The_Shrine_of_RuAvitau/mobs/Faust.lua | 3 ++- scripts/zones/The_Shrine_of_RuAvitau/mobs/Mother_Globe.lua | 3 ++- scripts/zones/VeLugannon_Palace/mobs/Steam_Cleaner.lua | 4 ++-- scripts/zones/VeLugannon_Palace/mobs/Zipacna.lua | 3 ++- sql/mob_pools.sql | 2 +- 8 files changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/zones/Phanauet_Channel/mobs/Vodyanoi.lua b/scripts/zones/Phanauet_Channel/mobs/Vodyanoi.lua index 3885a0cc882..98bfdaa7496 100644 --- a/scripts/zones/Phanauet_Channel/mobs/Vodyanoi.lua +++ b/scripts/zones/Phanauet_Channel/mobs/Vodyanoi.lua @@ -9,7 +9,7 @@ mixins = { require('scripts/mixins/job_special') } local entity = {} entity.onMobDespawn = function(mob) - mob:setRespawnTime(math.randomInt(43200, 54000)) -- 12 - 15 hours + mob:setRespawnTime(math.randomInt(75600, 86400)) -- 21 to 24 hours. end return entity diff --git a/scripts/zones/RuAun_Gardens/mobs/Despot.lua b/scripts/zones/RuAun_Gardens/mobs/Despot.lua index bcbe5054e17..de8422a2a60 100644 --- a/scripts/zones/RuAun_Gardens/mobs/Despot.lua +++ b/scripts/zones/RuAun_Gardens/mobs/Despot.lua @@ -38,6 +38,7 @@ entity.onMobInitialize = function(mob) mob:setMobMod(xi.mobMod.GIL_MIN, 18000) mob:setMobMod(xi.mobMod.GIL_MAX, 18000) mob:setMobMod(xi.mobMod.MUG_GIL, 3250) + -- TODO: Check Petrify immunity, other Sky NMs seem to have it. mob:addImmunity(xi.immunity.DARK_SLEEP) mob:addImmunity(xi.immunity.ELEGY) mob:addImmunity(xi.immunity.LIGHT_SLEEP) diff --git a/scripts/zones/RuAun_Gardens/mobs/Groundskeeper.lua b/scripts/zones/RuAun_Gardens/mobs/Groundskeeper.lua index 2093574ebb7..be5c2f2a9f4 100644 --- a/scripts/zones/RuAun_Gardens/mobs/Groundskeeper.lua +++ b/scripts/zones/RuAun_Gardens/mobs/Groundskeeper.lua @@ -28,7 +28,7 @@ entity.onMobDespawn = function(mob) local params = {} params.immediate = true - if xi.mob.phOnDespawn(mob, ID.mob.DESPOT, 5, 7200, params) then -- 2 hours + if xi.mob.phOnDespawn(mob, ID.mob.DESPOT, 5, 7200, params) then -- Lottery opens after 2 hours. local zone = mob:getZone() local phId = mob:getID() diff --git a/scripts/zones/The_Shrine_of_RuAvitau/mobs/Faust.lua b/scripts/zones/The_Shrine_of_RuAvitau/mobs/Faust.lua index 5c3c331a630..f8457d671fc 100644 --- a/scripts/zones/The_Shrine_of_RuAvitau/mobs/Faust.lua +++ b/scripts/zones/The_Shrine_of_RuAvitau/mobs/Faust.lua @@ -52,6 +52,7 @@ entity.onMobInitialize = function(mob) mob:addImmunity(xi.immunity.SLOW) mob:addImmunity(xi.immunity.TERROR) mob:addImmunity(xi.immunity.PLAGUE) + mob:addImmunity(xi.immunity.PETRIFY) mob:setMobMod(xi.mobMod.BASE_DAMAGE_MULTIPLIER, 150) end @@ -90,7 +91,7 @@ entity.onMobWeaponSkill = function(mob, target, skill, action) end entity.onMobDespawn = function(mob) - mob:setRespawnTime(math.randomInt(10800, 21600)) -- respawn 3-6 hrs + mob:setRespawnTime(math.randomInt(10800, 21600)) -- 3 to 6 hours. end return entity diff --git a/scripts/zones/The_Shrine_of_RuAvitau/mobs/Mother_Globe.lua b/scripts/zones/The_Shrine_of_RuAvitau/mobs/Mother_Globe.lua index 89ec33c7ab2..be72f62d368 100644 --- a/scripts/zones/The_Shrine_of_RuAvitau/mobs/Mother_Globe.lua +++ b/scripts/zones/The_Shrine_of_RuAvitau/mobs/Mother_Globe.lua @@ -184,6 +184,7 @@ end entity.onMobInitialize = function(mob) mob:setMobMod(xi.mobMod.ADD_EFFECT, 1) + -- TODO: Check Petrify immunity, other Sky NMs seem to have it. mob:addImmunity(xi.immunity.DARK_SLEEP) mob:addImmunity(xi.immunity.LIGHT_SLEEP) mob:addImmunity(xi.immunity.SILENCE) @@ -280,7 +281,7 @@ end entity.onMobDespawn = function(mob) mob:removeListener('MG_SPIKES') - mob:setRespawnTime(math.randomInt(10800, 21600)) -- 3 to 6 hours + mob:setRespawnTime(math.randomInt(10800, 21600)) -- 3 to 6 hours. end return entity diff --git a/scripts/zones/VeLugannon_Palace/mobs/Steam_Cleaner.lua b/scripts/zones/VeLugannon_Palace/mobs/Steam_Cleaner.lua index 32fc52e2e13..305a863d792 100644 --- a/scripts/zones/VeLugannon_Palace/mobs/Steam_Cleaner.lua +++ b/scripts/zones/VeLugannon_Palace/mobs/Steam_Cleaner.lua @@ -7,7 +7,7 @@ local entity = {} entity.onMobInitialize = function(mob) mob:setMobMod(xi.mobMod.ADD_EFFECT, 1) - +-- TODO: Check Petrify immunity, other Sky NMs seem to have it. mob:addImmunity(xi.immunity.DARK_SLEEP) mob:addImmunity(xi.immunity.LIGHT_SLEEP) mob:addImmunity(xi.immunity.SILENCE) @@ -22,7 +22,7 @@ entity.onAdditionalEffect = function(mob, target, damage) end entity.onMobDespawn = function(mob) - SetServerVariable('[POP]SteamCleaner', GetSystemTime() + math.randomInt(7200, 14400)) + SetServerVariable('[POP]SteamCleaner', GetSystemTime() + 7200) -- Lottery opens after 2 hours. end return entity diff --git a/scripts/zones/VeLugannon_Palace/mobs/Zipacna.lua b/scripts/zones/VeLugannon_Palace/mobs/Zipacna.lua index 895865433c4..ec1dc6203d6 100644 --- a/scripts/zones/VeLugannon_Palace/mobs/Zipacna.lua +++ b/scripts/zones/VeLugannon_Palace/mobs/Zipacna.lua @@ -306,6 +306,7 @@ entity.onMobInitialize = function(mob) mob:addImmunity(xi.immunity.LIGHT_SLEEP) mob:addImmunity(xi.immunity.TERROR) mob:addImmunity(xi.immunity.PLAGUE) + mob:addImmunity(xi.immunity.PETRIFY) mob:setMobMod(xi.mobMod.BASE_DAMAGE_MULTIPLIER, 150) end @@ -392,7 +393,7 @@ end entity.onMobDespawn = function(mob) xi.mob.updateNMSpawnPoint(mob) - mob:setRespawnTime(math.randomInt(10800, 14400)) -- respawn 3-4 hrs + mob:setRespawnTime(math.randomInt(10800, 21600)) -- 3 to 6 hours. end return entity diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index 24893f1c099..5bf15c46921 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -4560,7 +4560,7 @@ INSERT INTO `mob_pools` VALUES (4500,'Zhadjaraf','Zhadjaraf',293,0x0500610700000 INSERT INTO `mob_pools` VALUES (4501,'Zhayolm_Apkallu','Zhayolm_Apkallu',171,0x0000BB0600000000000000000000000000000000,2,2,1,480,100,0,0,0,1,0,0,0,298,131,5,0,0,0,0,27,27,1,8); INSERT INTO `mob_pools` VALUES (4502,'Zhuu_Buxu_the_Silent','Zhuu_Buxu_the_Silent',168,0x00004C0200000000000000000000000000000000,13,13,2,240,100,0,1,0,1,2,0,32,0,155,0,0,7,0,0,360,360,1,15); INSERT INTO `mob_pools` VALUES (4503,'Zikko','Zikko',212,0x0000BE0600000000000000000000000000000000,4,4,7,240,100,0,1,1,1,2,0,32,0,157,4,0,1,0,0,166,165,2,13); -INSERT INTO `mob_pools` VALUES (4504,'Zipacna','Zipacna',63,0x0000B00100000000000000000000000000000000,1,1,11,320,100,0,1,0,0,2,0,0,20,129,0,0,0,0,0,135,135,0,17); +INSERT INTO `mob_pools` VALUES (4504,'Zipacna','Zipacna',63,0x0000B00100000000000000000000000000000000,1,1,11,180,100,0,1,0,0,2,0,0,20,129,0,0,0,0,0,135,135,0,17); INSERT INTO `mob_pools` VALUES (4505,'Ziphius','Ziphius',38,0x00005C0100000000000000000000000000000000,1,1,7,240,100,0,0,0,0,2,0,32,5580,153,0,0,0,0,0,197,197,1,27); INSERT INTO `mob_pools` VALUES (4506,'Zircon_Quadav','Zircon_Quadav',150,0x0000950200000000000000000000000000000000,4,4,5,265,100,0,1,0,1,0,0,0,126,131,0,0,21,0,0,202,202,1,15); INSERT INTO `mob_pools` VALUES (4507,'Ziryu','Ziryu',23,0x0000A80100000000000000000000000000000000,4,5,7,240,100,0,1,0,1,16,0,0,1466,133,0,0,9,0,64,258,258,2,14); From acad0e8b44cfbd79ae857d6f23ba6c4bfa5425b5 Mon Sep 17 00:00:00 2001 From: WinterSolstice8 <60417494+wintersolstice8@users.noreply.github.com> Date: Wed, 8 Jul 2026 20:20:01 -0600 Subject: [PATCH 03/59] [lua] Fix Jakaka trigger function accessing nil --- scripts/zones/Attohwa_Chasm/npcs/Jakaka.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/zones/Attohwa_Chasm/npcs/Jakaka.lua b/scripts/zones/Attohwa_Chasm/npcs/Jakaka.lua index 4b236fb1e57..1776af3dfbd 100644 --- a/scripts/zones/Attohwa_Chasm/npcs/Jakaka.lua +++ b/scripts/zones/Attohwa_Chasm/npcs/Jakaka.lua @@ -24,7 +24,7 @@ entity.onTrigger = function(player, npc) if player:hasKeyItem(xi.ki.MIASMA_FILTER) then player:startEvent(11) else - if miasmaFilterCD >= VanadielTime then + if miasmaFilterCD >= VanadielTime() then -- Both Vanadiel time and unix timestamps are based on seconds. Add the difference to the event. player:startEvent(14, miasmaFilterCD) else From 1e11ee9c45be80674eb3c5b12eeb436b2bffe53d Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Wed, 8 Jul 2026 22:02:29 -0400 Subject: [PATCH 04/59] Add Automaton Skills to !capallskills Add automaton skills to !calcallskills --- scripts/commands/capallskills.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/commands/capallskills.lua b/scripts/commands/capallskills.lua index d72765a1656..827f92fc46c 100644 --- a/scripts/commands/capallskills.lua +++ b/scripts/commands/capallskills.lua @@ -13,6 +13,18 @@ commandObj.cmdprops = commandObj.onTrigger = function(player) player:capAllSkills() + + local automatonSkills = + { + xi.skill.AUTOMATON_MELEE, + xi.skill.AUTOMATON_RANGED, + xi.skill.AUTOMATON_MAGIC, + } + + for _, skillId in ipairs(automatonSkills) do + player:setSkillLevel(skillId, 5000) + end + player:printToPlayer('All skills capped!') end From 72d5fbd05c7a335c59057d093fad64b1b0ad6076 Mon Sep 17 00:00:00 2001 From: WinterSolstice8 <60417494+wintersolstice8@users.noreply.github.com> Date: Wed, 8 Jul 2026 21:18:33 -0600 Subject: [PATCH 05/59] [lua] Don't lock Dhalmel Meat when not necessary --- scripts/quests/otherAreas/RQ1_Rycharde_the_Chef.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/quests/otherAreas/RQ1_Rycharde_the_Chef.lua b/scripts/quests/otherAreas/RQ1_Rycharde_the_Chef.lua index a11d79a9224..11af5ea5b7b 100644 --- a/scripts/quests/otherAreas/RQ1_Rycharde_the_Chef.lua +++ b/scripts/quests/otherAreas/RQ1_Rycharde_the_Chef.lua @@ -96,7 +96,7 @@ quest.sections = onTrade = function(player, npc, trade) if npcUtil.tradeHasExactly(trade, { { xi.item.SLICE_OF_DHALMEL_MEAT, 2 } }) then return quest:progressEvent(74) -- Quest completed dialog. - elseif npcUtil.tradeHasExactly(trade, { { xi.item.SLICE_OF_DHALMEL_MEAT, 1 } }) then + elseif trade:hasItemQty(xi.item.SLICE_OF_DHALMEL_MEAT, 1) then return quest:event(73) -- "That's not enough!" dialog. end end, From ccd146cd1a1dd5ca78b3d6a298a88c4b4f762257 Mon Sep 17 00:00:00 2001 From: Corey Sotiropoulos Date: Thu, 9 Jul 2026 03:42:33 +0000 Subject: [PATCH 06/59] Bump constexpr steps limit for clang builds --- src/test/CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index 64af27df749..623d94beea2 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -43,6 +43,14 @@ set(SOURCES test_suite.cpp ) +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT CMAKE_CXX_COMPILER_ID MATCHES "Apple") + set_source_files_properties( + tests/rng_spread_tests.cpp + PROPERTIES + COMPILE_OPTIONS "-fconstexpr-steps=2097152" + ) +endif() + if(UNIX) set(resource "") else() From c410cacf43c81ed02a766d19fcb378c528ec93bc Mon Sep 17 00:00:00 2001 From: Skold177 <113406182+Skold177@users.noreply.github.com> Date: Wed, 8 Jul 2026 11:25:45 -0400 Subject: [PATCH 07/59] Update Grand Wyrms, Add Revilers Helm Refactors Jormungand/Vrtra, also cleans up Tiamat some more after realizing it could be cleaner. --- scripts/items/revilers_helm.lua | 23 +++ scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua | 103 +++++----- .../zones/King_Ranperres_Tomb/mobs/Airi.lua | 12 ++ .../zones/King_Ranperres_Tomb/mobs/Iruci.lua | 12 ++ .../zones/King_Ranperres_Tomb/mobs/Pey.lua | 12 ++ .../zones/King_Ranperres_Tomb/mobs/Vrtra.lua | 97 +++++---- .../Uleguerand_Range/mobs/Jormungand.lua | 187 +++++++++--------- sql/item_usable.sql | 2 +- sql/mob_skills.sql | 4 +- 9 files changed, 268 insertions(+), 184 deletions(-) create mode 100644 scripts/items/revilers_helm.lua create mode 100644 scripts/zones/King_Ranperres_Tomb/mobs/Airi.lua create mode 100644 scripts/zones/King_Ranperres_Tomb/mobs/Iruci.lua create mode 100644 scripts/zones/King_Ranperres_Tomb/mobs/Pey.lua diff --git a/scripts/items/revilers_helm.lua b/scripts/items/revilers_helm.lua new file mode 100644 index 00000000000..f0f3f62b735 --- /dev/null +++ b/scripts/items/revilers_helm.lua @@ -0,0 +1,23 @@ +----------------------------------- +-- ID: 15175 +-- Item: Reviler's Helm +-- Enchantment: Provoke +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemCheck = function(target, item, caster) + if not target:isMob() then + return xi.msg.basic.ITEM_UNABLE_TO_USE + end + + return 0 +end + +itemObject.onItemUse = function(target, user, item, action) + -- Grants the same enmity as Provoke (CE 1, VE 1800) + target:addEnmity(user, 1, 1800) + target:updateClaim(user) +end + +return itemObject diff --git a/scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua b/scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua index 773ba1dec23..27b5fd8f3cd 100644 --- a/scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua +++ b/scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua @@ -65,16 +65,35 @@ entity.spawnPoints = local function enterFlight(mob) mob:setMobSkillAttack(730) mob:addStatusEffect(xi.effect.ALL_MISS, { power = 1, origin = mob, icon = 0 }) + mob:setBehavior(bit.band(mob:getBehavior(), bit.bnot(xi.behavior.NO_TURN))) mob:setAnimationSub(1) mob:setLocalVar('flightTime', GetSystemTime() + 120) - mob:setLocalVar('changeHP', mob:getHP() - 10000) + mob:setLocalVar('changeHP', math.max(0, mob:getHP() - 10000)) end local function exitFlight(mob) mob:useMobAbility(xi.mobSkill.TOUCHDOWN_3) mob:setBehavior(bit.bor(mob:getBehavior(), xi.behavior.NO_TURN)) mob:setLocalVar('flightTime', GetSystemTime() + 120) - mob:setLocalVar('changeHP', mob:getHP() - 10000) + mob:setLocalVar('changeHP', math.max(0, mob:getHP() - 10000)) +end + +local function checkEnrage(mob) + local hpp = mob:getHPP() + + if + hpp <= 25 and + not mob:hasStatusEffect(xi.effect.ATTACK_BOOST) + then + mob:addStatusEffect(xi.effect.ATTACK_BOOST, { power = 75, origin = mob }) + mob:getStatusEffect(xi.effect.ATTACK_BOOST):addEffectFlag(xi.effectFlag.DEATH) + end + + if hpp <= 10 then + mob:setDelay(160) + else + mob:setDelay(210) + end end entity.onMobInitialize = function(mob) @@ -133,7 +152,7 @@ entity.onMobEngage = function(mob, target) end mob:setLocalVar('twohourTime', currentTime + 210) - mob:setLocalVar('changeHP', mob:getHP() - 10000) + mob:setLocalVar('changeHP', math.max(0, mob:getHP() - 10000)) end entity.onMobFight = function(mob, target) @@ -160,72 +179,43 @@ entity.onMobFight = function(mob, target) end end - -- Gains a large attack boost when health is under 25% which cannot be Dispelled. - local hpp = mob:getHPP() - if - hpp <= 25 and - not mob:hasStatusEffect(xi.effect.ATTACK_BOOST) - then - mob:addStatusEffect(xi.effect.ATTACK_BOOST, { power = 75, origin = mob }) - mob:getStatusEffect(xi.effect.ATTACK_BOOST):addEffectFlag(xi.effectFlag.DEATH) - end - - -- Gains a delay reduction (from 210 to 160) when health is under 10% - if hpp <= 10 then - mob:setDelay(160) - else - mob:setDelay(210) - end - - local animationSub = mob:getAnimationSub() + -- Gains a large attack boost under 25% HP and increased attack speed under 10% HP. + checkEnrage(mob) - -- Tiamat wakes from sleep in air + local currentAnimation = mob:getAnimationSub() if - animationSub == 1 and + currentAnimation == 1 and mob:hasStatusEffect(xi.effect.SLEEP_I) then mob:wakeUp() end - -- If Mighty Strikes is active, cannot fly until it ends. + -- No Casting or TP Abilities while Mighty Strikes is active. + local mightyStrikesActive = mob:hasStatusEffect(xi.effect.MIGHTY_STRIKES) + + mob:setMobAbilityEnabled(not mightyStrikesActive) + mob:setMagicCastingEnabled(not mightyStrikesActive) + + -- Cannot change phases while Mighty Strikes is active. if - mob:hasStatusEffect(xi.effect.MIGHTY_STRIKES) or + mightyStrikesActive or xi.combat.behavior.isEntityBusy(mob) then return end - -- Landing / Flying logic local currentTime = GetSystemTime() local flightTime = mob:getLocalVar('flightTime') - local twohourTime = mob:getLocalVar('twohourTime') local changeHP = mob:getLocalVar('changeHP') local currentHP = mob:getHP() if - animationSub == 0 and - currentTime > flightTime or - currentHP < changeHP - then - enterFlight(mob) - - elseif - animationSub == 1 and currentTime > flightTime or currentHP < changeHP then - exitFlight(mob) - - elseif animationSub == 2 then - -- 2-Hour logic. - if currentTime > twohourTime then - mob:useMobAbility(xi.mobSkill.MIGHTY_STRIKES_1) - mob:setLocalVar('twohourTime', currentTime + 210) - - elseif - currentTime > flightTime or - currentHP < changeHP - then + if currentAnimation == 1 then + exitFlight(mob) + else enterFlight(mob) end end @@ -244,11 +234,21 @@ entity.onAdditionalEffect = function(mob, target, damage) return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end +entity.onMobSpellChoose = function(mob, target, spellId) + local spellList = + { + [1] = { xi.magic.spell.FIRAGA_III, target, false, xi.action.type.DAMAGE_TARGET, nil, 0, 100 }, + [2] = { xi.magic.spell.BLAZE_SPIKES, mob, false, xi.action.type.ENHANCING_FORCE_SELF, xi.effect.BLAZE_SPIKES, 0, 100 }, + } + + return xi.combat.behavior.chooseAction(mob, target, nil, spellList) +end + entity.onMobDisengage = function(mob) - -- Reset Tiamat back to the ground on wipe if mob:getAnimationSub() == 1 then - local flightTime = mob:getLocalVar('flightTime') - mob:setLocalVar('flightTime', math.max(flightTime - GetSystemTime(), 1)) -- Get seconds left to fly for next pull + local flightTime = math.max(mob:getLocalVar('flightTime') - GetSystemTime(), 1) + + mob:setLocalVar('flightTime', flightTime) mob:setAnimationSub(0) mob:delStatusEffect(xi.effect.ALL_MISS) mob:setBehavior(bit.bor(mob:getBehavior(), xi.behavior.NO_TURN)) @@ -257,6 +257,9 @@ entity.onMobDisengage = function(mob) else mob:setLocalVar('flightTime', 0) end + + mob:setMobMod(xi.mobMod.NO_MOVE, 0) + mob:setAnimationSub(0) end entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/King_Ranperres_Tomb/mobs/Airi.lua b/scripts/zones/King_Ranperres_Tomb/mobs/Airi.lua new file mode 100644 index 00000000000..baa651176d2 --- /dev/null +++ b/scripts/zones/King_Ranperres_Tomb/mobs/Airi.lua @@ -0,0 +1,12 @@ +----------------------------------- +-- Area: King Ranperres Tomb +-- Mob: Airi +----------------------------------- +---@type TMobEntity +local entity = {} + +entity.onMobSpawn = function(mob) + mob:setSpawnAnimation(xi.spawnAnimation.SPECIAL) +end + +return entity diff --git a/scripts/zones/King_Ranperres_Tomb/mobs/Iruci.lua b/scripts/zones/King_Ranperres_Tomb/mobs/Iruci.lua new file mode 100644 index 00000000000..2a8585c7472 --- /dev/null +++ b/scripts/zones/King_Ranperres_Tomb/mobs/Iruci.lua @@ -0,0 +1,12 @@ +----------------------------------- +-- Area: King Ranperres Tomb +-- Mob: Iruci +----------------------------------- +---@type TMobEntity +local entity = {} + +entity.onMobSpawn = function(mob) + mob:setSpawnAnimation(xi.spawnAnimation.SPECIAL) +end + +return entity diff --git a/scripts/zones/King_Ranperres_Tomb/mobs/Pey.lua b/scripts/zones/King_Ranperres_Tomb/mobs/Pey.lua new file mode 100644 index 00000000000..0be7e49d883 --- /dev/null +++ b/scripts/zones/King_Ranperres_Tomb/mobs/Pey.lua @@ -0,0 +1,12 @@ +----------------------------------- +-- Area: King Ranperres Tomb +-- Mob: Pey +----------------------------------- +---@type TMobEntity +local entity = {} + +entity.onMobSpawn = function(mob) + mob:setSpawnAnimation(xi.spawnAnimation.SPECIAL) +end + +return entity diff --git a/scripts/zones/King_Ranperres_Tomb/mobs/Vrtra.lua b/scripts/zones/King_Ranperres_Tomb/mobs/Vrtra.lua index 22d11e8f8f1..44ec4701f47 100644 --- a/scripts/zones/King_Ranperres_Tomb/mobs/Vrtra.lua +++ b/scripts/zones/King_Ranperres_Tomb/mobs/Vrtra.lua @@ -7,6 +7,28 @@ local entity = {} local ID = zones[xi.zone.KING_RANPERRES_TOMB] +local charmThresholds = +{ + [ 1] = 90, + [ 2] = 85, + [ 3] = 80, + [ 4] = 75, + [ 5] = 70, + [ 6] = 65, + [ 7] = 60, + [ 8] = 55, + [ 9] = 50, + [10] = 45, + [11] = 40, + [12] = 35, + [13] = 30, + [14] = 25, + [15] = 20, + [16] = 15, + [17] = 10, + [18] = 5, +} + local pets = { ID.mob.VRTRA + 1, @@ -20,6 +42,7 @@ local pets = local callPetParams = { inactiveTime = 3000, + ignoreInactive = true, maxSpawns = 1, } @@ -118,44 +141,22 @@ entity.onMobRoam = function(mob) end entity.onMobEngage = function(mob, target) - -- Reset the onMobFight variables - mob:setLocalVar('spawnTime', 0) - mob:setLocalVar('twohourTime', 0) -end - -entity.onMobFight = function(mob, target) - local spawnTime = mob:getLocalVar('spawnTime') - local twohourTime = mob:getLocalVar('twohourTime') - local fifteenBlock = mob:getBattleTime() / 15 - - if twohourTime == 0 then - twohourTime = math.randomInt(4, 6) - mob:setLocalVar('twohourTime', twohourTime) + local currentTime = GetSystemTime() + local hpPercent = mob:getHPP() + local charmsLeft = 0 + + -- Amount of charms remaining set on engage, to reset properly on wipe. + for _, threshold in ipairs(charmThresholds) do + if hpPercent >= threshold then + charmsLeft = charmsLeft + 1 + end end - if spawnTime == 0 then - spawnTime = math.randomInt(3, 5) - mob:setLocalVar('spawnTime', spawnTime) - end - - if - fifteenBlock > twohourTime and - mob:canUseAbilities() - then - mob:useMobAbility(710) - mob:setLocalVar('skill_tp', mob:getTP()) -- 2 hr shouldn't wipe TP - mob:setLocalVar('twohourTime', fifteenBlock + math.randomInt(4, 6)) - - -- call the first pet that is not spawned, will wait for actions to finish - elseif - fifteenBlock > spawnTime and - xi.mob.callPets(mob, utils.shuffle(pets), callPetParams) - then - spawnTime = math.randomInt(3, 5) - mob:setLocalVar('spawnTime', fifteenBlock + spawnTime) - end + mob:setLocalVar('charmsLeft', charmsLeft) + mob:setLocalVar('petTime', currentTime + math.randomInt(3, 5) * 15) +end - -- Vrtra draws in if you attempt to leave the room +entity.onMobFight = function(mob, target) local drawInTable = { conditions = @@ -165,19 +166,33 @@ entity.onMobFight = function(mob, target) position = mob:getPos(), wait = 3, } + if drawInTable.conditions[1] then mob:setMobMod(xi.mobMod.NO_MOVE, 1) utils.drawIn(target, drawInTable) else mob:setMobMod(xi.mobMod.NO_MOVE, 0) end -end -entity.onMobWeaponSkill = function(mob, target, skill, action) - -- Don't lose TP from charm 2hr - if skill:getID() == 710 then - mob:addTP(mob:getLocalVar('skill_tp')) - mob:setLocalVar('skill_tp', 0) + local currentTime = GetSystemTime() + + if + currentTime > mob:getLocalVar('petTime') and + xi.mob.callPets(mob, utils.shuffle(pets), callPetParams) + then + mob:setLocalVar('petTime', currentTime + math.randomInt(3, 5) * 15) + end + + local charmsLeft = mob:getLocalVar('charmsLeft') + local charmIndex = #charmThresholds - charmsLeft + 1 + + if + charmsLeft > 0 and + mob:getHPP() <= charmThresholds[charmIndex] and + not xi.combat.behavior.isEntityBusy(mob) + then + mob:useMobAbility(xi.mobSkill.CHARM) + mob:setLocalVar('charmsLeft', charmsLeft - 1) end end diff --git a/scripts/zones/Uleguerand_Range/mobs/Jormungand.lua b/scripts/zones/Uleguerand_Range/mobs/Jormungand.lua index 99d13618d3d..11dd912be05 100644 --- a/scripts/zones/Uleguerand_Range/mobs/Jormungand.lua +++ b/scripts/zones/Uleguerand_Range/mobs/Jormungand.lua @@ -60,11 +60,21 @@ entity.spawnPoints = } local function enterFlight(mob) - mob:setAnimationSub(1) - mob:addStatusEffect(xi.effect.ALL_MISS, { power = 1, origin = mob, icon = 0 }) mob:setMobSkillAttack(732) + mob:addStatusEffect(xi.effect.ALL_MISS, { power = 1, origin = mob, icon = 0 }) + mob:setBehavior(bit.band(mob:getBehavior(), bit.bnot(xi.behavior.NO_TURN))) mob:setLocalVar('flightTime', GetSystemTime() + 30) - mob:setLocalVar('changeHP', mob:getHP() - 6000) + mob:setLocalVar('changeHP', math.max(0, mob:getHP() - 6000)) + mob:setAnimationSub(1) +end + +local function exitFlight(mob) + mob:setMobSkillAttack(0) + mob:delStatusEffect(xi.effect.ALL_MISS) + mob:setBehavior(bit.bor(mob:getBehavior(), xi.behavior.NO_TURN)) + mob:setLocalVar('flightTime', GetSystemTime() + 60) + mob:setLocalVar('changeHP', math.max(0, mob:getHP() - 6000)) + mob:useMobAbility(xi.mobSkill.TOUCHDOWN_4) end entity.onMobInitialize = function(mob) @@ -112,65 +122,21 @@ entity.onMobSpawn = function(mob) end entity.onMobEngage = function(mob, target) - local flightTime = mob:getLocalVar('flightTime') + local currentTime = GetSystemTime() + local flightTime = mob:getLocalVar('flightTime') - -- Set flight time to two min if fresh spawn if flightTime == 0 then - mob:setLocalVar('flightTime', GetSystemTime() + 30) - -- Otherwise, set how many seconds left to fly from last pull + mob:setLocalVar('flightTime', currentTime + 30) else - mob:setLocalVar('flightTime', GetSystemTime() + flightTime) + mob:setLocalVar('flightTime', currentTime + flightTime) end - mob:setLocalVar('twohourTime', GetSystemTime() + 210) - mob:setLocalVar('changeHP', mob:getHP() - 6000) + mob:setLocalVar('twohourTime', currentTime + 210) + mob:setLocalVar('changeHP', math.max(0, mob:getHP() - 6000)) end entity.onMobFight = function(mob, target) - -- Animation (Ground or flight mode) logic. - if - not mob:hasStatusEffect(xi.effect.BLOOD_WEAPON) and - not xi.combat.behavior.isEntityBusy(mob) - then - local flightTime = mob:getLocalVar('flightTime') - local twohourTime = mob:getLocalVar('twohourTime') - local changeHP = mob:getLocalVar('changeHP') - local animation = mob:getAnimationSub() - - -- Initial grounded mode. - if - animation == 0 and - (GetSystemTime() > flightTime and mob:getHP() < changeHP) - then - enterFlight(mob) - - -- Flight mode. - elseif - animation == 1 and - (GetSystemTime() > flightTime and mob:getHP() < changeHP) and - mob:checkDistance(target) <= 6 -- This 2 checks are a hack until we can handle skills targeting a position and not an entity. - then - mob:useMobAbility(1292) -- Touchdown: This ability also handles animation change to 2. - mob:setLocalVar('flightTime', GetSystemTime() + 60) - mob:setLocalVar('changeHP', mob:getHP() - 6000) - - -- Subsequent grounded mode. - elseif animation == 2 then - -- 2-Hour logic. - if GetSystemTime() > twohourTime then - mob:useMobAbility(695) -- Blood Weapon - mob:setLocalVar('twohourTime', GetSystemTime() + 300) - - elseif - GetSystemTime() > flightTime or - mob:getHP() < changeHP - then - enterFlight(mob) - end - end - end - - -- Jorm draws in from set boundaries leaving her spawn area + -- Draw in, prevents Jormungand from leaving the spawn area. local drawInTable = { conditions = @@ -192,54 +158,94 @@ entity.onMobFight = function(mob, target) end end - -- Do not use mobskills or magic during 2hr - if mob:hasStatusEffect(xi.effect.BLOOD_WEAPON) then - mob:setMobAbilityEnabled(false) - mob:setMagicCastingEnabled(false) - else - mob:setMobAbilityEnabled(true) - mob:setMagicCastingEnabled(true) + local currentAnimation = mob:getAnimationSub() + + -- Wakes up if slept during air phase. + if + currentAnimation == 1 and + mob:hasStatusEffect(xi.effect.SLEEP_I) + then + mob:wakeUp() end -end -entity.onMobMobskillChoose = function(mob, target, skillId) - if mob:getAnimationSub() == 1 then - mob:setLocalVar('skill_tp', mob:getTP()) + -- No Casting or TP Abilities during Blood Weapon. + local bloodWeaponActive = mob:hasStatusEffect(xi.effect.BLOOD_WEAPON) + + mob:setMobAbilityEnabled(not bloodWeaponActive) + mob:setMagicCastingEnabled(not bloodWeaponActive) + + -- Cannot change phases while Blood Weapon is active. + if + bloodWeaponActive or + xi.combat.behavior.isEntityBusy(mob) + then + return + end + + local currentTime = GetSystemTime() + local currentHP = mob:getHP() + + if + currentAnimation == 2 and + currentTime > mob:getLocalVar('twohourTime') + then + mob:useMobAbility(xi.mobSkill.BLOOD_WEAPON_1) + mob:setLocalVar('twohourTime', currentTime + 300) + return + end + + if + currentTime > mob:getLocalVar('flightTime') or + currentHP < mob:getLocalVar('changeHP') + then + if currentAnimation == 1 then + exitFlight(mob) + else + enterFlight(mob) + end end end entity.onMobWeaponSkill = function(mob, target, skill, action) - -- Don't lose TP from autos during flight - if skill:getID() == 1288 then - mob:addTP(64) -- Needs to gain TP from flight auto attacks - mob:setLocalVar('skill_tp', 0) - elseif skill:getID() == 1292 then -- Don't lose TP from Touchdown - mob:addTP(mob:getLocalVar('skill_tp')) - mob:setLocalVar('skill_tp', 0) + if + mob:getHPP() > 25 or + mob:getAnimationSub() == 1 or + skill:getID() ~= xi.mobSkill.HORRID_ROAR_4 + then + return end - -- Below 25% Jorm can Horrid Roar 3x + mob:setMagicCastingEnabled(false) + mob:setLocalVar('isBusy', 1) local roarCount = mob:getLocalVar('roarCount') - if - mob:getHPP() <= 25 and - skill:getID() == 1296 and -- Check for Horrid Roar - (mob:getAnimationSub() == 0 or mob:getAnimationSub() == 2) -- If it flies during horrid roar cancel the remainders - then - if roarCount < 2 then - if not target:isBehind(mob, 96) then - mob:useMobAbility(1286) -- Use Horrid Roar 3 - else - mob:useMobAbility(1290) -- Use Spike Flail - end - - mob:setLocalVar('roarCount', roarCount + 1) + if roarCount < 2 then + if not target:isBehind(mob, 96) then + mob:useMobAbility(xi.mobSkill.HORRID_ROAR_4) else - mob:setLocalVar('roarCount', 0) -- Need to reset once 3x roars are done + mob:useMobAbility(xi.mobSkill.SPIKE_FLAIL_4) end + + mob:setLocalVar('roarCount', roarCount + 1) + else + mob:setMagicCastingEnabled(true) + mob:setLocalVar('isBusy', 0) + mob:setLocalVar('roarCount', 0) end end +entity.onMobSpellChoose = function(mob, target, spellId) + local spellList = + { + [1] = { xi.magic.spell.BLIZZAGA_III, target, false, xi.action.type.DAMAGE_TARGET, nil, 0, 100 }, + [2] = { xi.magic.spell.PARALYGA, target, false, xi.action.type.DAMAGE_TARGET, nil, 0, 100 }, + [3] = { xi.magic.spell.BINDGA, target, false, xi.action.type.DAMAGE_TARGET, nil, 0, 100 }, + [4] = { xi.magic.spell.ICE_SPIKES, mob, false, xi.action.type.ENHANCING_FORCE_SELF, xi.effect.ICE_SPIKES, 0, 100 }, + } + + return xi.combat.behavior.chooseAction(mob, target, nil, spellList) +end + entity.onAdditionalEffect = function(mob, target, damage) local pTable = { @@ -254,10 +260,10 @@ entity.onAdditionalEffect = function(mob, target, damage) end entity.onMobDisengage = function(mob) - -- Reset Jorm back to the ground on wipe if mob:getAnimationSub() == 1 then - local flightTime = mob:getLocalVar('flightTime') - mob:setLocalVar('flightTime', flightTime - GetSystemTime()) -- Get seconds left to fly for next pull + local flightTime = math.max(mob:getLocalVar('flightTime') - GetSystemTime(), 1) + + mob:setLocalVar('flightTime', flightTime) mob:setAnimationSub(0) mob:delStatusEffect(xi.effect.ALL_MISS) mob:setBehavior(bit.bor(mob:getBehavior(), xi.behavior.NO_TURN)) @@ -266,6 +272,7 @@ entity.onMobDisengage = function(mob) end mob:setMobMod(xi.mobMod.NO_MOVE, 0) + mob:setAnimationSub(0) end entity.onMobDeath = function(mob, player, optParams) diff --git a/sql/item_usable.sql b/sql/item_usable.sql index ab1d0890ec8..8a4fa74381d 100644 --- a/sql/item_usable.sql +++ b/sql/item_usable.sql @@ -2675,7 +2675,7 @@ INSERT INTO `item_usable` VALUES (15018,'ritterhentzes',1,3,28,0,50,30,300,0); INSERT INTO `item_usable` VALUES (15071,'spartan_hoplon',1,6,0,0,50,30,600,0); INSERT INTO `item_usable` VALUES (15162,'mist_crown',1,1,24,0,5,30,600,0); INSERT INTO `item_usable` VALUES (15170,'blink_band',1,12,24,0,50,30,20,0); -INSERT INTO `item_usable` VALUES (15175,'revilers_helm',4,1,0,0,100,30,300,0); +INSERT INTO `item_usable` VALUES (15175,'revilers_helm',4,1,86,0,100,30,300,0); INSERT INTO `item_usable` VALUES (15179,'dream_hat_+1',1,2,0,0,1,30,86400,0); INSERT INTO `item_usable` VALUES (15182,'zoolater_hat',1,3,33,0,50,30,1800,0); INSERT INTO `item_usable` VALUES (15194,'maats_cap',1,8,79,0,1,30,86400,0); diff --git a/sql/mob_skills.sql b/sql/mob_skills.sql index 674eb589a13..5d3a0d9deeb 100644 --- a/sql/mob_skills.sql +++ b/sql/mob_skills.sql @@ -738,7 +738,7 @@ INSERT INTO `mob_skills` VALUES (696,438,'soul_voice',0,0.0,7.0,2000,0,1,4,0,0,0 INSERT INTO `mob_skills` VALUES (707,451,'sentinel',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (708,452,'last_resort',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (709,439,'souleater',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (710,438,'charm',0,0.0,18.0,2000,0,4,4,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (710,438,'charm',0,0.0,18.0,2000,0,4,@SKILLFLAG_NO_TP_COST,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (711,455,'eagle_eye_shot',0,0.0,7.0,2000,1500,4,2,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (712,456,'eagle_eye_shot',0,0.0,7.0,2000,1500,4,2,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (713,457,'sharpshot',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); @@ -1365,7 +1365,7 @@ INSERT INTO `mob_skills` VALUES (1333,152,'contagion_transfer',0,0.0,7.0,2000,15 INSERT INTO `mob_skills` VALUES (1334,154,'contamination',1,0.0,16.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1335,151,'toxic_pick',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1336,289,'frenzied_rage',0,0.0,7.0,2000,1500,1,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (1337,438,'charm',0,0.0,18.0,2000,0,4,4,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (1337,438,'charm',0,0.0,18.0,2000,0,4,@SKILLFLAG_NO_TP_COST,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1338,234,'infernal_pestilence',4,0.0,10.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1339,220,'bane',1,0.0,15.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (1340,17,'crossthrash',4,0.0,14.0,2000,1500,4,0,0,5,0,0,0); From 2f779f9a01a255eb181554367a9b3bb5de16d0f1 Mon Sep 17 00:00:00 2001 From: sruon Date: Wed, 8 Jul 2026 23:57:56 -0600 Subject: [PATCH 08/59] Bump client version July 2026 VU --- settings/default/login.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/default/login.lua b/settings/default/login.lua index 5ea61a7e99e..128ed76c3f5 100644 --- a/settings/default/login.lua +++ b/settings/default/login.lua @@ -12,7 +12,7 @@ xi.settings = xi.settings or {} xi.settings.login = { -- Expected Client version (wrong version cannot log in) - CLIENT_VER = '30260604_0', + CLIENT_VER = '30260703_1', -- 0 - disabled (every version allowed) -- 1 - enabled - strict (only exact CLIENT_VER allowed) From 4d311b479d0f61dea042591d9cb053ad697c5ca3 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 00:08:22 -0600 Subject: [PATCH 09/59] [July 2026 VU] Disable level correction in Stellar Fulcrum --- scripts/data/level_correction.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/data/level_correction.lua b/scripts/data/level_correction.lua index 59b993ed602..726b4c4f2ed 100644 --- a/scripts/data/level_correction.lua +++ b/scripts/data/level_correction.lua @@ -175,7 +175,6 @@ set{ xi.zone.SEA_SERPENT_GROTTO, xi.zone.VELUGANNON_PALACE, xi.zone.THE_SHRINE_OF_RUAVITAU, - xi.zone.STELLAR_FULCRUM, xi.zone.LALOFF_AMPHITHEATER, xi.zone.THE_CELESTIAL_NEXUS, xi.zone.WALK_OF_ECHOES, From 249ae3830fae7b5cb2aa70b33715e7ba811193d6 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 00:08:46 -0600 Subject: [PATCH 10/59] [July 2026 VU] String shifts --- scripts/zones/Northern_San_dOria/IDs.lua | 14 +++++++------- scripts/zones/Phanauet_Channel/IDs.lua | 2 +- scripts/zones/Port_Bastok/IDs.lua | 2 +- scripts/zones/Port_Windurst/IDs.lua | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/scripts/zones/Northern_San_dOria/IDs.lua b/scripts/zones/Northern_San_dOria/IDs.lua index 0a8b281d5b5..f0dde24bbf8 100644 --- a/scripts/zones/Northern_San_dOria/IDs.lua +++ b/scripts/zones/Northern_San_dOria/IDs.lua @@ -130,13 +130,13 @@ zones[xi.zone.NORTHERN_SAN_DORIA] = FRAGMENT_FAR_TOO_SMALL = 18144, -- You obtain . However, it is far too small to house an adequate amount of energy. Alone, it serves no purpose. FRAGMENTS_MELD = 18145, -- The tiny fragments of Lilisette's memory meld together to form ! RETRIEVE_DIALOG_ID = 18180, -- You retrieve from the porter moogle's care. - COMMON_SENSE_SURVIVAL = 18526, -- It appears that you have arrived at a new survival guide provided by the Adventurers' Mutual Aid Network. Common sense dictates that you should now be able to teleport here from similar tomes throughout the world. - MAP_MARKER_TUTORIAL = 18648, -- Selecting Map from the main menu opens the map of the area in which you currently reside. Select Markers and press the right arrow key to see all the markers placed on your map. - LINK_CONCIERGE_GOODBYE = 19288, -- It was my pleasure to meet with you this fine day. May you encounter many friendly faces throughout your travels. - LINK_CONCIERGE_ONE_PER_DAY = 19292, -- In the interest of fairness, I am unable to distribute multiple linkpearls to someone on the same day. Please come back tomorrow. - LINK_CONCIERGE_REGISTERED = 19349, -- Your registration is officially complete. - LINK_CONCIERGE_REGISTERED_2 = 19350, -- May your journeys lead you to many as-yet-unmet friends, and may the bonds you forge last a lifetime. - LINK_CONCIERGE_LS_TAKEN = 19351, -- Another member of that linkshell currently has an active registration. Please wait until that registration expires and try again. + COMMON_SENSE_SURVIVAL = 18529, -- It appears that you have arrived at a new survival guide provided by the Adventurers' Mutual Aid Network. Common sense dictates that you should now be able to teleport here from similar tomes throughout the world. + MAP_MARKER_TUTORIAL = 18651, -- Selecting Map from the main menu opens the map of the area in which you currently reside. Select Markers and press the right arrow key to see all the markers placed on your map. + LINK_CONCIERGE_GOODBYE = 19291, -- It was my pleasure to meet with you this fine day. May you encounter many friendly faces throughout your travels. + LINK_CONCIERGE_ONE_PER_DAY = 19295, -- In the interest of fairness, I am unable to distribute multiple linkpearls to someone on the same day. Please come back tomorrow. + LINK_CONCIERGE_REGISTERED = 19352, -- Your registration is officially complete. + LINK_CONCIERGE_REGISTERED_2 = 19353, -- May your journeys lead you to many as-yet-unmet friends, and may the bonds you forge last a lifetime. + LINK_CONCIERGE_LS_TAKEN = 19354, -- Another member of that linkshell currently has an active registration. Please wait until that registration expires and try again. }, mob = { diff --git a/scripts/zones/Phanauet_Channel/IDs.lua b/scripts/zones/Phanauet_Channel/IDs.lua index 8b9d1d84815..00e0cea10c3 100644 --- a/scripts/zones/Phanauet_Channel/IDs.lua +++ b/scripts/zones/Phanauet_Channel/IDs.lua @@ -20,7 +20,7 @@ zones[xi.zone.PHANAUET_CHANNEL] = FISHING_MESSAGE_OFFSET = 7241, -- You can't fish here. TRAVEL_ANY_FASTER = 7386, -- Cannot this vessel travel any faster? At my age, every minute counts! ARE_WE_THERE_YET = 7387, -- Are we there yet? - DREDVODD_SPAWN = 7417, -- O-o-o-o.... + DREDVODD_SPAWN = 7417, -- O-o-o-o... O-o-o-o... O-o-o...Orc!!! RICHE_DAVOI_WATERFALL = 7430, -- ...Davoi...waterfall... }, mob = diff --git a/scripts/zones/Port_Bastok/IDs.lua b/scripts/zones/Port_Bastok/IDs.lua index ae8ddbcf2a7..07e5f341e98 100644 --- a/scripts/zones/Port_Bastok/IDs.lua +++ b/scripts/zones/Port_Bastok/IDs.lua @@ -87,7 +87,7 @@ zones[xi.zone.PORT_BASTOK] = OBTAINED_GUILD_POINTS = 12713, -- Obtained: guild points. OBTAINED_NUM_KEYITEMS = 13107, -- Obtained key item: ! NOT_ACQUAINTED = 13109, -- I'm sorry, but I don't believe we're acquainted. Please leave me be. - UNABLE_RACE_CHANGE = 14212, -- You were unable to use the specified appearance for your character. + UNABLE_RACE_CHANGE = 14215, -- You were unable to use the specified appearance for your character. }, mob = { diff --git a/scripts/zones/Port_Windurst/IDs.lua b/scripts/zones/Port_Windurst/IDs.lua index 3369ca4c132..2b76bf3d8f9 100644 --- a/scripts/zones/Port_Windurst/IDs.lua +++ b/scripts/zones/Port_Windurst/IDs.lua @@ -74,7 +74,7 @@ zones[xi.zone.PORT_WINDURST] = RETRIEVE_DIALOG_ID = 15938, -- You retrieve from the porter moogle's care. OBTAINED_NUM_KEYITEMS = 15980, -- Obtained key item: ! NOT_ACQUAINTED = 15982, -- I'm sorry, but I don't believe we're acquainted. Please leave me be. - COMMON_SENSE_SURVIVAL = 16352, -- It appears that you have arrived at a new survival guide provided by the Adventurers' Mutual Aid Network. Common sense dictates that you should now be able to teleport here from similar tomes throughout the world. + COMMON_SENSE_SURVIVAL = 16355, -- It appears that you have arrived at a new survival guide provided by the Adventurers' Mutual Aid Network. Common sense dictates that you should now be able to teleport here from similar tomes throughout the world. }, mob = { From b4f0d85a6416122fe9273b9cd109227706e891b1 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 00:15:20 -0600 Subject: [PATCH 11/59] [July 2026 VU] New items Dark Amood gained MysteryBox flag --- sql/item_basic.sql | 11 ++++++++++- sql/item_equipment.sql | 9 +++++++++ sql/item_weapon.sql | 6 ++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/sql/item_basic.sql b/sql/item_basic.sql index cd92bbde71d..9ab3b3d9f20 100644 --- a/sql/item_basic.sql +++ b/sql/item_basic.sql @@ -16178,7 +16178,7 @@ INSERT INTO `item_basic` VALUES (18485,0,'imperial_bhuj','imperial_bhuj','イン INSERT INTO `item_basic` VALUES (18486,0,'wardancer','wardancer','ウォーダンサー',@WEAPON_TYPE,1,@FLAG_MYSTERY_BOX | @FLAG_CANEQUIP,@GREATAXE,9517); INSERT INTO `item_basic` VALUES (18487,0,'eriks_axe','eriks_axe','エイリークアクス',@WEAPON_TYPE,1,@FLAG_MYSTERY_BOX | @FLAG_CAN_SEND_ACCT | @FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (18488,0,'assailants_axe','assailants_axe','アサイラントアクス',@WEAPON_TYPE,1,@FLAG_MYSTERY_BOX | @FLAG_INSCRIBABLE | @FLAG_CANTRADENPC | @FLAG_CANEQUIP,@GREATAXE,225); -INSERT INTO `item_basic` VALUES (18489,0,'dark_amood','dark_amood','ダークアムード',@WEAPON_TYPE,1,@FLAG_INSCRIBABLE | @FLAG_CANEQUIP,@GREATAXE,9157); +INSERT INTO `item_basic` VALUES (18489,0,'dark_amood','dark_amood','ダークアムード',@WEAPON_TYPE,1,@FLAG_MYSTERY_BOX | @FLAG_INSCRIBABLE | @FLAG_CANEQUIP,@GREATAXE,9157); INSERT INTO `item_basic` VALUES (18490,0,'dark_amood_+1','dark_amood_+1','ダークアムード+1',@WEAPON_TYPE,1,@FLAG_INSCRIBABLE | @FLAG_CANEQUIP,@GREATAXE,11446); INSERT INTO `item_basic` VALUES (18491,0,'perdu_voulge','perdu_voulge','ペルデュヴォウジェ',@WEAPON_TYPE,1,@FLAG_CAN_SEND_ACCT | @FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (18492,0,'sturdy_axe','sturdy_axe','魔神の斧',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); @@ -18622,6 +18622,7 @@ INSERT INTO `item_basic` VALUES (21539,0,'dathaba_claws','dathaba_claws','ダサ INSERT INTO `item_basic` VALUES (21540,0,'dragon_fangs','dragon_fangs','ドラゴンファング',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21541,0,'premium_hearts','premium_hearts','プレミアムハート',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21542,0,'ja_ja_mace','ja_ja_mace','ジャジャメイス',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); +INSERT INTO `item_basic` VALUES (21543,0,'ryofu_uchiwa','ryofu_uchiwa','涼風団扇',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21544,0,'skia_knuckles','skia_knuckles','五闇の鉄拳',@WEAPON_TYPE,1,@FLAG_MYSTERY_BOX | @FLAG_INSCRIBABLE | @FLAG_CANEQUIP,@NONE,0); -- TODO: Verify AH category, Verify NPC sale price INSERT INTO `item_basic` VALUES (21545,0,'arctus_knuckles','arctus_knuckles','冥闇の鉄拳',@WEAPON_TYPE,1,@FLAG_INSCRIBABLE | @FLAG_CANEQUIP,@NONE,0); -- TODO: Verify AH category, Verify NPC sale price INSERT INTO `item_basic` VALUES (21546,0,'telognophos_knuckles','telognophos_knu.','極闇の鉄拳',@WEAPON_TYPE,1,@FLAG_INSCRIBABLE | @FLAG_CANEQUIP,@NONE,0); -- TODO: Verify AH category, Verify NPC sale price @@ -18674,6 +18675,7 @@ INSERT INTO `item_basic` VALUES (21596,0,'telognophos_knife','telognophos_knife' INSERT INTO `item_basic` VALUES (21597,0,'auge_knife','auge_knife','アウゲーナイフ',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21598,0,'daduchos_knife','daduchos_knife','ダデュコナイフ',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21599,0,'telopanos_knife','telopanos_knife','テロパノナイフ',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); +INSERT INTO `item_basic` VALUES (21600,0,'prophetic_knife','prophetic_knife','プロフェテクナイフ',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21602,0,'onion_sword_iii','onion_sword_iii','真オニオンソード',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21603,0,'save_the_queen_iii','save_the_queen_iii','真セイブザクイーン',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21604,0,'arasy_sword','arasy_sword','アラシソード',@WEAPON_TYPE,1,@FLAG_MYSTERY_BOX | @FLAG_INSCRIBABLE | @FLAG_CANEQUIP,@SWORD,0); @@ -18804,6 +18806,7 @@ INSERT INTO `item_basic` VALUES (21735,0,'telognophos_axe','telognophos_axe',' INSERT INTO `item_basic` VALUES (21736,0,'auge_axe','auge_axe','アウゲーアクス',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21737,0,'daduchos_axe','daduchos_axe','ダデュコアクス',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21738,0,'telopanos_axe','telopanos_axe','テロパノアクス',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); +INSERT INTO `item_basic` VALUES (21739,0,'prophetic_axe','prophetic_axe','プロフェテクアクス',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21741,0,'demonic_axe','demonic_axe','魔人の斧',@WEAPON_TYPE,1,@FLAG_CAN_SEND_ACCT | @FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21742,0,'aern_axe','aern_axe','アーンアクス',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (21743,0,'aern_axe_ii','aern_axe_ii','アーンアクスII',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); @@ -19213,6 +19216,8 @@ INSERT INTO `item_basic` VALUES (22185,0,'telognophos_saber','telognophos_saber' INSERT INTO `item_basic` VALUES (22186,0,'auge_saber','auge_saber','アウゲーセイバー',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (22187,0,'daduchos_saber','daduchos_saber','ダデュコセイバー',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (22188,0,'telopanos_saber','telopanos_saber','テロパノセイバー',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); +INSERT INTO `item_basic` VALUES (22189,0,'prophetic_sword','prophetic_sword','プロフェテクソード',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); +INSERT INTO `item_basic` VALUES (22190,0,'prophetic_club','prophetic_club','プロフェテククラブ',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (22194,0,'dathaba_staff','dathaba_staff','ダサバスタッフ',@WEAPON_TYPE,1,@FLAG_CAN_SEND_ACCT | @FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (22195,0,'flanged_grip','flanged_grip','フランジドグリップ',@WEAPON_TYPE,1,@FLAG_MYSTERY_BOX | @FLAG_CAN_SEND_ACCT | @FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (22196,0,'alber_strap','alber_strap','アルバーストラップ',@WEAPON_TYPE,1,@FLAG_CAN_SEND_ACCT | @FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); @@ -19316,6 +19321,7 @@ INSERT INTO `item_basic` VALUES (22307,0,'loughnashade','loughnashade','ラッ INSERT INTO `item_basic` VALUES (22308,0,'bayeux_bullet','bayeux_bullet','ベヨーブレット',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (22309,0,'bayeux_arrow','bayeux_arrow','ベヨーアロー',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (22310,0,'hoxne_ampulla','hoxne_ampulla','ホクスニアムプラ',@WEAPON_TYPE,1,@FLAG_MYSTERY_BOX | @FLAG_CANTRADENPC | @FLAG_CANEQUIP | @FLAG_RARE,@NONE,0); -- TODO: Verify AH category, Verify NPC sale price +INSERT INTO `item_basic` VALUES (22311,0,'prophetica','prophetica','プロフェテカ',@WEAPON_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (23040,0,'pummelers_mask_+2','pummelers_mask_+2','PMマスク+2',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (23041,0,'anchorites_crown_+2','anch._crown_+2','ANクラウン+2',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (23042,0,'theophany_cap_+2','theophany_cap_+2','TEキャップ+2',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); @@ -20560,6 +20566,9 @@ INSERT INTO `item_basic` VALUES (24301,0,'wn_clomps_+1','wn_clomps_+1','WN INSERT INTO `item_basic` VALUES (24302,0,'sv_gaiters_+1','sv_gaiters_+1','SVゲートル+1',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (24303,0,'el_sandals_+1','el_sandals_+1','ELサンダル+1',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (24304,0,'azimuth_turban','azimuth_turban','アズィマターバン',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); +INSERT INTO `item_basic` VALUES (24305,0,'reciente_coselete','reciente_coselete','レシエンコセレーテ',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); +INSERT INTO `item_basic` VALUES (24306,0,'mirce_wardecors','mirce_wardecors','ミルセワルドコル',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); +INSERT INTO `item_basic` VALUES (24307,0,'noble_redingote','noble_redingote','ノーブルルダンゴト',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (25414,0,'elite_royal_collar','elite_royal_collar','上級近衛騎士カラー',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (25415,0,'republican_platinum_medal','rep._plat._medal','共和プラチナ章',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); INSERT INTO `item_basic` VALUES (25416,0,'sibyl_scarf','sibyl_scarf','シビルスカーフ',@EQUIPMENT_TYPE,1,@FLAG_NOAUCTION | @FLAG_CANEQUIP | @FLAG_NOSALE | @FLAG_NODELIVERY | @FLAG_EX | @FLAG_RARE,@NONE,0); diff --git a/sql/item_equipment.sql b/sql/item_equipment.sql index 8c7d18e4261..d40ada46a2c 100644 --- a/sql/item_equipment.sql +++ b/sql/item_equipment.sql @@ -10654,6 +10654,7 @@ INSERT INTO `item_equipment` VALUES (21539,'dathaba_claws',99,119,135555,0,0,0,1 INSERT INTO `item_equipment` VALUES (21540,'dragon_fangs',99,119,131074,0,0,0,1,0,0,0); -- TODO: Not implemented, verify model INSERT INTO `item_equipment` VALUES (21541,'premium_hearts',99,119,131074,0,0,0,1,0,0,0); -- TODO: Not implemented, verify model INSERT INTO `item_equipment` VALUES (21542,'ja_ja_mace',1,0,4194303,0,0,0,3,0,0,0); -- TODO: MId +INSERT INTO `item_equipment` VALUES (21543,'ryofu_uchiwa',1,0,4194303,0,0,0,3,0,0,0); -- TODO: MId INSERT INTO `item_equipment` VALUES (21544,'skia_knuckles',99,0,0,0,0,0,1,0,0,4); -- TODO: MId INSERT INTO `item_equipment` VALUES (21545,'arctus_knuckles',99,0,0,0,0,0,1,0,0,4); -- TODO: MId INSERT INTO `item_equipment` VALUES (21546,'telognophos_knuckles',99,0,0,0,0,0,1,0,0,5); -- TODO: MId @@ -10706,6 +10707,7 @@ INSERT INTO `item_equipment` VALUES (21596,'telognophos_knife',99,0,0,0,0,0,3,0, INSERT INTO `item_equipment` VALUES (21597,'auge_knife',99,119,262704,0,0,0,3,0,0,4); -- TODO: MId INSERT INTO `item_equipment` VALUES (21598,'daduchos_knife',99,119,262704,0,0,0,3,0,0,4); -- TODO: MId INSERT INTO `item_equipment` VALUES (21599,'telopanos_knife',99,119,262704,0,0,0,3,0,0,5); -- TODO: MId +INSERT INTO `item_equipment` VALUES (21600,'prophetic_knife',99,119,1577593,0,0,0,3,0,0,0); -- TODO: MId INSERT INTO `item_equipment` VALUES (21602,'onion_sword_iii',99,119,4194303,0,0,0,3,0,0,0); -- TODO: Not implemented, verify model INSERT INTO `item_equipment` VALUES (21603,'save_the_queen_iii',99,119,64,0,0,0,3,0,0,0); -- TODO: Not implemented, verify model INSERT INTO `item_equipment` VALUES (21604,'arasy_sword',99,119,32848,278,0,0,3,0,0,1); @@ -10836,6 +10838,7 @@ INSERT INTO `item_equipment` VALUES (21735,'telognophos_axe',99,0,0,0,0,0,3,0,0, INSERT INTO `item_equipment` VALUES (21736,'auge_axe',99,119,256,0,0,0,3,0,0,4); -- TODO: MId INSERT INTO `item_equipment` VALUES (21737,'daduchos_axe',99,119,256,0,0,0,3,0,0,4); -- TODO: MId INSERT INTO `item_equipment` VALUES (21738,'telopanos_axe',99,119,256,0,0,0,3,0,0,5); -- TODO: MId +INSERT INTO `item_equipment` VALUES (21739,'prophetic_axe',99,119,256,0,0,0,3,0,0,0); -- TODO: MId INSERT INTO `item_equipment` VALUES (21741,'demonic_axe',1,0,4194303,793,0,0,3,0,0,0); INSERT INTO `item_equipment` VALUES (21742,'aern_axe',1,0,4194303,827,0,0,3,0,0,0); INSERT INTO `item_equipment` VALUES (21743,'aern_axe_ii',1,0,4194303,893,0,0,3,0,0,0); @@ -11245,6 +11248,8 @@ INSERT INTO `item_equipment` VALUES (22185,'telognophos_saber',99,0,0,0,0,0,3,0, INSERT INTO `item_equipment` VALUES (22186,'auge_saber',99,119,98320,0,0,0,3,0,0,4); -- TODO: MId INSERT INTO `item_equipment` VALUES (22187,'daduchos_saber',99,119,98320,0,0,0,3,0,0,4); -- TODO: MId INSERT INTO `item_equipment` VALUES (22188,'telopanos_saber',99,119,98320,0,0,0,3,0,0,5); -- TODO: MId +INSERT INTO `item_equipment` VALUES (22189,'prophetic_sword',99,119,8208,0,0,0,3,0,0,0); -- TODO: MId +INSERT INTO `item_equipment` VALUES (22190,'prophetic_club',99,119,1048645,0,0,0,3,0,0,0); -- TODO: MId INSERT INTO `item_equipment` VALUES (22194,'dathaba_staff',99,119,8262,0,0,0,1,0,0,0); -- TODO: Not implemented, verify model INSERT INTO `item_equipment` VALUES (22195,'flanged_grip',99,0,4194303,0,0,0,2,0,0,0); INSERT INTO `item_equipment` VALUES (22196,'alber_strap',99,0,4194303,0,0,0,2,0,0,0); @@ -11348,6 +11353,7 @@ INSERT INTO `item_equipment` VALUES (22307,'loughnashade',99,0,512,0,0,0,4,0,0,0 INSERT INTO `item_equipment` VALUES (22308,'bayeux_bullet',99,0,66560,0,0,0,8,0,0,0); -- TODO: Not implemented INSERT INTO `item_equipment` VALUES (22309,'bayeux_arrow',99,0,1024,0,0,0,8,0,0,0); -- TODO: Not implemented INSERT INTO `item_equipment` VALUES (22310,'hoxne_ampulla',99,0,4194303,0,0,0,8,0,0,0); -- TODO: Not implemented, verify model +INSERT INTO `item_equipment` VALUES (22311,'prophetica',99,0,4194303,0,0,0,8,0,0,0); -- TODO: MId INSERT INTO `item_equipment` VALUES (23040,'pummelers_mask_+2',99,119,1,64,0,0,16,0,0,0); INSERT INTO `item_equipment` VALUES (23041,'anch._crown_+2',99,119,2,66,0,0,16,0,0,0); INSERT INTO `item_equipment` VALUES (23042,'theophany_cap_+2',99,119,4,68,0,0,16,0,0,0); @@ -12592,6 +12598,9 @@ INSERT INTO `item_equipment` VALUES (24301,'wn_clomps_+1',99,119,4194303,0,0,0,2 INSERT INTO `item_equipment` VALUES (24302,'sv_gaiters_+1',99,119,4194303,0,0,0,256,0,0,0); -- TODO: Not implemented, verify model INSERT INTO `item_equipment` VALUES (24303,'el_sandals_+1',99,119,4194303,0,0,0,256,0,0,0); -- TODO: Not implemented, verify model INSERT INTO `item_equipment` VALUES (24304,'azimuth_turban',99,119,4194303,0,0,0,16,0,0,0); -- TODO: Not implemented, verify model +INSERT INTO `item_equipment` VALUES (24305,'reciente_coselete',99,119,10433,0,0,0,32,0,0,0); -- TODO: MId +INSERT INTO `item_equipment` VALUES (24306,'mirce_wardecors',99,119,2594082,0,0,0,32,0,0,0); -- TODO: MId +INSERT INTO `item_equipment` VALUES (24307,'noble_redingote',99,119,1589788,0,0,0,32,0,0,0); -- TODO: MId INSERT INTO `item_equipment` VALUES (25414,'elite_royal_collar',99,0,4194303,0,0,0,512,0,0,0); INSERT INTO `item_equipment` VALUES (25415,'rep._plat._medal',99,0,4194303,0,0,0,512,0,0,0); INSERT INTO `item_equipment` VALUES (25416,'sibyl_scarf',99,0,4194303,0,0,0,512,0,0,0); diff --git a/sql/item_weapon.sql b/sql/item_weapon.sql index 860f4ef0968..2400b94916f 100644 --- a/sql/item_weapon.sql +++ b/sql/item_weapon.sql @@ -4565,6 +4565,7 @@ INSERT INTO `item_weapon` VALUES (21539,'dathaba_claws',1,0,0,0,0,4,3,546,129,0) INSERT INTO `item_weapon` VALUES (21540,'dragon_fangs',1,0,0,0,0,4,3,606,217,0); -- TODO: Not implemented INSERT INTO `item_weapon` VALUES (21541,'premium_hearts',1,0,0,0,0,4,3,576,195,0); -- TODO: Not implemented INSERT INTO `item_weapon` VALUES (21542,'ja_ja_mace',11,0,0,0,0,3,1,340,1,0); -- TODO: ilvl_skill/parry/macc, dmgType +INSERT INTO `item_weapon` VALUES (21543,'ryofu_uchiwa',11,0,0,0,0,3,1,216,1,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21544,'skia_knuckles',1,0,0,0,0,4,1,1239,1,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21545,'arctus_knuckles',1,0,0,0,0,4,1,1239,1,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21546,'telognophos_knuckles',1,0,0,0,0,4,1,1239,1,0); -- TODO: ilvl_skill/parry/macc, dmgType @@ -4617,6 +4618,7 @@ INSERT INTO `item_weapon` VALUES (21596,'telognophos_knife',2,0,0,0,0,1,1,999,1, INSERT INTO `item_weapon` VALUES (21597,'auge_knife',2,0,0,0,0,1,1,195,126,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21598,'daduchos_knife',2,0,0,0,0,1,1,189,127,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21599,'telopanos_knife',2,0,0,0,0,1,1,189,128,0); -- TODO: ilvl_skill/parry/macc, dmgType +INSERT INTO `item_weapon` VALUES (21600,'prophetic_knife',2,0,0,0,0,1,1,181,125,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21602,'onion_sword_iii',3,0,0,0,0,2,1,240,183,0); -- TODO: Not implemented INSERT INTO `item_weapon` VALUES (21603,'save_the_queen_iii',3,0,0,0,0,2,1,264,201,0); -- TODO: Not implemented INSERT INTO `item_weapon` VALUES (21604,'arasy_sword',3,0,242,242,188,2,1,240,123,0); @@ -4747,6 +4749,7 @@ INSERT INTO `item_weapon` VALUES (21735,'telognophos_axe',5,0,0,0,0,3,1,999,1,0) INSERT INTO `item_weapon` VALUES (21736,'auge_axe',5,0,0,0,0,3,1,276,179,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21737,'daduchos_axe',5,0,0,0,0,3,1,268,180,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21738,'telopanos_axe',5,0,0,0,0,3,1,268,181,0); -- TODO: ilvl_skill/parry/macc, dmgType +INSERT INTO `item_weapon` VALUES (21739,'prophetic_axe',5,0,0,0,0,3,1,288,199,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (21741,'demonic_axe',5,0,0,0,0,2,1,288,1,0); -- DMG:1 Delay:288 INSERT INTO `item_weapon` VALUES (21742,'aern_axe',5,0,0,0,0,2,1,288,1,0); -- DMG:1 Delay:288 INSERT INTO `item_weapon` VALUES (21743,'aern_axe_ii',5,0,0,0,0,2,1,288,1,0); -- DMG:1 Delay:288 @@ -5156,6 +5159,8 @@ INSERT INTO `item_weapon` VALUES (22185,'telognophos_saber',3,0,0,0,0,2,1,999,1, INSERT INTO `item_weapon` VALUES (22186,'auge_saber',3,0,0,0,0,2,1,240,155,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (22187,'daduchos_saber',3,0,0,0,0,2,1,233,156,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (22188,'telopanos_saber',3,0,0,0,0,2,1,233,157,0); -- TODO: ilvl_skill/parry/macc, dmgType +INSERT INTO `item_weapon` VALUES (22189,'prophetic_sword',3,0,0,0,0,2,1,221,153,0); -- TODO: ilvl_skill/parry/macc, dmgType +INSERT INTO `item_weapon` VALUES (22190,'prophetic_club',11,0,0,0,0,3,1,315,218,0); -- TODO: ilvl_skill/parry/macc, dmgType INSERT INTO `item_weapon` VALUES (22194,'dathaba_staff',12,0,0,0,0,3,1,399,266,0); -- TODO: Not implemented INSERT INTO `item_weapon` VALUES (22195,'flanged_grip',0,0,0,0,0,1,1,999,1,0); INSERT INTO `item_weapon` VALUES (22196,'alber_strap',0,0,0,0,0,1,1,999,1,0); @@ -5259,6 +5264,7 @@ INSERT INTO `item_weapon` VALUES (22307,'loughnashade',42,0,0,0,0,0,1,240,1,0); INSERT INTO `item_weapon` VALUES (22308,'bayeux_bullet',26,0,0,0,0,1,1,240,315,0); -- TODO: Not implemented INSERT INTO `item_weapon` VALUES (22309,'bayeux_arrow',25,0,0,0,0,1,1,90,116,0); -- TODO: Not implemented INSERT INTO `item_weapon` VALUES (22310,'hoxne_ampulla',0,0,0,0,0,0,1,999,0,0); -- TODO: Not implemented +INSERT INTO `item_weapon` VALUES (22311,'prophetica',0,0,0,0,0,0,1,240,0,0); -- TODO: Not implemented /*!40000 ALTER TABLE `item_weapon` ENABLE KEYS */; UNLOCK TABLES; From 14be6366c0576838fc494beb2ad190ebb3c7b4e2 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 00:37:42 -0600 Subject: [PATCH 12/59] [July 2026 VU] Cities NPC shifts --- sql/npc_list.sql | 235 ++++++++++++++++++++++++----------------------- 1 file changed, 119 insertions(+), 116 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 5ff0a3aee96..c96ca21e227 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -30697,43 +30697,44 @@ INSERT INTO `npc_list` VALUES (17723816,'Bertenont','Bertenont',0,0.000,0.000,0. INSERT INTO `npc_list` VALUES (17723817,'Suspicious_Elvaan','Suspicious Elvaan',122,82.217,-0.199,42.682,14,50,50,0,0,0,0,3,0x01001E037D102E202E30C940C950006000700000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17723818,'Odyssean_Passage','Odyssean Passage',124,82.273,-0.199,41.176,1,50,50,0,0,0,0,3,0x0000750900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17723819,'Trisvain','Trisvain',128,28.317,-0.199,84.776,1,50,50,0,0,0,0,27,0x01001E037D1003200330C940C950006000700000,32,'WOTG',1); -INSERT INTO `npc_list` VALUES (17723820,'Excenmille','Excenmille',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100020300103E203E303C403C50D16000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723821,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17723822,'NPC[1ae]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17723823,'Survival_Guide','Survival Guide',0,-174.000,4.000,80.000,1,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); -INSERT INTO `npc_list` VALUES (17723824,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17723825,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17723826,'Iroha','Iroha',0,1000.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000910900000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723827,'Lion','Lion',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003C0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723828,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003E0300000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723829,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000920900000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17723830,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60400000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723831,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); +-- TODO: 17723820 Phantom gems Box +INSERT INTO `npc_list` VALUES (17723821,'Excenmille','Excenmille',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100020300103E203E303C403C50D16000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723822,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17723823,'NPC[1ae]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17723824,'Survival_Guide','Survival Guide',0,-174.000,4.000,80.000,1,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); +INSERT INTO `npc_list` VALUES (17723825,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17723826,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17723827,'Iroha','Iroha',0,1000.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000910900000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723828,'Lion','Lion',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003C0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723829,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003E0300000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723830,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000920900000000000000000000000000000000,32,NULL,0); +INSERT INTO `npc_list` VALUES (17723831,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60400000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17723832,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723833,'Balamor','Balamor',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60A00000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723834,'qm9','???',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000060600000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17723835,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17723833,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723834,'Balamor','Balamor',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60A00000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723835,'qm9','???',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000060600000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17723836,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17723837,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010000018411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723838,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002028411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723839,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002038411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723840,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004048411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723841,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010001058411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723842,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006068411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723843,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004078411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723844,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006088411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17723845,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17723837,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17723838,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010000018411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723839,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002028411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723840,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002038411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723841,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004048411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723842,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010001058411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723843,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006068411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723844,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004078411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17723845,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006088411E620E630E640E650006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17723846,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17723847,'Ephemeral_Moogle_Wood','Ephemeral Moogle',79,-176.090,12.000,268.910,1,50,50,0,0,128,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17723848,'Ephemeral_Moogle_Smith','Ephemeral Moogle',197,-186.440,12.000,140.310,21,50,50,0,0,128,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17723849,'Luren','Luren',178,-171.710,12.000,258.700,14,50,50,0,0,0,0,27,0x0100040200107520753000400850006000700000,32,'ROV',1); -INSERT INTO `npc_list` VALUES (17723850,'Ore_Guzzler','Ore Guzzler',147,-180.000,12.000,143.000,7,50,50,0,0,0,0,27,0x0100050800107620763000400F50006000700000,32,'ROV',1); -INSERT INTO `npc_list` VALUES (17723851,'AMAN_Liaison','A.M.A.N. Liaison',163,114.200,0.000,-10.070,1,50,50,0,0,1,0,3,0x0100010477106720683066406850006000700000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17723852,'Linkshell_Concierge','Linkshell Concierge',223,76.260,0.000,9.700,21,50,50,0,0,0,0,3,0x0100030292102720083066406050006000700000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17723853,'Chat_Manual','Chat Manual',223,77.480,0.000,8.480,1,50,50,0,0,96,0,3,0x0000F20800000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17723854,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17723855,'blank','',192,16.905,-0.198,-19.265,1,50,50,0,0,112,0,2051,0x0000AE0900000000000000000000000000000000,130,NULL,0); -INSERT INTO `npc_list` VALUES (17723856,'Tales_Beginning','Tales\' Beginning',192,16.905,-0.198,-19.265,1,50,50,0,1,112,0,3,0x0000810900000000000000000000000000000000,130,NULL,1); +INSERT INTO `npc_list` VALUES (17723847,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17723848,'Ephemeral_Moogle_Wood','Ephemeral Moogle',79,-176.090,12.000,268.910,1,50,50,0,0,128,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17723849,'Ephemeral_Moogle_Smith','Ephemeral Moogle',197,-186.440,12.000,140.310,21,50,50,0,0,128,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17723850,'Luren','Luren',178,-171.710,12.000,258.700,14,50,50,0,0,0,0,27,0x0100040200107520753000400850006000700000,32,'ROV',1); +INSERT INTO `npc_list` VALUES (17723851,'Ore_Guzzler','Ore Guzzler',147,-180.000,12.000,143.000,7,50,50,0,0,0,0,27,0x0100050800107620763000400F50006000700000,32,'ROV',1); +INSERT INTO `npc_list` VALUES (17723852,'AMAN_Liaison','A.M.A.N. Liaison',163,114.200,0.000,-10.070,1,50,50,0,0,1,0,3,0x0100010477106720683066406850006000700000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17723853,'Linkshell_Concierge','Linkshell Concierge',223,76.260,0.000,9.700,21,50,50,0,0,0,0,3,0x0100030292102720083066406050006000700000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17723854,'Chat_Manual','Chat Manual',223,77.480,0.000,8.480,1,50,50,0,0,96,0,3,0x0000F20800000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17723855,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17723856,'blank','',192,16.905,-0.198,-19.265,1,50,50,0,0,112,0,2051,0x0000AE0900000000000000000000000000000000,130,NULL,0); +INSERT INTO `npc_list` VALUES (17723857,'Tales_Beginning','Tales\' Beginning',192,16.905,-0.198,-19.265,1,50,50,0,1,112,0,3,0x0000810900000000000000000000000000000000,130,NULL,1); -- ------------------------------------------------------------ -- Port San d'Oria (Zone 232) @@ -32229,62 +32230,63 @@ INSERT INTO `npc_list` VALUES (17744181,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17744182,'Suspicious_Galka','Suspicious Galka',124,81.610,8.499,-229.065,8,50,50,0,0,0,0,3,0x01001E087D102E202E30C940C950006000700000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17744183,'Odyssean_Passage','Odyssean Passage',141,81.578,8.499,-231.082,1,50,50,0,0,0,0,3,0x0000750900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17744184,'Raving_Opossum','Raving Opossum',68,42.141,7.500,-183.762,22,50,50,0,0,0,0,27,0x01001E087D1003200330C940C950006000700000,32,'SOA',1); -INSERT INTO `npc_list` VALUES (17744185,'Greeter_Moogle','Greeter Moogle',187,40.500,8.500,-242.276,15,50,50,0,0,0,2,3,0x0000730900000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17744186,'Mog_Dinghy','Mog Dinghy',187,81.039,9.500,-174.014,32769,50,50,0,0,96,0,3,0x0000E00A00000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17744187,'Skipper_Moogle','Skipper Moogle',57,75.313,7.500,-176.879,1,50,50,0,0,0,0,259,0x0000390900000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17744188,'Clarion_Star','Clarion Star',18,81.478,7.500,-24.169,22,50,50,0,0,0,0,27,0x01000308461118205230B8408550006000700000,32,'TRUST_QUESTS',1); -INSERT INTO `npc_list` VALUES (17744189,'Mystic_Retriever','Mystic Retriever',18,83.330,7.500,-22.380,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'ROV',1); -INSERT INTO `npc_list` VALUES (17744190,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17744191,'NPC[13f]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17744192,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17744193,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17744194,'Iroha','Iroha',0,1000.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000910900000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744195,'Lion','Lion',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003C0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744196,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003E0300000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744197,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000920900000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17744198,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60400000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744199,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); +-- TODO: 17744185 Phantom gems Box +INSERT INTO `npc_list` VALUES (17744186,'Greeter_Moogle','Greeter Moogle',187,40.500,8.500,-242.276,15,50,50,0,0,0,2,3,0x0000730900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17744187,'Mog_Dinghy','Mog Dinghy',187,81.039,9.500,-174.014,32769,50,50,0,0,96,0,3,0x0000E00A00000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17744188,'Skipper_Moogle','Skipper Moogle',57,75.313,7.500,-176.879,1,50,50,0,0,0,0,259,0x0000390900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17744189,'Clarion_Star','Clarion Star',18,81.478,7.500,-24.169,22,50,50,0,0,0,0,27,0x01000308461118205230B8408550006000700000,32,'TRUST_QUESTS',1); +INSERT INTO `npc_list` VALUES (17744190,'Mystic_Retriever','Mystic Retriever',18,83.330,7.500,-22.380,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'ROV',1); +INSERT INTO `npc_list` VALUES (17744191,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17744192,'NPC[13f]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17744193,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17744194,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17744195,'Iroha','Iroha',0,1000.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000910900000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744196,'Lion','Lion',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003C0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744197,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003E0300000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744198,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000920900000000000000000000000000000000,32,NULL,0); +INSERT INTO `npc_list` VALUES (17744199,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60400000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17744200,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744201,'Balamor','Balamor',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60A00000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744202,'qm3','???',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000060600000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17744203,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17744201,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744202,'Balamor','Balamor',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60A00000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744203,'qm3','???',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000060600000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17744204,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17744205,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010000018411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744206,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002028411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744207,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002038411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744208,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004048411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744209,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010001058411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744210,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006068411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744211,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004078411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744212,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006088411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744213,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17744205,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17744206,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010000018411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744207,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002028411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744208,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002038411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744209,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004048411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744210,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010001058411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744211,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006068411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744212,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004078411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744213,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006088411E620E630E640E650006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17744214,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17744215,'Curio_Vendor_Moogle','Curio Vendor Moogle',128,82.000,8.500,-241.000,1,50,50,0,0,0,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17744216,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17744217,'blank','',0,0.000,0.000,0.000,32768,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17744215,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17744216,'Curio_Vendor_Moogle','Curio Vendor Moogle',128,82.000,8.500,-241.000,1,50,50,0,0,0,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17744217,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17744218,'blank','',0,0.000,0.000,0.000,32768,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17744219,'blank','',0,0.000,0.000,0.000,32768,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17744220,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); +INSERT INTO `npc_list` VALUES (17744220,'blank','',0,0.000,0.000,0.000,32768,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17744221,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); INSERT INTO `npc_list` VALUES (17744222,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17744223,'Ruenda','Ruenda',0,-150.000,-6.000,-1.500,1,50,50,0,0,0,0,27,0x0100010200100020003011401150006000700000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17744224,'Marin','Marin',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2077,0x0100020200101420683008400A50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744225,'Ken','Ken',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2073,0x0100060100101C201C3001401C50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744226,'Azima','Azima',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x00005F0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744227,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x00003E0300000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17744228,0x3C01,'',224,-160.023,-7.480,9.977,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (17744229,0x3C01,'',224,-157.478,-7.480,12.522,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (17744230,0x7701,'',160,-160.500,-7.480,6.500,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (17744231,0x7701,'',160,-159.500,-7.480,5.500,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (17744232,0x7701,'',32,-154.000,-7.480,13.000,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (17744233,0x7701,'',32,-153.000,-7.480,12.000,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (17744234,0x7701,'',32,-152.000,-7.480,11.000,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (17744235,'AMAN_Liaison','A.M.A.N. Liaison',64,68.640,8.500,-221.240,1,50,50,0,0,1,0,3,0x01000C0277106720683066406850006000700000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17744236,'blank','',116,-175.167,-6.000,-17.574,1,50,50,0,0,112,0,2051,0x0000AE0900000000000000000000000000000000,130,NULL,0); -INSERT INTO `npc_list` VALUES (17744237,'Tales_Beginning','Tales\' Beginning',116,-175.167,-6.000,-17.574,1,50,50,0,1,112,0,3,0x0000810900000000000000000000000000000000,130,'SOA',0); -INSERT INTO `npc_list` VALUES (17744238,'Ancestry_Moogle','Ancestry Moogle',64,52.000,8.500,-221.000,8,50,50,0,0,0,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17744239,'blank','',0,150.000,0.000,-150.000,0,50,50,0,0,0,6,27,0x0100000100100020003000400050006000700000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17744240,'Previous_Race','Previous Race',0,150.000,0.000,-150.000,1,50,50,0,0,0,2,25,0x0100000700100020003000400050006000700000,32,'SOA',0); +INSERT INTO `npc_list` VALUES (17744223,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); +INSERT INTO `npc_list` VALUES (17744224,'Ruenda','Ruenda',0,-150.000,-6.000,-1.500,1,50,50,0,0,0,0,27,0x0100010200100020003011401150006000700000,32,NULL,0); +INSERT INTO `npc_list` VALUES (17744225,'Marin','Marin',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2077,0x0100020200101420683008400A50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744226,'Ken','Ken',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2073,0x0100060100101C201C3001401C50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744227,'Azima','Azima',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x00005F0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744228,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x00003E0300000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17744229,0x3C01,'',224,-160.023,-7.480,9.977,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); +INSERT INTO `npc_list` VALUES (17744230,0x3C01,'',224,-157.478,-7.480,12.522,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); +INSERT INTO `npc_list` VALUES (17744231,0x7701,'',160,-160.500,-7.480,6.500,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); +INSERT INTO `npc_list` VALUES (17744232,0x7701,'',160,-159.500,-7.480,5.500,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); +INSERT INTO `npc_list` VALUES (17744233,0x7701,'',32,-154.000,-7.480,13.000,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); +INSERT INTO `npc_list` VALUES (17744234,0x7701,'',32,-153.000,-7.480,12.000,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); +INSERT INTO `npc_list` VALUES (17744235,0x7701,'',32,-152.000,-7.480,11.000,0,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); +INSERT INTO `npc_list` VALUES (17744236,'AMAN_Liaison','A.M.A.N. Liaison',64,68.640,8.500,-221.240,1,50,50,0,0,1,0,3,0x01000C0277106720683066406850006000700000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17744237,'blank','',116,-175.167,-6.000,-17.574,1,50,50,0,0,112,0,2051,0x0000AE0900000000000000000000000000000000,130,NULL,0); +INSERT INTO `npc_list` VALUES (17744238,'Tales_Beginning','Tales\' Beginning',116,-175.167,-6.000,-17.574,1,50,50,0,1,112,0,3,0x0000810900000000000000000000000000000000,130,'SOA',0); +INSERT INTO `npc_list` VALUES (17744239,'Ancestry_Moogle','Ancestry Moogle',64,52.000,8.500,-221.000,8,50,50,0,0,0,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17744240,'blank','',0,150.000,0.000,-150.000,0,50,50,0,0,0,6,27,0x0100000100100020003000400050006000700000,32,NULL,0); +INSERT INTO `npc_list` VALUES (17744241,'Previous_Race','Previous Race',0,150.000,0.000,-150.000,1,50,50,0,0,0,2,25,0x0100000700100020003000400050006000700000,32,'SOA',0); -- ------------------------------------------------------------ -- Metalworks (Zone 237) @@ -33670,42 +33672,43 @@ INSERT INTO `npc_list` VALUES (17760504,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17760505,'Suspicious_Tarutaru','Suspicious Tarutaru',128,221.286,-12.000,225.311,14,50,50,0,0,0,0,3,0x01001E057D102E202E30C940C950006000700000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17760506,'Odyssean_Passage','Odyssean Passage',128,221.107,-12.000,223.535,1,50,50,0,0,0,0,3,0x0000750900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17760507,'Mimble-Pimble','Mimble-Pimble',182,197.507,-8.670,177.602,1,50,50,0,0,0,0,27,0x01001E057D1003200330C940C950006000700000,32,'SOA',1); -INSERT INTO `npc_list` VALUES (17760508,'Mog_Dinghy','Mog Dinghy',0,-196.752,-0.300,69.810,32769,50,50,0,0,96,0,3,0x0000E00A00000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17760509,'Skipper_Moogle','Skipper Moogle',209,-194.050,-2.000,67.008,14,50,50,0,0,0,0,259,0x0000390900000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17760510,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17760511,'NPC[ff]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17760512,'Survival_Guide','Survival Guide',64,-220.000,-8.284,179.000,21,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); -INSERT INTO `npc_list` VALUES (17760513,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17760514,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17760515,'Iroha','Iroha',0,1000.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000910900000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760516,'Lion','Lion',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003C0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760517,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003E0300000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760518,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000920900000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17760519,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60400000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760520,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); +-- TODO: 17760508 Phantom gems Box +INSERT INTO `npc_list` VALUES (17760509,'Mog_Dinghy','Mog Dinghy',0,-196.752,-0.300,69.810,32769,50,50,0,0,96,0,3,0x0000E00A00000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17760510,'Skipper_Moogle','Skipper Moogle',209,-194.050,-2.000,67.008,14,50,50,0,0,0,0,259,0x0000390900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17760511,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17760512,'NPC[ff]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17760513,'Survival_Guide','Survival Guide',64,-220.000,-8.284,179.000,21,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); +INSERT INTO `npc_list` VALUES (17760514,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17760515,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17760516,'Iroha','Iroha',0,1000.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000910900000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760517,'Lion','Lion',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003C0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760518,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003E0300000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760519,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000920900000000000000000000000000000000,32,NULL,0); +INSERT INTO `npc_list` VALUES (17760520,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60400000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17760521,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760522,'Balamor','Balamor',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60A00000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760523,'qm3','???',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000060600000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17760524,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17760522,'Selhteus','Selh\'teus',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A70500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760523,'Balamor','Balamor',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000B60A00000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760524,'qm3','???',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000060600000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17760525,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17760526,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010000018411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760527,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002028411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760528,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002038411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760529,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004048411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760530,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010001058411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760531,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006068411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760532,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004078411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760533,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006088411E620E630E640E650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760534,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17760526,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17760527,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010000018411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760528,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002028411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760529,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010002038411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760530,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004048411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760531,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010001058411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760532,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006068411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760533,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010004078411E620E630E640E650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760534,'Disjoined_One','Disjoined One',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010006088411E620E630E640E650006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17760535,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17760536,'Curio_Vendor_Moogle','Curio Vendor Moogle',192,214.000,-12.000,217.000,21,50,50,0,0,0,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17760537,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17760538,'Shanruru','Shanruru',62,-1.299,-6.000,186.699,0,50,50,0,0,0,6,2075,0x00005B0C00000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760539,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17760540,'Pichichi','Pichichi',0,-25.790,-6.000,193.136,0,50,50,0,0,0,6,2075,0x00005A0C00000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17760541,'AMAN_Liaison','A.M.A.N. Liaison',206,187.500,-12.000,217.180,14,50,50,0,0,1,0,3,0x01000A0777106720683066406850006000700000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17760542,'blank','',185,-211.220,-8.169,194.804,1,50,50,0,0,112,0,2051,0x0000AE0900000000000000000000000000000000,130,NULL,0); -INSERT INTO `npc_list` VALUES (17760543,'Tales_Beginning','Tales\' Beginning',185,-211.220,-8.169,194.804,1,50,50,0,1,112,0,3,0x0000810900000000000000000000000000000000,130,NULL,1); +INSERT INTO `npc_list` VALUES (17760536,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17760537,'Curio_Vendor_Moogle','Curio Vendor Moogle',192,214.000,-12.000,217.000,21,50,50,0,0,0,0,3,0x0000520000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17760538,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17760539,'Shanruru','Shanruru',62,-1.299,-6.000,186.699,0,50,50,0,0,0,6,2075,0x00005B0C00000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760540,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17760541,'Pichichi','Pichichi',0,-25.790,-6.000,193.136,0,50,50,0,0,0,6,2075,0x00005A0C00000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17760542,'AMAN_Liaison','A.M.A.N. Liaison',206,187.500,-12.000,217.180,14,50,50,0,0,1,0,3,0x01000A0777106720683066406850006000700000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17760543,'blank','',185,-211.220,-8.169,194.804,1,50,50,0,0,112,0,2051,0x0000AE0900000000000000000000000000000000,130,NULL,0); +INSERT INTO `npc_list` VALUES (17760544,'Tales_Beginning','Tales\' Beginning',185,-211.220,-8.169,194.804,1,50,50,0,1,112,0,3,0x0000810900000000000000000000000000000000,130,NULL,1); -- ------------------------------------------------------------ -- Windurst Woods (Zone 241) From e5a496c50f0cec493ecce8aac1074b8edb6960ed Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 01:10:34 -0600 Subject: [PATCH 13/59] Adjust guild initial stocks --- scripts/data/guild_shops.lua | 282 +++++++++++++++++------------------ 1 file changed, 141 insertions(+), 141 deletions(-) diff --git a/scripts/data/guild_shops.lua b/scripts/data/guild_shops.lua index a417c6a89a5..8a591511775 100644 --- a/scripts/data/guild_shops.lua +++ b/scripts/data/guild_shops.lua @@ -36,7 +36,7 @@ xi.data.guildShops = { id = xi.item.SOIL_HACHIMAKI, initial = 36, maxStock = 60, targetStock = 45, buyMax = 66960, restockRate = 3 }, { id = xi.item.SHINOBI_HACHIGANE, initial = 0, maxStock = 60, targetStock = 45, buyMax = 240460, restockRate = 0 }, -- targetStock assumed { id = xi.item.ZUNARI_KABUTO, initial = 0, maxStock = 60, targetStock = 45, buyMax = 180200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.NODOWA, initial = 0, maxStock = 60, targetStock = 45, buyMax = 149710, restockRate = 0 }, -- targetStock assumed + { id = xi.item.NODOWA, initial = 30, maxStock = 60, targetStock = 45, buyMax = 149710, restockRate = 0 }, -- targetStock assumed { id = xi.item.DARKSTEEL_NODOWA, initial = 0, maxStock = 60, targetStock = 45, buyMax = 285000, restockRate = 0 }, -- targetStock assumed { id = xi.item.KENPOGI, initial = 36, maxStock = 60, targetStock = 45, buyMax = 6225, restockRate = 3 }, { id = xi.item.COTTON_DOGI, initial = 36, maxStock = 60, targetStock = 45, buyMax = 36800, restockRate = 3 }, @@ -770,54 +770,54 @@ xi.data.guildShops = { id = xi.item.BLACK_CHIP, initial = 150, maxStock = 200, targetStock = 150, buyMax = 140000, restockRate = 50, noSell = true }, }, }, - ['Graegham'] = -- TODO: Initial capture + ['Graegham'] = { hours = { 3, 18 }, holiday = xi.day.LIGHTNINGDAY, stock = { - { id = xi.item.SABIKI_RIG, initial = 0, maxStock = 240, targetStock = 180, buyMax = 4401, restockRate = 5 }, -- targetStock assumed - { id = xi.item.TARUTARU_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 27180, restockRate = 10 }, -- targetStock assumed - { id = xi.item.CLOTHESPOLE, initial = 0, maxStock = 60, targetStock = 45, buyMax = 13200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.FASTWATER_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 6970, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CARBON_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SINGLE_HOOK_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed - { id = xi.item.COBALT_JELLYFISH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CRAYFISH_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CLUMP_OF_PAMTAM_KELP, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed - { id = xi.item.MOAT_CARP_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BASTORE_SARDINE_1, initial = 0, maxStock = 240, targetStock = 42, buyMax = 160, restockRate = 1 }, -- targetStock assumed - { id = xi.item.SHINING_TROUT_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 650, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SHALL_SHELL, initial = 0, maxStock = 240, targetStock = 180, buyMax = 9000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CHEVAL_SALMON, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.YELLOW_GLOBE, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.TRICOLORED_CARP, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed - { id = xi.item.NOSTEAU_HERRING_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 2000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.PIPIRA_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1150, restockRate = 0 }, -- targetStock assumed - { id = xi.item.TIGER_COD_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed - { id = xi.item.DARK_BASS_1, initial = 0, maxStock = 240, targetStock = 33, buyMax = 400, restockRate = 1 }, -- targetStock assumed - { id = xi.item.NEBIMONITE, initial = 0, maxStock = 240, targetStock = 17, buyMax = 1300, restockRate = 1 }, -- targetStock assumed - { id = xi.item.BLACK_EEL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 5760, restockRate = 0 }, -- targetStock assumed - { id = xi.item.OGRE_EEL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 0 }, -- targetStock assumed - { id = xi.item.ICEFISH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 4590, restockRate = 0 }, -- targetStock assumed - { id = xi.item.ZAFMLUG_BASS, initial = 0, maxStock = 240, targetStock = 180, buyMax = 775, restockRate = 0 }, -- targetStock assumed - { id = xi.item.RED_TERRAPIN, initial = 0, maxStock = 120, targetStock = 14, buyMax = 9000, restockRate = 1 }, -- targetStock assumed - { id = xi.item.GOLD_LOBSTER_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 5760, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BLUETAIL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 9000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CRESCENT_FISH, initial = 0, maxStock = 120, targetStock = 90, buyMax = 15400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.NOBLE_LADY, initial = 0, maxStock = 120, targetStock = 90, buyMax = 14000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.COPPER_FROG_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SILVER_SHARK, initial = 0, maxStock = 240, targetStock = 83, buyMax = 20000, restockRate = 1 }, -- targetStock assumed - { id = xi.item.BASTORE_BREAM, initial = 0, maxStock = 120, targetStock = 90, buyMax = 27000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BLACK_SOLE, initial = 0, maxStock = 120, targetStock = 9, buyMax = 35000, restockRate = 1 }, -- targetStock assumed - { id = xi.item.GREEDIE, initial = 0, maxStock = 240, targetStock = 62, buyMax = 160, restockRate = 2 }, -- targetStock assumed - { id = xi.item.QUUS_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.GIANT_CATFISH_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed - { id = xi.item.MONKE_ONKE_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 9000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.GAVIAL_FISH, initial = 0, maxStock = 60, targetStock = 45, buyMax = 20000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.GUGRU_TUNA_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BHEFHEL_MARLIN_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 9000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BLADEFISH_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 14000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SABIKI_RIG, initial = 180, maxStock = 240, targetStock = 180, buyMax = 4401, restockRate = 5 }, -- targetStock assumed + { id = xi.item.TARUTARU_FISHING_ROD, initial = 45, maxStock = 60, targetStock = 45, buyMax = 27180, restockRate = 10 }, -- targetStock assumed + { id = xi.item.CLOTHESPOLE, initial = 45, maxStock = 60, targetStock = 45, buyMax = 13200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.FASTWATER_FISHING_ROD, initial = 45, maxStock = 60, targetStock = 45, buyMax = 6970, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CARBON_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SINGLE_HOOK_FISHING_ROD, initial = 36, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed + { id = xi.item.COBALT_JELLYFISH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CRAYFISH_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CLUMP_OF_PAMTAM_KELP, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed + { id = xi.item.MOAT_CARP_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BASTORE_SARDINE_1, initial = 0, maxStock = 240, targetStock = 42, buyMax = 160, restockRate = 1 }, -- targetStock assumed + { id = xi.item.SHINING_TROUT_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 650, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SHALL_SHELL, initial = 0, maxStock = 240, targetStock = 180, buyMax = 9000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CHEVAL_SALMON, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.YELLOW_GLOBE, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.TRICOLORED_CARP, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed + { id = xi.item.NOSTEAU_HERRING_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 2000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.PIPIRA_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1150, restockRate = 0 }, -- targetStock assumed + { id = xi.item.TIGER_COD_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed + { id = xi.item.DARK_BASS_1, initial = 0, maxStock = 240, targetStock = 33, buyMax = 400, restockRate = 1 }, -- targetStock assumed + { id = xi.item.NEBIMONITE, initial = 0, maxStock = 240, targetStock = 17, buyMax = 1300, restockRate = 1 }, -- targetStock assumed + { id = xi.item.BLACK_EEL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 5760, restockRate = 0 }, -- targetStock assumed + { id = xi.item.OGRE_EEL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 0 }, -- targetStock assumed + { id = xi.item.ICEFISH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 4590, restockRate = 0 }, -- targetStock assumed + { id = xi.item.ZAFMLUG_BASS, initial = 0, maxStock = 240, targetStock = 180, buyMax = 775, restockRate = 0 }, -- targetStock assumed + { id = xi.item.RED_TERRAPIN, initial = 0, maxStock = 120, targetStock = 14, buyMax = 9000, restockRate = 1 }, -- targetStock assumed + { id = xi.item.GOLD_LOBSTER_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 5760, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BLUETAIL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 9000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CRESCENT_FISH, initial = 0, maxStock = 120, targetStock = 90, buyMax = 15400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.NOBLE_LADY, initial = 0, maxStock = 120, targetStock = 90, buyMax = 14000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.COPPER_FROG_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SILVER_SHARK, initial = 0, maxStock = 240, targetStock = 83, buyMax = 20000, restockRate = 1 }, -- targetStock assumed + { id = xi.item.BASTORE_BREAM, initial = 0, maxStock = 120, targetStock = 90, buyMax = 27000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BLACK_SOLE, initial = 0, maxStock = 120, targetStock = 9, buyMax = 35000, restockRate = 1 }, -- targetStock assumed + { id = xi.item.GREEDIE, initial = 0, maxStock = 240, targetStock = 62, buyMax = 160, restockRate = 2 }, -- targetStock assumed + { id = xi.item.QUUS_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.GIANT_CATFISH_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed + { id = xi.item.MONKE_ONKE_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 9000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.GAVIAL_FISH, initial = 0, maxStock = 60, targetStock = 45, buyMax = 20000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.GUGRU_TUNA_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BHEFHEL_MARLIN_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 9000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BLADEFISH_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 14000, restockRate = 0 }, -- targetStock assumed }, }, ['Ilita'] = @@ -872,10 +872,10 @@ xi.data.guildShops = { id = xi.item.SCROLL_OF_ABSORB_INT, initial = 0, maxStock = 60, targetStock = 50, buyMax = 105000, restockRate = 0 }, -- targetStock assumed { id = xi.item.SCROLL_OF_ABSORB_MND, initial = 16, maxStock = 60, targetStock = 50, buyMax = 105000, restockRate = 2 }, { id = xi.item.SCROLL_OF_ABSORB_CHR, initial = 16, maxStock = 60, targetStock = 50, buyMax = 105000, restockRate = 2 }, - { id = xi.item.ONZ_OF_TURMERIC, initial = 35, maxStock = 60, targetStock = 50, buyMax = 3225, restockRate = 15 }, - { id = xi.item.ONZ_OF_CORIANDER, initial = 35, maxStock = 60, targetStock = 50, buyMax = 7925, restockRate = 15 }, - { id = xi.item.SPRIG_OF_HOLY_BASIL, initial = 35, maxStock = 60, targetStock = 50, buyMax = 4000, restockRate = 15 }, - { id = xi.item.ONZ_OF_CURRY_POWDER, initial = 18, maxStock = 30, targetStock = 25, buyMax = 1456, restockRate = 7, priceFloor = 55 }, + { id = xi.item.ONZ_OF_TURMERIC, initial = 50, maxStock = 60, targetStock = 50, buyMax = 3225, restockRate = 15 }, + { id = xi.item.ONZ_OF_CORIANDER, initial = 50, maxStock = 60, targetStock = 50, buyMax = 7925, restockRate = 15 }, + { id = xi.item.SPRIG_OF_HOLY_BASIL, initial = 50, maxStock = 60, targetStock = 50, buyMax = 4000, restockRate = 15 }, + { id = xi.item.ONZ_OF_CURRY_POWDER, initial = 25, maxStock = 30, targetStock = 25, buyMax = 1456, restockRate = 7, priceFloor = 55 }, { id = xi.item.JAR_OF_GROUND_WASABI, initial = 90, maxStock = 150, targetStock = 120, buyMax = 12974, restockRate = 20, priceFloor = 150 }, { id = xi.item.BOTTLE_OF_RICE_VINEGAR, initial = 90, maxStock = 150, targetStock = 120, buyMax = 1000, restockRate = 20, priceFloor = 150 }, { id = xi.item.CLUMP_OF_SHUNGIKU, initial = 120, maxStock = 150, targetStock = 120, buyMax = 1400, restockRate = 100, priceFloor = 150 }, @@ -997,8 +997,8 @@ xi.data.guildShops = { id = xi.item.CHUNK_OF_IRON_ORE, initial = 110, maxStock = 240, targetStock = 110, buyMax = 4500, restockRate = 10 }, { id = xi.item.BRONZE_INGOT, initial = 0, maxStock = 120, targetStock = 100, buyMax = 380, restockRate = 0 }, -- targetStock assumed { id = xi.item.IRON_INGOT, initial = 0, maxStock = 120, targetStock = 100, buyMax = 18000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.STEEL_INGOT, initial = 90, maxStock = 120, targetStock = 100, buyMax = 26250, restockRate = 10 }, - { id = xi.item.BRONZE_SHEET, initial = 36, maxStock = 120, targetStock = 100, buyMax = 460, restockRate = 2 }, + { id = xi.item.STEEL_INGOT, initial = 80, maxStock = 120, targetStock = 100, buyMax = 26250, restockRate = 10 }, + { id = xi.item.BRONZE_SHEET, initial = 34, maxStock = 120, targetStock = 100, buyMax = 460, restockRate = 2 }, { id = xi.item.IRON_SHEET, initial = 0, maxStock = 120, targetStock = 100, buyMax = 27000, restockRate = 0 }, { id = xi.item.HANDFUL_OF_BRONZE_SCALES, initial = 0, maxStock = 60, targetStock = 50, buyMax = 540, restockRate = 0 }, { id = xi.item.HANDFUL_OF_IRON_SCALES, initial = 0, maxStock = 60, targetStock = 50, buyMax = 31500, restockRate = 0 }, @@ -1024,7 +1024,7 @@ xi.data.guildShops = { id = xi.item.PENDANT_COMPASS, initial = 150, maxStock = 200, targetStock = 150, buyMax = 375, restockRate = 0, priceFloor = 0, noSell = true }, }, }, - ['Kopopo'] = -- TODO: Recapture initial + ['Kopopo'] = { hours = { 5, 20 }, holiday = xi.day.DARKSDAY, @@ -1046,15 +1046,15 @@ xi.data.guildShops = { id = xi.item.BOTTLE_OF_APPLE_VINEGAR, initial = 10, maxStock = 240, targetStock = 180, buyMax = 440, restockRate = 5 }, -- targetStock assumed { id = xi.item.POT_OF_MAPLE_SUGAR, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, { id = xi.item.BLOCK_OF_GELATIN, initial = 0, maxStock = 240, targetStock = 180, buyMax = 3000, restockRate = 0 }, - { id = xi.item.STICK_OF_CINNAMON, initial = 108, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 12 }, + { id = xi.item.STICK_OF_CINNAMON, initial = 144, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 12 }, { id = xi.item.EAR_OF_MILLIONCORN, initial = 144, maxStock = 240, targetStock = 180, buyMax = 240, restockRate = 12 }, { id = xi.item.SLICE_OF_HARE_MEAT, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed { id = xi.item.SLICE_OF_GIANT_SHEEP_MEAT, initial = 0, maxStock = 240, targetStock = 180, buyMax = 240, restockRate = 0 }, -- targetStock assumed { id = xi.item.SLICE_OF_DHALMEL_MEAT, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1200, restockRate = 0 }, -- targetStock assumed { id = xi.item.SHINING_TROUT_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 650, restockRate = 0 }, -- targetStock assumed { id = xi.item.BASTORE_SARDINE_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BIRD_EGG, initial = 44, maxStock = 240, targetStock = 180, buyMax = 280, restockRate = 10 }, - { id = xi.item.FAERIE_APPLE, initial = 48, maxStock = 240, targetStock = 180, buyMax = 220, restockRate = 12 }, + { id = xi.item.BIRD_EGG, initial = 80, maxStock = 240, targetStock = 180, buyMax = 280, restockRate = 10 }, + { id = xi.item.FAERIE_APPLE, initial = 84, maxStock = 240, targetStock = 180, buyMax = 220, restockRate = 12 }, { id = xi.item.ROLANBERRY, initial = 0, maxStock = 240, targetStock = 180, buyMax = 600, restockRate = 0 }, -- targetStock assumed { id = xi.item.LA_THEINE_CABBAGE, initial = 84, maxStock = 240, targetStock = 180, buyMax = 120, restockRate = 12 }, { id = xi.item.CLUMP_OF_BEAUGREENS, initial = 84, maxStock = 240, targetStock = 180, buyMax = 500, restockRate = 12 }, @@ -1078,8 +1078,8 @@ xi.data.guildShops = { id = xi.item.NOSTEAU_HERRING_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 2000, restockRate = 0 }, -- targetStock assumed { id = xi.item.TIGER_COD_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed { id = xi.item.WATERMELON, initial = 16, maxStock = 240, targetStock = 180, buyMax = 1000, restockRate = 2 }, -- targetStock assumed - { id = xi.item.LOAF_OF_WHITE_BREAD, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1000, restockRate = 0 }, - { id = xi.item.LOAF_OF_BLACK_BREAD, initial = 0, maxStock = 240, targetStock = 180, buyMax = 600, restockRate = 0 }, + { id = xi.item.LOAF_OF_WHITE_BREAD, initial = 4, maxStock = 240, targetStock = 180, buyMax = 1000, restockRate = 0 }, + { id = xi.item.LOAF_OF_BLACK_BREAD, initial = 8, maxStock = 240, targetStock = 180, buyMax = 600, restockRate = 0 }, { id = xi.item.LOAF_OF_IRON_BREAD, initial = 0, maxStock = 241, targetStock = 181, buyMax = 500, restockRate = 0 }, { id = xi.item.BRETZEL, initial = 0, maxStock = 240, targetStock = 180, buyMax = 120, restockRate = 0 }, -- targetStock assumed { id = xi.item.ACORN_COOKIE, initial = 0, maxStock = 240, targetStock = 180, buyMax = 120, restockRate = 0 }, -- targetStock assumed @@ -1132,7 +1132,7 @@ xi.data.guildShops = { id = xi.item.BAG_OF_SEMOLINA, initial = 84, maxStock = 240, targetStock = 180, buyMax = 10000, restockRate = 12 }, { id = xi.item.JAR_OF_FISH_STOCK, initial = 150, maxStock = 200, targetStock = 150, buyMax = 3050, restockRate = 100 }, { id = xi.item.SAUCER_OF_SOY_STOCK, initial = 150, maxStock = 200, targetStock = 150, buyMax = 3500, restockRate = 100 }, - { id = xi.item.STICK_OF_VANILLA, initial = 155, maxStock = 200, targetStock = 150, buyMax = 3600, restockRate = 100 }, + { id = xi.item.STICK_OF_VANILLA, initial = 150, maxStock = 200, targetStock = 150, buyMax = 3600, restockRate = 100 }, { id = xi.item.WEDGE_OF_CHALAIMBILLE, initial = 144, maxStock = 240, targetStock = 180, buyMax = 12675, restockRate = 12 }, }, }, @@ -1615,7 +1615,7 @@ xi.data.guildShops = { id = xi.item.BLACK_CHIP, initial = 150, maxStock = 200, targetStock = 150, buyMax = 140000, restockRate = 50, noSell = true }, }, }, - ['Shih_Tayuun'] = -- TODO: Recapture initial + ['Shih_Tayuun'] = { hours = { 8, 23 }, @@ -1625,7 +1625,7 @@ xi.data.guildShops = { id = xi.item.CRAB_SHELL, initial = 0, maxStock = 240, targetStock = 180, buyMax = 11490, restockRate = 0 }, -- targetStock assumed { id = xi.item.SHEEP_TOOTH, initial = 36, maxStock = 240, targetStock = 143, buyMax = 1000, restockRate = 12 }, { id = xi.item.BLACK_TIGER_FANG, initial = 0, maxStock = 180, targetStock = 135, buyMax = 12900, restockRate = 0 }, -- targetStock assumed - { id = xi.item.TURTLE_SHELL, initial = 0, maxStock = 120, targetStock = 90, buyMax = 78000, restockRate = 0 }, + { id = xi.item.TURTLE_SHELL, initial = 4, maxStock = 120, targetStock = 90, buyMax = 78000, restockRate = 0 }, { id = xi.item.SEASHELL, initial = 180, maxStock = 240, targetStock = 180, buyMax = 600, restockRate = 60 }, { id = xi.item.BEETLE_SHELL, initial = 0, maxStock = 60, targetStock = 45, buyMax = 1625, restockRate = 0 }, -- targetStock assumed { id = xi.item.GIANT_FEMUR, initial = 0, maxStock = 60, targetStock = 45, buyMax = 5075, restockRate = 0 }, -- targetStock assumed @@ -1633,7 +1633,7 @@ xi.data.guildShops = { id = xi.item.RAM_HORN, initial = 0, maxStock = 60, targetStock = 45, buyMax = 18000, restockRate = 0 }, -- targetStock assumed { id = xi.item.SCORPION_SHELL, initial = 0, maxStock = 60, targetStock = 45, buyMax = 12780, restockRate = 0 }, -- targetStock assumed { id = xi.item.SCORPION_CLAW, initial = 0, maxStock = 60, targetStock = 45, buyMax = 8190, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CHICKEN_BONE, initial = 0, maxStock = 60, targetStock = 45, buyMax = 200, restockRate = 0 }, + { id = xi.item.CHICKEN_BONE, initial = 7, maxStock = 60, targetStock = 45, buyMax = 200, restockRate = 0 }, { id = xi.item.BONE_HARNESS, initial = 0, maxStock = 60, targetStock = 45, buyMax = 30770, restockRate = 0 }, -- targetStock assumed { id = xi.item.BEETLE_HARNESS, initial = 0, maxStock = 60, targetStock = 45, buyMax = 58875, restockRate = 0 }, -- targetStock assumed { id = xi.item.CARAPACE_HARNESS, initial = 0, maxStock = 60, targetStock = 45, buyMax = 288750, restockRate = 0 }, -- targetStock assumed @@ -1698,12 +1698,12 @@ xi.data.guildShops = { id = xi.item.PATAS, initial = 0, maxStock = 30, targetStock = 25, buyMax = 228800, restockRate = 0 }, -- targetStock assumed { id = xi.item.BONE_PATAS, initial = 0, maxStock = 30, targetStock = 25, buyMax = 252150, restockRate = 0 }, -- targetStock assumed { id = xi.item.GOLD_PATAS, initial = 0, maxStock = 30, targetStock = 25, buyMax = 477750, restockRate = 0 }, -- targetStock assumed - { id = xi.item.KUNAI, initial = 20, maxStock = 30, targetStock = 25, buyMax = 4420, restockRate = 5 }, + { id = xi.item.KUNAI, initial = 25, maxStock = 30, targetStock = 25, buyMax = 4420, restockRate = 5 }, { id = xi.item.SUZUME, initial = 0, maxStock = 30, targetStock = 25, buyMax = 36120, restockRate = 0 }, -- targetStock assumed { id = xi.item.HIEN, initial = 0, maxStock = 30, targetStock = 25, buyMax = 186000, restockRate = 0 }, -- targetStock assumed { id = xi.item.KAGEBOSHI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 215250, restockRate = 0 }, -- targetStock assumed { id = xi.item.WAKIZASHI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 12000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SHINOBI_GATANA, initial = 20, maxStock = 30, targetStock = 25, buyMax = 23325, restockRate = 5 }, + { id = xi.item.SHINOBI_GATANA, initial = 25, maxStock = 30, targetStock = 25, buyMax = 23325, restockRate = 5 }, { id = xi.item.KODACHI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 67200, restockRate = 0 }, -- targetStock assumed -- { id = xi.item.SHINOGI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 0, restockRate = 0 }, -- unsourced (missing on Jirokichi too); disabled { id = xi.item.SAKURAFUBUKI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 127050, restockRate = 0 }, -- targetStock assumed @@ -1711,13 +1711,13 @@ xi.data.guildShops = { id = xi.item.KABUTOWARI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 322000, restockRate = 0 }, -- targetStock assumed { id = xi.item.UCHIGATANA, initial = 0, maxStock = 30, targetStock = 25, buyMax = 26680, restockRate = 0 }, -- targetStock assumed { id = xi.item.DOTANUKI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 147957, restockRate = 0 }, -- targetStock assumed - { id = xi.item.KANESADA, initial = 15, maxStock = 30, targetStock = 25, buyMax = 99000, restockRate = 10 }, + { id = xi.item.KANESADA, initial = 25, maxStock = 30, targetStock = 25, buyMax = 99000, restockRate = 10 }, { id = xi.item.ASHURA, initial = 0, maxStock = 30, targetStock = 25, buyMax = 227500, restockRate = 0 }, -- targetStock assumed - { id = xi.item.TACHI, initial = 20, maxStock = 30, targetStock = 25, buyMax = 15704, restockRate = 5 }, + { id = xi.item.TACHI, initial = 25, maxStock = 30, targetStock = 25, buyMax = 15704, restockRate = 5 }, { id = xi.item.NODACHI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 40620, restockRate = 0 }, -- targetStock assumed { id = xi.item.JINDACHI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 722000, restockRate = 0 }, -- targetStock assumed { id = xi.item.OKANEHIRA, initial = 0, maxStock = 30, targetStock = 25, buyMax = 104729, restockRate = 0 }, -- targetStock assumed - { id = xi.item.KOTETSU, initial = 18, maxStock = 30, targetStock = 25, buyMax = 125440, restockRate = 7 }, + { id = xi.item.KOTETSU, initial = 19, maxStock = 30, targetStock = 25, buyMax = 125440, restockRate = 7 }, { id = xi.item.HOMURA, initial = 0, maxStock = 30, targetStock = 25, buyMax = 207000, restockRate = 0 }, -- targetStock assumed { id = xi.item.MIKAZUKI, initial = 0, maxStock = 30, targetStock = 25, buyMax = 317900, restockRate = 0 }, -- targetStock assumed { id = xi.item.DAIHANNYA, initial = 0, maxStock = 30, targetStock = 25, buyMax = 816750, restockRate = 0 }, -- targetStock assumed @@ -1872,29 +1872,29 @@ xi.data.guildShops = holiday = xi.day.FIRESDAY, stock = { - { id = xi.item.BALL_OF_SARUTA_COTTON, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.FLAX_FLOWER, initial = 15, maxStock = 240, targetStock = 180, buyMax = 1250, restockRate = 15 }, - { id = xi.item.CLUMP_OF_SHEEP_WOOL, initial = 12, maxStock = 240, targetStock = 180, buyMax = 4500, restockRate = 12 }, - { id = xi.item.PIECE_OF_CRAWLER_COCOON, initial = 0, maxStock = 60, targetStock = 45, buyMax = 930, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SPIDER_WEB, initial = 0, maxStock = 60, targetStock = 45, buyMax = 36300, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SPOOL_OF_GRASS_THREAD, initial = 30, maxStock = 240, targetStock = 180, buyMax = 300, restockRate = 30 }, - { id = xi.item.SPOOL_OF_COTTON_THREAD, initial = 15, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 15 }, - { id = xi.item.SPOOL_OF_LINEN_THREAD, initial = 9, maxStock = 240, targetStock = 135, buyMax = 5000, restockRate = 9, priceFloor = 135 }, - { id = xi.item.SPOOL_OF_WOOL_THREAD, initial = 6, maxStock = 240, targetStock = 90, buyMax = 18000, restockRate = 6, priceFloor = 90 }, - { id = xi.item.SPOOL_OF_SILK_THREAD, initial = 4, maxStock = 120, targetStock = 24, buyMax = 4060, restockRate = 4 }, - { id = xi.item.SPOOL_OF_SILVER_THREAD, initial = 2, maxStock = 120, targetStock = 110, buyMax = 5000, restockRate = 2 }, - { id = xi.item.SPOOL_OF_GOLD_THREAD, initial = 1, maxStock = 120, targetStock = 110, buyMax = 114000, restockRate = 1 }, - { id = xi.item.SPOOL_OF_RAINBOW_THREAD, initial = 0, maxStock = 120, targetStock = 90, buyMax = 277200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SQUARE_OF_GRASS_CLOTH, initial = 12, maxStock = 240, targetStock = 180, buyMax = 1600, restockRate = 12 }, - { id = xi.item.SQUARE_OF_COTTON_CLOTH, initial = 12, maxStock = 240, targetStock = 180, buyMax = 3200, restockRate = 12 }, - { id = xi.item.SQUARE_OF_LINEN_CLOTH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 15000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SQUARE_OF_WOOL_CLOTH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 54000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SQUARE_OF_VELVET_CLOTH, initial = 0, maxStock = 160, targetStock = 120, buyMax = 79750, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SQUARE_OF_SILK_CLOTH, initial = 0, maxStock = 160, targetStock = 120, buyMax = 105000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SQUARE_OF_RAINBOW_CLOTH, initial = 0, maxStock = 160, targetStock = 120, buyMax = 567675, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BIRD_FEATHER, initial = 0, maxStock = 240, targetStock = 180, buyMax = 40, restockRate = 0 }, -- targetStock assumed - { id = xi.item.YAGUDO_FEATHER, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.GIANT_BIRD_FEATHER, initial = 0, maxStock = 240, targetStock = 180, buyMax = 4590, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BALL_OF_SARUTA_COTTON, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.FLAX_FLOWER, initial = 90, maxStock = 240, targetStock = 180, buyMax = 1250, restockRate = 15 }, + { id = xi.item.CLUMP_OF_SHEEP_WOOL, initial = 79, maxStock = 240, targetStock = 180, buyMax = 4500, restockRate = 12 }, + { id = xi.item.PIECE_OF_CRAWLER_COCOON, initial = 0, maxStock = 60, targetStock = 45, buyMax = 930, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SPIDER_WEB, initial = 0, maxStock = 60, targetStock = 45, buyMax = 36300, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SPOOL_OF_GRASS_THREAD, initial = 150, maxStock = 240, targetStock = 180, buyMax = 300, restockRate = 30 }, + { id = xi.item.SPOOL_OF_COTTON_THREAD, initial = 120, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 15 }, + { id = xi.item.SPOOL_OF_LINEN_THREAD, initial = 108, maxStock = 240, targetStock = 135, buyMax = 5000, restockRate = 9, priceFloor = 135 }, + { id = xi.item.SPOOL_OF_WOOL_THREAD, initial = 72, maxStock = 240, targetStock = 90, buyMax = 18000, restockRate = 6, priceFloor = 90 }, + { id = xi.item.SPOOL_OF_SILK_THREAD, initial = 20, maxStock = 120, targetStock = 24, buyMax = 4060, restockRate = 4 }, + { id = xi.item.SPOOL_OF_SILVER_THREAD, initial = 10, maxStock = 120, targetStock = 110, buyMax = 5000, restockRate = 2 }, + { id = xi.item.SPOOL_OF_GOLD_THREAD, initial = 5, maxStock = 120, targetStock = 110, buyMax = 114000, restockRate = 1 }, + { id = xi.item.SPOOL_OF_RAINBOW_THREAD, initial = 0, maxStock = 120, targetStock = 90, buyMax = 277200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SQUARE_OF_GRASS_CLOTH, initial = 36, maxStock = 240, targetStock = 180, buyMax = 1600, restockRate = 12 }, + { id = xi.item.SQUARE_OF_COTTON_CLOTH, initial = 36, maxStock = 240, targetStock = 180, buyMax = 3200, restockRate = 12 }, + { id = xi.item.SQUARE_OF_LINEN_CLOTH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 15000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SQUARE_OF_WOOL_CLOTH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 54000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SQUARE_OF_VELVET_CLOTH, initial = 0, maxStock = 160, targetStock = 120, buyMax = 79750, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SQUARE_OF_SILK_CLOTH, initial = 0, maxStock = 160, targetStock = 120, buyMax = 105000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SQUARE_OF_RAINBOW_CLOTH, initial = 0, maxStock = 160, targetStock = 120, buyMax = 567675, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BIRD_FEATHER, initial = 0, maxStock = 240, targetStock = 180, buyMax = 40, restockRate = 0 }, -- targetStock assumed + { id = xi.item.YAGUDO_FEATHER, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.GIANT_BIRD_FEATHER, initial = 0, maxStock = 240, targetStock = 180, buyMax = 4590, restockRate = 0 }, -- targetStock assumed }, }, ['Tsutsuroon'] = @@ -2174,7 +2174,7 @@ xi.data.guildShops = { id = xi.item.HEAD_OF_NAPA, initial = 150, maxStock = 200, targetStock = 150, buyMax = 1250, restockRate = 100 }, }, }, - ['Wahnid'] = -- TODO: Recapture initial + ['Wahnid'] = { hours = { 1, 18 }, holiday = xi.day.LIGHTSDAY, @@ -2182,36 +2182,36 @@ xi.data.guildShops = { { id = xi.item.LITTLE_WORM, initial = 180, maxStock = 240, targetStock = 180, buyMax = 20, restockRate = 60 }, -- targetStock assumed { id = xi.item.LUGWORM, initial = 180, maxStock = 240, targetStock = 180, buyMax = 60, restockRate = 60 }, -- targetStock assumed - { id = xi.item.BALL_OF_SARDINE_PASTE, initial = 156, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed - { id = xi.item.BALL_OF_CRAYFISH_PASTE, initial = 156, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed - { id = xi.item.BALL_OF_INSECT_PASTE, initial = 156, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 12 }, -- targetStock assumed - { id = xi.item.BALL_OF_TROUT_PASTE, initial = 156, maxStock = 240, targetStock = 180, buyMax = 348, restockRate = 12 }, -- targetStock assumed - { id = xi.item.MEATBALL, initial = 156, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed - { id = xi.item.SLICE_OF_SARDINE, initial = 156, maxStock = 240, targetStock = 180, buyMax = 1425, restockRate = 12 }, -- targetStock assumed - { id = xi.item.SLICE_OF_COD, initial = 57, maxStock = 240, targetStock = 180, buyMax = 1425, restockRate = 12 }, -- targetStock assumed - { id = xi.item.PEELED_LOBSTER, initial = 156, maxStock = 240, targetStock = 180, buyMax = 1470, restockRate = 12 }, -- targetStock assumed - { id = xi.item.SLICE_OF_BLUETAIL, initial = 156, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed - { id = xi.item.PEELED_CRAYFISH, initial = 156, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed - { id = xi.item.SLICE_OF_MOAT_CARP, initial = 156, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed - { id = xi.item.FLY_LURE, initial = 156, maxStock = 240, targetStock = 180, buyMax = 3600, restockRate = 12 }, -- targetStock assumed - { id = xi.item.MINNOW, initial = 156, maxStock = 240, targetStock = 180, buyMax = 2025, restockRate = 5 }, -- targetStock assumed + { id = xi.item.BALL_OF_SARDINE_PASTE, initial = 144, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed + { id = xi.item.BALL_OF_CRAYFISH_PASTE, initial = 144, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed + { id = xi.item.BALL_OF_INSECT_PASTE, initial = 144, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 12 }, -- targetStock assumed + { id = xi.item.BALL_OF_TROUT_PASTE, initial = 144, maxStock = 240, targetStock = 180, buyMax = 348, restockRate = 12 }, -- targetStock assumed + { id = xi.item.MEATBALL, initial = 144, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed + { id = xi.item.SLICE_OF_SARDINE, initial = 144, maxStock = 240, targetStock = 180, buyMax = 1425, restockRate = 12 }, -- targetStock assumed + { id = xi.item.SLICE_OF_COD, initial = 144, maxStock = 240, targetStock = 180, buyMax = 1425, restockRate = 12 }, -- targetStock assumed + { id = xi.item.PEELED_LOBSTER, initial = 144, maxStock = 240, targetStock = 180, buyMax = 1470, restockRate = 12 }, -- targetStock assumed + { id = xi.item.SLICE_OF_BLUETAIL, initial = 144, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed + { id = xi.item.PEELED_CRAYFISH, initial = 144, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed + { id = xi.item.SLICE_OF_MOAT_CARP, initial = 144, maxStock = 240, targetStock = 180, buyMax = 350, restockRate = 12 }, -- targetStock assumed + { id = xi.item.FLY_LURE, initial = 144, maxStock = 240, targetStock = 180, buyMax = 3600, restockRate = 12 }, -- targetStock assumed + { id = xi.item.MINNOW, initial = 144, maxStock = 240, targetStock = 180, buyMax = 2025, restockRate = 5 }, -- targetStock assumed { id = xi.item.SINKING_MINNOW, initial = 0, maxStock = 120, targetStock = 90, buyMax = 5160, restockRate = 3 }, -- targetStock assumed - { id = xi.item.WORM_LURE, initial = 0, maxStock = 240, targetStock = 180, buyMax = 3600, restockRate = 0 }, -- targetStock assumed + { id = xi.item.WORM_LURE, initial = 144, maxStock = 240, targetStock = 180, buyMax = 3600, restockRate = 0 }, -- targetStock assumed { id = xi.item.FROG_LURE, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed { id = xi.item.SHRIMP_LURE, initial = 0, maxStock = 120, targetStock = 90, buyMax = 5730, restockRate = 0 }, -- targetStock assumed { id = xi.item.LIZARD_LURE, initial = 0, maxStock = 120, targetStock = 90, buyMax = 4590, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SABIKI_RIG, initial = 156, maxStock = 240, targetStock = 180, buyMax = 15960, restockRate = 5 }, -- targetStock assumed - { id = xi.item.WILLOW_FISHING_ROD, initial = 0, maxStock = 180, targetStock = 135, buyMax = 360, restockRate = 0 }, -- targetStock assumed - { id = xi.item.YEW_FISHING_ROD, initial = 117, maxStock = 180, targetStock = 160, buyMax = 1180, restockRate = 9 }, -- targetStock assumed - { id = xi.item.BAMBOO_FISHING_ROD, initial = 0, maxStock = 180, targetStock = 160, buyMax = 2700, restockRate = 9 }, - { id = xi.item.FASTWATER_FISHING_ROD, initial = 0, maxStock = 120, targetStock = 90, buyMax = 6975, restockRate = 0 }, -- targetStock assumed - { id = xi.item.TARUTARU_FISHING_ROD, initial = 39, maxStock = 60, targetStock = 45, buyMax = 27180, restockRate = 10 }, -- targetStock assumed - { id = xi.item.MITHRAN_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 171600, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SABIKI_RIG, initial = 144, maxStock = 240, targetStock = 180, buyMax = 15960, restockRate = 5 }, -- targetStock assumed + { id = xi.item.WILLOW_FISHING_ROD, initial = 108, maxStock = 180, targetStock = 135, buyMax = 360, restockRate = 0 }, -- targetStock assumed + { id = xi.item.YEW_FISHING_ROD, initial = 108, maxStock = 180, targetStock = 160, buyMax = 1180, restockRate = 9 }, -- targetStock assumed + { id = xi.item.BAMBOO_FISHING_ROD, initial = 108, maxStock = 180, targetStock = 160, buyMax = 2700, restockRate = 9 }, + { id = xi.item.FASTWATER_FISHING_ROD, initial = 72, maxStock = 120, targetStock = 90, buyMax = 6975, restockRate = 0 }, -- targetStock assumed + { id = xi.item.TARUTARU_FISHING_ROD, initial = 36, maxStock = 60, targetStock = 45, buyMax = 27180, restockRate = 10 }, -- targetStock assumed + { id = xi.item.MITHRAN_FISHING_ROD, initial = 40, maxStock = 60, targetStock = 45, buyMax = 171600, restockRate = 0 }, -- targetStock assumed { id = xi.item.GLASS_FIBER_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 43140, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CLOTHESPOLE, initial = 0, maxStock = 60, targetStock = 45, buyMax = 13200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SINGLE_HOOK_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed - { id = xi.item.DENIZANASI, initial = 0, maxStock = 240, targetStock = 180, buyMax = 170, restockRate = 12 }, - { id = xi.item.CRAYFISH_1, initial = 24, maxStock = 120, targetStock = 90, buyMax = 200, restockRate = 6 }, -- targetStock assumed + { id = xi.item.CLOTHESPOLE, initial = 36, maxStock = 60, targetStock = 45, buyMax = 13200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SINGLE_HOOK_FISHING_ROD, initial = 36, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed + { id = xi.item.DENIZANASI, initial = 144, maxStock = 240, targetStock = 180, buyMax = 170, restockRate = 12 }, + { id = xi.item.CRAYFISH_1, initial = 18, maxStock = 120, targetStock = 90, buyMax = 200, restockRate = 6 }, -- targetStock assumed { id = xi.item.GURNARD, initial = 0, maxStock = 120, targetStock = 90, buyMax = 28500, restockRate = 0 }, -- targetStock assumed { id = xi.item.MOAT_CARP_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 200, restockRate = 0 }, -- targetStock assumed { id = xi.item.FOREST_CARP, initial = 0, maxStock = 120, targetStock = 90, buyMax = 300, restockRate = 0 }, -- targetStock assumed @@ -2362,33 +2362,33 @@ xi.data.guildShops = holiday = xi.day.ICEDAY, stock = { - { id = xi.item.CHUNK_OF_SILVER_ORE, initial = 100, maxStock = 200, targetStock = 100, buyMax = 2100, restockRate = 10, priceFloor = 180 }, - { id = xi.item.CHUNK_OF_MYTHRIL_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 10000, restockRate = 0, priceFloor = 15 }, - { id = xi.item.CHUNK_OF_GOLD_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 23100, restockRate = 0, priceFloor = 15 }, - { id = xi.item.CHUNK_OF_PLATINUM_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 58500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.COPPER_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 600, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.BRASS_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.SILVER_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 10500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.MYTHRIL_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 50000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.GOLD_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 115500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.PLATINUM_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 292500, restockRate = 0, priceFloor = 15 }, - { id = xi.item.BRASS_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1200, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.MYTHRIL_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 60000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.GOLD_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 371700, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.PLATINUM_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 581250, restockRate = 0, priceFloor = 15 }, - { id = xi.item.HANDFUL_OF_BRASS_SCALES, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1400, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.SILVER_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 78000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.MYTHRIL_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 70000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.GOLD_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 255240, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.PLATINUM_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 418500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.RED_ROCK, initial = 5, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, - { id = xi.item.BLUE_ROCK, initial = 5, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, - { id = xi.item.YELLOW_ROCK, initial = 5, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, - { id = xi.item.GREEN_ROCK, initial = 5, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, - { id = xi.item.TRANSLUCENT_ROCK, initial = 5, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, - { id = xi.item.PURPLE_ROCK, initial = 5, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, - { id = xi.item.BLACK_ROCK, initial = 5, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, - { id = xi.item.WHITE_ROCK, initial = 5, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, + { id = xi.item.CHUNK_OF_SILVER_ORE, initial = 90, maxStock = 200, targetStock = 100, buyMax = 2100, restockRate = 10, priceFloor = 180 }, + { id = xi.item.CHUNK_OF_MYTHRIL_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 10000, restockRate = 0, priceFloor = 15 }, + { id = xi.item.CHUNK_OF_GOLD_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 23100, restockRate = 0, priceFloor = 15 }, + { id = xi.item.CHUNK_OF_PLATINUM_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 58500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.COPPER_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 600, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.BRASS_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.SILVER_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 10500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.MYTHRIL_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 50000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.GOLD_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 115500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.PLATINUM_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 292500, restockRate = 0, priceFloor = 15 }, + { id = xi.item.BRASS_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1200, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.MYTHRIL_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 60000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.GOLD_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 371700, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.PLATINUM_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 581250, restockRate = 0, priceFloor = 15 }, + { id = xi.item.HANDFUL_OF_BRASS_SCALES, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1400, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.SILVER_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 78000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.MYTHRIL_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 70000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.GOLD_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 255240, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.PLATINUM_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 418500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.RED_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, + { id = xi.item.BLUE_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, + { id = xi.item.YELLOW_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, + { id = xi.item.GREEN_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, + { id = xi.item.TRANSLUCENT_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, + { id = xi.item.PURPLE_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, + { id = xi.item.BLACK_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, + { id = xi.item.WHITE_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, }, }, ['Yahliq'] = From 3855c78e9650be890e856ed21ec7ecb18f36ebda Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Thu, 9 Jul 2026 09:46:50 -0400 Subject: [PATCH 14/59] Tiamat Mighty Strikes Bugfix Fixes Mighty Strikes --- scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua b/scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua index 27b5fd8f3cd..24372ebffa1 100644 --- a/scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua +++ b/scripts/zones/Attohwa_Chasm/mobs/Tiamat.lua @@ -183,6 +183,8 @@ entity.onMobFight = function(mob, target) checkEnrage(mob) local currentAnimation = mob:getAnimationSub() + local currentTime = GetSystemTime() + if currentAnimation == 1 and mob:hasStatusEffect(xi.effect.SLEEP_I) @@ -204,7 +206,15 @@ entity.onMobFight = function(mob, target) return end - local currentTime = GetSystemTime() + if + currentAnimation == 2 and + currentTime > mob:getLocalVar('twohourTime') + then + mob:useMobAbility(xi.mobSkill.MIGHTY_STRIKES_1) + mob:setLocalVar('twohourTime', currentTime + 210) + return + end + local flightTime = mob:getLocalVar('flightTime') local changeHP = mob:getLocalVar('changeHP') local currentHP = mob:getHP() From 6f5b60c3e7eab3dfd5e362df84814984052732ac Mon Sep 17 00:00:00 2001 From: Skold177 <113406182+Skold177@users.noreply.github.com> Date: Wed, 8 Jul 2026 16:29:06 -0400 Subject: [PATCH 15/59] Era Skillchain Module Adds a Era Skillchain Module --- modules/era/lua/globals/combat/skillchain.lua | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 modules/era/lua/globals/combat/skillchain.lua diff --git a/modules/era/lua/globals/combat/skillchain.lua b/modules/era/lua/globals/combat/skillchain.lua new file mode 100644 index 00000000000..a8d88f26261 --- /dev/null +++ b/modules/era/lua/globals/combat/skillchain.lua @@ -0,0 +1,132 @@ +----------------------------------- +-- Era Skillchain Module +-- Adds a resistance check back to skillchain damage calculations. +-- https://wiki.ffo.jp/html/32936.html +----------------------------------- +require('modules/module_utils') +----------------------------------- +local moduleName = 'era_skillchain' + +if xi.module.isContentEnabled('SOA') then + return { name = moduleName } +end + +local m = Module:new(moduleName) + +local chainMultipliers = +{ + [1] = { 0.50, 0.60, 0.70, 0.80, 0.90, 1.00 }, -- Level 1 + [2] = { 0.60, 0.75, 1.00, 1.25, 1.50, 1.75 }, -- Level 2 + [3] = { 1.00, 1.50, 1.75, 2.00, 2.25, 2.50 }, -- Level 3 + [4] = { 1.50, 1.80, 2.10, 2.40, 2.70, 3.00 }, -- Level 4 "Radiance/Umbra" +} + +local function getSkillchainElementToUse(target, skillchainType) + -- Build skillchain available elements table. + local elementTable = {} + for i = xi.element.FIRE, xi.element.DARK do + if xi.data.element.skillchainElementTable[i][skillchainType] > 0 then + table.insert(elementTable, #elementTable + 1, i) + end + end + + -- Early return: Single elemental SC. No need to continue. + if #elementTable == 1 then + return elementTable[1] + end + + -- Get lowest resistance rank value. + local lowestResRank = 11 + local lowestElement = xi.element.FIRE + + for j = #elementTable, 1, -1 do + local resRankValue = target:getMod(xi.data.element.getElementalResistanceRankModifier(elementTable[j])) + if resRankValue <= lowestResRank then + lowestResRank = resRankValue + lowestElement = elementTable[j] + end + end + + return lowestElement +end + +m:addOverride('xi.combat.skillchain.calculateSkillchainDamage', function(actor, target, baseDamage) + local skillchainEffect = target:getStatusEffect(xi.effect.SKILLCHAIN) + if not skillchainEffect then + return 0 + end + + local skillchainType = skillchainEffect:getPower() + if skillchainType == 0 then + return 0 + end + + local skillchainLevel = skillchainEffect:getTier() + if skillchainLevel < 1 or skillchainLevel > 4 then + return 0 + end + + local skillchainCount = skillchainEffect:getSubPower() + if skillchainCount < 1 or skillchainCount > 6 then + return 0 + end + + local skillchainElement = getSkillchainElementToUse(target, skillchainType) + if not skillchainElement then + return 0 + end + + if xi.spells.damage.calculateNullification(target, skillchainElement, true, false) == 0 then + return 0 + end + + -- Calculate resist, base damage and multipliers. + local finalDamage = math.abs(baseDamage) -- Damage from skillchain, no matter if absorbed or not. + local levelMultiplier = chainMultipliers[skillchainLevel][skillchainCount] + local bonusMultiplier = 1 + actor:getMod(xi.mod.SKILLCHAINBONUS) / 100 + local damageMultiplier = 1 + actor:getMod(xi.mod.SKILLCHAINDMG) / 10000 + local dayWeatherMultiplier = xi.spells.damage.calculateDayAndWeather(actor, skillchainElement, false) + local staffMultiplier = xi.spells.damage.calculateElementalStaffBonus(actor, skillchainElement) + local affinityMultiplier = xi.spells.damage.calculateElementalAffinityBonus(actor, skillchainElement) + local resistRate = xi.combat.magicHitRate.calculateResistRate(actor, target, 0, 0, xi.skillRank.A_PLUS, skillchainElement, 0, 0, 0) + local magicTakenMultiplier = xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false) + + -- Unconfirmed order. + local inninMultiplier = 1 + actor:getMerit(xi.merit.INNIN_EFFECT) / 100 + local sengikoriMultiplier = 1 + target:getMod(xi.mod.SENGIKORI_SC_DMG_DEBUFF) / 100 + local absorptionMultiplier = xi.spells.damage.calculateAbsorption(target, skillchainElement, true) + + -- Apply multipliers in order and floor after each step. + finalDamage = math.floor(finalDamage * levelMultiplier) + finalDamage = math.floor(finalDamage * bonusMultiplier) + actor:getMod(xi.mod.MAGIC_DAMAGE) + finalDamage = math.floor(finalDamage * damageMultiplier) + finalDamage = math.floor(finalDamage * dayWeatherMultiplier) + finalDamage = math.floor(finalDamage * staffMultiplier) + finalDamage = math.floor(finalDamage * affinityMultiplier) + finalDamage = math.floor(finalDamage * resistRate) + finalDamage = math.floor(finalDamage * magicTakenMultiplier) + finalDamage = math.floor(finalDamage * inninMultiplier) + finalDamage = math.floor(finalDamage * sengikoriMultiplier) + finalDamage = math.floor(finalDamage * absorptionMultiplier) + + -- Handle (reset) Sengikori. + target:setMod(xi.mod.SENGIKORI_SC_DMG_DEBUFF, 0) + + -- Handle other damage alterations. + if finalDamage > 0 then + finalDamage = utils.clamp(utils.handlePhalanx(target, finalDamage), 0, 99999) + finalDamage = utils.clamp(utils.handleOneForAll(target, finalDamage), 0, 99999) + finalDamage = utils.clamp(utils.handleStoneskin(target, finalDamage), 0, 99999) + finalDamage = target:checkDamageCap(finalDamage) + + target:takeDamage(finalDamage, actor, xi.attackType.SPECIAL, xi.damageType.ELEMENTAL + skillchainElement) + + -- Handle absorbption. + else + target:addHP(-finalDamage) + end + + return finalDamage +end) + +return m From f38a1c51063c647a7693b80e00b8d2c955110c24 Mon Sep 17 00:00:00 2001 From: Montijin <2160211+montijin@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:13:56 -0500 Subject: [PATCH 16/59] Correct HQ results for Cherry Muffin Recipe --- sql/synth_recipes.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/synth_recipes.sql b/sql/synth_recipes.sql index c595bce3ddf..b54fb638529 100644 --- a/sql/synth_recipes.sql +++ b/sql/synth_recipes.sql @@ -4374,7 +4374,7 @@ INSERT INTO `synth_recipes` VALUES (72007,0,0,0,0,0,0,0,0,0,42,4101,4243,610,615 INSERT INTO `synth_recipes` VALUES (72008,0,0,0,0,0,0,0,0,0,42,4096,4238,627,936,2236,2237,4378,4503,4509,5562,5596,5597,5597,5597,4,4,4,4,'Simit','TOAU'); INSERT INTO `synth_recipes` VALUES (72009,0,0,0,0,0,0,0,0,0,43,4101,4243,5452,5452,0,0,0,0,0,0,17876,17877,17877,17877,12,4,8,12,'Fish Broth','TOAU'); INSERT INTO `synth_recipes` VALUES (72010,0,0,0,0,0,0,0,0,0,43,4101,4243,936,4390,4390,4390,0,0,0,0,4425,4425,4425,4425,1,1,1,1,'Tomato Juice',NULL); -INSERT INTO `synth_recipes` VALUES (72011,0,2042,0,0,0,0,0,0,0,43,4096,4238,610,615,627,4378,4445,4570,0,0,5653,5654,5654,5654,4,1,1,1,'Cherry Muffin','WOTG'); +INSERT INTO `synth_recipes` VALUES (72011,0,2042,0,0,0,0,0,0,0,43,4096,4238,610,615,627,4378,4445,4570,0,0,5653,5654,5654,5654,4,4,4,4,'Cherry Muffin','WOTG'); INSERT INTO `synth_recipes` VALUES (72012,0,0,0,0,0,0,0,0,0,43,4098,4240,3915,3915,3915,0,0,0,0,0,3916,3916,3916,3916,1,2,3,4,'Saffron','SOA'); INSERT INTO `synth_recipes` VALUES (72013,0,0,0,0,0,0,0,0,0,44,4097,4239,627,1111,1523,2112,4570,5703,0,0,5729,5730,5730,5730,1,1,1,1,'Bavarois','WOTG'); INSERT INTO `synth_recipes` VALUES (72014,0,2041,0,0,0,0,0,0,0,44,4101,4243,936,1840,0,0,0,0,0,0,1776,1776,1776,1776,1,2,3,4,'Spaghetti','COP'); From f64a9b34a55550d573a79aa5b4e22556881e71dc Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 10:36:03 -0600 Subject: [PATCH 17/59] Tweak Leather guild shop initial stock --- scripts/data/guild_shops.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/data/guild_shops.lua b/scripts/data/guild_shops.lua index 8a591511775..6ec115e8c78 100644 --- a/scripts/data/guild_shops.lua +++ b/scripts/data/guild_shops.lua @@ -1143,10 +1143,10 @@ xi.data.guildShops = stock = { { id = xi.item.DHALMEL_HIDE, initial = 0, maxStock = 120, targetStock = 90, buyMax = 5000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.WOLF_HIDE, initial = 90, maxStock = 120, targetStock = 90, buyMax = 3225, restockRate = 6 }, - { id = xi.item.RAM_SKIN, initial = 90, maxStock = 120, targetStock = 90, buyMax = 6250, restockRate = 6 }, - { id = xi.item.TIGER_HIDE, initial = 57, maxStock = 120, targetStock = 57, buyMax = 8750, restockRate = 6 }, - { id = xi.item.COEURL_HIDE, initial = 66, maxStock = 120, targetStock = 66, buyMax = 18000, restockRate = 6 }, + { id = xi.item.WOLF_HIDE, initial = 12, maxStock = 120, targetStock = 90, buyMax = 3225, restockRate = 6 }, + { id = xi.item.RAM_SKIN, initial = 12, maxStock = 120, targetStock = 90, buyMax = 6250, restockRate = 6 }, + { id = xi.item.TIGER_HIDE, initial = 12, maxStock = 120, targetStock = 57, buyMax = 8750, restockRate = 6 }, + { id = xi.item.COEURL_HIDE, initial = 12, maxStock = 120, targetStock = 66, buyMax = 18000, restockRate = 6 }, { id = xi.item.MANTICORE_HIDE, initial = 0, maxStock = 120, targetStock = 90, buyMax = 45600, restockRate = 0 }, -- targetStock assumed { id = xi.item.SQUARE_OF_SHEEP_LEATHER, initial = 0, maxStock = 120, targetStock = 90, buyMax = 1000, restockRate = 0 }, -- targetStock assumed { id = xi.item.SQUARE_OF_DHALMEL_LEATHER, initial = 0, maxStock = 120, targetStock = 90, buyMax = 11650, restockRate = 0 }, -- targetStock assumed @@ -1155,8 +1155,8 @@ xi.data.guildShops = { id = xi.item.SQUARE_OF_COEURL_LEATHER, initial = 0, maxStock = 120, targetStock = 90, buyMax = 38610, restockRate = 0 }, -- targetStock assumed { id = xi.item.SQUARE_OF_MANTICORE_LEATHER, initial = 0, maxStock = 60, targetStock = 45, buyMax = 55900, restockRate = 0 }, -- targetStock assumed { id = xi.item.LIZARD_SKIN, initial = 0, maxStock = 60, targetStock = 45, buyMax = 1625, restockRate = 0 }, -- targetStock assumed - { id = xi.item.RAPTOR_SKIN, initial = 45, maxStock = 60, targetStock = 45, buyMax = 14370, restockRate = 2 }, - { id = xi.item.COCKATRICE_SKIN, initial = 45, maxStock = 60, targetStock = 45, buyMax = 17670, restockRate = 2 }, + { id = xi.item.RAPTOR_SKIN, initial = 34, maxStock = 60, targetStock = 45, buyMax = 14370, restockRate = 2 }, + { id = xi.item.COCKATRICE_SKIN, initial = 34, maxStock = 60, targetStock = 45, buyMax = 17670, restockRate = 2 }, { id = xi.item.CLUMP_OF_SHEEP_WOOL, initial = 0, maxStock = 240, targetStock = 180, buyMax = 4500, restockRate = 0 }, -- targetStock assumed { id = xi.item.WILLOW_LOG, initial = 180, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 60 }, { id = xi.item.FLASK_OF_DISTILLED_WATER, initial = 180, maxStock = 240, targetStock = 180, buyMax = 60, restockRate = 60 }, From 5e018a4779abdd9e938d4109618185259a5b5736 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 10:43:54 -0600 Subject: [PATCH 18/59] Phantom Gem Box NPC in cities --- sql/npc_list.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index c96ca21e227..77100aa1082 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -30697,7 +30697,7 @@ INSERT INTO `npc_list` VALUES (17723816,'Bertenont','Bertenont',0,0.000,0.000,0. INSERT INTO `npc_list` VALUES (17723817,'Suspicious_Elvaan','Suspicious Elvaan',122,82.217,-0.199,42.682,14,50,50,0,0,0,0,3,0x01001E037D102E202E30C940C950006000700000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17723818,'Odyssean_Passage','Odyssean Passage',124,82.273,-0.199,41.176,1,50,50,0,0,0,0,3,0x0000750900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17723819,'Trisvain','Trisvain',128,28.317,-0.199,84.776,1,50,50,0,0,0,0,27,0x01001E037D1003200330C940C950006000700000,32,'WOTG',1); --- TODO: 17723820 Phantom gems Box +INSERT INTO `npc_list` VALUES (17723820,'Phantom_gems_Box','Phantom gems Box',96,27.700,-0.199,86.350,1,50,50,0,0,0,2,27,0x0000C00300000000000000000000000000000000,32,'TVR',1); INSERT INTO `npc_list` VALUES (17723821,'Excenmille','Excenmille',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100020300103E203E303C403C50D16000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17723822,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (17723823,'NPC[1ae]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); @@ -32230,7 +32230,7 @@ INSERT INTO `npc_list` VALUES (17744181,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17744182,'Suspicious_Galka','Suspicious Galka',124,81.610,8.499,-229.065,8,50,50,0,0,0,0,3,0x01001E087D102E202E30C940C950006000700000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17744183,'Odyssean_Passage','Odyssean Passage',141,81.578,8.499,-231.082,1,50,50,0,0,0,0,3,0x0000750900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17744184,'Raving_Opossum','Raving Opossum',68,42.141,7.500,-183.762,22,50,50,0,0,0,0,27,0x01001E087D1003200330C940C950006000700000,32,'SOA',1); --- TODO: 17744185 Phantom gems Box +INSERT INTO `npc_list` VALUES (17744185,'Phantom_gems_Box','Phantom gems Box',128,43.000,7.500,-185.550,1,50,50,0,0,0,2,27,0x0000C00300000000000000000000000000000000,32,'TVR',1); INSERT INTO `npc_list` VALUES (17744186,'Greeter_Moogle','Greeter Moogle',187,40.500,8.500,-242.276,15,50,50,0,0,0,2,3,0x0000730900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17744187,'Mog_Dinghy','Mog Dinghy',187,81.039,9.500,-174.014,32769,50,50,0,0,96,0,3,0x0000E00A00000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17744188,'Skipper_Moogle','Skipper Moogle',57,75.313,7.500,-176.879,1,50,50,0,0,0,0,259,0x0000390900000000000000000000000000000000,0,'SOA',1); @@ -33672,7 +33672,7 @@ INSERT INTO `npc_list` VALUES (17760504,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17760505,'Suspicious_Tarutaru','Suspicious Tarutaru',128,221.286,-12.000,225.311,14,50,50,0,0,0,0,3,0x01001E057D102E202E30C940C950006000700000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17760506,'Odyssean_Passage','Odyssean Passage',128,221.107,-12.000,223.535,1,50,50,0,0,0,0,3,0x0000750900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17760507,'Mimble-Pimble','Mimble-Pimble',182,197.507,-8.670,177.602,1,50,50,0,0,0,0,27,0x01001E057D1003200330C940C950006000700000,32,'SOA',1); --- TODO: 17760508 Phantom gems Box +INSERT INTO `npc_list` VALUES (17760508,'Phantom_gems_Box','Phantom gems Box',202,196.130,-8.670,177.430,1,50,50,0,0,0,2,27,0x0000C00300000000000000000000000000000000,32,'TVR',1); INSERT INTO `npc_list` VALUES (17760509,'Mog_Dinghy','Mog Dinghy',0,-196.752,-0.300,69.810,32769,50,50,0,0,96,0,3,0x0000E00A00000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17760510,'Skipper_Moogle','Skipper Moogle',209,-194.050,-2.000,67.008,14,50,50,0,0,0,0,259,0x0000390900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17760511,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); From e2880c6a4105c4ee95563d6d208aee08f1ec44ab Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Wed, 8 Jul 2026 21:21:44 +0200 Subject: [PATCH 19/59] Audit some Arrows/Bolts `Additional effect: Elemental damage` --- .../action_additional_effect_damage.lua | 52 ++++++++--------- scripts/items/bloody_bolt.lua | 15 ++--- scripts/items/dainslaif.lua | 11 +--- scripts/items/darkling_bolt.lua | 26 +++++++++ scripts/items/earth_arrow.lua | 26 +++++++++ scripts/items/fire_arrow.lua | 24 ++++++++ scripts/items/grand_knights_arrow.lua | 26 +++++++++ scripts/items/holy_bolt.lua | 26 +++++++++ scripts/items/ice_arrow.lua | 24 ++++++++ scripts/items/lightning_arrow.lua | 24 ++++++++ scripts/items/righteous_bolt.lua | 26 +++++++++ scripts/items/scouts_bolt.lua | 26 +++++++++ scripts/items/temple_knights_arrow.lua | 26 +++++++++ scripts/items/water_arrow.lua | 26 +++++++++ scripts/items/wind_arrow.lua | 26 +++++++++ sql/item_mods.sql | 57 ++++++++----------- 16 files changed, 362 insertions(+), 79 deletions(-) create mode 100644 scripts/items/darkling_bolt.lua create mode 100644 scripts/items/earth_arrow.lua create mode 100644 scripts/items/fire_arrow.lua create mode 100644 scripts/items/grand_knights_arrow.lua create mode 100644 scripts/items/holy_bolt.lua create mode 100644 scripts/items/ice_arrow.lua create mode 100644 scripts/items/lightning_arrow.lua create mode 100644 scripts/items/righteous_bolt.lua create mode 100644 scripts/items/scouts_bolt.lua create mode 100644 scripts/items/temple_knights_arrow.lua create mode 100644 scripts/items/water_arrow.lua create mode 100644 scripts/items/wind_arrow.lua diff --git a/scripts/combat/action_additional_effect_damage.lua b/scripts/combat/action_additional_effect_damage.lua index f549b83ef7c..b4f2c2a079f 100644 --- a/scripts/combat/action_additional_effect_damage.lua +++ b/scripts/combat/action_additional_effect_damage.lua @@ -36,15 +36,20 @@ local function validateParameters(actor, target, fedData) -- Limit undead params.limitUndead = fedData.limitUndead or false -- Default: Works on undead. + -- Source is ranged attack or melee? Skip en-spell check if so. + params.isRanged = fedData.isRanged or false -- Assume melee. + + -- Base damage parameters. + params.basePower = fedData.basePower or 0 + -- Action properties. params.attackType = fedData.attackType or xi.attackType.SPECIAL -- Physical, Magical, Ranged, Breath or Special. params.physicalElement = fedData.physicalElement or xi.damageType.NONE -- None, H2H, Slashing, Piercing or Blunt. params.magicalElement = fedData.magicalElement or xi.element.NONE -- None, Fire, Ice, Wind, Earth, Thunder, Water, Light, Dark. - - -- Base damage parameters. - params.basePower = fedData.basePower or 0 params.actorStat = fedData.actorStat or 0 - params.targetStat = fedData.targetStat or params.actorStat + params.targetStat = fedData.targetStat or params.actorStat -- Currently unused. For future use. + params.skillRank = fedData.skillRank or xi.skillRank.A_PLUS + params.macc = fedData.macc or 0 -- Multiplier properties. params.canMAB = fedData.canMAB or false @@ -100,8 +105,8 @@ end xi.combat.action.executeAddEffectDamage = function(actor, target, fedData) local params = validateParameters(actor, target, fedData) - -- Early return: En-spell overrides innate/weapon additional effects. - if hasEnspell(actor) then + -- Early return: En-spell overrides innate/weapon additional effects, except ranged attacks. + if not params.isRanged and hasEnspell(actor) then return 0, 0, 0 end @@ -115,19 +120,24 @@ xi.combat.action.executeAddEffectDamage = function(actor, target, fedData) return 0, 0, 0 end - -- Additional variables. - local isPhysical = params.attackType == xi.attackType.PHYSICAL or false - local isMagical = params.attackType == xi.attackType.MAGICAL or false - local isRanged = params.attackType == xi.attackType.RANGED or false - local isBreath = params.attackType == xi.attackType.BREATH or false + -- Early return: Effect is nullified. + local nullification = xi.spells.damage.calculateNullification(params.aeTarget, params.magicalElement, params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.BREATH) + if nullification == 0 then + return 0, 0, 0 + end + + -- Early return: Effect is resisted. + local multiplierResist = params.canResist and xi.combat.magicHitRate.calculateResistRate(actor, params.aeTarget, 0, 0, params.skillRank, params.magicalElement, params.actorStat, 0, params.macc) or 1 + if multiplierResist < params.lowestResist then + return 0, 0, 0 + end -- Calculate base power. local damage = params.basePower + actor:getMod(params.actorStat) - params.aeTarget:getMod(params.targetStat) -- Calculate mandatory multipliers. - local multiplierAbsorption = xi.spells.damage.calculateAbsorption(params.aeTarget, params.magicalElement, params.isMagical) - local multiplierNullification = xi.spells.damage.calculateNullification(params.aeTarget, params.magicalElement, isMagical, isBreath) - local multiplierDamageTypeSDT = xi.combat.damage.calculateDamageAdjustment(params.aeTarget, isPhysical, isMagical, isRanged, isBreath) + local multiplierAbsorption = xi.spells.damage.calculateAbsorption(params.aeTarget, params.magicalElement, params.params.attackType == xi.attackType.MAGICAL) + local multiplierDamageTypeSDT = xi.combat.damage.calculateDamageAdjustment(params.aeTarget, params.attackType == xi.attackType.PHYSICAL, params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.RANGED, params.attackType == xi.attackType.BREATH) local multiplierPhysicalElementSDT = xi.combat.damage.physicalElementSDT(params.aeTarget, params.physicalElement) local multiplierMagicalElementSDT = xi.combat.damage.magicalElementSDT(params.aeTarget, params.magicalElement) local multiplierElementalStaff = xi.spells.damage.calculateElementalStaffBonus(actor, params.magicalElement) @@ -136,17 +146,10 @@ xi.combat.action.executeAddEffectDamage = function(actor, target, fedData) -- Calculate optional multipliers. local multiplierMagicDiff = params.canMAB and xi.spells.damage.calculateMagicBonusDiff(actor, params.aeTarget, 0, 0, params.magicalElement, 0) or 1 - local multiplierResist = params.canResist and xi.combat.magicHitRate.calculateResistRate(actor, params.aeTarget, 0, 0, xi.skillRank.A_PLUS, params.magicalElement, params.actorStat, 0, 0) or 1 local multiplierForcedResistTier = params.canResistExtra and xi.spells.damage.calculateAdditionalResistTier(actor, params.aeTarget, params.magicalElement) or 1 - -- Early return: Resist state is too low. Auto-fail. - if multiplierResist < params.lowestResist then - return 0, 0, 0 - end - -- Calculate final damage. damage = math.floor(damage * multiplierAbsorption) - damage = math.floor(damage * multiplierNullification) damage = math.floor(damage * multiplierDamageTypeSDT) damage = math.floor(damage * multiplierPhysicalElementSDT) damage = math.floor(damage * multiplierMagicalElementSDT) @@ -183,12 +186,7 @@ xi.combat.action.executeAddEffectDamage = function(actor, target, fedData) actor:addTP(damage) end - -- No damage, no proc. - if damage == 0 then - return 0, 0, 0 - end - - if damage < 0 then + if damage < 0 then params.aeTarget:addHP(-damage) -- Heal target. return params.animation, params.messageHeal, -damage end diff --git a/scripts/items/bloody_bolt.lua b/scripts/items/bloody_bolt.lua index 3b3f40b542b..370c4140c6f 100644 --- a/scripts/items/bloody_bolt.lua +++ b/scripts/items/bloody_bolt.lua @@ -7,19 +7,14 @@ local itemObject = {} itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dINT = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) - local power = 0 - - if dINT > 15 then - power = math.min(math.floor(76 + (dINT - 16) * 0.5), 92) -- 92 is the upper cap starting at 48 dINT - else - power = math.max(math.floor(60 + dINT), 57) -- minimum observed at more than -100 dINT is 57. Negative dINT does seem to drop you to 57, but scaling is currently unknown. - end + local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) + -- Minimum observed at more than -100 dStat is 57. Negative dStat does seem to drop you to 57, but scaling is currently unknown. + -- 92 is the upper cap starting at 48 dStat local pTable = { - chance = 100, -- Seems to always proc barring massive resistance - basePower = power, + isRanged = true, + basePower = 60 + utils.clamp(dStat, -3, 16) + utils.clamp(math.floor((dStat - 16) / 2), 0, 16), attackType = xi.attackType.PHYSICAL, physicalElement = xi.damageType.PIERCING, magicalElement = xi.element.DARK, diff --git a/scripts/items/dainslaif.lua b/scripts/items/dainslaif.lua index 24aa4807975..2abed7ac8e4 100644 --- a/scripts/items/dainslaif.lua +++ b/scripts/items/dainslaif.lua @@ -7,19 +7,12 @@ local itemObject = {} itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dINT = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) - local power = 0 - - if dINT > 15 then - power = math.min(math.floor(56 + (dINT - 16) * 0.5), 72) - else - power = math.max(math.floor(40 + dINT), 37) -- Lower end of 37 is guessed, following Bloody Bolt pattern - end + local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) local pTable = { chance = 22, -- Observed rate is 21% which is close to (0.22 * .95) = 21%~ (resist roll failure) - basePower = power, + basePower = 40 + utils.clamp(dStat, -3, 16) + utils.clamp(math.floor((dStat - 16) / 2), 0, 16), attackType = xi.attackType.PHYSICAL, physicalElement = xi.damageType.SLASHING, magicalElement = xi.element.DARK, diff --git a/scripts/items/darkling_bolt.lua b/scripts/items/darkling_bolt.lua new file mode 100644 index 00000000000..3701c28f4c8 --- /dev/null +++ b/scripts/items/darkling_bolt.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 19196 +-- Item: Darkling Bolt +-- Additional effect: Darkness damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.DARK, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/earth_arrow.lua b/scripts/items/earth_arrow.lua new file mode 100644 index 00000000000..a4d77aede32 --- /dev/null +++ b/scripts/items/earth_arrow.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 18699 +-- Item: Earth Arrow +-- Additional effect: Earth damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.EARTH, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/fire_arrow.lua b/scripts/items/fire_arrow.lua new file mode 100644 index 00000000000..302223361a5 --- /dev/null +++ b/scripts/items/fire_arrow.lua @@ -0,0 +1,24 @@ +----------------------------------- +-- ID: 17322 +-- Item: Fire Arrow +-- Additional effect: Fire damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + -- Unconfirmed power. + local pTable = + { + isRanged = true, + basePower = math.random(7, 10), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.FIRE, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/grand_knights_arrow.lua b/scripts/items/grand_knights_arrow.lua new file mode 100644 index 00000000000..425e973f08e --- /dev/null +++ b/scripts/items/grand_knights_arrow.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 17327 +-- Item: Grand Knights Arrow +-- Additional effect: Fire damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.FIRE, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/holy_bolt.lua b/scripts/items/holy_bolt.lua new file mode 100644 index 00000000000..6c287ec3cc6 --- /dev/null +++ b/scripts/items/holy_bolt.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 18153 +-- Item: Holy Bolt +-- Additional effect: Light damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.MND) - defender:getStat(xi.mod.MND) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 40 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.LIGHT, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/ice_arrow.lua b/scripts/items/ice_arrow.lua new file mode 100644 index 00000000000..0091bb9c76a --- /dev/null +++ b/scripts/items/ice_arrow.lua @@ -0,0 +1,24 @@ +----------------------------------- +-- ID: 17323 +-- Item: Ice Arrow +-- Additional effect: Ice damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + -- Unconfirmed power. + local pTable = + { + isRanged = true, + basePower = math.random(7, 10), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.ICE, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/lightning_arrow.lua b/scripts/items/lightning_arrow.lua new file mode 100644 index 00000000000..5789127cb46 --- /dev/null +++ b/scripts/items/lightning_arrow.lua @@ -0,0 +1,24 @@ +----------------------------------- +-- ID: 17324 +-- Item: Lightning Arrow +-- Additional effect: Lightning damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + -- Unconfirmed power. + local pTable = + { + isRanged = true, + basePower = math.random(7, 10), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.THUNDER, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/righteous_bolt.lua b/scripts/items/righteous_bolt.lua new file mode 100644 index 00000000000..647151ff13d --- /dev/null +++ b/scripts/items/righteous_bolt.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 21315 +-- Item: Righteous Bolt +-- Additional effect: Light damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.MND) - defender:getStat(xi.mod.MND) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 40 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.LIGHT, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/scouts_bolt.lua b/scripts/items/scouts_bolt.lua new file mode 100644 index 00000000000..58f4cf54106 --- /dev/null +++ b/scripts/items/scouts_bolt.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 22287 +-- Item: Scouts Bolt +-- Additional effect: Light damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.MND) - defender:getStat(xi.mod.MND) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 40 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.LIGHT, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/temple_knights_arrow.lua b/scripts/items/temple_knights_arrow.lua new file mode 100644 index 00000000000..7857e6f087a --- /dev/null +++ b/scripts/items/temple_knights_arrow.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 18738 +-- Item: Temple Knights Arrow +-- Additional effect: Fire damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.FIRE, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/water_arrow.lua b/scripts/items/water_arrow.lua new file mode 100644 index 00000000000..e1182975092 --- /dev/null +++ b/scripts/items/water_arrow.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 18698 +-- Item: Water Arrow +-- Additional effect: Water damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.WATER, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/scripts/items/wind_arrow.lua b/scripts/items/wind_arrow.lua new file mode 100644 index 00000000000..1e5f2667b9a --- /dev/null +++ b/scripts/items/wind_arrow.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- ID: 18700 +-- Item: Wind Arrow +-- Additional effect: Wind damage +----------------------------------- +---@type TItem +local itemObject = {} + +itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) + local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) + -- Unconfirmed power. + + local pTable = + { + isRanged = true, + basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.PIERCING, + magicalElement = xi.element.WIND, + canResist = true, + } + + return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) +end + +return itemObject diff --git a/sql/item_mods.sql b/sql/item_mods.sql index df13db29cf9..1cd866e47c9 100644 --- a/sql/item_mods.sql +++ b/sql/item_mods.sql @@ -34206,31 +34206,13 @@ INSERT INTO `item_mods` VALUES (17316,950,1); -- ITEM_ADDEFFECT_ELEMENT: ELEMEN INSERT INTO `item_mods` VALUES (17317,26,15); -- RACC: 15 -- Fire Arrow -INSERT INTO `item_mods` VALUES (17322,278,5); -- ITEM_ADDEFFECT_LVADJUST: 5 -INSERT INTO `item_mods` VALUES (17322,280,12); -- ITEM_ADDEFFECT_DSTAT: INT -INSERT INTO `item_mods` VALUES (17322,431,1); -- ITEM_ADDEFFECT_TYPE: DAMAGE -INSERT INTO `item_mods` VALUES (17322,499,1); -- ITEM_SUBEFFECT: SUBEFFECT_FIRE_DAMAGE -INSERT INTO `item_mods` VALUES (17322,500,15); -- ITEM_ADDEFFECT_DMG: 15 -INSERT INTO `item_mods` VALUES (17322,501,95); -- ITEM_ADDEFFECT_CHANCE: 95 -INSERT INTO `item_mods` VALUES (17322,950,1); -- ITEM_ADDEFFECT_ELEMENT: ELEMENT_FIRE +INSERT INTO `item_mods` VALUES (17322,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 -- Ice Arrow -INSERT INTO `item_mods` VALUES (17323,278,5); -- ITEM_ADDEFFECT_LVADJUST: 5 -INSERT INTO `item_mods` VALUES (17323,280,12); -- ITEM_ADDEFFECT_DSTAT: INT -INSERT INTO `item_mods` VALUES (17323,431,1); -- ITEM_ADDEFFECT_TYPE: DAMAGE -INSERT INTO `item_mods` VALUES (17323,499,2); -- ITEM_SUBEFFECT: SUBEFFECT_ICE_DAMAGE -INSERT INTO `item_mods` VALUES (17323,500,15); -- ITEM_ADDEFFECT_DMG: 15 -INSERT INTO `item_mods` VALUES (17323,501,95); -- ITEM_ADDEFFECT_CHANCE: 95 -INSERT INTO `item_mods` VALUES (17323,950,2); -- ITEM_ADDEFFECT_ELEMENT: ELEMENT_ICE +INSERT INTO `item_mods` VALUES (17323,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 -- Lightning Arrow -INSERT INTO `item_mods` VALUES (17324,278,5); -- ITEM_ADDEFFECT_LVADJUST: 5 -INSERT INTO `item_mods` VALUES (17324,280,12); -- ITEM_ADDEFFECT_DSTAT: INT -INSERT INTO `item_mods` VALUES (17324,431,1); -- ITEM_ADDEFFECT_TYPE: DAMAGE -INSERT INTO `item_mods` VALUES (17324,499,5); -- ITEM_SUBEFFECT: SUBEFFECT_LIGHTNING_DAMAGE -INSERT INTO `item_mods` VALUES (17324,500,15); -- ITEM_ADDEFFECT_DMG: 15 -INSERT INTO `item_mods` VALUES (17324,501,95); -- ITEM_ADDEFFECT_CHANCE: 95 -INSERT INTO `item_mods` VALUES (17324,950,5); -- ITEM_ADDEFFECT_ELEMENT: ELEMENT_THUNDER +INSERT INTO `item_mods` VALUES (17324,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 -- Kabura Arrow INSERT INTO `item_mods` VALUES (17325,26,3); -- RACC: 3 @@ -34243,8 +34225,9 @@ INSERT INTO `item_mods` VALUES (17325,952,1); -- ITEM_ADDEFFECT_POWER: 1 INSERT INTO `item_mods` VALUES (17325,953,60); -- ITEM_ADDEFFECT_DURATION: 60 -- Grand Knights Arrow -INSERT INTO `item_mods` VALUES (17327,24,20); -- RATT: 20 -INSERT INTO `item_mods` VALUES (17327,26,10); -- RACC: 10 +INSERT INTO `item_mods` VALUES (17327,24,20); -- RATT: 20 +INSERT INTO `item_mods` VALUES (17327,26,10); -- RACC: 10 +INSERT INTO `item_mods` VALUES (17327,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 -- Gold Musketeers Bolt INSERT INTO `item_mods` VALUES (17328,24,20); -- RATT: 20 @@ -36738,13 +36721,7 @@ INSERT INTO `item_mods` VALUES (18152,953,30); -- ITEM_ADDEFFECT_DURATION: 30 INSERT INTO `item_mods` VALUES (18152,950,6); -- ITEM_ADDEFFECT_ELEMENT: 6 -- Holy Bolt -INSERT INTO `item_mods` VALUES (18153,278,5); -- ITEM_ADDEFFECT_LVADJUST: 5 -INSERT INTO `item_mods` VALUES (18153,280,13); -- ITEM_ADDEFFECT_DSTAT: MND -INSERT INTO `item_mods` VALUES (18153,431,1); -- ITEM_ADDEFFECT_TYPE: DAMAGE -INSERT INTO `item_mods` VALUES (18153,499,7); -- ITEM_SUBEFFECT: 7 -INSERT INTO `item_mods` VALUES (18153,500,40); -- ITEM_ADDEFFECT_DMG: 40 -INSERT INTO `item_mods` VALUES (18153,501,100); -- ITEM_ADDEFFECT_CHANCE: 100 -INSERT INTO `item_mods` VALUES (18153,950,7); -- ITEM_ADDEFFECT_ELEMENT: 7 +INSERT INTO `item_mods` VALUES (18153,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 -- Beetle Arrow INSERT INTO `item_mods` VALUES (18154,26,5); -- RACC: 5 @@ -38664,6 +38641,15 @@ INSERT INTO `item_mods` VALUES (18695,22,13); -- DARK_MEVA: 13 -- Paralysis Arrow INSERT INTO `item_mods` VALUES (18696,431,1); -- ITEM_ADDEFFECT_TYPE: DAMAGE +-- Water Arrow +INSERT INTO `item_mods` VALUES (18698,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 + +-- Earth Arrow +INSERT INTO `item_mods` VALUES (18699,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 + +-- Wind Arrow +INSERT INTO `item_mods` VALUES (18700,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 + -- Cerberus Bow +1 INSERT INTO `item_mods` VALUES (18701,11,4); -- AGI: 4 INSERT INTO `item_mods` VALUES (18701,15,14); -- FIRE_MEVA: 14 @@ -38753,8 +38739,9 @@ INSERT INTO `item_mods` VALUES (18734,30,2); -- MACC: 2 INSERT INTO `item_mods` VALUES (18735,491,1); -- WALTZ_POTENCY: 1 -- Temple Knights Arrow -INSERT INTO `item_mods` VALUES (18738,24,20); -- RATT: 20 -INSERT INTO `item_mods` VALUES (18738,26,10); -- RACC: 10 +INSERT INTO `item_mods` VALUES (18738,24,20); -- RATT: 20 +INSERT INTO `item_mods` VALUES (18738,26,10); -- RACC: 10 +INSERT INTO `item_mods` VALUES (18738,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 -- Iron Musketeers Bolt INSERT INTO `item_mods` VALUES (18739,24,20); -- RATT: 20 @@ -40199,7 +40186,7 @@ INSERT INTO `item_mods` VALUES (19194,28,15); -- MATT: 15 INSERT INTO `item_mods` VALUES (19195,24,5); -- RATT: 5 -- Darkling Bolt -INSERT INTO `item_mods` VALUES (19196,431,1); -- ITEM_ADDEFFECT_TYPE: DAMAGE +INSERT INTO `item_mods` VALUES (19196,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 -- Oberons Bullet INSERT INTO `item_mods` VALUES (19199,26,6); -- RACC: 6 @@ -44363,6 +44350,9 @@ INSERT INTO `item_mods` VALUES (21314,951,149); -- ITEM_ADDEFFECT_STATUS: 149 INSERT INTO `item_mods` VALUES (21314,952,20); -- ITEM_ADDEFFECT_POWER: 20 INSERT INTO `item_mods` VALUES (21314,953,60); -- ITEM_ADDEFFECT_DURATION: 60 +-- Righteous Bolt +INSERT INTO `item_mods` VALUES (21315,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 + -- Bismuth Bolt INSERT INTO `item_mods` VALUES (21318,24,5); -- RATT: 5 INSERT INTO `item_mods` VALUES (21318,26,5); -- RACC: 5 @@ -47035,6 +47025,7 @@ INSERT INTO `item_mods` VALUES (22286,25,15); -- ACC: 15 INSERT INTO `item_mods` VALUES (22287,26,25); -- RACC: 25 INSERT INTO `item_mods` VALUES (22287,30,25); -- MACC: 25 INSERT INTO `item_mods` VALUES (22287,305,20); -- RECYCLE: 20 +INSERT INTO `item_mods` VALUES (22287,1181,1); -- ITEM_ADDEFFECT_SCRIPTED: 1 -- Hauksbok Arrow INSERT INTO `item_mods` VALUES (22293,8,10); -- STR: 10 From ad00b54ec25e4327111a28d3454d26ad208c13e5 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Thu, 9 Jul 2026 13:57:19 +0200 Subject: [PATCH 20/59] Edit `calculateAbsorption()` to account for non-magical damage sources --- .../actions/mobskills/arrogance_incarnate.lua | 2 +- scripts/actions/spells/black/meteor.lua | 2 +- scripts/actions/weaponskills/atonement.lua | 2 +- .../actions/weaponskills/spirits_within.lua | 2 +- .../action_additional_effect_damage.lua | 2 +- scripts/combat/skillchain.lua | 2 +- scripts/globals/ability.lua | 4 +-- scripts/globals/additional_effects.lua | 2 +- scripts/globals/bluemagic.lua | 6 ++--- scripts/globals/job_utils/corsair.lua | 2 +- scripts/globals/job_utils/dragoon.lua | 2 +- scripts/globals/job_utils/rune_fencer.lua | 2 +- scripts/globals/magic.lua | 2 +- scripts/globals/mobs.lua | 2 +- scripts/globals/mobskills.lua | 8 +++--- scripts/globals/spells/absorb_spell.lua | 4 +-- scripts/globals/spells/damage_spell.lua | 25 +++++++++++++------ scripts/globals/weaponskills.lua | 4 +-- scripts/zones/Arrapago_Reef/mobs/Velionis.lua | 2 +- scripts/zones/Attohwa_Chasm/mobs/Sargas.lua | 2 +- .../zones/Beaucedine_Glacier/mobs/Humbaba.lua | 2 +- .../zones/Crawlers_Nest/mobs/Aqrabuamelu.lua | 2 +- scripts/zones/Halvung/mobs/Copper_Borer.lua | 2 +- scripts/zones/Ordelles_Caves/mobs/Bombast.lua | 2 +- .../mobs/Unstable_Cluster.lua | 2 +- scripts/zones/RoMaeve/mobs/Martinet.lua | 2 +- .../Toraimarai_Canal/mobs/Brazen_Bones.lua | 2 +- .../Uleguerand_Range/mobs/Father_Frost.lua | 2 +- .../Upper_Delkfutts_Tower/mobs/Autarch.lua | 2 +- 29 files changed, 54 insertions(+), 43 deletions(-) diff --git a/scripts/actions/mobskills/arrogance_incarnate.lua b/scripts/actions/mobskills/arrogance_incarnate.lua index 8ca8b598189..abbaff982a6 100644 --- a/scripts/actions/mobskills/arrogance_incarnate.lua +++ b/scripts/actions/mobskills/arrogance_incarnate.lua @@ -23,7 +23,7 @@ mobskillObject.onMobWeaponSkill = function(mob, target, skill, action) dmg = math.floor(dmg * 2.5) dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, false, false, true)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true)) dmg = math.floor(target:handleSevereDamage(dmg, false)) dmg = utils.handlePhalanx(target, dmg) diff --git a/scripts/actions/spells/black/meteor.lua b/scripts/actions/spells/black/meteor.lua index c1582326562..cdecb70e999 100644 --- a/scripts/actions/spells/black/meteor.lua +++ b/scripts/actions/spells/black/meteor.lua @@ -38,7 +38,7 @@ spellObject.onSpellCast = function(caster, target, spell) 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 end - damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, true)) + damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, true, false, false)) damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, true, false)) damage = math.floor(damage * xi.spells.damage.calculateMTDR(caster, spell)) damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false)) diff --git a/scripts/actions/weaponskills/atonement.lua b/scripts/actions/weaponskills/atonement.lua index c43e4227c17..bac084f9c67 100644 --- a/scripts/actions/weaponskills/atonement.lua +++ b/scripts/actions/weaponskills/atonement.lua @@ -74,7 +74,7 @@ weaponskillObject.onUseWeaponSkill = function(player, target, wsID, tp, primary, damage = dmg damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) - damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false)) + damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, false, false, true)) damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true)) damage = math.floor(target:handleSevereDamage(damage, false)) diff --git a/scripts/actions/weaponskills/spirits_within.lua b/scripts/actions/weaponskills/spirits_within.lua index 9513c6a7f1b..2878261b3be 100644 --- a/scripts/actions/weaponskills/spirits_within.lua +++ b/scripts/actions/weaponskills/spirits_within.lua @@ -49,7 +49,7 @@ weaponskillObject.onUseWeaponSkill = function(player, target, wsID, tp, primary, local damage = dmg damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) - damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false)) + damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, false, false, true)) damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true)) damage = math.floor(target:handleSevereDamage(damage, false)) diff --git a/scripts/combat/action_additional_effect_damage.lua b/scripts/combat/action_additional_effect_damage.lua index b4f2c2a079f..61c22c4563c 100644 --- a/scripts/combat/action_additional_effect_damage.lua +++ b/scripts/combat/action_additional_effect_damage.lua @@ -136,7 +136,7 @@ xi.combat.action.executeAddEffectDamage = function(actor, target, fedData) local damage = params.basePower + actor:getMod(params.actorStat) - params.aeTarget:getMod(params.targetStat) -- Calculate mandatory multipliers. - local multiplierAbsorption = xi.spells.damage.calculateAbsorption(params.aeTarget, params.magicalElement, params.params.attackType == xi.attackType.MAGICAL) + local multiplierAbsorption = xi.spells.damage.calculateAbsorption(params.aeTarget, params.magicalElement, params.attackType == xi.attackType.PHYSICAL, params.params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.RANGED, params.attackType == xi.attackType.BREATH) local multiplierDamageTypeSDT = xi.combat.damage.calculateDamageAdjustment(params.aeTarget, params.attackType == xi.attackType.PHYSICAL, params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.RANGED, params.attackType == xi.attackType.BREATH) local multiplierPhysicalElementSDT = xi.combat.damage.physicalElementSDT(params.aeTarget, params.physicalElement) local multiplierMagicalElementSDT = xi.combat.damage.magicalElementSDT(params.aeTarget, params.magicalElement) diff --git a/scripts/combat/skillchain.lua b/scripts/combat/skillchain.lua index 9fff31ff41a..17902594c28 100644 --- a/scripts/combat/skillchain.lua +++ b/scripts/combat/skillchain.lua @@ -114,7 +114,7 @@ xi.combat.skillchain.calculateSkillchainDamage = function(actor, target, baseDam -- Unconfirmed order. local inninMultiplier = 1 + actor:getMerit(xi.merit.INNIN_EFFECT) / 100 local sengikoriMultiplier = 1 + target:getMod(xi.mod.SENGIKORI_SC_DMG_DEBUFF) / 100 - local absorptionMultiplier = xi.spells.damage.calculateAbsorption(target, skillchainElement, true) + local absorptionMultiplier = xi.spells.damage.calculateAbsorption(target, skillchainElement, false, true, false, false) -- Apply multipliers in order and floor after each step. finalDamage = math.floor(finalDamage * levelMultiplier) diff --git a/scripts/globals/ability.lua b/scripts/globals/ability.lua index 6dd7c5a90ca..940f386601c 100644 --- a/scripts/globals/ability.lua +++ b/scripts/globals/ability.lua @@ -68,12 +68,12 @@ xi.ability.adjustDamage = function(dmg, attacker, skill, target, skilltype, skil dmg = target:physicalDmgTaken(dmg, skillparam) elseif skilltype == xi.attackType.MAGICAL then dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, element, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, element, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, element, true, false)) dmg = math.floor(target:handleSevereDamage(dmg, false)) elseif skilltype == xi.attackType.BREATH then dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, element, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, element, false, false, false, true)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, element, false, true)) dmg = math.floor(target:handleSevereDamage(dmg, false)) elseif skilltype == xi.attackType.RANGED then diff --git a/scripts/globals/additional_effects.lua b/scripts/globals/additional_effects.lua index 1e054f780bf..54f51eedd94 100644 --- a/scripts/globals/additional_effects.lua +++ b/scripts/globals/additional_effects.lua @@ -84,7 +84,7 @@ xi.additionalEffect.calcDamage = function(attacker, element, defender, damage) params.includemab = false -- May possibly need to include mab on case by case basis, further tests needed damage = addBonusesAbility(attacker, element, defender, damage, params) damage = math.floor(damage * applyResistanceAddEffect(attacker, defender, element, 0)) - damage = math.floor(damage * xi.spells.damage.calculateAbsorption(defender, element, true)) + damage = math.floor(damage * xi.spells.damage.calculateAbsorption(defender, element, false, true, false, false)) damage = math.floor(damage * xi.spells.damage.calculateNullification(defender, element, true, false)) -- Todo: make sure day/weather/affinity bonuses tie in right here damage = finalMagicNonSpellAdjustments(attacker, defender, element, damage) diff --git a/scripts/globals/bluemagic.lua b/scripts/globals/bluemagic.lua index a57d6914df1..24165a476ce 100644 --- a/scripts/globals/bluemagic.lua +++ b/scripts/globals/bluemagic.lua @@ -443,7 +443,7 @@ xi.spells.blue.useDrainSpell = function(caster, target, spell, params, damageCap -- Early returns if - xi.spells.damage.calculateAbsorption(target, spell:getElement(), true) ~= 1 or + xi.spells.damage.calculateAbsorption(target, spell:getElement(), false, true, false, false) ~= 1 or xi.spells.damage.calculateNullification(target, spell:getElement(), true, false) ~= 1 or target:isUndead() then @@ -549,7 +549,7 @@ xi.spells.blue.useBreathSpell = function(caster, target, spell, params) -- Multipliers local correlationMultiplier = xi.combat.damage.ecosystemMultiplier(caster, target, params.ecosystem) local breathSDT = 1 + caster:getMod(xi.mod.BREATH_DMG_DEALT) / 100 - local absorb = xi.spells.damage.calculateAbsorption(target, spellElement, false) + local absorb = xi.spells.damage.calculateAbsorption(target, spellElement, false, true, false, true) local nullify = xi.spells.damage.calculateNullification(target, spellElement, false, true) local targetMagicDamageAdjustment = xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true) local elementalStaffBonus = xi.spells.damage.calculateElementalStaffBonus(caster, spellElement) @@ -629,7 +629,7 @@ xi.spells.blue.applySpellDamage = function(caster, target, spell, dmg, params, t -- handle MDT, One For All, Liement if attackType == xi.attackType.MAGICAL then - local absorb = xi.spells.damage.calculateAbsorption(target, spell:getElement(), true) + local absorb = xi.spells.damage.calculateAbsorption(target, spell:getElement(), false, true, false, false) local nullify = xi.spells.damage.calculateNullification(target, spell:getElement(), true, false) dmg = math.floor(dmg * absorb * nullify) diff --git a/scripts/globals/job_utils/corsair.lua b/scripts/globals/job_utils/corsair.lua index f192f400bbc..5a66281b67f 100644 --- a/scripts/globals/job_utils/corsair.lua +++ b/scripts/globals/job_utils/corsair.lua @@ -627,7 +627,7 @@ xi.job_utils.corsair.handleQuickDrawDamage = function(player, target, action, el -- Unconfirmed order. local sdtMultiplier = xi.combat.damage.magicalElementSDT(target, element) local additionalResistTier = xi.spells.damage.calculateAdditionalResistTier(player, target, element) - local elementalAbsorption = xi.spells.damage.calculateAbsorption(target, element, false) + local elementalAbsorption = xi.spells.damage.calculateAbsorption(target, element, false, false, true, false) local elementalNullification = xi.spells.damage.calculateNullification(target, element, false, false) -- Apply multipliers and bonuses. diff --git a/scripts/globals/job_utils/dragoon.lua b/scripts/globals/job_utils/dragoon.lua index bf626057051..3f1fb75e0dd 100644 --- a/scripts/globals/job_utils/dragoon.lua +++ b/scripts/globals/job_utils/dragoon.lua @@ -701,7 +701,7 @@ xi.job_utils.dragoon.useDamageBreath = function(wyvern, target, skill, action, d -- Breath accuracy is directly affected by a wyvern's current HP, but no data exists. local resist = xi.combat.magicHitRate.calculateResistRate(wyvern, target, 0, 0, 0, element, 0, 0, bonusMacc) local sdt = xi.combat.damage.magicalElementSDT(target, element) - local absorb = xi.spells.damage.calculateAbsorption(target, element, true) + local absorb = xi.spells.damage.calculateAbsorption(target, element, false, true, false, true) local nullify = xi.spells.damage.calculateNullification(target, element, true, true) local magicBurst = 1 diff --git a/scripts/globals/job_utils/rune_fencer.lua b/scripts/globals/job_utils/rune_fencer.lua index 2903900953b..ef09a69525f 100644 --- a/scripts/globals/job_utils/rune_fencer.lua +++ b/scripts/globals/job_utils/rune_fencer.lua @@ -523,7 +523,7 @@ local function getSwipeLungeDamageMultipliers(player, target, element, bonusMacc multipliers.dayAndWeather = xi.spells.damage.calculateDayAndWeather(player, element, false) multipliers.magicBonusDiff = xi.spells.damage.calculateMagicBonusDiff(player, target, 0, 0, element, 0) multipliers.TMDA = xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false) - multipliers.absorb = xi.spells.damage.calculateAbsorption(target, element, true) + multipliers.absorb = xi.spells.damage.calculateAbsorption(target, element, false, true, false, false) multipliers.nullify = xi.spells.damage.calculateNullification(target, element, true, false) multipliers.magicBurst = 1 multipliers.magicBurstBonus = 1 diff --git a/scripts/globals/magic.lua b/scripts/globals/magic.lua index 04b7cb659fa..f55bcaebf0d 100644 --- a/scripts/globals/magic.lua +++ b/scripts/globals/magic.lua @@ -84,7 +84,7 @@ function finalMagicNonSpellAdjustments(caster, target, ele, dmg) -- Handles target's HP adjustment and returns SIGNED dmg (negative values on absorb) dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, ele, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, ele, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, ele, true, false)) dmg = math.floor(target:handleSevereDamage(dmg, false)) diff --git a/scripts/globals/mobs.lua b/scripts/globals/mobs.lua index b77a8885d00..4ff443c32d4 100644 --- a/scripts/globals/mobs.lua +++ b/scripts/globals/mobs.lua @@ -553,7 +553,7 @@ local addEffectImmediate = function(mob, target, damage, ae, params) power = addBonusesAbility(mob, ae.ele, target, power, ae.bonusAbilityParams) power = power * applyResistanceAddEffect(mob, target, ae.ele, 0) - power = power * xi.spells.damage.calculateAbsorption(target, ae.ele, true) + power = power * xi.spells.damage.calculateAbsorption(target, ae.ele, false, true, false, false) power = power * xi.spells.damage.calculateNullification(target, ae.ele, true, false) if ae.sub ~= xi.subEffect.TP_DRAIN and ae.sub ~= xi.subEffect.MP_DRAIN then diff --git a/scripts/globals/mobskills.lua b/scripts/globals/mobskills.lua index c1060baaf59..3717d06d903 100644 --- a/scripts/globals/mobskills.lua +++ b/scripts/globals/mobskills.lua @@ -1119,9 +1119,9 @@ xi.mobskills.mobMagicalMove = function(mob, target, skill, action, skillParams) end if attackType == xi.attackType.BREATH then - absorbDamage = xi.spells.damage.calculateAbsorption(target, actionElement, false) + absorbDamage = xi.spells.damage.calculateAbsorption(target, actionElement, false, false, false, true) else - absorbDamage = xi.spells.damage.calculateAbsorption(target, actionElement, true) + absorbDamage = xi.spells.damage.calculateAbsorption(target, actionElement, false, true, false, false) end ---------------------------------- @@ -1335,7 +1335,7 @@ xi.mobskills.mobBreathMove = function(mob, target, skill, action, skillParams) return returnInfo end - absorbDamage = xi.spells.damage.calculateAbsorption(target, actionElement, false) + absorbDamage = xi.spells.damage.calculateAbsorption(target, actionElement, false, false, false, true) -- Calulate TP and TP_BONUS if applicable. -- TODO: Do mobs benefit from Fencer job trait's TP_BONUS? @@ -1758,7 +1758,7 @@ xi.mobskills.handleHybridDamage = function(mob, target, physicalDamage, element) -- Multipliers. local nullifyDamage = xi.spells.damage.calculateNullification(target, element, true, false) - local absorbDamage = xi.spells.damage.calculateAbsorption(target, element, true) + local absorbDamage = xi.spells.damage.calculateAbsorption(target, element, false, true, false, false) local sdt = 1 local resist = 1 local magicDamageAdjustment = 1 diff --git a/scripts/globals/spells/absorb_spell.lua b/scripts/globals/spells/absorb_spell.lua index a5247fb1ce4..11335b1b33d 100644 --- a/scripts/globals/spells/absorb_spell.lua +++ b/scripts/globals/spells/absorb_spell.lua @@ -103,7 +103,7 @@ xi.spells.absorb.doDrainingSpell = function(caster, target, spell) -- Early return: Target absorbs or nullifies dark. if - xi.spells.damage.calculateAbsorption(target, xi.element.DARK, true) ~= 1 or + xi.spells.damage.calculateAbsorption(target, xi.element.DARK, false, true, false, false) ~= 1 or xi.spells.damage.calculateNullification(target, xi.element.DARK, true, false) ~= 1 then spell:setMsg(xi.msg.basic.MAGIC_RESIST) @@ -218,7 +218,7 @@ xi.spells.absorb.doAbsorbTPSpell = function(caster, target, spell) -- Early return: Target absorbs or nullifies dark. if - xi.spells.damage.calculateAbsorption(target, xi.element.DARK, true) ~= 1 or + xi.spells.damage.calculateAbsorption(target, xi.element.DARK, false, true, false, false) ~= 1 or xi.spells.damage.calculateNullification(target, xi.element.DARK, true, false) ~= 1 then spell:setMsg(xi.msg.basic.MAGIC_RESIST) diff --git a/scripts/globals/spells/damage_spell.lua b/scripts/globals/spells/damage_spell.lua index 4698c56d7e4..41aa127855f 100644 --- a/scripts/globals/spells/damage_spell.lua +++ b/scripts/globals/spells/damage_spell.lua @@ -881,7 +881,7 @@ xi.spells.damage.calculateSpellActionTypeMultiplier = function(caster) return 1 + caster:getMod(xi.mod.POWER_MULTIPLIER_SPELL) / 100 end -xi.spells.damage.calculateAbsorption = function(target, element, isMagic) +xi.spells.damage.calculateAbsorption = function(target, element, isPhysical, isMagical, isRanged, isBreath) -- Absobtion by liement. local liementFactor = target:checkLiementAbsorb(xi.damageType.ELEMENTAL + element) -- Check for Liement. if liementFactor < 0 then @@ -893,17 +893,28 @@ xi.spells.damage.calculateAbsorption = function(target, element, isMagic) return -1 end - -- Absorb: Magic damage. + -- Absorb: Physical or Ranged. if - isMagic and + (isPhysical or isRanged) and + math.randomInt(1, 100) <= target:getMod(xi.mod.PHYS_ABSORB) + then + return -1 + end + + -- Absorb: Magic damage. TODO: Do breaths count as magical damage for this mod usage? + if + isMagical and math.randomInt(1, 100) <= target:getMod(xi.mod.MAGIC_ABSORB) then return -1 end + -- Absorb: Breath + -- Modifier doesn't exist. But it case it ever does, place here. + -- Absorb: Element damage. if - element > 0 and + element > xi.element.NONE and math.randomInt(1, 100) <= target:getMod(xi.data.element.getElementalAbsorptionModifier(element)) then return -1 @@ -913,7 +924,7 @@ xi.spells.damage.calculateAbsorption = function(target, element, isMagic) return 1 end -xi.spells.damage.calculateNullification = function(target, element, isMagic, isBreath) +xi.spells.damage.calculateNullification = function(target, element, isMagical, isBreath) -- Nullify: All damage. if math.randomInt(1, 100) <= target:getMod(xi.mod.NULL_DAMAGE) then return 0 @@ -921,7 +932,7 @@ xi.spells.damage.calculateNullification = function(target, element, isMagic, isB -- Nullify: Magic damage. if - isMagic and + isMagical and math.randomInt(1, 100) <= target:getMod(xi.mod.NULL_MAGICAL_DAMAGE) then return 0 @@ -1073,7 +1084,7 @@ xi.spells.damage.useDamageSpell = function(caster, target, spell) end -- Calculate absoprtion and magic burst. - local absorbFactor = xi.spells.damage.calculateAbsorption(target, spellElement, true) + local absorbFactor = xi.spells.damage.calculateAbsorption(target, spellElement, false, true, false, false) local magicBurstTier = xi.combat.magicBurst.getMagicBurstTier(target, spellElement) local notAbsorb = absorbFactor > 0 diff --git a/scripts/globals/weaponskills.lua b/scripts/globals/weaponskills.lua index ba152d5bc2a..6ad4dc9ec9e 100644 --- a/scripts/globals/weaponskills.lua +++ b/scripts/globals/weaponskills.lua @@ -251,7 +251,7 @@ local function calculateHybridMagicDamage(tp, physicaldmg, attacker, target, wsP magicdmg = math.floor(target:handleSevereDamage(magicdmg, false)) if magicdmg > 0 then - magicdmg = math.floor(magicdmg * xi.spells.damage.calculateAbsorption(target, wsParams.ele, true)) + magicdmg = math.floor(magicdmg * xi.spells.damage.calculateAbsorption(target, wsParams.ele, false, true, false, false)) magicdmg = math.floor(magicdmg * xi.spells.damage.calculateNullification(target, wsParams.ele, true, false)) end @@ -890,7 +890,7 @@ xi.weaponskills.doMagicWeaponskill = function(attacker, target, wsID, wsParams, return dmg end - dmg = dmg * xi.spells.damage.calculateAbsorption(target, wsParams.ele, true) + dmg = dmg * xi.spells.damage.calculateAbsorption(target, wsParams.ele, false, true, false, false) dmg = dmg * xi.spells.damage.calculateNullification(target, wsParams.ele, true, false) dmg = utils.handlePhalanx(target, dmg) diff --git a/scripts/zones/Arrapago_Reef/mobs/Velionis.lua b/scripts/zones/Arrapago_Reef/mobs/Velionis.lua index 32e7bda776a..77a4d2a3381 100644 --- a/scripts/zones/Arrapago_Reef/mobs/Velionis.lua +++ b/scripts/zones/Arrapago_Reef/mobs/Velionis.lua @@ -46,7 +46,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) diff --git a/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua b/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua index 9dc4b6e3b7a..5cca96ee5e1 100644 --- a/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua +++ b/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua @@ -28,7 +28,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) diff --git a/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua b/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua index 8af10dc9134..f0e028e0611 100644 --- a/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua +++ b/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua @@ -34,7 +34,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) diff --git a/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua b/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua index 719758f315c..e85635dc8ad 100644 --- a/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua +++ b/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua @@ -73,7 +73,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) diff --git a/scripts/zones/Halvung/mobs/Copper_Borer.lua b/scripts/zones/Halvung/mobs/Copper_Borer.lua index c007d501976..f67b4ccfda3 100644 --- a/scripts/zones/Halvung/mobs/Copper_Borer.lua +++ b/scripts/zones/Halvung/mobs/Copper_Borer.lua @@ -34,7 +34,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) diff --git a/scripts/zones/Ordelles_Caves/mobs/Bombast.lua b/scripts/zones/Ordelles_Caves/mobs/Bombast.lua index f44e15b6bd2..1f43745f841 100644 --- a/scripts/zones/Ordelles_Caves/mobs/Bombast.lua +++ b/scripts/zones/Ordelles_Caves/mobs/Bombast.lua @@ -20,7 +20,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) diff --git a/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua b/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua index afe2e592378..6da0ce1cbc3 100644 --- a/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua +++ b/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua @@ -97,7 +97,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) diff --git a/scripts/zones/RoMaeve/mobs/Martinet.lua b/scripts/zones/RoMaeve/mobs/Martinet.lua index c909ea4dc51..d0e4687a8af 100644 --- a/scripts/zones/RoMaeve/mobs/Martinet.lua +++ b/scripts/zones/RoMaeve/mobs/Martinet.lua @@ -43,7 +43,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) diff --git a/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua b/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua index 9510d437f9d..207bbe81966 100644 --- a/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua +++ b/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua @@ -29,7 +29,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) diff --git a/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua b/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua index dda03c37237..d970f0db1cc 100644 --- a/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua +++ b/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua @@ -21,7 +21,7 @@ entity.onSpikesDamage = function(mob, target, damage) local dmg = damage + mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) diff --git a/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua b/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua index 0868c6ca2b9..3958624b97f 100644 --- a/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua +++ b/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua @@ -27,7 +27,7 @@ entity.onSpikesDamage = function(mob, target, damage) params.includemab = false dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, true, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) From 25112ad6fef2da07b371f2e9b66e02941606d23d Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Thu, 9 Jul 2026 14:39:44 +0200 Subject: [PATCH 21/59] Edit `calculateNullification()` to account for non-magical damage source --- .../actions/mobskills/arrogance_incarnate.lua | 2 +- scripts/actions/spells/black/meteor.lua | 2 +- scripts/actions/weaponskills/atonement.lua | 2 +- .../actions/weaponskills/spirits_within.lua | 2 +- .../action_additional_effect_damage.lua | 2 +- scripts/combat/skillchain.lua | 2 +- scripts/globals/ability.lua | 2 +- scripts/globals/additional_effects.lua | 2 +- scripts/globals/bluemagic.lua | 6 ++--- scripts/globals/job_utils/corsair.lua | 2 +- scripts/globals/job_utils/dragoon.lua | 2 +- scripts/globals/job_utils/rune_fencer.lua | 2 +- scripts/globals/magic.lua | 2 +- scripts/globals/mobs.lua | 2 +- scripts/globals/mobskills.lua | 8 +++--- scripts/globals/spells/absorb_spell.lua | 4 +-- scripts/globals/spells/damage_spell.lua | 26 +++++++++++++++---- scripts/globals/weaponskills.lua | 4 +-- scripts/zones/Arrapago_Reef/mobs/Velionis.lua | 2 +- scripts/zones/Attohwa_Chasm/mobs/Sargas.lua | 2 +- .../zones/Beaucedine_Glacier/mobs/Humbaba.lua | 2 +- .../zones/Crawlers_Nest/mobs/Aqrabuamelu.lua | 2 +- scripts/zones/Halvung/mobs/Copper_Borer.lua | 2 +- scripts/zones/Ordelles_Caves/mobs/Bombast.lua | 2 +- .../mobs/Unstable_Cluster.lua | 2 +- scripts/zones/RoMaeve/mobs/Martinet.lua | 2 +- .../Toraimarai_Canal/mobs/Brazen_Bones.lua | 2 +- .../Uleguerand_Range/mobs/Father_Frost.lua | 2 +- .../Upper_Delkfutts_Tower/mobs/Autarch.lua | 2 +- 29 files changed, 56 insertions(+), 40 deletions(-) diff --git a/scripts/actions/mobskills/arrogance_incarnate.lua b/scripts/actions/mobskills/arrogance_incarnate.lua index abbaff982a6..69751e82a14 100644 --- a/scripts/actions/mobskills/arrogance_incarnate.lua +++ b/scripts/actions/mobskills/arrogance_incarnate.lua @@ -24,7 +24,7 @@ mobskillObject.onMobWeaponSkill = function(mob, target, skill, action) dmg = math.floor(dmg * 2.5) dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, false, false, true)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, false, false, true)) dmg = math.floor(target:handleSevereDamage(dmg, false)) dmg = utils.handlePhalanx(target, dmg) diff --git a/scripts/actions/spells/black/meteor.lua b/scripts/actions/spells/black/meteor.lua index cdecb70e999..b7268d74f1d 100644 --- a/scripts/actions/spells/black/meteor.lua +++ b/scripts/actions/spells/black/meteor.lua @@ -39,7 +39,7 @@ spellObject.onSpellCast = function(caster, target, spell) end damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, true, false, false)) - damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, true, false)) + damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true, false, false)) damage = math.floor(damage * xi.spells.damage.calculateMTDR(caster, spell)) damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false)) diff --git a/scripts/actions/weaponskills/atonement.lua b/scripts/actions/weaponskills/atonement.lua index bac084f9c67..72bdfbf501e 100644 --- a/scripts/actions/weaponskills/atonement.lua +++ b/scripts/actions/weaponskills/atonement.lua @@ -75,7 +75,7 @@ weaponskillObject.onUseWeaponSkill = function(player, target, wsID, tp, primary, damage = dmg damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, false, false, true)) - damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true)) + damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, false, false, true)) damage = math.floor(target:handleSevereDamage(damage, false)) if player:getMod(xi.mod.WEAPONSKILL_DAMAGE_BASE + wsID) > 0 then diff --git a/scripts/actions/weaponskills/spirits_within.lua b/scripts/actions/weaponskills/spirits_within.lua index 2878261b3be..9924bbbd741 100644 --- a/scripts/actions/weaponskills/spirits_within.lua +++ b/scripts/actions/weaponskills/spirits_within.lua @@ -50,7 +50,7 @@ weaponskillObject.onUseWeaponSkill = function(player, target, wsID, tp, primary, local damage = dmg damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, false, false, true)) - damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true)) + damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, false, false, true)) damage = math.floor(target:handleSevereDamage(damage, false)) if damage > 0 then diff --git a/scripts/combat/action_additional_effect_damage.lua b/scripts/combat/action_additional_effect_damage.lua index 61c22c4563c..8cc0517a82f 100644 --- a/scripts/combat/action_additional_effect_damage.lua +++ b/scripts/combat/action_additional_effect_damage.lua @@ -121,7 +121,7 @@ xi.combat.action.executeAddEffectDamage = function(actor, target, fedData) end -- Early return: Effect is nullified. - local nullification = xi.spells.damage.calculateNullification(params.aeTarget, params.magicalElement, params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.BREATH) + local nullification = xi.spells.damage.calculateNullification(params.aeTarget, params.magicalElement, params.attackType == xi.attackType.PHYSICAL, params.params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.RANGED, params.attackType == xi.attackType.BREATH) if nullification == 0 then return 0, 0, 0 end diff --git a/scripts/combat/skillchain.lua b/scripts/combat/skillchain.lua index 17902594c28..5ea71950b7e 100644 --- a/scripts/combat/skillchain.lua +++ b/scripts/combat/skillchain.lua @@ -92,7 +92,7 @@ xi.combat.skillchain.calculateSkillchainDamage = function(actor, target, baseDam return 0 end - if xi.spells.damage.calculateNullification(target, skillchainElement, true, false) == 0 then + if xi.spells.damage.calculateNullification(target, skillchainElement, false, true, false, false) == 0 then return 0 end diff --git a/scripts/globals/ability.lua b/scripts/globals/ability.lua index 940f386601c..d6c87662c47 100644 --- a/scripts/globals/ability.lua +++ b/scripts/globals/ability.lua @@ -69,7 +69,7 @@ xi.ability.adjustDamage = function(dmg, attacker, skill, target, skilltype, skil elseif skilltype == xi.attackType.MAGICAL then dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, element, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, element, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, element, false, true, false, false)) dmg = math.floor(target:handleSevereDamage(dmg, false)) elseif skilltype == xi.attackType.BREATH then dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) diff --git a/scripts/globals/additional_effects.lua b/scripts/globals/additional_effects.lua index 54f51eedd94..077a58db24f 100644 --- a/scripts/globals/additional_effects.lua +++ b/scripts/globals/additional_effects.lua @@ -85,7 +85,7 @@ xi.additionalEffect.calcDamage = function(attacker, element, defender, damage) damage = addBonusesAbility(attacker, element, defender, damage, params) damage = math.floor(damage * applyResistanceAddEffect(attacker, defender, element, 0)) damage = math.floor(damage * xi.spells.damage.calculateAbsorption(defender, element, false, true, false, false)) - damage = math.floor(damage * xi.spells.damage.calculateNullification(defender, element, true, false)) + damage = math.floor(damage * xi.spells.damage.calculateNullification(defender, element, false, true, false, false)) -- Todo: make sure day/weather/affinity bonuses tie in right here damage = finalMagicNonSpellAdjustments(attacker, defender, element, damage) diff --git a/scripts/globals/bluemagic.lua b/scripts/globals/bluemagic.lua index 24165a476ce..83b53151a97 100644 --- a/scripts/globals/bluemagic.lua +++ b/scripts/globals/bluemagic.lua @@ -444,7 +444,7 @@ xi.spells.blue.useDrainSpell = function(caster, target, spell, params, damageCap -- Early returns if xi.spells.damage.calculateAbsorption(target, spell:getElement(), false, true, false, false) ~= 1 or - xi.spells.damage.calculateNullification(target, spell:getElement(), true, false) ~= 1 or + xi.spells.damage.calculateNullification(target, spell:getElement(), false, true, false, false) ~= 1 or target:isUndead() then spell:setMsg(xi.msg.basic.MAGIC_NO_EFFECT) @@ -550,7 +550,7 @@ xi.spells.blue.useBreathSpell = function(caster, target, spell, params) local correlationMultiplier = xi.combat.damage.ecosystemMultiplier(caster, target, params.ecosystem) local breathSDT = 1 + caster:getMod(xi.mod.BREATH_DMG_DEALT) / 100 local absorb = xi.spells.damage.calculateAbsorption(target, spellElement, false, true, false, true) - local nullify = xi.spells.damage.calculateNullification(target, spellElement, false, true) + local nullify = xi.spells.damage.calculateNullification(target, spellElement, false, true, false, true) local targetMagicDamageAdjustment = xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true) local elementalStaffBonus = xi.spells.damage.calculateElementalStaffBonus(caster, spellElement) local elementalAffinityBonus = xi.spells.damage.calculateElementalAffinityBonus(caster, spellElement) @@ -630,7 +630,7 @@ xi.spells.blue.applySpellDamage = function(caster, target, spell, dmg, params, t -- handle MDT, One For All, Liement if attackType == xi.attackType.MAGICAL then local absorb = xi.spells.damage.calculateAbsorption(target, spell:getElement(), false, true, false, false) - local nullify = xi.spells.damage.calculateNullification(target, spell:getElement(), true, false) + local nullify = xi.spells.damage.calculateNullification(target, spell:getElement(), false, true, false, false) dmg = math.floor(dmg * absorb * nullify) if dmg < 0 then diff --git a/scripts/globals/job_utils/corsair.lua b/scripts/globals/job_utils/corsair.lua index 5a66281b67f..4cdb337b88c 100644 --- a/scripts/globals/job_utils/corsair.lua +++ b/scripts/globals/job_utils/corsair.lua @@ -628,7 +628,7 @@ xi.job_utils.corsair.handleQuickDrawDamage = function(player, target, action, el local sdtMultiplier = xi.combat.damage.magicalElementSDT(target, element) local additionalResistTier = xi.spells.damage.calculateAdditionalResistTier(player, target, element) local elementalAbsorption = xi.spells.damage.calculateAbsorption(target, element, false, false, true, false) - local elementalNullification = xi.spells.damage.calculateNullification(target, element, false, false) + local elementalNullification = xi.spells.damage.calculateNullification(target, element, false, false, true, false) -- Apply multipliers and bonuses. damage = math.floor(damage * deathPenaltyMultiplier) diff --git a/scripts/globals/job_utils/dragoon.lua b/scripts/globals/job_utils/dragoon.lua index 3f1fb75e0dd..94ab601d130 100644 --- a/scripts/globals/job_utils/dragoon.lua +++ b/scripts/globals/job_utils/dragoon.lua @@ -702,7 +702,7 @@ xi.job_utils.dragoon.useDamageBreath = function(wyvern, target, skill, action, d local resist = xi.combat.magicHitRate.calculateResistRate(wyvern, target, 0, 0, 0, element, 0, 0, bonusMacc) local sdt = xi.combat.damage.magicalElementSDT(target, element) local absorb = xi.spells.damage.calculateAbsorption(target, element, false, true, false, true) - local nullify = xi.spells.damage.calculateNullification(target, element, true, true) + local nullify = xi.spells.damage.calculateNullification(target, element, false, true, false, true) local magicBurst = 1 if skillchainCount > 0 then diff --git a/scripts/globals/job_utils/rune_fencer.lua b/scripts/globals/job_utils/rune_fencer.lua index ef09a69525f..db76e5391b0 100644 --- a/scripts/globals/job_utils/rune_fencer.lua +++ b/scripts/globals/job_utils/rune_fencer.lua @@ -524,7 +524,7 @@ local function getSwipeLungeDamageMultipliers(player, target, element, bonusMacc multipliers.magicBonusDiff = xi.spells.damage.calculateMagicBonusDiff(player, target, 0, 0, element, 0) multipliers.TMDA = xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false) multipliers.absorb = xi.spells.damage.calculateAbsorption(target, element, false, true, false, false) - multipliers.nullify = xi.spells.damage.calculateNullification(target, element, true, false) + multipliers.nullify = xi.spells.damage.calculateNullification(target, element, false, true, false, false) multipliers.magicBurst = 1 multipliers.magicBurstBonus = 1 diff --git a/scripts/globals/magic.lua b/scripts/globals/magic.lua index f55bcaebf0d..81b0fe09d4e 100644 --- a/scripts/globals/magic.lua +++ b/scripts/globals/magic.lua @@ -85,7 +85,7 @@ function finalMagicNonSpellAdjustments(caster, target, ele, dmg) dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false)) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, ele, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, ele, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, ele, false, true, false, false)) dmg = math.floor(target:handleSevereDamage(dmg, false)) dmg = utils.handlePhalanx(target, dmg) diff --git a/scripts/globals/mobs.lua b/scripts/globals/mobs.lua index 4ff443c32d4..6c07e49dacf 100644 --- a/scripts/globals/mobs.lua +++ b/scripts/globals/mobs.lua @@ -554,7 +554,7 @@ local addEffectImmediate = function(mob, target, damage, ae, params) power = addBonusesAbility(mob, ae.ele, target, power, ae.bonusAbilityParams) power = power * applyResistanceAddEffect(mob, target, ae.ele, 0) power = power * xi.spells.damage.calculateAbsorption(target, ae.ele, false, true, false, false) - power = power * xi.spells.damage.calculateNullification(target, ae.ele, true, false) + power = power * xi.spells.damage.calculateNullification(target, ae.ele, false, true, false, false) if ae.sub ~= xi.subEffect.TP_DRAIN and ae.sub ~= xi.subEffect.MP_DRAIN then power = finalMagicNonSpellAdjustments(mob, target, ae.ele, power) diff --git a/scripts/globals/mobskills.lua b/scripts/globals/mobskills.lua index 3717d06d903..2cbdcf86ae4 100644 --- a/scripts/globals/mobskills.lua +++ b/scripts/globals/mobskills.lua @@ -1104,9 +1104,9 @@ xi.mobskills.mobMagicalMove = function(mob, target, skill, action, skillParams) local nullifyDamage = 1 if attackType == xi.attackType.BREATH then - nullifyDamage = xi.spells.damage.calculateNullification(target, actionElement, false, true) + nullifyDamage = xi.spells.damage.calculateNullification(target, actionElement, false, false, false, true) else - nullifyDamage = xi.spells.damage.calculateNullification(target, actionElement, true, false) + nullifyDamage = xi.spells.damage.calculateNullification(target, actionElement, false, true, false, false) end if nullifyDamage == 0 then @@ -1324,7 +1324,7 @@ xi.mobskills.mobBreathMove = function(mob, target, skill, action, skillParams) local absorbDamage = 1 local nullifyDamage = 1 - nullifyDamage = xi.spells.damage.calculateNullification(target, actionElement, false, true) + nullifyDamage = xi.spells.damage.calculateNullification(target, actionElement, false, false, false, true) if nullifyDamage == 0 then -- Note: Nullification takes precedence over elemental absorption. @@ -1757,7 +1757,7 @@ xi.mobskills.handleHybridDamage = function(mob, target, physicalDamage, element) local magicDamage = math.floor(physicalDamage) -- Multipliers. - local nullifyDamage = xi.spells.damage.calculateNullification(target, element, true, false) + local nullifyDamage = xi.spells.damage.calculateNullification(target, element, false, true, false, false) local absorbDamage = xi.spells.damage.calculateAbsorption(target, element, false, true, false, false) local sdt = 1 local resist = 1 diff --git a/scripts/globals/spells/absorb_spell.lua b/scripts/globals/spells/absorb_spell.lua index 11335b1b33d..bf56e5020e7 100644 --- a/scripts/globals/spells/absorb_spell.lua +++ b/scripts/globals/spells/absorb_spell.lua @@ -104,7 +104,7 @@ xi.spells.absorb.doDrainingSpell = function(caster, target, spell) -- Early return: Target absorbs or nullifies dark. if xi.spells.damage.calculateAbsorption(target, xi.element.DARK, false, true, false, false) ~= 1 or - xi.spells.damage.calculateNullification(target, xi.element.DARK, true, false) ~= 1 + xi.spells.damage.calculateNullification(target, xi.element.DARK, false, true, false, false) ~= 1 then spell:setMsg(xi.msg.basic.MAGIC_RESIST) return finalDamage @@ -219,7 +219,7 @@ xi.spells.absorb.doAbsorbTPSpell = function(caster, target, spell) -- Early return: Target absorbs or nullifies dark. if xi.spells.damage.calculateAbsorption(target, xi.element.DARK, false, true, false, false) ~= 1 or - xi.spells.damage.calculateNullification(target, xi.element.DARK, true, false) ~= 1 + xi.spells.damage.calculateNullification(target, xi.element.DARK, false, true, false, false) ~= 1 then spell:setMsg(xi.msg.basic.MAGIC_RESIST) return finalDamage diff --git a/scripts/globals/spells/damage_spell.lua b/scripts/globals/spells/damage_spell.lua index 41aa127855f..ebf8df9806c 100644 --- a/scripts/globals/spells/damage_spell.lua +++ b/scripts/globals/spells/damage_spell.lua @@ -924,13 +924,21 @@ xi.spells.damage.calculateAbsorption = function(target, element, isPhysical, isM return 1 end -xi.spells.damage.calculateNullification = function(target, element, isMagical, isBreath) +xi.spells.damage.calculateNullification = function(target, element, isPhysical, isMagical, isRanged, isBreath) -- Nullify: All damage. if math.randomInt(1, 100) <= target:getMod(xi.mod.NULL_DAMAGE) then return 0 end - -- Nullify: Magic damage. + -- Nullify: Physical damage. + if + isPhysical and + math.randomInt(1, 100) <= target:getMod(xi.mod.NULL_PHYSICAL_DAMAGE) + then + return 0 + end + + -- Nullify: Magical damage. if isMagical and math.randomInt(1, 100) <= target:getMod(xi.mod.NULL_MAGICAL_DAMAGE) @@ -938,6 +946,14 @@ xi.spells.damage.calculateNullification = function(target, element, isMagical, i return 0 end + -- Nullify: Ranged damage. + if + isRanged and + math.randomInt(1, 100) <= target:getMod(xi.mod.NULL_RANGED_DAMAGE) + then + return 0 + end + -- Nullify: Breath damage. if isBreath and @@ -946,9 +962,9 @@ xi.spells.damage.calculateNullification = function(target, element, isMagical, i return 0 end - -- Nullify: Element damage. + -- Nullify: Elemental damage. if - element > 0 and + element > xi.element.NONE and math.randomInt(1, 100) <= target:getMod(xi.data.element.getElementalNullificationModifier(element)) then return 0 @@ -1077,7 +1093,7 @@ xi.spells.damage.useDamageSpell = function(caster, target, spell) -- Early return: Spell is nullified. local spellElement = spell:getElement() - if xi.spells.damage.calculateNullification(target, spellElement, true, false) == 0 then + if xi.spells.damage.calculateNullification(target, spellElement, false, true, false, false) == 0 then spell:setMsg(xi.msg.basic.MAGIC_RESIST) return 0 diff --git a/scripts/globals/weaponskills.lua b/scripts/globals/weaponskills.lua index 6ad4dc9ec9e..44590432a39 100644 --- a/scripts/globals/weaponskills.lua +++ b/scripts/globals/weaponskills.lua @@ -252,7 +252,7 @@ local function calculateHybridMagicDamage(tp, physicaldmg, attacker, target, wsP if magicdmg > 0 then magicdmg = math.floor(magicdmg * xi.spells.damage.calculateAbsorption(target, wsParams.ele, false, true, false, false)) - magicdmg = math.floor(magicdmg * xi.spells.damage.calculateNullification(target, wsParams.ele, true, false)) + magicdmg = math.floor(magicdmg * xi.spells.damage.calculateNullification(target, wsParams.ele, false, true, false, false)) end if magicdmg > 0 then -- handle nonzero damage if previous function does not absorb or nullify @@ -891,7 +891,7 @@ xi.weaponskills.doMagicWeaponskill = function(attacker, target, wsID, wsParams, end dmg = dmg * xi.spells.damage.calculateAbsorption(target, wsParams.ele, false, true, false, false) - dmg = dmg * xi.spells.damage.calculateNullification(target, wsParams.ele, true, false) + dmg = dmg * xi.spells.damage.calculateNullification(target, wsParams.ele, false, true, false, false) dmg = utils.handlePhalanx(target, dmg) dmg = utils.handleOneForAll(target, dmg) diff --git a/scripts/zones/Arrapago_Reef/mobs/Velionis.lua b/scripts/zones/Arrapago_Reef/mobs/Velionis.lua index 77a4d2a3381..43e4af1c0b1 100644 --- a/scripts/zones/Arrapago_Reef/mobs/Velionis.lua +++ b/scripts/zones/Arrapago_Reef/mobs/Velionis.lua @@ -47,7 +47,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) if dmg < 0 then diff --git a/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua b/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua index 5cca96ee5e1..44bf7576ea3 100644 --- a/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua +++ b/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua @@ -29,7 +29,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) if dmg < 0 then diff --git a/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua b/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua index f0e028e0611..81397ee1944 100644 --- a/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua +++ b/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua @@ -35,7 +35,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) if dmg < 0 then diff --git a/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua b/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua index e85635dc8ad..1ed58d52ef6 100644 --- a/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua +++ b/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua @@ -74,7 +74,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) if dmg < 0 then diff --git a/scripts/zones/Halvung/mobs/Copper_Borer.lua b/scripts/zones/Halvung/mobs/Copper_Borer.lua index f67b4ccfda3..1af50a2f970 100644 --- a/scripts/zones/Halvung/mobs/Copper_Borer.lua +++ b/scripts/zones/Halvung/mobs/Copper_Borer.lua @@ -35,7 +35,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) if dmg < 0 then diff --git a/scripts/zones/Ordelles_Caves/mobs/Bombast.lua b/scripts/zones/Ordelles_Caves/mobs/Bombast.lua index 1f43745f841..cb5014b8c4f 100644 --- a/scripts/zones/Ordelles_Caves/mobs/Bombast.lua +++ b/scripts/zones/Ordelles_Caves/mobs/Bombast.lua @@ -21,7 +21,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) if dmg < 0 then diff --git a/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua b/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua index 6da0ce1cbc3..687332b35bc 100644 --- a/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua +++ b/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua @@ -98,7 +98,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) if dmg < 0 then diff --git a/scripts/zones/RoMaeve/mobs/Martinet.lua b/scripts/zones/RoMaeve/mobs/Martinet.lua index d0e4687a8af..73b6fe94312 100644 --- a/scripts/zones/RoMaeve/mobs/Martinet.lua +++ b/scripts/zones/RoMaeve/mobs/Martinet.lua @@ -44,7 +44,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) if dmg < 0 then diff --git a/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua b/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua index 207bbe81966..fa3b04e6f1d 100644 --- a/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua +++ b/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua @@ -30,7 +30,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) if dmg < 0 then diff --git a/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua b/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua index d970f0db1cc..c2a1c8ce2d2 100644 --- a/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua +++ b/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua @@ -22,7 +22,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) if dmg < 0 then diff --git a/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua b/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua index 3958624b97f..b08dbffe589 100644 --- a/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua +++ b/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua @@ -28,7 +28,7 @@ entity.onSpikesDamage = function(mob, target, damage) dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, true, false)) + dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, false, true, false, false)) dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) if dmg < 0 then From 7a055dc19fc79dfe772ff7fca19bb6daf8477057 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Thu, 9 Jul 2026 15:08:18 +0200 Subject: [PATCH 22/59] Convert `Excalibur` to new AE system and normalize parameters --- scripts/items/balmung.lua | 4 ++-- scripts/items/bloody_bolt.lua | 6 +++--- scripts/items/dainslaif.lua | 6 +++--- scripts/items/darkling_bolt.lua | 6 +++--- scripts/items/earth_arrow.lua | 6 +++--- scripts/items/excalibur_119.lua | 22 ++++++++++------------ scripts/items/excalibur_119_ii.lua | 22 ++++++++++------------ scripts/items/excalibur_119_iii.lua | 22 ++++++++++------------ scripts/items/excalibur_75.lua | 22 ++++++++++------------ scripts/items/excalibur_80.lua | 22 ++++++++++------------ scripts/items/excalibur_85.lua | 22 ++++++++++------------ scripts/items/excalibur_90.lua | 22 ++++++++++------------ scripts/items/excalibur_95.lua | 22 ++++++++++------------ scripts/items/excalibur_99.lua | 22 ++++++++++------------ scripts/items/excalibur_99_ii.lua | 22 ++++++++++------------ scripts/items/fire_arrow.lua | 4 ++-- scripts/items/grand_knights_arrow.lua | 6 +++--- scripts/items/holy_bolt.lua | 6 +++--- scripts/items/ice_arrow.lua | 4 ++-- scripts/items/lightning_arrow.lua | 4 ++-- scripts/items/righteous_bolt.lua | 6 +++--- scripts/items/scouts_bolt.lua | 6 +++--- scripts/items/temple_knights_arrow.lua | 6 +++--- scripts/items/water_arrow.lua | 6 +++--- scripts/items/wind_arrow.lua | 6 +++--- 25 files changed, 141 insertions(+), 161 deletions(-) diff --git a/scripts/items/balmung.lua b/scripts/items/balmung.lua index 83c08cc4b53..81076311a06 100644 --- a/scripts/items/balmung.lua +++ b/scripts/items/balmung.lua @@ -6,14 +6,14 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) local pTable = { chance = 10, element = xi.element.DARK, } - return xi.combat.action.executeAddEffectDispel(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDispel(actor, target, pTable) end return itemObject diff --git a/scripts/items/bloody_bolt.lua b/scripts/items/bloody_bolt.lua index 370c4140c6f..2ff9c9e77a6 100644 --- a/scripts/items/bloody_bolt.lua +++ b/scripts/items/bloody_bolt.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) -- Minimum observed at more than -100 dStat is 57. Negative dStat does seem to drop you to 57, but scaling is currently unknown. -- 92 is the upper cap starting at 48 dStat @@ -26,7 +26,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag animation = xi.subEffect.HP_DRAIN, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/dainslaif.lua b/scripts/items/dainslaif.lua index 2abed7ac8e4..c3c8fdcf9d4 100644 --- a/scripts/items/dainslaif.lua +++ b/scripts/items/dainslaif.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) local pTable = { @@ -24,7 +24,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag animation = xi.subEffect.DARKNESS_DAMAGE, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/darkling_bolt.lua b/scripts/items/darkling_bolt.lua index 3701c28f4c8..ec557c5cc76 100644 --- a/scripts/items/darkling_bolt.lua +++ b/scripts/items/darkling_bolt.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/earth_arrow.lua b/scripts/items/earth_arrow.lua index a4d77aede32..fa90e3ec114 100644 --- a/scripts/items/earth_arrow.lua +++ b/scripts/items/earth_arrow.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_119.lua b/scripts/items/excalibur_119.lua index 79381801b23..0cefa844ec7 100644 --- a/scripts/items/excalibur_119.lua +++ b/scripts/items/excalibur_119.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_119_ii.lua b/scripts/items/excalibur_119_ii.lua index dd0e5d33736..1f83dc9c9dc 100644 --- a/scripts/items/excalibur_119_ii.lua +++ b/scripts/items/excalibur_119_ii.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_119_iii.lua b/scripts/items/excalibur_119_iii.lua index c7d1a131144..4aee1337e89 100644 --- a/scripts/items/excalibur_119_iii.lua +++ b/scripts/items/excalibur_119_iii.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_75.lua b/scripts/items/excalibur_75.lua index e4fb0984785..f830914ee4a 100644 --- a/scripts/items/excalibur_75.lua +++ b/scripts/items/excalibur_75.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_80.lua b/scripts/items/excalibur_80.lua index 433890df8b2..3b909983690 100644 --- a/scripts/items/excalibur_80.lua +++ b/scripts/items/excalibur_80.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_85.lua b/scripts/items/excalibur_85.lua index 5cce4ccf797..696ddb189bd 100644 --- a/scripts/items/excalibur_85.lua +++ b/scripts/items/excalibur_85.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_90.lua b/scripts/items/excalibur_90.lua index 647098b4a8d..33d93ddc129 100644 --- a/scripts/items/excalibur_90.lua +++ b/scripts/items/excalibur_90.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_95.lua b/scripts/items/excalibur_95.lua index 6bfffad8051..a5b43241b3c 100644 --- a/scripts/items/excalibur_95.lua +++ b/scripts/items/excalibur_95.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_99.lua b/scripts/items/excalibur_99.lua index 7a3531d6faf..b3a28394f5c 100644 --- a/scripts/items/excalibur_99.lua +++ b/scripts/items/excalibur_99.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/excalibur_99_ii.lua b/scripts/items/excalibur_99_ii.lua index 1eba2a79491..35e398ccbff 100644 --- a/scripts/items/excalibur_99_ii.lua +++ b/scripts/items/excalibur_99_ii.lua @@ -6,19 +6,17 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - if math.randomInt(1, 100) <= 7 then -- 7% chance - local params = {} +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local pTable = + { + chance = 7, + basePower = math.floor(actor:getHP() / 4), + attackType = xi.attackType.PHYSICAL, + physicalElement = xi.damageType.SLASHING, + magicalElement = xi.element.NONE, + } - params.subEffect = xi.subEffect.LIGHT_DAMAGE - params.damageType = xi.damageType.SLASHING - params.isPhysical = true - params.damage = math.floor(attacker:getHP() * 0.25) - - return xi.additionalEffect.procFunctions[xi.additionalEffect.procType.PHYS_DAMAGE](attacker, defender, item, params) - end - - return 0, 0, 0 + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/fire_arrow.lua b/scripts/items/fire_arrow.lua index 302223361a5..11dcd13a26a 100644 --- a/scripts/items/fire_arrow.lua +++ b/scripts/items/fire_arrow.lua @@ -6,7 +6,7 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) -- Unconfirmed power. local pTable = { @@ -18,7 +18,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/grand_knights_arrow.lua b/scripts/items/grand_knights_arrow.lua index 425e973f08e..9261b0cf25a 100644 --- a/scripts/items/grand_knights_arrow.lua +++ b/scripts/items/grand_knights_arrow.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/holy_bolt.lua b/scripts/items/holy_bolt.lua index 6c287ec3cc6..f469d7f56cf 100644 --- a/scripts/items/holy_bolt.lua +++ b/scripts/items/holy_bolt.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.MND) - defender:getStat(xi.mod.MND) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.MND) - target:getStat(xi.mod.MND) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/ice_arrow.lua b/scripts/items/ice_arrow.lua index 0091bb9c76a..752a0b77932 100644 --- a/scripts/items/ice_arrow.lua +++ b/scripts/items/ice_arrow.lua @@ -6,7 +6,7 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) -- Unconfirmed power. local pTable = { @@ -18,7 +18,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/lightning_arrow.lua b/scripts/items/lightning_arrow.lua index 5789127cb46..2a291fbd116 100644 --- a/scripts/items/lightning_arrow.lua +++ b/scripts/items/lightning_arrow.lua @@ -6,7 +6,7 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) -- Unconfirmed power. local pTable = { @@ -18,7 +18,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/righteous_bolt.lua b/scripts/items/righteous_bolt.lua index 647151ff13d..070db8aec70 100644 --- a/scripts/items/righteous_bolt.lua +++ b/scripts/items/righteous_bolt.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.MND) - defender:getStat(xi.mod.MND) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.MND) - target:getStat(xi.mod.MND) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/scouts_bolt.lua b/scripts/items/scouts_bolt.lua index 58f4cf54106..4377da53d79 100644 --- a/scripts/items/scouts_bolt.lua +++ b/scripts/items/scouts_bolt.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.MND) - defender:getStat(xi.mod.MND) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.MND) - target:getStat(xi.mod.MND) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/temple_knights_arrow.lua b/scripts/items/temple_knights_arrow.lua index 7857e6f087a..0439fb990a1 100644 --- a/scripts/items/temple_knights_arrow.lua +++ b/scripts/items/temple_knights_arrow.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/water_arrow.lua b/scripts/items/water_arrow.lua index e1182975092..4e44c50486b 100644 --- a/scripts/items/water_arrow.lua +++ b/scripts/items/water_arrow.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject diff --git a/scripts/items/wind_arrow.lua b/scripts/items/wind_arrow.lua index 1e5f2667b9a..1fec304c86a 100644 --- a/scripts/items/wind_arrow.lua +++ b/scripts/items/wind_arrow.lua @@ -6,8 +6,8 @@ ---@type TItem local itemObject = {} -itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamage, item) - local dStat = attacker:getStat(xi.mod.INT) - defender:getStat(xi.mod.INT) +itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, item) + local dStat = actor:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) -- Unconfirmed power. local pTable = @@ -20,7 +20,7 @@ itemObject.onItemAdditionalEffect = function(attacker, defender, baseAttackDamag canResist = true, } - return xi.combat.action.executeAddEffectDamage(attacker, defender, pTable) + return xi.combat.action.executeAddEffectDamage(actor, target, pTable) end return itemObject From 66197fbad0936066e014e7089cc003da3c074c20 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Thu, 9 Jul 2026 20:24:09 +0200 Subject: [PATCH 23/59] Make mob spikes use their own spikes global system --- scripts/combat/action_spikes_damage.lua | 155 ++++++++++++++++++ scripts/zones/Arrapago_Reef/mobs/Velionis.lua | 33 ++-- scripts/zones/Attohwa_Chasm/mobs/Sargas.lua | 28 ++-- .../zones/Beaucedine_Glacier/mobs/Humbaba.lua | 28 ++-- .../zones/Crawlers_Nest/mobs/Aqrabuamelu.lua | 26 ++- scripts/zones/Halvung/mobs/Copper_Borer.lua | 27 ++- scripts/zones/Ordelles_Caves/mobs/Bombast.lua | 27 ++- .../mobs/Unstable_Cluster.lua | 27 ++- scripts/zones/RoMaeve/mobs/Martinet.lua | 28 ++-- .../Toraimarai_Canal/mobs/Brazen_Bones.lua | 27 ++- .../Uleguerand_Range/mobs/Father_Frost.lua | 26 ++- .../Upper_Delkfutts_Tower/mobs/Autarch.lua | 29 ++-- 12 files changed, 282 insertions(+), 179 deletions(-) create mode 100644 scripts/combat/action_spikes_damage.lua diff --git a/scripts/combat/action_spikes_damage.lua b/scripts/combat/action_spikes_damage.lua new file mode 100644 index 00000000000..ff996d74a68 --- /dev/null +++ b/scripts/combat/action_spikes_damage.lua @@ -0,0 +1,155 @@ +----------------------------------- +-- Global file for additional effects (damage) +----------------------------------- +require('scripts/globals/spells/damage_spell') +----------------------------------- +xi = xi or {} +xi.combat = xi.combat or {} +xi.combat.action = xi.combat.action or {} +----------------------------------- + +local defaultsTable = +{ + [xi.element.NONE ] = { xi.subEffect.DEATH_SPIKES }, + [xi.element.FIRE ] = { xi.subEffect.BLAZE_SPIKES }, + [xi.element.ICE ] = { xi.subEffect.ICE_SPIKES }, + [xi.element.WIND ] = { xi.subEffect.GALE_SPIKES }, + [xi.element.EARTH ] = { xi.subEffect.CLOD_SPIKES }, + [xi.element.THUNDER] = { xi.subEffect.SHOCK_SPIKES }, + [xi.element.WATER ] = { xi.subEffect.DELUGE_SPIKES }, + [xi.element.LIGHT ] = { xi.subEffect.GLINT_SPIKES }, + [xi.element.DARK ] = { xi.subEffect.DREAD_SPIKES }, +} + +----------------------------------- +-- Local functions to ensure defaults are set. +----------------------------------- +local function validateParameters(actor, target, fedData) + local params = {} + + -- Chance. + params.chance = fedData.chance or 100 -- Default: Always proc. + + -- Limit undead + params.limitUndead = fedData.limitUndead or false -- Default: Works on undead. + + -- Base damage parameters. + params.basePower = fedData.basePower or 0 + + -- Action properties. + params.attackType = fedData.attackType or xi.attackType.SPECIAL -- Physical, Magical, Ranged, Breath or Special. + params.physicalElement = fedData.physicalElement or xi.damageType.NONE -- None, H2H, Slashing, Piercing or Blunt. + params.magicalElement = fedData.magicalElement or xi.element.NONE -- None, Fire, Ice, Wind, Earth, Thunder, Water, Light, Dark. + params.actorStat = fedData.actorStat or 0 + params.targetStat = fedData.targetStat or params.actorStat -- Currently unused. For future use. + params.skillRank = fedData.skillRank or 0 + params.macc = fedData.macc or 0 + + -- Multiplier properties. + params.canMAB = fedData.canMAB or false + params.canResist = fedData.canResist or false + params.lowestResist = fedData.lowestResist or 0.125 + params.canResistExtra = fedData.canResistExtra or false + + -- Drain properties. + params.drainHP = fedData.drainHP or false + params.drainMP = fedData.drainMP or false + params.drainTP = fedData.drainTP or false + params.overDrain = fedData.overDrain or false + + -- Animations and messaging. + params.animation = fedData.animation or defaultsTable[params.magicalElement][1] + params.messageDamage = fedData.messageDamage or xi.msg.basic.SPIKES_EFFECT_DMG + params.messageHeal = fedData.messageHeal or xi.msg.basic.SPIKES_EFFECT_HEAL + + return params +end + +----------------------------------- +-- Global functions called from "emtity.onSpikesDamage()" +----------------------------------- +xi.combat.action.executeSpikesDamage = function(actor, target, fedData) + local params = validateParameters(actor, target, fedData) + + -- Early return: No proc. + if math.randomInt(1, 100) > params.chance then + return 0, 0, 0 + end + + -- Early return: Limit undead. + if params.limitUndead and params.aeTarget:isUndead() then + return 0, 0, 0 + end + + -- Early return: Effect is nullified. + local nullification = xi.spells.damage.calculateNullification(params.aeTarget, params.magicalElement, params.attackType == xi.attackType.PHYSICAL, params.params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.RANGED, params.attackType == xi.attackType.BREATH) + if nullification == 0 then + return 0, 0, 0 + end + + -- Early return: Effect is resisted. + local multiplierResist = params.canResist and xi.combat.magicHitRate.calculateResistRate(actor, params.aeTarget, 0, 0, params.skillRank, params.magicalElement, params.actorStat, 0, params.macc) or 1 + if multiplierResist < params.lowestResist then + return 0, 0, 0 + end + + -- Calculate base power. + local damage = params.basePower + actor:getMod(params.actorStat) - params.aeTarget:getMod(params.targetStat) + + -- Calculate mandatory multipliers. + local multiplierAbsorption = xi.spells.damage.calculateAbsorption(params.aeTarget, params.magicalElement, params.attackType == xi.attackType.PHYSICAL, params.params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.RANGED, params.attackType == xi.attackType.BREATH) + local multiplierDamageTypeSDT = xi.combat.damage.calculateDamageAdjustment(params.aeTarget, params.attackType == xi.attackType.PHYSICAL, params.attackType == xi.attackType.MAGICAL, params.attackType == xi.attackType.RANGED, params.attackType == xi.attackType.BREATH) + local multiplierPhysicalElementSDT = xi.combat.damage.physicalElementSDT(params.aeTarget, params.physicalElement) + local multiplierMagicalElementSDT = xi.combat.damage.magicalElementSDT(params.aeTarget, params.magicalElement) + local multiplierDayWeather = xi.spells.damage.calculateDayAndWeather(actor, params.magicalElement, false) + + -- Calculate optional multipliers. + local multiplierMagicDiff = params.canMAB and xi.spells.damage.calculateMagicBonusDiff(actor, params.aeTarget, 0, 0, params.magicalElement, 0) or 1 + local multiplierForcedResistTier = params.canResistExtra and xi.spells.damage.calculateAdditionalResistTier(actor, params.aeTarget, params.magicalElement) or 1 + + -- Calculate final damage. + damage = math.floor(damage * multiplierAbsorption) + damage = math.floor(damage * multiplierDamageTypeSDT) + damage = math.floor(damage * multiplierPhysicalElementSDT) + damage = math.floor(damage * multiplierMagicalElementSDT) + damage = math.floor(damage * multiplierDayWeather) + damage = math.floor(damage * multiplierMagicDiff) + damage = math.floor(damage * multiplierResist) + damage = math.floor(damage * multiplierForcedResistTier) + + -- Phalanx, One for all, Stoneskin. + if damage > 0 then + damage = utils.clamp(utils.handlePhalanx(params.aeTarget, damage), 0, 99999) + damage = utils.clamp(utils.handleOneForAll(params.aeTarget, damage), 0, 99999) + damage = utils.clamp(utils.handleStoneskin(params.aeTarget, damage), 0, 99999) + end + + -- Drain HP, MP or TP + if params.drainHP then + damage = params.overDrain and damage or utils.clamp(damage, 0, params.aeTarget:getHP()) + params.messageDamage = xi.msg.basic.ADD_EFFECT_HP_DRAIN + actor:addHP(damage) + end + + if params.drainMP then + damage = params.overDrain and damage or utils.clamp(damage, 0, params.aeTarget:getMP()) + params.messageDamage = xi.msg.basic.ADD_EFFECT_MP_DRAIN + actor:addMP(damage) + end + + if params.drainTP then + damage = params.overDrain and damage or utils.clamp(damage, 0, params.aeTarget:getTP()) + params.messageDamage = xi.msg.basic.ADD_EFFECT_TP_DRAIN + actor:addTP(damage) + end + + if damage < 0 then + params.aeTarget:addHP(-damage) -- Heal target. + return params.animation, params.messageHeal, -damage + end + + local actionDamageType = params.physicalElement > 0 and params.physicalElement or xi.damageType.ELEMENTAL + params.magicalElement + params.aeTarget:takeDamage(damage, actor, params.attackType, actionDamageType) + + return params.animation, params.messageDamage, damage +end diff --git a/scripts/zones/Arrapago_Reef/mobs/Velionis.lua b/scripts/zones/Arrapago_Reef/mobs/Velionis.lua index 43e4af1c0b1..53fe3930836 100644 --- a/scripts/zones/Arrapago_Reef/mobs/Velionis.lua +++ b/scripts/zones/Arrapago_Reef/mobs/Velionis.lua @@ -9,7 +9,7 @@ local entity = {} entity.onMobInitialize = function(mob) mob:setMobMod(xi.mobMod.AUTO_SPIKES, 1) - mob:addStatusEffect(xi.effect.BLAZE_SPIKES, { power = 200, origin = mob }) -- Wiki says "180-230" and we have NO DATA! We don't know what the players conditions/gear was. + mob:addStatusEffect(xi.effect.BLAZE_SPIKES, { power = 250, origin = mob }) -- Wiki says "180-230" and we have NO DATA! We don't know what the players conditions/gear was. mob:getStatusEffect(xi.effect.BLAZE_SPIKES):setEffectFlags(xi.effectFlag.DEATH) mob:setMobMod(xi.mobMod.IDLE_DESPAWN, 300) end @@ -33,29 +33,22 @@ entity.onMobFight = function(mob, target) end entity.onSpikesDamage = function(mob, target, damage) - -- we don't have an "isCasting()" so use getCurrentAction() instead if mob:getCurrentAction() == xi.action.category.MAGIC_CASTING then - -- No spikes when mid-cast. return 0, 0, 0 - else - -- Again per the note above, we have no data for what the actual damage should be. - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) + end - if dmg < 0 then - dmg = 0 - end + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.FIRE, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } - return xi.subEffect.BLAZE_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg - end + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end return entity diff --git a/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua b/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua index 44bf7576ea3..1d26fc207f6 100644 --- a/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua +++ b/scripts/zones/Attohwa_Chasm/mobs/Sargas.lua @@ -21,22 +21,18 @@ entity.onAdditionalEffect = function(mob, target, damage) end entity.onSpikesDamage = function(mob, target, damage) - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) - - if dmg < 0 then - dmg = 0 - end - - return xi.subEffect.SHOCK_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.THUNDER, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } + + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua b/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua index 81397ee1944..1c6eee4a9ce 100644 --- a/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua +++ b/scripts/zones/Beaucedine_Glacier/mobs/Humbaba.lua @@ -27,22 +27,18 @@ entity.onMobSpawn = function(mob) end entity.onSpikesDamage = function(mob, target, damage) - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) - - if dmg < 0 then - dmg = 0 - end - - return xi.subEffect.ICE_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.ICE, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } + + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua b/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua index 1ed58d52ef6..163a71f1e21 100644 --- a/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua +++ b/scripts/zones/Crawlers_Nest/mobs/Aqrabuamelu.lua @@ -66,22 +66,18 @@ entity.onMobInitialize = function(mob) end entity.onSpikesDamage = function(mob, target, damage) - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.ICE, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } - if dmg < 0 then - dmg = 0 - end - - return xi.subEffect.ICE_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Halvung/mobs/Copper_Borer.lua b/scripts/zones/Halvung/mobs/Copper_Borer.lua index 1af50a2f970..e5854cc6189 100644 --- a/scripts/zones/Halvung/mobs/Copper_Borer.lua +++ b/scripts/zones/Halvung/mobs/Copper_Borer.lua @@ -26,23 +26,18 @@ entity.onAdditionalEffect = function(mob, target, damage) end entity.onSpikesDamage = function(mob, target, damage) - -- "damage" is the power of the status effect up in onMobinitialize. - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) - - if dmg < 0 then - dmg = 0 - end + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.FIRE, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } - return xi.subEffect.BLAZE_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Ordelles_Caves/mobs/Bombast.lua b/scripts/zones/Ordelles_Caves/mobs/Bombast.lua index cb5014b8c4f..90660a2f8f6 100644 --- a/scripts/zones/Ordelles_Caves/mobs/Bombast.lua +++ b/scripts/zones/Ordelles_Caves/mobs/Bombast.lua @@ -12,23 +12,18 @@ entity.onMobInitialize = function(mob) end entity.onSpikesDamage = function(mob, target, damage) - -- "Damage" is the power of the status effect up in onMobinitialize. - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.FIRE, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } - if dmg < 0 then - dmg = 0 - end - - return xi.subEffect.BLAZE_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua b/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua index 687332b35bc..88244fd55f4 100644 --- a/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua +++ b/scripts/zones/Riverne-Site_B01/mobs/Unstable_Cluster.lua @@ -89,23 +89,18 @@ entity.onAdditionalEffect = function(mob, target, damage) end entity.onSpikesDamage = function(mob, target, damage) - -- "damage" is the power of the status effect up in onMobSpawn. - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.FIRE, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.FIRE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.FIRE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.FIRE, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.FIRE, dmg) - - if dmg < 0 then - dmg = 0 - end + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.FIRE, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } - return xi.subEffect.BLAZE_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end return entity diff --git a/scripts/zones/RoMaeve/mobs/Martinet.lua b/scripts/zones/RoMaeve/mobs/Martinet.lua index 73b6fe94312..4f5501e162e 100644 --- a/scripts/zones/RoMaeve/mobs/Martinet.lua +++ b/scripts/zones/RoMaeve/mobs/Martinet.lua @@ -36,22 +36,18 @@ entity.onMobSpawn = function(mob) end entity.onSpikesDamage = function(mob, target, damage) - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) - - if dmg < 0 then - dmg = 0 - end - - return xi.subEffect.SHOCK_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.THUNDER, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } + + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua b/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua index fa3b04e6f1d..7e9bcbd0f65 100644 --- a/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua +++ b/scripts/zones/Toraimarai_Canal/mobs/Brazen_Bones.lua @@ -21,23 +21,18 @@ entity.onMobSpawn = function(mob) end entity.onSpikesDamage = function(mob, target, damage) - -- "damage" is the power of the status effect up in onMobinitialize. - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) - - if dmg < 0 then - dmg = 0 - end + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.ICE, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } - return xi.subEffect.ICE_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onAdditionalEffect = function(mob, target, damage) diff --git a/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua b/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua index c2a1c8ce2d2..4b2eebb326b 100644 --- a/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua +++ b/scripts/zones/Uleguerand_Range/mobs/Father_Frost.lua @@ -14,22 +14,18 @@ entity.onMobSpawn = function(mob) end entity.onSpikesDamage = function(mob, target, damage) - local params = {} - params.bonusmab = 0 - params.includemab = false + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.ICE, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } - local dmg = damage + mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - dmg = addBonusesAbility(mob, xi.element.ICE, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.ICE, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.ICE, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.ICE, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.ICE, dmg) - - if dmg < 0 then - dmg = 0 - end - - return xi.subEffect.ICE_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onMobDespawn = function(mob) diff --git a/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua b/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua index b08dbffe589..d01c9e4a91f 100644 --- a/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua +++ b/scripts/zones/Upper_Delkfutts_Tower/mobs/Autarch.lua @@ -19,23 +19,18 @@ entity.onMobSpawn = function(mob) end entity.onSpikesDamage = function(mob, target, damage) - -- "damage" is the power of the status effect up in onMobinitialize. - local intDiff = mob:getStat(xi.mod.INT) - target:getStat(xi.mod.INT) - local dmg = damage + intDiff - local params = {} - params.bonusmab = 0 - params.includemab = false - dmg = addBonusesAbility(mob, xi.element.THUNDER, target, dmg, params) - dmg = dmg * applyResistanceAddEffect(mob, target, xi.element.THUNDER, 0) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, xi.element.THUNDER, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, xi.element.THUNDER, false, true, false, false)) - dmg = finalMagicNonSpellAdjustments(mob, target, xi.element.THUNDER, dmg) - - if dmg < 0 then - dmg = 0 - end - - return xi.subEffect.SHOCK_SPIKES, xi.msg.basic.SPIKES_EFFECT_DMG, dmg + local pTable = + { + basePower = damage, + attackType = xi.attackType.MAGICAL, + magicalElement = xi.element.THUNDER, + actorStat = xi.mod.INT, + canMAB = true, + canResist = true, + canResistExtra = true, + } + + return xi.combat.action.executeAddEffectDamage(mob, target, pTable) end entity.onMobDeath = function(mob, player, optParams) From 89c3abef4f5c3ade149ba2a2ae9286c3c0dd0369 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Thu, 9 Jul 2026 20:33:00 +0200 Subject: [PATCH 24/59] Kill `finalMagicNonSpellAdjustments()` --- .../action_additional_effect_status.lua | 55 ++++++++++--------- scripts/globals/additional_effects.lua | 20 ++++--- scripts/globals/magic.lua | 29 +--------- scripts/globals/mobs.lua | 15 ++++- scripts/items/bloody_bolt.lua | 3 +- scripts/items/darkling_bolt.lua | 3 +- scripts/items/earth_arrow.lua | 3 +- scripts/items/fire_arrow.lua | 3 +- scripts/items/grand_knights_arrow.lua | 3 +- scripts/items/holy_bolt.lua | 3 +- scripts/items/ice_arrow.lua | 3 +- scripts/items/lightning_arrow.lua | 3 +- scripts/items/righteous_bolt.lua | 3 +- scripts/items/scouts_bolt.lua | 3 +- scripts/items/temple_knights_arrow.lua | 3 +- scripts/items/water_arrow.lua | 3 +- scripts/items/wind_arrow.lua | 3 +- 17 files changed, 70 insertions(+), 88 deletions(-) diff --git a/scripts/combat/action_additional_effect_status.lua b/scripts/combat/action_additional_effect_status.lua index f382d495bee..8c1a9c35d93 100644 --- a/scripts/combat/action_additional_effect_status.lua +++ b/scripts/combat/action_additional_effect_status.lua @@ -38,34 +38,37 @@ local function validateParameters(actor, target, fedData) local params = {} -- Additional effect target. - params.aeTarget = fedData.aeTarget or target -- Default to the current attack target. + params.aeTarget = fedData.aeTarget or target -- Default to the current attack target. -- Chance. - params.chance = fedData.chance or 100 -- Default: Always proc. + params.chance = fedData.chance or 100 -- Default: Always proc. + + -- Source is ranged attack or melee? Skip en-spell check if so. + params.isRanged = fedData.isRanged or false -- Assume melee. -- Status effect application parameters. - params.effectId = fedData.effectId or xi.effect.NONE - params.power = fedData.power or 0 - params.tick = fedData.tick or 0 - params.duration = fedData.duration or 120 - params.subType = fedData.subType or 0 - params.subPower = fedData.subPower or 0 - params.tier = fedData.tier or 0 + params.effectId = fedData.effectId or xi.effect.NONE + params.power = fedData.power or 0 + params.tick = fedData.tick or 0 + params.duration = fedData.duration or 120 + params.subType = fedData.subType or 0 + params.subPower = fedData.subPower or 0 + params.tier = fedData.tier or 0 -- Action properties. - params.element = fedData.element or xi.element.NONE - params.actorStat = fedData.actorStat or 0 - params.targetStat = fedData.targetStat or params.actorStat -- Currently unused. For future use. - params.macc = fedData.macc or 0 - params.resistRate = fedData.resistRate or 0 + params.element = fedData.element or xi.element.NONE -- None, Fire, Ice, Wind, Earth, Thunder, Water, Light, Dark. + params.actorStat = fedData.actorStat or 0 + params.targetStat = fedData.targetStat or params.actorStat -- Currently unused. For future use. + params.skillRank = fedData.skillRank or xi.skillRank.A_PLUS + params.macc = fedData.macc or 0 -- Optional behavior. - params.resetEmnity = fedData.resetEmnity or false - params.absorbEffect = fedData.absorbEffect or false + params.resetEmnity = fedData.resetEmnity or false -- Currently unused. For future use. + params.absorbEffect = fedData.absorbEffect or false -- Animations and messaging. - params.animation = fedData.animation or (defaultsTable[params.effectId][1] or 0) - params.message = fedData.message or (defaultsTable[params.effectId][2] or 0) + params.animation = fedData.animation or (defaultsTable[params.effectId][1] or 0) + params.message = fedData.message or (defaultsTable[params.effectId][2] or 0) return params end @@ -104,8 +107,8 @@ end xi.combat.action.executeAddEffectEnhancement = function(actor, target, fedData) local params = validateParameters(actor, target, fedData) - -- Early return: En-spell overrides innate/weapon additional effects. - if hasEnspell(actor) then + -- Early return: En-spell overrides innate/weapon additional effects, except ranged attacks. + if not params.isRanged and hasEnspell(actor) then return 0, 0, 0 end @@ -135,8 +138,8 @@ end xi.combat.action.executeAddEffectEnfeeblement = function(actor, target, fedData) local params = validateParameters(actor, target, fedData) - -- Early return: En-spell overrides innate/weapon additional effects. - if hasEnspell(actor) then + -- Early return: En-spell overrides innate/weapon additional effects, except ranged attacks. + if not params.isRanged and hasEnspell(actor) then return 0, 0, 0 end @@ -166,7 +169,7 @@ xi.combat.action.executeAddEffectEnfeeblement = function(actor, target, fedData) end -- Early return: Resist rate too high. - local resistanceRate = xi.combat.magicHitRate.calculateResistRate(actor, params.aeTarget, 0, 0, xi.skillRank.A_PLUS, params.element, params.actorStat, params.effectId, params.macc) + local resistanceRate = xi.combat.magicHitRate.calculateResistRate(actor, params.aeTarget, 0, 0, params.skillRank, params.element, params.actorStat, params.effectId, params.macc) if not xi.data.statusEffect.isResistRateSuccessfull(params.effectId, resistanceRate, params.resistRate) then return 0, 0, 0 end @@ -185,8 +188,8 @@ end xi.combat.action.executeAddEffectDispel = function(actor, target, fedData) local params = validateParameters(actor, target, fedData) - -- Early return: En-spell overrides innate/weapon additional effects. - if hasEnspell(actor) then + -- Early return: En-spell overrides innate/weapon additional effects, except ranged attacks. + if not params.isRanged and hasEnspell(actor) then return 0, 0, 0 end @@ -206,7 +209,7 @@ xi.combat.action.executeAddEffectDispel = function(actor, target, fedData) end -- Early return: Resist rate too high. - local resistanceRate = xi.combat.magicHitRate.calculateResistRate(actor, params.aeTarget, 0, 0, xi.skillRank.A_PLUS, params.element, params.actorStat, params.effectId, params.macc) + local resistanceRate = xi.combat.magicHitRate.calculateResistRate(actor, params.aeTarget, 0, 0, params.skillRank, params.element, params.actorStat, params.effectId, params.macc) if not xi.data.statusEffect.isResistRateSuccessfull(params.effectId, resistanceRate, params.resistRate) then return 0, 0, 0 end diff --git a/scripts/globals/additional_effects.lua b/scripts/globals/additional_effects.lua index 077a58db24f..08942759b64 100644 --- a/scripts/globals/additional_effects.lua +++ b/scripts/globals/additional_effects.lua @@ -86,14 +86,20 @@ xi.additionalEffect.calcDamage = function(attacker, element, defender, damage) damage = math.floor(damage * applyResistanceAddEffect(attacker, defender, element, 0)) damage = math.floor(damage * xi.spells.damage.calculateAbsorption(defender, element, false, true, false, false)) damage = math.floor(damage * xi.spells.damage.calculateNullification(defender, element, false, true, false, false)) - -- Todo: make sure day/weather/affinity bonuses tie in right here - damage = finalMagicNonSpellAdjustments(attacker, defender, element, damage) + damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(defender, false, true, false, false)) + damage = math.floor(damage * xi.spells.damage.calculateAbsorption(defender, element, false, true, false, false)) + damage = math.floor(damage * xi.spells.damage.calculateNullification(defender, element, false, true, false, false)) + damage = math.floor(defender:handleSevereDamage(damage, false)) + damage = utils.handlePhalanx(defender, damage) + damage = utils.handleOneForAll(defender, damage) + damage = utils.handleStoneskin(defender, damage) + damage = utils.clamp(damage, -99999, 99999) - --[[ - This should rightly be modified by resistance checks, and while those DO they are presently not perfect. - If you want to force some extra randomness, un-comment the line below to artificially force 20% variance. - ]] - -- damage = damage * (math.randomInt(90, 110) / 100) + if damage < 0 then + damage = -(defender:addHP(-damage)) + else + defender:takeDamage(damage, attacker, xi.attackType.MAGICAL, xi.damageType.ELEMENTAL + element) + end return damage end diff --git a/scripts/globals/magic.lua b/scripts/globals/magic.lua index 81b0fe09d4e..eaf9564688f 100644 --- a/scripts/globals/magic.lua +++ b/scripts/globals/magic.lua @@ -27,7 +27,7 @@ function getCurePowerOld(caster) end function getBaseCure(power, divisor, constant, basepower) - return ((power - basepower) / divisor) + constant + return (power - basepower) / divisor + constant end function getBaseCureOld(power, divisor, constant) @@ -80,33 +80,6 @@ function applyResistanceAddEffect(actor, target, element, bonusMacc) return xi.combat.magicHitRate.calculateResistRate(actor, target, 0, xi.skill.NONE, 0, element, 0, 0, bonusMacc) end -function finalMagicNonSpellAdjustments(caster, target, ele, dmg) - -- Handles target's HP adjustment and returns SIGNED dmg (negative values on absorb) - - dmg = math.floor(dmg * xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateAbsorption(target, ele, false, true, false, false)) - dmg = math.floor(dmg * xi.spells.damage.calculateNullification(target, ele, false, true, false, false)) - dmg = math.floor(target:handleSevereDamage(dmg, false)) - - dmg = utils.handlePhalanx(target, dmg) - dmg = utils.handleOneForAll(target, dmg) - dmg = utils.handleStoneskin(target, dmg) - - dmg = utils.clamp(dmg, -99999, 99999) - - if dmg < 0 then - dmg = -(target:addHP(-dmg)) - else - target:takeDamage(dmg, caster, xi.attackType.MAGICAL, xi.damageType.ELEMENTAL + ele) - end - - -- Not updating enmity from damage, as this is primarily used for additional effects (which don't generate emnity) - -- in the case that updating enmity is needed, do it manually after calling this - -- target:updateEnmityFromDamage(caster, dmg) - - return dmg -end - function addBonusesAbility(caster, ele, target, dmg, params) local affinityBonus = xi.spells.damage.calculateElementalStaffBonus(caster, ele) dmg = math.floor(dmg * affinityBonus) diff --git a/scripts/globals/mobs.lua b/scripts/globals/mobs.lua index 6c07e49dacf..c7fa07fd574 100644 --- a/scripts/globals/mobs.lua +++ b/scripts/globals/mobs.lua @@ -557,7 +557,20 @@ local addEffectImmediate = function(mob, target, damage, ae, params) power = power * xi.spells.damage.calculateNullification(target, ae.ele, false, true, false, false) if ae.sub ~= xi.subEffect.TP_DRAIN and ae.sub ~= xi.subEffect.MP_DRAIN then - power = finalMagicNonSpellAdjustments(mob, target, ae.ele, power) + power = math.floor(power * xi.combat.damage.calculateDamageAdjustment(target, false, true, false, false)) + power = math.floor(power * xi.spells.damage.calculateAbsorption(target, ae.ele, false, true, false, false)) + power = math.floor(power * xi.spells.damage.calculateNullification(target, ae.ele, false, true, false, false)) + power = math.floor(target:handleSevereDamage(power, false)) + power = utils.handlePhalanx(target, power) + power = utils.handleOneForAll(target, power) + power = utils.handleStoneskin(target, power) + power = utils.clamp(power, -99999, 99999) + + if power < 0 then + power = -(target:addHP(-power)) + else + target:takeDamage(power, mob, xi.attackType.MAGICAL, xi.damageType.ELEMENTAL + ae.ele) + end end -- target:printToPlayer(string.format('Adjusted Power: %f', power)) -- DEBUG diff --git a/scripts/items/bloody_bolt.lua b/scripts/items/bloody_bolt.lua index 2ff9c9e77a6..9aecfefea24 100644 --- a/scripts/items/bloody_bolt.lua +++ b/scripts/items/bloody_bolt.lua @@ -15,8 +15,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 60 + utils.clamp(dStat, -3, 16) + utils.clamp(math.floor((dStat - 16) / 2), 0, 16), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.DARK, canResist = true, lowestResist = 0.5, diff --git a/scripts/items/darkling_bolt.lua b/scripts/items/darkling_bolt.lua index ec557c5cc76..141451532fe 100644 --- a/scripts/items/darkling_bolt.lua +++ b/scripts/items/darkling_bolt.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.DARK, canResist = true, } diff --git a/scripts/items/earth_arrow.lua b/scripts/items/earth_arrow.lua index fa90e3ec114..66c6bfaa451 100644 --- a/scripts/items/earth_arrow.lua +++ b/scripts/items/earth_arrow.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.EARTH, canResist = true, } diff --git a/scripts/items/fire_arrow.lua b/scripts/items/fire_arrow.lua index 11dcd13a26a..3ca7bf0206e 100644 --- a/scripts/items/fire_arrow.lua +++ b/scripts/items/fire_arrow.lua @@ -12,8 +12,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = math.random(7, 10), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.FIRE, canResist = true, } diff --git a/scripts/items/grand_knights_arrow.lua b/scripts/items/grand_knights_arrow.lua index 9261b0cf25a..b2617eef711 100644 --- a/scripts/items/grand_knights_arrow.lua +++ b/scripts/items/grand_knights_arrow.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.FIRE, canResist = true, } diff --git a/scripts/items/holy_bolt.lua b/scripts/items/holy_bolt.lua index f469d7f56cf..aa4dccc3fc3 100644 --- a/scripts/items/holy_bolt.lua +++ b/scripts/items/holy_bolt.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 40 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.LIGHT, canResist = true, } diff --git a/scripts/items/ice_arrow.lua b/scripts/items/ice_arrow.lua index 752a0b77932..12337e285a0 100644 --- a/scripts/items/ice_arrow.lua +++ b/scripts/items/ice_arrow.lua @@ -12,8 +12,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = math.random(7, 10), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.ICE, canResist = true, } diff --git a/scripts/items/lightning_arrow.lua b/scripts/items/lightning_arrow.lua index 2a291fbd116..a8cd7f44a21 100644 --- a/scripts/items/lightning_arrow.lua +++ b/scripts/items/lightning_arrow.lua @@ -12,8 +12,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = math.random(7, 10), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.THUNDER, canResist = true, } diff --git a/scripts/items/righteous_bolt.lua b/scripts/items/righteous_bolt.lua index 070db8aec70..19e0e4d816a 100644 --- a/scripts/items/righteous_bolt.lua +++ b/scripts/items/righteous_bolt.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 40 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.LIGHT, canResist = true, } diff --git a/scripts/items/scouts_bolt.lua b/scripts/items/scouts_bolt.lua index 4377da53d79..2bf3373c20a 100644 --- a/scripts/items/scouts_bolt.lua +++ b/scripts/items/scouts_bolt.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 40 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.LIGHT, canResist = true, } diff --git a/scripts/items/temple_knights_arrow.lua b/scripts/items/temple_knights_arrow.lua index 0439fb990a1..89796e3c53b 100644 --- a/scripts/items/temple_knights_arrow.lua +++ b/scripts/items/temple_knights_arrow.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.FIRE, canResist = true, } diff --git a/scripts/items/water_arrow.lua b/scripts/items/water_arrow.lua index 4e44c50486b..d6102fad7d5 100644 --- a/scripts/items/water_arrow.lua +++ b/scripts/items/water_arrow.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.WATER, canResist = true, } diff --git a/scripts/items/wind_arrow.lua b/scripts/items/wind_arrow.lua index 1fec304c86a..0b551137643 100644 --- a/scripts/items/wind_arrow.lua +++ b/scripts/items/wind_arrow.lua @@ -14,8 +14,7 @@ itemObject.onItemAdditionalEffect = function(actor, target, baseAttackDamage, it { isRanged = true, basePower = 10 + utils.clamp(dStat, -3, 8) + utils.clamp(math.floor((dStat - 8) / 2), 0, 8), - attackType = xi.attackType.PHYSICAL, - physicalElement = xi.damageType.PIERCING, + attackType = xi.attackType.MAGICAL, magicalElement = xi.element.WIND, canResist = true, } From 492c86ab6f4032f683f5e0554d241fbcbe4d0b75 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 10:59:14 -0600 Subject: [PATCH 25/59] Temenos entities rework --- sql/mob_spawn_points.sql | 1295 +++++++++++++++----------------------- sql/npc_list.sql | 216 +++---- 2 files changed, 607 insertions(+), 904 deletions(-) diff --git a/sql/mob_spawn_points.sql b/sql/mob_spawn_points.sql index df2cf6bc4e5..f7e95bd44cd 100644 --- a/sql/mob_spawn_points.sql +++ b/sql/mob_spawn_points.sql @@ -8144,802 +8144,505 @@ INSERT INTO `mob_spawn_points` VALUES (16924729,0,'Ultima','Ultima',10,0,0,0.000 -- Temenos (Zone 37) -- ------------------------------------------------------------ -INSERT INTO `mob_spawn_points` VALUES (16928769,0,'Temenos_Orc','Temenos Orc',1,150,150,379.832,73.510,408.434,8,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928770,0,'Temenos_Orc','Temenos Orc',1,150,150,371.116,73.512,416.130,82,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928771,0,'Temenos_Orc','Temenos Orc',1,150,150,371.248,73.516,427.320,88,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928772,0,'Temenos_Orc','Temenos Orc',1,150,150,375.054,73.512,415.572,56,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928773,0,'Temenos_Orc','Temenos Orc',1,150,150,372.335,73.570,423.089,53,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928774,0,'Temenos_Quadav','Temenos Quadav',2,150,150,385.289,73.500,460.389,153,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928775,0,'Temenos_Quadav','Temenos Quadav',2,150,150,381.081,73.500,466.852,168,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928776,0,'Temenos_Quadav','Temenos Quadav',2,150,150,377.828,73.500,468.354,147,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928777,0,'Temenos_Quadav','Temenos Quadav',2,150,150,381.233,73.500,463.316,145,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928778,0,'Temenos_Quadav','Temenos Quadav',2,150,150,380.530,73.500,454.766,87,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928779,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,330.902,69.426,466.215,96,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928780,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,325.353,69.499,461.967,72,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928781,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,330.313,69.499,471.788,63,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928782,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,326.597,69.498,469.341,100,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928783,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,330.931,69.499,470.754,79,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928784,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,339.897,73.500,415.475,99,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928785,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,339.898,73.500,415.476,99,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928786,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,339.728,73.500,415.161,91,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928787,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,344.571,73.500,418.826,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928788,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,331.842,73.500,422.407,170,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928789,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,337.400,73.500,418.910,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928790,0,'Temenos_Orc','Temenos Orc',1,150,150,222.223,-80.499,418.299,223,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928791,0,'Temenos_Orc','Temenos Orc',1,150,150,217.761,-80.499,418.140,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928792,0,'Temenos_Orc','Temenos Orc',1,150,150,217.657,-80.499,418.005,162,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928793,0,'Temenos_Orc','Temenos Orc',1,150,150,222.341,-80.499,418.668,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928794,0,'Temenos_Orc','Temenos Orc',1,150,150,219.669,-80.498,414.872,37,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928795,0,'Temenos_Doll','Temenos Doll',6,150,150,227.499,-86.184,457.951,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928796,0,'Temenos_Doll','Temenos Doll',6,150,150,220.241,-83.857,458.335,135,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928797,0,'Temenos_Doll','Temenos Doll',6,150,150,226.616,-86.499,453.236,250,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928798,0,'Temenos_Doll','Temenos Doll',6,150,150,213.918,-82.510,460.693,81,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928799,0,'Temenos_Doll','Temenos Doll',6,150,150,228.697,-86.480,457.253,200,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928800,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,193.977,-81.453,487.147,158,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928801,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,197.060,-81.467,485.856,149,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928802,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,207.851,-81.456,488.267,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928803,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,208.802,-81.457,473.669,61,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928804,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,199.579,-81.491,479.826,227,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928805,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,207.897,-81.454,474.017,41,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928806,0,'Temenos_Gigas','Temenos Gigas',7,150,150,207.773,-81.499,481.990,28,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928807,0,'Temenos_Gigas','Temenos Gigas',7,150,150,198.788,-81.492,473.051,7,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928808,0,'Temenos_Gigas','Temenos Gigas',7,150,150,199.183,-81.499,488.515,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928809,0,'Temenos_Gigas','Temenos Gigas',7,150,150,198.317,-81.490,473.015,6,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928810,0,'Temenos_Gigas','Temenos Gigas',7,150,150,192.375,-81.498,480.889,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928811,0,'Temenos_Doll','Temenos Doll',6,150,150,181.447,-83.473,459.782,120,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928812,0,'Temenos_Doll','Temenos Doll',6,150,150,185.722,-82.705,460.456,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928813,0,'Temenos_Doll','Temenos Doll',6,150,150,179.730,-83.833,459.322,250,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928814,0,'Temenos_Doll','Temenos Doll',6,150,150,185.406,-82.709,460.147,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928815,0,'Temenos_Doll','Temenos Doll',6,150,150,184.845,-82.500,464.299,176,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928816,0,'Temenos_Quadav','Temenos Quadav',2,150,150,178.384,-80.500,415.404,28,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928817,0,'Temenos_Quadav','Temenos Quadav',2,150,150,176.716,-80.500,418.467,172,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928818,0,'Temenos_Quadav','Temenos Quadav',2,150,150,184.846,-80.512,419.430,255,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928819,0,'Temenos_Quadav','Temenos Quadav',2,150,150,181.417,-80.500,419.073,255,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928820,0,'Temenos_Quadav','Temenos Quadav',2,150,150,184.650,-80.476,418.699,99,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928821,0,'Temenos_Orc','Temenos Orc',1,150,150,63.919,79.500,419.728,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928822,0,'Temenos_Orc','Temenos Orc',1,150,150,65.353,79.500,419.488,4,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928823,0,'Temenos_Orc','Temenos Orc',1,150,150,52.033,79.500,419.271,254,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928824,0,'Temenos_Orc','Temenos Orc',1,150,150,45.655,79.500,419.328,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928825,0,'Temenos_Orc','Temenos Orc',1,150,150,57.890,79.500,419.735,129,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928826,0,'Temenos_Quadav','Temenos Quadav',2,150,150,65.978,79.500,419.489,4,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928827,0,'Temenos_Quadav','Temenos Quadav',2,150,150,64.345,79.500,419.748,133,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928828,0,'Temenos_Quadav','Temenos Quadav',2,150,150,67.763,79.500,418.694,177,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928829,0,'Temenos_Quadav','Temenos Quadav',2,150,150,50.846,79.500,413.939,35,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928830,0,'Temenos_Quadav','Temenos Quadav',2,150,150,71.569,79.500,415.013,78,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928831,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,28.589,79.500,417.885,175,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928832,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,29.516,79.500,416.780,47,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928833,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,14.951,79.500,420.878,106,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928834,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,11.483,79.500,420.057,248,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928835,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,22.635,79.500,421.006,3,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928836,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,8.133,79.500,419.611,166,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928837,0,'Temenos_Goblin','Temenos Goblin',8,150,150,29.271,79.500,416.229,41,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928838,0,'Temenos_Goblin','Temenos Goblin',8,150,150,10.900,79.500,416.645,214,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928839,0,'Temenos_Goblin','Temenos Goblin',8,150,150,7.618,79.500,420.205,160,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928840,0,'Temenos_Goblin','Temenos Goblin',8,150,150,7.477,79.500,420.126,160,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928841,0,'Temenos_Moblin','Temenos Moblin',9,150,150,14.159,79.500,421.131,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928842,0,'Temenos_Orc','Temenos Orc',1,150,150,-96.593,-80.684,412.617,36,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928843,0,'Temenos_Orc','Temenos Orc',1,150,150,-99.537,-80.595,421.244,53,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928844,0,'Temenos_Orc','Temenos Orc',1,150,150,-109.966,-80.698,417.207,94,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928845,0,'Temenos_Orc','Temenos Orc',1,150,150,-109.472,-80.583,420.332,138,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928846,0,'Temenos_Orc','Temenos Orc',1,150,150,-97.219,-80.682,411.973,35,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928847,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-107.467,-80.661,419.133,219,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928848,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-92.367,-80.689,410.545,1,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928849,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-91.091,-80.667,423.711,207,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928850,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-91.125,-80.698,427.629,196,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928851,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-97.625,-80.698,425.294,93,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928852,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-135.321,-80.698,409.814,119,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928853,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,-134.066,-80.688,409.914,248,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928854,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-130.515,-80.689,426.027,194,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928855,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-143.015,-80.691,424.886,49,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928856,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-139.676,-80.543,427.411,178,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928857,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-145.137,-80.698,419.295,81,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928858,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-133.257,-80.698,420.043,90,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928859,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-143.362,-80.698,427.047,165,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928860,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-137.747,-80.552,416.337,175,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928861,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-129.281,-80.697,424.655,51,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928862,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-128.979,-80.698,424.450,59,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928863,0,'Temenos_Orc','Temenos Orc',1,150,150,-247.255,79.500,411.236,96,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928864,0,'Temenos_Orc','Temenos Orc',1,150,150,-250.031,79.500,408.032,129,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928865,0,'Temenos_Orc','Temenos Orc',1,150,150,-251.381,79.500,408.146,255,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928866,0,'Temenos_Orc','Temenos Orc',1,150,150,-250.170,79.500,408.638,100,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928867,0,'Temenos_Orc','Temenos Orc',1,150,150,-248.090,79.500,411.015,226,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928868,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-246.260,79.500,432.417,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928869,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-255.714,79.500,432.523,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928870,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-248.105,79.500,429.761,36,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928871,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-247.839,79.500,429.333,158,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928872,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-256.960,79.500,432.582,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928873,0,'Temenos_Orc','Temenos Orc',1,150,150,-312.231,79.500,429.240,219,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928874,0,'Temenos_Orc','Temenos Orc',1,150,150,-304.646,79.500,432.621,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928875,0,'Temenos_Orc','Temenos Orc',1,150,150,-303.614,79.500,432.616,39,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928876,0,'Temenos_Orc','Temenos Orc',1,150,150,-312.782,79.500,429.678,36,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928877,0,'Temenos_Orc','Temenos Orc',1,150,150,-314.947,79.500,432.346,127,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928878,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-299.918,79.500,409.418,115,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928879,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-305.180,79.500,408.118,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928880,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-300.971,79.500,412.998,152,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928881,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-296.636,79.500,411.098,10,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928882,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-315.904,79.500,407.624,224,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928883,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-407.492,-78.500,426.721,195,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928884,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,-407.843,-78.500,423.619,198,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928885,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-420.555,-78.500,427.623,62,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928886,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-415.929,-78.772,423.776,90,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928887,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-415.690,-78.773,423.305,124,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928888,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-410.187,-78.500,426.384,119,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928889,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-424.459,-80.500,418.892,136,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928890,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-425.559,-80.500,419.131,3,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928891,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-422.828,-80.500,416.740,30,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928892,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-419.641,-80.500,413.383,184,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928893,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-420.216,-80.500,414.866,35,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928894,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-460.021,-78.500,428.245,22,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928895,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,-460.620,-78.500,428.581,17,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928896,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-458.956,-78.500,433.910,252,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928897,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-466.130,-78.500,432.574,167,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928898,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-471.116,-78.500,429.044,110,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928899,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-465.016,-78.500,430.159,100,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928900,0,'Temenos_Doll','Temenos Doll',6,150,150,-449.542,-80.500,421.021,248,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928901,0,'Temenos_Doll','Temenos Doll',6,150,150,-459.280,-80.500,415.955,62,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928902,0,'Temenos_Doll','Temenos Doll',6,150,150,-454.899,-80.500,419.850,221,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928903,0,'Temenos_Doll','Temenos Doll',6,150,150,-459.762,-80.500,420.112,189,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928904,0,'Temenos_Doll','Temenos Doll',6,150,150,-460.414,-80.500,411.198,74,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928905,0,'Temenos_Orc','Temenos Orc',1,150,150,-586.718,83.349,420.730,135,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928906,0,'Temenos_Orc','Temenos Orc',1,150,150,-581.412,82.415,419.695,1,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928907,0,'Temenos_Orc','Temenos Orc',1,150,150,-573.764,79.892,419.528,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928908,0,'Temenos_Orc','Temenos Orc',1,150,150,-573.086,79.627,419.395,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928909,0,'Temenos_Orc','Temenos Orc',1,150,150,-573.095,79.500,415.182,65,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928910,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-593.604,84.538,446.678,57,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928911,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-607.539,84.542,432.162,129,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928912,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-608.997,84.500,440.550,96,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928913,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-594.020,84.545,447.810,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928914,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-608.664,84.547,432.015,89,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928915,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-602.525,84.507,437.705,219,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928916,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-597.830,84.500,434.556,91,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928917,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-594.612,84.504,439.703,120,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928918,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-603.916,84.519,435.466,226,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928919,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-596.708,84.500,443.518,30,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928920,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-612.658,83.499,419.239,47,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928921,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,-613.270,83.440,420.120,175,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928922,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-615.211,83.549,424.403,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928923,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-627.047,79.500,413.242,136,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928924,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-620.265,79.500,412.023,7,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928925,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-611.900,79.499,413.452,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928926,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,373.947,-0.499,132.971,140,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928927,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,371.077,-0.498,134.097,143,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928928,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,376.061,-0.500,147.055,91,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928929,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,371.971,-0.497,145.793,125,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928930,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,374.554,-0.455,142.576,201,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928931,0,'Temenos_Antica','Temenos Antica',13,150,150,386.435,-0.500,180.113,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928932,0,'Temenos_Antica','Temenos Antica',13,150,150,385.974,-0.500,181.276,32,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928933,0,'Temenos_Antica','Temenos Antica',13,150,150,381.003,-0.500,176.741,187,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928934,0,'Temenos_Antica','Temenos Antica',13,150,150,381.201,-0.500,186.978,165,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928935,0,'Temenos_Antica','Temenos Antica',13,150,150,385.718,-0.500,180.607,235,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928936,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,332.173,-4.500,181.675,72,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928937,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,339.347,-4.528,188.448,224,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928938,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,332.749,-4.501,194.462,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928939,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,331.649,-4.500,181.561,73,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928940,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,331.773,-4.534,181.262,90,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928941,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,333.763,-0.500,139.525,149,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928942,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,339.093,-0.500,135.201,26,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928943,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,341.905,-0.500,138.997,212,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928944,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,343.723,-0.500,139.901,117,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928945,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,344.332,-0.500,140.594,105,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928946,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,342.227,-0.500,139.210,254,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928947,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,221.813,-160.500,138.512,223,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928948,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,218.616,-160.500,134.797,28,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928949,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,217.589,-160.500,137.719,162,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928950,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,217.208,-160.500,138.235,162,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928951,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,214.108,-160.500,138.863,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928952,0,'Temenos_Golem','Temenos Golem',17,150,150,219.793,-163.880,178.202,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928953,0,'Temenos_Golem','Temenos Golem',17,150,150,227.875,-166.500,176.716,204,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928954,0,'Temenos_Golem','Temenos Golem',17,150,150,221.561,-166.487,172.018,114,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928955,0,'Temenos_Golem','Temenos Golem',17,150,150,228.010,-166.500,174.030,69,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928956,0,'Temenos_Golem','Temenos Golem',17,150,150,214.249,-162.695,179.216,133,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928957,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,203.045,-161.490,200.631,96,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928958,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,200.055,-161.499,206.756,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928959,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,208.513,-161.499,200.599,26,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928960,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,202.435,-161.492,208.042,136,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928961,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,205.311,-161.477,207.659,136,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928962,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,209.007,-161.455,207.233,190,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928963,0,'Temenos_Gigas','Temenos Gigas',7,150,150,201.903,-161.499,193.140,98,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928964,0,'Temenos_Gigas','Temenos Gigas',7,150,150,201.698,-161.499,208.041,163,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928965,0,'Temenos_Gigas','Temenos Gigas',7,150,150,199.534,-161.499,208.344,227,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928966,0,'Temenos_Gigas','Temenos Gigas',7,150,150,202.007,-161.491,203.131,93,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928967,0,'Temenos_Gigas','Temenos Gigas',7,150,150,200.978,-161.495,205.993,70,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928968,0,'Temenos_Golem','Temenos Golem',17,150,150,213.671,-162.707,180.713,135,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928969,0,'Temenos_Golem','Temenos Golem',17,150,150,213.363,-162.679,180.718,135,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928970,0,'Temenos_Golem','Temenos Golem',17,150,150,172.739,-166.139,179.636,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928971,0,'Temenos_Golem','Temenos Golem',17,150,150,213.170,-162.703,180.564,135,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928972,0,'Temenos_Golem','Temenos Golem',17,150,150,216.514,-163.377,179.875,134,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928973,0,'Temenos_Antica','Temenos Antica',13,150,150,176.394,-160.500,139.916,75,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928974,0,'Temenos_Antica','Temenos Antica',13,150,150,174.371,-160.500,139.160,139,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928975,0,'Temenos_Antica','Temenos Antica',13,150,150,177.403,-160.500,139.510,55,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928976,0,'Temenos_Antica','Temenos Antica',13,150,150,182.314,-160.500,138.824,9,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928977,0,'Temenos_Antica','Temenos Antica',13,150,150,177.888,-160.500,138.574,109,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928978,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,55.437,5.500,140.149,253,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928979,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,50.444,5.500,134.273,85,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928980,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,67.018,5.500,139.349,138,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928981,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,65.213,5.500,139.576,4,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928982,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,63.649,5.500,139.480,141,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928983,0,'Temenos_Antica','Temenos Antica',13,150,150,63.666,5.500,139.472,142,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928984,0,'Temenos_Antica','Temenos Antica',13,150,150,63.839,5.500,139.437,142,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928985,0,'Temenos_Antica','Temenos Antica',13,150,150,65.906,5.500,139.388,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928986,0,'Temenos_Antica','Temenos Antica',13,150,150,66.347,5.500,139.907,24,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928987,0,'Temenos_Antica','Temenos Antica',13,150,150,67.681,5.500,138.548,175,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928988,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,29.556,5.500,134.020,43,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928989,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,12.672,5.500,137.941,69,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928990,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,12.340,5.500,134.599,68,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928991,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,16.867,5.500,140.062,242,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928992,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,15.593,5.500,138.815,229,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928993,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,12.471,5.500,135.403,69,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928994,0,'Temenos_Goblin','Temenos Goblin',8,150,150,26.565,5.500,140.610,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928995,0,'Temenos_Goblin','Temenos Goblin',8,150,150,26.551,5.500,140.746,1,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928996,0,'Temenos_Goblin','Temenos Goblin',8,150,150,19.796,5.500,144.930,103,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928997,0,'Temenos_Goblin','Temenos Goblin',8,150,150,24.350,5.500,140.873,138,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928998,0,'Temenos_Moblin','Temenos Moblin',9,150,150,11.657,5.500,136.358,71,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16928999,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-99.748,-160.495,132.935,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929000,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-109.999,-160.499,148.576,192,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929001,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-109.560,-160.499,149.575,129,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929002,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-100.571,-160.496,149.886,200,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929003,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-94.528,-160.500,149.815,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929004,0,'Temenos_Antica','Temenos Antica',13,150,150,-110.734,-160.499,132.708,70,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929005,0,'Temenos_Antica','Temenos Antica',13,150,150,-110.563,-160.498,136.141,67,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929006,0,'Temenos_Antica','Temenos Antica',13,150,150,-110.941,-160.499,146.757,65,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929007,0,'Temenos_Antica','Temenos Antica',13,150,150,-101.126,-160.496,131.665,63,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929008,0,'Temenos_Antica','Temenos Antica',13,150,150,-109.736,-160.493,139.614,137,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929009,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-135.313,-160.497,148.084,254,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929010,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-152.803,-160.499,137.854,180,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929011,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-141.511,-160.499,129.905,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929012,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-141.486,-160.499,148.623,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929013,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,-144.803,-160.499,148.353,254,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929014,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-140.370,-160.499,124.881,55,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929015,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-130.276,-160.499,146.772,195,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929016,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-151.020,-160.499,140.316,72,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929017,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-146.065,-160.478,137.152,248,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929018,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-150.216,-160.499,140.398,74,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929019,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-140.849,-160.499,129.748,5,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929020,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-264.558,-0.500,130.191,114,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929021,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-259.455,-0.500,127.640,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929022,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-250.132,-0.500,127.416,155,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929023,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-249.816,-0.500,127.944,127,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929024,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-247.657,-0.500,124.588,205,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929025,0,'Temenos_Antica','Temenos Antica',13,150,150,-246.921,-0.500,154.748,162,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929026,0,'Temenos_Antica','Temenos Antica',13,150,150,-256.930,-0.500,151.931,239,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929027,0,'Temenos_Antica','Temenos Antica',13,150,150,-264.573,-0.500,149.690,140,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929028,0,'Temenos_Antica','Temenos Antica',13,150,150,-247.786,-0.500,149.019,223,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929029,0,'Temenos_Antica','Temenos Antica',13,150,150,-244.356,-0.500,152.596,94,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929030,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-309.111,-0.500,152.155,230,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929031,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-300.156,-0.500,151.708,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929032,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-312.389,-0.500,155.327,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929033,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-294.303,-0.500,151.046,26,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929034,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-300.529,-0.500,148.694,245,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929035,0,'Temenos_Antica','Temenos Antica',13,150,150,-309.850,-0.500,128.437,252,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929036,0,'Temenos_Antica','Temenos Antica',13,150,150,-300.784,-0.500,125.085,203,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929037,0,'Temenos_Antica','Temenos Antica',13,150,150,-301.077,-0.500,132.720,190,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929038,0,'Temenos_Antica','Temenos Antica',13,150,150,-312.951,-0.500,125.521,36,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929039,0,'Temenos_Antica','Temenos Antica',13,150,150,-297.282,-0.500,130.440,243,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929040,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-417.315,-158.750,144.754,37,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929041,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-416.601,-158.748,144.812,69,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929042,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-420.653,-158.500,152.558,158,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929043,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-414.233,-158.500,152.157,235,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929044,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,-416.533,-158.500,150.580,234,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929045,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-419.627,-158.500,152.689,134,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929046,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-427.099,-160.500,138.899,134,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929047,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-419.925,-160.500,129.594,54,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929048,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-420.190,-160.500,133.144,185,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929049,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-420.786,-160.500,134.466,29,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929050,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-420.698,-160.500,138.748,253,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929051,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-460.173,-158.500,152.691,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929052,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-471.707,-158.500,139.116,117,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929053,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-467.013,-158.500,144.344,203,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929054,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-468.552,-158.500,146.805,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929055,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,-469.287,-158.500,145.149,229,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929056,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-471.171,-158.500,148.874,102,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929057,0,'Temenos_Golem','Temenos Golem',17,150,150,-419.144,-160.500,109.129,156,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929058,0,'Temenos_Golem','Temenos Golem',17,150,150,-419.175,-160.742,109.328,143,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929059,0,'Temenos_Golem','Temenos Golem',17,150,150,-419.236,-160.500,109.409,145,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929060,0,'Temenos_Golem','Temenos Golem',17,150,150,-419.318,-160.500,109.339,155,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929061,0,'Temenos_Golem','Temenos Golem',17,150,150,-418.960,-160.766,109.483,113,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929062,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-576.563,0.975,139.214,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929063,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-578.981,1.565,139.659,158,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929064,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-576.057,0.708,139.223,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929065,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-585.151,3.075,140.450,7,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929066,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-577.189,0.998,137.661,146,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929067,0,'Temenos_Antica','Temenos Antica',13,150,150,-599.386,4.509,163.058,95,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929068,0,'Temenos_Antica','Temenos Antica',13,150,150,-597.985,4.500,165.599,28,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929069,0,'Temenos_Antica','Temenos Antica',13,150,150,-592.843,4.543,153.934,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929070,0,'Temenos_Antica','Temenos Antica',13,150,150,-595.243,4.505,163.804,156,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929071,0,'Temenos_Antica','Temenos Antica',13,150,150,-602.489,4.500,154.622,155,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929072,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-608.117,4.545,167.253,155,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929073,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-607.739,4.540,167.672,131,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929074,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-608.658,4.547,167.156,167,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929075,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-593.477,4.500,158.442,226,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929076,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-606.641,4.504,156.042,29,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929077,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-613.602,3.489,139.923,46,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929078,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-620.250,-0.526,116.983,136,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929079,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-621.346,-0.335,115.690,160,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929080,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-621.228,-0.335,115.677,159,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929081,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,-619.807,-0.500,118.380,118,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929082,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-613.207,3.324,138.707,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929083,0,'Temenos_Aern','Temenos Aern',19,150,150,376.741,73.500,-140.884,206,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929084,0,'Temenos_Aern','Temenos Aern',19,150,150,371.079,73.520,-145.294,91,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929085,0,'Temenos_Aern','Temenos Aern',19,150,150,375.646,73.500,-133.902,94,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929086,0,'Temenos_Aern','Temenos Aern',19,150,150,374.307,73.584,-128.628,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929087,0,'Temenos_Aern','Temenos Aern',19,150,150,374.584,73.559,-141.558,56,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929088,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,386.529,73.500,-99.650,32,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929089,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,381.264,73.500,-94.231,192,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929090,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,381.225,73.500,-106.475,115,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929091,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,381.321,73.500,-102.479,105,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929092,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,380.993,73.500,-99.108,192,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929093,0,'Temenos_Pixie','Temenos Pixie',20,150,150,327.290,69.499,-98.205,85,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929094,0,'Temenos_Pixie','Temenos Pixie',20,150,150,332.193,69.500,-98.830,37,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929095,0,'Temenos_Pixie','Temenos Pixie',20,150,150,338.919,69.499,-90.218,153,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929096,0,'Temenos_Pixie','Temenos Pixie',20,150,150,327.479,69.499,-90.090,100,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929097,0,'Temenos_Pixie','Temenos Pixie',20,150,150,333.500,69.499,-90.211,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929098,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,333.783,73.500,-139.455,131,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929099,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,335.915,73.500,-139.897,254,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929100,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,336.369,73.500,-139.790,42,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929101,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,345.495,73.500,-139.749,252,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929102,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,332.322,73.500,-139.725,49,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929103,0,'Temenos_Aern','Temenos Aern',19,150,150,216.996,-80.500,-140.321,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929104,0,'Temenos_Aern','Temenos Aern',19,150,150,213.141,-80.500,-140.677,149,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929105,0,'Temenos_Aern','Temenos Aern',19,150,150,216.762,-80.500,-141.211,162,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929106,0,'Temenos_Aern','Temenos Aern',19,150,150,216.806,-80.500,-141.354,162,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929107,0,'Temenos_Aern','Temenos Aern',19,150,150,219.741,-80.500,-144.643,81,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929108,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,219.231,-83.872,-101.571,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929109,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,221.484,-82.500,-95.494,250,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929110,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,226.638,-86.195,-102.138,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929111,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,223.511,-85.128,-102.003,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929112,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,213.655,-82.702,-101.031,133,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929113,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,201.130,-81.500,-73.906,163,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929114,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,207.418,-81.461,-87.955,119,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929115,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,201.843,-81.492,-89.040,120,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929116,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,193.385,-81.499,-79.974,100,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929117,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,194.968,-81.460,-73.542,34,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929118,0,'Temenos_Gigas','Temenos Gigas',7,150,150,199.660,-81.491,-88.561,5,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929119,0,'Temenos_Gigas','Temenos Gigas',7,150,150,208.344,-81.454,-73.118,218,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929120,0,'Temenos_Gigas','Temenos Gigas',7,150,150,208.391,-81.493,-77.901,156,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929121,0,'Temenos_Gigas','Temenos Gigas',7,150,150,201.226,-81.497,-77.643,54,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929122,0,'Temenos_Gigas','Temenos Gigas',7,150,150,208.012,-81.454,-86.885,26,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929123,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,173.809,-86.162,-100.703,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929124,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,173.831,-86.105,-100.585,127,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929125,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,173.672,-86.124,-100.451,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929126,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,180.224,-86.500,-121.896,127,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929127,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,180.107,-86.500,-120.940,118,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929128,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,180.021,-80.500,-144.283,101,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929129,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,177.789,-80.500,-139.764,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929130,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,182.171,-80.500,-139.783,1,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929131,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,182.967,-80.500,-139.772,117,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929132,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,172.317,-80.500,-138.832,50,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929133,0,'Temenos_Aern','Temenos Aern',19,150,150,45.051,79.500,-139.733,131,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929134,0,'Temenos_Aern','Temenos Aern',19,150,150,51.697,79.500,-139.475,253,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929135,0,'Temenos_Aern','Temenos Aern',19,150,150,57.872,79.500,-139.421,129,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929136,0,'Temenos_Aern','Temenos Aern',19,150,150,63.196,79.500,-139.794,140,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929137,0,'Temenos_Aern','Temenos Aern',19,150,150,51.268,79.500,-140.048,253,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929138,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,71.032,79.500,-140.557,252,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929139,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,67.062,79.500,-140.397,131,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929140,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,60.980,79.500,-140.017,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929141,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,57.460,79.500,-140.042,124,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929142,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,53.893,79.500,-140.503,122,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929143,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,34.386,79.500,-140.678,250,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929144,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,14.031,79.499,-140.238,107,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929145,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,20.848,79.500,-136.497,163,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929146,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,24.023,79.500,-140.445,141,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929147,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,21.137,79.499,-136.389,165,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929148,0,'Temenos_Goblin','Temenos Goblin',8,150,150,26.282,79.500,-140.365,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929149,0,'Temenos_Goblin','Temenos Goblin',8,150,150,28.583,79.500,-140.303,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929150,0,'Temenos_Goblin','Temenos Goblin',8,150,150,18.580,79.500,-139.781,127,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929151,0,'Temenos_Goblin','Temenos Goblin',8,150,150,35.424,79.500,-140.607,218,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929152,0,'Temenos_Moblin','Temenos Moblin',9,150,150,10.969,79.500,-144.139,45,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929153,0,'Temenos_Aern','Temenos Aern',19,150,150,-94.381,-80.680,-130.335,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929154,0,'Temenos_Aern','Temenos Aern',19,150,150,-93.581,-80.697,-148.955,122,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929155,0,'Temenos_Aern','Temenos Aern',19,150,150,-101.416,-80.586,-134.289,212,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929156,0,'Temenos_Aern','Temenos Aern',19,150,150,-98.785,-80.513,-147.792,81,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929157,0,'Temenos_Aern','Temenos Aern',19,150,150,-108.424,-80.531,-147.722,134,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929158,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-99.772,-80.465,-135.949,77,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929159,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-104.459,-80.681,-137.803,89,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929160,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-105.890,-80.656,-129.883,238,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929161,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-98.650,-80.244,-142.067,74,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929162,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-106.335,-80.656,-129.931,239,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929163,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-141.192,-80.519,-147.435,45,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929164,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-134.273,-80.631,-148.349,118,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929165,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-142.600,-80.535,-132.176,217,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929166,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-139.722,-80.531,-130.135,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929167,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-150.936,-80.559,-139.327,122,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929168,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-138.400,-80.596,-144.237,83,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929169,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-145.189,-80.668,-130.850,135,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929170,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-131.747,-80.523,-131.810,6,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929171,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-139.783,-80.545,-131.230,131,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929172,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-146.365,-80.669,-150.317,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929173,0,'Temenos_Aern','Temenos Aern',19,150,150,-251.655,79.500,-152.605,223,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929174,0,'Temenos_Aern','Temenos Aern',19,150,150,-251.648,79.500,-152.256,32,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929175,0,'Temenos_Aern','Temenos Aern',19,150,150,-248.612,79.500,-149.976,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929176,0,'Temenos_Aern','Temenos Aern',19,150,150,-244.759,79.500,-152.616,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929177,0,'Temenos_Aern','Temenos Aern',19,150,150,-265.013,79.500,-150.868,137,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929178,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-244.980,79.500,-128.897,228,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929179,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-263.249,79.500,-132.072,236,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929180,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-259.903,79.500,-133.359,19,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929181,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-256.789,79.500,-128.091,18,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929182,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-249.638,79.500,-127.974,2,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929183,0,'Temenos_Aern','Temenos Aern',19,150,150,-308.496,79.500,-128.109,1,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929184,0,'Temenos_Aern','Temenos Aern',19,150,150,-314.879,79.500,-128.275,224,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929185,0,'Temenos_Aern','Temenos Aern',19,150,150,-307.943,79.500,-128.149,159,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929186,0,'Temenos_Aern','Temenos Aern',19,150,150,-314.937,79.500,-128.061,224,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929187,0,'Temenos_Aern','Temenos Aern',19,150,150,-311.317,79.500,-131.107,165,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929188,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-314.325,79.500,-151.931,155,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929189,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-294.428,79.500,-147.610,4,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929190,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-302.015,79.500,-151.195,117,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929191,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-300.249,79.500,-154.992,32,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929192,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-303.399,79.500,-151.384,155,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929193,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-411.765,-78.500,-127.577,74,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929194,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-407.849,-78.505,-132.071,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929195,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-415.679,-78.749,-135.844,151,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929196,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-420.914,-78.500,-126.650,179,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929197,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-412.720,-78.500,-138.207,67,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929198,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-420.902,-80.500,-140.412,192,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929199,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-426.826,-80.500,-139.979,4,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929200,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-421.216,-80.500,-140.275,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929201,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-431.485,-80.500,-138.742,70,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929202,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-430.835,-80.500,-135.186,198,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929203,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-461.885,-78.000,-127.007,247,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929204,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-473.473,-78.000,-133.725,161,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929205,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-466.974,-78.000,-132.426,105,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929206,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-461.061,-78.000,-131.867,201,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929207,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-463.531,-78.000,-135.952,90,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929208,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-459.842,-80.500,-142.222,185,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929209,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-458.585,-80.500,-141.371,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929210,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-454.762,-80.500,-140.987,248,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929211,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-457.226,-80.500,-141.277,129,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929212,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-457.316,-80.500,-143.983,223,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929213,0,'Temenos_Aern','Temenos Aern',19,150,150,-572.231,79.826,-141.795,1,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929214,0,'Temenos_Aern','Temenos Aern',19,150,150,-571.258,79.500,-142.687,198,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929215,0,'Temenos_Aern','Temenos Aern',19,150,150,-571.632,79.500,-145.320,70,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929216,0,'Temenos_Aern','Temenos Aern',19,150,150,-580.364,82.410,-140.998,1,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929217,0,'Temenos_Aern','Temenos Aern',19,150,150,-585.827,83.376,-139.937,134,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929218,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-598.628,84.500,-117.294,59,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929219,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-596.399,84.501,-119.486,136,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929220,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-592.313,84.542,-112.029,230,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929221,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-606.385,84.502,-117.275,225,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929222,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-599.533,84.500,-116.337,60,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929223,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-608.083,84.509,-117.446,68,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929224,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-591.565,84.503,-118.304,59,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929225,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-597.676,84.516,-121.367,162,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929226,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-604.794,84.525,-126.834,125,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929227,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-600.054,84.510,-127.283,255,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929228,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-627.533,79.874,-140.551,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929229,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-614.490,83.293,-139.698,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929230,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-627.881,79.754,-142.427,67,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929231,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-614.409,83.333,-139.978,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929232,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-622.084,79.500,-147.263,7,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929233,0,'Temenos_Orc','Temenos Orc',1,150,150,588.831,-0.485,-496.034,208,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929234,0,'Temenos_Orc','Temenos Orc',1,150,150,584.727,-0.487,-505.706,72,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929235,0,'Temenos_Orc','Temenos Orc',1,150,150,585.002,-0.486,-505.830,77,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929236,0,'Temenos_Orc','Temenos Orc',1,150,150,585.379,-0.475,-493.054,84,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929237,0,'Temenos_Orc','Temenos Orc',1,150,150,587.612,-0.416,-511.531,73,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929238,0,'Temenos_Orc','Temenos Orc',1,150,150,619.256,-0.500,-496.541,208,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929239,0,'Temenos_Orc','Temenos Orc',1,150,150,612.682,-0.500,-501.662,205,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929240,0,'Temenos_Orc','Temenos Orc',1,150,150,614.203,-0.500,-500.455,118,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929241,0,'Temenos_Orc','Temenos Orc',1,150,150,627.331,-0.500,-501.792,179,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929242,0,'Temenos_Orc','Temenos Orc',1,150,150,619.636,-0.500,-496.237,227,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929243,0,'Temenos_Orc','Temenos Orc',1,150,150,614.479,-0.477,-468.699,211,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929244,0,'Temenos_Orc','Temenos Orc',1,150,150,613.239,-0.427,-471.305,70,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929245,0,'Temenos_Orc','Temenos Orc',1,150,150,611.010,-0.481,-453.929,82,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929246,0,'Temenos_Orc','Temenos Orc',1,150,150,612.839,-0.417,-450.207,201,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929247,0,'Temenos_Orc','Temenos Orc',1,150,150,615.070,-0.476,-452.601,45,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929248,0,'Temenos_Doll','Temenos Doll',6,150,150,634.525,1.499,-413.249,195,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929249,0,'Temenos_Doll','Temenos Doll',6,150,150,627.652,1.498,-410.498,18,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929250,0,'Temenos_Doll','Temenos Doll',6,150,150,632.341,1.499,-412.209,143,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929251,0,'Temenos_Doll','Temenos Doll',6,150,150,629.487,1.499,-418.626,91,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929252,0,'Temenos_Doll','Temenos Doll',6,150,150,625.197,1.242,-415.898,151,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929253,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,615.790,-0.499,-419.716,134,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929254,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,620.109,-0.484,-425.419,184,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929255,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,620.178,-0.497,-420.560,192,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929256,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,619.072,-0.498,-424.072,29,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929257,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,626.656,0.712,-425.822,201,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929258,0,'Temenos_Quadav','Temenos Quadav',2,150,150,595.733,-0.500,-419.575,8,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929259,0,'Temenos_Quadav','Temenos Quadav',2,150,150,588.052,-0.500,-420.267,254,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929260,0,'Temenos_Quadav','Temenos Quadav',2,150,150,596.160,-0.420,-419.630,9,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929261,0,'Temenos_Quadav','Temenos Quadav',2,150,150,596.036,-0.424,-419.703,7,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929262,0,'Temenos_Quadav','Temenos Quadav',2,150,150,595.952,-0.434,-419.858,5,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929263,0,'Temenos_Quadav','Temenos Quadav',2,150,150,556.939,4.500,-397.953,36,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929264,0,'Temenos_Quadav','Temenos Quadav',2,150,150,565.834,4.545,-392.698,233,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929265,0,'Temenos_Quadav','Temenos Quadav',2,150,150,567.131,4.506,-401.456,200,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929266,0,'Temenos_Quadav','Temenos Quadav',2,150,150,566.303,4.500,-399.551,26,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929267,0,'Temenos_Quadav','Temenos Quadav',2,150,150,559.953,4.509,-404.108,22,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929268,0,'Temenos_Quadav','Temenos Quadav',2,150,150,534.284,-0.500,-428.147,133,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929269,0,'Temenos_Quadav','Temenos Quadav',2,150,150,538.197,-0.500,-427.612,43,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929270,0,'Temenos_Quadav','Temenos Quadav',2,150,150,538.357,-0.187,-427.898,65,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929271,0,'Temenos_Quadav','Temenos Quadav',2,150,150,544.036,3.474,-415.409,9,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929272,0,'Temenos_Quadav','Temenos Quadav',2,150,150,538.972,1.552,-420.645,223,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929273,0,'Temenos_Doll','Temenos Doll',6,150,150,495.423,1.242,-417.325,228,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929274,0,'Temenos_Doll','Temenos Doll',6,150,150,495.489,1.252,-417.252,231,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929275,0,'Temenos_Doll','Temenos Doll',6,150,150,487.957,1.496,-420.421,100,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929276,0,'Temenos_Doll','Temenos Doll',6,150,150,494.851,1.347,-415.592,168,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929277,0,'Temenos_Doll','Temenos Doll',6,150,150,492.250,1.499,-415.278,215,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929278,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,505.417,-0.498,-421.213,221,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929279,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,504.516,-0.494,-422.225,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929280,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,501.564,-0.499,-424.802,91,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929281,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,505.488,-0.497,-420.788,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929282,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,500.425,-0.418,-429.190,70,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929283,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,507.031,-0.477,-466.920,171,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929284,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,507.435,-0.461,-466.488,50,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929285,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,508.228,-0.421,-469.286,51,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929286,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,507.254,-0.496,-464.808,109,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929287,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,507.912,-0.443,-449.247,88,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929288,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,508.315,-0.414,-448.237,184,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929289,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,499.112,-0.500,-494.783,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929290,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,497.275,-0.500,-496.147,215,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929291,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,493.628,-0.500,-499.017,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929292,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,492.185,-0.500,-500.052,208,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929293,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,506.313,-0.500,-500.173,180,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929294,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,500.069,-0.500,-495.228,156,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929295,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,533.055,-0.488,-505.080,52,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929296,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,531.618,-0.460,-502.392,47,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929297,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,531.520,-0.453,-491.309,37,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929298,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,530.370,-0.426,-498.786,58,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929299,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,532.228,-0.493,-507.201,253,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929300,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,531.451,-0.425,-490.485,181,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929301,0,'Temenos_Bomb','Temenos Bomb',11,150,150,548.106,-0.499,-469.542,253,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929302,0,'Temenos_Bomb','Temenos Bomb',11,150,150,539.055,-0.463,-464.109,196,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929303,0,'Temenos_Bomb','Temenos Bomb',11,150,150,531.217,-0.499,-470.571,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929304,0,'Temenos_Cluster','Temenos Cluster',23,150,150,537.842,-0.460,-462.286,246,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929305,0,'Temenos_Cluster','Temenos Cluster',23,150,150,550.009,-0.499,-468.449,56,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929306,0,'Temenos_Cluster','Temenos Cluster',23,150,150,540.760,-0.494,-469.250,74,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929307,0,'Temenos_Bomb','Temenos Bomb',11,150,150,571.844,-0.499,-469.519,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929308,0,'Temenos_Bomb','Temenos Bomb',11,150,150,579.576,-0.499,-451.437,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929309,0,'Temenos_Bomb','Temenos Bomb',11,150,150,589.779,-0.491,-461.529,247,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929310,0,'Temenos_Cluster','Temenos Cluster',23,150,150,591.206,-0.499,-465.467,65,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929311,0,'Temenos_Cluster','Temenos Cluster',23,150,150,591.966,-0.499,-462.626,198,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929312,0,'Temenos_Cluster','Temenos Cluster',23,150,150,571.311,-0.499,-461.678,193,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929313,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,309.823,-160.486,-464.862,111,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929314,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,310.255,-160.498,-453.719,10,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929315,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,307.264,-160.500,-465.931,130,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929316,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,308.483,-160.419,-469.943,47,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929317,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,308.890,-160.410,-447.568,183,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929318,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,339.781,-160.500,-463.174,166,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929319,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,339.355,-160.500,-463.702,26,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929320,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,346.444,-160.500,-459.341,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929321,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,336.041,-160.500,-461.087,28,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929322,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,340.709,-160.500,-462.976,215,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929323,0,'Temenos_Snoll','Temenos Snoll',18,150,150,348.812,-164.500,-410.487,131,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929324,0,'Temenos_Snoll','Temenos Snoll',18,150,150,347.388,-164.500,-418.891,72,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929325,0,'Temenos_Snoll','Temenos Snoll',18,150,150,340.682,-164.500,-407.267,23,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929326,0,'Temenos_Cluster','Temenos Cluster',23,150,150,352.389,-164.500,-418.351,60,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929327,0,'Temenos_Cluster','Temenos Cluster',23,150,150,347.669,-164.502,-419.699,120,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929328,0,'Temenos_Cluster','Temenos Cluster',23,150,150,345.455,-164.500,-406.551,254,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929329,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,340.620,-166.500,-430.753,122,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929330,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,339.044,-166.499,-426.184,188,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929331,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,339.174,-166.500,-421.458,192,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929332,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,334.550,-166.499,-420.820,134,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929333,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,328.923,-166.402,-420.447,134,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929334,0,'Temenos_Antica','Temenos Antica',13,150,150,300.157,-160.500,-427.984,144,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929335,0,'Temenos_Antica','Temenos Antica',13,150,150,299.362,-160.500,-424.117,190,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929336,0,'Temenos_Antica','Temenos Antica',13,150,150,299.649,-160.500,-426.908,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929337,0,'Temenos_Antica','Temenos Antica',13,150,150,299.686,-160.500,-424.682,190,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929338,0,'Temenos_Antica','Temenos Antica',13,150,150,299.813,-160.500,-414.261,217,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929339,0,'Temenos_Antica','Temenos Antica',13,150,150,258.693,-160.500,-428.443,111,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929340,0,'Temenos_Antica','Temenos Antica',13,150,150,256.193,-160.500,-429.313,109,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929341,0,'Temenos_Antica','Temenos Antica',13,150,150,261.126,-160.500,-423.524,189,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929342,0,'Temenos_Antica','Temenos Antica',13,150,150,261.247,-160.500,-414.559,191,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929343,0,'Temenos_Antica','Temenos Antica',13,150,150,261.267,-160.500,-426.828,62,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929344,0,'Temenos_Snoll','Temenos Snoll',18,150,150,217.468,-164.500,-409.722,104,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929345,0,'Temenos_Snoll','Temenos Snoll',18,150,150,215.316,-164.500,-407.105,28,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929346,0,'Temenos_Snoll','Temenos Snoll',18,150,150,212.599,-164.500,-419.562,7,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929347,0,'Temenos_Cluster','Temenos Cluster',23,150,150,212.584,-164.500,-419.127,37,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929348,0,'Temenos_Cluster','Temenos Cluster',23,150,150,216.384,-164.785,-415.132,47,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929349,0,'Temenos_Cluster','Temenos Cluster',23,150,150,213.675,-164.500,-406.286,152,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929350,0,'Temenos_Golem','Temenos Golem',17,150,150,229.996,-166.500,-418.767,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929351,0,'Temenos_Golem','Temenos Golem',17,150,150,221.364,-166.500,-419.591,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929352,0,'Temenos_Golem','Temenos Golem',17,150,150,220.646,-166.500,-424.348,97,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929353,0,'Temenos_Golem','Temenos Golem',17,150,150,229.301,-166.500,-418.730,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929354,0,'Temenos_Golem','Temenos Golem',17,150,150,220.421,-166.500,-424.268,93,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929355,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,226.310,-160.500,-459.412,73,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929356,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,213.418,-160.500,-459.652,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929357,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,222.521,-160.500,-460.083,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929358,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,219.651,-160.500,-464.455,99,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929359,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,220.751,-160.500,-462.764,89,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929360,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,225.071,-160.500,-460.255,253,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929361,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,252.822,-160.640,-467.735,212,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929362,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,251.018,-160.429,-471.833,78,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929363,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,251.016,-160.418,-459.921,75,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929364,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,249.677,-160.460,-453.460,204,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929365,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,249.847,-160.474,-456.699,165,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929366,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,251.236,-160.432,-471.843,56,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929367,0,'Temenos_Aern','Temenos Aern',19,150,150,11.331,-0.500,-496.266,177,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929368,0,'Temenos_Aern','Temenos Aern',19,150,150,17.331,-0.500,-501.890,172,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929369,0,'Temenos_Aern','Temenos Aern',19,150,150,26.158,-0.500,-501.557,234,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929370,0,'Temenos_Aern','Temenos Aern',19,150,150,21.243,-0.500,-505.271,99,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929371,0,'Temenos_Aern','Temenos Aern',19,150,150,26.125,-0.500,-501.153,249,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929372,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,72.747,1.500,-502.636,224,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929373,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,69.735,1.500,-511.709,191,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929374,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,70.788,1.500,-506.830,73,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929375,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,72.458,1.495,-502.852,222,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929376,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,62.269,1.000,-513.749,120,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929377,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,54.326,0.000,-499.744,250,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929378,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,61.066,-0.426,-490.462,71,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929379,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,56.053,-0.499,-499.385,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929380,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-603.673,80.000,-122.979,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929381,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,49.979,0.000,-500.681,185,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929382,0,'Temenos_Pixie','Temenos Pixie',20,150,150,71.538,-0.486,-463.991,218,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929383,0,'Temenos_Pixie','Temenos Pixie',20,150,150,67.665,-0.759,-450.900,164,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929384,0,'Temenos_Pixie','Temenos Pixie',20,150,150,66.824,-0.566,-446.743,182,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929385,0,'Temenos_Pixie','Temenos Pixie',20,150,150,71.718,-0.413,-460.165,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929386,0,'Temenos_Pixie','Temenos Pixie',20,150,150,67.339,-0.758,-450.641,148,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929387,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,60.184,1.000,-405.200,135,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929388,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,72.047,1.000,-412.392,211,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929389,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,66.017,1.000,-417.817,38,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929390,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,62.982,1.000,-414.836,220,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929391,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,63.422,1.000,-411.301,3,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929392,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,54.762,0.000,-420.425,137,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929393,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,59.032,0.000,-421.716,192,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929394,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,49.479,0.000,-420.108,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929395,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,58.072,0.000,-420.900,252,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929396,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,57.094,0.000,-420.877,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929397,0,'Temenos_Aern','Temenos Aern',19,150,150,20.300,-0.500,-416.227,156,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929398,0,'Temenos_Aern','Temenos Aern',19,150,150,13.984,-0.500,-420.491,122,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929399,0,'Temenos_Aern','Temenos Aern',19,150,150,11.251,-0.500,-426.422,83,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929400,0,'Temenos_Aern','Temenos Aern',19,150,150,25.569,-0.500,-419.985,21,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929401,0,'Temenos_Aern','Temenos Aern',19,150,150,23.854,-0.500,-420.473,141,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929402,0,'Temenos_Aern','Temenos Aern',19,150,150,-22.139,-0.500,-419.615,95,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929403,0,'Temenos_Aern','Temenos Aern',19,150,150,-13.816,-0.500,-420.244,10,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929404,0,'Temenos_Aern','Temenos Aern',19,150,150,-25.174,-0.500,-420.214,119,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929405,0,'Temenos_Aern','Temenos Aern',19,150,150,-15.647,-0.500,-419.865,125,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929406,0,'Temenos_Aern','Temenos Aern',19,150,150,-20.015,-0.500,-415.854,227,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929407,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-58.624,1.000,-407.563,204,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929408,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-59.979,1.000,-411.955,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929409,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-71.710,1.000,-413.063,172,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929410,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-67.630,1.000,-418.578,44,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929411,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-68.836,1.000,-411.615,243,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929412,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-53.150,0.000,-419.552,121,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929413,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-59.454,0.000,-420.836,192,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929414,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-49.115,0.000,-417.354,57,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929415,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-53.632,0.000,-419.328,119,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929416,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-50.052,0.000,-414.131,194,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929417,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-67.878,-0.526,-445.860,240,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929418,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-67.238,-0.575,-446.624,202,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929419,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-74.164,-0.655,-469.366,70,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929420,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-69.668,-0.582,-446.522,242,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929421,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-68.211,-0.759,-451.260,221,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929422,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-61.756,1.000,-508.281,229,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929423,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-68.218,1.000,-500.708,163,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929424,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-62.110,1.000,-513.672,9,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929425,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-73.674,1.000,-507.149,92,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929426,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-72.246,1.000,-509.109,250,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929427,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-60.430,0.000,-493.220,180,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929428,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-50.955,0.000,-500.868,9,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929429,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-51.067,0.000,-501.068,3,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929430,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-65.340,0.000,-490.804,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929431,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-53.893,0.000,-500.646,133,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929432,0,'Temenos_Aern','Temenos Aern',19,150,150,-20.248,-0.500,-505.130,234,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929433,0,'Temenos_Aern','Temenos Aern',19,150,150,-17.774,-0.500,-501.230,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929434,0,'Temenos_Aern','Temenos Aern',19,150,150,-17.582,-0.500,-501.287,251,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929435,0,'Temenos_Aern','Temenos Aern',19,150,150,-21.597,-0.500,-501.118,127,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929436,0,'Temenos_Aern','Temenos Aern',19,150,150,-17.386,-0.500,-501.023,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929437,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-49.906,-6.500,-460.265,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929438,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-57.911,-6.500,-460.203,126,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929439,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-47.720,-6.500,-450.608,47,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929440,0,'Temenos_Cluster','Temenos Cluster',23,150,150,-47.551,-6.500,-452.787,62,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929441,0,'Temenos_Cluster','Temenos Cluster',23,150,150,-46.896,-6.500,-462.681,101,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929442,0,'Temenos_Cluster','Temenos Cluster',23,150,150,-47.782,-6.500,-469.269,210,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929443,0,'Temenos_Djinn','Temenos Djinn',22,150,150,48.056,-6.500,-456.799,229,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929444,0,'Temenos_Djinn','Temenos Djinn',22,150,150,62.193,-6.500,-459.670,248,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929445,0,'Temenos_Djinn','Temenos Djinn',22,150,150,50.521,-6.500,-446.509,208,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929446,0,'Temenos_Cluster','Temenos Cluster',23,150,150,48.248,-6.500,-455.760,65,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929447,0,'Temenos_Cluster','Temenos Cluster',23,150,150,59.544,-6.500,-458.959,83,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929448,0,'Temenos_Cluster','Temenos Cluster',23,150,150,52.277,-6.500,-459.135,19,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929449,0,'Temenos_Aern','Temenos Aern',19,150,150,9.415,-6.498,-465.506,56,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929450,0,'Temenos_Aern','Temenos Aern',19,150,150,-0.184,-6.495,-467.293,72,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929451,0,'Temenos_Aern','Temenos Aern',19,150,150,-1.904,-6.499,-468.408,4,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929452,0,'Temenos_Aern','Temenos Aern',19,150,150,7.721,-6.499,-467.655,1,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929453,0,'Temenos_Aern','Temenos Aern',19,150,150,7.569,-6.499,-467.990,252,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929454,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-211.992,-158.500,-499.747,133,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929455,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-207.626,-158.501,-506.995,62,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929456,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-220.628,-158.519,-507.745,102,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929457,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-220.998,-158.500,-514.155,123,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929458,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-221.465,-158.507,-513.478,72,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929459,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-225.258,-160.500,-500.092,122,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929460,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-220.725,-160.500,-494.291,69,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929461,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-222.770,-160.500,-497.730,99,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929462,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-220.963,-160.500,-496.369,58,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929463,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-218.441,-160.500,-490.411,133,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929464,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-213.061,-160.736,-451.085,60,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929465,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-208.816,-160.493,-466.583,223,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929466,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-206.911,-160.678,-473.241,253,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929467,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-207.160,-160.406,-464.323,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929468,0,'Temenos_Moblin','Temenos Moblin',9,150,150,-209.258,-160.590,-473.470,250,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929469,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-220.933,-160.500,-428.131,240,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929470,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-213.513,-160.500,-420.526,236,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929471,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-213.508,-160.500,-419.976,19,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929472,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-224.359,-160.500,-411.193,143,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929473,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-224.178,-160.500,-428.328,109,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929474,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-258.169,-163.896,-419.885,70,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929475,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-257.944,-166.176,-412.484,194,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929476,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-254.183,-166.496,-412.718,13,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929477,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-258.547,-163.878,-419.568,65,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929478,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-258.681,-163.864,-419.541,65,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929479,0,'Temenos_Aern','Temenos Aern',19,150,150,-271.360,-161.496,-438.267,59,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929480,0,'Temenos_Aern','Temenos Aern',19,150,150,-272.887,-161.456,-431.964,221,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929481,0,'Temenos_Aern','Temenos Aern',19,150,150,-288.214,-161.451,-431.334,193,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929482,0,'Temenos_Aern','Temenos Aern',19,150,150,-279.585,-161.495,-430.745,132,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929483,0,'Temenos_Aern','Temenos Aern',19,150,150,-280.955,-161.499,-437.004,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929484,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-299.590,-162.430,-426.439,109,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929485,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-303.308,-166.479,-411.691,248,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929486,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-302.143,-166.172,-412.660,189,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929487,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-300.073,-162.424,-427.020,109,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929488,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-303.294,-166.497,-412.268,245,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929489,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-232.567,-166.498,-462.798,65,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929490,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-230.962,-166.499,-472.640,175,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929491,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-219.942,-166.500,-463.973,47,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929492,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-232.411,-166.499,-451.428,66,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929493,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-231.914,-166.501,-457.609,153,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929494,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-328.862,-166.500,-457.793,231,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929495,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-328.126,-166.499,-463.276,63,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929496,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-334.804,-166.507,-460.610,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929497,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-338.770,-166.500,-460.594,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929498,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-339.809,-166.500,-462.764,206,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929499,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-340.085,-160.500,-423.470,63,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929500,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-345.330,-160.500,-420.590,94,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929501,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-339.833,-160.500,-426.959,40,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929502,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-344.506,-160.500,-419.607,94,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929503,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-339.765,-160.500,-426.616,36,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929504,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-350.794,-160.469,-465.928,198,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929505,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-351.632,-160.676,-471.820,131,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929506,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-351.928,-160.704,-447.733,142,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929507,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-346.481,-160.791,-468.483,30,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929508,0,'Temenos_Moblin','Temenos Moblin',9,150,150,-349.472,-160.535,-454.511,218,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929509,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-346.511,-158.500,-512.566,128,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929510,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-352.646,-158.500,-506.376,89,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929511,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-353.167,-158.500,-499.069,163,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929512,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-346.041,-158.500,-507.769,158,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929513,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-353.723,-158.500,-506.635,64,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929514,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-340.750,-160.500,-489.436,186,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929515,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-330.472,-160.500,-504.687,60,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929516,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-339.485,-160.500,-499.308,127,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929517,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-299.531,-162.106,-449.809,147,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929518,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-339.701,-160.500,-499.470,122,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929519,0,'Agoge','Agoge',24,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929520,0,'Hesychasts','Hesychast\'s',25,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929521,0,'Piety','Piety',26,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929522,0,'Archmages','Archmage\'s',27,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929523,0,'Vitiation','Vitiation',28,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929524,0,'Plunderers','Plunderer\'s',29,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929525,0,'Caballarius','Caballarius',30,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929526,0,'Fallens','Fallen\'s',31,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929527,0,'Ankusa','Ankusa',32,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929528,0,'Bihu','Bihu',33,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929529,0,'Arcadian','Arcadian',34,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929530,0,'Sakonji','Sakonji',35,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929531,0,'Mochizuki','Mochizuki',36,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929532,0,'Pteroslaver','Pteroslaver',37,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929533,0,'Glyphic','Glyphic',38,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929534,0,'Glyphics_Avatar','Glyphic\'s Avatar',39,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929535,0,'Luhlaza','Luhlaza',40,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929536,0,'Lanun','Lanun',41,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929537,0,'Pitre','Pitre',42,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929538,0,'Horos','Horos',43,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929539,0,'Pedagogy','Pedagogy',44,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929540,0,'Bagua','Bagua',45,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929541,0,'Baguas_Luopan','Bagua\'s Luopan',46,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929542,0,'Baguas_Luopan','Bagua\'s Luopan',46,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929543,0,'Baguas_Luopan','Bagua\'s Luopan',46,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929544,0,'Baguas_Luopan','Bagua\'s Luopan',46,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929545,0,'Futhark','Futhark',47,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929546,0,'Agrios_Aern','Agrios Aern',48,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929547,0,'Agrios_Ixion','Agrios Ixion',49,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929548,0,'Agrios_Alicorn','Agrios Alicorn',50,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929549,0,'Pallikari_Mammet','Pallikari Mammet',51,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929550,0,'Pallikari_Khrysokhimaira','Pallikari Khrysokhimaira',52,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929551,0,'Pallikari_Ironclad','Pallikari Ironclad',53,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929552,0,'Ultima_Forerunner','Ultima Forerunner',54,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929553,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929554,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929555,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929556,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929557,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929558,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929559,0,'Temenos_Hume_Echo','Temenos Hume Echo',58,150,150,-540.167,-5.597,-432.945,67,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929560,0,'Temenos_Elvaan_Echo','Temenos Elvaan Echo',59,150,150,-540.956,-0.500,-416.986,214,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929561,0,'Temenos_Tarutaru_Echo','Temenos Tarutaru Echo',60,150,150,-542.641,-0.500,-418.074,149,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929562,0,'Temenos_Mithra_Echo','Temenos Mithra Echo',61,150,150,-539.557,-2.538,-428.947,180,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929563,0,'Mithras_Avatar','Mithra\'s Avatar',62,150,150,-539.719,-0.500,-421.903,219,NULL,NULL); -INSERT INTO `mob_spawn_points` VALUES (16929564,0,'Temenos_Galka_Echo','Temenos Galka Echo',63,150,150,-539.379,-4.891,-431.532,182,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928769,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-89.248,-80.698,429.697,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928770,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,-90.377,-80.689,429.832,253,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928771,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-94.844,-80.685,428.930,215,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928772,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-99.259,-80.497,419.672,204,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928773,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-97.550,-80.657,416.653,35,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928774,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-108.370,-80.693,429.732,121,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928775,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-97.978,-80.670,415.196,221,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928776,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-109.945,-80.694,426.978,66,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928777,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-102.550,-80.519,421.675,255,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928778,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-104.385,-80.698,429.614,164,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928779,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-97.557,-80.698,426.567,94,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928780,0,'Temenos_Orc','Temenos Orc',1,150,150,-145.123,-80.693,412.401,80,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928781,0,'Temenos_Orc','Temenos Orc',1,150,150,-150.858,-80.546,412.431,66,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928782,0,'Temenos_Orc','Temenos Orc',1,150,150,-139.636,-80.563,411.365,115,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928783,0,'Temenos_Orc','Temenos Orc',1,150,150,-151.977,-80.610,420.697,61,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928784,0,'Temenos_Orc','Temenos Orc',1,150,150,-147.528,-80.686,421.149,37,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928785,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-142.848,-80.653,415.447,94,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928786,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-139.803,-80.500,428.786,48,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928787,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-137.714,-80.697,423.557,167,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928788,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-147.518,-80.667,418.761,241,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928789,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-136.815,-80.689,426.291,214,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928790,0,'Temenos_Orc','Temenos Orc',1,150,150,-252.166,79.500,407.506,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928791,0,'Temenos_Orc','Temenos Orc',1,150,150,-250.527,79.500,407.389,131,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928792,0,'Temenos_Orc','Temenos Orc',1,150,150,-251.872,79.500,407.466,1,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928793,0,'Temenos_Orc','Temenos Orc',1,150,150,-257.189,79.500,407.468,4,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928794,0,'Temenos_Orc','Temenos Orc',1,150,150,-246.156,79.500,406.278,230,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928795,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-244.948,79.500,431.118,229,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928796,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-247.267,79.500,432.328,67,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928797,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-247.484,79.500,434.216,189,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928798,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-247.033,79.500,434.377,166,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928799,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-259.299,79.500,433.504,185,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928800,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-310.952,79.500,429.171,99,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928801,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-311.027,79.500,429.250,98,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928802,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-299.576,79.500,428.286,62,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928803,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-299.114,79.500,429.820,72,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928804,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-313.718,79.500,431.667,153,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928805,0,'Temenos_Doll','Temenos Doll',6,150,150,-299.576,79.500,405.112,67,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928806,0,'Temenos_Doll','Temenos Doll',6,150,150,-311.327,79.500,411.193,164,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928807,0,'Temenos_Doll','Temenos Doll',6,150,150,-303.806,79.500,408.584,255,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928808,0,'Temenos_Doll','Temenos Doll',6,150,150,-299.417,79.500,413.687,144,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928809,0,'Temenos_Doll','Temenos Doll',6,150,150,-311.696,79.500,411.207,166,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928810,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-419.538,-78.501,434.879,136,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928811,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-419.731,-78.542,428.028,159,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928812,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-412.944,-78.500,426.835,184,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928813,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-416.366,-78.771,425.106,78,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928814,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,-408.124,-78.500,427.376,212,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928815,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-430.902,-80.500,424.489,71,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928816,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,-430.774,-80.500,423.039,192,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928817,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-415.597,-80.500,409.933,3,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928818,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-425.039,-80.500,419.471,129,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928819,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-419.127,-80.500,408.975,120,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928820,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-420.414,-80.500,409.862,54,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928821,0,'Temenos_Doll','Temenos Doll',6,150,150,-468.647,-78.518,423.744,184,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928822,0,'Temenos_Doll','Temenos Doll',6,150,150,-473.926,-78.500,425.541,191,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928823,0,'Temenos_Doll','Temenos Doll',6,150,150,-467.772,-78.500,428.590,73,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928824,0,'Temenos_Doll','Temenos Doll',6,150,150,-466.267,-78.635,424.233,160,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928825,0,'Temenos_Doll','Temenos Doll',6,150,150,-463.418,-78.756,423.740,94,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928826,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-458.575,-80.500,418.644,129,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928827,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-449.773,-80.500,419.571,251,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928828,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-464.545,-80.500,409.494,126,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928829,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-458.878,-80.500,417.337,185,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928830,0,'Temenos_Moblin','Temenos Moblin',9,150,150,-459.078,-80.500,413.465,217,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928831,0,'Temenos_Orc','Temenos Orc',1,150,150,-585.470,83.293,419.678,133,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928832,0,'Temenos_Orc','Temenos Orc',1,150,150,-581.118,82.539,419.268,12,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928833,0,'Temenos_Orc','Temenos Orc',1,150,150,-585.446,83.309,420.034,133,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928834,0,'Temenos_Orc','Temenos Orc',1,150,150,-579.407,79.500,401.465,90,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928835,0,'Temenos_Orc','Temenos Orc',1,150,150,-585.646,83.321,420.349,134,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928836,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-607.153,84.543,433.941,67,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928837,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-598.717,84.502,443.623,69,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928838,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-591.925,84.500,440.070,221,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928839,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-598.390,84.500,446.715,27,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928840,0,'Temenos_Quadav','Temenos Quadav',2,150,150,-600.344,84.500,448.146,202,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928841,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-592.922,84.544,434.089,39,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928842,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-593.317,84.546,433.939,33,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928843,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-600.478,84.501,447.967,186,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928844,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-607.447,84.540,448.651,130,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928845,0,'Temenos_Bomb','Temenos Bomb',11,150,150,-602.132,84.507,432.471,5,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928846,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-622.014,79.500,413.090,6,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928847,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,-625.468,79.539,414.096,12,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928848,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-617.041,82.853,419.433,121,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928849,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-628.174,79.556,414.464,67,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928850,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-614.469,83.301,419.527,251,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928851,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,-615.255,83.465,423.679,183,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928852,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-90.090,-160.499,136.654,197,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928853,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-90.347,-160.499,143.010,189,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928854,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-99.072,-160.500,129.801,117,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928855,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-89.184,-160.499,139.844,56,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928856,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,-89.670,-160.498,141.017,53,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928857,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-108.595,-160.499,147.385,128,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928858,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-97.260,-160.459,137.932,137,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928859,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-107.901,-160.499,147.522,129,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928860,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-99.111,-160.459,140.679,56,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928861,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-99.159,-160.497,148.311,198,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928862,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-104.700,-160.498,148.124,127,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928863,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-138.105,-160.460,141.796,67,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928864,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-149.306,-160.499,140.232,62,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928865,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-129.105,-160.498,133.195,57,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928866,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-149.255,-160.499,144.583,69,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928867,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-138.364,-160.500,149.994,128,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928868,0,'Temenos_Antica','Temenos Antica',13,150,150,-138.539,-160.460,143.247,68,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928869,0,'Temenos_Antica','Temenos Antica',13,150,150,-132.485,-160.499,149.708,3,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928870,0,'Temenos_Antica','Temenos Antica',13,150,150,-150.480,-160.499,139.407,186,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928871,0,'Temenos_Antica','Temenos Antica',13,150,150,-141.081,-160.500,131.605,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928872,0,'Temenos_Antica','Temenos Antica',13,150,150,-140.229,-160.495,132.219,62,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928873,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-247.803,-0.500,125.813,91,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928874,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-250.939,-0.500,128.219,155,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928875,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-252.222,-0.500,128.600,3,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928876,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-245.664,-0.500,128.093,230,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928877,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-257.888,-0.500,128.580,16,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928878,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-245.803,-0.500,152.552,26,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928879,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-252.383,-0.500,152.098,254,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928880,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-257.668,-0.500,152.127,18,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928881,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-246.009,-0.500,152.304,25,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928882,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-257.716,-0.500,151.313,219,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928883,0,'Temenos_Golem','Temenos Golem',17,150,150,-312.538,-0.500,149.198,61,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928884,0,'Temenos_Golem','Temenos Golem',17,150,150,-308.535,-0.500,151.605,126,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928885,0,'Temenos_Golem','Temenos Golem',17,150,150,-304.122,-0.500,151.544,3,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928886,0,'Temenos_Golem','Temenos Golem',17,150,150,-312.607,-0.500,154.181,219,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928887,0,'Temenos_Golem','Temenos Golem',17,150,150,-312.519,-0.500,148.742,37,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928888,0,'Temenos_Antica','Temenos Antica',13,150,150,-294.970,-0.500,129.865,10,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928889,0,'Temenos_Antica','Temenos Antica',13,150,150,-303.810,-0.500,127.454,2,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928890,0,'Temenos_Antica','Temenos Antica',13,150,150,-294.181,-0.500,128.406,228,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928891,0,'Temenos_Antica','Temenos Antica',13,150,150,-299.929,-0.500,123.966,40,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928892,0,'Temenos_Antica','Temenos Antica',13,150,150,-314.351,-0.500,127.247,154,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928893,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-415.797,-158.765,144.151,38,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928894,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-418.233,-158.546,147.007,153,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928895,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-412.484,-158.500,147.911,4,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928896,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-405.252,-158.500,141.066,57,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928897,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-410.847,-158.503,152.259,190,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928898,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-419.241,-160.500,113.666,111,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928899,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-414.266,-160.500,130.510,4,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928900,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-428.762,-160.500,140.936,133,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928901,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-430.020,-160.500,142.205,69,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928902,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,-419.692,-162.875,98.908,45,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928903,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-419.854,-160.500,139.427,193,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928904,0,'Temenos_Golem','Temenos Golem',17,150,150,-468.954,-158.500,141.204,9,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928905,0,'Temenos_Golem','Temenos Golem',17,150,150,-473.557,-158.500,147.797,187,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928906,0,'Temenos_Golem','Temenos Golem',17,150,150,-469.094,-158.500,141.806,35,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928907,0,'Temenos_Golem','Temenos Golem',17,150,150,-465.116,-158.762,144.945,17,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928908,0,'Temenos_Golem','Temenos Golem',17,150,150,-467.843,-158.500,153.487,156,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928909,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-450.537,-160.500,145.636,187,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928910,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-455.979,-160.500,139.505,226,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928911,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-419.215,-160.500,114.672,96,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928912,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-460.626,-160.500,133.733,201,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928913,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-461.392,-160.500,130.271,71,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928914,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-613.222,-0.436,133.350,142,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928915,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-613.382,-0.492,133.046,151,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928916,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-613.300,-0.492,132.929,24,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928917,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-613.266,-0.500,132.832,25,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928918,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-613.375,-0.500,132.762,21,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928919,0,'Temenos_Antica','Temenos Antica',13,150,150,-592.729,4.500,158.106,228,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928920,0,'Temenos_Antica','Temenos Antica',13,150,150,-592.992,4.507,158.865,163,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928921,0,'Temenos_Antica','Temenos Antica',13,150,150,-607.722,4.544,165.861,189,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928922,0,'Temenos_Antica','Temenos Antica',13,150,150,-600.384,4.510,157.896,164,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928923,0,'Temenos_Antica','Temenos Antica',13,150,150,-599.725,4.503,156.684,166,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928924,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-591.864,4.501,160.142,27,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928925,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-591.553,4.500,160.149,27,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928926,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-600.346,4.508,151.521,7,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928927,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-596.247,4.500,159.976,121,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928928,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-598.594,4.501,152.916,73,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928929,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-620.120,-0.500,132.550,8,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928930,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-613.457,3.188,139.759,250,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928931,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-611.397,-0.323,133.941,58,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928932,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-612.144,-0.412,133.280,42,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928933,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,-610.623,-0.206,133.624,90,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928934,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-619.802,-0.500,119.137,23,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928935,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-105.957,-80.639,-129.702,247,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928936,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-97.827,-80.550,-139.009,141,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928937,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-99.213,-80.494,-140.098,169,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928938,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-101.576,-80.507,-135.926,49,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928939,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-110.664,-80.501,-137.157,66,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928940,0,'Temenos_Aern','Temenos Aern',19,150,150,-100.965,-80.473,-140.750,245,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928941,0,'Temenos_Aern','Temenos Aern',19,150,150,-109.593,-80.541,-147.777,125,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928942,0,'Temenos_Aern','Temenos Aern',19,150,150,-103.232,-80.559,-144.574,204,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928943,0,'Temenos_Aern','Temenos Aern',19,150,150,-101.680,-80.497,-135.550,196,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928944,0,'Temenos_Aern','Temenos Aern',19,150,150,-97.038,-80.676,-148.259,42,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928945,0,'Temenos_Aern','Temenos Aern',19,150,150,-140.645,-80.500,-165.532,85,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928946,0,'Temenos_Aern','Temenos Aern',19,150,150,-140.605,-80.500,-165.511,57,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928947,0,'Temenos_Aern','Temenos Aern',19,150,150,-137.345,-80.655,-131.424,246,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928948,0,'Temenos_Aern','Temenos Aern',19,150,150,-136.602,-80.661,-133.525,206,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928949,0,'Temenos_Aern','Temenos Aern',19,150,150,-135.869,-80.679,-139.863,38,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928950,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-140.239,-80.499,-164.916,68,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928951,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-140.122,-80.499,-164.952,71,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928952,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-146.219,-80.642,-150.557,3,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928953,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-144.834,-80.682,-140.047,91,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928954,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-139.760,-80.499,-164.979,79,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928955,0,'Temenos_Aern','Temenos Aern',19,150,150,-302.377,79.500,-172.013,91,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928956,0,'Temenos_Aern','Temenos Aern',19,150,150,-302.216,79.802,-171.732,92,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928957,0,'Temenos_Aern','Temenos Aern',19,150,150,-302.209,78.928,-171.954,94,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928958,0,'Temenos_Aern','Temenos Aern',19,150,150,-299.438,79.500,-162.280,78,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928959,0,'Temenos_Aern','Temenos Aern',19,150,150,-259.011,79.500,-155.729,95,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928960,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-258.313,79.500,-132.152,78,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928961,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-247.047,79.500,-130.599,91,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928962,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-258.842,79.500,-125.643,162,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928963,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-247.109,79.500,-130.363,91,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928964,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-250.289,79.500,-127.611,130,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928965,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-300.310,79.500,-131.525,46,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928966,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-314.580,79.500,-127.164,102,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928967,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-314.461,79.500,-127.859,153,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928968,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-314.592,79.500,-127.365,125,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928969,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-312.582,79.500,-124.771,220,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928970,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-309.572,79.500,-151.060,25,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928971,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-314.738,79.500,-151.446,125,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928972,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-315.154,79.500,-151.972,156,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928973,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-309.868,79.500,-151.208,27,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928974,0,'Temenos_Moblin','Temenos Moblin',9,150,150,-302.947,79.500,-171.440,78,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928975,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-412.956,-78.500,-127.628,187,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928976,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-416.193,-78.755,-136.426,154,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928977,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-414.207,-78.500,-130.005,60,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928978,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-421.316,-78.500,-128.106,182,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928979,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-419.726,-78.500,-132.237,116,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928980,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-420.530,-80.500,-146.716,177,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928981,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-420.230,-80.500,-149.310,59,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928982,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-424.863,-80.500,-141.119,139,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928983,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-420.633,-80.500,-143.330,200,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928984,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-424.673,-80.500,-141.000,130,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928985,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-466.507,-78.571,-139.528,93,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928986,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-468.111,-78.500,-139.854,45,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928987,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-466.597,-78.500,-131.185,68,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928988,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-465.119,-78.649,-135.433,166,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928989,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-462.757,-78.755,-135.649,91,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928990,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-458.994,-80.500,-144.944,62,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928991,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-449.360,-80.500,-139.919,246,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928992,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-459.479,-80.500,-149.447,70,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928993,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-454.602,-80.500,-141.414,98,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928994,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-454.448,-80.500,-140.522,220,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928995,0,'Temenos_Aern','Temenos Aern',19,150,150,-579.361,79.441,-168.378,190,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928996,0,'Temenos_Aern','Temenos Aern',19,150,150,-585.580,83.353,-138.597,200,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928997,0,'Temenos_Aern','Temenos Aern',19,150,150,-579.581,79.500,-168.920,195,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928998,0,'Temenos_Aern','Temenos Aern',19,150,150,-579.716,79.500,-171.064,194,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16928999,0,'Temenos_Aern','Temenos Aern',19,150,150,-579.859,79.500,-167.356,223,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929000,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-591.995,84.517,-116.123,56,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929001,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-616.928,83.500,-102.142,137,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929002,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-593.222,84.529,-113.275,54,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929003,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-604.448,84.500,-115.346,220,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929004,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-599.461,84.509,-117.454,101,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929005,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-617.690,83.500,-101.341,123,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929006,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-605.985,84.504,-116.927,221,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929007,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-617.585,83.500,-101.325,123,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929008,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-608.957,84.540,-126.654,66,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929009,0,'Temenos_Djinn','Temenos Djinn',22,150,150,-592.815,84.508,-118.901,57,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929010,0,'Temenos_Aern','Temenos Aern',19,150,150,-614.294,83.331,-140.477,249,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929011,0,'Temenos_Aern','Temenos Aern',19,150,150,-627.700,79.869,-141.798,126,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929012,0,'Temenos_Aern','Temenos Aern',19,150,150,-627.535,79.884,-141.934,126,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929013,0,'Temenos_Aern','Temenos Aern',19,150,150,-614.038,83.318,-140.884,250,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929014,0,'Temenos_Aern','Temenos Aern',19,150,150,-619.261,79.500,-148.160,119,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929015,0,'Temenos_Orc','Temenos Orc',1,150,150,309.347,-160.474,-465.523,34,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929016,0,'Temenos_Orc','Temenos Orc',1,150,150,307.750,-160.493,-466.579,110,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929017,0,'Temenos_Orc','Temenos Orc',1,150,150,310.331,-160.486,-457.043,202,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929018,0,'Temenos_Orc','Temenos Orc',1,150,150,308.458,-160.484,-467.865,235,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929019,0,'Temenos_Orc','Temenos Orc',1,150,150,310.459,-160.479,-456.454,215,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929020,0,'Temenos_Orc','Temenos Orc',1,150,150,346.337,-160.500,-460.881,254,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929021,0,'Temenos_Orc','Temenos Orc',1,150,150,344.482,-160.500,-461.018,132,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929022,0,'Temenos_Orc','Temenos Orc',1,150,150,338.613,-160.500,-460.779,127,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929023,0,'Temenos_Orc','Temenos Orc',1,150,150,333.235,-160.500,-456.752,54,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929024,0,'Temenos_Orc','Temenos Orc',1,150,150,341.794,-160.500,-464.415,98,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929025,0,'Temenos_Doll','Temenos Doll',6,150,150,349.317,-164.500,-418.751,77,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929026,0,'Temenos_Doll','Temenos Doll',6,150,150,353.223,-164.500,-411.292,8,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929027,0,'Temenos_Doll','Temenos Doll',6,150,150,347.982,-164.543,-418.663,31,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929028,0,'Temenos_Doll','Temenos Doll',6,150,150,354.134,-164.500,-412.379,197,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929029,0,'Temenos_Doll','Temenos Doll',6,150,150,341.604,-164.500,-410.854,115,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929030,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,330.657,-166.415,-418.835,133,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929031,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,332.429,-166.448,-419.127,134,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929032,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,339.516,-166.499,-423.738,56,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929033,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,330.218,-166.418,-418.896,136,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929034,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,339.455,-166.499,-420.459,198,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929035,0,'Temenos_Quadav','Temenos Quadav',2,150,150,298.310,-160.500,-421.777,17,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929036,0,'Temenos_Quadav','Temenos Quadav',2,150,150,298.989,-160.500,-424.992,212,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929037,0,'Temenos_Quadav','Temenos Quadav',2,150,150,298.507,-160.500,-424.743,207,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929038,0,'Temenos_Quadav','Temenos Quadav',2,150,150,297.461,-160.500,-421.731,13,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929039,0,'Temenos_Quadav','Temenos Quadav',2,150,150,298.952,-160.500,-416.007,68,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929040,0,'Temenos_Quadav','Temenos Quadav',2,150,150,264.086,-160.500,-419.600,16,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929041,0,'Temenos_Quadav','Temenos Quadav',2,150,150,259.778,-160.500,-422.299,198,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929042,0,'Temenos_Quadav','Temenos Quadav',2,150,150,262.748,-160.500,-417.762,33,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929043,0,'Temenos_Quadav','Temenos Quadav',2,150,150,253.764,-160.500,-429.149,109,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929044,0,'Temenos_Quadav','Temenos Quadav',2,150,150,264.550,-160.500,-419.802,33,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929045,0,'Temenos_Doll','Temenos Doll',6,150,150,334.724,-166.500,-421.417,163,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929046,0,'Temenos_Doll','Temenos Doll',6,150,150,334.879,-166.500,-421.521,163,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929047,0,'Temenos_Doll','Temenos Doll',6,150,150,335.039,-166.500,-421.583,163,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929048,0,'Temenos_Doll','Temenos Doll',6,150,150,335.221,-166.500,-421.617,162,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929049,0,'Temenos_Doll','Temenos Doll',6,150,150,324.820,-166.670,-420.614,129,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929050,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,226.417,-166.500,-420.645,114,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929051,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,226.573,-166.500,-420.589,115,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929052,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,226.691,-166.500,-420.477,114,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929053,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,220.380,-166.500,-430.178,72,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929054,0,'Temenos_Evil_Weapon','Temenos Evil Weapon',3,150,150,226.281,-166.500,-421.027,98,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929055,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,222.937,-160.500,-460.645,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929056,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,222.115,-160.500,-461.252,135,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929057,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,223.020,-160.500,-460.353,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929058,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,218.307,-160.500,-460.852,160,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929059,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,223.201,-160.500,-460.901,211,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929060,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,215.439,-160.500,-459.211,14,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929061,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,253.174,-160.445,-460.438,183,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929062,0,'Yagudos_Elemental','Yagudo\'s Elemental',5,150,150,253.342,-160.494,-462.261,183,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929063,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,253.414,-160.637,-465.439,254,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929064,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,252.434,-160.453,-460.319,182,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929065,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,253.577,-160.618,-466.701,212,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929066,0,'Temenos_Yagudo','Temenos Yagudo',4,150,150,250.276,-160.534,-465.074,147,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929067,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,69.860,-0.503,-453.487,31,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929068,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,29.196,-0.502,-493.275,160,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929069,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,28.975,-0.501,-493.438,160,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929070,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,16.097,-0.500,-500.212,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929071,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,16.819,-0.500,-500.353,128,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929072,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,64.750,1.496,-506.756,205,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929073,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,67.063,1.500,-507.124,92,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929074,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,63.858,1.499,-508.818,255,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929075,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,66.382,1.499,-514.139,255,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929076,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,63.622,1.210,-504.624,150,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929077,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,59.941,-0.459,-488.853,61,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929078,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,60.082,-0.408,-490.637,200,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929079,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,54.693,-0.499,-500.170,93,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929080,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,59.144,-0.499,-495.888,221,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929081,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,59.309,-0.500,-495.858,221,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929082,0,'Temenos_Snoll','Temenos Snoll',18,150,150,35.550,-0.499,-420.556,128,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929083,0,'Temenos_Snoll','Temenos Snoll',18,150,150,73.464,-0.676,-473.178,250,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929084,0,'Temenos_Snoll','Temenos Snoll',18,150,150,68.214,-0.786,-469.922,149,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929085,0,'Temenos_Cluster','Temenos Cluster',23,150,150,27.202,-0.509,-420.088,22,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929086,0,'Temenos_Cluster','Temenos Cluster',23,150,150,20.843,-0.629,-415.747,191,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929087,0,'Temenos_Cluster','Temenos Cluster',23,150,150,21.960,-0.592,-416.188,23,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929088,0,'Temenos_Golem','Temenos Golem',17,150,150,61.509,1.460,-412.576,160,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929089,0,'Temenos_Golem','Temenos Golem',17,150,150,69.461,1.499,-418.900,84,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929090,0,'Temenos_Golem','Temenos Golem',17,150,150,69.789,1.500,-413.230,193,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929091,0,'Temenos_Golem','Temenos Golem',17,150,150,64.937,1.227,-415.165,90,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929092,0,'Temenos_Golem','Temenos Golem',17,150,150,68.066,1.416,-411.906,224,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929093,0,'Temenos_Antica','Temenos Antica',13,150,150,60.516,-0.500,-419.610,197,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929094,0,'Temenos_Antica','Temenos Antica',13,150,150,48.858,-0.441,-418.813,250,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929095,0,'Temenos_Antica','Temenos Antica',13,150,150,20.108,-6.500,-438.221,192,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929096,0,'Temenos_Antica','Temenos Antica',13,150,150,59.130,-0.500,-424.040,33,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929097,0,'Temenos_Antica','Temenos Antica',13,150,150,48.539,-0.429,-418.731,250,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929098,0,'Temenos_Antica','Temenos Antica',13,150,150,12.590,-0.500,-419.589,208,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929099,0,'Temenos_Antica','Temenos Antica',13,150,150,27.340,-0.500,-422.244,179,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929100,0,'Temenos_Antica','Temenos Antica',13,150,150,13.215,-0.502,-418.695,102,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929101,0,'Temenos_Antica','Temenos Antica',13,150,150,25.254,-0.501,-419.265,1,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929102,0,'Temenos_Antica','Temenos Antica',13,150,150,10.008,-0.501,-424.700,83,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929103,0,'Temenos_Antica','Temenos Antica',13,150,150,-18.471,-0.500,-416.694,156,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929104,0,'Temenos_Antica','Temenos Antica',13,150,150,-18.140,-0.500,-418.805,43,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929105,0,'Temenos_Antica','Temenos Antica',13,150,150,-27.999,-0.499,-420.759,207,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929106,0,'Temenos_Antica','Temenos Antica',13,150,150,-13.910,-0.500,-420.600,181,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929107,0,'Temenos_Antica','Temenos Antica',13,150,150,-23.856,-0.500,-419.916,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929108,0,'Temenos_Golem','Temenos Golem',17,150,150,-73.915,1.499,-421.094,120,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929109,0,'Temenos_Golem','Temenos Golem',17,150,150,-68.337,1.486,-420.560,90,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929110,0,'Temenos_Golem','Temenos Golem',17,150,150,-74.335,1.499,-420.385,70,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929111,0,'Temenos_Golem','Temenos Golem',17,150,150,-60.689,1.499,-407.409,250,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929112,0,'Temenos_Golem','Temenos Golem',17,150,150,-60.598,1.457,-413.576,225,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929113,0,'Temenos_Antica','Temenos Antica',13,150,150,-51.128,-0.434,-420.636,252,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929114,0,'Temenos_Antica','Temenos Antica',13,150,150,-50.743,-0.432,-420.611,251,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929115,0,'Temenos_Antica','Temenos Antica',13,150,150,-59.297,-0.500,-426.312,197,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929116,0,'Temenos_Antica','Temenos Antica',13,150,150,-53.127,-0.482,-420.644,123,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929117,0,'Temenos_Antica','Temenos Antica',13,150,150,-53.480,-0.491,-420.469,116,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929118,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-70.530,-0.407,-463.257,66,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929119,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-71.269,-0.666,-448.013,120,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929120,0,'Temenos_Snoll','Temenos Snoll',18,150,150,-66.444,-0.782,-468.701,40,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929121,0,'Temenos_Cluster','Temenos Cluster',23,150,150,-65.581,-0.560,-447.226,199,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929122,0,'Temenos_Cluster','Temenos Cluster',23,150,150,-72.051,-0.706,-471.257,107,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929123,0,'Temenos_Cluster','Temenos Cluster',23,150,150,-66.375,-0.799,-450.579,70,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929124,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-60.380,1.499,-507.310,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929125,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-64.276,1.249,-502.688,31,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929126,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-66.763,1.498,-512.336,121,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929127,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-73.168,1.498,-506.123,69,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929128,0,'Temenos_Magic_Pot','Temenos Magic Pot',14,150,150,-70.398,1.499,-506.663,244,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929129,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-61.827,-0.420,-488.531,249,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929130,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-49.831,-0.422,-500.758,197,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929131,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-59.804,-0.500,-499.189,128,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929132,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-59.609,-0.499,-494.682,161,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929133,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-50.546,-0.408,-499.792,6,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929134,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-23.061,-0.500,-500.212,128,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929135,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-13.999,-0.500,-499.609,72,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929136,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-23.690,-0.500,-500.504,131,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929137,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-24.383,-0.500,-500.474,10,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929138,0,'Temenos_Sahagin','Temenos Sahagin',12,150,150,-17.964,-0.500,-500.782,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929139,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-61.428,-6.500,-456.675,201,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929140,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-50.971,-6.500,-446.976,170,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929141,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-47.878,-6.500,-457.648,154,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929142,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-59.297,-6.500,-460.898,177,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929143,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,-60.043,-6.500,-459.328,52,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929144,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-50.508,-6.500,-474.641,208,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929145,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,47.719,-6.500,-464.048,232,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929146,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,55.798,-6.500,-460.460,1,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929147,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,48.323,-6.500,-456.996,62,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929148,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,48.434,-6.500,-457.584,190,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929149,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,48.537,-6.500,-456.493,66,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929150,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,44.315,-6.500,-460.568,150,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929151,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,1.180,-6.495,-468.508,66,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929152,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-9.573,-6.495,-459.888,4,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929153,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,-7.981,-6.497,-459.867,135,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929154,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,11.039,-6.499,-452.052,192,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929155,0,'Cryptonberrys_Elemental','Cryptonberry\'s Elemental',16,150,150,10.990,-6.499,-453.104,191,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929156,0,'Temenos_Cryptonberry','Temenos Cryptonberry',15,150,150,0.674,-6.494,-467.539,59,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929157,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-205.845,-158.500,-499.928,207,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929158,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-214.891,-158.759,-503.439,134,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929159,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-212.186,-158.503,-500.156,205,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929160,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-220.137,-158.500,-511.210,73,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929161,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-219.251,-158.500,-506.186,97,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929162,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-221.375,-160.500,-499.132,254,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929163,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-230.134,-160.500,-499.481,123,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929164,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-220.389,-160.500,-489.716,201,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929165,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-220.439,-160.500,-490.121,68,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929166,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-226.679,-160.500,-499.753,255,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929167,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-213.290,-160.531,-472.671,110,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929168,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-212.939,-160.741,-468.434,103,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929169,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-213.231,-160.752,-468.326,86,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929170,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-214.233,-160.566,-472.630,73,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929171,0,'Temenos_Moblin','Temenos Moblin',9,150,150,-208.857,-160.655,-472.744,255,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929172,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-219.690,-160.500,-415.401,32,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929173,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-225.872,-160.500,-429.616,110,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929174,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-219.776,-160.500,-422.954,64,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929175,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-215.041,-160.500,-421.419,233,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929176,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-219.551,-160.500,-415.269,190,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929177,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-254.662,-166.499,-414.059,8,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929178,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-258.677,-163.900,-420.853,65,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929179,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-253.403,-166.486,-415.037,184,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929180,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-258.686,-163.467,-422.336,202,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929181,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-258.342,-163.838,-420.760,66,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929182,0,'Temenos_Aern','Temenos Aern',19,150,150,-272.104,-161.454,-433.205,229,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929183,0,'Temenos_Aern','Temenos Aern',19,150,150,-278.225,-161.499,-437.940,65,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929184,0,'Temenos_Aern','Temenos Aern',19,150,150,-271.994,-161.465,-433.389,54,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929185,0,'Temenos_Aern','Temenos Aern',19,150,150,-278.068,-161.499,-447.101,92,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929186,0,'Temenos_Aern','Temenos Aern',19,150,150,-279.913,-161.499,-432.418,219,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929187,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-306.212,-166.414,-418.366,74,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929188,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-300.503,-164.308,-418.293,63,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929189,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-304.730,-166.437,-411.962,132,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929190,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-300.733,-163.897,-419.435,63,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929191,0,'Temenos_Euvhi','Temenos Euvhi',56,150,150,-306.886,-166.418,-420.259,184,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929192,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-220.562,-166.500,-458.741,78,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929193,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-234.109,-166.500,-472.157,87,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929194,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-236.530,-166.783,-459.461,129,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929195,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-232.676,-166.500,-468.912,212,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929196,0,'Temenos_Pixie','Temenos Pixie',20,150,150,-221.697,-166.500,-459.599,254,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929197,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-330.647,-166.500,-446.577,168,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929198,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-324.246,-166.783,-459.742,2,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929199,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-330.820,-166.500,-472.931,88,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929200,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-340.085,-166.500,-459.282,48,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929201,0,'Temenos_Unseelie','Temenos Unseelie',21,150,150,-339.972,-166.500,-459.653,48,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929202,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-336.387,-160.500,-428.847,18,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929203,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-341.213,-160.500,-422.460,60,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929204,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-340.168,-160.500,-427.748,142,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929205,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-340.918,-160.500,-418.648,191,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929206,0,'Temenos_Meeble','Temenos Meeble',10,150,150,-335.713,-160.500,-429.702,16,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929207,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-352.303,-160.411,-459.231,192,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929208,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-347.676,-160.542,-448.084,240,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929209,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-347.553,-160.781,-470.228,231,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929210,0,'Temenos_Goblin','Temenos Goblin',8,150,150,-346.459,-160.562,-473.169,52,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929211,0,'Temenos_Moblin','Temenos Moblin',9,150,150,-347.020,-160.760,-469.008,38,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929212,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-341.138,-158.500,-512.076,33,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929213,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-346.999,-158.500,-512.628,65,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929214,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-343.729,-158.500,-508.359,121,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929215,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-346.600,-158.517,-512.485,73,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929216,0,'Temenos_Ghrah','Temenos Ghrah',57,150,150,-347.246,-158.500,-501.070,200,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929217,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-317.140,-160.500,-499.884,35,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929218,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-329.246,-160.500,-504.909,67,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929219,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-321.640,-160.500,-499.675,12,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929220,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-319.329,-160.500,-499.578,24,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929221,0,'Temenos_Gigas','Temenos Gigas',7,150,150,-319.726,-160.449,-499.501,230,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929222,0,'Agoge','Agoge',24,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929223,0,'Hesychasts','Hesychast\'s',25,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929224,0,'Piety','Piety',26,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929225,0,'Archmages','Archmage\'s',27,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929226,0,'Vitiation','Vitiation',28,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929227,0,'Plunderers','Plunderer\'s',29,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929228,0,'Caballarius','Caballarius',30,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929229,0,'Fallens','Fallen\'s',31,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929230,0,'Ankusa','Ankusa',32,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929231,0,'Bihu','Bihu',33,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929232,0,'Arcadian','Arcadian',34,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929233,0,'Sakonji','Sakonji',35,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929234,0,'Mochizuki','Mochizuki',36,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929235,0,'Pteroslaver','Pteroslaver',37,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929236,0,'Glyphic','Glyphic',38,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929237,0,'Glyphics_Avatar','Glyphic\'s Avatar',39,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929238,0,'Luhlaza','Luhlaza',40,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929239,0,'Lanun','Lanun',41,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929240,0,'Pitre','Pitre',42,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929241,0,'Horos','Horos',43,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929242,0,'Pedagogy','Pedagogy',44,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929243,0,'Bagua','Bagua',45,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929244,0,'Baguas_Luopan','Bagua\'s Luopan',46,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929245,0,'Baguas_Luopan','Bagua\'s Luopan',46,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929246,0,'Baguas_Luopan','Bagua\'s Luopan',46,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929247,0,'Baguas_Luopan','Bagua\'s Luopan',46,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929248,0,'Futhark','Futhark',47,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929249,0,'Agrios_Aern','Agrios Aern',48,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929250,0,'Agrios_Ixion','Agrios Ixion',49,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929251,0,'Agrios_Alicorn','Agrios Alicorn',50,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929252,0,'Pallikari_Mammet','Pallikari Mammet',51,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929253,0,'Pallikari_Khrysokhimaira','Pallikari Khrysokhimaira',52,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929254,0,'Pallikari_Ironclad','Pallikari Ironclad',53,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929255,0,'Ultima_Forerunner','Ultima Forerunner',54,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929256,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929257,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929258,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929259,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929260,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929261,0,'Ultimas_Zisurru','Ultima\'s Zisurru',55,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929262,0,'Temenos_Hume_Echo','Temenos Hume Echo',58,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929263,0,'Temenos_Elvaan_Echo','Temenos Elvaan Echo',59,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929264,0,'Temenos_Tarutaru_Echo','Temenos Tarutaru Echo',60,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929265,0,'Temenos_Mithra_Echo','Temenos Mithra Echo',61,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929266,0,'Mithras_Avatar','Mithra\'s Avatar',62,150,150,0.000,0.000,0.000,0,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (16929267,0,'Temenos_Galka_Echo','Temenos Galka Echo',63,150,150,0.000,0.000,0.000,0,NULL,NULL); -- ------------------------------------------------------------ -- Apollyon (Zone 38) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 77100aa1082..52bd51ae6a5 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -3219,114 +3219,114 @@ INSERT INTO `npc_list` VALUES (16924815,'Mystic_Retriever','Mystic Retriever',13 -- NOTE: As of Feburary 2025, commented NPCs are no longer present in the client. This will all need -- verification and most likely removal upon new implementations of Limbus -INSERT INTO `npc_list` VALUES (16929565,'NPC[31d]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929566,'qm1','???',0,0.000,0.000,0.000,0,50,50,0,0,112,2,3,0x0000770900000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (16929567,'NPC[31f]','',0,0.000,0.000,0.000,0,40,40,0,0,32,2,129,0x00002C0900000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929568,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (16929569,'NPC[321]','',0,580.000,-2.375,104.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929570,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (16929572,'NPC[324]','',0,340.000,72.000,400.000,1,50,50,8,0,0,2,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929573,'NPC[325]','',0,220.000,-82.000,400.000,0,40,40,0,0,32,2,129,0x00002C0900000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929574,'NPC[326]','',0,20.000,72.000,400.000,0,50,50,0,0,4,2,3,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929575,'Matter_Diffusion_Module','Matter Diffusion Module',0,580.000,-2.375,104.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929576,'Temenos_Operator','Temenos Operator',128,584.000,0.620,66.000,23,50,50,0,0,0,0,3,0x00003B0100000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929577,'Temenos_Furnace','Temenos Furnace',128,588.000,0.500,60.000,16,50,50,0,5,4,0,3,0x00002C0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929578,'_110','',0,340.000,72.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929579,'_111','',0,220.000,-82.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929580,'_112','',0,20.000,72.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929581,'_113','',0,-100.000,-82.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929582,'_114','',0,-300.000,78.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929583,'_115','',0,-420.000,-82.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929584,'_116','',0,-620.000,78.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929585,'_117','',0,340.000,-2.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929586,'_118','',0,220.000,-162.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929587,'_119','',0,20.000,-2.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929588,'_11a','',0,-100.000,-162.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929589,'_11b','',0,-300.000,-2.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929590,'_11c','',0,-420.000,-162.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929591,'_11d','',0,-620.000,-2.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929592,'_11e','',0,340.000,72.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929593,'_11f','',0,220.000,-82.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929594,'_11g','',0,20.000,72.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929595,'_11h','',0,-100.000,-82.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929596,'_11i','',0,-300.000,78.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929597,'_11j','',0,-420.000,-82.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929598,'_11k','',0,-620.000,78.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929599,'_11l','',0,540.000,-2.000,-520.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929600,'_11m','',0,300.000,-162.000,-480.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929601,'_11n','',0,-20.000,-2.000,-520.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929602,'_11o','',0,-240.000,-162.000,-500.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929603,'_11p','',0,-580.000,-2.000,-560.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929604,'_11q','',0,340.000,74.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929605,'_11r','',0,220.000,-80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929606,'_11s','',0,20.000,74.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929607,'_11t','',0,-100.000,-80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929608,'_11u','',0,-300.000,80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929609,'_11v','',0,-420.000,-80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929610,'_11w','',0,-620.000,80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929611,'_11x','',0,340.000,0.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929612,'_11y','',0,220.000,-160.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929613,'_11z','',0,20.000,0.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929614,'_j10','',0,-100.000,-160.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929615,'_j11','',0,-300.000,0.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929616,'_j12','',0,-420.000,-160.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929617,'_j13','',0,-620.000,0.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929618,'_j14','',0,340.000,74.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929619,'_j15','',0,220.000,-80.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929620,'_j16','',0,20.000,74.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929621,'_j17','',0,-100.000,-80.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929622,'_j18','',0,-300.000,80.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929623,'_j19','',0,-420.000,-80.000,-184.000,1,50,50,9,0,0,0,6147,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929624,'_j1a','',0,-620.000,80.000,-184.000,1,50,50,9,0,0,0,6147,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929625,'_j1b','',0,540.000,0.000,-544.000,1,50,50,9,0,0,0,6147,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929626,'_j1c','',0,300.000,-160.000,-504.000,1,50,50,9,0,0,0,6147,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929627,'_j1d','',0,-20.000,0.000,-544.000,1,50,50,9,0,0,0,6147,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929628,'_j1e','',0,-580.000,0.000,-584.000,1,50,50,9,0,0,0,6147,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929629,'Temenos_Operator','Temenos Operator',0,-600.000,84.000,456.000,1,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929630,'Temenos_Operator','Temenos Operator',0,-600.000,4.000,176.000,1,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929631,'Temenos_Operator','Temenos Operator',0,-600.000,84.000,-104.000,1,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929632,'Temenos_Operator','Temenos Operator',0,-280.000,-162.000,-424.000,1,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929633,'Matter_Diffusion_Module','Matter Diffusion Module',0,340.000,71.620,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929634,'Matter_Diffusion_Module','Matter Diffusion Module',0,220.000,-82.380,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929635,'Matter_Diffusion_Module','Matter Diffusion Module',0,20.000,71.620,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929636,'Matter_Diffusion_Module','Matter Diffusion Module',0,-100.000,-82.380,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929637,'Matter_Diffusion_Module','Matter Diffusion Module',0,-300.000,77.620,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929638,'Matter_Diffusion_Module','Matter Diffusion Module',0,-420.000,-82.380,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929639,'Matter_Diffusion_Module','Matter Diffusion Module',0,-620.000,77.620,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929640,'Matter_Diffusion_Module','Matter Diffusion Module',0,340.000,-2.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929641,'Matter_Diffusion_Module','Matter Diffusion Module',0,220.000,-162.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929642,'Matter_Diffusion_Module','Matter Diffusion Module',0,20.000,-2.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929643,'Matter_Diffusion_Module','Matter Diffusion Module',0,-100.000,-162.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929644,'Matter_Diffusion_Module','Matter Diffusion Module',0,-300.000,-2.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929645,'Matter_Diffusion_Module','Matter Diffusion Module',0,-420.000,-162.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929646,'Matter_Diffusion_Module','Matter Diffusion Module',0,-620.000,-2.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929647,'Matter_Diffusion_Module','Matter Diffusion Module',0,340.000,71.620,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929648,'Matter_Diffusion_Module','Matter Diffusion Module',0,220.000,-82.380,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929649,'Matter_Diffusion_Module','Matter Diffusion Module',0,20.000,71.620,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929650,'Matter_Diffusion_Module','Matter Diffusion Module',0,-100.000,-82.380,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929651,'Matter_Diffusion_Module','Matter Diffusion Module',0,-300.000,77.620,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929652,'Matter_Diffusion_Module','Matter Diffusion Module',0,-420.000,-82.380,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929653,'Matter_Diffusion_Module','Matter Diffusion Module',0,-620.000,77.620,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929654,'Matter_Diffusion_Module','Matter Diffusion Module',0,540.000,-2.380,-544.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929655,'Matter_Diffusion_Module','Matter Diffusion Module',0,300.000,-162.380,-504.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929656,'Matter_Diffusion_Module','Matter Diffusion Module',0,-20.000,-2.380,-544.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929657,'Matter_Diffusion_Module','Matter Diffusion Module',0,-264.000,-162.380,-500.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929658,'Matter_Diffusion_Module','Matter Diffusion Module',0,-580.000,-2.380,-584.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929659,'Temenos_Coffer_#1','Temenos Coffer #1',64,-600.000,84.000,456.000,1,50,50,0,0,0,0,3,0x0000C90300000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929660,'Temenos_Coffer_#2','Temenos Coffer #2',64,-600.000,4.000,176.000,1,50,50,0,0,0,0,3,0x0000C90300000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929661,'Temenos_Coffer_#3','Temenos Coffer #3',64,-600.000,84.000,-104.000,1,50,50,0,0,0,0,3,0x0000C90300000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929662,'Temenos_Coffer_#4','Temenos Coffer #4',64,-280.000,-162.000,-424.000,1,50,50,0,0,0,0,3,0x0000C90300000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929663,'NPC[37f]','',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16929664,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929665,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16929666,'Moogle','Moogle',0,588.000,0.000,20.000,1,50,50,0,0,0,2,3,0x0000520000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929667,'Moogle','Moogle',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000520000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929668,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929669,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929670,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929671,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929672,'ticket_w','ticket_w',0,588.000,0.000,20.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16929673,'ticket_r','ticket_r',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929268,'NPC[31d]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929269,'qm1','???',0,0.000,0.000,0.000,0,50,50,0,0,112,2,3,0x0000770900000000000000000000000000000000,2,NULL,0); +INSERT INTO `npc_list` VALUES (16929270,'NPC[31f]','',0,0.000,0.000,0.000,0,40,40,0,0,32,2,129,0x00002C0900000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929271,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16929272,'NPC[321]','',0,580.000,-2.375,104.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929273,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16929275,'NPC[324]','',0,340.000,72.000,400.000,1,50,50,8,0,0,2,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929276,'NPC[325]','',0,220.000,-82.000,400.000,0,40,40,0,0,32,2,129,0x00002C0900000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929277,'NPC[326]','',0,20.000,72.000,400.000,0,50,50,0,0,4,2,3,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929278,'Matter_Diffusion_Module','Matter Diffusion Module',0,580.000,-2.375,104.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929279,'Temenos_Operator','Temenos Operator',128,584.000,0.620,66.000,23,50,50,0,0,0,0,3,0x00003B0100000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929280,'Temenos_Furnace','Temenos Furnace',128,588.000,0.500,60.000,16,50,50,0,5,4,0,3,0x00002C0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929281,'_110','',0,340.000,72.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929282,'_111','',0,220.000,-82.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929283,'_112','',0,20.000,72.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929284,'_113','',0,-100.000,-82.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929285,'_114','',0,-300.000,78.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929286,'_115','',0,-420.000,-82.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929287,'_116','',0,-620.000,78.000,400.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929288,'_117','',0,340.000,-2.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929289,'_118','',0,220.000,-162.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929290,'_119','',0,20.000,-2.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929291,'_11a','',0,-100.000,-162.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929292,'_11b','',0,-300.000,-2.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929293,'_11c','',0,-420.000,-162.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929294,'_11d','',0,-620.000,-2.000,120.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929295,'_11e','',0,340.000,72.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929296,'_11f','',0,220.000,-82.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929297,'_11g','',0,20.000,72.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929298,'_11h','',0,-100.000,-82.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929299,'_11i','',0,-300.000,78.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929300,'_11j','',0,-420.000,-82.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929301,'_11k','',0,-620.000,78.000,-160.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929302,'_11l','',0,540.000,-2.000,-520.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929303,'_11m','',0,300.000,-162.000,-480.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929304,'_11n','',0,-20.000,-2.000,-520.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929305,'_11o','',0,-240.000,-162.000,-500.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929306,'_11p','',0,-580.000,-2.000,-560.000,1,50,50,8,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929307,'_11q','',0,340.000,74.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929308,'_11r','',0,220.000,-80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929309,'_11s','',0,20.000,74.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929310,'_11t','',0,-100.000,-80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929311,'_11u','',0,-300.000,80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929312,'_11v','',0,-420.000,-80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929313,'_11w','',0,-620.000,80.000,376.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929314,'_11x','',0,340.000,0.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929315,'_11y','',0,220.000,-160.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929316,'_11z','',0,20.000,0.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929317,'_j10','',0,-100.000,-160.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929318,'_j11','',0,-300.000,0.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929319,'_j12','',0,-420.000,-160.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929320,'_j13','',0,-620.000,0.000,96.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929321,'_j14','',0,340.000,74.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929322,'_j15','',0,220.000,-80.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929323,'_j16','',0,20.000,74.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929324,'_j17','',0,-100.000,-80.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929325,'_j18','',0,-300.000,80.000,-184.000,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929326,'_j19','',0,-420.000,-80.000,-184.000,1,50,50,9,0,0,0,6147,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929327,'_j1a','',0,-620.000,80.000,-184.000,1,50,50,9,0,0,0,6147,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929328,'_j1b','',0,540.000,0.000,-544.000,1,50,50,9,0,0,0,6147,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929329,'_j1c','',0,300.000,-160.000,-504.000,1,50,50,9,0,0,0,6147,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929330,'_j1d','',0,-20.000,0.000,-544.000,1,50,50,9,0,0,0,6147,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929331,'_j1e','',0,-580.000,0.000,-584.000,1,50,50,9,0,0,0,6147,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929332,'Temenos_Operator','Temenos Operator',0,-600.000,84.000,456.000,1,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929333,'Temenos_Operator','Temenos Operator',0,-600.000,4.000,176.000,1,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929334,'Temenos_Operator','Temenos Operator',0,-600.000,84.000,-104.000,1,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929335,'Temenos_Operator','Temenos Operator',0,-280.000,-162.000,-424.000,1,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929336,'Matter_Diffusion_Module','Matter Diffusion Module',0,340.000,71.620,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929337,'Matter_Diffusion_Module','Matter Diffusion Module',0,220.000,-82.380,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929338,'Matter_Diffusion_Module','Matter Diffusion Module',0,20.000,71.620,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929339,'Matter_Diffusion_Module','Matter Diffusion Module',0,-100.000,-82.380,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929340,'Matter_Diffusion_Module','Matter Diffusion Module',0,-300.000,77.620,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929341,'Matter_Diffusion_Module','Matter Diffusion Module',0,-420.000,-82.380,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929342,'Matter_Diffusion_Module','Matter Diffusion Module',0,-620.000,77.620,376.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929343,'Matter_Diffusion_Module','Matter Diffusion Module',0,340.000,-2.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929344,'Matter_Diffusion_Module','Matter Diffusion Module',0,220.000,-162.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929345,'Matter_Diffusion_Module','Matter Diffusion Module',0,20.000,-2.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929346,'Matter_Diffusion_Module','Matter Diffusion Module',0,-100.000,-162.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929347,'Matter_Diffusion_Module','Matter Diffusion Module',0,-300.000,-2.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929348,'Matter_Diffusion_Module','Matter Diffusion Module',0,-420.000,-162.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929349,'Matter_Diffusion_Module','Matter Diffusion Module',0,-620.000,-2.380,96.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929350,'Matter_Diffusion_Module','Matter Diffusion Module',0,340.000,71.620,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929351,'Matter_Diffusion_Module','Matter Diffusion Module',0,220.000,-82.380,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929352,'Matter_Diffusion_Module','Matter Diffusion Module',0,20.000,71.620,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929353,'Matter_Diffusion_Module','Matter Diffusion Module',0,-100.000,-82.380,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929354,'Matter_Diffusion_Module','Matter Diffusion Module',0,-300.000,77.620,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929355,'Matter_Diffusion_Module','Matter Diffusion Module',0,-420.000,-82.380,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929356,'Matter_Diffusion_Module','Matter Diffusion Module',0,-620.000,77.620,-184.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929357,'Matter_Diffusion_Module','Matter Diffusion Module',0,540.000,-2.380,-544.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929358,'Matter_Diffusion_Module','Matter Diffusion Module',0,300.000,-162.380,-504.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929359,'Matter_Diffusion_Module','Matter Diffusion Module',0,-20.000,-2.380,-544.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929360,'Matter_Diffusion_Module','Matter Diffusion Module',0,-264.000,-162.380,-500.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929361,'Matter_Diffusion_Module','Matter Diffusion Module',0,-580.000,-2.380,-584.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929362,'Temenos_Coffer_#1','Temenos Coffer #1',64,-600.000,84.000,456.000,1,50,50,0,0,0,0,3,0x0000C90300000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929363,'Temenos_Coffer_#2','Temenos Coffer #2',64,-600.000,4.000,176.000,1,50,50,0,0,0,0,3,0x0000C90300000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929364,'Temenos_Coffer_#3','Temenos Coffer #3',64,-600.000,84.000,-104.000,1,50,50,0,0,0,0,3,0x0000C90300000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929365,'Temenos_Coffer_#4','Temenos Coffer #4',64,-280.000,-162.000,-424.000,1,50,50,0,0,0,0,3,0x0000C90300000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929366,'NPC[37f]','',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16929367,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929368,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16929369,'Moogle','Moogle',0,588.000,0.000,20.000,1,50,50,0,0,0,2,3,0x0000520000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929370,'Moogle','Moogle',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000520000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929371,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929372,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929373,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929374,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929375,'ticket_w','ticket_w',0,588.000,0.000,20.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16929376,'ticket_r','ticket_r',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,1); -- ------------------------------------------------------------ -- Apollyon (Zone 38) From 15a2b093c15c262d7631deb3acbd83414880eddb Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 11:41:17 -0600 Subject: [PATCH 26/59] Shift NPCs up in Stellar Fulcrum --- sql/npc_list.sql | 190 +++++++++++++++++++++++------------------------ 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 52bd51ae6a5..552c7c9d6fc 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -25190,101 +25190,101 @@ INSERT INTO `npc_list` VALUES (17510433,'NPC[21]','',0,0.000,0.000,0.000,0,50,50 INSERT INTO `npc_list` VALUES (17510434,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,7,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17510440,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,7,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17510446,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,7,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510680,'NPC[118]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510681,'blank','',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510682,'Seed_Fragment','Seed Fragment',63,-528.941,0.254,0.889,32769,50,50,0,0,112,0,3,0x0000350900000000000000000000000000000000,2,'ACP',1); -INSERT INTO `npc_list` VALUES (17510683,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17510684,'NPC[11c]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510685,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (17510687,'NPC[11f]','',0,0.000,-0.500,0.000,0,50,50,0,0,0,2,1,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510688,'NPC[120]','',0,0.000,-0.500,0.000,0,40,40,0,0,32,2,129,0x00002C0900000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510689,'NPC[121]','',0,0.000,0.000,0.000,0,50,50,0,0,4,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510690,'Kamlanaut','Kam\'lanaut',65,-0.023,-5.003,58.917,0,50,50,0,0,0,6,27,0x00008C0500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510691,'Kamlanaut','Kam\'lanaut',66,-0.030,6.289,58.791,0,50,50,0,0,0,6,27,0x00001F0300000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510692,'Lion','Lion',255,-19.884,-1.500,49.058,0,50,50,0,0,0,6,27,0x00003C0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510693,'Zeid','Zeid',142,12.929,-2.153,51.492,0,50,50,0,0,0,6,27,0x00003E0300000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510694,'Aldo','Aldo',66,-0.010,-4.500,66.281,0,50,50,0,0,0,6,27,0x00004E0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510695,'Ealdnarche','Eald\'narche',70,0.111,-8.500,75.943,0,50,30,0,0,0,6,27,0x00003D0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510696,'Verena','Verena',62,0.090,-8.499,79.287,0,50,24,0,0,0,6,27,0x00004F0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510697,'ShadowLord','ShadowLord',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000930500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510698,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000980500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510699,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000970500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510700,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000990500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510701,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00009A0500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510702,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000960500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510703,'_4z0','Qe\'Iov Gate',0,-519.994,-6.300,22.350,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510704,'_4z1','Qo\'Tav Gate',0,0.000,198.213,-388.500,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510705,'_4z2','Qo\'Tav Gate',0,0.000,-1.786,11.500,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510706,'_4z3','Qo\'Tav Gate',0,0.000,-201.786,411.500,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510707,'NPC[133]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510708,'NPC[134]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510709,'NPC[135]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510710,'NPC[136]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510711,'NPC[137]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510712,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510713,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510714,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510715,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510716,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510717,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510718,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510719,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510720,'Ramblix','Ramblix',218,-515.921,1.059,-40.858,0,50,50,0,0,0,6,27,0x0000550000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510721,'Goblin_Footprint','Goblin Footprint',218,-515.921,1.059,-40.858,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510722,'qm1','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510723,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510724,'Serpent_Generals','Serpent Generals',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510725,'Rughadjeen','Rughadjeen',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2077,0x01000703B210B220B230B240B250796100700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510726,'Gadalar','Gadalar',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x01000101A010AE20AE30AE40AE506E6100700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510727,'Mihli_Aliapoh','Mihli Aliapoh',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2077,0x01000D07AE10AE20AE30AE40AE506F6020700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510728,'Zazarg','Zazarg',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2077,0x01000F089F10AE20AE30AE40AE50FE61FE710000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510729,'Najelith','Najelith',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2073,0x010006029510AE20A030AE40AE507B6100700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510730,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510731,'Mathilde','Mathilde',0,0.000,0.000,0.000,0,50,50,0,1,0,6,27,0x0100020200101520003003400850006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510732,'Aldo','Aldo',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510733,'Young_Aldo','Young Aldo',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510734,'Seed_Crystal','Seed Crystal',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510735,'qm2','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510736,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510737,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x0100000100100020003000400050006000700000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17510738,'NPC01','NPC01',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510739,'NPC02','NPC02',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510740,'NPC03','NPC03',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510741,'NPC04','NPC04',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100000000100020003000400050006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510742,'NPC05','NPC05',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100000000100020003000400050006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510743,'Jyujin01','Jyujin01',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510744,'Jyujin02','Jyujin02',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510745,'Jyujin03','Jyujin03',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510746,'Jyujin04','Jyujin04',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510747,'Jyujin05','Jyujin05',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17510748,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510749,'Verena','Verena',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00004F0000000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510750,'mob01','mob01',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100000158105820583058405850006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510751,'mob02','mob02',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100020100101920193019401950006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510752,'mob03','mob03',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x010006013C103C203C303C403C50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510753,'mob04','mob04',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100000239103920393039403950006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510754,'mob05','mob05',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000C0244104420443044404450006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510755,'mob06','mob06',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x01000402A210A220A230A240A250006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510756,'mob07','mob07',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x01000A0356105620563056405650006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510757,'mob08','mob08',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010000034E104E204E304E404E50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510758,'mob09','mob09',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x010002034C104C204C304C404C50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510759,'mob10','mob10',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100000400108720873087408750006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510760,'mob11','mob11',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100040400100320033003400350006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510761,'mob12','mob12',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x0100090418101820183018401850006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510762,'mob13','mob13',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100050542104220423042404250006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510763,'mob14','mob14',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100080550105020503050405050006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510764,'mob15','mob15',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x0100030588108820883088408850006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510765,'mob16','mob16',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100000600108E208E308E408E50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510766,'mob17','mob17',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100070689108920893089408950006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510767,'mob18','mob18',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x0100090660106020603060406050006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510768,'mob19','mob19',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x01000007A110A120A130A140A150006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510769,'mob20','mob20',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000B0700100920093009400950006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510770,'mob21','mob21',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x0100050700101F201F301F401F50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510771,'mob22','mob22',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100020865106520653065406550006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510772,'mob23','mob23',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000C086A106A206A306A406A50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510773,'mob24','mob24',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x010006081D101D201D301D401D50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17510774,'qm3','???',0,-515.423,-5.053,17.241,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17510775,'Moogle','Moogle',0,-515.423,-5.053,17.241,0,50,50,0,0,0,6,27,0x0000520000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510695,'NPC[118]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510696,'blank','',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510697,'Seed_Fragment','Seed Fragment',63,-528.941,0.254,0.889,32769,50,50,0,0,112,0,3,0x0000350900000000000000000000000000000000,2,'ACP',1); +INSERT INTO `npc_list` VALUES (17510698,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17510699,'NPC[11c]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510700,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (17510702,'NPC[11f]','',0,0.000,-0.500,0.000,0,50,50,0,0,0,2,1,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510703,'NPC[120]','',0,0.000,-0.500,0.000,0,40,40,0,0,32,2,129,0x00002C0900000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510704,'NPC[121]','',0,0.000,0.000,0.000,0,50,50,0,0,4,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510705,'Kamlanaut','Kam\'lanaut',65,-0.023,-5.003,58.917,0,50,50,0,0,0,6,27,0x00008C0500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510706,'Kamlanaut','Kam\'lanaut',66,-0.030,6.289,58.791,0,50,50,0,0,0,6,27,0x00001F0300000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510707,'Lion','Lion',255,-19.884,-1.500,49.058,0,50,50,0,0,0,6,27,0x00003C0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510708,'Zeid','Zeid',142,12.929,-2.153,51.492,0,50,50,0,0,0,6,27,0x00003E0300000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510709,'Aldo','Aldo',66,-0.010,-4.500,66.281,0,50,50,0,0,0,6,27,0x00004E0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510710,'Ealdnarche','Eald\'narche',70,0.111,-8.500,75.943,0,50,30,0,0,0,6,27,0x00003D0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510711,'Verena','Verena',62,0.090,-8.499,79.287,0,50,24,0,0,0,6,27,0x00004F0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510712,'ShadowLord','ShadowLord',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000930500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510713,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000980500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510714,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000970500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510715,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000990500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510716,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00009A0500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510717,'CrystalKnight','CrystalKnight',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000960500000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510718,'_4z0','Qe\'Iov Gate',0,-519.994,-6.300,22.350,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510719,'_4z1','Qo\'Tav Gate',0,0.000,198.213,-388.500,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510720,'_4z2','Qo\'Tav Gate',0,0.000,-1.786,11.500,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510721,'_4z3','Qo\'Tav Gate',0,0.000,-201.786,411.500,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510722,'NPC[133]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510723,'NPC[134]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510724,'NPC[135]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510725,'NPC[136]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510726,'NPC[137]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510727,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510728,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510729,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510730,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510731,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510732,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510733,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510734,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510735,'Ramblix','Ramblix',218,-515.921,1.059,-40.858,0,50,50,0,0,0,6,27,0x0000550000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510736,'Goblin_Footprint','Goblin Footprint',218,-515.921,1.059,-40.858,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510737,'qm1','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510738,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510739,'Serpent_Generals','Serpent Generals',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510740,'Rughadjeen','Rughadjeen',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2077,0x01000703B210B220B230B240B250796100700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510741,'Gadalar','Gadalar',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x01000101A010AE20AE30AE40AE506E6100700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510742,'Mihli_Aliapoh','Mihli Aliapoh',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2077,0x01000D07AE10AE20AE30AE40AE506F6020700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510743,'Zazarg','Zazarg',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2077,0x01000F089F10AE20AE30AE40AE50FE61FE710000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510744,'Najelith','Najelith',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2073,0x010006029510AE20A030AE40AE507B6100700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510745,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510746,'Mathilde','Mathilde',0,0.000,0.000,0.000,0,50,50,0,1,0,6,27,0x0100020200101520003003400850006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510747,'Aldo','Aldo',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510748,'Young_Aldo','Young Aldo',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510749,'Seed_Crystal','Seed Crystal',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510750,'qm2','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510751,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510752,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x0100000100100020003000400050006000700000,32,NULL,0); +INSERT INTO `npc_list` VALUES (17510753,'NPC01','NPC01',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510754,'NPC02','NPC02',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510755,'NPC03','NPC03',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510756,'NPC04','NPC04',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100000000100020003000400050006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510757,'NPC05','NPC05',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100000000100020003000400050006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510758,'Jyujin01','Jyujin01',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510759,'Jyujin02','Jyujin02',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510760,'Jyujin03','Jyujin03',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510761,'Jyujin04','Jyujin04',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510762,'Jyujin05','Jyujin05',0,0.000,0.000,0.000,0,40,40,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17510763,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510764,'Verena','Verena',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00004F0000000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510765,'mob01','mob01',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100000158105820583058405850006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510766,'mob02','mob02',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100020100101920193019401950006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510767,'mob03','mob03',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x010006013C103C203C303C403C50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510768,'mob04','mob04',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100000239103920393039403950006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510769,'mob05','mob05',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000C0244104420443044404450006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510770,'mob06','mob06',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x01000402A210A220A230A240A250006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510771,'mob07','mob07',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x01000A0356105620563056405650006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510772,'mob08','mob08',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010000034E104E204E304E404E50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510773,'mob09','mob09',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x010002034C104C204C304C404C50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510774,'mob10','mob10',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100000400108720873087408750006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510775,'mob11','mob11',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100040400100320033003400350006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510776,'mob12','mob12',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x0100090418101820183018401850006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510777,'mob13','mob13',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100050542104220423042404250006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510778,'mob14','mob14',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100080550105020503050405050006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510779,'mob15','mob15',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x0100030588108820883088408850006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510780,'mob16','mob16',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100000600108E208E308E408E50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510781,'mob17','mob17',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100070689108920893089408950006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510782,'mob18','mob18',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x0100090660106020603060406050006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510783,'mob19','mob19',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x01000007A110A120A130A140A150006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510784,'mob20','mob20',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000B0700100920093009400950006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510785,'mob21','mob21',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x0100050700101F201F301F401F50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510786,'mob22','mob22',0,0.000,0.000,0.000,0,50,50,0,0,0,6,25,0x0100020865106520653065406550006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510787,'mob23','mob23',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000C086A106A206A306A406A50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510788,'mob24','mob24',0,0.000,0.000,0.000,0,50,50,0,0,0,6,29,0x010006081D101D201D301D401D50006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17510789,'qm3','???',0,-515.423,-5.053,17.241,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17510790,'Moogle','Moogle',0,-515.423,-5.053,17.241,0,50,50,0,0,0,6,27,0x0000520000000000000000000000000000000000,32,NULL,1); -- ------------------------------------------------------------ -- La'Loff Amphitheater (Zone 180) From bc0a41c69a14e417eb37bb1fe8a4b0aa50d26927 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 11:52:57 -0600 Subject: [PATCH 27/59] New mobs in Stellar Fulcrum Stellar Fulcrum new BCNM --- sql/mob_groups.sql | 4 ++++ sql/mob_pools.sql | 8 ++++---- sql/mob_spawn_points.sql | 15 +++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/sql/mob_groups.sql b/sql/mob_groups.sql index 643ce8154a4..ae043774008 100644 --- a/sql/mob_groups.sql +++ b/sql/mob_groups.sql @@ -12845,6 +12845,10 @@ INSERT INTO `mob_groups` VALUES (18,6946,179,'Lion_TL',0,128,0,0,0,0,NULL); INSERT INTO `mob_groups` VALUES (19,6946,179,'Lion_AFF',0,128,0,0,0,0,NULL); INSERT INTO `mob_groups` VALUES (20,6947,179,'Zeid',0,128,0,0,0,0,NULL); INSERT INTO `mob_groups` VALUES (21,6948,179,'Aldo',0,128,0,0,0,0,NULL); +INSERT INTO `mob_groups` VALUES (22,200,179,'Seed_Goblin',0,128,0,0,0,0,NULL); +INSERT INTO `mob_groups` VALUES (23,201,179,'Seed_Orc',0,128,0,0,0,0,NULL); +INSERT INTO `mob_groups` VALUES (24,202,179,'Seed_Quadav',0,128,0,0,0,0,NULL); +INSERT INTO `mob_groups` VALUES (25,203,179,'Seed_Yagudo',0,128,0,0,0,0,NULL); -- ------------------------------------------------------------ -- LaLoff_Amphitheater (Zone 180) diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index 5bf15c46921..0a74f5dd863 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -255,10 +255,10 @@ INSERT INTO `mob_pools` VALUES (196,'Apis','Apis',88,0x00004D0500000000000000000 INSERT INTO `mob_pools` VALUES (197,'Apkallu','Apkallu',171,0x0000BB0600000000000000000000000000000000,2,2,1,480,100,0,0,0,1,0,0,0,184,1153,5,0,0,0,0,27,27,0,6); INSERT INTO `mob_pools` VALUES (198,'Apocalyptic_Beast','Apocalyptic_Beast',219,0x0000A40100000000000000000000000000000000,1,1,6,240,100,0,1,1,1,2,0,0,5567,1671,16,0,0,0,0,87,87,3,47); INSERT INTO `mob_pools` VALUES (199,'Apocalyptic_Weapon','Apocalyptic_Weapon',62,0x0000C30100000000000000000000000000000000,1,1,3,240,100,0,1,0,0,0,0,0,375,1669,8,0,0,0,0,110,110,2,22); --- 200 free --- 201 free --- 202 free --- 203 free +INSERT INTO `mob_pools` VALUES (200,'Seed_Goblin','Seed_Goblin',126,0x0000310900000000000000000000000000000000,1,1,0,240,100,0,1,1,0,16,0,0,0,133,0,0,0,0,0,0,0,1,12); +INSERT INTO `mob_pools` VALUES (201,'Seed_Orc','Seed_Orc',139,0x0000320900000000000000000000000000000000,1,1,0,240,100,0,1,1,0,16,0,0,0,133,0,0,0,0,0,0,0,1,15); +INSERT INTO `mob_pools` VALUES (202,'Seed_Quadav','Seed_Quadav',150,0x0000330900000000000000000000000000000000,1,1,0,240,100,0,1,1,0,16,0,0,0,133,0,0,0,0,0,0,0,1,15); +INSERT INTO `mob_pools` VALUES (203,'Seed_Yagudo','Seed_Yagudo',168,0x0000340900000000000000000000000000000000,1,1,0,240,100,0,1,1,0,16,0,0,0,133,0,0,0,0,0,0,0,1,15); INSERT INTO `mob_pools` VALUES (204,'Apsaras','Apsaras',38,0x00005C0100000000000000000000000000000000,1,1,7,240,100,0,1,0,0,4,0,0,0,3,0,0,0,0,0,197,197,1,27); INSERT INTO `mob_pools` VALUES (205,'Aquarian_Caster','Aquarian_Caster',297,0x01000D0512101420143014401450E36027701B80,1,1,0,0,100,0,0,0,0,0,0,0,0,1155,0,0,0,0,0,153,153,1,12); INSERT INTO `mob_pools` VALUES (206,'Aquarius','Aquarius',25,0x0000640100000000000000000000000000000000,7,7,4,125,100,0,1,0,0,2,0,0,0,1165,0,0,0,0,0,77,77,2,16); diff --git a/sql/mob_spawn_points.sql b/sql/mob_spawn_points.sql index f7e95bd44cd..ba21511536d 100644 --- a/sql/mob_spawn_points.sql +++ b/sql/mob_spawn_points.sql @@ -67521,6 +67521,21 @@ INSERT INTO `mob_spawn_points` VALUES (17510676,0,'Aldo','Aldo',21,0,0,-0.021,2. INSERT INTO `mob_spawn_points` VALUES (17510677,0,'Lion','Lion',19,0,0,-0.795,-197.505,430.090,60,NULL,NULL); INSERT INTO `mob_spawn_points` VALUES (17510678,0,'Zeid','Zeid',20,0,0,-1.054,-197.570,434.288,61,NULL,NULL); INSERT INTO `mob_spawn_points` VALUES (17510679,0,'Aldo','Aldo',21,0,0,-0.021,-197.555,432.557,72,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510680,0,'Seed_Crystal','Seed Crystal',14,77,80,0.000,202.000,-367.000,64,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510681,0,'Seed_Orc','Seed Orc',23,150,150,1.511,202.449,-375.416,142,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510682,0,'Seed_Quadav','Seed Quadav',24,150,150,-1.857,202.100,-368.345,11,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510683,0,'Seed_Yagudo','Seed Yagudo',25,150,150,2.055,202.479,-374.182,124,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510684,0,'Seed_Goblin','Seed Goblin',22,150,150,1.741,202.488,-372.882,107,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510685,0,'Seed_Crystal','Seed Crystal',14,77,80,0.000,2.000,33.000,64,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510686,0,'Seed_Orc','Seed Orc',23,150,150,2.833,2.000,32.442,96,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510687,0,'Seed_Quadav','Seed Quadav',24,150,150,3.455,2.000,32.941,77,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510688,0,'Seed_Yagudo','Seed Yagudo',25,150,150,1.122,2.000,32.219,64,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510689,0,'Seed_Goblin','Seed Goblin',22,150,150,4.548,2.000,32.924,93,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510690,0,'Seed_Crystal','Seed Crystal',14,77,80,0.000,-198.000,433.000,64,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510691,0,'Seed_Orc','Seed Orc',23,150,150,2.759,-197.872,432.633,99,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510692,0,'Seed_Quadav','Seed Quadav',24,150,150,-1.483,-198.000,432.768,41,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510693,0,'Seed_Yagudo','Seed Yagudo',25,150,150,1.383,-198.000,435.642,75,NULL,NULL); +INSERT INTO `mob_spawn_points` VALUES (17510694,0,'Seed_Goblin','Seed Goblin',22,150,150,1.327,-197.549,432.847,83,NULL,NULL); -- ------------------------------------------------------------ -- La'Loff Amphitheater (Zone 180) From 1075ee0e03f06fa5e41d96a266a702cbb473f92f Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 12:53:57 -0600 Subject: [PATCH 28/59] Fix Bhaflau mismatched QMs --- sql/npc_list.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 552c7c9d6fc..910bfba10d6 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -4979,8 +4979,8 @@ INSERT INTO `npc_list` VALUES (16990600,'NPC[188]','',104,331.456,-10.000,182.84 INSERT INTO `npc_list` VALUES (16990601,'Warhorse_Hoofprint','Warhorse Hoofprint',0,460.166,-14.926,256.214,0,50,50,0,0,32,2,27,0x0000F50500000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (16990602,'Warhorse_Hoofprint','Warhorse Hoofprint',0,0.000,0.000,0.000,0,50,50,0,0,32,2,27,0x0000F50500000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (16990603,'Warhorse_Hoofprint','Warhorse Hoofprint',0,0.000,0.000,0.000,0,50,50,0,0,32,2,27,0x0000F50500000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (16990604,'Unity_Master','???',104,331.456,-10.000,182.845,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',0); -INSERT INTO `npc_list` VALUES (16990605,'qm7','???',208,-32.405,-32.529,484.546,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16990604,'qm1','???',104,331.456,-10.000,182.845,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',0); +INSERT INTO `npc_list` VALUES (16990605,'qm2','???',208,-32.405,-32.529,484.546,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (16990606,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16990607,'NPC[18f]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (16990608,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); From 296ec74650f0d91a29b19444d12ebc607f01489e Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 12:54:06 -0600 Subject: [PATCH 29/59] Fix Wajaom mismatched QMs --- sql/npc_list.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 910bfba10d6..b2816e58f5e 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -4736,10 +4736,10 @@ INSERT INTO `npc_list` VALUES (16986617,'Warhorse_Hoofprint','Warhorse Hoofprint INSERT INTO `npc_list` VALUES (16986618,'Warhorse_Hoofprint','Warhorse Hoofprint',0,-469.010,-18.414,177.658,6,50,50,0,0,32,2,27,0x0000F50500000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (16986619,'Warhorse_Hoofprint','Warhorse Hoofprint',0,-526.004,-8.678,42.840,7,50,50,0,0,32,2,27,0x0000F50500000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (16986620,'NPC[1fc]','',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16986621,'NPC[1f4]','???',252,-695.558,-7.500,-126.721,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16986622,'qm5','???',187,257.462,-23.433,120.741,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',0); -INSERT INTO `npc_list` VALUES (16986623,'qm6','???',186,-339.551,-31.525,675.203,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',0); -INSERT INTO `npc_list` VALUES (16986624,'qm11','???',162,276.116,-0.085,-694.632,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16986621,'qm1','???',252,-695.558,-7.500,-126.721,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',0); +INSERT INTO `npc_list` VALUES (16986622,'qm2','???',187,257.462,-23.433,120.741,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',0); +INSERT INTO `npc_list` VALUES (16986623,'qm3','???',186,-339.551,-31.525,675.203,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',0); +INSERT INTO `npc_list` VALUES (16986624,'qm4','???',162,276.116,-0.085,-694.632,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (16986625,'Peculiar_Footprints','Peculiar Footprints',0,-80.690,-8.000,-638.190,32769,50,50,0,0,96,0,27,0x0000F50500000000000000000000000000000000,34,NULL,1); INSERT INTO `npc_list` VALUES (16986626,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16986627,'NPC[203]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); From b0efbca15b869fff9532f1deb1134acde92559f8 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 12:59:36 -0600 Subject: [PATCH 30/59] Fix SGusta mismatched QMs --- sql/npc_list.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index b2816e58f5e..df3d93f4535 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -15459,7 +15459,7 @@ INSERT INTO `npc_list` VALUES (17216169,'Moogle','Moogle',0,0.000,0.000,0.000,0, INSERT INTO `npc_list` VALUES (17216170,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17216171,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17216172,'qm1','???',233,744.483,0.041,-671.286,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17216173,'qm3','???',25,461.841,-21.515,-580.105,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17216173,'qm2','???',25,461.841,-21.515,-580.105,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17216174,'Stone_Monument','Stone Monument',80,520.064,-5.881,-738.356,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17216175,0x08,'',0,0.000,200.000,0.000,65537,50,50,18,0,0,2,3,0x0400000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17216176,0x08,'',0,0.000,200.000,0.000,1,50,50,0,0,0,2,3,0x0400000000000000000000000000000000000000,0,NULL,0); From bfe844b36938bec1817dba4e3a564687a307242e Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 13:03:35 -0600 Subject: [PATCH 31/59] Fix Jugner mismatched QMs --- sql/npc_list.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index df3d93f4535..288731f1a46 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -14902,7 +14902,7 @@ INSERT INTO `npc_list` VALUES (17203868,'Logging_Point','Logging Point',0,-282.5 INSERT INTO `npc_list` VALUES (17203869,'Logging_Point','Logging Point',0,183.938,0.121,305.008,32775,50,50,0,0,0,0,3,0x0000770900000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17203870,'Semih_Lafihna','Semih Lafihna',232,-18.620,0.930,318.100,0,50,50,0,2,0,6,29,0x0000F90000000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17203871,'Shikaree_M','Shikaree M',220,-8.460,0.070,314.743,0,50,50,0,1,0,6,29,0x01000F070F100E200E300E400E50006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17203872,'qm5','???',154,-10.946,-1.000,313.810,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17203872,'qm2','???',154,-10.946,-1.000,313.810,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17203873,'Beastmens_Banner','Beastmen\'s Banner',130,600.809,0.872,217.453,1,50,50,0,0,0,0,3,0x0000310300000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17203874,'EFFECTER','EFFECTER',197,-30.873,-57.000,285.545,32769,50,50,0,0,0,0,2051,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17203875,'Carbuncle','Carbuncle',197,-30.873,-57.000,285.545,32768,50,50,0,0,0,6,27,0x0000170300000000000000000000000000000000,32,NULL,1); @@ -14910,7 +14910,7 @@ INSERT INTO `npc_list` VALUES (17203876,'Talking_Doll','Talking Doll',113,-252.1 INSERT INTO `npc_list` VALUES (17203877,'Ramblix','Ramblix',242,-573.817,-2.745,-438.139,0,50,50,0,0,0,6,27,0x0000550000000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17203878,'Goblin_Footprint','Goblin Footprint',242,-573.817,-2.745,-438.139,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17203879,'NPC[2a7]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17203880,'qm2','???',187,-155.925,0.474,492.796,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17203880,'qm3','???',187,-155.925,0.474,492.796,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17203881,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100000005100520053005400050006000700000,32,NULL,0); INSERT INTO `npc_list` VALUES (17203882,'Palometa','Palometa',128,-16.590,0.000,8.819,0,50,50,0,0,0,6,27,0x0100011E04100720003000400150006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17203883,'Luto_Mewrilah','Luto Mewrilah',0,0.000,0.000,0.000,0,50,50,0,1,0,6,27,0x0100020700108220133015408250006000700000,32,NULL,1); From 4366bb16a64aa783d1d1c63e4488569aeeb28689 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 13:09:25 -0600 Subject: [PATCH 32/59] Fix Yhoator mismatched QMs --- scripts/zones/Yhoator_Jungle/IDs.lua | 2 +- sql/npc_list.sql | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/zones/Yhoator_Jungle/IDs.lua b/scripts/zones/Yhoator_Jungle/IDs.lua index 07ff280f9eb..6014b4f15d0 100644 --- a/scripts/zones/Yhoator_Jungle/IDs.lua +++ b/scripts/zones/Yhoator_Jungle/IDs.lua @@ -63,7 +63,7 @@ zones[xi.zone.YHOATOR_JUNGLE] = { OVERSEER_BASE = GetFirstID('Ilieumort_RK'), PEDDLESTOX = 17285687, - BEASTMEN_TREASURE_OFFSET = GetFirstID('qm5'), -- qm4 has an ID after qm11 so start the offset at qm5 + BEASTMEN_TREASURE_OFFSET = GetFirstID('qm4'), HARVESTING = GetTableOfIDs('Harvesting_Point'), LOGGING = GetTableOfIDs('Logging_Point'), diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 288731f1a46..2cfce3d0939 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -18224,14 +18224,14 @@ INSERT INTO `npc_list` VALUES (17285685,'Beastmens_Banner','Beastmen\'s Banner', INSERT INTO `npc_list` VALUES (17285686,'Peddlestox','Peddlestox',39,-499.914,1.465,-109.039,7,50,50,0,0,0,2,2075,0x0000F70100000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17285687,'Casket','Casket',0,0.000,0.000,0.000,0,40,40,0,0,0,6,1,0x0000C00300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17285688,'Casket','Casket',0,0.000,0.000,0.000,0,40,40,0,0,0,6,131,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17285689,'qm5','???',0,-149.929,-1.148,56.761,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17285690,'qm6','???',0,80.520,-1.312,200.147,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17285691,'qm7','???',0,198.650,-0.783,58.046,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17285692,'qm8','???',0,205.932,-1.097,-174.886,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17285693,'qm9','???',0,525.239,-1.224,-394.046,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17285694,'qm10','???',0,240.341,-0.826,-402.532,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17285695,'qm11','???',0,16.069,-0.860,-393.843,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17285696,'qm4','???',0,-255.358,-0.558,-405.178,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17285689,'qm4','???',0,-149.929,-1.148,56.761,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17285690,'qm5','???',0,80.520,-1.312,200.147,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17285691,'qm6','???',0,198.650,-0.783,58.046,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17285692,'qm7','???',0,205.932,-1.097,-174.886,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17285693,'qm8','???',0,525.239,-1.224,-394.046,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17285694,'qm9','???',0,240.341,-0.826,-402.532,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17285695,'qm10','???',0,16.069,-0.860,-393.843,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17285696,'qm11','???',0,-255.358,-0.558,-405.178,1,40,40,0,0,0,2,131,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17285697,'NPC[241]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17285698,'Kiteh_Nanjyea','Kiteh Nanjyea',192,300.042,-3.999,-516.958,1,50,50,0,1,0,2,27,0x0100060700108720873087408750006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17285699,'blank','',197,298.678,-3.999,-518.056,1,50,50,0,0,0,2,27,0x0000560000000000000000000000000000000000,32,NULL,0); From 2b14759cf47fc4fa1d5391ebbddf7dd1cf2f0ce9 Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 14:46:56 -0600 Subject: [PATCH 33/59] Fix Uggalepih mismatched QMs --- sql/npc_list.sql | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 2cfce3d0939..b4a1106a188 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -22760,22 +22760,22 @@ INSERT INTO `npc_list` VALUES (17424576,'HomePoint#5','Home Point #5',0,0.000,0. INSERT INTO `npc_list` VALUES (17428857,'NPC[179]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428858,'NPC[17a]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428859,'qm12','???',0,270.582,-0.601,109.922,7,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428860,'qm13','???',0,374.148,-0.300,272.672,7,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428861,'qm14','???',0,-146.326,-0.300,7.767,7,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428862,'qm15','???',0,-60.173,-0.937,5.107,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428859,'qm1','???',0,127.339,-0.601,-107.979,7,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428860,'qm2','???',0,374.148,-0.300,272.672,7,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428861,'qm3','???',0,-132.366,-1.076,9.150,7,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428862,'qm4','???',0,-60.173,-0.937,5.107,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428863,'qm_crimson_pawberry','???',0,-39.975,-24.499,29.037,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428864,'qm1','???',0,300.188,1.495,258.202,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428865,'qm2','???',0,50.273,-1.176,-71.042,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428866,'qm3','???',0,-57.434,-8.484,55.317,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428867,'qm4','???',0,218.242,-8.107,205.827,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428864,'qm6','???',0,300.188,1.495,258.202,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428865,'qm7','???',0,50.273,-1.176,-71.042,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428866,'qm8','???',0,-57.434,-8.484,55.317,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428867,'qm9','???',0,218.242,-8.107,205.827,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428868,'qm_sozu_rogberry','???',0,220.570,-8.691,259.923,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428869,'qm6','???',249,-143.485,-0.750,-103.572,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); -INSERT INTO `npc_list` VALUES (17428870,'qm7','???',180,-180.135,-0.107,-34.973,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); -INSERT INTO `npc_list` VALUES (17428871,'qm8','???',31,54.415,1.482,-82.916,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); -INSERT INTO `npc_list` VALUES (17428872,'qm9','???',247,64.920,-0.250,-20.862,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); -INSERT INTO `npc_list` VALUES (17428873,'qm10','???',61,-30.667,-0.246,-130.950,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); -INSERT INTO `npc_list` VALUES (17428874,'qm11','???',132,-60.852,-0.750,-14.651,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); +INSERT INTO `npc_list` VALUES (17428869,'qm_shining1','???',249,-143.485,-0.750,-103.572,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); +INSERT INTO `npc_list` VALUES (17428870,'qm_shining2','???',180,-180.135,-0.107,-34.973,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); +INSERT INTO `npc_list` VALUES (17428871,'qm_shining3','???',31,54.415,1.482,-82.916,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); +INSERT INTO `npc_list` VALUES (17428872,'qm_shining4','???',247,64.920,-0.250,-20.862,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); +INSERT INTO `npc_list` VALUES (17428873,'qm_shining5','???',61,-30.667,-0.246,-130.950,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); +INSERT INTO `npc_list` VALUES (17428874,'qm_shining6','???',132,-60.852,-0.750,-14.651,1,50,50,0,0,112,0,27,0x0000160900000000000000000000000000000000,32,'ASA',0); INSERT INTO `npc_list` VALUES (17428875,'Treasure_Casket','Treasure Casket',0,0.000,0.000,0.000,7,50,50,0,4,4,2,3,0x0000C50300000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428876,'Treasure_Casket','Treasure Casket',0,0.000,0.000,0.000,7,50,50,0,4,4,0,3,0x0000C50300000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428877,'Treasure_Casket','Treasure Casket',0,0.000,0.000,0.000,6,50,50,0,4,4,2,3,0x0000C60300000000000000000000000000000000,0,NULL,0); @@ -22802,7 +22802,7 @@ INSERT INTO `npc_list` VALUES (17428898,'qm_key1','???',123,-14.570,-17.800,-151 INSERT INTO `npc_list` VALUES (17428899,'qm_key2','???',81,-32.052,-17.800,-154.654,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428900,'qm_key3','???',16,-67.632,-17.799,-154.634,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428901,'qm17','???',62,-10.084,-17.064,-150.367,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428902,'???','???',192,60.069,1.438,-70.196,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428902,'qm15','???',192,60.069,1.438,-70.196,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428903,'Erpalacion','Erpalacion',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010003035A105A205A305A405A50D26000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17428904,'Erpalacion','Erpalacion',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010003035A105A205A305A405A50D26000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17428905,'Ancolain','Ancolain',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100080300104E204E304E404E501F6100700000,32,NULL,1); From 3949d478e299848e230903918e3976882305dc70 Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Thu, 9 Jul 2026 18:11:38 -0400 Subject: [PATCH 34/59] Mog House Exit Event Module Adds a module for the old mog house job change exit prompt. --- .../custom/lua/moghouse_exit_homepoint.lua | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 modules/custom/lua/moghouse_exit_homepoint.lua diff --git a/modules/custom/lua/moghouse_exit_homepoint.lua b/modules/custom/lua/moghouse_exit_homepoint.lua new file mode 100644 index 00000000000..beb551f4024 --- /dev/null +++ b/modules/custom/lua/moghouse_exit_homepoint.lua @@ -0,0 +1,92 @@ +----------------------------------- +-- Mog House Exit Home Point Prompt Module +----------------------------------- +-- Restores the prompt to set your home point when exiting the Mog House after changing jobs. +----------------------------------- +require('modules/module_utils') +require('scripts/globals/moghouse') +----------------------------------- +local m = Module:new('moghouse_exit_homepoint') + +-- Variable used for this module to store the job snapshot in the player's character variables. +local jobSnapshot = 'moghouseExitJobSnapshot' + +-- The current event ID for the Mog House exit prompt. May change with future updates. If this module ever breaks, check here first. +local exitEventId = 30004 + +-- Zones to prompt players to set their home point upon exiting the Mog House. +local exitZones = +{ + ['Southern_San_dOria' ] = xi.zone.SOUTHERN_SAN_DORIA, + ['Northern_San_dOria' ] = xi.zone.NORTHERN_SAN_DORIA, + ['Port_San_dOria' ] = xi.zone.PORT_SAN_DORIA, + ['Bastok_Mines' ] = xi.zone.BASTOK_MINES, + ['Bastok_Markets' ] = xi.zone.BASTOK_MARKETS, + ['Port_Bastok' ] = xi.zone.PORT_BASTOK, + ['Windurst_Waters' ] = xi.zone.WINDURST_WATERS, + ['Windurst_Walls' ] = xi.zone.WINDURST_WALLS, + ['Port_Windurst' ] = xi.zone.PORT_WINDURST, + ['Windurst_Woods' ] = xi.zone.WINDURST_WOODS, + ['RuLude_Gardens' ] = xi.zone.RULUDE_GARDENS, + ['Upper_Jeuno' ] = xi.zone.UPPER_JEUNO, + ['Lower_Jeuno' ] = xi.zone.LOWER_JEUNO, + ['Port_Jeuno' ] = xi.zone.PORT_JEUNO, + ['Al_Zahbi' ] = xi.zone.AL_ZAHBI, + ['Aht_Urhgan_Whitegate' ] = xi.zone.AHT_URHGAN_WHITEGATE, + ['Southern_San_dOria_[S]'] = xi.zone.SOUTHERN_SAN_DORIA_S, + ['Bastok_Markets_[S]' ] = xi.zone.BASTOK_MARKETS_S, + ['Windurst_Waters_[S]' ] = xi.zone.WINDURST_WATERS_S, +} + +local promptZoneIds = {} +for _, zoneId in pairs(exitZones) do + promptZoneIds[zoneId] = true +end + +local currentJob = function(player) + return player:getMainJob() * 100 + player:getSubJob() +end + +m:addOverride('xi.moghouse.onMoghouseZoneEvent', function(player, prevZone) + -- Create a snapshot of the players current job when entering the mog house. + if player:inMogHouse() then + player:setCharVar(jobSnapshot, currentJob(player)) + + return super(player, prevZone) + end + + local moghouseExitPos = player:getXPos() == 0 and player:getYPos() == 0 and player:getZPos() == 0 + local baseCsId = super(player, prevZone) + local storedJob = player:getCharVar(jobSnapshot) + + if moghouseExitPos and storedJob > 0 then + player:setCharVar(jobSnapshot, 0) + + if + baseCsId == -1 and + promptZoneIds[player:getZoneID()] and + storedJob ~= currentJob(player) + then + return exitEventId + end + end + + return baseCsId +end) + +for zoneName in pairs(exitZones) do + m:addOverride(string.format('xi.zones.%s.Zone.onEventFinish', zoneName), function(player, csid, option, npc) + if csid == exitEventId then + if option == 0 then + player:setHomePoint() + player:messageSpecial(zones[player:getZoneID()].text.HOMEPOINT_SET) + end + + return + end + + super(player, csid, option, npc) + end) +end + +return m From 81d17575e0f4e9d1f135908701bccce7bcdc892e Mon Sep 17 00:00:00 2001 From: Skold177 <113406182+Skold177@users.noreply.github.com> Date: Thu, 9 Jul 2026 13:44:36 -0400 Subject: [PATCH 35/59] Content Tag some NPCs Adds some content tags for outdoor zones and cities. Co-Authored-By: John Smith <215467762+normalname33@users.noreply.github.com> --- sql/npc_list.sql | 576 +++++++++++++++++++++++------------------------ 1 file changed, 288 insertions(+), 288 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index b4a1106a188..573e05a5996 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -324,11 +324,11 @@ INSERT INTO `npc_list` VALUES (16798148,'Riftworn_Pyxis','Riftworn Pyxis',0,-140 INSERT INTO `npc_list` VALUES (16798149,'Riftworn_Pyxis','Riftworn Pyxis',0,-219.900,-41.000,-503.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (16798150,'Riftworn_Pyxis','Riftworn Pyxis',0,295.100,0.000,-358.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (16798151,'Geomagnetic_Fount','Geomagnetic Fount',0,58.442,-199.381,177.396,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (16798152,'HomePoint#1','Home Point #1',0,65.000,-196.500,181.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16798153,'HomePoint#2','Home Point #2',128,379.000,23.000,-62.600,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16798154,'HomePoint#3','Home Point #3',64,424.000,-32.500,220.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16798155,'HomePoint#4','Home Point #4',64,64.000,-96.500,460.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16798156,'HomePoint#5','Home Point #5',0,-219.000,-1.000,-62.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',0); +INSERT INTO `npc_list` VALUES (16798152,'HomePoint#1','Home Point #1',0,65.000,-196.500,181.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16798153,'HomePoint#2','Home Point #2',128,379.000,23.000,-62.600,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16798154,'HomePoint#3','Home Point #3',64,424.000,-32.500,220.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16798155,'HomePoint#4','Home Point #4',64,64.000,-96.500,460.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16798156,'HomePoint#5','Home Point #5',0,-219.000,-1.000,-62.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16798157,'Ethereal_Junction','Ethereal Junction',0,-241.090,-19.130,-302.630,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16798158,'Ethereal_Junction','Ethereal Junction',0,-604.660,-48.060,-124.240,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16798159,'Ethereal_Junction','Ethereal Junction',0,-638.820,-39.200,-16.110,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',0); @@ -510,11 +510,11 @@ INSERT INTO `npc_list` VALUES (16806380,'Riftworn_Pyxis','Riftworn Pyxis',0,40.1 INSERT INTO `npc_list` VALUES (16806381,'Riftworn_Pyxis','Riftworn Pyxis',0,442.100,20.000,-200.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (16806382,'Riftworn_Pyxis','Riftworn Pyxis',0,361.100,21.000,222.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (16806383,'Geomagnetic_Fount','Geomagnetic Fount',0,288.633,-21.752,25.448,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (16806384,'HomePoint#1','Home Point #1',0,-200.000,-10.000,342.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16806385,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16806386,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16806387,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16806388,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16806384,'HomePoint#1','Home Point #1',0,-200.000,-10.000,342.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16806385,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16806386,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16806387,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16806388,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16806389,'Ethereal_Junction','Ethereal Junction',0,-357.240,-4.000,240.210,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16806390,'Ethereal_Junction','Ethereal Junction',0,-595.160,-3.960,119.090,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16806391,'Ethereal_Junction','Ethereal Junction',0,-240.480,-3.970,-75.330,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',0); @@ -723,11 +723,11 @@ INSERT INTO `npc_list` VALUES (16814564,'Moogle','Moogle',0,0.000,0.000,0.000,0, INSERT INTO `npc_list` VALUES (16814565,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',1); INSERT INTO `npc_list` VALUES (16814566,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',1); INSERT INTO `npc_list` VALUES (16814567,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16814568,'HomePoint#1','Home Point #1',64,-58.000,40.000,14.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16814569,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16814570,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16814571,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16814572,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16814568,'HomePoint#1','Home Point #1',64,-58.000,40.000,14.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16814569,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16814570,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16814571,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16814572,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); -- ------------------------------------------------------------ -- The Shrouded Maw (Zone 10) @@ -960,11 +960,11 @@ INSERT INTO `npc_list` VALUES (16826627,'Mining_Point','Mining Point',0,-103.223 INSERT INTO `npc_list` VALUES (16826628,'Mining_Point','Mining Point',0,64.517,14.841,-135.909,32775,50,50,0,0,0,0,3,0x0000780900000000000000000000000000000000,0,'COP',0); INSERT INTO `npc_list` VALUES (16826629,'Mining_Point','Mining Point',0,69.433,19.221,185.247,32775,50,50,0,0,0,0,3,0x0000780900000000000000000000000000000000,0,'COP',0); INSERT INTO `npc_list` VALUES (16826630,'Treasure_Coffer','Treasure Coffer',0,0.000,0.000,0.000,6,50,50,0,0,0,0,3,0x0000C10300000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16826631,'HomePoint#1','Home Point #1',0,440.000,28.000,-18.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16826632,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16826633,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16826634,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16826635,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16826631,'HomePoint#1','Home Point #1',0,440.000,28.000,-18.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16826632,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16826633,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16826634,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16826635,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); -- ------------------------------------------------------------ -- Mine Shaft #2716 (Zone 13) @@ -2013,11 +2013,11 @@ INSERT INTO `npc_list` VALUES (16880007,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (16880008,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000500100000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (16880009,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000500100000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (16880010,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000500100000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (16880011,'HomePoint#1','Home Point #1',224,-65.000,-17.500,563.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16880012,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16880013,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16880014,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (16880015,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16880011,'HomePoint#1','Home Point #1',224,-65.000,-17.500,563.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'ROV',1); +INSERT INTO `npc_list` VALUES (16880012,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16880013,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16880014,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); +INSERT INTO `npc_list` VALUES (16880015,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',0); -- ------------------------------------------------------------ -- Tavnazian Safehold (Zone 26) @@ -2112,10 +2112,10 @@ INSERT INTO `npc_list` VALUES (16883798,'Eliot','Eliot',0,-115.348,-27.250,-42.0 INSERT INTO `npc_list` VALUES (16883799,'Maturiri','Maturiri',161,-77.366,-20.000,-71.128,1,50,50,0,1,0,0,29,0x01000B060F100720003003400750006000700000,32,'COP',1); INSERT INTO `npc_list` VALUES (16883800,'Suzel','Suzel',131,-72.701,-20.250,-64.058,21,50,50,0,1,0,0,27,0x01000E020F100720003003400750006000700000,32,'COP',1); INSERT INTO `npc_list` VALUES (16883801,'HomePoint#1','Home Point #1',42,-1.250,-27.907,107.425,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16883802,'HomePoint#2','Home Point #2',145,14.000,-10.000,-5.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16883803,'HomePoint#3','Home Point #3',224,73.590,-36.150,38.870,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16883804,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16883805,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'COP',1); +INSERT INTO `npc_list` VALUES (16883802,'HomePoint#2','Home Point #2',145,14.000,-10.000,-5.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16883803,'HomePoint#3','Home Point #3',224,73.590,-36.150,38.870,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16883804,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16883805,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16883806,'Calengeard','Calengeard',209,-15.877,-27.878,102.344,7,50,50,0,0,0,0,27,0x010009038A108A206930694069500C6123700000,32,'COP',1); INSERT INTO `npc_list` VALUES (16883807,'Liphatte','Liphatte',11,23.049,-11.999,41.465,1,50,50,0,1,0,0,27,0x0100080401108120833083408350006000700000,32,'COP',1); INSERT INTO `npc_list` VALUES (16883808,'Ironclad_Gorilla','Ironclad Gorilla',248,-1.858,-9.032,-8.352,21,50,50,0,0,0,0,27,0x010009081C108A2008308A40085019611D700000,32,'COP',1); @@ -2483,7 +2483,7 @@ INSERT INTO `npc_list` VALUES (16896247,'44444444','44444444',0,0.000,0.000,0.00 INSERT INTO `npc_list` VALUES (16896248,'55555555','55555555',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00000F0300000000000000000000000000000000,32,'COP',1); INSERT INTO `npc_list` VALUES (16896249,'66666666','66666666',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00000F0300000000000000000000000000000000,32,'COP',1); INSERT INTO `npc_list` VALUES (16896250,'Geomagnetic_Fount','Geomagnetic Fount',0,-827.142,-45.357,140.238,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (16896251,'HomePoint#1','Home Point #1',128,-520.000,-18.856,505.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16896251,'HomePoint#1','Home Point #1',128,-520.000,-18.856,505.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16896252,'Home_Point_#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16896253,'Home_Point_#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16896254,'Home_Point_#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); @@ -2574,7 +2574,7 @@ INSERT INTO `npc_list` VALUES (16900396,'Sanctia','Sanctia',105,163.299,96.297,- INSERT INTO `npc_list` VALUES (16900397,'Novice_Moogle','Novice Moogle',79,163.734,96.448,-873.649,0,50,50,0,1,0,6,25,0x0000520000000000000000000000000000000000,32,'COP',1); INSERT INTO `npc_list` VALUES (16900398,'qm','???',66,-737.297,-44.000,-301.489,0,50,50,0,0,0,6,27,0x0100060113101320133013401250006000700000,32,'COP',0); INSERT INTO `npc_list` VALUES (16900399,'Albanus','Albanus',149,-727.502,-43.601,-305.725,0,50,50,0,0,0,6,27,0x0100070100101320133013401250006000700000,32,'COP',1); -INSERT INTO `npc_list` VALUES (16900400,'HomePoint#1','Home Point #1',64,187.000,1.000,361.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); +INSERT INTO `npc_list` VALUES (16900400,'HomePoint#1','Home Point #1',64,187.000,1.000,361.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16900401,'Home_Point_#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16900402,'Home_Point_#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16900403,'Home_Point_#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); @@ -2862,9 +2862,9 @@ INSERT INTO `npc_list` VALUES (16912993,'Moogle','Moogle',0,0.000,0.000,0.000,0, INSERT INTO `npc_list` VALUES (16912994,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); INSERT INTO `npc_list` VALUES (16912995,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); INSERT INTO `npc_list` VALUES (16912996,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16912997,'HomePoint#1','Home Point #1',192,7.000,0.000,709.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16912998,'HomePoint#2','Home Point #2',128,-532.000,0.000,447.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); -INSERT INTO `npc_list` VALUES (16912999,'HomePoint#3','Home Point #3',192,569.000,0.000,410.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); +INSERT INTO `npc_list` VALUES (16912997,'HomePoint#1','Home Point #1',192,7.000,0.000,709.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16912998,'HomePoint#2','Home Point #2',128,-532.000,0.000,447.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16912999,'HomePoint#3','Home Point #3',192,569.000,0.000,410.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16913000,'Home_Point_#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16913001,'Home_Point_#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); @@ -2994,7 +2994,7 @@ INSERT INTO `npc_list` VALUES (16916937,'Moogle','Moogle',0,0.000,0.000,0.000,0, INSERT INTO `npc_list` VALUES (16916938,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); INSERT INTO `npc_list` VALUES (16916939,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); INSERT INTO `npc_list` VALUES (16916940,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16916941,'HomePoint#1','Home Point #1',192,-12.000,0.500,-288.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); +INSERT INTO `npc_list` VALUES (16916941,'HomePoint#1','Home Point #1',192,-12.000,0.500,-288.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16916942,'Home_Point_#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16916943,'Home_Point_#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16916944,'Home_Point_#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); @@ -3116,7 +3116,7 @@ INSERT INTO `npc_list` VALUES (16921135,'Moogle','Moogle',0,0.000,0.000,0.000,0, INSERT INTO `npc_list` VALUES (16921136,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); INSERT INTO `npc_list` VALUES (16921137,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); INSERT INTO `npc_list` VALUES (16921138,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'COP',0); -INSERT INTO `npc_list` VALUES (16921139,'HomePoint#1','Home Point #1',224,-426.000,0.000,368.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'COP',1); +INSERT INTO `npc_list` VALUES (16921139,'HomePoint#1','Home Point #1',224,-426.000,0.000,368.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16921140,'Home_Point_#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16921141,'Home_Point_#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16921142,'Home_Point_#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); @@ -4021,8 +4021,8 @@ INSERT INTO `npc_list` VALUES (16974361,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (16974362,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0600970600000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (16974363,'blank','',0,-107.520,1.999,85.896,0,50,50,0,0,0,6,27,0x06009B0600000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (16974364,'GoblinFootprin','',0,-107.520,1.999,85.896,0,50,50,0,0,0,6,27,0x06009B0600000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (16974365,'HomePoint#1','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000070700000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (16974366,'HomePoint#2','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000070700000000000000000000000000000000,32,NULL,0); +INSERT INTO `npc_list` VALUES (16974365,'HomePoint#1','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000070700000000000000000000000000000000,32,'TOAU',0); +INSERT INTO `npc_list` VALUES (16974366,'HomePoint#2','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000070700000000000000000000000000000000,32,'SOA',0); INSERT INTO `npc_list` VALUES (16974367,'Mutarid','Mutarid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000C01A510A520AB30A540AB50776100700000,32,'TOAU',1); INSERT INTO `npc_list` VALUES (16974368,'Syaid','Syaid',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000601A510A520AB30A540AB50776100700000,32,'TOAU',1); INSERT INTO `npc_list` VALUES (16974369,'Azwil','Azwil',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000101A510A520AB30A540AB50776100700000,32,'TOAU',1); @@ -4112,10 +4112,10 @@ INSERT INTO `npc_list` VALUES (16982051,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (16982052,'Moogle','Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x0000520000000000000000000000000000000000,32,'TOAU',1); INSERT INTO `npc_list` VALUES (16982053,'Symphonic_Curator','Symphonic Curator',64,2.000,-1.000,-7.500,32783,50,50,0,0,0,2,3,0x0000370700000000000000000000000000000000,0,'TOAU',1); INSERT INTO `npc_list` VALUES (16982054,'HomePoint#1','Home Point #1',224,-21.130,0.000,-20.944,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (16982055,'HomePoint#2','Home Point #2',0,130.000,0.000,-16.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (16982056,'HomePoint#3','Home Point #3',192,-108.000,-6.000,108.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (16982057,'HomePoint#4','Home Point #4',128,-99.000,0.000,-68.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (16982058,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); +INSERT INTO `npc_list` VALUES (16982055,'HomePoint#2','Home Point #2',0,130.000,0.000,-16.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16982056,'HomePoint#3','Home Point #3',192,-108.000,-6.000,108.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16982057,'HomePoint#4','Home Point #4',128,-99.000,0.000,-68.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16982058,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16982059,'Ironbound_Gate','Ironbound Gate',0,-43.200,0.000,56.000,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',0); INSERT INTO `npc_list` VALUES (16982060,'Ironbound_Gate','Ironbound Gate',0,-43.200,0.000,-56.000,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',0); INSERT INTO `npc_list` VALUES (16982061,'_1eb','Door_1eb',0,-0.349,-2.000,-104.819,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,'TOAU',0); @@ -4957,9 +4957,9 @@ INSERT INTO `npc_list` VALUES (16986839,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (16986840,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000303A510A520AB30A540AB50776100700000,32,NULL,0); INSERT INTO `npc_list` VALUES (16986841,'Atmacite_Refiner','Atmacite Refiner',145,684.306,-15.735,232.017,15,50,50,0,0,0,0,3,0x01000903141019200C3002400250006000700000,0,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (16986842,'Survival_Guide','Survival Guide',64,-839.000,-20.000,98.000,8,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); -INSERT INTO `npc_list` VALUES (16986843,'Ethereal_Junction','Ethereal Junction',0,360.700,-15.750,-52.180,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16986844,'Ethereal_Junction','Ethereal Junction',0,183.580,-19.590,-94.430,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16986845,'Ethereal_Junction','Ethereal Junction',0,104.620,-20.250,47.620,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16986843,'Ethereal_Junction','Ethereal Junction',0,360.700,-15.750,-52.180,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16986844,'Ethereal_Junction','Ethereal Junction',0,183.580,-19.590,-94.430,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16986845,'Ethereal_Junction','Ethereal Junction',0,104.620,-20.250,47.620,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16986846,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (16986847,'Returned_Soulflayer','Returned Soulflayer',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000090E00000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (16986848,'Returned_Soulflayer','Returned Soulflayer',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000F00600000000000000000000000000000000,32,NULL,1); @@ -5030,11 +5030,11 @@ INSERT INTO `npc_list` VALUES (16990652,'Harvesting_Point','Harvesting Point',0, INSERT INTO `npc_list` VALUES (16990653,'Harvesting_Point','Harvesting Point',0,292.814,-28.262,508.026,32775,50,50,0,0,0,0,3,0x0000760900000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16990654,'Harvesting_Point','Harvesting Point',0,177.026,-18.207,313.230,32775,50,50,0,0,0,0,3,0x0000760900000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16990655,'blank','',64,-173.264,-7.086,-825.648,0,40,40,0,0,0,2,27,0x0000340000000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (16990656,'HomePoint#1','',192,-98.000,-10.000,-493.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (16990656,'HomePoint#1','',192,-98.000,-10.000,-493.000,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16990657,'Mythralline_Wellspring','Mythralline Wellspring',223,180.813,-15.188,373.560,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',1); INSERT INTO `npc_list` VALUES (16990658,'qm9','???',64,-173.264,-7.086,-825.648,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (16990659,'Moogle','Moogle',64,-173.264,-7.086,-825.648,0,50,50,0,0,0,6,27,0x0000520000000000000000000000000000000000,32,'TOAU',1); -INSERT INTO `npc_list` VALUES (16990660,'HomePoint#1','Home Point #1',192,-98.000,-10.000,-493.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); +INSERT INTO `npc_list` VALUES (16990660,'HomePoint#1','Home Point #1',192,-98.000,-10.000,-493.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16990661,'Home_Point_#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16990662,'Home_Point_#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (16990663,'Home_Point_#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); @@ -5070,11 +5070,11 @@ INSERT INTO `npc_list` VALUES (16994328,'_1h0','Door_1h0',0,0.349,-2.000,-64.815 INSERT INTO `npc_list` VALUES (16994329,'_1h1','Door_1h1',0,20.000,-2.000,-55.189,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,'TOAU',0); INSERT INTO `npc_list` VALUES (16994330,'_1h2','Cam_1h2',0,9.449,1.399,-104.500,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,'TOAU',0); INSERT INTO `npc_list` VALUES (16994331,'_1h3','Cam_1h3',0,14.550,1.399,-104.500,1,50,50,9,0,0,0,6147,0x0200000000000000000000000000000000000000,0,'TOAU',0); -INSERT INTO `npc_list` VALUES (16994332,'HomePoint#1','Home Point #1',28,-19.860,0.000,-25.441,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (16994333,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16994334,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16994335,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (16994336,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (16994332,'HomePoint#1','Home Point #1',28,-19.860,0.000,-25.441,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16994333,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16994334,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16994335,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (16994336,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (16994337,'blank','',142,13.736,0.000,-27.115,32783,50,50,0,0,0,0,2075,0x0000560100000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (16994338,'blank','',140,12.835,0.000,-29.276,32776,50,50,0,0,0,0,2075,0x0000560100000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (16994339,'blank','',173,-16.979,0.000,32.436,32769,50,50,0,0,0,0,2075,0x0000560100000000000000000000000000000000,32,NULL,0); @@ -5941,14 +5941,14 @@ INSERT INTO `npc_list` VALUES (17027624,'Planar_Rift','Planar Rift',143,775.983, INSERT INTO `npc_list` VALUES (17027625,'Riftworn_Pyxis','Riftworn Pyxis',98,902.885,-15.894,336.315,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17027626,'Riftworn_Pyxis','Riftworn Pyxis',223,463.245,-15.751,-62.086,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17027627,'Riftworn_Pyxis','Riftworn Pyxis',143,776.083,-15.818,-63.583,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); -INSERT INTO `npc_list` VALUES (17027628,'HomePoint#1','Home Point #1',0,-533.000,-4.100,56.500,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17027628,'HomePoint#1','Home Point #1',0,-533.000,-4.100,56.500,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17027629,'Home_Point_#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17027630,'Home_Point_#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17027631,'Home_Point_#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17027632,'Home_Point_#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17027633,'Ethereal_Junction','Ethereal Junction',0,-440.120,-14.000,404.610,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17027634,'Ethereal_Junction','Ethereal Junction',0,-588.400,-13.620,277.770,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17027635,'Ethereal_Junction','Ethereal Junction',0,-280.140,-14.000,241.050,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17027633,'Ethereal_Junction','Ethereal Junction',0,-440.120,-14.000,404.610,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17027634,'Ethereal_Junction','Ethereal Junction',0,-588.400,-13.620,277.770,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17027635,'Ethereal_Junction','Ethereal Junction',0,-280.140,-14.000,241.050,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17027636,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17027637,'Gloom_Phantom','Gloom Phantom',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000550C00000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17027638,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000550C00000000000000000000000000000000,32,NULL,0); @@ -6857,9 +6857,9 @@ INSERT INTO `npc_list` VALUES (17056478,'Riftworn_Pyxis','Riftworn Pyxis',0,280. INSERT INTO `npc_list` VALUES (17056479,'Riftworn_Pyxis','Riftworn Pyxis',0,-152.900,8.700,44.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17056480,'Riftworn_Pyxis','Riftworn Pyxis',0,437.100,-26.000,393.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17056481,'Survival_Guide','Survival Guide',128,4.000,20.500,-91.000,16,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); -INSERT INTO `npc_list` VALUES (17056482,'Ethereal_Junction','Ethereal Junction',0,164.250,36.860,-43.640,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17056483,'Ethereal_Junction','Ethereal Junction',0,289.420,39.360,24.190,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17056484,'Ethereal_Junction','Ethereal Junction',0,244.330,39.890,124.110,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17056482,'Ethereal_Junction','Ethereal Junction',0,164.250,36.860,-43.640,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17056483,'Ethereal_Junction','Ethereal Junction',0,289.420,39.360,24.190,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17056484,'Ethereal_Junction','Ethereal Junction',0,244.330,39.890,124.110,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17056485,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17056486,'Ghatsad','Ghatsad',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2073,0x010003087D107D2000300F400F50006000700000,32,NULL,0); INSERT INTO `npc_list` VALUES (17056487,'Abda-Lurabda','Abda-Lurabda',0,0.000,0.000,0.000,0,50,50,0,1,0,6,2073,0x010004057D107D2000300F400F50006000700000,32,NULL,0); @@ -8320,13 +8320,13 @@ INSERT INTO `npc_list` VALUES (17101396,'Riftworn_Pyxis','Riftworn Pyxis',74,243 INSERT INTO `npc_list` VALUES (17101397,'Riftworn_Pyxis','Riftworn Pyxis',150,269.601,-4.473,-732.206,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17101398,'Riftworn_Pyxis','Riftworn Pyxis',193,-314.513,-4.327,-748.021,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17101399,'HomePoint#1','Home Point #1',0,-449.000,13.400,-497.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (17101400,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (17101401,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (17101402,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (17101403,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'TOAU',1); -INSERT INTO `npc_list` VALUES (17101404,'Ethereal_Junction','Ethereal Junction',0,681.420,0.000,442.270,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17101405,'Ethereal_Junction','Ethereal Junction',0,592.660,-8.420,320.610,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17101406,'Ethereal_Junction','Ethereal Junction',0,742.000,-3.500,391.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17101400,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17101401,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17101402,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17101403,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17101404,'Ethereal_Junction','Ethereal Junction',0,681.420,0.000,442.270,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17101405,'Ethereal_Junction','Ethereal Junction',0,592.660,-8.420,320.610,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17101406,'Ethereal_Junction','Ethereal Junction',0,742.000,-3.500,391.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17101407,'Survival_Guide','Survival Guide',96,-659.000,-13.000,340.000,1,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); INSERT INTO `npc_list` VALUES (17101408,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17101409,'Arisen_Soulflayer','Arisen Soulflayer',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2073,0x0000080E00000000000000000000000000000000,32,NULL,0); @@ -8473,10 +8473,10 @@ INSERT INTO `npc_list` VALUES (17105373,'Suspicious_Object','Suspicious Object', INSERT INTO `npc_list` VALUES (17105374,'Suspicious_Object','Suspicious Object',0,-173.778,-9.296,69.924,7,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17105375,'Zidalf','Zidalf',29,-33.778,0.000,33.984,1,50,50,34,0,0,0,27,0x0000CE0300000000000000000000000000000000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17105376,'HomePoint#1','Home Point #1',206,-85.468,1.000,-66.454,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17105377,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17105378,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17105379,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17105380,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17105377,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17105378,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17105379,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17105380,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17105381,'Nembet','Nembet',158,148.047,-2.000,110.042,14,50,50,0,1,0,0,29,0x0100000306101520003015400C50006000700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17105382,'Wyatt','Wyatt',35,124.017,0.000,84.169,7,50,50,0,1,0,0,25,0x01000D0011101120113011400050006000700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17105383,'Mainchelite','Mainchelite',191,-15.349,1.398,-30.368,1,50,50,0,0,0,0,25,0x01000B033810DD200C300C400D5058601B700000,32,'WOTG',1); @@ -10534,10 +10534,10 @@ INSERT INTO `npc_list` VALUES (17134075,'Red_Canyon','Red Canyon',77,-229.454,0. INSERT INTO `npc_list` VALUES (17134076,'Blingbrix','Blingbrix',115,-185.458,-8.000,-25.328,6,50,50,0,0,0,0,27,0x0000550000000000000000000000000000000000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17134077,'Heumila','Heumila',64,-172.136,-4.000,-69.632,15,50,50,34,0,0,0,27,0x0000CD0300000000000000000000000000000000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17134078,'HomePoint#1','Home Point #1',70,-293.048,-10.000,-102.558,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17134079,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17134080,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17134081,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17134082,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); +INSERT INTO `npc_list` VALUES (17134079,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17134080,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17134081,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17134082,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17134083,'Weldon','Weldon',46,-191.575,-8.000,36.688,1,50,50,0,1,0,0,29,0x010003011A100220003015401A50006000700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17134084,'Karlotte','Karlotte',236,-191.646,-8.000,-36.349,21,50,50,0,1,0,0,25,0x010001021A100220003015401A50006000700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17134085,'Isabella','Isabella',0,-325.520,-12.600,-78.813,15,50,50,0,0,0,0,27,0x01000D021A101D201D301D401D504E602C700000,32,'WOTG',1); @@ -12543,10 +12543,10 @@ INSERT INTO `npc_list` VALUES (17162706,'_2m2','',0,-40.000,-8.125,243.000,1,50, INSERT INTO `npc_list` VALUES (17162707,'Ajen-Myoojen','Ajen-Myoojen',49,-44.542,-4.999,238.996,1,50,50,0,0,0,2,27,0x01000005011001200130014001506F6029700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17162708,'Gevarg','Gevarg',201,-46.448,-5.312,212.384,21,50,50,34,0,0,2,27,0x0000CE0300000000000000000000000000000000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17162709,'HomePoint#1','Home Point #1',114,-32.022,-5.000,131.741,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17162710,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17162711,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17162712,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17162713,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); +INSERT INTO `npc_list` VALUES (17162710,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17162711,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17162712,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17162713,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17162714,'Chays-Ratays','Chays-Ratays',254,-6.013,-3.999,-185.219,8,50,50,0,1,0,0,29,0x0100010500109520953095409550006000700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17162715,'Koton-Llaton','Koton-Llaton',48,78.220,-2.750,-173.631,1,50,50,0,1,0,0,29,0x0100080500101820183018401850006000700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17162716,'Kristen','Kristen',115,2.195,-1.000,60.296,21,50,50,0,1,0,0,27,0x0100070200103020003010408150006000700000,32,'WOTG',1); @@ -14488,9 +14488,9 @@ INSERT INTO `npc_list` VALUES (17195681,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17195682,'Field_Manual','Field Manual',148,-576.994,-4.033,661.371,7,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17195683,'Field_Manual','Field Manual',63,437.557,23.999,3.054,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17195684,'Field_Parchment','Field Parchment',32,156.000,15.500,84.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17195685,'Ethereal_Junction','Ethereal Junction',0,-122.880,-8.000,-43.550,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17195686,'Ethereal_Junction','Ethereal Junction',0,-268.680,-15.640,-161.210,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17195687,'Ethereal_Junction','Ethereal Junction',0,119.310,8.000,-158.750,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17195685,'Ethereal_Junction','Ethereal Junction',0,-122.880,-8.000,-43.550,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17195686,'Ethereal_Junction','Ethereal Junction',0,-268.680,-15.640,-161.210,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17195687,'Ethereal_Junction','Ethereal Junction',0,119.310,8.000,-158.750,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17195688,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17195689,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17195690,'Planar_Rift','Planar Rift',0,640.000,32.000,1.000,1,50,50,0,5,100,0,3,0x00006F0900000000000000000000000000000000,2,'VOIDWATCH',1); @@ -14919,7 +14919,7 @@ INSERT INTO `npc_list` VALUES (17203885,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17203886,'Cavernous_Maw','Cavernous Maw',0,-122.835,-8.000,-519.974,32769,50,50,0,0,96,0,3,0x0000130900000000000000000000000000000000,2,'WOTG',1); INSERT INTO `npc_list` VALUES (17203887,'Field_Manual','Field Manual',60,65.273,0.398,-14.112,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17203888,'Field_Manual','Field Manual',0,-560.862,-0.444,-445.029,22,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17203889,'Humus-rich_Earth','Humus-rich Earth',229,-510.535,7.568,289.283,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17203889,'Humus-rich_Earth','Humus-rich Earth',229,-510.535,7.568,289.283,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17203890,'Lilisette','Lilisette',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000E70800000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17203891,'NM_Treant','NM Treant',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000840100000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17203892,'qm4','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,27,0x0000340000000000000000000000000000000000,32,NULL,0); @@ -14975,7 +14975,7 @@ INSERT INTO `npc_list` VALUES (17203941,'Planar_Rift','Planar Rift',32,-325.000, INSERT INTO `npc_list` VALUES (17203942,'Riftworn_Pyxis','Riftworn Pyxis',224,78.100,0.000,118.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17203943,'Riftworn_Pyxis','Riftworn Pyxis',32,263.100,0.000,543.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17203944,'Riftworn_Pyxis','Riftworn Pyxis',32,-324.900,0.000,-124.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); -INSERT INTO `npc_list` VALUES (17203945,'Ardrick','Ardrick',65,62.880,0.582,-30.473,15,50,50,0,1,0,0,27,0x0100090100101320133083408350006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17203945,'Ardrick','Ardrick',65,62.880,0.582,-30.473,15,50,50,0,1,0,0,27,0x0100090100101320133083408350006000700000,32,'ABYSSEA',1); INSERT INTO `npc_list` VALUES (17203946,'Geomagnetic_Fount','Geomagnetic Fount',0,-178.000,-4.206,502.233,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17203947,'Survival_Guide','Survival Guide',64,63.000,0.400,-14.000,1,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); @@ -15080,9 +15080,9 @@ INSERT INTO `npc_list` VALUES (17207853,'Couvoullie','Couvoullie',133,460.533,8. INSERT INTO `npc_list` VALUES (17207854,'blank','',129,461.799,8.909,-156.580,1,50,50,0,0,0,2,27,0x0000560000000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17207855,'Luck_Rune','Luck Rune',90,-362.167,-12.199,157.158,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17207856,'Cavernous_Maw','Cavernous Maw',128,-45.147,0.056,436.919,32769,50,50,0,0,96,0,3,0x0000130900000000000000000000000000000000,2,'WOTG',1); -INSERT INTO `npc_list` VALUES (17207857,'Lyco_Sparkles','',122,-366.262,-16.000,325.967,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,NULL,0); -INSERT INTO `npc_list` VALUES (17207858,'blank','',64,-366.543,-22.127,325.830,32768,50,50,0,0,96,6,2075,0x0000160900000000000000000000000000000000,34,NULL,0); -INSERT INTO `npc_list` VALUES (17207859,'Lycopodium','Lycopodium',193,-366.425,-22.127,324.666,32768,50,50,0,0,96,6,27,0x0000C70800000000000000000000000000000000,34,NULL,1); +INSERT INTO `npc_list` VALUES (17207857,'Lyco_Sparkles','',122,-366.262,-16.000,325.967,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'WOTG',0); +INSERT INTO `npc_list` VALUES (17207858,'blank','',64,-366.543,-22.127,325.830,32768,50,50,0,0,96,6,2075,0x0000160900000000000000000000000000000000,34,'WOTG',0); +INSERT INTO `npc_list` VALUES (17207859,'Lycopodium','Lycopodium',193,-366.425,-22.127,324.666,32768,50,50,0,0,96,6,27,0x0000C70800000000000000000000000000000000,34,'WOTG',1); INSERT INTO `npc_list` VALUES (17207860,'qm6','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17207861,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17207862,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); @@ -15101,9 +15101,9 @@ INSERT INTO `npc_list` VALUES (17207874,'05','05',0,0.000,0.000,0.000,0,50,50,0, INSERT INTO `npc_list` VALUES (17207875,'Field_Manual','Field Manual',159,-413.391,-9.197,-227.871,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17207876,'Field_Manual','Field Manual',180,438.355,8.932,-141.327,22,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17207877,'Field_Parchment','Field Parchment',32,-84.000,-0.500,364.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17207878,'Ethereal_Junction','Ethereal Junction',0,-636.720,-24.130,404.170,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17207879,'Ethereal_Junction','Ethereal Junction',0,309.540,8.600,147.450,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17207880,'Ethereal_Junction','Ethereal Junction',0,-162.550,-24.000,-162.560,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17207878,'Ethereal_Junction','Ethereal Junction',0,-636.720,-24.130,404.170,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17207879,'Ethereal_Junction','Ethereal Junction',0,309.540,8.600,147.450,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17207880,'Ethereal_Junction','Ethereal Junction',0,-162.550,-24.000,-162.560,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17207881,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17207882,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17207883,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); @@ -15201,7 +15201,7 @@ INSERT INTO `npc_list` VALUES (17207974,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17207975,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000460100000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17207976,'qm_maw','???',123,-45.270,0.062,442.144,1,50,50,0,0,0,0,3,0x0000780900000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17207977,'Resume_Point','Resume Point',131,-47.277,0.121,434.560,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'SOA',1); -INSERT INTO `npc_list` VALUES (17207978,'Syrillia','Syrillia',8,-512.400,-16.000,207.160,8,50,50,0,0,0,0,27,0x01000904861008200A3015401850006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17207978,'Syrillia','Syrillia',8,-512.400,-16.000,207.160,8,50,50,0,0,0,0,27,0x01000904861008200A3015401850006000700000,32,'ROV',1); INSERT INTO `npc_list` VALUES (17207979,'NPC[2ab]','',0,224.000,-1.000,-16.000,32769,50,50,0,0,88,0,2075,0x0000A80900000000000000000000000000000000,160,NULL,0); INSERT INTO `npc_list` VALUES (17207980,'NPC[2ac]','',0,92.000,-9.000,172.000,32769,50,50,0,0,88,0,2075,0x0000A80900000000000000000000000000000000,160,NULL,0); INSERT INTO `npc_list` VALUES (17207981,'NPC[2ad]','',0,104.000,-9.000,-224.000,32769,50,50,0,0,88,0,2075,0x0000A80900000000000000000000000000000000,160,NULL,0); @@ -15333,8 +15333,8 @@ INSERT INTO `npc_list` VALUES (17212103,'qm3','???',0,309.600,2.600,324.000,3277 INSERT INTO `npc_list` VALUES (17212104,'Cavernous_Maw','Cavernous Maw',0,462.628,0.029,479.280,32769,50,50,0,0,96,0,3,0x0000140900000000000000000000000000000000,2,'WOTG',1); INSERT INTO `npc_list` VALUES (17212105,'Lyco_Sparkles_0','',138,-281.182,40.113,263.102,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'WOTG',0); INSERT INTO `npc_list` VALUES (17212106,'Lyco_Sparkles_1','',140,-258.186,-3.231,204.774,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'WOTG',0); -INSERT INTO `npc_list` VALUES (17212107,'blank','',236,-276.303,12.310,261.650,32768,50,50,0,0,96,6,2075,0x0000160900000000000000000000000000000000,34,NULL,0); -INSERT INTO `npc_list` VALUES (17212108,'Lycopodium','Lycopodium',83,-275.953,12.333,262.368,32768,50,50,0,0,96,6,27,0x0000C70800000000000000000000000000000000,34,NULL,1); +INSERT INTO `npc_list` VALUES (17212107,'blank','',236,-276.303,12.310,261.650,32768,50,50,0,0,96,6,2075,0x0000160900000000000000000000000000000000,34,'WOTG',0); +INSERT INTO `npc_list` VALUES (17212108,'Lycopodium','Lycopodium',83,-275.953,12.333,262.368,32768,50,50,0,0,96,6,27,0x0000C70800000000000000000000000000000000,34,'WOTG',1); INSERT INTO `npc_list` VALUES (17212109,'Cavernous_Maw_2','Cavernous Maw',0,-78.000,-0.500,600.000,32769,50,50,0,0,96,0,3,0x0000150900000000000000000000000000000000,2,'ABYSSEA',1); INSERT INTO `npc_list` VALUES (17212110,'Field_Manual','Field Manual',56,625.019,-1.045,316.154,8,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17212111,'Field_Manual','Field Manual',28,-596.486,40.213,57.049,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); @@ -15883,9 +15883,9 @@ INSERT INTO `npc_list` VALUES (17224354,'Cavernous_Maw','Cavernous Maw',101,422. INSERT INTO `npc_list` VALUES (17224355,'Field_Manual','Field Manual',29,477.439,24.648,419.927,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17224356,'Field_Manual','Field Manual',247,-536.418,24.999,-632.179,21,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17224357,'Field_Parchment','Field Parchment',224,156.000,24.500,312.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17224358,'Ethereal_Junction','Ethereal Junction',0,281.200,24.220,-51.890,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17224359,'Ethereal_Junction','Ethereal Junction',0,-25.710,24.430,-154.570,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17224360,'Ethereal_Junction','Ethereal Junction',0,114.750,24.430,414.220,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17224358,'Ethereal_Junction','Ethereal Junction',0,281.200,24.220,-51.890,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17224359,'Ethereal_Junction','Ethereal Junction',0,-25.710,24.430,-154.570,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17224360,'Ethereal_Junction','Ethereal Junction',0,114.750,24.430,414.220,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17224361,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17224362,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17224363,'Summoner','Summoner',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); @@ -16025,7 +16025,7 @@ INSERT INTO `npc_list` VALUES (17228395,'Riftworn_Pyxis','Riftworn Pyxis',0,-629 INSERT INTO `npc_list` VALUES (17228396,'Atmacite_Refiner','Atmacite Refiner',96,193.300,24.725,462.300,23,50,50,0,0,0,0,3,0x01000801141019200C3002400250006000700000,0,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17228397,'Voidwatch_Officer','Voidwatch Officer',96,191.750,24.675,463.300,16,50,50,0,0,0,0,3,0x01000401141019200C3002400250006000700000,0,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17228398,'Saarlan','Saarlan',192,242.000,24.395,468.000,8,50,50,0,0,0,0,27,0x0100030187108320873087408750316100700000,32,'ABYSSEA',1); -INSERT INTO `npc_list` VALUES (17228399,'Legion_Tome','Legion Tome',64,239.000,24.400,468.000,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17228399,'Legion_Tome','Legion Tome',64,239.000,24.400,468.000,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'ABYSSEA',1); INSERT INTO `npc_list` VALUES (17228400,'Mayuyu','Mayuyu',192,240.000,24.400,468.000,23,50,50,0,0,0,0,27,0x0100030687108320873087408750316100700000,32,'ABYSSEA',1); INSERT INTO `npc_list` VALUES (17228401,'blank','',192,237.000,24.400,468.500,1,50,50,0,0,40,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17228402,'Summoner','Summoner',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); @@ -16185,9 +16185,9 @@ INSERT INTO `npc_list` VALUES (17232292,'Field_Manual','Field Manual',192,105.00 INSERT INTO `npc_list` VALUES (17232293,'Field_Manual','Field Manual',128,254.000,-0.250,-15.000,14,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17232294,'Field_Manual','Field Manual',192,-335.000,-100.250,146.000,7,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17232295,'Field_Parchment','Field Parchment',32,36.000,-60.500,204.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17232296,'Ethereal_Junction','Ethereal Junction',0,444.890,-0.130,-205.510,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17232297,'Ethereal_Junction','Ethereal Junction',0,398.980,0.000,38.040,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17232298,'Ethereal_Junction','Ethereal Junction',0,239.940,-0.230,128.010,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17232296,'Ethereal_Junction','Ethereal Junction',0,444.890,-0.130,-205.510,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17232297,'Ethereal_Junction','Ethereal Junction',0,398.980,0.000,38.040,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17232298,'Ethereal_Junction','Ethereal Junction',0,239.940,-0.230,128.010,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17232299,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17232300,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17232301,'DebugMaster','DebugMaster',67,-23.446,-59.372,-77.446,1,50,50,0,0,0,2,27,0x0000520000000000000000000000000000000000,32,NULL,1); @@ -16236,8 +16236,8 @@ INSERT INTO `npc_list` VALUES (17232343,'Magh_Bihu','Magh Bihu',0,0.000,0.000,0. INSERT INTO `npc_list` VALUES (17232344,'Dazbog','Dazbog',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000020E00000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17232345,0x0A,'',153,197.403,-40.000,283.035,32768,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); INSERT INTO `npc_list` VALUES (17232346,0x0C,'',155,197.867,-39.952,284.971,32768,50,50,55,0,0,6,2051,0x0400000000000000000000000000000000000000,2,NULL,0); -INSERT INTO `npc_list` VALUES (17232347,'Ferric_Stench','Ferric Stench',0,-5.253,-59.427,-59.815,32769,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,2,NULL,1); -INSERT INTO `npc_list` VALUES (17232348,'Point_of_Interest','Point of Interest',0,240.501,0.000,247.233,32769,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,2,NULL,1); +INSERT INTO `npc_list` VALUES (17232347,'Ferric_Stench','Ferric Stench',0,-5.253,-59.427,-59.815,32769,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,2,'TVR',1); +INSERT INTO `npc_list` VALUES (17232348,'Point_of_Interest','Point of Interest',0,240.501,0.000,247.233,32769,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,2,'TVR',1); -- ------------------------------------------------------------ -- Xarcabard (Zone 112) @@ -16251,7 +16251,7 @@ INSERT INTO `npc_list` VALUES (17236252,'NPC[11c]','',0,0.000,0.000,0.000,0,50,5 INSERT INTO `npc_list` VALUES (17236253,'NPC[11d]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17236254,'NPC[11e]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17236255,'NPC[11f]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17236256,'Peculiar_Footprints','Peculiar Footprints',0,-424.150,-44.110,-14.610,32769,50,50,0,0,96,0,27,0x0000F50500000000000000000000000000000000,34,NULL,0); +INSERT INTO `npc_list` VALUES (17236256,'Peculiar_Footprints','Peculiar Footprints',0,-424.150,-44.110,-14.610,32769,50,50,0,0,96,0,27,0x0000F50500000000000000000000000000000000,34,'TVR',0); INSERT INTO `npc_list` VALUES (17236257,'NPC[121]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17236258,'Treasure_Casket','Treasure Casket',0,0.000,0.000,0.000,7,50,50,0,4,12,2,2051,0x0000C60300000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17236259,'Treasure_Casket','Treasure Casket',0,0.000,0.000,0.000,6,50,50,0,4,4,2,3,0x0000C50300000000000000000000000000000000,0,NULL,0); @@ -16347,7 +16347,7 @@ INSERT INTO `npc_list` VALUES (17236349,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17236350,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17236351,'Schultz','Schultz',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010001017310D620C930B940D650006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17236352,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000DE0800000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17236353,'Indescript_Markings','Indescript Markings',252,122.000,-30.000,-118.069,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17236353,'Indescript_Markings','Indescript Markings',252,122.000,-30.000,-118.069,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17236354,'Field_Manual','Field Manual',177,200.884,-23.895,-205.316,8,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17236355,'Field_Manual','Field Manual',157,571.209,-1.108,-262.822,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17236356,'Field_Parchment','Field Parchment',224,156.000,-24.500,-244.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); @@ -16370,7 +16370,7 @@ INSERT INTO `npc_list` VALUES (17236372,'NPC[194]','',0,0.000,0.000,0.000,0,50,5 INSERT INTO `npc_list` VALUES (17236373,'NPC[195]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17236374,'Survival_Guide','Survival Guide',192,204.000,-24.000,-203.000,8,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); INSERT INTO `npc_list` VALUES (17236375,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17236376,'Heroes_Gambit','Heroes\' Gambit',0,562.862,-0.106,-286.108,32769,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,2,NULL,1); +INSERT INTO `npc_list` VALUES (17236376,'Heroes_Gambit','Heroes\' Gambit',0,562.862,-0.106,-286.108,32769,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,2,'TVR',1); INSERT INTO `npc_list` VALUES (17236377,'Gloom_Phantom','Gloom Phantom',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000760C00000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17236378,'Magh_Bihu','Magh Bihu',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000560C00000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17236379,'Dazbog','Dazbog',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000570C00000000000000000000000000000000,32,NULL,1); @@ -16505,11 +16505,11 @@ INSERT INTO `npc_list` VALUES (17240526,'Ethereal_Junction','Ethereal Junction', INSERT INTO `npc_list` VALUES (17240527,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17240528,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17240529,'Survival_Guide','Survival Guide',128,-188.000,8.000,-67.000,14,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); -INSERT INTO `npc_list` VALUES (17240530,'HomePoint#1','Home Point #1',192,-303.000,-8.000,526.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17240531,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17240532,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17240533,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17240534,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17240530,'HomePoint#1','Home Point #1',192,-303.000,-8.000,526.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17240531,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17240532,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17240533,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17240534,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -- ------------------------------------------------------------ -- Eastern Altepa Desert (Zone 114) @@ -16622,9 +16622,9 @@ INSERT INTO `npc_list` VALUES (17244657,'Field_Manual','Field Manual',66,472.690 INSERT INTO `npc_list` VALUES (17244658,'Field_Manual','Field Manual',149,-259.317,8.527,-260.421,7,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17244659,'Field_Manual','Field Manual',120,-64.828,3.949,232.528,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17244660,'Field_Parchment','Field Parchment',192,238.000,7.000,-368.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17244661,'Ethereal_Junction','Ethereal Junction',0,-70.510,7.760,-327.510,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17244662,'Ethereal_Junction','Ethereal Junction',0,246.380,-10.040,412.060,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17244663,'Ethereal_Junction','Ethereal Junction',0,344.500,0.970,-211.230,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17244661,'Ethereal_Junction','Ethereal Junction',0,-70.510,7.760,-327.510,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17244662,'Ethereal_Junction','Ethereal Junction',0,246.380,-10.040,412.060,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17244663,'Ethereal_Junction','Ethereal Junction',0,344.500,0.970,-211.230,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17244664,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17244665,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17244666,'Summoner','Summoner',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); @@ -16950,9 +16950,9 @@ INSERT INTO `npc_list` VALUES (17253074,'Field_Manual','Field Manual',103,-108.1 INSERT INTO `npc_list` VALUES (17253075,'Field_Manual','Field Manual',189,-400.403,-25.063,608.558,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17253076,'Field_Manual','Field Manual',0,384.000,-13.250,94.000,21,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17253077,'Field_Parchment','Field Parchment',96,-80.000,-20.500,520.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17253078,'Ethereal_Junction','Ethereal Junction',0,142.690,-13.090,109.560,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17253079,'Ethereal_Junction','Ethereal Junction',0,361.840,0.100,-195.160,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17253080,'Ethereal_Junction','Ethereal Junction',0,-245.730,-0.640,-106.960,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17253078,'Ethereal_Junction','Ethereal Junction',0,142.690,-13.090,109.560,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17253079,'Ethereal_Junction','Ethereal Junction',0,361.840,0.100,-195.160,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17253080,'Ethereal_Junction','Ethereal Junction',0,-245.730,-0.640,-106.960,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17253081,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17253082,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17253083,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); @@ -17154,9 +17154,9 @@ INSERT INTO `npc_list` VALUES (17257079,'Field_Manual','Field Manual',126,-88.30 INSERT INTO `npc_list` VALUES (17257080,'Field_Manual','Field Manual',253,117.676,39.999,358.262,22,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17257081,'Field_Manual','Field Manual',56,319.094,-16.983,-88.081,15,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17257082,'Field_Parchment','Field Parchment',96,40.000,39.500,560.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17257083,'Ethereal_Junction','Ethereal Junction',0,80.790,-8.000,-242.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17257084,'Ethereal_Junction','Ethereal Junction',0,-442.380,-39.940,-153.810,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17257085,'Ethereal_Junction','Ethereal Junction',0,76.040,8.000,39.740,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17257083,'Ethereal_Junction','Ethereal Junction',0,80.790,-8.000,-242.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17257084,'Ethereal_Junction','Ethereal Junction',0,-442.380,-39.940,-153.810,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17257085,'Ethereal_Junction','Ethereal Junction',0,76.040,8.000,39.740,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17257086,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17257087,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17257088,'Planar_Rift','Planar Rift',0,205.000,15.746,-680.000,1,50,50,0,5,100,0,3,0x00006F0900000000000000000000000000000000,2,'VOIDWATCH',1); @@ -17366,9 +17366,9 @@ INSERT INTO `npc_list` VALUES (17261202,'Diabolos','Diabolos',0,0.000,0.000,0.00 INSERT INTO `npc_list` VALUES (17261203,'Field_Manual','Field Manual',61,-474.500,-32.206,47.284,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17261204,'Field_Manual','Field Manual',117,147.125,-1.017,-185.507,22,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17261205,'Field_Parchment','Field Parchment',32,200.000,-16.000,240.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17261206,'Ethereal_Junction','Ethereal Junction',0,445.560,0.280,-319.430,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17261207,'Ethereal_Junction','Ethereal Junction',0,441.980,0.000,199.850,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17261208,'Ethereal_Junction','Ethereal Junction',0,19.240,-16.400,92.740,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17261206,'Ethereal_Junction','Ethereal Junction',0,445.560,0.280,-319.430,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17261207,'Ethereal_Junction','Ethereal Junction',0,441.980,0.000,199.850,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17261208,'Ethereal_Junction','Ethereal Junction',0,19.240,-16.400,92.740,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17261209,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17261210,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17261211,'Summoner','Summoner',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); @@ -17539,9 +17539,9 @@ INSERT INTO `npc_list` VALUES (17265295,'Field_Manual','Field Manual',219,-298.6 INSERT INTO `npc_list` VALUES (17265296,'Field_Manual','Field Manual',213,-124.532,-25.108,-590.308,23,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17265297,'Field_Manual','Field Manual',242,609.155,-33.182,256.742,16,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17265298,'Field_Parchment','Field Parchment',96,160.000,-16.500,200.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17265299,'Ethereal_Junction','Ethereal Junction',0,674.880,-15.950,-481.880,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17265300,'Ethereal_Junction','Ethereal Junction',0,-69.620,6.850,-109.580,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17265301,'Ethereal_Junction','Ethereal Junction',0,336.090,-9.100,-131.870,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17265299,'Ethereal_Junction','Ethereal Junction',0,674.880,-15.950,-481.880,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17265300,'Ethereal_Junction','Ethereal Junction',0,-69.620,6.850,-109.580,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17265301,'Ethereal_Junction','Ethereal Junction',0,336.090,-9.100,-131.870,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17265302,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17265303,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17265304,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); @@ -17682,9 +17682,9 @@ INSERT INTO `npc_list` VALUES (17269266,'05','05',0,0.000,0.000,0.000,0,50,50,0, INSERT INTO `npc_list` VALUES (17269267,'Field_Manual','Field Manual',125,472.422,-8.864,-440.169,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17269268,'Field_Manual','Field Manual',227,-458.391,0.918,359.792,21,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17269269,'Field_Parchment','Field Parchment',160,120.000,15.500,120.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); -INSERT INTO `npc_list` VALUES (17269270,'Ethereal_Junction','Ethereal Junction',0,241.540,16.000,-117.950,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17269271,'Ethereal_Junction','Ethereal Junction',0,-277.460,8.000,40.670,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17269272,'Ethereal_Junction','Ethereal Junction',0,597.350,24.000,199.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17269270,'Ethereal_Junction','Ethereal Junction',0,241.540,16.000,-117.950,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17269271,'Ethereal_Junction','Ethereal Junction',0,-277.460,8.000,40.670,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17269272,'Ethereal_Junction','Ethereal Junction',0,597.350,24.000,199.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17269273,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17269274,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17269275,'Planar_Rift','Planar Rift',0,-245.000,7.750,245.000,1,50,50,0,5,100,0,3,0x00006F0900000000000000000000000000000000,2,'VOIDWATCH',1); @@ -18084,7 +18084,7 @@ INSERT INTO `npc_list` VALUES (17281660,'Field_Manual','Field Manual',12,380.648 INSERT INTO `npc_list` VALUES (17281661,'Field_Parchment','Field Parchment',224,-452.000,-0.800,-300.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17281662,'Ethereal_Junction','Ethereal Junction',0,-401.750,16.250,-415.050,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17281663,'Ethereal_Junction','Ethereal Junction',0,-403.000,0.000,-192.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17281664,'Ethereal_Junction','Ethereal Junction',0,71.000,0.000,397.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17281664,'Ethereal_Junction','Ethereal Junction',0,71.000,0.000,397.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17281665,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17281666,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,6,40,40,0,5,4,6,387,0x0000F70800000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17281667,'Planar_Rift','Planar Rift',0,-242.000,0.550,405.000,1,50,50,0,5,100,0,3,0x00006F0900000000000000000000000000000000,2,'VOIDWATCH',1); @@ -18558,11 +18558,11 @@ INSERT INTO `npc_list` VALUES (17293829,'qm4','???',0,0.000,0.000,0.000,0,50,50, INSERT INTO `npc_list` VALUES (17293830,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00000C0200000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17293831,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000460100000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17293832,'Undulating_Confluence','Undulating Confluence',88,-204.531,-20.027,75.318,21,50,50,0,0,0,0,3,0x0000BA0900000000000000000000000000000000,0,'ROV',1); -INSERT INTO `npc_list` VALUES (17293833,'HomePoint#1','Home Point #1',64,-212.000,-21.000,93.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17293834,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17293835,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17293836,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17293837,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17293833,'HomePoint#1','Home Point #1',64,-212.000,-21.000,93.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'ROV',1); +INSERT INTO `npc_list` VALUES (17293834,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17293835,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17293836,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17293837,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17293838,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17293839,'Gloom_Phantom','Gloom Phantom',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000550C00000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17293840,'Magh_Bihu','Magh Bihu',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000560C00000000000000000000000000000000,32,NULL,1); @@ -18576,7 +18576,7 @@ INSERT INTO `npc_list` VALUES (17293844,'Before_Delkfutts_Tower','Before Delkfut -- ------------------------------------------------------------ INSERT INTO `npc_list` VALUES (17297458,'NPC[32]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17297459,'qm2','???',0,-269.350,-19.778,74.269,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17297459,'qm2','???',0,-269.350,-19.778,74.269,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'ABYSSEA',0); INSERT INTO `npc_list` VALUES (17297460,'Treasure_Casket','Treasure Casket',0,0.000,0.000,0.000,0,50,50,0,4,4,2,3,0x0000C50300000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17297461,'Treasure_Casket','Treasure Casket',0,0.000,0.000,0.000,0,50,50,0,4,4,2,3,0x0000C50300000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17297462,'Treasure_Casket','Treasure Casket',0,0.000,0.000,0.000,0,50,50,0,4,4,2,3,0x0000C50300000000000000000000000000000000,0,NULL,0); @@ -18614,7 +18614,7 @@ INSERT INTO `npc_list` VALUES (17297494,'Cermet_Headstone','Cermet Headstone',34 INSERT INTO `npc_list` VALUES (17297495,'Field_Manual','Field Manual',150,337.466,25.967,-63.428,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17297496,'Field_Parchment','Field Parchment',224,-280.000,-20.000,0.000,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'FIELD_MANUALS',1); INSERT INTO `npc_list` VALUES (17297497,'Ethereal_Junction','Ethereal Junction',0,-247.290,-19.950,32.400,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17297498,'Ethereal_Junction','Ethereal Junction',0,-48.880,-3.970,-5.770,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17297498,'Ethereal_Junction','Ethereal Junction',0,-48.880,-3.970,-5.770,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17297499,'Ethereal_Junction','Ethereal Junction',0,161.260,4.000,-85.590,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17297500,'Mogball-Local','Mogball-Local',0,0.000,0.000,0.000,1,50,50,0,0,0,2,3,0x0000310300000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17297501,'Mog-Tablet','Mog-Tablet',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); @@ -19844,11 +19844,11 @@ INSERT INTO `npc_list` VALUES (17310117,'Planar_Rift','Planar Rift',0,94.000,-40 INSERT INTO `npc_list` VALUES (17310118,'Riftworn_Pyxis','Riftworn Pyxis',0,377.100,-40.000,246.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17310119,'Riftworn_Pyxis','Riftworn Pyxis',0,-116.900,-40.000,436.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17310120,'Riftworn_Pyxis','Riftworn Pyxis',0,94.100,-40.200,-459.000,1,50,50,0,4,100,2,3,0x0000C90300000000000000000000000000000000,2,'VOIDWATCH',1); -INSERT INTO `npc_list` VALUES (17310121,'HomePoint#1','Home Point #1',192,5.000,-42.000,526.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17310122,'HomePoint#2','Home Point #2',96,-312.000,-42.000,-422.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17310123,'HomePoint#3','Home Point #3',128,-499.000,-42.000,167.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17310124,'HomePoint#4','Home Point #4',0,500.000,-42.000,158.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17310125,'HomePoint#5','Home Point #5',32,305.000,-42.000,-427.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17310121,'HomePoint#1','Home Point #1',192,5.000,-42.000,526.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17310122,'HomePoint#2','Home Point #2',96,-312.000,-42.000,-422.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17310123,'HomePoint#3','Home Point #3',128,-499.000,-42.000,167.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17310124,'HomePoint#4','Home Point #4',0,500.000,-42.000,158.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17310125,'HomePoint#5','Home Point #5',32,305.000,-42.000,-427.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17310126,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17310127,'blank','',0,0.000,0.000,0.000,32768,50,50,0,0,0,6,2075,0x0000B80600000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17310128,'blank','',0,0.000,0.000,0.000,32768,50,50,0,0,0,6,2075,0x0000B90600000000000000000000000000000000,32,NULL,0); @@ -20859,7 +20859,7 @@ INSERT INTO `npc_list` VALUES (17339256,'Flit','Flit',0,0.000,0.000,0.000,0,50,5 INSERT INTO `npc_list` VALUES (17339257,'Veridical_Conflux','Veridical Conflux',199,239.183,-8.337,-248.447,1,50,50,0,0,96,0,3,0x0000110900000000000000000000000000000000,2,'WOTG',1); INSERT INTO `npc_list` VALUES (17339258,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17339259,'Kupofried','Kupofried',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x0000610900000000000000000000000000000000,32,'WOTG',1); -INSERT INTO `npc_list` VALUES (17339260,'HomePoint#1','Home Point #1',96,223.333,-13.427,-254.167,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); +INSERT INTO `npc_list` VALUES (17339260,'HomePoint#1','Home Point #1',96,223.333,-13.427,-254.167,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17339261,'Home_Point_#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17339262,'Home_Point_#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17339263,'Home_Point_#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); @@ -21444,11 +21444,11 @@ INSERT INTO `npc_list` VALUES (17363377,'Ramblix','Ramblix',192,20.000,-0.020,58 INSERT INTO `npc_list` VALUES (17363378,'Goblin_Footprint','Goblin Footprint',192,20.000,-0.020,58.500,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17363379,'Huge_Crystal','Huge Crystal',254,-63.469,-15.185,261.974,0,40,40,0,0,0,6,3,0x0000330000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17363380,'Geomagnetic_Fount','Geomagnetic Fount',0,294.324,-17.043,99.687,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17363381,'HomePoint#1','Home Point #1',0,109.000,-38.500,-147.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17363382,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17363383,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17363384,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17363385,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17363381,'HomePoint#1','Home Point #1',0,109.000,-38.500,-147.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17363382,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17363383,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17363384,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17363385,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17363386,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17363387,'Peculiar_Fissure','Peculiar Fissure',0,18.870,-31.900,80.860,1,50,50,0,0,112,0,3,0x0000340000000000000000000000000000000000,2,'SOA',1); INSERT INTO `npc_list` VALUES (17363388,'Sirius','Sirius',0,0.000,0.000,0.000,32768,50,50,0,0,120,6,2075,0x010002017D1078200830F8407350006000700000,32,NULL,0); @@ -22189,7 +22189,7 @@ INSERT INTO `npc_list` VALUES (17396265,'Fhelm_Jobeizat','Fhelm Jobeizat',0,0.00 INSERT INTO `npc_list` VALUES (17396266,'Ervok','Ervok',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100000800100A201F301F401F50276100700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17396267,'Nantoto','Nantoto',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100030600102B201F301F401F50E16025700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17396268,'Resume_Point','Resume Point',198,-222.937,0.249,-25.467,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'SOA',1); -INSERT INTO `npc_list` VALUES (17396269,'Geomantic_Reservoir','Geomantic Reservoir',0,-210.032,-16.000,95.255,1,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17396269,'Geomantic_Reservoir','Geomantic Reservoir',0,-210.032,-16.000,95.255,1,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17396270,'NPC[22e]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17396271,'NPC[22f]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17396272,'Survival_Guide','Survival Guide',192,-221.000,0.250,-13.000,21,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); @@ -22306,11 +22306,11 @@ INSERT INTO `npc_list` VALUES (17404415,'Grounds_Tome','Grounds Tome',181,73.088 INSERT INTO `npc_list` VALUES (17404416,'Grounds_Tome','Grounds Tome',130,-22.655,-19.768,-158.717,22,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17404417,'Grounds_Tome','Grounds Tome',128,-184.938,8.023,-7.066,16,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17404418,'Geomagnetic_Fount','Geomagnetic Fount',0,25.111,5.771,131.153,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17404419,'HomePoint#1','Home Point #1',0,88.000,-15.420,-217.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17404420,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17404421,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17404422,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17404423,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17404419,'HomePoint#1','Home Point #1',0,88.000,-15.420,-217.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17404420,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17404421,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17404422,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17404423,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17404424,'Ethereal_Junction','Ethereal Junction',0,20.160,9.830,68.530,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17404425,'Ethereal_Junction','Ethereal Junction',0,50.860,-18.210,-154.580,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17404426,'Ethereal_Junction','Ethereal Junction',0,-166.550,8.640,-92.400,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); @@ -22539,11 +22539,11 @@ INSERT INTO `npc_list` VALUES (17412800,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17412801,'noname','noname',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17412802,'Debug_NPC','Debug NPC',192,-6.500,0.000,-22.500,1,50,50,0,0,0,2,27,0x0000BD0800000000000000000000000000000000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17412803,'Debug_NPC','Debug NPC',128,-370.000,-52.000,-112.000,1,50,50,0,0,0,2,27,0x0000BD0800000000000000000000000000000000,32,'WOTG',1); -INSERT INTO `npc_list` VALUES (17412804,'HomePoint#1','Home Point #1',128,-554.000,-70.000,66.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17412805,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17412806,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17412807,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17412808,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17412804,'HomePoint#1','Home Point #1',128,-554.000,-70.000,66.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17412805,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17412806,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17412807,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17412808,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -- ------------------------------------------------------------ -- Throne Room [S] (Zone 156) @@ -22748,11 +22748,11 @@ INSERT INTO `npc_list` VALUES (17424568,'Grounds_Tome','Grounds Tome',155,-358.7 INSERT INTO `npc_list` VALUES (17424569,'Geomantic_Reservoir','Geomantic Reservoir',33,-358.800,-175.425,82.985,1,50,50,0,0,112,0,3,0x0000160900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17424570,'NPC[ba]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17424571,'NPC[bb]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17424572,'HomePoint#1','Home Point #1',64,-365.000,-176.500,-36.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17424573,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17424574,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17424575,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17424576,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17424572,'HomePoint#1','Home Point #1',64,-365.000,-176.500,-36.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17424573,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17424574,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17424575,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17424576,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -- ------------------------------------------------------------ -- Temple of Uggalepih (Zone 159) @@ -22938,7 +22938,7 @@ INSERT INTO `npc_list` VALUES (17429034,'Geomagnetic_Fount','Geomagnetic Fount', INSERT INTO `npc_list` VALUES (17429035,'Survival_Guide','Survival Guide',64,60.000,-8.000,57.000,1,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); INSERT INTO `npc_list` VALUES (17429036,'Ethereal_Junction','Ethereal Junction',0,225.750,0.040,-25.000,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17429037,'Ethereal_Junction','Ethereal Junction',0,-97.170,-0.100,-59.700,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17429038,'Ethereal_Junction','Ethereal Junction',0,-182.000,-0.100,19.800,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17429038,'Ethereal_Junction','Ethereal Junction',0,-182.000,-0.100,19.800,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17429039,'qm','???',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17429040,'Iroha','Iroha',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000910900000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17429041,'Tenzen','Tenzen',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000A20500000000000000000000000000000000,32,NULL,1); @@ -23038,11 +23038,11 @@ INSERT INTO `npc_list` VALUES (17433093,'Grounds_Tome','Grounds Tome',113,-56.39 INSERT INTO `npc_list` VALUES (17433094,'Grounds_Tome','Grounds Tome',138,57.655,15.104,-185.798,8,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17433095,'Grounds_Tome','Grounds Tome',114,-22.532,15.164,-12.900,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17433096,'Grounds_Tome','Grounds Tome',114,-22.381,35.108,-54.086,24,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); -INSERT INTO `npc_list` VALUES (17433097,'HomePoint#1','Home Point #1',128,-80.000,46.000,62.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17433098,'HomePoint#2','Home Point #2',224,183.000,34.470,-61.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17433099,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17433100,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17433101,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17433097,'HomePoint#1','Home Point #1',128,-80.000,46.000,62.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17433098,'HomePoint#2','Home Point #2',224,183.000,34.470,-61.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17433099,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17433100,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17433101,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17433102,'Ethereal_Junction','Ethereal Junction',0,37.510,36.000,-85.850,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17433103,'Ethereal_Junction','Ethereal Junction',0,29.230,36.000,-191.740,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17433104,'Ethereal_Junction','Ethereal Junction',0,-5.090,36.130,-364.300,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); @@ -23195,11 +23195,11 @@ INSERT INTO `npc_list` VALUES (17441101,'Kupignol','Kupignol',0,0.000,0.000,0.00 INSERT INTO `npc_list` VALUES (17441102,'Kupuckl','Kupuckl',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003C0900000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17441103,'Kupert','Kupert',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00003C0900000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17441104,'Geomagnetic_Fount','Geomagnetic Fount',0,-68.364,0.000,-18.744,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17441105,'HomePoint#1','Home Point #1',128,-554.000,-70.000,66.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17441106,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17441107,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17441108,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17441109,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17441105,'HomePoint#1','Home Point #1',128,-554.000,-70.000,66.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17441106,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17441107,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17441108,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17441109,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17441110,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17441111,'Gloom_Phantom','Gloom Phantom',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000450E00000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17441112,'Magh_Bihu','Magh Bihu',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000560C00000000000000000000000000000000,32,NULL,1); @@ -24874,9 +24874,9 @@ INSERT INTO `npc_list` VALUES (17498675,'Zeid','Zeid',0,0.000,0.000,0.000,0,50,5 INSERT INTO `npc_list` VALUES (17498676,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000F30A00000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17498677,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00000C0200000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17498678,'qm8','???',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17498679,'Ethereal_Junction','Ethereal Junction',0,-48.220,20.450,-201.570,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17498680,'Ethereal_Junction','Ethereal Junction',0,-99.620,10.160,-298.970,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17498681,'Ethereal_Junction','Ethereal Junction',0,-304.880,48.980,-255.230,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17498679,'Ethereal_Junction','Ethereal Junction',0,-48.220,20.450,-201.570,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17498680,'Ethereal_Junction','Ethereal Junction',0,-99.620,10.160,-298.970,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17498681,'Ethereal_Junction','Ethereal Junction',0,-304.880,48.980,-255.230,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); -- ------------------------------------------------------------ -- Ve'Lugannon Palace (Zone 177) @@ -25165,11 +25165,11 @@ INSERT INTO `npc_list` VALUES (17506830,'Grounds_Tome','Grounds Tome',22,789.096 INSERT INTO `npc_list` VALUES (17506831,'Grounds_Tome','Grounds Tome',100,810.813,99.999,619.022,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17506832,'Grounds_Tome','Grounds Tome',62,803.619,0.000,-63.633,23,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17506833,'Grounds_Tome','Grounds Tome',202,796.520,0.000,63.554,17,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); -INSERT INTO `npc_list` VALUES (17506834,'HomePoint#1','Home Point #1',0,-13.000,48.000,61.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17506835,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17506836,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17506837,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17506838,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17506834,'HomePoint#1','Home Point #1',0,-13.000,48.000,61.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17506835,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17506836,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17506837,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17506838,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -- ------------------------------------------------------------ -- Stellar Fulcrum (Zone 179) @@ -26513,9 +26513,9 @@ INSERT INTO `npc_list` VALUES (17576423,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17576424,'Palometa','Palometa',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0100011E00100720003000400150006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17576425,'Palometa','Palometa',0,0.000,0.000,0.000,1,50,50,0,0,0,2,27,0x0100011E04100720003000400150006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17576426,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000400200000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17576427,'qm9','???',0,92.272,-32.000,-64.676,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17576428,'qm8','???',0,105.275,-32.000,92.551,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17576429,'qm7','???',0,252.824,-32.000,-64.803,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17576427,'qm9','???',0,92.272,-32.000,-64.676,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); +INSERT INTO `npc_list` VALUES (17576428,'qm8','???',0,105.275,-32.000,92.551,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); +INSERT INTO `npc_list` VALUES (17576429,'qm7','???',0,252.824,-32.000,-64.803,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); INSERT INTO `npc_list` VALUES (17576430,'Grounds_Tome','Grounds Tome',128,418.000,-51.249,-95.000,8,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17576431,'Grounds_Tome','Grounds Tome',154,381.883,-34.283,-306.046,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17576432,'Grounds_Tome','Grounds Tome',247,216.062,-28.941,259.727,22,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); @@ -26684,9 +26684,9 @@ INSERT INTO `npc_list` VALUES (17584478,'NPC[15e]','',0,0.000,0.000,0.000,0,50,5 INSERT INTO `npc_list` VALUES (17584479,'Olavia','Olavia',178,379.638,-32.051,-0.533,1,50,50,0,0,0,2,27,0x010002020A101A201B301B401B50AD6000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17584480,'Ramblix','Ramblix',245,384.400,-32.706,-10.285,0,50,50,0,0,0,6,27,0x0000550000000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17584481,'Goblin_Footprint','Goblin Footprint',245,384.400,-32.706,-10.285,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17584482,'qm10','???',0,-83.391,-8.222,79.065,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17584483,'qm11','???',0,98.081,-38.750,-181.198,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17584484,'qm12','???',0,99.326,-0.126,-188.870,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17584482,'qm10','???',0,-83.391,-8.222,79.065,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); +INSERT INTO `npc_list` VALUES (17584483,'qm11','???',0,98.081,-38.750,-181.198,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); +INSERT INTO `npc_list` VALUES (17584484,'qm12','???',0,99.326,-0.126,-188.870,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); INSERT INTO `npc_list` VALUES (17584485,'GoalPoint','GoalPoint',222,201.350,-40.044,-61.758,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17584486,'GoalPoint','GoalPoint',7,-137.189,-0.204,359.342,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17584487,'GoalPoint','GoalPoint',29,-230.129,-1.900,228.929,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,1); @@ -26921,13 +26921,13 @@ INSERT INTO `npc_list` VALUES (17596834,'NPC[1a2]','',0,0.000,0.000,0.000,0,50,5 INSERT INTO `npc_list` VALUES (17596835,'Wanzo-Unzozo','Wanzo-Unzozo',188,-379.420,-9.749,383.312,1,50,50,0,0,0,2,27,0x01000205111011201130034003507B6000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17596836,'Ramblix','Ramblix',252,-382.632,-6.999,372.181,0,50,50,0,0,0,6,27,0x0000550000000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17596837,'Goblin_Footprint','Goblin Footprint',252,-382.632,-6.999,372.181,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17596838,'Lyco_Sparkles','',197,-176.759,-1.249,71.511,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,NULL,0); -INSERT INTO `npc_list` VALUES (17596839,'blank','',51,-96.663,-1.249,-168.503,32768,50,50,0,0,96,6,2075,0x0000160900000000000000000000000000000000,34,NULL,0); -INSERT INTO `npc_list` VALUES (17596840,'Lycopodium','Lycopodium',63,-96.753,-1.000,-167.332,32768,50,50,0,0,96,6,27,0x0000C70800000000000000000000000000000000,34,NULL,1); -INSERT INTO `npc_list` VALUES (17596841,'qm17','???',0,-354.945,-0.162,262.339,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17596842,'qm18','???',0,-13.425,-1.176,191.669,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17596843,'qm19','???',0,-50.175,6.264,251.669,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17596844,'qm20','???',0,-137.047,0.000,347.502,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17596838,'Lyco_Sparkles','',197,-176.759,-1.249,71.511,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'WOTG',0); +INSERT INTO `npc_list` VALUES (17596839,'blank','',51,-96.663,-1.249,-168.503,32768,50,50,0,0,96,6,2075,0x0000160900000000000000000000000000000000,34,'WOTG',0); +INSERT INTO `npc_list` VALUES (17596840,'Lycopodium','Lycopodium',63,-96.753,-1.000,-167.332,32768,50,50,0,0,96,6,27,0x0000C70800000000000000000000000000000000,34,'WOTG',1); +INSERT INTO `npc_list` VALUES (17596841,'qm17','???',0,-354.945,-0.162,262.339,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); +INSERT INTO `npc_list` VALUES (17596842,'qm18','???',0,-13.425,-1.176,191.669,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); +INSERT INTO `npc_list` VALUES (17596843,'qm19','???',0,-50.175,6.264,251.669,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); +INSERT INTO `npc_list` VALUES (17596844,'qm20','???',0,-137.047,0.000,347.502,1,50,50,0,0,0,0,3,0x0000350000000000000000000000000000000000,0,'ABYSSEA',0); INSERT INTO `npc_list` VALUES (17596845,'GoalPoint','GoalPoint',163,-299.813,14.749,339.978,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17596846,'GoalPoint','GoalPoint',61,-112.978,0.000,191.304,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17596847,'GoalPoint','GoalPoint',89,-181.152,-3.249,61.250,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); @@ -27223,11 +27223,11 @@ INSERT INTO `npc_list` VALUES (17613273,'eventnpc','',0,0.000,0.000,0.000,0,50,5 INSERT INTO `npc_list` VALUES (17613274,'eventnpc','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x01000B0501100120013001400150006000700000,32,NULL,0); INSERT INTO `npc_list` VALUES (17613275,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17613276,'Hazy_Rune','Hazy Rune',0,-105.712,-17.384,220.019,32769,50,50,0,0,96,0,515,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17613277,'HomePoint#1','Home Point #1',0,243.000,-24.500,62.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17613278,'HomePoint#2','Home Point #2',192,102.344,-0.113,270.362,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17613279,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17613280,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17613281,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17613277,'HomePoint#1','Home Point #1',0,243.000,-24.500,62.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17613278,'HomePoint#2','Home Point #2',192,102.344,-0.113,270.362,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17613279,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17613280,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17613281,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17613282,'Ethereal_Junction','Ethereal Junction',0,44.250,-15.440,150.360,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17613283,'Ethereal_Junction','Ethereal Junction',0,123.690,-23.420,60.670,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (17613284,'Ethereal_Junction','Ethereal Junction',0,-148.490,-15.860,-69.940,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',0); @@ -27346,14 +27346,14 @@ INSERT INTO `npc_list` VALUES (17617272,'Grounds_Tome','Grounds Tome',192,88.929 INSERT INTO `npc_list` VALUES (17617273,'Grounds_Tome','Grounds Tome',64,41.955,19.042,-24.446,15,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17617274,'Grounds_Tome','Grounds Tome',190,80.877,-0.927,264.380,8,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17617275,'Grounds_Tome','Grounds Tome',136,-62.097,18.241,32.841,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); -INSERT INTO `npc_list` VALUES (17617276,'HomePoint#1','Home Point #1',192,-63.000,50.000,81.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17617277,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17617278,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17617279,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17617280,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17617276,'HomePoint#1','Home Point #1',192,-63.000,50.000,81.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17617277,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17617278,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17617279,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17617280,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17617281,'Ethereal_Junction','Ethereal Junction',0,7.380,3.950,232.400,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17617282,'Ethereal_Junction','Ethereal Junction',0,-110.830,3.860,110.960,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17617283,'Ethereal_Junction','Ethereal Junction',0,-50.000,3.850,288.990,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17617283,'Ethereal_Junction','Ethereal Junction',0,-50.000,3.850,288.990,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17617284,'Survival_Guide','Survival Guide',192,89.000,0.260,-297.000,22,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); INSERT INTO `npc_list` VALUES (17617285,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17617286,'Mining_Point','Mining Point',0,99.666,2.909,-97.961,32769,50,50,0,0,96,0,3,0x0000780900000000000000000000000000000000,130,NULL,0); @@ -27676,13 +27676,13 @@ INSERT INTO `npc_list` VALUES (17629782,'Grounds_Tome','Grounds Tome',120,176.54 INSERT INTO `npc_list` VALUES (17629783,'Grounds_Tome','Grounds Tome',128,-743.408,-8.000,-558.954,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17629784,'Grounds_Tome','Grounds Tome',123,-904.736,16.432,-277.684,22,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17629785,'Geomagnetic_Fount','Geomagnetic Fount',0,-896.722,-1.698,-375.598,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17629786,'HomePoint#1','Home Point #1',192,-984.000,17.000,-289.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17629787,'HomePoint#2','Home Point #2',192,573.000,8.950,-499.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17629788,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17629789,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17629790,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17629786,'HomePoint#1','Home Point #1',192,-984.000,17.000,-289.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17629787,'HomePoint#2','Home Point #2',192,573.000,8.950,-499.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17629788,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17629789,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17629790,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17629791,'Ethereal_Junction','Ethereal Junction',0,813.660,1.940,-560.660,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17629792,'Ethereal_Junction','Ethereal Junction',0,778.500,2.020,-657.380,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17629792,'Ethereal_Junction','Ethereal Junction',0,778.500,2.020,-657.380,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17629793,'Ethereal_Junction','Ethereal Junction',0,822.080,-8.000,-382.990,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17629794,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17629795,'Raebrimm','Raebrimm',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000BD0300000000000000000000000000000000,32,NULL,1); @@ -27741,7 +27741,7 @@ INSERT INTO `npc_list` VALUES (17633354,'Goblin_Footprint','Goblin Footprint',45 INSERT INTO `npc_list` VALUES (17633355,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17633356,'qm1','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17633357,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17633358,'qm2','???',56,-545.184,1.855,-495.693,1,50,50,0,0,112,0,27,0x0000380500000000000000000000000000000000,34,NULL,0); +INSERT INTO `npc_list` VALUES (17633358,'qm2','???',56,-545.184,1.855,-495.693,1,50,50,0,0,112,0,27,0x0000380500000000000000000000000000000000,34,'WOTG',0); -- ------------------------------------------------------------ -- GM Home (Zone 210) @@ -28113,9 +28113,9 @@ INSERT INTO `npc_list` VALUES (17645904,'Renfred','Renfred',0,0.000,0.000,0.000, INSERT INTO `npc_list` VALUES (17645905,'Gorattz','Gorattz',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x0100010117100020093000400050006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17645906,'Bompupu','Bompupu',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x0100010117100020093000400050006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17645907,'Outcropping','Outcropping',0,-134.658,-11.366,-185.200,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'ASA',1); -INSERT INTO `npc_list` VALUES (17645908,'Ethereal_Junction','Ethereal Junction',0,-76.180,0.010,197.580,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17645909,'Ethereal_Junction','Ethereal Junction',0,-119.180,0.000,42.240,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17645910,'Ethereal_Junction','Ethereal Junction',0,-209.460,0.950,154.490,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17645908,'Ethereal_Junction','Ethereal Junction',0,-76.180,0.010,197.580,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17645909,'Ethereal_Junction','Ethereal Junction',0,-119.180,0.000,42.240,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17645910,'Ethereal_Junction','Ethereal Junction',0,-209.460,0.950,154.490,32769,50,50,0,5,116,0,3,0x00008F0900000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17645911,'Grounds_Tome','Grounds Tome',61,306.009,-40.276,56.899,1,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17645912,'Grounds_Tome','Grounds Tome',4,-57.749,-10.806,-129.892,21,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); INSERT INTO `npc_list` VALUES (17645913,'Grounds_Tome','Grounds Tome',8,-16.124,-0.597,-1.701,15,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'GROUNDS_TOMES',1); @@ -30080,7 +30080,7 @@ INSERT INTO `npc_list` VALUES (17719833,'Fashionista','Fashionista',63,22.600,2. INSERT INTO `npc_list` VALUES (17719834,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17719835,'Babban_Ny_Mheillea','Babban Ny Mheillea',64,-18.000,-0.500,38.000,0,50,50,0,0,0,6,27,0x0000C70800000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17719836,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2075,0x00003D0900000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17719837,'Mandragora_Assistant','Mandragora Assistant',224,70.300,1.150,-57.300,32769,50,50,0,0,32,0,1,0x00008F0B00000000000000000000000000000000,2,NULL,1); +INSERT INTO `npc_list` VALUES (17719837,'Mandragora_Assistant','Mandragora Assistant',224,70.300,1.150,-57.300,32769,50,50,0,0,32,0,1,0x00008F0B00000000000000000000000000000000,2,'TVR',1); INSERT INTO `npc_list` VALUES (17719838,'blank','',232,70.300,2.000,-57.300,0,50,50,0,0,96,0,2073,0x00001B0900000000000000000000000000000000,34,NULL,0); INSERT INTO `npc_list` VALUES (17719839,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17719840,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); @@ -32092,7 +32092,7 @@ INSERT INTO `npc_list` VALUES (17744043,'Festive_Moogle','Festive Moogle',187,46 INSERT INTO `npc_list` VALUES (17744044,'Bonanza_Moogle','Bonanza Moogle',128,153.084,8.500,-43.089,0,50,50,0,0,0,6,3,0x0000D50300000000000000000000000000000000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17744045,'Bonanza_Moogle','Bonanza Moogle',128,153.084,8.500,-43.089,1,50,50,0,0,0,2,3,0x0000D50300000000000000000000000000000000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17744046,'Dealer_Moogle','Dealer Moogle',129,153.359,8.499,-44.523,8,50,50,0,0,0,0,3,0x0000D50300000000000000000000000000000000,0,'WOTG',1); -INSERT INTO `npc_list` VALUES (17744047,'Dealer_Moogle','Dealer Moogle',129,153.500,8.499,-45.931,1,50,50,0,0,0,0,3,0x00003C0900000000000000000000000000000000,0,'WOTG',1); +INSERT INTO `npc_list` VALUES (17744047,'Dealer_Moogle','Dealer Moogle',129,153.500,8.499,-45.931,1,50,50,0,0,0,0,3,0x00003C0900000000000000000000000000000000,0,'TVR',1); INSERT INTO `npc_list` VALUES (17744048,'Synergy_Engineer','Synergy Engineer',192,37.700,0.700,-50.500,1,50,50,0,0,0,0,3,0x01000501771078200A300A400A50006000700000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17744049,'Synergy_Engineer','Synergy Engineer',0,33.667,7.500,-33.618,1,50,50,0,0,0,0,3,0x01000202771078200A300A400A50006000700000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17744050,'Synergy_Furnace','Synergy Furnace',192,35.200,7.500,-53.000,1,40,40,0,5,68,0,643,0x00002C0900000000000000000000000000000000,0,'WOTG',1); @@ -33287,7 +33287,7 @@ INSERT INTO `npc_list` VALUES (17756383,'blank','',0,-124.294,-5.000,137.167,327 INSERT INTO `npc_list` VALUES (17756384,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17756385,'Babban_Ny_Mheillea','Babban Ny Mheillea',64,14.000,-4.525,-50.000,0,50,50,0,0,0,6,27,0x0000C70800000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17756386,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2075,0x00003D0900000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17756387,'Mandragora_Assistant','Mandragora Assistant',96,-204.500,-0.850,-100.000,32769,50,50,0,0,32,0,1,0x00008F0B00000000000000000000000000000000,2,NULL,1); +INSERT INTO `npc_list` VALUES (17756387,'Mandragora_Assistant','Mandragora Assistant',96,-204.500,-0.850,-100.000,32769,50,50,0,0,32,0,1,0x00008F0B00000000000000000000000000000000,2,'TVR',1); INSERT INTO `npc_list` VALUES (17756388,'blank','',104,-204.500,0.000,-100.000,0,50,50,0,0,96,0,2073,0x00001B0900000000000000000000000000000000,34,NULL,0); INSERT INTO `npc_list` VALUES (17756389,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17756390,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); @@ -34576,7 +34576,7 @@ INSERT INTO `npc_list` VALUES (17772785,'Chacharoon','Chacharoon',0,27.000,-0.85 INSERT INTO `npc_list` VALUES (17772786,'NPC[f2]','',0,27.000,0.000,-20.000,1,50,50,0,0,8,2,2073,0x00001B0900000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17772787,'Lunar_Rabbit','',0,27.000,0.000,-18.500,1,50,50,0,0,8,2,2073,0x0000820900000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17772788,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2075,0x00003D0900000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17772789,'Mandragora_Assistant','Mandragora Assistant',128,-54.000,11.150,-28.000,32769,50,50,0,0,32,0,1,0x00008F0B00000000000000000000000000000000,2,NULL,1); +INSERT INTO `npc_list` VALUES (17772789,'Mandragora_Assistant','Mandragora Assistant',128,-54.000,11.150,-28.000,32769,50,50,0,0,32,0,1,0x00008F0B00000000000000000000000000000000,2,'TVR',1); INSERT INTO `npc_list` VALUES (17772790,'blank','',136,-54.000,12.000,-28.000,0,50,50,0,0,96,0,2073,0x00001B0900000000000000000000000000000000,34,NULL,0); INSERT INTO `npc_list` VALUES (17772791,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17772792,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); @@ -34632,11 +34632,11 @@ INSERT INTO `npc_list` VALUES (17772841,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17772842,'qm','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17772843,'Anastase','Anastase',34,-36.977,0.000,-38.532,1,50,50,0,0,0,0,27,0x01000E039510262002303A403A50116200700000,32,'SOA',1); INSERT INTO `npc_list` VALUES (17772844,'Proto-Waypoint','Proto-Waypoint',14,-37.819,0.000,-39.911,32769,50,50,0,0,32,0,3,0x0000740900000000000000000000000000000000,2,'SOA',1); -INSERT INTO `npc_list` VALUES (17772845,'HomePoint#1','Home Point #1',192,-6.000,3.000,0.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17772846,'HomePoint#2','Home Point #2',64,53.000,9.000,-57.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17772847,'HomePoint#3','Home Point #3',192,-67.000,6.000,-25.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17772848,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17772849,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17772845,'HomePoint#1','Home Point #1',192,-6.000,3.000,0.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17772846,'HomePoint#2','Home Point #2',64,53.000,9.000,-57.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17772847,'HomePoint#3','Home Point #3',192,-67.000,6.000,-25.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17772848,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17772849,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17772850,'Achieve_Master','Achieve Master',0,0.000,0.000,0.000,0,40,40,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17772851,'NPC[133]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17772852,'Jamal','Jamal',128,3.779,2.000,140.932,21,50,50,0,1,0,0,27,0x010007017710862000305E405E50006000700000,32,'SOA',1); @@ -34756,10 +34756,10 @@ INSERT INTO `npc_list` VALUES (17776724,'Ratoto','Ratoto',78,27.483,-0.999,-32.5 INSERT INTO `npc_list` VALUES (17776725,'Zekobi-Morokobi','Zekobi-Morokobi',170,41.258,-4.999,-74.105,14,50,50,0,0,0,0,27,0x01000D05141019200C3002400250056000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17776726,'Guide_Stone','Guide Stone',235,25.136,-3.000,-41.313,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17776727,'HomePoint#1','Home Point #1',8,-98.981,0.000,167.569,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17776728,'HomePoint#2','Home Point #2',128,32.000,-1.000,-44.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17776729,'HomePoint#3','Home Point #3',192,-52.000,1.000,16.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17776730,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17776731,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17776728,'HomePoint#2','Home Point #2',128,32.000,-1.000,-44.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17776729,'HomePoint#3','Home Point #3',192,-52.000,1.000,16.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17776730,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17776731,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17776732,'Indika','Indika',110,-39.504,7.999,99.632,7,50,50,0,0,0,0,27,0x010001011110122000300A400450006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17776733,'Ulesa','Ulesa',88,-37.028,7.999,94.895,6,50,50,0,0,0,0,27,0x010001041110122000300A400450006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17776734,'Wise_Wolf','Wise Wolf',241,-66.300,1.000,16.156,7,50,50,0,0,0,0,27,0x010001081110122000300A400450006000700000,32,NULL,1); @@ -34905,7 +34905,7 @@ INSERT INTO `npc_list` VALUES (17776873,'eventnpc','',0,0.000,0.000,0.000,0,50,5 INSERT INTO `npc_list` VALUES (17776874,'eventnpc','',0,-72.000,0.000,117.000,32769,50,50,0,4,68,2,2075,0x00000F0500000000000000000000000000000000,34,NULL,0); INSERT INTO `npc_list` VALUES (17776875,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17776876,'Burrow_Investigator','Burrow Investigator',95,7.675,0.200,73.105,21,50,50,0,0,0,0,3,0x0100010800105E205E305E405E50006000700000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17776877,'Inconspicuous_Door','Inconspicuous Door',0,-15.360,0.003,68.850,32769,50,50,0,0,0,0,1539,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17776877,'Inconspicuous_Door','Inconspicuous Door',0,-15.360,0.003,68.850,32769,50,50,0,0,0,0,1539,0x0000340000000000000000000000000000000000,0,'WOTG',0); INSERT INTO `npc_list` VALUES (17776878,'Synergy_Engineer','Synergy Engineer',240,-13.289,0.000,17.251,1,50,50,0,0,0,2,3,0x01000401771078200A300A400A50006000700000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17776879,'Synergy_Engineer','Synergy Engineer',110,-43.686,0.000,51.859,1,50,50,0,0,0,2,3,0x01000702771078200A300A400A50006000700000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17776880,'Synergy_Furnace','Synergy Furnace',240,-14.957,0.000,20.116,1,40,40,0,5,68,2,643,0x00002C0900000000000000000000000000000000,0,'WOTG',1); @@ -35073,10 +35073,10 @@ INSERT INTO `npc_list` VALUES (17780870,'Audee','Audee',144,-86.651,-0.100,-196. INSERT INTO `npc_list` VALUES (17780871,'Fephita','Fephita',149,-89.284,-0.100,-200.190,1,50,50,0,0,0,0,27,0x0000CE0000000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17780872,'Guide_Stone','Guide Stone',16,19.886,-3.000,47.000,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17780873,'HomePoint#1','Home Point #1',167,-98.588,0.000,-183.416,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17780874,'HomePoint#2','Home Point #2',160,18.000,-1.000,54.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17780875,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17780876,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17780877,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17780874,'HomePoint#2','Home Point #2',160,18.000,-1.000,54.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17780875,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17780876,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17780877,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17780878,'Alrauverat','Alrauverat',176,-102.110,0.000,-183.887,8,50,50,0,0,0,0,27,0x01000903141019200C3002400250056000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17780879,'Zauko','Zauko',57,-3.911,0.000,14.234,7,50,50,0,1,0,0,27,0x01000308141019200C3002400250006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17780880,'Vhana_Ehgaklywha','Vhana Ehgaklywha',86,-122.853,0.000,-195.605,4036,13,50,0,1,0,2,4194331,0x0100070700101620163016401650006000700000,32,NULL,1); @@ -35140,10 +35140,10 @@ INSERT INTO `npc_list` VALUES (17780937,'NPC05','NPC05',0,0.000,0.000,0.000,0,50 INSERT INTO `npc_list` VALUES (17780938,'qm4','???',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x00002E0900000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17780939,'qm','???',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17780940,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17780941,'Liki_Steligho','Liki Steligho',4,43.101,3.899,-49.841,15,50,50,0,1,0,0,27,0x01000F0717100920153015401550006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17780942,'Treasure_Coffer_Tenshodo','Treasure Coffer',149,41.169,3.899,-51.005,1,50,50,0,0,0,0,3,0x0000C80300000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17780941,'Liki_Steligho','Liki Steligho',4,43.101,3.899,-49.841,15,50,50,0,1,0,0,27,0x01000F0717100920153015401550006000700000,32,'WOTG',1); +INSERT INTO `npc_list` VALUES (17780942,'Treasure_Coffer_Tenshodo','Treasure Coffer',149,41.169,3.899,-51.005,1,50,50,0,0,0,0,3,0x0000C80300000000000000000000000000000000,0,'WOTG',0); INSERT INTO `npc_list` VALUES (17780943,'Chatnachoq','Chatnachoq',68,-53.457,5.899,-109.398,7,50,50,0,0,0,0,27,0x0000D70300000000000000000000000000000000,32,'WOTG',1); -INSERT INTO `npc_list` VALUES (17780944,'Maze_Mongers_Shopfront','Maze Mongers Shopfront',160,-90.092,-0.100,-208.202,21,50,50,0,0,64,0,283,0x00001E0900000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17780944,'Maze_Mongers_Shopfront','Maze Mongers Shopfront',160,-90.092,-0.100,-208.202,21,50,50,0,0,64,0,283,0x00001E0900000000000000000000000000000000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17780945,'TABULA-MAKER','TABULA-MAKER',160,-91.592,-0.100,-208.202,15,50,50,0,0,0,2,2075,0x0000CD0700000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17780946,'Goldagrik','Goldagrik',100,-51.781,5.900,-110.828,8,50,50,0,0,0,0,27,0x0000D70300000000000000000000000000000000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17780947,'Duplidoc','Duplidoc',100,-46.763,5.899,-112.031,7,50,50,0,0,0,0,27,0x0000D60300000000000000000000000000000000,32,NULL,1); @@ -35156,9 +35156,9 @@ INSERT INTO `npc_list` VALUES (17780953,'Duplidoc','Duplidoc',101,-46.763,5.899, INSERT INTO `npc_list` VALUES (17780954,'Duplidoc','Duplidoc',101,-46.763,5.899,-112.031,7,50,50,0,0,8,0,2051,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17780955,'Duplidoc','Duplidoc',101,-46.763,5.899,-112.031,8,50,50,0,0,8,0,2051,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17780956,'Duplidoc','Duplidoc',101,-46.763,5.899,-112.031,8,50,50,0,0,8,0,2051,0x0000340000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17780957,'Duplidoc','Duplidoc',101,-46.763,5.899,-112.031,7,50,50,0,0,8,0,2051,0x0000340000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17780957,'Duplidoc','Duplidoc',101,-46.763,5.899,-112.031,7,50,50,0,0,8,0,2051,0x0000340000000000000000000000000000000000,0,'WOTG',1); INSERT INTO `npc_list` VALUES (17780958,'Chimh_Dlesbah','Chimh Dlesbah',213,-71.995,0.000,-115.882,8,50,50,34,0,0,0,27,0x00002A0300000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17780959,'Darcia','Darcia',25,-38.617,-1.000,-14.506,1,50,50,0,0,0,0,27,0x0000700300000000000000000000000000000000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17780959,'Darcia','Darcia',25,-38.617,-1.000,-14.506,1,50,50,0,0,0,0,27,0x0000700300000000000000000000000000000000,32,'SOA',1); INSERT INTO `npc_list` VALUES (17780960,'Waypoint','Waypoint',18,-34.922,0.000,-30.966,32769,50,50,0,0,32,0,3,0x0000740900000000000000000000000000000000,2,'SOA',1); INSERT INTO `npc_list` VALUES (17780961,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17780962,'Talib','Talib',0,0.000,0.000,0.000,0,50,50,0,0,120,6,2075,0x01000B0117100920003015401550006000700000,32,NULL,1); @@ -35181,7 +35181,7 @@ INSERT INTO `npc_list` VALUES (17780978,'Porter_Moogle','Porter Moogle',64,-18.3 INSERT INTO `npc_list` VALUES (17780979,'NPC[f3]','',0,0.000,0.000,0.000,0,40,40,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17780980,'Voidwatch_Purveyor','Voidwatch Purveyor',24,-113.500,0.000,-174.500,21,50,50,0,0,0,0,3,0x01000C06141019200C3002400250006000700000,0,'VOIDWATCH',1); INSERT INTO `npc_list` VALUES (17780981,'Domenic','Domenic',227,32.776,-0.100,-15.281,15,50,50,0,1,0,0,27,0x0100040100100420043011401150006000700000,32,'ABYSSEA',1); -INSERT INTO `npc_list` VALUES (17780982,'Nantoto','Nantoto',119,-46.399,0.000,-49.532,8,50,50,0,1,0,0,27,0x01000306741065208E308E401450006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17780982,'Nantoto','Nantoto',119,-46.399,0.000,-49.532,8,50,50,0,1,0,0,27,0x01000306741065208E308E401450006000700000,32,'SOA',1); INSERT INTO `npc_list` VALUES (17780983,'qm','???',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000CA0300000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17780984,'Rolandienne','Rolandienne',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x01000B0400100C2019300C401950006000700000,32,'SOA',1); INSERT INTO `npc_list` VALUES (17780985,'Isakoth','Isakoth',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x010009010010172083300E401250006000700000,32,NULL,1); @@ -35199,7 +35199,7 @@ INSERT INTO `npc_list` VALUES (17780996,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17780997,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17780998,'Sweepstox','Sweepstox',85,14.700,0.000,8.480,32776,50,50,0,0,0,0,27,0x0000550000000000000000000000000000000000,32,'DAILY_TALLY',1); INSERT INTO `npc_list` VALUES (17780999,'Treasure_Coffer_Gobbie','Treasure Coffer',85,13.700,0.000,9.310,1,50,50,0,4,36,0,2051,0x0000C20300000000000000000000000000000000,0,'DAILY_TALLY',0); -INSERT INTO `npc_list` VALUES (17781000,'Greyson','Greyson',151,-92.000,-0.255,-165.500,21,50,50,0,0,0,0,27,0x0100000100100020003000400050006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (17781000,'Greyson','Greyson',151,-92.000,-0.255,-165.500,21,50,50,0,0,0,0,27,0x0100000100100020003000400050006000700000,32,'ROV',1); INSERT INTO `npc_list` VALUES (17781001,'Kavivian','Kavivian',22,-58.540,6.000,-70.500,1,50,50,72,0,0,2,27,0x0100050274104121C73041414151006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17781002,'Cassie','Cassie',22,-58.300,5.300,-70.670,32769,50,50,0,0,0,2,27,0x0000650B00000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17781003,'Relolo','Relolo',212,-58.840,6.000,-71.040,1,50,50,73,0,0,2,27,0x01000C06871130200030B04012500A6300700000,32,NULL,1); @@ -35334,10 +35334,10 @@ INSERT INTO `npc_list` VALUES (17784886,'Challoux','Challoux',127,-17.581,7.999, INSERT INTO `npc_list` VALUES (17784887,'Caffie','Caffie',67,-4.511,7.999,1.699,1,50,50,0,0,0,0,27,0x0000CE0000000000000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17784888,'Narsha','Narsha',67,0.099,7.999,1.338,21,50,50,0,1,0,0,27,0x01000D04151008200A3015401850006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17784889,'HomePoint#1','Home Point #1',90,37.076,0.000,8.831,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17784890,'HomePoint#2','Home Point #2',64,-155.000,-1.000,-4.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17784891,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17784892,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17784893,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17784890,'HomePoint#2','Home Point #2',64,-155.000,-1.000,-4.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17784891,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17784892,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17784893,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17784894,'Leffquen','Leffquen',60,39.481,0.000,-10.841,8,50,50,0,0,0,0,27,0x0100000214100A20143008401450006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17784895,'Marnie','Marnie',208,-105.043,0.000,-7.575,1,50,50,0,1,0,0,27,0x0100000200100B20143014401350006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17784896,'Zona_Shodhun','Zona Shodhun',151,-175.110,-4.999,-4.207,21,50,50,0,0,0,0,27,0x0100031D00100420003000400350036003700000,32,NULL,1); @@ -35448,12 +35448,12 @@ INSERT INTO `npc_list` VALUES (17785000,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17785001,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0000460100000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17785002,'Mystic_Retriever','Mystic Retriever',153,-143.793,-1.000,-6.404,32769,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'SOA',1); INSERT INTO `npc_list` VALUES (17785003,'Mewk_Chorosap','Mewk Chorosap',192,-89.000,0.000,-9.800,1,50,50,0,0,0,0,27,0x0100030779101720003002400250006000700000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17785004,'SynthesisFocus','Synthesis Focuser II',192,-92.750,0.000,-10.000,21,50,50,0,0,96,0,3,0x00001F0900000000000000000000000000000000,2,NULL,1); +INSERT INTO `npc_list` VALUES (17785004,'SynthesisFocus','Synthesis Focuser II',192,-92.750,0.000,-10.000,21,50,50,0,0,96,0,3,0x00001F0900000000000000000000000000000000,2,'ROV',1); INSERT INTO `npc_list` VALUES (17785005,'NPC[ad]','',192,-92.750,-2.000,-10.000,32768,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17785006,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17785007,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,6,27,0x0100000000100020003000400050006000700000,32,NULL,0); INSERT INTO `npc_list` VALUES (17785008,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17785009,'Munitions_Moogle','Munitions Moogle',160,-167.730,11.000,85.530,15,50,50,0,0,0,0,259,0x0000520000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17785009,'Munitions_Moogle','Munitions Moogle',160,-167.730,11.000,85.530,15,50,50,0,0,0,0,259,0x0000520000000000000000000000000000000000,0,'ROV',1); INSERT INTO `npc_list` VALUES (17785010,'blank','',48,-154.454,-1.000,6.826,1,50,50,0,0,112,0,2051,0x0000AE0900000000000000000000000000000000,130,NULL,0); INSERT INTO `npc_list` VALUES (17785011,'Tales_Beginning','Tales\' Beginning',48,-154.454,-1.000,6.826,1,50,50,0,1,112,0,3,0x0000810900000000000000000000000000000000,130,NULL,1); @@ -35488,10 +35488,10 @@ INSERT INTO `npc_list` VALUES (17788952,'Nomad_Moogle','Nomad Moogle',37,4.607,8 INSERT INTO `npc_list` VALUES (17788953,'Nomad_Moogle','Nomad Moogle',47,-4.166,8.033,12.476,14,50,50,0,1,0,0,3,0x00008A0500000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17788954,'Nomad_Moogle','Nomad Moogle',88,-15.754,8.000,15.132,7,50,50,0,1,0,0,3,0x00008A0500000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17788955,'HomePoint#1','Home Point #1',243,-29.276,0.000,-76.585,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17788956,'HomePoint#2','Home Point #2',64,-21.000,8.130,110.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17788957,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17788958,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17788959,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17788956,'HomePoint#2','Home Point #2',64,-21.000,8.130,110.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17788957,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17788958,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17788959,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17788960,'blank','',0,0.000,0.000,0.000,1,50,50,0,0,0,2,2051,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17788961,'NPC[21]','',0,0.000,0.000,0.000,0,40,40,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17788962,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0); @@ -35554,13 +35554,13 @@ INSERT INTO `npc_list` VALUES (17789018,'Proto-Waypoint','Proto-Waypoint',43,15. INSERT INTO `npc_list` VALUES (17789019,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17789020,'Weya_Salmacha','Weya Salmacha',0,0.000,0.000,0.000,0,50,50,0,1,0,2,2075,0x010007076910CC20663066406650006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17789021,'Poko','Poko',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2075,0x0000170800000000000000000000000000000000,32,NULL,1); -INSERT INTO `npc_list` VALUES (17789022,'Jourdenaux','Jourdenaux',232,-27.100,8.440,36.000,7,50,50,6,0,0,0,27,0x01000F0300100020083000400850006000700E80,32,NULL,1); +INSERT INTO `npc_list` VALUES (17789022,'Jourdenaux','Jourdenaux',232,-27.100,8.440,36.000,7,50,50,6,0,0,0,27,0x01000F0300100020083000400850006000700E80,32,'ROV',1); INSERT INTO `npc_list` VALUES (17789023,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17789024,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); INSERT INTO `npc_list` VALUES (17789025,'Mei','Mei',209,-37.235,7.999,54.467,1,50,50,47,0,0,2,27,0x01000A0279107F20003000400050006000700000,32,'TOAU',1); INSERT INTO `npc_list` VALUES (17789026,'blank','',178,29.353,-12.711,-132.838,32769,50,50,0,0,0,2,2075,0x0000470100000000000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17789027,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2075,0x00003D0900000000000000000000000000000000,32,NULL,0); -INSERT INTO `npc_list` VALUES (17789028,'Mandragora_Assistant','Mandragora Assistant',144,-18.000,7.150,91.000,32769,50,50,0,0,32,0,1,0x00008F0B00000000000000000000000000000000,2,NULL,1); +INSERT INTO `npc_list` VALUES (17789028,'Mandragora_Assistant','Mandragora Assistant',144,-18.000,7.150,91.000,32769,50,50,0,0,32,0,1,0x00008F0B00000000000000000000000000000000,2,'ROV',1); INSERT INTO `npc_list` VALUES (17789029,'blank','',152,-18.000,8.000,91.000,0,50,50,0,0,96,0,2073,0x00001B0900000000000000000000000000000000,34,NULL,0); INSERT INTO `npc_list` VALUES (17789030,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17789031,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0100000100100020003000400050006000700000,32,NULL,0); @@ -35608,10 +35608,10 @@ INSERT INTO `npc_list` VALUES (17789072,'Achieve_Master','Achieve Master',0,0.00 INSERT INTO `npc_list` VALUES (17789073,'NPC[91]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17789074,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (17789075,'Survival_Guide','Survival Guide',64,-3.500,-2.502,-95.000,1,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); -INSERT INTO `npc_list` VALUES (17789076,'Veridical_Conflux','Veridical Conflux',0,0.600,8.000,120.000,32769,50,50,0,0,112,0,3,0x0000110900000000000000000000000000000000,2,NULL,1); +INSERT INTO `npc_list` VALUES (17789076,'Veridical_Conflux','Veridical Conflux',0,0.600,8.000,120.000,32769,50,50,0,0,112,0,3,0x0000110900000000000000000000000000000000,2,'ROV',1); INSERT INTO `npc_list` VALUES (17789077,'Layer_Reserve','Layer Reserve',0,0.000,0.000,0.000,1,50,50,0,0,112,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17789078,'Layer_Reserve','Layer Reserve',0,0.000,0.000,0.000,1,50,50,0,0,112,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17789079,'qm5','???',0,3.000,8.000,120.000,1,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,NULL,0); +INSERT INTO `npc_list` VALUES (17789079,'qm5','???',0,3.000,8.000,120.000,1,50,50,0,0,96,0,27,0x0000160900000000000000000000000000000000,34,'ROV',0); INSERT INTO `npc_list` VALUES (17789080,'Pilgrimage_Moogle','Pilgrimage Moogle',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17789081,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,112,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17789082,'Raebrimm','Raebrimm',0,0.000,0.000,0.000,0,50,50,0,0,0,6,2075,0x0000BD0300000000000000000000000000000000,32,NULL,1); @@ -35667,10 +35667,10 @@ INSERT INTO `npc_list` VALUES (17793066,'Lombaria','Lombaria',66,27.458,-14.558, INSERT INTO `npc_list` VALUES (17793067,'Quelpia','Quelpia',96,6.300,-6.558,7.882,7,50,50,0,1,0,0,25,0x0100090400100A20123015400B50006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17793068,'Chutarmire','Chutarmire',19,-5.200,-6.558,6.782,7,50,50,0,1,0,0,25,0x0100020313101220123015400B50006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17793069,'HomePoint#1','Home Point #1',70,36.117,-10.729,34.635,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17793070,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17793071,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17793072,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17793073,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17793070,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17793071,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17793072,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17793073,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17793074,'_6w0','Door:Mayor\'s Residence',0,-59.892,-12.724,1.859,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17793075,'_6w1','Door:Fishermen\'s Guild',0,-20.250,-8.727,7.649,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17793076,'_6w2','Door:Weavers\' Guild',0,21.092,-8.728,7.649,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); @@ -35799,10 +35799,10 @@ INSERT INTO `npc_list` VALUES (17797158,'Kotan-Purutan','Kotan-Purutan',200,40.3 INSERT INTO `npc_list` VALUES (17797159,'Pekuku','Pekuku',193,4.701,-7.857,39.627,1,50,50,0,1,0,0,29,0x0100060600100A20003008400850006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17797160,'Ludwig','Ludwig',91,9.735,-8.122,56.780,21,50,50,0,1,0,0,29,0x01000D0112100720003008400850006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17797161,'HomePoint#1','Home Point #1',192,-12.750,-15.791,87.286,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17797162,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17797163,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17797164,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17797165,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17797162,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17797163,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17797164,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17797165,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17797166,'_6x0','Door:"Sailors\' Stay"',0,20.000,-17.360,77.208,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17797167,'_6x1','Door:"Sailors\' Stay"',0,20.000,-9.358,57.208,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17797168,'_6x2','Door:Goldsmiths\' Guild',0,-30.854,-17.357,66.854,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); @@ -36053,10 +36053,10 @@ INSERT INTO `npc_list` VALUES (17801302,'Sulo_Mouzho','Sulo Mouzho',7,-120.720,- INSERT INTO `npc_list` VALUES (17801303,'Kobhi_Sarhigamya','Kobhi Sarhigamya',30,-115.290,-11.000,-22.609,1,50,50,0,1,0,0,27,0x0100080707101020103010401050006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17801304,'Tio_Moshroca','Tio Moshroca',184,-119.805,-10.000,-52.967,21,50,50,0,1,0,0,27,0x01000C0707100720073007400750006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17801305,'HomePoint#1','Home Point #1',164,77.654,-13.000,-94.457,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17801306,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17801307,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17801308,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17801309,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17801306,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17801307,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17801308,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17801309,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17801310,'_6y0','Door:Celodehki\'s B&B',0,43.250,-12.880,-35.000,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17801311,'_6y1','Door:M & P\'s Market',0,43.250,-12.874,-53.000,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17801312,'_6y2','Door:Wahcondalo\'s Res.',0,83.250,-15.871,-113.000,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); @@ -36216,10 +36216,10 @@ INSERT INTO `npc_list` VALUES (17809457,'Nomad_Moogle','Nomad Moogle',134,-46.26 INSERT INTO `npc_list` VALUES (17809458,'_700','Oaken Door',0,101.969,-8.554,-12.000,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17809459,'_701','Oaken Door',0,45.902,-7.746,5.469,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17809460,'HomePoint#1','Home Point #1',251,-26.910,0.296,-47.164,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17809461,'HomePoint#2','Home Point #2',128,-66.000,-5.200,54.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17809462,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17809463,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17809464,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17809461,'HomePoint#2','Home Point #2',128,-66.000,-5.200,54.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17809462,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17809463,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17809464,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17809465,0x0F,'',0,-105.547,2.000,-4.824,32769,50,50,18,0,0,2,2051,0x0400000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17809466,'Ryoma','Ryoma',116,-26.276,0.530,-8.323,8,50,50,0,1,0,0,27,0x0100080100100420043004400450006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17809467,'NPC[3b]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); @@ -36928,9 +36928,9 @@ INSERT INTO `npc_list` VALUES (17825906,'Moogle','Moogle',0,0.000,0.000,0.000,0, INSERT INTO `npc_list` VALUES (17825907,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (17825908,'HomePoint#1','Home Point #1',128,-84.435,3.999,-32.303,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17825909,'HomePoint#2','Home Point #2',32,31.950,0.000,-164.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17825910,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17825911,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17825912,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17825910,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17825911,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17825912,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17825913,'Debadle-Levadle','Debadle-Levadle',176,17.273,0.999,-13.796,8,50,50,34,0,0,0,27,0x0000290300000000000000000000000000000000,32,'SOA',1); INSERT INTO `npc_list` VALUES (17825914,'Auction_Counter','Auction Counter',32,-68.160,2.800,-90.160,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (17825915,'Auction_Counter','Auction Counter',224,-80.780,2.800,-90.150,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',0); @@ -37301,9 +37301,9 @@ INSERT INTO `npc_list` VALUES (17829974,'_75h','',0,101.500,-44.000,-64.000,0,50 INSERT INTO `npc_list` VALUES (17829975,'Maudilyonne','Maudilyonne',222,-63.952,-0.649,59.250,1,50,50,34,0,0,0,27,0x0000CD0300000000000000000000000000000000,32,'SOA',1); INSERT INTO `npc_list` VALUES (17829976,'HomePoint#1','Home Point #1',0,-51.857,-0.150,59.877,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17829977,'HomePoint#2','Home Point #2',96,-51.500,-0.150,-96.500,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17829978,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17829979,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17829980,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17829978,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17829979,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17829980,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17829981,'NPC[5d]','',0,0.000,0.000,0.000,0,40,40,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17829982,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,3,0,0,0,2,27,0x0000520000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (17829983,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,3,0x0000520000000000000000000000000000000000,0,'SOA',0); @@ -38671,10 +38671,10 @@ INSERT INTO `npc_list` VALUES (17855099,'blank','',0,0.000,0.000,0.000,0,50,50,0 INSERT INTO `npc_list` VALUES (17855100,'Well_Kept_Cache','Well-Kept Cache',0,133.497,0.683,-213.516,32769,50,50,0,0,96,0,3,0x0000340000000000000000000000000000000000,2,NULL,1); INSERT INTO `npc_list` VALUES (17855101,'blank','',0,0.000,0.000,0.000,1,50,50,0,0,0,2,2051,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17855102,'HomePoint#1','Home Point #1',64,-420.000,0.000,-62.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17855103,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17855104,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17855105,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17855106,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17855103,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17855104,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17855105,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17855106,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17855107,'Veil','Veil',0,380.030,-3.924,302.288,1,50,50,0,0,112,0,3,0x0000340000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17855108,'qm','???',0,260.829,3.852,230.416,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (17855109,'qm','???',0,381.021,-3.025,-14.603,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',0); @@ -39278,10 +39278,10 @@ INSERT INTO `npc_list` VALUES (17871218,'Waypoint','Waypoint',0,9.240,23.000,161 INSERT INTO `npc_list` VALUES (17871219,'Waypoint','Waypoint',0,-229.942,3.567,364.512,32769,50,50,0,0,32,0,3,0x0000740900000000000000000000000000000000,2,'SOA',1); INSERT INTO `npc_list` VALUES (17871220,'blank','',0,0.000,0.000,0.000,1,50,50,0,0,0,2,2051,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17871221,'HomePoint#1','Home Point #1',192,210.000,20.300,315.000,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17871222,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17871223,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17871224,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17871225,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17871222,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17871223,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17871224,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17871225,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17871226,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17871227,'Arciela','Arciela',0,0.000,0.000,0.000,0,50,50,0,4,4,6,27,0x00008C0A00000000000000000000000000000000,32,'SOA',1); INSERT INTO `npc_list` VALUES (17871228,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,3,0x0000340000000000000000000000000000000000,0,NULL,0); @@ -41266,10 +41266,10 @@ INSERT INTO `npc_list` VALUES (17928256,'Ramblix','Ramblix',125,11.322,0.052,-9. INSERT INTO `npc_list` VALUES (17928257,'Goblin_Footprint','Goblin Footprint',125,11.322,0.052,-9.181,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (17928258,'_7t0','',0,-20.000,-45.000,125.000,1,50,50,9,0,0,0,4099,0x0200000000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17928259,'HomePoint#1','Home Point #1',0,4.000,-0.190,8.500,1,50,50,0,0,0,0,3,0x0000330000000000000000000000000000000000,0,'SOA',1); -INSERT INTO `npc_list` VALUES (17928260,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17928261,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17928262,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); -INSERT INTO `npc_list` VALUES (17928263,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17928260,'HomePoint#2','Home Point #2',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17928261,'HomePoint#3','Home Point #3',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17928262,'HomePoint#4','Home Point #4',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); +INSERT INTO `npc_list` VALUES (17928263,'HomePoint#5','Home Point #5',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000330000000000000000000000000000000000,0,'SOA',1); INSERT INTO `npc_list` VALUES (17928264,'UnityMaster','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17928265,'Odyssean_Passage','Odyssean Passage',44,-26.299,-0.560,-1.302,32769,50,50,0,0,0,0,3,0x0000750900000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17928266,'Ruspix','Ruspix',112,-36.000,0.300,-0.320,7,50,50,0,0,0,0,27,0x0000550000000000000000000000000000000000,32,NULL,1); From 716edd3d20d201ef9e003fddde84542e682358a9 Mon Sep 17 00:00:00 2001 From: Critical Date: Sun, 5 Jul 2026 17:03:07 -0600 Subject: [PATCH 36/59] [lua,sql,cpp][module] Summoner era modules and adjustments --- modules/abyssea/sql/job_adjustments.sql | 8 + .../pets/abyssea_avatar_bloodpacts.lua | 297 ++++++++++++++++++ .../lua/actions/abilities/pets/hastega.lua | 37 +++ modules/era/lua/effects/level_restriction.lua | 26 ++ .../era/lua/globals/job_utils/summoner.lua | 55 ++++ modules/era/lua/globals/pets.lua | 22 ++ modules/rov/sql/job_adjustments.sql | 33 ++ settings/default/main.lua | 1 + src/map/utils/battleutils.cpp | 2 +- 9 files changed, 480 insertions(+), 1 deletion(-) create mode 100644 modules/era/lua/actions/abilities/pets/abyssea_avatar_bloodpacts.lua create mode 100644 modules/era/lua/actions/abilities/pets/hastega.lua create mode 100644 modules/era/lua/effects/level_restriction.lua create mode 100644 modules/era/lua/globals/job_utils/summoner.lua create mode 100644 modules/era/lua/globals/pets.lua diff --git a/modules/abyssea/sql/job_adjustments.sql b/modules/abyssea/sql/job_adjustments.sql index 6e3a314111d..314af3faa40 100644 --- a/modules/abyssea/sql/job_adjustments.sql +++ b/modules/abyssea/sql/job_adjustments.sql @@ -251,6 +251,14 @@ UPDATE abilities SET recastTime = 900 WHERE name = 'deep_breathing'; -- Deep Breathing merit: Revert value to 150 seconds per level UPDATE merits SET value = 150 WHERE name = 'deep_breathing'; +----------------------------------- +-- Summoner +----------------------------------- + +-- Summoning Magic Casting Time Merit: Repurposed to Spirit MP cost merit. Revert merit value from 5 to 1 per level. +-- Source: https://forum.square-enix.com/ffxi/threads/22099-March-27-2012-%28JST%29-Version-Update +UPDATE merits SET value = 1 WHERE name = 'summoning_magic_cast_time'; + ----------------------------------- -- Corsair ----------------------------------- diff --git a/modules/era/lua/actions/abilities/pets/abyssea_avatar_bloodpacts.lua b/modules/era/lua/actions/abilities/pets/abyssea_avatar_bloodpacts.lua new file mode 100644 index 00000000000..9d4de6f0664 --- /dev/null +++ b/modules/era/lua/actions/abilities/pets/abyssea_avatar_bloodpacts.lua @@ -0,0 +1,297 @@ +----------------------------------- +-- Reverts blood pacts to no longer have a duration based on summoning magic. +-- Source: https://www.bg-wiki.com/ffxi/Version_Update_(09/08/2010) +----------------------------------- +require('modules/module_utils') +----------------------------------- + +local moduleName = 'abyssea_avatar_bloodpacts' + +if xi.module.isContentEnabled('ABYSSEA') then + return { name = moduleName } +end + +local m = Module:new(moduleName) + +----------------------------------- +-- Shining Ruby +----------------------------------- +m:addOverride('xi.actions.abilities.pets.shining_ruby.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 180 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + target:delStatusEffect(xi.effect.SHINING_RUBY) + target:addStatusEffect(xi.effect.SHINING_RUBY, { power = 1, duration = duration, origin = pet }) + + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.SKILL_GAIN_EFFECT_2) + else + petskill:setMsg(xi.msg.basic.JA_GAIN_EFFECT) + end + + return xi.effect.SHINING_RUBY +end) + +----------------------------------- +-- Hastega +----------------------------------- +m:addOverride('xi.actions.abilities.pets.hastega.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 180 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + -- Reverts Garuda's Hastega to use 102/1024 or 9.96% + local typeEffect = xi.effect.HASTE + if target:addStatusEffect(typeEffect, { power = 996, duration = duration, origin = pet }) then + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.SKILL_GAIN_EFFECT_2) + else + petskill:setMsg(xi.msg.basic.JA_GAIN_EFFECT) + end + else + petskill:setMsg(xi.msg.basic.JA_NO_EFFECT_2) + return + end + + return typeEffect +end) + +----------------------------------- +-- Crimson Howl +----------------------------------- +m:addOverride('xi.actions.abilities.pets.crimson_howl.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 60 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + local typeEffect = xi.effect.WARCRY + if target:addStatusEffect(typeEffect, { power = 9, duration = duration, origin = pet }) then + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.SKILL_GAIN_EFFECT_2) + else + petskill:setMsg(xi.msg.basic.JA_GAIN_EFFECT) + end + else + petskill:setMsg(xi.msg.basic.JA_NO_EFFECT_2) + return + end + + return typeEffect +end) + +----------------------------------- +-- Frost Armor +----------------------------------- +m:addOverride('xi.actions.abilities.pets.frost_armor.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 180 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + local typeEffect = xi.effect.ICE_SPIKES + target:delStatusEffect(typeEffect) + + if target:addStatusEffect(typeEffect, { power = 15, duration = duration, origin = pet }) then + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.SKILL_GAIN_EFFECT_2) + else + petskill:setMsg(xi.msg.basic.JA_GAIN_EFFECT) + end + else + petskill:setMsg(xi.msg.basic.JA_NO_EFFECT_2) + return + end + + return typeEffect +end) + +----------------------------------- +-- Rolling Thunder +----------------------------------- +m:addOverride('xi.actions.abilities.pets.rolling_thunder.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 120 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + local magicskill = xi.data.skillLevel.getSkillCap(target:getMainLvl(), xi.skillRank.A_PLUS) + local potency = 3 + 6 * magicskill / 100 + + if magicskill > 200 then + potency = 5 + 5 * magicskill / 100 + end + + xi.mobskills.mobBuffMove(target, xi.effect.ENTHUNDER, potency, 0, duration) + + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.JA_RECEIVES_EFFECT_2) + else + petskill:setMsg(xi.msg.basic.JA_RECEIVES_EFFECT) + end + + return xi.effect.ENTHUNDER +end) + +----------------------------------- +-- Lightning Armor +----------------------------------- +m:addOverride('xi.actions.abilities.pets.lightning_armor.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 180 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + local typeEffect = xi.effect.SHOCK_SPIKES + target:delStatusEffect(typeEffect) + + if target:addStatusEffect(typeEffect, { power = 15, duration = duration, origin = pet }) then + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.SKILL_GAIN_EFFECT_2) + else + petskill:setMsg(xi.msg.basic.JA_GAIN_EFFECT) + end + else + petskill:setMsg(xi.msg.basic.JA_NO_EFFECT_2) + return + end + + return typeEffect +end) + +----------------------------------- +-- Ecliptic Growl +----------------------------------- +m:addOverride('xi.actions.abilities.pets.ecliptic_growl.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 180 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + local moonCycle = getVanadielMoonCycle() + + local cycleBuffs = + { + [xi.moonCycle.NEW_MOON] = 1, + [xi.moonCycle.LESSER_WAXING_CRESCENT] = 2, + [xi.moonCycle.GREATER_WAXING_CRESCENT] = 3, + [xi.moonCycle.FIRST_QUARTER] = 4, + [xi.moonCycle.LESSER_WAXING_GIBBOUS] = 5, + [xi.moonCycle.GREATER_WAXING_GIBBOUS] = 6, + [xi.moonCycle.FULL_MOON] = 7, + [xi.moonCycle.GREATER_WANING_GIBBOUS] = 6, + [xi.moonCycle.LESSER_WANING_GIBBOUS] = 5, + [xi.moonCycle.THIRD_QUARTER] = 4, + [xi.moonCycle.GREATER_WANING_CRESCENT] = 3, + [xi.moonCycle.LESSER_WANING_CRESCENT] = 2, + } + + local buffValue = cycleBuffs[moonCycle] + + target:delStatusEffect(xi.effect.STR_BOOST) + target:delStatusEffect(xi.effect.DEX_BOOST) + target:delStatusEffect(xi.effect.VIT_BOOST) + target:delStatusEffect(xi.effect.AGI_BOOST) + target:delStatusEffect(xi.effect.MND_BOOST) + target:delStatusEffect(xi.effect.CHR_BOOST) + + target:addStatusEffect(xi.effect.STR_BOOST, { power = buffValue, duration = duration, origin = pet }) + target:addStatusEffect(xi.effect.DEX_BOOST, { power = buffValue, duration = duration, origin = pet }) + target:addStatusEffect(xi.effect.VIT_BOOST, { power = buffValue, duration = duration, origin = pet }) + target:addStatusEffect(xi.effect.AGI_BOOST, { power = 8 - buffValue, duration = duration, origin = pet }) + target:addStatusEffect(xi.effect.INT_BOOST, { power = 8 - buffValue, duration = duration, origin = pet }) + target:addStatusEffect(xi.effect.MND_BOOST, { power = 8 - buffValue, duration = duration, origin = pet }) + target:addStatusEffect(xi.effect.CHR_BOOST, { power = 8 - buffValue, duration = duration, origin = pet }) + + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.STATUS_BOOST) + else + petskill:setMsg(xi.msg.basic.STATUS_BOOST_2) + end + + return 0 +end) + +----------------------------------- +-- Ecliptic Howl +----------------------------------- +m:addOverride('xi.actions.abilities.pets.ecliptic_howl.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 180 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + local moonCycle = getVanadielMoonCycle() + + local cycleBuffs = + { + [xi.moonCycle.NEW_MOON] = 1, + [xi.moonCycle.LESSER_WAXING_CRESCENT] = 5, + [xi.moonCycle.GREATER_WAXING_CRESCENT] = 9, + [xi.moonCycle.FIRST_QUARTER] = 13, + [xi.moonCycle.LESSER_WAXING_GIBBOUS] = 17, + [xi.moonCycle.GREATER_WAXING_GIBBOUS] = 21, + [xi.moonCycle.FULL_MOON] = 25, + [xi.moonCycle.GREATER_WANING_GIBBOUS] = 21, + [xi.moonCycle.LESSER_WANING_GIBBOUS] = 17, + [xi.moonCycle.THIRD_QUARTER] = 13, + [xi.moonCycle.GREATER_WANING_CRESCENT] = 9, + [xi.moonCycle.LESSER_WANING_CRESCENT] = 5, + } + + local buffValue = cycleBuffs[moonCycle] + + target:delStatusEffect(xi.effect.ACCURACY_BOOST) + target:delStatusEffect(xi.effect.EVASION_BOOST) + target:addStatusEffect(xi.effect.ACCURACY_BOOST, { power = buffValue, duration = duration, origin = pet }) + target:addStatusEffect(xi.effect.EVASION_BOOST, { power = 25 - buffValue, duration = duration, origin = pet }) + + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.ACC_EVA_BOOST) + else + petskill:setMsg(xi.msg.basic.ACC_EVA_BOOST_2) + end + + return 0 +end) + +----------------------------------- +-- Noctoshield +----------------------------------- +m:addOverride('xi.actions.abilities.pets.noctoshield.onPetAbility', function(target, pet, petskill, summoner, action) + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + local duration = 180 + + if target:addStatusEffect(xi.effect.PHALANX, { power = 13, duration = duration, origin = pet }) then + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.SKILL_GAIN_EFFECT_2) + else + petskill:setMsg(xi.msg.basic.JA_GAIN_EFFECT) + end + else + petskill:setMsg(xi.msg.basic.JA_NO_EFFECT_2) + return + end + + return xi.effect.PHALANX +end) + +----------------------------------- +-- Dream Shroud +----------------------------------- +m:addOverride('xi.actions.abilities.pets.dream_shroud.onPetAbility', function(target, pet, petskill, summoner, action) + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + local duration = 180 + local hour = VanadielHour() + local buffvalue = math.abs(12 - hour) + 1 + + target:delStatusEffect(xi.effect.MAGIC_ATK_BOOST) + target:delStatusEffect(xi.effect.MAGIC_DEF_BOOST) + target:addStatusEffect(xi.effect.MAGIC_ATK_BOOST, { power = buffvalue, duration = duration, origin = pet }) + target:addStatusEffect(xi.effect.MAGIC_DEF_BOOST, { power = 14 - buffvalue, duration = duration, origin = pet }) + + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.JA_RECEIVES_MAB_MDB) + else + petskill:setMsg(xi.msg.basic.JA_RECEIVES_MAB_MDB_2) + end + + return 0 +end) + +return m diff --git a/modules/era/lua/actions/abilities/pets/hastega.lua b/modules/era/lua/actions/abilities/pets/hastega.lua new file mode 100644 index 00000000000..4cba3efeb8e --- /dev/null +++ b/modules/era/lua/actions/abilities/pets/hastega.lua @@ -0,0 +1,37 @@ +----------------------------------- +-- Reverts Hastega to no longer have a duration based on summoning magic and reduces haste power +-- Source: https://www.bg-wiki.com/ffxi/Version_Update_(04/08/2009) +----------------------------------- +require('modules/module_utils') +----------------------------------- + +local moduleName = 'hastega' + +if xi.module.isContentEnabled('WOTG') then + return { name = moduleName } +end + +local m = Module:new(moduleName) + +m:addOverride('xi.actions.abilities.pets.hastega.onPetAbility', function(target, pet, petskill, summoner, action) + local duration = 180 + + xi.job_utils.summoner.onUseBloodPact(target, petskill, summoner, action) + + -- Reverts Garuda's Hastega to use 102/1024 or 9.96% + local typeEffect = xi.effect.HASTE + if target:addStatusEffect(typeEffect, { power = 996, duration = duration, origin = pet }) then + if target:getID() == action:getPrimaryTargetID() then + petskill:setMsg(xi.msg.basic.SKILL_GAIN_EFFECT_2) + else + petskill:setMsg(xi.msg.basic.JA_GAIN_EFFECT) + end + else + petskill:setMsg(xi.msg.basic.JA_NO_EFFECT_2) + return + end + + return typeEffect +end) + +return m diff --git a/modules/era/lua/effects/level_restriction.lua b/modules/era/lua/effects/level_restriction.lua new file mode 100644 index 00000000000..e9427216fb4 --- /dev/null +++ b/modules/era/lua/effects/level_restriction.lua @@ -0,0 +1,26 @@ +----------------------------------- +-- Module: Elemental Spirit Perpetuation Cost (level restriction) +-- Reverts perpetuation cost which is recalculated on level restriction if a summoned elemental spirit is present. +-- Source: https://forum.square-enix.com/ffxi/threads/22099-March-27-2012-%28JST%29-Version-Update +----------------------------------- +require('modules/module_utils') +----------------------------------- +local moduleName = 'era_effect_level_restriction' + +if xi.module.isContentEnabled('ABYSSEA') then + return { name = moduleName } +end + +local m = Module:new(moduleName) + +m:addOverride('xi.effects.level_restriction.onEffectGain', function(target, effect) + super(target, effect) + xi.job_utils.summoner.applySpiritPerpetuationCost(target) +end) + +m:addOverride('xi.effects.level_restriction.onEffectLose', function(target, effect) + super(target, effect) + xi.job_utils.summoner.applySpiritPerpetuationCost(target) +end) + +return m diff --git a/modules/era/lua/globals/job_utils/summoner.lua b/modules/era/lua/globals/job_utils/summoner.lua new file mode 100644 index 00000000000..6056e3fa2ae --- /dev/null +++ b/modules/era/lua/globals/job_utils/summoner.lua @@ -0,0 +1,55 @@ +----------------------------------- +-- Module: Summoner spirit perpetuation cost helpers +----------------------------------- +local moduleName = 'era_job_utils_summoner' + +xi.job_utils.summoner = xi.job_utils.summoner or {} + +-- Perpetuation cost breakpoints for elemental spirits, in ascending level order. +-- Source: https://forum.square-enix.com/ffxi/threads/22099-March-27-2012-%28JST%29-Version-Update +local spiritPerpTresholds = +{ + { level = 5, cost = 2 }, + { level = 9, cost = 3 }, + { level = 14, cost = 4 }, + { level = 18, cost = 5 }, + { level = 23, cost = 6 }, + { level = 25, cost = 7 }, + { level = 27, cost = 8 }, + { level = 32, cost = 9 }, + { level = 36, cost = 10 }, + { level = 40, cost = 11 }, + { level = 45, cost = 12 }, + { level = 49, cost = 13 }, + { level = 54, cost = 14 }, + { level = 58, cost = 15 }, + { level = 63, cost = 16 }, + { level = 67, cost = 17 }, + { level = 72, cost = 18 }, +} + +local function getSpiritPerpetuationCost(level) + for _, threshold in ipairs(spiritPerpTresholds) do + if level < threshold.level then + return threshold.cost + end + end + + return spiritPerpTresholds[#spiritPerpTresholds].cost +end + +xi.job_utils.summoner.applySpiritPerpetuationCost = function(caster) + local pet = caster:getPet() + if + pet and + pet:getPetID() >= xi.petId.FIRE_SPIRIT and + pet:getPetID() <= xi.petId.DARK_SPIRIT + then + local baseCost = getSpiritPerpetuationCost(pet:getMainLvl()) + local meritReduction = caster:getMerit(xi.merit.SUMMONING_MAGIC_CAST_TIME) + + caster:setMod(xi.mod.AVATAR_PERPETUATION, math.max(0, baseCost - meritReduction)) + end +end + +return { name = moduleName } diff --git a/modules/era/lua/globals/pets.lua b/modules/era/lua/globals/pets.lua new file mode 100644 index 00000000000..ef3bce669e0 --- /dev/null +++ b/modules/era/lua/globals/pets.lua @@ -0,0 +1,22 @@ +----------------------------------- +-- Module: Elemental Spirit Perpetuation Cost +-- Reverts perpetuation cost which is calculated on pet spawn and set with a AVATAR_PERPETUATION mod on the player. +-- Source: https://forum.square-enix.com/ffxi/threads/22099-March-27-2012-%28JST%29-Version-Update +----------------------------------- +require('modules/module_utils') +----------------------------------- +local moduleName = 'era_globals_pets' + +if xi.module.isContentEnabled('ABYSSEA') then + return { name = moduleName } +end + +local m = Module:new(moduleName) + +m:addOverride('xi.pet.spawnPet', function(caster, petID, state, target) + super(caster, petID, state, target) + + xi.job_utils.summoner.applySpiritPerpetuationCost(caster) +end) + +return m diff --git a/modules/rov/sql/job_adjustments.sql b/modules/rov/sql/job_adjustments.sql index ee8ccd31f40..f857e2241f5 100644 --- a/modules/rov/sql/job_adjustments.sql +++ b/modules/rov/sql/job_adjustments.sql @@ -123,3 +123,36 @@ UPDATE abilities SET recastId = 158 WHERE name = 'spirit_jump'; -- High Jump / Soul Jump: Revert to share a cooldown UPDATE abilities SET recastId = 159 WHERE name = 'high_jump'; UPDATE abilities SET recastId = 159 WHERE name = 'soul_jump'; + +------------------------------------ +-- Summoner +------------------------------------ + +-- Bloodpact: Ward AoE skills: Revert radius from 14 to 10 +-- TODO: Could use more verification on exact range value +-- Source: https://forum.square-enix.com/ffxi/threads/46531-Mar-26-2015-%28JST%29-Version-Update +UPDATE pet_skills SET pet_skill_radius = 10 WHERE pet_skill_name IN ( + 'shining_ruby', + 'glittering_ruby', + 'healing_ruby_ii', + 'soothing_ruby', + 'ecliptic_growl', + 'ecliptic_howl', + 'heavenward_howl', + 'crimson_howl', + 'inferno_howl', + 'earthen_ward', + 'spring_water', + 'soothing_current', + 'whispering_wind', + 'hastega', + 'aerial_armor', + 'fleet_wind', + 'hastega_ii', + 'frost_armor', + 'crystal_blessing', + 'rolling_thunder', + 'lightning_armor', + 'noctoshield', + 'dream_shroud' +); diff --git a/settings/default/main.lua b/settings/default/main.lua index 84f47de500b..b3cad35e22a 100644 --- a/settings/default/main.lua +++ b/settings/default/main.lua @@ -156,6 +156,7 @@ xi.settings.main = USE_ADOULIN_WEAPON_SKILL_CHANGES = true, -- true/false. Change to toggle new Adoulin weapon skill damage calculations DISABLE_PARTY_EXP_PENALTY = false, -- true/false. ENABLE_IMMUNOBREAK = true, -- true/false. Allow/Disallow immunobreaks to happen. + ENABLE_SMN_MAGIC_CAST_TIME_MERIT = true, -- true/false. If false, the Summoning Magic Casting Time merit has no effect on cast time (pre-2012 behavior). -- TRUSTS ENABLE_TRUST_CASTING = 1, diff --git a/src/map/utils/battleutils.cpp b/src/map/utils/battleutils.cpp index e625d711059..8f0b1d9f38f 100644 --- a/src/map/utils/battleutils.cpp +++ b/src/map/utils/battleutils.cpp @@ -5493,7 +5493,7 @@ timer::duration CalculateSpellCastTime(CBattleEntity* PEntity, CMagicState* PMag { auto amount = 1000ms * PEntity->getMod(Mod::SUMMONING_MAGIC_CAST); - if (PEntity->objtype == TYPE_PC) + if (PEntity->objtype == TYPE_PC && settings::get("main.ENABLE_SMN_MAGIC_CAST_TIME_MERIT")) { auto* PChar = static_cast(PEntity); amount += std::chrono::floor(base * 0.01 * PChar->PMeritPoints->GetMeritValue(MERIT_SUMMONING_MAGIC_CAST_TIME, PChar)); From c76adfe30fdd78c2f017a1be812b207d8c5bda52 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Fri, 10 Jul 2026 03:40:25 +0200 Subject: [PATCH 37/59] Fix maat testimony check --- scripts/quests/jeuno/LB05_1_Shattering_Stars.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/quests/jeuno/LB05_1_Shattering_Stars.lua b/scripts/quests/jeuno/LB05_1_Shattering_Stars.lua index d8bb40efdc1..971471cbfb6 100644 --- a/scripts/quests/jeuno/LB05_1_Shattering_Stars.lua +++ b/scripts/quests/jeuno/LB05_1_Shattering_Stars.lua @@ -100,7 +100,7 @@ quest.sections = local properTestimony = xi.item.WARRIORS_TESTIMONY + playerJob - 1 if - npcUtil.tradeHasExactly(trade, properTestimony) and + trade:getItemQty(properTestimony) > 0 and quest:getVar(player, 'Prog') == 0 then return quest:progressEvent(64, playerJob) From 25da384ae30a9c5795ae2324281259ab6817d100 Mon Sep 17 00:00:00 2001 From: taylorleary Date: Thu, 9 Jul 2026 22:23:44 -0400 Subject: [PATCH 38/59] [sql] Audit some synthesis content tags (501-550) --- sql/synth_recipes.sql | 100 +++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/sql/synth_recipes.sql b/sql/synth_recipes.sql index b54fb638529..3fd207cd99c 100644 --- a/sql/synth_recipes.sql +++ b/sql/synth_recipes.sql @@ -2731,7 +2731,7 @@ INSERT INTO `synth_recipes` VALUES (40014,0,0,0,0,0,0,5,0,0,0,4098,4240,850,0,0, INSERT INTO `synth_recipes` VALUES (40015,0,0,0,0,0,0,5,0,0,0,4099,4241,672,824,850,850,0,0,0,0,14169,14170,14170,14170,1,1,1,1,'Vagabond\'s Boots',NULL); INSERT INTO `synth_recipes` VALUES (40016,0,0,0,0,0,0,6,0,0,0,4099,4241,672,850,850,850,0,0,0,0,12952,12971,12971,12971,1,1,1,1,'Leather Highboots',NULL); INSERT INTO `synth_recipes` VALUES (40017,0,0,0,0,0,0,7,0,0,0,4099,4241,817,856,856,856,856,856,0,0,13594,13599,13599,13599,1,1,1,1,'Rabbit Mantle',NULL); -INSERT INTO `synth_recipes` VALUES (40018,0,0,0,0,0,0,8,0,0,0,4099,4241,850,16691,0,0,0,0,0,0,17495,17496,17496,17496,1,1,1,1,'San d\'Orian Cesti',NULL); +INSERT INTO `synth_recipes` VALUES (40018,0,0,0,0,0,0,8,0,0,0,4099,4241,850,16691,0,0,0,0,0,0,17495,17496,17496,17496,1,1,1,1,'San d\'Orian Cesti','ROTZ'); INSERT INTO `synth_recipes` VALUES (40019,0,0,0,0,0,0,8,0,0,0,4099,4241,824,850,850,0,0,0,0,0,12696,12784,12784,12784,1,1,1,1,'Leather Gloves',NULL); INSERT INTO `synth_recipes` VALUES (40020,0,0,0,0,0,0,9,0,0,0,4099,4241,824,824,850,850,0,0,0,0,12824,12908,12908,12908,1,1,1,1,'Leather Trousers',NULL); INSERT INTO `synth_recipes` VALUES (40021,0,0,0,0,0,0,10,0,0,0,4099,4241,8862,0,0,0,0,0,0,0,12568,12568,12568,12568,1,1,1,1,'Leather Vest','SOA'); @@ -2880,7 +2880,7 @@ INSERT INTO `synth_recipes` VALUES (42515,0,0,0,0,0,49,56,0,0,0,4099,4241,823,82 INSERT INTO `synth_recipes` VALUES (42516,0,0,0,28,0,0,56,0,0,0,4099,4241,662,850,853,853,0,0,0,0,12444,13835,13835,13835,1,1,1,1,'Raptor Helm',NULL); INSERT INTO `synth_recipes` VALUES (42517,0,0,0,0,0,0,56,0,0,0,4099,4241,851,12336,0,0,0,0,0,0,12366,12367,12367,12367,1,1,1,1,'Royal Squire\'s Shield +1','ROTZ'); INSERT INTO `synth_recipes` VALUES (42518,0,0,0,0,50,48,57,0,0,0,4099,4241,663,673,752,828,828,851,12569,0,13703,13710,13710,13710,1,1,1,1,'Brigandine',NULL); -INSERT INTO `synth_recipes` VALUES (42519,0,0,0,0,0,0,57,0,0,0,4099,4241,672,850,850,1296,0,0,0,0,14166,14167,14167,14167,1,1,1,1,'Desert Boots',NULL); +INSERT INTO `synth_recipes` VALUES (42519,0,0,0,0,0,0,57,0,0,0,4099,4241,672,850,850,1296,0,0,0,0,14166,14167,14167,14167,1,1,1,1,'Desert Boots','ROTZ'); INSERT INTO `synth_recipes` VALUES (42520,0,0,0,0,0,0,57,0,0,0,4099,4241,2423,12828,0,0,0,0,0,0,15651,15651,15651,15651,1,1,1,1,'Ice Trousers','TOAU'); INSERT INTO `synth_recipes` VALUES (42521,0,0,0,0,0,0,57,0,0,0,4099,4241,853,12699,0,0,0,0,0,0,12700,12795,12795,12795,1,1,1,1,'Raptor Gloves',NULL); INSERT INTO `synth_recipes` VALUES (42522,0,0,0,0,0,0,58,0,0,0,4103,4245,695,2123,4509,0,0,0,0,0,2124,2124,2124,2124,1,1,1,1,'Catoblepas Leather','COP'); @@ -2889,7 +2889,7 @@ INSERT INTO `synth_recipes` VALUES (42524,0,2018,0,0,0,0,58,0,0,0,4103,4245,635, INSERT INTO `synth_recipes` VALUES (42525,0,0,0,0,0,0,58,0,0,0,4099,4241,850,853,853,0,0,0,0,0,12572,13727,13727,13727,1,1,1,1,'Raptor Jerkin',NULL); INSERT INTO `synth_recipes` VALUES (42526,0,0,0,50,0,38,59,0,0,0,4099,4241,664,664,680,820,826,828,850,855,13703,13710,13710,13710,1,1,1,1,'Brigandine',NULL); INSERT INTO `synth_recipes` VALUES (42527,0,0,0,0,0,8,59,0,0,0,4099,4241,826,848,853,0,0,0,0,0,12995,13050,13050,13050,1,1,1,1,'Moccasins',NULL); -INSERT INTO `synth_recipes` VALUES (42528,0,0,0,0,0,0,60,0,0,0,4099,4241,817,869,1275,0,0,0,0,0,13645,13646,13646,13646,1,1,1,1,'Amemet Mantle',NULL); +INSERT INTO `synth_recipes` VALUES (42528,0,0,0,0,0,0,60,0,0,0,4099,4241,817,869,1275,0,0,0,0,0,13645,13646,13646,13646,1,1,1,1,'Amemet Mantle','ROTZ'); INSERT INTO `synth_recipes` VALUES (42529,0,0,0,0,0,0,60,0,0,0,4099,4241,2423,12700,0,0,0,0,0,0,14990,14990,14990,14990,1,1,1,1,'Blizzard Gloves','TOAU'); INSERT INTO `synth_recipes` VALUES (42530,0,0,0,0,0,0,60,0,0,0,4098,4240,8872,0,0,0,0,0,0,0,13546,13546,13546,13546,1,1,1,1,'Hard Leather Ring','ROV'); INSERT INTO `synth_recipes` VALUES (43001,0,0,0,0,0,0,61,0,0,0,4103,4245,695,861,4509,0,0,0,0,0,855,855,855,855,1,1,1,1,'Tiger Leather',NULL); @@ -2932,7 +2932,7 @@ INSERT INTO `synth_recipes` VALUES (43037,0,0,0,0,0,32,70,0,46,0,4099,4241,837,8 INSERT INTO `synth_recipes` VALUES (43038,0,0,0,0,0,0,70,0,0,0,4097,4239,8874,0,0,0,0,0,0,0,13591,13591,13591,13591,1,1,1,1,'Behemoth Mantle','ROV'); INSERT INTO `synth_recipes` VALUES (43501,0,2018,0,0,0,0,70,0,0,0,4103,4245,635,635,635,860,860,860,2129,4509,862,862,862,862,3,3,3,3,'Behem. Leather','COP'); INSERT INTO `synth_recipes` VALUES (43502,0,0,0,0,0,45,71,0,0,0,4099,4241,823,829,853,855,855,0,0,0,12988,14081,14081,14081,1,1,1,1,'Pigaches',NULL); -INSERT INTO `synth_recipes` VALUES (43503,0,0,0,0,0,0,71,0,0,0,4103,4245,695,863,4509,0,0,0,0,0,506,506,506,506,1,1,1,1,'Coeurl Leather',NULL); +INSERT INTO `synth_recipes` VALUES (43503,0,0,0,0,0,0,71,0,0,0,4103,4245,695,863,4509,0,0,0,0,0,506,506,506,506,1,1,1,1,'Coeurl Leather','ROTZ'); INSERT INTO `synth_recipes` VALUES (43504,0,0,0,0,0,45,71,0,0,0,4099,4241,823,853,855,855,2340,0,0,0,15706,15707,15707,15707,1,1,1,1,'Silken Pigaches','TOAU'); INSERT INTO `synth_recipes` VALUES (43505,0,0,0,0,0,0,71,0,0,0,4103,4245,635,863,4509,0,0,0,0,0,506,506,506,506,1,1,1,1,'Coeurl Leather',NULL); INSERT INTO `synth_recipes` VALUES (43506,0,0,0,0,0,0,71,0,0,0,4099,4241,1978,12311,0,0,0,0,0,0,15071,15071,15071,15071,1,1,1,1,'Spartan Hoplon','COP'); @@ -2941,7 +2941,7 @@ INSERT INTO `synth_recipes` VALUES (43508,0,0,0,0,0,0,71,0,0,0,4103,4245,635,251 INSERT INTO `synth_recipes` VALUES (43509,0,2018,0,0,0,0,71,0,0,0,4103,4245,635,635,635,2129,2512,2512,2512,4509,2530,2530,2530,2530,3,3,3,3,'Lynx Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (43510,0,0,0,0,0,0,71,0,0,0,4103,4245,695,2512,4509,0,0,0,0,0,2530,2530,2530,2530,1,1,1,1,'Lynx Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (43511,0,0,0,0,0,0,71,0,0,0,4099,4241,680,855,855,0,0,0,0,0,13198,13232,13232,13232,1,1,1,1,'Swordbelt',NULL); -INSERT INTO `synth_recipes` VALUES (43512,0,0,0,0,0,0,72,0,0,0,4099,4241,506,16385,0,0,0,0,0,0,16389,17473,17473,17473,1,1,1,1,'Coeurl Cesti',NULL); +INSERT INTO `synth_recipes` VALUES (43512,0,0,0,0,0,0,72,0,0,0,4099,4241,506,16385,0,0,0,0,0,0,16389,17473,17473,17473,1,1,1,1,'Coeurl Cesti','ROTZ'); INSERT INTO `synth_recipes` VALUES (43513,0,0,0,0,0,0,72,0,0,0,4103,4245,695,2121,4509,0,0,0,0,0,2122,2122,2122,2122,1,1,1,1,'Ovinnik Leather','COP'); INSERT INTO `synth_recipes` VALUES (43514,0,0,0,0,0,0,72,0,0,0,4103,4245,635,2121,4509,0,0,0,0,0,2122,2122,2122,2122,1,1,1,1,'Ovinnik Leather','COP'); INSERT INTO `synth_recipes` VALUES (43515,0,0,0,0,0,0,73,0,0,0,4103,4245,695,876,4509,0,0,0,0,0,877,877,877,877,1,1,1,1,'Manta Leather','COP'); @@ -2956,7 +2956,7 @@ INSERT INTO `synth_recipes` VALUES (43523,0,0,0,38,0,26,75,0,0,0,4099,4241,666,8 INSERT INTO `synth_recipes` VALUES (43524,0,0,0,0,0,0,75,0,0,0,4097,4239,820,861,0,0,0,0,0,0,13589,13602,13602,13602,1,1,1,1,'Tiger Mantle',NULL); INSERT INTO `synth_recipes` VALUES (43525,0,0,0,0,0,0,75,0,0,0,4097,4239,820,2518,0,0,0,0,0,0,16231,16232,16232,16232,1,1,1,1,'Smilodon Mantle','WOTG'); INSERT INTO `synth_recipes` VALUES (43526,0,0,0,41,44,0,76,0,0,0,4096,4238,654,654,716,745,2122,0,0,0,18750,18751,18751,18751,1,1,1,1,'Black Adargas','TOAU'); -INSERT INTO `synth_recipes` VALUES (43527,0,0,0,0,0,0,76,0,0,0,4099,4241,855,12990,0,0,0,0,0,0,14157,14158,14158,14158,1,1,1,1,'Tactician Magician\'s Pigaches +1',NULL); +INSERT INTO `synth_recipes` VALUES (43527,0,0,0,0,0,0,76,0,0,0,4099,4241,855,12990,0,0,0,0,0,0,14157,14158,14158,14158,1,1,1,1,'Tactician Magician\'s Pigaches +1','ROTZ'); INSERT INTO `synth_recipes` VALUES (43528,0,0,0,0,0,0,76,0,0,0,4099,4241,2152,12852,0,0,0,0,0,0,15653,15654,15654,15654,1,1,1,1,'Tabin Hose','TOAU'); INSERT INTO `synth_recipes` VALUES (43529,0,0,0,0,0,47,76,0,0,0,4099,4241,823,823,829,829,850,0,0,0,12996,14115,14115,14115,1,1,1,1,'Silk Pumps',NULL); INSERT INTO `synth_recipes` VALUES (43530,0,2018,0,0,0,0,76,0,0,0,4103,4245,2129,2151,2151,2151,2156,2156,2156,4509,2152,2152,2152,2152,3,3,3,3,'Marid Leather','TOAU'); @@ -2966,7 +2966,7 @@ INSERT INTO `synth_recipes` VALUES (43533,0,0,0,0,0,0,77,0,0,0,4099,4241,855,126 INSERT INTO `synth_recipes` VALUES (43534,0,0,0,0,0,0,78,0,0,0,4103,4245,635,859,2126,2126,4509,0,0,0,2125,2125,2125,2125,1,1,1,1,'Yellow Mouton','COP'); INSERT INTO `synth_recipes` VALUES (43535,0,0,0,0,0,0,78,0,0,0,4103,4245,695,859,2126,2126,4509,0,0,0,2125,2125,2125,2125,1,1,1,1,'Yellow Mouton','COP'); INSERT INTO `synth_recipes` VALUES (43536,0,0,0,41,0,0,78,0,0,0,4099,4241,664,850,855,855,0,0,0,0,12446,13861,13861,13861,1,1,1,1,'Tiger Helm',NULL); -INSERT INTO `synth_recipes` VALUES (43537,0,0,0,0,0,0,78,0,0,0,4099,4241,820,855,13589,0,0,0,0,0,13641,13642,13642,13642,1,1,1,1,'Black Mantle',NULL); +INSERT INTO `synth_recipes` VALUES (43537,0,0,0,0,0,0,78,0,0,0,4099,4241,820,855,13589,0,0,0,0,0,13641,13642,13642,13642,1,1,1,1,'Black Mantle','ROTZ'); INSERT INTO `synth_recipes` VALUES (43538,0,0,0,0,0,0,78,0,0,0,4099,4241,862,1163,0,0,0,0,0,0,10961,10962,10962,10962,1,1,1,1,'Lavalier','ABYSSEA'); INSERT INTO `synth_recipes` VALUES (43539,0,0,0,0,0,0,79,0,0,0,4099,4241,818,863,0,0,0,0,0,0,13092,13132,13132,13132,1,1,1,1,'Coeurl Gorget',NULL); INSERT INTO `synth_recipes` VALUES (43540,0,0,0,0,0,0,79,0,0,0,4097,4239,9505,0,0,0,0,0,0,0,16211,16211,16211,16211,1,1,1,1,'Marid Mantle','ROV'); @@ -2974,71 +2974,71 @@ INSERT INTO `synth_recipes` VALUES (43541,0,0,0,0,0,0,79,0,0,0,4099,4241,2839,13 INSERT INTO `synth_recipes` VALUES (43542,0,0,0,0,0,0,79,0,0,0,4099,4241,850,855,855,0,0,0,0,0,12574,13763,13763,13763,1,1,1,1,'Tiger Jerkin',NULL); INSERT INTO `synth_recipes` VALUES (43543,0,0,0,0,0,0,79,0,0,0,4097,4239,2151,2287,0,0,0,0,0,0,16211,16215,16215,16215,1,1,1,1,'Marid Mantle','TOAU'); INSERT INTO `synth_recipes` VALUES (43544,0,0,0,0,0,32,80,0,46,0,4099,4241,837,851,855,918,924,1110,12603,13699,13775,13776,13776,13776,1,1,1,1,'Blue Cotehardie',NULL); -INSERT INTO `synth_recipes` VALUES (43545,0,0,0,0,0,0,80,0,0,0,4103,4245,635,1116,4509,0,0,0,0,0,1117,1117,1117,1117,1,1,1,1,'Manticore Leather',NULL); +INSERT INTO `synth_recipes` VALUES (43545,0,0,0,0,0,0,80,0,0,0,4103,4245,635,1116,4509,0,0,0,0,0,1117,1117,1117,1117,1,1,1,1,'Manticore Leather','ROTZ'); INSERT INTO `synth_recipes` VALUES (43546,0,0,0,0,0,0,80,0,0,0,4103,4245,695,1116,4509,0,0,0,0,0,1117,1117,1117,1117,1,1,1,1,'Manticore Leather',NULL); INSERT INTO `synth_recipes` VALUES (43547,0,2018,0,0,0,0,80,0,0,0,4103,4245,635,635,635,1116,1116,1116,2129,4509,1117,1117,1117,1117,3,3,3,3,'Manticore Leather','COP'); INSERT INTO `synth_recipes` VALUES (43548,0,0,0,34,0,0,80,0,0,0,4099,4241,664,848,855,862,2828,12553,0,0,11344,11350,11350,11350,1,1,1,1,'Styrne Byrnie','WOTG'); INSERT INTO `synth_recipes` VALUES (44001,0,0,0,0,0,0,81,0,0,0,4099,4241,682,2152,2152,0,0,0,0,0,15890,15893,15893,15893,1,1,1,1,'Marid Belt','TOAU'); INSERT INTO `synth_recipes` VALUES (44002,0,0,0,58,0,0,81,0,0,0,4099,4241,664,664,664,715,2428,2428,0,0,16170,16171,16171,16171,1,1,1,1,'Wivre Shield','TOAU'); -INSERT INTO `synth_recipes` VALUES (44003,0,0,0,0,0,0,81,0,0,0,4099,4241,850,16443,0,0,0,0,0,0,17493,17494,17494,17494,1,1,1,1,'Tropical Punches',NULL); +INSERT INTO `synth_recipes` VALUES (44003,0,0,0,0,0,0,81,0,0,0,4099,4241,850,16443,0,0,0,0,0,0,17493,17494,17494,17494,1,1,1,1,'Tropical Punches','ROTZ'); INSERT INTO `synth_recipes` VALUES (44004,0,0,0,0,0,0,81,0,0,0,4103,4245,2156,2169,4509,0,0,0,0,0,2170,2170,2170,2170,1,1,1,1,'Cerber. Leather','TOAU'); INSERT INTO `synth_recipes` VALUES (44005,0,0,0,0,0,57,81,0,0,0,4099,4241,823,823,828,830,855,0,0,0,12989,14114,14114,14114,1,1,1,1,'Noble\'s Pumps','ROTZ'); INSERT INTO `synth_recipes` VALUES (44006,0,0,0,0,0,0,81,0,0,0,4103,4245,635,2523,4509,0,0,0,0,0,2538,2538,2538,2538,1,1,1,1,'Peiste Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44007,0,2018,0,0,0,0,81,0,0,0,4103,4245,635,635,635,2129,2523,2523,2523,4509,2538,2538,2538,2538,3,3,3,3,'Peiste Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44008,0,0,0,0,0,0,81,0,0,0,4103,4245,695,2523,4509,0,0,0,0,0,2538,2538,2538,2538,1,1,1,1,'Peiste Leather','WOTG'); -INSERT INTO `synth_recipes` VALUES (44009,0,0,0,0,0,0,82,0,0,0,4099,4241,862,16385,0,0,0,0,0,0,16397,17479,17479,17479,1,1,1,1,'Behemoth Cesti',NULL); -INSERT INTO `synth_recipes` VALUES (44010,0,0,0,0,0,0,82,0,0,0,4099,4241,856,13613,0,0,0,0,0,0,13631,13632,13632,13632,1,1,1,1,'Nomad\'s Mantle',NULL); +INSERT INTO `synth_recipes` VALUES (44009,0,0,0,0,0,0,82,0,0,0,4099,4241,862,16385,0,0,0,0,0,0,16397,17479,17479,17479,1,1,1,1,'Behemoth Cesti','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44010,0,0,0,0,0,0,82,0,0,0,4099,4241,856,13613,0,0,0,0,0,0,13631,13632,13632,13632,1,1,1,1,'Nomad\'s Mantle','ROTZ'); INSERT INTO `synth_recipes` VALUES (44011,0,0,0,0,0,0,82,0,0,0,4099,4241,879,879,1163,2152,2166,2274,0,0,16122,16122,16122,16122,1,1,1,1,'Troll Coif','TOAU'); INSERT INTO `synth_recipes` VALUES (44012,0,0,0,0,0,55,83,0,0,0,4099,4241,823,843,855,855,0,0,0,0,12469,13867,13867,13867,1,1,1,1,'War Beret','ROTZ'); -INSERT INTO `synth_recipes` VALUES (44013,0,0,0,0,0,0,83,0,0,0,4098,4240,869,13052,0,0,0,0,0,0,14134,14135,14135,14135,1,1,1,1,'Air Solea',NULL); -INSERT INTO `synth_recipes` VALUES (44014,0,0,0,0,0,0,83,0,0,0,4099,4241,506,506,12827,0,0,0,0,0,12831,14233,14233,14233,1,1,1,1,'Coeurl Trousers',NULL); +INSERT INTO `synth_recipes` VALUES (44013,0,0,0,0,0,0,83,0,0,0,4098,4240,869,13052,0,0,0,0,0,0,14134,14135,14135,14135,1,1,1,1,'Air Solea','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44014,0,0,0,0,0,0,83,0,0,0,4099,4241,506,506,12827,0,0,0,0,0,12831,14233,14233,14233,1,1,1,1,'Coeurl Trousers','ROTZ'); INSERT INTO `synth_recipes` VALUES (44015,0,0,0,0,0,0,83,0,0,0,4103,4245,695,2755,4509,0,0,0,0,0,2756,2756,2756,2756,1,1,1,1,'Ruszor Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44016,0,0,0,0,0,0,83,0,0,0,4098,4240,680,2538,0,0,0,0,0,0,15913,15914,15914,15914,1,1,1,1,'Peiste Belt','WOTG'); INSERT INTO `synth_recipes` VALUES (44017,0,0,0,0,0,0,83,0,0,0,4097,4239,820,2836,0,0,0,0,0,0,11535,11541,11541,11541,1,1,1,1,'Fowler\'s Mantle','WOTG'); INSERT INTO `synth_recipes` VALUES (44018,0,0,0,0,0,0,83,0,0,0,4103,4245,635,2755,4509,0,0,0,0,0,2756,2756,2756,2756,1,1,1,1,'Ruszor Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44019,0,2018,0,0,0,0,83,0,0,0,4103,4245,635,635,635,2129,2755,2755,2755,4509,2756,2756,2756,2756,3,3,3,3,'Ruszor Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44020,0,0,0,0,23,0,84,0,0,0,4099,4241,506,663,12955,0,0,0,0,0,12959,14109,14109,14109,1,1,1,1,'Coeurl Ledelsens','ROTZ'); -INSERT INTO `synth_recipes` VALUES (44021,0,0,0,0,0,0,84,0,0,0,4099,4241,852,13624,0,0,0,0,0,0,13633,13634,13634,13634,1,1,1,1,'Empowering Mantle',NULL); +INSERT INTO `synth_recipes` VALUES (44021,0,0,0,0,0,0,84,0,0,0,4099,4241,852,13624,0,0,0,0,0,0,13633,13634,13634,13634,1,1,1,1,'Empowering Mantle','ROTZ'); INSERT INTO `synth_recipes` VALUES (44022,0,0,0,0,0,37,84,0,0,0,4099,4241,822,822,828,828,1623,1767,0,0,15396,15397,15397,15397,1,1,1,1,'Wise Braconi','COP'); -INSERT INTO `synth_recipes` VALUES (44023,0,0,0,0,0,0,84,0,0,0,4099,4241,1117,12831,0,0,0,0,0,0,12880,14279,14279,14279,1,1,1,1,'Ogre Trousers',NULL); +INSERT INTO `synth_recipes` VALUES (44023,0,0,0,0,0,0,84,0,0,0,4099,4241,1117,12831,0,0,0,0,0,0,12880,14279,14279,14279,1,1,1,1,'Ogre Trousers','ROTZ'); INSERT INTO `synth_recipes` VALUES (44024,0,0,0,0,0,34,85,0,0,0,4099,4241,823,828,850,855,1767,0,0,0,15334,15335,15335,15335,1,1,1,1,'Wise Pigaches','COP'); -- 2021.11.17 FFXIclopedia, FFXIAH, and Allakhazam have 84 Leathercraft with ??? Clothcraft. BGWiki and JPWiki show 85 Leathercraft with 34 Clothcraft. INSERT INTO `synth_recipes` VALUES (44025,0,0,0,0,0,0,84,0,0,0,4099,4241,2837,13631,0,0,0,0,0,0,11537,11542,11542,11542,1,1,1,1,'Kinesis Mantle','WOTG'); INSERT INTO `synth_recipes` VALUES (44026,0,0,0,0,0,0,84,0,0,0,4103,4245,695,4509,8707,0,0,0,0,0,8708,8708,8708,8708,1,1,1,1,'Raaz Leather','SOA'); INSERT INTO `synth_recipes` VALUES (44027,0,0,0,0,0,0,84,0,0,0,4103,4245,635,4509,8707,0,0,0,0,0,8708,8708,8708,8708,1,1,1,1,'Raaz Leather','SOA'); INSERT INTO `synth_recipes` VALUES (44028,0,2018,0,0,0,0,84,0,0,0,4103,4245,635,635,635,2129,4509,8707,8707,8707,8708,8708,8708,8708,3,3,3,3,'Raaz Leather','SOA'); -INSERT INTO `synth_recipes` VALUES (44029,0,0,0,0,0,0,85,0,0,0,4099,4241,1117,12959,0,0,0,0,0,0,13708,14159,14159,14159,1,1,1,1,'Ogre Ledelsens',NULL); -INSERT INTO `synth_recipes` VALUES (44030,0,0,0,0,0,0,85,0,0,0,4099,4241,849,12574,0,0,0,0,0,0,14284,14285,14285,14285,1,1,1,1,'Northern Jerkin',NULL); -INSERT INTO `synth_recipes` VALUES (44031,0,0,0,0,0,0,85,0,0,0,4097,4239,820,863,0,0,0,0,0,0,13595,13603,13603,13603,1,1,1,1,'Coeurl Mantle',NULL); -INSERT INTO `synth_recipes` VALUES (44032,0,0,0,0,0,0,85,0,0,0,4099,4241,851,13189,0,0,0,0,0,0,13249,13250,13250,13250,1,1,1,1,'Sonic Belt',NULL); -INSERT INTO `synth_recipes` VALUES (44033,0,0,0,0,0,0,85,0,0,0,4099,4241,506,761,855,855,0,0,0,0,12981,14113,14113,14113,1,1,1,1,'War Boots',NULL); +INSERT INTO `synth_recipes` VALUES (44029,0,0,0,0,0,0,85,0,0,0,4099,4241,1117,12959,0,0,0,0,0,0,13708,14159,14159,14159,1,1,1,1,'Ogre Ledelsens','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44030,0,0,0,0,0,0,85,0,0,0,4099,4241,849,12574,0,0,0,0,0,0,14284,14285,14285,14285,1,1,1,1,'Northern Jerkin','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44031,0,0,0,0,0,0,85,0,0,0,4097,4239,820,863,0,0,0,0,0,0,13595,13603,13603,13603,1,1,1,1,'Coeurl Mantle','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44032,0,0,0,0,0,0,85,0,0,0,4099,4241,851,13189,0,0,0,0,0,0,13249,13250,13250,13250,1,1,1,1,'Sonic Belt','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44033,0,0,0,0,0,0,85,0,0,0,4099,4241,506,761,855,855,0,0,0,0,12981,14113,14113,14113,1,1,1,1,'War Boots','ROTZ'); INSERT INTO `synth_recipes` VALUES (44034,0,0,0,0,0,0,85,0,0,0,4097,4239,820,2512,0,0,0,0,0,0,16235,16236,16236,16236,1,1,1,1,'Lynx Mantle','WOTG'); INSERT INTO `synth_recipes` VALUES (44035,0,0,0,0,0,0,85,0,0,0,4097,4239,9506,0,0,0,0,0,0,0,13595,13595,13595,13595,1,1,1,1,'Coeurl Mantle','ROV'); INSERT INTO `synth_recipes` VALUES (44036,0,0,0,0,0,0,86,0,0,0,4103,4245,878,2711,4509,0,0,0,0,0,2703,2703,2703,2703,1,1,1,1,'Khromated Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44037,1,0,0,0,0,0,86,0,0,0,4100,4242,16167,0,0,0,0,0,0,0,2152,2152,2152,2152,1,1,1,1,'Tariqah -1 (desynth)','TOAU'); -INSERT INTO `synth_recipes` VALUES (44038,0,0,0,0,0,0,86,0,0,0,4097,4239,858,13615,0,0,0,0,0,0,13635,13636,13636,13636,1,1,1,1,'Cavalier\'s Mantle',NULL); +INSERT INTO `synth_recipes` VALUES (44038,0,0,0,0,0,0,86,0,0,0,4097,4239,858,13615,0,0,0,0,0,0,13635,13636,13636,13636,1,1,1,1,'Cavalier\'s Mantle','ROTZ'); INSERT INTO `synth_recipes` VALUES (44039,0,2018,0,0,0,0,86,0,0,0,4103,4245,878,878,878,2129,2711,2711,2711,4509,2703,2703,2703,2703,3,3,3,3,'Khromated Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44040,0,0,0,0,0,0,86,0,0,0,4099,4241,2152,2166,16167,0,0,0,0,0,16162,16164,16164,16164,1,1,1,1,'Tariqah','TOAU'); -INSERT INTO `synth_recipes` VALUES (44041,0,0,0,0,0,0,86,0,0,0,4099,4241,851,17184,0,0,0,0,0,0,17193,17194,17194,17194,1,1,1,1,'Shadow Bow',NULL); -INSERT INTO `synth_recipes` VALUES (44042,0,0,0,0,0,0,87,0,0,0,4099,4241,506,506,12432,0,0,0,0,0,12447,13862,13862,13862,1,1,1,1,'Coeurl Mask',NULL); -INSERT INTO `synth_recipes` VALUES (44043,0,0,0,0,0,0,87,0,0,0,4099,4241,854,13623,0,0,0,0,0,0,13637,13638,13638,13638,1,1,1,1,'Gaia Mantle',NULL); +INSERT INTO `synth_recipes` VALUES (44041,0,0,0,0,0,0,86,0,0,0,4099,4241,851,17184,0,0,0,0,0,0,17193,17194,17194,17194,1,1,1,1,'Shadow Bow','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44042,0,0,0,0,0,0,87,0,0,0,4099,4241,506,506,12432,0,0,0,0,0,12447,13862,13862,13862,1,1,1,1,'Coeurl Mask','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44043,0,0,0,0,0,0,87,0,0,0,4099,4241,854,13623,0,0,0,0,0,0,13637,13638,13638,13638,1,1,1,1,'Gaia Mantle','ROTZ'); INSERT INTO `synth_recipes` VALUES (44044,0,0,0,0,0,0,87,0,0,0,4099,4241,852,879,884,884,927,2162,2166,0,16121,16121,16121,16121,1,1,1,1,'Mamool Ja Helm','TOAU'); INSERT INTO `synth_recipes` VALUES (44045,0,0,0,0,0,0,87,0,0,0,4099,4241,3917,3941,3941,13593,0,0,0,0,28646,28647,28647,28647,1,1,1,1,'Radical Mantle','SOA'); INSERT INTO `synth_recipes` VALUES (44046,0,0,0,0,44,19,87,0,0,0,4099,4241,663,879,2152,2166,2288,0,0,0,14932,14938,14938,14938,1,1,1,1,'Sipahi Dastanas','TOAU'); -INSERT INTO `synth_recipes` VALUES (44047,0,0,0,0,0,0,88,0,0,0,4099,4241,506,12699,0,0,0,0,0,0,12703,13993,13993,13993,1,1,1,1,'Coeurl Gloves',NULL); -INSERT INTO `synth_recipes` VALUES (44048,0,0,0,0,0,0,88,0,0,0,4097,4239,861,13625,0,0,0,0,0,0,13639,13640,13640,13640,1,1,1,1,'Aurora Mantle',NULL); -INSERT INTO `synth_recipes` VALUES (44049,0,0,0,0,0,0,88,0,0,0,4099,4241,1117,12447,0,0,0,0,0,0,13704,13907,13907,13907,1,1,1,1,'Ogre Mask',NULL); +INSERT INTO `synth_recipes` VALUES (44047,0,0,0,0,0,0,88,0,0,0,4099,4241,506,12699,0,0,0,0,0,0,12703,13993,13993,13993,1,1,1,1,'Coeurl Gloves','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44048,0,0,0,0,0,0,88,0,0,0,4097,4239,861,13625,0,0,0,0,0,0,13639,13640,13640,13640,1,1,1,1,'Aurora Mantle','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44049,0,0,0,0,0,0,88,0,0,0,4099,4241,1117,12447,0,0,0,0,0,0,13704,13907,13907,13907,1,1,1,1,'Ogre Mask','ROTZ'); INSERT INTO `synth_recipes` VALUES (44050,0,0,0,0,0,40,88,0,0,0,4099,4241,822,828,829,1117,1767,0,0,0,15190,15191,15191,15191,1,1,1,1,'Wise Cap','COP'); -INSERT INTO `synth_recipes` VALUES (44051,0,0,0,0,0,0,89,0,0,0,4099,4241,1117,12703,0,0,0,0,0,0,13706,14057,14057,14057,1,1,1,1,'Ogre Gloves',NULL); -INSERT INTO `synth_recipes` VALUES (44052,0,0,0,0,0,0,89,0,0,0,4099,4241,852,13014,0,0,0,0,0,0,14132,14133,14133,14133,1,1,1,1,'Winged Boots',NULL); -INSERT INTO `synth_recipes` VALUES (44053,0,0,0,0,0,0,89,0,0,0,4099,4241,506,506,850,0,0,0,0,0,12575,13764,13764,13764,1,1,1,1,'Coeurl Jerkin',NULL); +INSERT INTO `synth_recipes` VALUES (44051,0,0,0,0,0,0,89,0,0,0,4099,4241,1117,12703,0,0,0,0,0,0,13706,14057,14057,14057,1,1,1,1,'Ogre Gloves','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44052,0,0,0,0,0,0,89,0,0,0,4099,4241,852,13014,0,0,0,0,0,0,14132,14133,14133,14133,1,1,1,1,'Winged Boots','ROTZ'); +INSERT INTO `synth_recipes` VALUES (44053,0,0,0,0,0,0,89,0,0,0,4099,4241,506,506,850,0,0,0,0,0,12575,13764,13764,13764,1,1,1,1,'Coeurl Jerkin','ROTZ'); INSERT INTO `synth_recipes` VALUES (44054,0,0,0,0,0,32,89,0,0,0,4099,4241,822,828,834,834,1767,12696,0,0,14880,14881,14881,14881,1,1,1,1,'Wise Gloves','COP'); INSERT INTO `synth_recipes` VALUES (44055,0,0,0,0,0,0,90,0,0,0,4099,4241,9507,0,0,0,0,0,0,0,13197,13197,13197,13197,1,1,1,1,'Koenigs Belt','ROV'); -INSERT INTO `synth_recipes` VALUES (44056,0,0,0,0,0,0,90,0,0,0,4099,4241,849,1117,12575,0,0,0,0,0,13705,14366,14366,14366,1,1,1,1,'Ogre Jerkin',NULL); +INSERT INTO `synth_recipes` VALUES (44056,0,0,0,0,0,0,90,0,0,0,4099,4241,849,1117,12575,0,0,0,0,0,13705,14366,14366,14366,1,1,1,1,'Ogre Jerkin','ROTZ'); INSERT INTO `synth_recipes` VALUES (44057,0,0,0,0,0,54,90,0,0,0,4099,4241,829,1280,1629,1629,1680,0,0,0,14317,14318,14318,14318,1,1,1,1,'Barone Cosciales','COP'); INSERT INTO `synth_recipes` VALUES (44058,0,2018,0,0,0,0,90,0,0,0,4103,4245,635,635,635,2129,2750,2750,2750,4509,2751,2751,2751,2751,3,3,3,3,'Amphiptere Leather','WOTG'); -INSERT INTO `synth_recipes` VALUES (44059,0,0,0,0,0,0,90,0,0,0,4099,4241,855,13514,0,0,0,0,0,0,13280,13281,13281,13281,1,1,1,1,'Sniper\'s Ring',NULL); +INSERT INTO `synth_recipes` VALUES (44059,0,0,0,0,0,0,90,0,0,0,4099,4241,855,13514,0,0,0,0,0,0,13280,13281,13281,13281,1,1,1,1,'Sniper\'s Ring','ROTZ'); INSERT INTO `synth_recipes` VALUES (44060,0,0,0,0,44,40,90,0,0,0,4099,4241,746,822,828,828,1117,1623,1767,1767,14440,14441,14441,14441,1,1,1,1,'Chasuble','COP'); -INSERT INTO `synth_recipes` VALUES (44061,0,0,0,0,0,0,90,0,0,0,4099,4241,761,1117,1117,0,0,0,0,0,13197,13239,13239,13239,1,1,1,1,'Koenigs Belt',NULL); +INSERT INTO `synth_recipes` VALUES (44061,0,0,0,0,0,0,90,0,0,0,4099,4241,761,1117,1117,0,0,0,0,0,13197,13239,13239,13239,1,1,1,1,'Koenigs Belt','ROTZ'); INSERT INTO `synth_recipes` VALUES (44062,0,0,0,0,0,0,90,0,0,0,4103,4245,695,2750,4509,0,0,0,0,0,2751,2751,2751,2751,1,1,1,1,'Amphiptere Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44063,0,0,0,0,0,0,90,0,0,0,4103,4245,635,2750,4509,0,0,0,0,0,2751,2751,2751,2751,1,1,1,1,'Amphiptere Leather','WOTG'); INSERT INTO `synth_recipes` VALUES (44064,0,0,0,0,0,0,90,0,0,0,4098,4240,879,2428,0,0,0,0,0,0,16130,16131,16131,16131,1,1,1,1,'Wivre Mask','TOAU'); @@ -3058,18 +3058,18 @@ INSERT INTO `synth_recipes` VALUES (44513,0,0,0,0,0,56,92,0,0,0,4099,4241,823,82 INSERT INTO `synth_recipes` VALUES (44514,0,0,0,0,0,0,92,0,0,0,4099,4241,1972,13197,0,0,0,0,0,0,15870,15870,15870,15870,1,1,1,1,'Maharaja\'s Belt','COP'); INSERT INTO `synth_recipes` VALUES (44515,0,0,0,0,0,0,92,0,0,0,4096,4238,9130,10309,0,0,0,0,0,0,27125,27126,27126,27126,1,1,1,1,'Vexed Kote','ROV'); INSERT INTO `synth_recipes` VALUES (44516,0,0,0,0,60,38,92,0,0,0,4099,4241,747,823,828,855,855,1629,0,0,15303,15304,15304,15304,1,1,1,1,'Sha\'ir Crackows','COP'); -INSERT INTO `synth_recipes` VALUES (44517,0,0,0,0,0,0,92,0,0,0,4099,4241,817,1296,1296,0,0,0,0,0,13653,13654,13654,13654,1,1,1,1,'Desert Mantle',NULL); +INSERT INTO `synth_recipes` VALUES (44517,0,0,0,0,0,0,92,0,0,0,4099,4241,817,1296,1296,0,0,0,0,0,13653,13654,13654,13654,1,1,1,1,'Desert Mantle','ROTZ'); INSERT INTO `synth_recipes` VALUES (44518,0,0,0,0,0,29,93,0,0,0,4099,4241,1117,1163,1163,1619,1629,1629,0,0,15307,15308,15308,15308,1,1,1,1,'Bison Gamashes','COP'); INSERT INTO `synth_recipes` VALUES (44519,0,0,0,0,53,0,93,0,0,0,4099,4241,746,2751,2751,2824,0,0,0,0,12192,12192,12192,12192,1,1,1,1,'Ebon Gloves','WOTG'); INSERT INTO `synth_recipes` VALUES (44520,0,0,0,0,0,11,93,0,0,0,4099,4241,821,850,851,1296,12475,0,0,0,13939,13940,13940,13940,1,1,1,1,'Austere Hat','ROTZ'); INSERT INTO `synth_recipes` VALUES (44521,0,0,0,0,0,0,93,0,0,0,4096,4238,9130,10589,0,0,0,0,0,0,27310,27311,27311,27311,1,1,1,1,'Vexed Hakama','ROV'); -INSERT INTO `synth_recipes` VALUES (44522,0,0,0,0,0,0,93,0,0,0,4099,4241,862,12830,0,0,0,0,0,0,12879,14307,14307,14307,1,1,1,1,'Dusk Trousers',NULL); +INSERT INTO `synth_recipes` VALUES (44522,0,0,0,0,0,0,93,0,0,0,4099,4241,862,12830,0,0,0,0,0,0,12879,14307,14307,14307,1,1,1,1,'Dusk Trousers','ROTZ'); INSERT INTO `synth_recipes` VALUES (44523,0,0,0,0,0,0,93,0,0,0,4099,4241,9130,10588,0,0,0,0,0,0,27308,27309,27309,27309,1,1,1,1,'Vexed Hose','ROV'); INSERT INTO `synth_recipes` VALUES (44524,0,0,0,0,0,29,93,0,0,0,4099,4241,1117,1619,1629,1629,2372,2372,0,0,15731,15732,15732,15732,1,1,1,1,'Khimaira Gamashes','TOAU'); -INSERT INTO `synth_recipes` VALUES (44525,0,0,0,0,0,0,94,0,0,0,4099,4241,862,12958,0,0,0,0,0,0,12957,14188,14188,14188,1,1,1,1,'Dusk Ledelsens',NULL); +INSERT INTO `synth_recipes` VALUES (44525,0,0,0,0,0,0,94,0,0,0,4099,4241,862,12958,0,0,0,0,0,0,12957,14188,14188,14188,1,1,1,1,'Dusk Ledelsens','ROTZ'); INSERT INTO `synth_recipes` VALUES (44526,0,0,0,0,0,11,94,0,0,0,4099,4241,821,850,851,1277,12987,0,0,0,14189,14190,14190,14190,1,1,1,1,'Austere Sabots','ROTZ'); INSERT INTO `synth_recipes` VALUES (44527,0,0,0,31,0,21,94,0,0,0,4101,4243,666,823,851,855,855,913,1117,1117,14372,14373,14373,14373,1,1,1,1,'Cardinal Vest',NULL); -INSERT INTO `synth_recipes` VALUES (44528,0,0,0,0,0,0,95,0,0,0,4097,4239,820,851,861,861,1122,0,0,0,13918,13919,13919,13919,1,1,1,1,'Tiger Mask',NULL); +INSERT INTO `synth_recipes` VALUES (44528,0,0,0,0,0,0,95,0,0,0,4097,4239,820,851,861,861,1122,0,0,0,13918,13919,13919,13919,1,1,1,1,'Tiger Mask','ROTZ'); INSERT INTO `synth_recipes` VALUES (44529,0,0,0,0,0,33,95,0,0,0,4099,4241,1117,1163,1163,1619,1619,1623,1629,0,15157,15158,15158,15158,1,1,1,1,'Bison Warbonnet','COP'); INSERT INTO `synth_recipes` VALUES (44530,0,0,0,0,0,0,95,0,0,0,4099,4241,817,2523,2523,0,0,0,0,0,16233,16234,16234,16234,1,1,1,1,'Peiste Mantle','WOTG'); INSERT INTO `synth_recipes` VALUES (44531,0,0,0,0,0,0,95,0,0,0,4097,4239,2169,2287,0,0,0,0,0,0,16212,16216,16216,16216,1,1,1,1,'Cerberus Mantle','TOAU'); @@ -3084,19 +3084,19 @@ INSERT INTO `synth_recipes` VALUES (44539,0,2018,0,0,0,0,97,0,0,0,4103,4245,635, INSERT INTO `synth_recipes` VALUES (44540,0,0,0,0,0,54,97,0,0,0,4099,4241,855,1117,1629,1629,2372,2372,2372,2372,15645,15646,15646,15646,1,1,1,1,'Khimaira Kecks','TOAU'); INSERT INTO `synth_recipes` VALUES (44541,0,0,0,0,0,0,97,0,0,0,4103,4245,635,1516,4509,0,0,0,0,0,1459,1459,1459,1459,1,1,1,1,'Griffon Leather',NULL); INSERT INTO `synth_recipes` VALUES (44542,0,0,0,0,0,54,97,0,0,0,4099,4241,855,1117,1163,1163,1163,1163,1629,1629,14319,14320,14320,14320,1,1,1,1,'Bison Kecks','COP'); -INSERT INTO `synth_recipes` VALUES (44543,0,0,0,0,0,0,97,0,0,0,4099,4241,862,12447,0,0,0,0,0,0,12445,13938,13938,13938,1,1,1,1,'Dusk Mask',NULL); +INSERT INTO `synth_recipes` VALUES (44543,0,0,0,0,0,0,97,0,0,0,4099,4241,862,12447,0,0,0,0,0,0,12445,13938,13938,13938,1,1,1,1,'Dusk Mask','ROTZ'); INSERT INTO `synth_recipes` VALUES (44544,0,0,0,0,0,11,97,0,0,0,4099,4241,821,1276,1296,12731,0,0,0,0,14826,14827,14827,14827,1,1,1,1,'Austere Cuffs','ROTZ'); INSERT INTO `synth_recipes` VALUES (44545,0,0,0,0,0,0,97,0,0,0,4103,4245,695,1516,4509,0,0,0,0,0,1459,1459,1459,1459,1,1,1,1,'Griffon Leather',NULL); INSERT INTO `synth_recipes` VALUES (44546,0,0,0,0,0,0,98,0,0,0,4103,4245,695,874,4509,0,0,0,0,0,875,875,875,875,1,1,1,1,'Amaltheia Leather','COP'); INSERT INTO `synth_recipes` VALUES (44547,0,0,0,0,0,0,98,0,0,0,4103,4245,635,874,4509,0,0,0,0,0,875,875,875,875,1,1,1,1,'Amaltheia Leather','COP'); INSERT INTO `synth_recipes` VALUES (44548,0,0,0,0,0,11,98,0,0,0,4099,4241,821,849,858,1277,12859,0,0,0,14310,14311,14311,14311,1,1,1,1,'Austere Slops','ROTZ'); INSERT INTO `synth_recipes` VALUES (44549,0,2018,0,0,0,0,98,0,0,0,4103,4245,635,635,635,874,874,874,2129,4509,875,875,875,875,3,3,3,3,'Amaltheia Leather','COP'); -INSERT INTO `synth_recipes` VALUES (44550,0,0,0,0,0,0,98,0,0,0,4099,4241,674,851,851,1277,0,0,0,0,14191,14192,14192,14192,1,1,1,1,'Heroic Boots',NULL); +INSERT INTO `synth_recipes` VALUES (44550,0,0,0,0,0,0,98,0,0,0,4099,4241,674,851,851,1277,0,0,0,0,14191,14192,14192,14192,1,1,1,1,'Heroic Boots','ROTZ'); INSERT INTO `synth_recipes` VALUES (44551,0,0,0,0,0,51,99,60,0,0,4099,4241,1117,1117,1163,1163,1615,1623,1629,1629,14418,14419,14419,14419,1,1,1,1,'Bison Jacket','COP'); -INSERT INTO `synth_recipes` VALUES (44552,0,0,0,0,0,0,99,0,0,0,4099,4241,862,12702,0,0,0,0,0,0,12701,14825,14825,14825,1,1,1,1,'Dusk Gloves',NULL); +INSERT INTO `synth_recipes` VALUES (44552,0,0,0,0,0,0,99,0,0,0,4099,4241,862,12702,0,0,0,0,0,0,12701,14825,14825,14825,1,1,1,1,'Dusk Gloves','ROTZ'); INSERT INTO `synth_recipes` VALUES (44553,0,0,0,0,0,50,99,0,0,0,4099,4241,2287,2288,2288,2288,2476,2751,0,0,10365,10366,10366,10366,1,1,1,1,'Chelona Boots','ABYSSEA'); INSERT INTO `synth_recipes` VALUES (44554,0,0,0,0,0,55,99,0,0,0,4099,4241,823,828,855,1163,1767,0,0,0,15329,15331,15331,15331,1,1,1,1,'Blessed Pumps','COP'); -INSERT INTO `synth_recipes` VALUES (44555,0,0,0,0,0,0,99,0,0,0,4101,4243,913,1117,1297,14372,0,0,0,0,13816,13817,13817,13817,1,1,1,1,'Narasimha\'s Vest',NULL); +INSERT INTO `synth_recipes` VALUES (44555,0,0,0,0,0,0,99,0,0,0,4101,4243,913,1117,1297,14372,0,0,0,0,13816,13817,13817,13817,1,1,1,1,'Narasimha\'s Vest','ROTZ'); INSERT INTO `synth_recipes` VALUES (44556,0,0,0,0,0,54,99,60,0,0,4099,4241,1117,1117,1615,1623,1629,1629,2372,2372,14566,14567,14567,14567,1,1,1,1,'Khimaira Jacket','TOAU'); INSERT INTO `synth_recipes` VALUES (44557,0,0,0,0,0,60,100,0,0,0,4099,4241,1998,2124,3550,3551,3551,0,0,0,10645,10646,10646,10646,1,1,1,1,'Spolia Pigaches','ABYSSEA'); INSERT INTO `synth_recipes` VALUES (44558,0,0,0,0,0,31,100,0,0,0,4099,4241,821,827,830,849,851,1276,1296,12603,13814,13815,13815,13815,1,1,1,1,'Austere Robe','ROTZ'); @@ -3153,7 +3153,7 @@ INSERT INTO `synth_recipes` VALUES (45509,0,0,0,0,0,0,114,0,0,0,4099,4241,9003,9 -- INSERT INTO `synth_recipes` VALUES (45510,0,2021,0,255,0,0,113,0,0,0,4102,4244,9004,9062,9249,9838,9844,9845,9845,9858,21915,21916,21917,21917,1,1,1,1,'Koga Shinobi-Gatana','ROV'); -- 2021.11.17 FFXIclopedia, JPWiki shows Leathercraft 111-113. BGWiki has 111-114. All have ??? Smithing and Goldsmithing. INSERT INTO `synth_recipes` VALUES (49901,1,0,0,0,0,0,27,0,0,0,4100,4242,13588,0,0,0,0,0,0,0,857,857,820,820,1,1,1,1,'Dhalmel Mantle (desynth)',NULL); -- 2021.11.16 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49902,1,0,0,0,0,0,3,0,0,0,4100,4242,16385,0,0,0,0,0,0,0,715,850,850,850,1,1,2,2,'Cesti (desynth)',NULL); -- use synth lvl, ffxiclopedia results -INSERT INTO `synth_recipes` VALUES (49903,1,0,0,0,0,0,95,0,0,0,4100,4242,13918,0,0,0,0,0,0,0,861,820,851,1122,1,1,1,1,'Tiger Mask (desynth)',NULL); -- 2021.11.16 Based on synth. Sites that show are in agreement. +INSERT INTO `synth_recipes` VALUES (49903,1,0,0,0,0,0,95,0,0,0,4100,4242,13918,0,0,0,0,0,0,0,861,820,851,1122,1,1,1,1,'Tiger Mask (desynth)','ROTZ'); -- 2021.11.16 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49904,1,0,0,0,0,0,52,0,0,0,4100,4242,16388,0,0,0,0,0,0,0,715,850,852,853,1,2,1,1,'Himantes (desynth)',NULL); INSERT INTO `synth_recipes` VALUES (49905,1,0,0,0,0,0,90,0,0,0,4100,4242,14317,0,0,0,0,0,0,0,1680,816,1629,1629,1,3,1,2,'Barone Cosciales (desynth)','COP'); INSERT INTO `synth_recipes` VALUES (49906,1,0,0,0,0,0,17,0,0,0,4100,4242,16386,0,0,0,0,0,0,0,715,852,850,850,1,1,1,2,'Lizard Cesti (desynth)',NULL); -- 2021.11.16 Based on synth. Sites that show are in agreement. @@ -3169,7 +3169,7 @@ INSERT INTO `synth_recipes` VALUES (49915,1,0,0,0,0,0,9,0,0,0,4100,4242,12824,0, INSERT INTO `synth_recipes` VALUES (49916,1,0,0,0,0,0,7,0,0,0,4100,4242,13594,0,0,0,0,0,0,0,817,856,856,856,1,3,4,5,'Rabbit Mantle (desynth)',NULL); INSERT INTO `synth_recipes` VALUES (49917,1,0,0,0,0,0,16,0,0,0,4100,4242,12697,0,0,0,0,0,0,0,817,850,852,852,3,1,1,1,'Lizard Gloves (desynth)',NULL); -- 2021.11.16 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49918,1,0,0,0,0,0,6,0,0,0,4100,4242,12952,0,0,0,0,0,0,0,649,850,850,850,1,1,2,3,'Leather Highboots (desynth)',NULL); -- 2021.11.16 Based on synth. Sites that show are in agreement. -INSERT INTO `synth_recipes` VALUES (49919,1,0,0,0,0,0,94,0,0,0,4100,4242,14372,0,0,0,0,0,0,0,851,855,1117,823,1,1,1,1,'Cardinal Vest (desynth)',NULL); +INSERT INTO `synth_recipes` VALUES (49919,1,0,0,0,0,0,94,0,0,0,4100,4242,14372,0,0,0,0,0,0,0,851,855,1117,823,1,1,1,1,'Cardinal Vest (desynth)','ROTZ'); INSERT INTO `synth_recipes` VALUES (49920,1,0,0,0,0,0,70,0,0,0,4100,4242,13754,0,0,0,0,0,0,0,851,855,855,855,1,1,1,1,'Black Cotehardie (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49921,1,0,0,0,0,0,8,0,0,0,4100,4242,12696,0,0,0,0,0,0,0,817,817,850,850,2,3,2,3,'Leather Gloves (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49922,1,0,0,0,0,0,43,0,0,0,4100,4242,13200,0,0,0,0,0,0,0,817,851,851,851,1,1,2,2,'Waistbelt (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. @@ -3183,22 +3183,22 @@ INSERT INTO `synth_recipes` VALUES (49929,1,0,0,0,0,0,10,0,0,0,4100,4242,12568,0 INSERT INTO `synth_recipes` VALUES (49930,1,0,0,0,0,0,96,0,0,0,4100,4242,14846,0,0,0,0,0,0,0,816,855,1680,1680,1,1,1,1,'Sha\'ir Gages (desynth)','COP'); -- 2021.11.15 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49931,1,0,0,0,0,0,28,0,0,0,4100,4242,14323,0,0,0,0,0,0,0,850,819,819,819,1,3,5,5,'Noct Brais (desynth)','COP'); -- 2021.11.15 Based on synth. FFXIclopedia shows mats 1,3,5,7. Chaged HQ3 to 5 based on Allakhazam and FFXIAH. INSERT INTO `synth_recipes` VALUES (49932,1,0,0,0,0,0,13,0,0,0,4100,4242,13192,0,0,0,0,0,0,0,850,850,651,651,1,1,1,2,'Leather Belt (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. -INSERT INTO `synth_recipes` VALUES (49933,1,0,0,0,0,0,93,0,0,0,4100,4242,13939,0,0,0,0,0,0,0,850,851,851,851,1,1,1,1,'Austere Hat (desynth)',NULL); -- BG data incomplete but does not contradict -INSERT INTO `synth_recipes` VALUES (49934,1,0,0,0,0,0,88,0,0,0,4100,4242,12703,0,0,0,0,0,0,0,850,850,851,506,1,2,1,1,'Coeurl Gloves (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. +INSERT INTO `synth_recipes` VALUES (49933,1,0,0,0,0,0,93,0,0,0,4100,4242,13939,0,0,0,0,0,0,0,850,851,851,851,1,1,1,1,'Austere Hat (desynth)','ROTZ'); -- BG data incomplete but does not contradict +INSERT INTO `synth_recipes` VALUES (49934,1,0,0,0,0,0,88,0,0,0,4100,4242,12703,0,0,0,0,0,0,0,850,850,851,506,1,2,1,1,'Coeurl Gloves (desynth)','ROTZ'); -- 2021.11.15 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49935,1,0,0,0,0,0,5,0,0,0,4100,4242,12440,0,0,0,0,0,0,0,850,850,850,850,1,1,1,1,'Leather Bandana (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. -INSERT INTO `synth_recipes` VALUES (49936,1,0,0,0,0,0,88,0,0,0,4100,4242,13704,0,0,0,0,0,0,0,850,506,1117,1117,1,1,1,1,'Ogre Mask (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. +INSERT INTO `synth_recipes` VALUES (49936,1,0,0,0,0,0,88,0,0,0,4100,4242,13704,0,0,0,0,0,0,0,850,506,1117,1117,1,1,1,1,'Ogre Mask (desynth)','ROTZ'); -- 2021.11.15 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49937,1,0,0,0,0,0,14,0,0,0,4100,4242,13592,0,0,0,0,0,0,0,817,852,869,869,1,1,1,1,'Lizard Mantle (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49938,1,0,0,0,0,0,41,0,0,0,4100,4242,13203,0,0,0,0,0,0,0,850,924,924,924,1,1,1,1,'Barbarian\'s Belt (desynth)',NULL); -- BG data incomplete but does not contradict -INSERT INTO `synth_recipes` VALUES (49939,1,0,0,0,0,0,90,0,0,0,4100,4242,13705,0,0,0,0,0,0,0,850,506,1117,849,1,2,1,1,'Ogre Jerkin (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. +INSERT INTO `synth_recipes` VALUES (49939,1,0,0,0,0,0,90,0,0,0,4100,4242,13705,0,0,0,0,0,0,0,850,506,1117,849,1,2,1,1,'Ogre Jerkin (desynth)','ROTZ'); -- 2021.11.15 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49940,1,0,0,0,0,0,62,0,0,0,4100,4242,13546,0,0,0,0,0,0,0,855,855,855,855,1,1,1,1,'Hard Leather Ring (desynth)',NULL); INSERT INTO `synth_recipes` VALUES (49941,1,0,0,0,0,0,70,0,0,0,4100,4242,13591,0,0,0,0,0,0,0,820,820,820,820,1,1,1,1,'Behemoth Mantle (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. -- INSERT INTO `synth_recipes` VALUES (49942,1,0,0,0,0,0,255,0,0,0,4098,4240,1196,0,0,0,0,0,0,0,879,879,879,879,1,1,1,1,'Qiqirn Cape (desynth)','TOAU'); -- 2021.11.15 Sites agree about materials though disagree about level. FFXIclopedia 12 JPWiki ?? INSERT INTO `synth_recipes` VALUES (49943,1,0,0,0,0,0,15,0,0,0,4100,4242,12441,0,0,0,0,0,0,0,850,852,852,852,1,1,2,2,'Lizard Helm (desynth)',NULL); -- 2021.11.15 Level based on synth. Items taken from FFXIclopedia though there is disagreement. This makes the most sense based on synth. INSERT INTO `synth_recipes` VALUES (49944,1,0,0,0,0,0,57,0,0,0,4100,4242,13703,0,0,0,0,0,0,0,850,852,851,851,1,3,1,1,'Brigandine (desynth)',NULL); -INSERT INTO `synth_recipes` VALUES (49945,1,0,0,0,0,0,91,0,0,0,4100,4242,14182,0,0,0,0,0,0,0,816,851,849,821,1,2,1,1,'Errant Pigaches (desynth)',NULL); +INSERT INTO `synth_recipes` VALUES (49945,1,0,0,0,0,0,91,0,0,0,4100,4242,14182,0,0,0,0,0,0,0,816,851,849,821,1,2,1,1,'Errant Pigaches (desynth)','ROTZ'); INSERT INTO `synth_recipes` VALUES (49946,1,0,0,0,0,0,24,0,0,0,4100,4242,12442,0,0,0,0,0,0,0,850,850,651,651,1,1,1,1,'Studded Bandana (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. INSERT INTO `synth_recipes` VALUES (49947,1,0,0,0,0,0,29,0,0,0,4100,4242,12993,0,0,0,0,0,0,0,850,850,848,848,1,1,1,1,'Sandals (desynth)',NULL); -- 2021.11.15 Based on synth. Sites that show are in agreement. -INSERT INTO `synth_recipes` VALUES (49948,1,0,0,0,0,0,85,0,0,0,4100,4242,13595,0,0,0,0,0,0,0,820,863,863,863,1,1,1,1,'Coeurl Mantle (desynth)',NULL); +INSERT INTO `synth_recipes` VALUES (49948,1,0,0,0,0,0,85,0,0,0,4100,4242,13595,0,0,0,0,0,0,0,820,863,863,863,1,1,1,1,'Coeurl Mantle (desynth)','ROTZ'); INSERT INTO `synth_recipes` VALUES (49949,1,0,0,0,0,0,34,0,0,0,4098,4240,1638,0,0,0,0,0,0,0,850,850,850,850,1,1,1,1,'Moblin Mask (desynth)','COP'); -- 2021.11.15 JPWiki and FFXIclopedia show level 34 INSERT INTO `synth_recipes` VALUES (49950,1,0,0,0,0,0,26,0,0,0,4100,4242,12698,0,0,0,0,0,0,0,817,850,848,651,3,2,1,2,'Studded Gloves (desynth)',NULL); -- 2022.03.01 Base on FFXIclopedia -- INSERT INTO `synth_recipes` VALUES (49951,1,0,0,0,0,0,32,0,0,0,4100,4242,12570,0,0,0,0,0,0,0,848,651,848,851,1,2,1,1,'Studded Vest (desynth)',NULL); -- Based on normal desynth behavior, More info needed @@ -3462,7 +3462,7 @@ INSERT INTO `synth_recipes` VALUES (54037,0,0,0,0,0,0,0,90,0,0,4099,4241,894,903 INSERT INTO `synth_recipes` VALUES (54038,0,0,0,0,40,0,0,90,0,0,4099,4241,760,760,760,1715,1835,0,0,0,10963,10963,10963,10963,1,1,1,1,'Airmid\'s Gorget','ABYSSEA'); -- INSERT INTO `synth_recipes` VALUES (54039,0,0,0,0,0,0,0,90,255,0,4098,4240,887,887,3931,3934,0,0,0,0,28583,28584,28584,28584,1,1,1,1,'Vexer Ring','SOA'); -- 2021.11.10 All agree 90 Bonecraft unknown Alchemy INSERT INTO `synth_recipes` VALUES (54040,0,0,0,0,0,0,0,90,0,0,4098,4240,880,3938,0,0,0,0,0,0,3946,3946,3946,3946,6,8,10,12,'Mantid Arrowheads','SOA'); -INSERT INTO `synth_recipes` VALUES (54041,0,0,0,0,0,0,59,90,0,0,4099,4241,862,862,886,886,0,0,0,0,13767,13768,13768,13768,1,1,1,1,'Demon\'s Harness',NULL); +INSERT INTO `synth_recipes` VALUES (54041,0,0,0,0,0,0,59,90,0,0,4099,4241,862,862,886,886,0,0,0,0,13767,13768,13768,13768,1,1,1,1,'Demon\'s Harness','ROTZ'); INSERT INTO `synth_recipes` VALUES (54042,0,2026,0,0,0,0,0,90,0,0,4098,4240,880,880,880,2130,3938,3938,3938,0,3946,3946,3946,3946,18,24,30,36,'Mantid Arrowheads','SOA'); INSERT INTO `synth_recipes` VALUES (54043,0,0,0,41,0,0,0,90,0,0,4099,4241,664,682,822,866,866,866,867,12568,12564,13762,13762,13762,1,1,1,1,'Dragon Mail',NULL); INSERT INTO `synth_recipes` VALUES (54044,0,0,0,0,0,0,0,90,0,0,4099,4241,9512,0,0,0,0,0,0,0,16416,16416,16416,16416,1,1,1,1,'Dragon Claws','ROV'); From 6aab1e59941ec9597e205912e7d514d16d59fe1e Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Thu, 9 Jul 2026 22:00:43 -0400 Subject: [PATCH 39/59] Add Mandragora / Sabotender Photosynthesis Adds Mandragora / Sabotender Photosynthesis --- ...esis.lua => photosynthesis_mandragora.lua} | 6 ++-- .../mobskills/photosynthesis_sabotender.lua | 34 +++++++++++++++++++ sql/mob_skills.sql | 6 ++-- 3 files changed, 40 insertions(+), 6 deletions(-) rename scripts/actions/mobskills/{photosynthesis.lua => photosynthesis_mandragora.lua} (86%) create mode 100644 scripts/actions/mobskills/photosynthesis_sabotender.lua diff --git a/scripts/actions/mobskills/photosynthesis.lua b/scripts/actions/mobskills/photosynthesis_mandragora.lua similarity index 86% rename from scripts/actions/mobskills/photosynthesis.lua rename to scripts/actions/mobskills/photosynthesis_mandragora.lua index 7e53b9ce656..48bf3f1647c 100644 --- a/scripts/actions/mobskills/photosynthesis.lua +++ b/scripts/actions/mobskills/photosynthesis_mandragora.lua @@ -1,7 +1,7 @@ ----------------------------------- -- Photosynthesis --- --- Description: Adds a Regen xi.effect. +-- Family : Mandragora +-- Description : Adds Regen Effect -- Type: Enhancing -- Utsusemi/Blink absorb: N/A -- Range: Self @@ -24,7 +24,7 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill) end mobskillObject.onMobWeaponSkill = function(mob, target, skill, action) - local power = math.floor(mob:getMainLvl() / 10) + local power = 1 + math.floor(mob:getMainLvl() / 10) skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.REGEN, power, 0, 120)) diff --git a/scripts/actions/mobskills/photosynthesis_sabotender.lua b/scripts/actions/mobskills/photosynthesis_sabotender.lua new file mode 100644 index 00000000000..4fdada3b893 --- /dev/null +++ b/scripts/actions/mobskills/photosynthesis_sabotender.lua @@ -0,0 +1,34 @@ +----------------------------------- +-- Photosynthesis +-- Family : Sabotender +-- Description: Adds Regen Effect +-- Type: Enhancing +-- Utsusemi/Blink absorb: N/A +-- Range: Self +-- Notes: Only available during daytime. +----------------------------------- +---@type TMobSkill +local mobskillObject = {} + +mobskillObject.onMobSkillCheck = function(target, mob, skill) + -- only used during daytime + local currentTime = VanadielHour() + if + not mob:hasStatusEffect(xi.effect.REGEN) and + currentTime >= 6 and currentTime <= 18 + then + return 0 + end + + return 1 +end + +mobskillObject.onMobWeaponSkill = function(mob, target, skill, action) + local power = 1 + math.floor(mob:getMainLvl() / 5) -- TODO: Checked roughly. Needs more spot checks. + + skill:setMsg(xi.mobskills.mobBuffMove(mob, xi.effect.REGEN, power, 0, 180)) + + return xi.effect.REGEN +end + +return mobskillObject diff --git a/sql/mob_skills.sql b/sql/mob_skills.sql index 5d3a0d9deeb..78414e9ebeb 100644 --- a/sql/mob_skills.sql +++ b/sql/mob_skills.sql @@ -332,7 +332,7 @@ INSERT INTO `mob_skills` VALUES (300,44,'head_butt',0,0.0,7.0,1500,800,4,0,0,0,0 INSERT INTO `mob_skills` VALUES (301,45,'dream_flower',1,0.0,15.0,2000,1200,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (302,46,'wild_oats',0,0.0,7.0,2000,800,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (303,47,'hundred_fists',0,0.0,7.0,2000,0,1,4,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (304,48,'photosynthesis',0,0.0,7.0,2000,800,1,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (304,48,'photosynthesis_mandragora',0,0.0,7.0,2000,800,1,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (305,49,'leaf_dagger',0,0.0,7.0,2000,1200,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (306,50,'scream',1,0.0,15.0,2000,800,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (307,439,'substitute',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); @@ -352,7 +352,7 @@ INSERT INTO `mob_skills` VALUES (320,64,'sweet_breath',4,0.0,15.0,2000,1500,4,0, INSERT INTO `mob_skills` VALUES (321,65,'needleshot',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (322,66,'1000_needles',1,0.0,10.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (323,37,'wild_carrot',0,0.0,20.0,2000,2600,1,0,0,0,0,0,0); -INSERT INTO `mob_skills` VALUES (324,68,'photosynthesis',0,0.0,7.0,2000,1500,1,0,0,0,0,0,0); +INSERT INTO `mob_skills` VALUES (324,68,'photosynthesis_sabotender',0,0.0,7.0,2000,1500,1,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (325,161,'random_kiss',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (326,164,'absorbing_kiss',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (327,165,'deep_kiss',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); @@ -3380,7 +3380,7 @@ INSERT INTO `mob_skills` VALUES (3337,313,'lunar_bay',0,0.0,10.0,519,1500,4,0,0, -- INSERT INTO `mob_skills` VALUES (3349,3093,'dark_burst',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -- INSERT INTO `mob_skills` VALUES (3350,3094,'dark_flood',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (3351,46,'wild_oats',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); -- BabbanMheillea --- INSERT INTO `mob_skills` VALUES (3352,3096,'photosynthesis',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); +-- INSERT INTO `mob_skills` VALUES (3352,3096,'photosynthesis_mandragora',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (3353,1603,'petal_pirouette',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (3354,44,'head_butt',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); INSERT INTO `mob_skills` VALUES (3355,325,'blow',0,0.0,7.0,2000,1500,4,0,0,0,0,0,0); From 6d1a597101c059ce5e09c3a4abeed92ff3762027 Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Thu, 9 Jul 2026 23:46:17 -0400 Subject: [PATCH 40/59] Fix Tateeya Attachment Trade Prevents more than 1 item from being accepted --- scripts/zones/Aht_Urhgan_Whitegate/npcs/Tateeya.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/zones/Aht_Urhgan_Whitegate/npcs/Tateeya.lua b/scripts/zones/Aht_Urhgan_Whitegate/npcs/Tateeya.lua index 228a27ebe3c..11da3509031 100644 --- a/scripts/zones/Aht_Urhgan_Whitegate/npcs/Tateeya.lua +++ b/scripts/zones/Aht_Urhgan_Whitegate/npcs/Tateeya.lua @@ -20,6 +20,7 @@ entity.onTrade = function(player, npc, trade) player:startEventString(651, automatonName, automatonName, automatonName, automatonName, subid) --unlock attachment event if trade:confirmSlot(i) then player:confirmTrade() + break end else player:startEvent(652) --already unlocked event From cc544e832d3919e38a992cb554781ea19d14d38a Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 17:02:53 -0600 Subject: [PATCH 41/59] Toteboard packets --- scripts/globals/chocobo_racing.lua | 251 ++++++++++++++++++ scripts/zones/Chocobo_Circuit/npcs/Jadamo.lua | 17 ++ .../zones/Chocobo_Circuit/npcs/Jaicedion.lua | 17 ++ .../zones/Chocobo_Circuit/npcs/Olorinda.lua | 17 ++ .../Chocobo_Circuit/npcs/Uhko_Rolinzoh.lua | 17 ++ scripts/zones/Chocobo_Circuit/npcs/Urbano.lua | 17 ++ src/map/enums/packet_s2c.h | 4 +- src/map/lua/lua_base_entity.cpp | 22 +- .../packets/c2s/0x09b_chocobo_race_req.cpp | 177 +++--------- src/map/packets/s2c/0x069_chocobo_racing.cpp | 28 ++ src/map/packets/s2c/0x069_chocobo_racing.h | 3 + .../packets/s2c/0x073_chocobo_toteboard.cpp | 36 +++ src/map/packets/s2c/0x073_chocobo_toteboard.h | 45 ++++ src/map/packets/s2c/0x074_chocobo_list.cpp | 76 ++++++ src/map/packets/s2c/0x074_chocobo_list.h | 112 ++++++++ src/map/packets/s2c/CMakeLists.txt | 4 + 16 files changed, 683 insertions(+), 160 deletions(-) create mode 100644 scripts/zones/Chocobo_Circuit/npcs/Jadamo.lua create mode 100644 scripts/zones/Chocobo_Circuit/npcs/Jaicedion.lua create mode 100644 scripts/zones/Chocobo_Circuit/npcs/Olorinda.lua create mode 100644 scripts/zones/Chocobo_Circuit/npcs/Uhko_Rolinzoh.lua create mode 100644 scripts/zones/Chocobo_Circuit/npcs/Urbano.lua create mode 100644 src/map/packets/s2c/0x073_chocobo_toteboard.cpp create mode 100644 src/map/packets/s2c/0x073_chocobo_toteboard.h create mode 100644 src/map/packets/s2c/0x074_chocobo_list.cpp create mode 100644 src/map/packets/s2c/0x074_chocobo_list.h diff --git a/scripts/globals/chocobo_racing.lua b/scripts/globals/chocobo_racing.lua index ff376eecee3..58fe2d06899 100644 --- a/scripts/globals/chocobo_racing.lua +++ b/scripts/globals/chocobo_racing.lua @@ -8,6 +8,12 @@ require('scripts/globals/packet') xi = xi or {} xi.chocoboRacing = xi.chocoboRacing or {} +local settings = +{ + RACE_PERIOD = 900, -- A race every 15 minutes. + VANADIEL_EPOCH = 1009810800, -- Jan 1 2002 +} + -- FOR HEAVILY-IN-DEVELOPMET TESTING, you can force these setting: -- TODO: When ready for release, publish these to main settings files. xi.settings.main.ENABLE_CHOCOBO_RACING = false @@ -260,3 +266,248 @@ xi.chocoboRacing.onEventFinish = function(player, csid, option, npc) debug(player, 'Hand out winnings') end end + +-- This is an example set of 8 Chocobos competing in the upcoming race +-- Replace with actual chocobos when implementing. +local fakeChocoboRacers = +{ + { + name = 'Joyeuse', + orders = xi.chocoboRacing.order.KEEP_PACE, + item = xi.chocoboRacing.sectionEvent.SPEED_APPLE, + weather = xi.chocoboRaising.weather.RAINY, + color = xi.chocoboRaising.color.BLACK, + gender = xi.chocoboRaising.gender.FEMALE, + size = xi.chocoboRacing.jockeySize.HUME_M, + ability1 = xi.chocoboRaising.ability.BURROW, + ability2 = xi.chocoboRaising.ability.NONE, + temperament = xi.chocoboRaising.temperament.VERY_PATIENT, + stats = + { + str = xi.chocoboRaising.statRank.BETTER_THAN_AVG, + ['end'] = xi.chocoboRaising.statRank.OUTSTANDING, + dsc = xi.chocoboRaising.statRank.IMPRESSIVE, + rcp = xi.chocoboRaising.statRank.IMPRESSIVE, + }, + }, + { + name = 'Schuss', + orders = xi.chocoboRacing.order.KEEP_PACE, + item = xi.chocoboRacing.sectionEvent.FIRE_BISCUIT, + weather = xi.chocoboRaising.weather.CLEAR, + color = xi.chocoboRaising.color.RED, + gender = xi.chocoboRaising.gender.MALE, + size = xi.chocoboRacing.jockeySize.HUME_M, + ability1 = xi.chocoboRaising.ability.NONE, + ability2 = xi.chocoboRaising.ability.NONE, + temperament = xi.chocoboRaising.temperament.ILL_TEMPERED, + stats = + { + str = xi.chocoboRaising.statRank.BETTER_THAN_AVG, + ['end'] = xi.chocoboRaising.statRank.AVERAGE, + dsc = xi.chocoboRaising.statRank.FIRST_CLASS, + rcp = xi.chocoboRaising.statRank.OUTSTANDING, + }, + }, + { + name = 'Humble', + orders = xi.chocoboRacing.order.FINAL_SPURT, + item = xi.chocoboRacing.sectionEvent.SPEED_APPLE, + weather = xi.chocoboRaising.weather.CLEAR, + color = xi.chocoboRaising.color.BLACK, + gender = xi.chocoboRaising.gender.MALE, + size = xi.chocoboRacing.jockeySize.HUME_F, + ability1 = xi.chocoboRaising.ability.BURROW, + ability2 = xi.chocoboRaising.ability.GALLOP, + temperament = xi.chocoboRaising.temperament.QUITE_SENSITIVE, + stats = + { + str = xi.chocoboRaising.statRank.FIRST_CLASS, + ['end'] = xi.chocoboRaising.statRank.FIRST_CLASS, + dsc = xi.chocoboRaising.statRank.BETTER_THAN_AVG, + rcp = xi.chocoboRaising.statRank.POOR, + }, + }, + { + name = 'Melody', + orders = xi.chocoboRacing.order.FINAL_SPURT, + item = xi.chocoboRacing.sectionEvent.GYSAHL_BOMB, + weather = xi.chocoboRaising.weather.CLEAR, + color = xi.chocoboRaising.color.GREEN, + gender = xi.chocoboRaising.gender.MALE, + size = xi.chocoboRacing.jockeySize.HUME_M, + ability1 = xi.chocoboRaising.ability.NONE, + ability2 = xi.chocoboRaising.ability.NONE, + temperament = xi.chocoboRaising.temperament.VERY_PATIENT, + stats = + { + str = xi.chocoboRaising.statRank.FIRST_CLASS, + ['end'] = xi.chocoboRaising.statRank.FIRST_CLASS, + dsc = xi.chocoboRaising.statRank.A_BIT_DEFICIENT, + rcp = xi.chocoboRaising.statRank.A_BIT_DEFICIENT, + }, + }, + { + name = 'Gagnante', + orders = xi.chocoboRacing.order.KEEP_PACE, + item = xi.chocoboRacing.sectionEvent.PEPPER_BISCUIT, + weather = xi.chocoboRaising.weather.RAINY, + color = xi.chocoboRaising.color.RED, + gender = xi.chocoboRaising.gender.MALE, + size = xi.chocoboRacing.jockeySize.HUME_F, + ability1 = xi.chocoboRaising.ability.BURROW, + ability2 = xi.chocoboRaising.ability.CANTER, + temperament = xi.chocoboRaising.temperament.ENIGMATIC, + stats = + { + str = xi.chocoboRaising.statRank.FIRST_CLASS, + ['end'] = xi.chocoboRaising.statRank.OUTSTANDING, + dsc = xi.chocoboRaising.statRank.AVERAGE, + rcp = xi.chocoboRaising.statRank.BETTER_THAN_AVG, + }, + }, + { + name = 'Jolie', + orders = xi.chocoboRacing.order.KEEP_PACE, + item = xi.chocoboRacing.sectionEvent.FIRE_BISCUIT, + weather = xi.chocoboRaising.weather.SANDSTORMS, + color = xi.chocoboRaising.color.YELLOW, + gender = xi.chocoboRaising.gender.FEMALE, + size = xi.chocoboRacing.jockeySize.HUME_F, + ability1 = xi.chocoboRaising.ability.BORE, + ability2 = xi.chocoboRaising.ability.NONE, + temperament = xi.chocoboRaising.temperament.ENIGMATIC, + stats = + { + str = xi.chocoboRaising.statRank.BETTER_THAN_AVG, + ['end'] = xi.chocoboRaising.statRank.AVERAGE, + dsc = xi.chocoboRaising.statRank.FIRST_CLASS, + rcp = xi.chocoboRaising.statRank.OUTSTANDING, + }, + }, + { + name = 'Invincible', + orders = xi.chocoboRacing.order.SPRINT, + item = xi.chocoboRacing.sectionEvent.SHADOW_APPLE, + weather = xi.chocoboRaising.weather.CLEAR, + color = xi.chocoboRaising.color.YELLOW, + gender = xi.chocoboRaising.gender.FEMALE, + size = xi.chocoboRacing.jockeySize.HUME_M, + ability1 = xi.chocoboRaising.ability.NONE, + ability2 = xi.chocoboRaising.ability.NONE, + temperament = xi.chocoboRaising.temperament.ILL_TEMPERED, + stats = + { + str = xi.chocoboRaising.statRank.FIRST_CLASS, + ['end'] = xi.chocoboRaising.statRank.FIRST_CLASS, + dsc = xi.chocoboRaising.statRank.POOR, + rcp = xi.chocoboRaising.statRank.POOR, + }, + }, + { + name = 'Bec', + orders = xi.chocoboRacing.order.KEEP_PACE, + item = xi.chocoboRacing.sectionEvent.FIRE_BISCUIT, + weather = xi.chocoboRaising.weather.CLEAR, + color = xi.chocoboRaising.color.YELLOW, + gender = xi.chocoboRaising.gender.FEMALE, + size = xi.chocoboRacing.jockeySize.HUME_F, + ability1 = xi.chocoboRaising.ability.NONE, + ability2 = xi.chocoboRaising.ability.NONE, + temperament = xi.chocoboRaising.temperament.QUITE_SENSITIVE, + stats = + { + str = xi.chocoboRaising.statRank.BETTER_THAN_AVG, + ['end'] = xi.chocoboRaising.statRank.AVERAGE, + dsc = xi.chocoboRaising.statRank.FIRST_CLASS, + rcp = xi.chocoboRaising.statRank.OUTSTANDING, + }, + }, +} + +-- Return auto-generated race number, advancing every 15 minutes +xi.chocoboRacing.currentRaceNo = function() + return math.floor(GetSystemTime() / settings.RACE_PERIOD) +end + +-- Sends the "Betting ends in..." countdown via a PENDINGNUM +xi.chocoboRacing.sendBettingCountdown = function(player, listIndex) + local now = GetSystemTime() + local closesIn = settings.RACE_PERIOD - (now % settings.RACE_PERIOD) + player:updateEvent( + closesIn, -- When the betting period ends + now - settings.VANADIEL_EPOCH, -- Current server time. Used by client to know when to refresh. + 0, 0, 0, + closesIn, -- When the betting period ends + 1, -- Unknown + listIndex or 0 -- Presently unused but may be used to index into a different race + ) +end + +xi.chocoboRacing.onToteboardTrigger = function(player, eventId) + player:startEvent( + eventId, -- NPC Event ID + 1, -- Race weather + -1, -1, -1, -- PC position, retail sends -1 + player:getRotPos() * 16, -- PC rotation, retail sends rot * 16 + 0, -- Copied but never used by event scripts + GetSystemTime() - settings.VANADIEL_EPOCH, -- Server timestamp, appears to be unused by event + 2 -- 2 opens the board, -1 shows "Preparations for the next race are underway" + ) +end + +xi.chocoboRacing.onToteboardEventUpdate = function(player, option) + -- Client is browsing to the Toteboard or the client is requesting an automatic update + if option == 3 or option == 4 then + xi.chocoboRacing.sendBettingCountdown(player, 0) + return + end + + -- Client is requesting to view a specific chocobo from the Paddock + if option % 8 == 0 and option <= 56 then + local slot = math.floor(option / 8) + local choco = fakeChocoboRacers[slot + 1] + if choco then + -- Pack the chocobo stats for event purposes: + -- statBytes = STR|END|DSC|RCP, dna = the ability/weather/gender/colour/size/temperament bitfield. + local stats = choco.stats + local statBytes = bit.bor(bit.lshift(stats.str, 5), bit.lshift(stats['end'], 13), bit.lshift(stats.dsc, 21), bit.lshift(stats.rcp, 29)) + local dna = bit.bor(bit.lshift(choco.ability1, 9), bit.lshift(choco.ability2, 13), bit.lshift(choco.temperament, 17), bit.lshift(choco.weather, 20), bit.lshift(choco.gender, 24), + bit.lshift(choco.color, 25), bit.lshift(choco.size, 28)) + + -- First, send a PENDINGSTR with the name of the Chocobo (all 4 slots) + player:updateEventString(choco.name, choco.name, choco.name, choco.name) + -- Second, update the event VM with the Chocobo stats + player:updateEvent(6, 0, choco.orders, choco.item, statBytes, dna, 1, slot * 2) + end + end +end + +-- Flow race information back to core for specific menu requests. (Toteboard) +xi.chocoboRacing.onRaceRequest = function(player, param, kind) + if kind == 1 then -- Toteboard: betting odds + -- Quinella odds: exactly 28 entries must be passed, one per chocobo pair (8-choose-2 = 28), + -- in this fixed order (a pair = the two chocobos finishing 1st/2nd, in either order): + -- [1]=(1,2) [2]=(1,3) [3]=(1,4) [4]=(1,5) [5]=(1,6) [6]=(1,7) [7]=(1,8) + -- [8]=(2,3) [9]=(2,4) [10]=(2,5) [11]=(2,6) [12]=(2,7) [13]=(2,8) + -- [14]=(3,4) [15]=(3,5) [16]=(3,6) [17]=(3,7) [18]=(3,8) + -- [19]=(4,5) [20]=(4,6) [21]=(4,7) [22]=(4,8) + -- [23]=(5,6) [24]=(5,7) [25]=(5,8) + -- [26]=(6,7) [27]=(6,8) + -- [28]=(7,8) + -- Each value is that pair's payout; 50000 means "no bet". + return + { + grade = xi.chocoboRacing.raceGrade.C4, + raceNumber = xi.chocoboRacing.currentRaceNo(), + odds = { 10050, 773, 837, 913, 50000, 50000, 773, 2512, 3350, 2512, 50000, 50000, 50000, 558, 670, 50000, 50000, 1256, 628, 50000, 50000, 773, 50000, 50000, 3350, 50000, 50000, 50000 }, + } + end + + -- ChocoboList: race weather and entrant field + return + { + weather = xi.weather.SUNSHINE, + chocobos = fakeChocoboRacers, + } +end diff --git a/scripts/zones/Chocobo_Circuit/npcs/Jadamo.lua b/scripts/zones/Chocobo_Circuit/npcs/Jadamo.lua new file mode 100644 index 00000000000..f1ef3002484 --- /dev/null +++ b/scripts/zones/Chocobo_Circuit/npcs/Jadamo.lua @@ -0,0 +1,17 @@ +----------------------------------- +-- Area: Chocobo Circuit +-- NPC: Jadamo +-- !pos -65.812 -14.500 -136.126 70 +----------------------------------- +---@type TNpcEntity +local entity = {} + +entity.onTrigger = function(player, npc) + xi.chocoboRacing.onToteboardTrigger(player, 335) +end + +entity.onEventUpdate = function(player, csid, option, npc) + xi.chocoboRacing.onToteboardEventUpdate(player, option) +end + +return entity diff --git a/scripts/zones/Chocobo_Circuit/npcs/Jaicedion.lua b/scripts/zones/Chocobo_Circuit/npcs/Jaicedion.lua new file mode 100644 index 00000000000..2b9a03a4227 --- /dev/null +++ b/scripts/zones/Chocobo_Circuit/npcs/Jaicedion.lua @@ -0,0 +1,17 @@ +----------------------------------- +-- Area: Chocobo Circuit +-- NPC: Jaicedion +-- !pos -41.904 -14.500 -135.923 70 +----------------------------------- +---@type TNpcEntity +local entity = {} + +entity.onTrigger = function(player, npc) + xi.chocoboRacing.onToteboardTrigger(player, 336) +end + +entity.onEventUpdate = function(player, csid, option, npc) + xi.chocoboRacing.onToteboardEventUpdate(player, option) +end + +return entity diff --git a/scripts/zones/Chocobo_Circuit/npcs/Olorinda.lua b/scripts/zones/Chocobo_Circuit/npcs/Olorinda.lua new file mode 100644 index 00000000000..86cf02f71c6 --- /dev/null +++ b/scripts/zones/Chocobo_Circuit/npcs/Olorinda.lua @@ -0,0 +1,17 @@ +----------------------------------- +-- Area: Chocobo Circuit +-- NPC: Olorinda +-- !pos -113.471 -14.500 -136.238 70 +----------------------------------- +---@type TNpcEntity +local entity = {} + +entity.onTrigger = function(player, npc) + xi.chocoboRacing.onToteboardTrigger(player, 333) +end + +entity.onEventUpdate = function(player, csid, option, npc) + xi.chocoboRacing.onToteboardEventUpdate(player, option) +end + +return entity diff --git a/scripts/zones/Chocobo_Circuit/npcs/Uhko_Rolinzoh.lua b/scripts/zones/Chocobo_Circuit/npcs/Uhko_Rolinzoh.lua new file mode 100644 index 00000000000..7f8ea31a971 --- /dev/null +++ b/scripts/zones/Chocobo_Circuit/npcs/Uhko_Rolinzoh.lua @@ -0,0 +1,17 @@ +----------------------------------- +-- Area: Chocobo Circuit +-- NPC: Uhko Rolinzoh +-- !pos -89.524 -14.500 -136.175 70 +----------------------------------- +---@type TNpcEntity +local entity = {} + +entity.onTrigger = function(player, npc) + xi.chocoboRacing.onToteboardTrigger(player, 334) +end + +entity.onEventUpdate = function(player, csid, option, npc) + xi.chocoboRacing.onToteboardEventUpdate(player, option) +end + +return entity diff --git a/scripts/zones/Chocobo_Circuit/npcs/Urbano.lua b/scripts/zones/Chocobo_Circuit/npcs/Urbano.lua new file mode 100644 index 00000000000..356523efc91 --- /dev/null +++ b/scripts/zones/Chocobo_Circuit/npcs/Urbano.lua @@ -0,0 +1,17 @@ +----------------------------------- +-- Area: Chocobo Circuit +-- NPC: Urbano +-- !pos -17.515 -14.500 -136.001 70 +----------------------------------- +---@type TNpcEntity +local entity = {} + +entity.onTrigger = function(player, npc) + xi.chocoboRacing.onToteboardTrigger(player, 337) +end + +entity.onEventUpdate = function(player, csid, option, npc) + xi.chocoboRacing.onToteboardEventUpdate(player, option) +end + +return entity diff --git a/src/map/enums/packet_s2c.h b/src/map/enums/packet_s2c.h index bcb1b960f86..fb3685f5a42 100644 --- a/src/map/enums/packet_s2c.h +++ b/src/map/enums/packet_s2c.h @@ -110,8 +110,8 @@ enum class PacketS2C : uint16_t GP_SERV_COMMAND_COMBINE_INF = 0x070, GP_SERV_COMMAND_INFLUENCE = 0x071, GP_SERV_COMMAND_UNKNOWN_072 = 0x072, - GP_SERV_COMMAND_UNKNOWN_073 = 0x073, - GP_SERV_COMMAND_UNKNOWN_074 = 0x074, + GP_SERV_COMMAND_CHOCOBO_TOTEBOARD = 0x073, + GP_SERV_COMMAND_CHOCOBO_LIST = 0x074, GP_SERV_COMMAND_BATTLEFIELD = 0x075, GP_SERV_COMMAND_GROUP_EFFECTS = 0x076, GP_SERV_COMMAND_ENTITY_VIS = 0x077, diff --git a/src/map/lua/lua_base_entity.cpp b/src/map/lua/lua_base_entity.cpp index ffc6feafc78..f0a86be2dfb 100644 --- a/src/map/lua/lua_base_entity.cpp +++ b/src/map/lua/lua_base_entity.cpp @@ -1150,27 +1150,7 @@ void CLuaBaseEntity::sendChocoboRace(const sol::table& race) const for (size_t idx = 1; idx <= count; ++idx) { - auto& entry = entries[idx - 1]; - const auto data = chocobos->get(idx); - - entry.Item = data.get_or("item", 0); // equipped item (sectionEvent) - entry.Orders = data.get_or("orders", 0); // jockey orders - entry.Size = data.get_or("size", 0); // jockey (jockeySize) - entry.Color = data.get_or("color", 0); // plumage colour - entry.Gender = data.get_or("gender", 0); - entry.Weather = data.get_or("weather", 0); // preferred weather (xi.chocoboRaising.weather) - entry.Temperament = data.get_or("temperament", 0); // display/raising trait; no race effect - entry.Ability1 = data.get_or("ability1", 0); // xi.chocoboRaising.ability (Gallop/Canter/...) - entry.Ability2 = data.get_or("ability2", 0); - - // Racing stats (chococard ranks 0-7 = F..SS): STR/END/DSC/RCP. - if (const auto stats = data.get>("stats")) - { - entry.STR.Rank = stats->get_or("str", 0); - entry.END.Rank = stats->get_or("end", 0); - entry.DSC.Rank = stats->get_or("dsc", 0); - entry.RCP.Rank = stats->get_or("rcp", 0); - } + entries[idx - 1] = GP_SERV_COMMAND_CHOCOBO_RACING::ChocoboParam::fromLua(chocobos->get(idx)); } PChar->pushPacket(entries); diff --git a/src/map/packets/c2s/0x09b_chocobo_race_req.cpp b/src/map/packets/c2s/0x09b_chocobo_race_req.cpp index 79d0d34a7bf..9e32605c401 100644 --- a/src/map/packets/c2s/0x09b_chocobo_race_req.cpp +++ b/src/map/packets/c2s/0x09b_chocobo_race_req.cpp @@ -22,166 +22,69 @@ #include "0x09b_chocobo_race_req.h" #include "entities/char_entity.h" -#include "packets/basic.h" +#include "lua/luautils.h" +#include "packets/s2c/0x073_chocobo_toteboard.h" +#include "packets/s2c/0x074_chocobo_list.h" auto GP_CLI_COMMAND_CHOCOBO_RACE_REQ::validate(MapSession* PSession, const CCharEntity* PChar) const -> PacketValidationResult { return PacketValidator(PChar) - .blockedBy({ BlockedState::InEvent }) - .oneOf(this->Param) + .mustEqual(PChar->getZone(), ZONE_CHOCOBO_CIRCUIT, "Not in Chocobo Circuit") .oneOf(this->Kind); } void GP_CLI_COMMAND_CHOCOBO_RACE_REQ::process(MapSession* PSession, CCharEntity* PChar) const { - ShowDebugFmt("GP_CLI_COMMAND_CHOCOBO_RACE_REQ: Not fully implemented. Param: {}, Kind: {}", this->Param, this->Kind); - - // NOTE: Can trigger with !cs 335 from Chocobo Circuit + const auto board = luautils::callGlobal("xi.chocoboRacing.onRaceRequest", PChar, this->Param, this->Kind); + if (board.empty()) + { + return; + } switch (static_cast(this->Kind)) { - case GP_CLI_COMMAND_CHOCOBO_RACE_REQ_KIND::Toteboard: + case GP_CLI_COMMAND_CHOCOBO_RACE_REQ_KIND::ChocoboList: { - auto packet = std::make_unique(); - packet->setType(0x73); - packet->setSize(0x48); + // Mode 1: race parameters. + PChar->pushPacket(board.get_or("weather", 0)); + + // Modes 2 & 3: entrant stats and names. + if (const auto chocobos = board.get>("chocobos")) + { + const auto count = std::min(chocobos->size(), GP_SERV_COMMAND_CHOCOBO_LIST::kNumRacers); + std::vector stats(count); + std::vector names(count); + + for (size_t idx = 1; idx <= count; ++idx) + { + const auto data = chocobos->get(idx); - packet->ref(0x04) = 0x01; + stats[idx - 1] = GP_SERV_COMMAND_CHOCOBO_RACING::ChocoboParam::fromLua(data); + names[idx - 1] = data.get_or("name", ""); + } - // Lots of look data, maybe? - packet->ref(0x08) = 0x003B4879; - packet->ref(0x10) = 0x00B1C350; - // etc. + PChar->pushPacket(stats); + PChar->pushPacket(names); + } - PChar->pushPacket(std::move(packet)); + // Mode 4: notify the client the exchange is done. + PChar->pushPacket(); } break; - case GP_CLI_COMMAND_CHOCOBO_RACE_REQ_KIND::ChocoboList: + case GP_CLI_COMMAND_CHOCOBO_RACE_REQ_KIND::Toteboard: { - // Send Chocobo Race Data (4x 0x074) - for (int idx = 0x01; idx <= 0x04; ++idx) + std::vector odds; + if (const auto oddsTable = board.get>("odds")) { - auto packet = std::make_unique(); - packet->setType(0x74); - packet->setSize(0xB3); - - packet->ref(0x03) = 0x04; - packet->ref(0x04) = 0x03; - - packet->ref(0x10) = idx; - - switch (idx) + const auto count = std::min(oddsTable->size(), GP_SERV_COMMAND_CHOCOBO_TOTEBOARD::kNumOdds); + odds.reserve(count); + for (size_t idx = 1; idx <= count; ++idx) { - /* - [2023-11-13 12:33:14] Incoming packet 0x074: - | 0 1 2 3 4 5 6 7 8 9 A B C D E F | 0123456789ABCDEF - ----------------------------------------------------- ---------------------- - 0 | 74 5A 98 04 03 00 00 00 00 00 00 00 00 00 00 00 0 | tZ.............. - 1 | 01 00 08 00 28 00 00 00 03 00 00 C0 00 00 00 00 1 | ....(........... - 2 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2 | ................ - 3 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3 | ................ - 4 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4 | ................ - 5 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5 | ................ - 6 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6 | ................ - 7 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7 | ................ - 8 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8 | ................ - 9 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9 | ................ - A | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A | ................ - B | 00 00 00 00 -- -- -- -- -- -- -- -- -- -- -- -- B | ....------------ - */ - case 0x01: - { - packet->ref(0x12) = 0x08; - packet->ref(0x14) = 0x28; // Seen also as 0xC8 - packet->ref(0x18) = 0x03; // Seen also as 0x01 - packet->ref(0x1B) = 0xC0; - break; - } - /* - [2023-11-13 12:33:14] Incoming packet 0x074: - | 0 1 2 3 4 5 6 7 8 9 A B C D E F | 0123456789ABCDEF - ----------------------------------------------------- ---------------------- - 0 | 74 5A 98 04 03 00 00 00 00 00 00 00 00 00 00 00 0 | tZ.............. - 1 | 02 00 60 00 30 00 00 00 FF FF 00 00 00 02 24 13 1 | ..`.0.........$. - 2 | 62 00 00 00 FF FF 40 40 00 82 02 15 41 00 00 00 2 | b.....@@....A... - 3 | E0 C0 60 80 00 02 20 26 21 00 00 00 C0 80 C0 80 3 | ..`... &!....... - 4 | 00 00 24 10 12 00 00 00 FF FF 80 00 00 02 40 10 4 | ..$...........@. - 5 | 51 00 00 00 80 60 E0 C0 00 08 08 10 30 00 00 00 5 | Q....`......0... - 6 | FF FF 00 00 00 0C 02 11 62 00 00 00 FF FF 40 40 6 | ........b.....@@ - 7 | 00 C6 20 22 00 00 00 00 00 00 00 00 00 00 00 00 7 | .. "............ - 8 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8 | ................ - 9 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9 | ................ - A | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A | ................ - B | 00 00 00 00 -- -- -- -- -- -- -- -- -- -- -- -- B | ....------------ - */ - case 0x02: - { - // Stat and other data starting at 0x12 - packet->ref(0x04) = 0x01; - packet->ref(0x14) = 0x12; - - packet->ref(0x18) = 0x0080FFFF; - packet->ref(0x1C) = 0x13000A00; - - break; - } - /* - [2023-11-13 12:33:14] Incoming packet 0x074: - | 0 1 2 3 4 5 6 7 8 9 A B C D E F | 0123456789ABCDEF - ----------------------------------------------------- ---------------------- - 0 | 74 5A 98 04 03 00 00 00 00 00 00 00 00 00 00 00 0 | tZ.............. - 1 | 03 00 A0 00 00 00 00 00 49 72 69 73 00 00 00 00 1 | ........Iris.... - 2 | 00 00 00 00 00 00 00 00 00 00 00 00 53 61 64 64 2 | ............Sadd - 3 | 6C 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3 | le.............. - 4 | 43 79 63 6C 6F 6E 65 00 00 00 00 00 00 00 00 00 4 | Cyclone......... - 5 | 00 00 00 00 50 72 69 6E 74 65 6D 70 73 00 00 00 5 | ....Printemps... - 6 | 00 00 00 00 00 00 00 00 54 72 69 73 74 61 6E 00 6 | ........Tristan. - 7 | 00 00 00 00 00 00 00 00 00 00 00 00 4F 75 74 6C 7 | ............Outl - 8 | 61 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8 | aw.............. - 9 | 48 75 72 72 69 63 61 6E 65 00 00 00 00 00 00 00 9 | Hurricane....... - A | 00 00 00 00 52 61 67 69 6E 67 00 00 00 00 00 00 A | ....Raging...... - B | 00 00 00 00 -- -- -- -- -- -- -- -- -- -- -- -- B | ....------------ - */ - case 0x03: - { - // Name Data starting at 0x18 - break; - } - /* - [2023-11-13 12:33:15] Incoming packet 0x074: - | 0 1 2 3 4 5 6 7 8 9 A B C D E F | 0123456789ABCDEF - ----------------------------------------------------- ---------------------- - 0 | 74 5A 99 04 03 00 00 00 00 00 00 00 00 00 00 00 0 | tZ.............. - 1 | 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1 | ................ - 2 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2 | ................ - 3 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3 | ................ - 4 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4 | ................ - 5 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5 | ................ - 6 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6 | ................ - 7 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7 | ................ - 8 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8 | ................ - 9 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9 | ................ - A | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A | ................ - B | 00 00 00 00 -- -- -- -- -- -- -- -- -- -- -- -- B | ....------------ - */ - case 0x04: - { - packet->ref(0x04) = 0x9B; - packet->ref(0x05) = 0x60; - packet->ref(0x06) = 0x04; - packet->ref(0x07) = 0x01; - packet->ref(0x08) = 0x9B; - packet->ref(0x30) = 0x01; - break; - } - default: - { - break; - } + odds.push_back(static_cast(oddsTable->get_or(idx, 0))); } - - PChar->pushPacket(std::move(packet)); } + + PChar->pushPacket(this->Param, board.get_or("grade", 0), board.get_or("raceNumber", 0), odds); } break; } diff --git a/src/map/packets/s2c/0x069_chocobo_racing.cpp b/src/map/packets/s2c/0x069_chocobo_racing.cpp index 1462296add4..6ba5b5c77a8 100644 --- a/src/map/packets/s2c/0x069_chocobo_racing.cpp +++ b/src/map/packets/s2c/0x069_chocobo_racing.cpp @@ -21,11 +21,39 @@ #include "0x069_chocobo_racing.h" +#include "common/lua.h" + #include namespace GP_SERV_COMMAND_CHOCOBO_RACING { +auto ChocoboParam::fromLua(const sol::table& data) -> ChocoboParam +{ + ChocoboParam param{}; + + param.Item = data.get_or("item", 0); // xi.chocoboRacing.sectionEvent + param.Orders = data.get_or("orders", 0); // xi.chocoboRacing.order + param.Size = data.get_or("size", 0); // xi.chocoboRacing.jockeySize + param.Color = data.get_or("color", 0); // xi.chocoboRaising.color + param.Gender = data.get_or("gender", 0); // xi.chocoboRaising.gender + param.Weather = data.get_or("weather", 0); // xi.chocoboRaising.weather + param.Temperament = data.get_or("temperament", 0); // xi.chocoboRaising.temperament + param.Ability1 = data.get_or("ability1", 0); // xi.chocoboRaising.ability + param.Ability2 = data.get_or("ability2", 0); // xi.chocoboRaising.ability + + // stats str/end/dsc/rcp: xi.chocoboRaising.statRank + if (const auto stats = data.get>("stats")) + { + param.STR.Rank = stats->get_or("str", 0); + param.END.Rank = stats->get_or("end", 0); + param.DSC.Rank = stats->get_or("dsc", 0); + param.RCP.Rank = stats->get_or("rcp", 0); + } + + return param; +} + // Various fields pack 2 chocobos per uint8. void packNibbles(uint8_t out[4], const std::array& nibbles) { diff --git a/src/map/packets/s2c/0x069_chocobo_racing.h b/src/map/packets/s2c/0x069_chocobo_racing.h index 7f9bef2e41f..4e7ec7a0718 100644 --- a/src/map/packets/s2c/0x069_chocobo_racing.h +++ b/src/map/packets/s2c/0x069_chocobo_racing.h @@ -23,6 +23,7 @@ #include "base.h" #include "items/exdata/chocobo_card.h" +#include "sol/forward.hpp" #include #include @@ -61,6 +62,8 @@ struct ChocoboParam uint32_t Color : 3; // xi.chocoboRaising.color uint32_t Size : 3; // xi.chocoboRacing.jockeySize uint32_t unknown00 : 1; + + static ChocoboParam fromLua(const sol::table& data); }; // Each racing section/keyframe can contain optional trigger/events diff --git a/src/map/packets/s2c/0x073_chocobo_toteboard.cpp b/src/map/packets/s2c/0x073_chocobo_toteboard.cpp new file mode 100644 index 00000000000..40c947ad3cd --- /dev/null +++ b/src/map/packets/s2c/0x073_chocobo_toteboard.cpp @@ -0,0 +1,36 @@ +/* +=========================================================================== + + Copyright (c) 2025 LandSandBoat Dev Teams + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see http://www.gnu.org/licenses/ + +=========================================================================== +*/ + +#include "0x073_chocobo_toteboard.h" + +GP_SERV_COMMAND_CHOCOBO_TOTEBOARD::GP_SERV_COMMAND_CHOCOBO_TOTEBOARD(const uint32_t slotIndex, const uint32_t grade, const uint32_t raceNumber, const std::vector& odds) +{ + auto& packet = this->data(); + + packet.SlotIndex = slotIndex; + packet.Ident = (grade << 18) | (raceNumber & 0x3FFFF); // grade in bits 18-23, race number in bits 0-17 + + const auto count = std::min(odds.size(), kNumOdds); + for (size_t i = 0; i < count; ++i) + { + packet.Odds[i] = odds[i]; + } +} diff --git a/src/map/packets/s2c/0x073_chocobo_toteboard.h b/src/map/packets/s2c/0x073_chocobo_toteboard.h new file mode 100644 index 00000000000..c8c9de29a2c --- /dev/null +++ b/src/map/packets/s2c/0x073_chocobo_toteboard.h @@ -0,0 +1,45 @@ +/* +=========================================================================== + + Copyright (c) 2025 LandSandBoat Dev Teams + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see http://www.gnu.org/licenses/ + +=========================================================================== +*/ + +#pragma once + +#include "base.h" + +#include + +// https://github.com/atom0s/XiPackets/tree/main/world/server/0x0073 +// This packet is sent by the server with the chocobo racing toteboard betting odds. +// 28 quinella pair combinations for the 8 entrants in response to GP_CLI_COMMAND_CHOCOBO_RACE_REQ +class GP_SERV_COMMAND_CHOCOBO_TOTEBOARD final : public GP_SERV_PACKET +{ +public: + static constexpr size_t kNumOdds = 28; // 8-choose-2 quinella pairs + + struct PacketData + { + uint32_t SlotIndex; // TODO: Research this more. Usually mirrors incoming Param + uint32_t Ident; // (grade << 18) | raceNumber (race number in bits 0-17) + uint32_t padding00; // Always 0 in captures + uint16_t Odds[kNumOdds]; // Actual odds + }; + + GP_SERV_COMMAND_CHOCOBO_TOTEBOARD(uint32_t slotIndex, uint32_t grade, uint32_t raceNumber, const std::vector& odds); +}; diff --git a/src/map/packets/s2c/0x074_chocobo_list.cpp b/src/map/packets/s2c/0x074_chocobo_list.cpp new file mode 100644 index 00000000000..bbfb010763c --- /dev/null +++ b/src/map/packets/s2c/0x074_chocobo_list.cpp @@ -0,0 +1,76 @@ +/* +=========================================================================== + + Copyright (c) 2025 LandSandBoat Dev Teams + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see http://www.gnu.org/licenses/ + +=========================================================================== +*/ + +#include "0x074_chocobo_list.h" + +#include +#include + +namespace GP_SERV_COMMAND_CHOCOBO_LIST +{ + +RACE::RACE(const uint32_t weather) +{ + auto& packet = this->data(); + + packet.Mode = 1; + packet.ParamSize = 8; + packet.RaceParams[0] = (weather << 5) + 8; // pack the weather id + packet.RaceParams[1] = 0xC0000000; // TODO: Research more +} + +CHOCOBOS::CHOCOBOS(const std::vector& chocobos) +{ + auto& packet = this->data(); + const auto count = std::min(chocobos.size(), kNumRacers); + + packet.Mode = 2; + packet.ParamSize = static_cast(count * sizeof(GP_SERV_COMMAND_CHOCOBO_RACING::ChocoboParam)); + + for (size_t i = 0; i < count; ++i) + { + packet.Chocobos[i] = chocobos[i]; + } +} + +NAMES::NAMES(const std::vector& names) +{ + auto& packet = this->data(); + const auto count = std::min(names.size(), kNumRacers); + + packet.Mode = 3; + packet.ParamSize = static_cast(count * sizeof(ChocoboName)); + + for (size_t i = 0; i < count; ++i) + { + std::memcpy(packet.Chocobos[i].Name, names[i].c_str(), std::min(names[i].size(), kNameLength - 1)); + } +} + +END::END() +{ + auto& packet = this->data(); + + packet.Mode = 4; + packet.ParamSize = 0; +} + +} // namespace GP_SERV_COMMAND_CHOCOBO_LIST diff --git a/src/map/packets/s2c/0x074_chocobo_list.h b/src/map/packets/s2c/0x074_chocobo_list.h new file mode 100644 index 00000000000..f3810d9c205 --- /dev/null +++ b/src/map/packets/s2c/0x074_chocobo_list.h @@ -0,0 +1,112 @@ +/* +=========================================================================== + + Copyright (c) 2025 LandSandBoat Dev Teams + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see http://www.gnu.org/licenses/ + +=========================================================================== +*/ + +#pragma once + +#include "base.h" + +#include "0x069_chocobo_racing.h" + +#include +#include + +// https://github.com/atom0s/XiPackets/tree/main/world/server/0x0074 +// This packet is sent by the server for the chocobo racing entrant list in response to GP_CLI_COMMAND_CHOCOBO_RACE_REQ (Kind = ChocoboList). +// It carries the race weather, the entrant stats and the entrant names for a given race. +namespace GP_SERV_COMMAND_CHOCOBO_LIST +{ + +constexpr size_t kNumRacers = 8; // entrants per race +constexpr size_t kNameLength = 16; // chocobo name buffer + +struct ChocoboName +{ + uint32_t padding00; // always 0 in captures + char Name[kNameLength]; +}; + +// Mode 1: race parameters. +class RACE final : public GP_SERV_PACKET +{ +public: + struct PacketData + { + uint32_t SlotIndex; // TODO: Research this more. Mirrors incoming Param. + uint8_t padding04[8]; + uint16_t Mode; + uint16_t ParamSize; + uint32_t RaceParams[2]; + uint8_t junk00[152]; + }; + + RACE(uint32_t weather); +}; + +// Mode 2: racers' stats. +class CHOCOBOS final : public GP_SERV_PACKET +{ +public: + struct PacketData + { + uint32_t SlotIndex; // TODO: Research this more. Mirrors incoming Param. + uint8_t padding04[8]; + uint16_t Mode; + uint16_t ParamSize; + GP_SERV_COMMAND_CHOCOBO_RACING::ChocoboParam Chocobos[kNumRacers]; + uint8_t junk00[64]; + }; + + CHOCOBOS(const std::vector& chocobos); +}; + +// Mode 3: entrant names. +class NAMES final : public GP_SERV_PACKET +{ +public: + struct PacketData + { + uint32_t SlotIndex; // TODO: Research this more. Mirrors incoming Param. + uint8_t padding04[8]; + uint16_t Mode; + uint16_t ParamSize; + ChocoboName Chocobos[kNumRacers]; + }; + + NAMES(const std::vector& names); +}; + +// Mode 4: notify the client the toteboard exchange is done. +class END final : public GP_SERV_PACKET +{ +public: + struct PacketData + { + uint32_t SlotIndex; // TODO: Research this more. Mirrors incoming Param. + uint8_t unknown04[8]; // Used by client but captured as 0 + uint16_t Mode; + uint16_t ParamSize; + uint8_t junk00[160]; + }; + + END(); +}; + +} // namespace GP_SERV_COMMAND_CHOCOBO_LIST diff --git a/src/map/packets/s2c/CMakeLists.txt b/src/map/packets/s2c/CMakeLists.txt index f2739af6fc1..59500d25493 100644 --- a/src/map/packets/s2c/CMakeLists.txt +++ b/src/map/packets/s2c/CMakeLists.txt @@ -172,6 +172,10 @@ set(PACKET_S2C_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/0x071_influence_campaign.cpp ${CMAKE_CURRENT_SOURCE_DIR}/0x071_influence_colonization.h ${CMAKE_CURRENT_SOURCE_DIR}/0x071_influence_colonization.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/0x073_chocobo_toteboard.h + ${CMAKE_CURRENT_SOURCE_DIR}/0x073_chocobo_toteboard.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/0x074_chocobo_list.h + ${CMAKE_CURRENT_SOURCE_DIR}/0x074_chocobo_list.cpp ${CMAKE_CURRENT_SOURCE_DIR}/0x075_battlefield.h ${CMAKE_CURRENT_SOURCE_DIR}/0x075_battlefield.cpp ${CMAKE_CURRENT_SOURCE_DIR}/0x076_group_effects.h From f5f660bb21882b4e327b5d574210c43571e775ef Mon Sep 17 00:00:00 2001 From: sruon Date: Thu, 9 Jul 2026 23:15:44 -0600 Subject: [PATCH 42/59] Tweak guild shops target stock --- scripts/data/guild_shops.lua | 166 +++++++++++++++++------------------ 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/scripts/data/guild_shops.lua b/scripts/data/guild_shops.lua index 6ec115e8c78..8ae7e88e337 100644 --- a/scripts/data/guild_shops.lua +++ b/scripts/data/guild_shops.lua @@ -436,7 +436,7 @@ xi.data.guildShops = { id = xi.item.WILLOW_LOG, initial = 144, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 12 }, { id = xi.item.HOLLY_LOG, initial = 108, maxStock = 180, targetStock = 135, buyMax = 3525, restockRate = 9 }, { id = xi.item.YEW_LOG, initial = 108, maxStock = 180, targetStock = 135, buyMax = 2200, restockRate = 9 }, - { id = xi.item.ELM_LOG, initial = 84, maxStock = 255, targetStock = 191, buyMax = 11490, restockRate = 12, priceFloor = 270 }, + { id = xi.item.ELM_LOG, initial = 84, maxStock = 255, targetStock = 240, buyMax = 11490, restockRate = 12, priceFloor = 270 }, { id = xi.item.WALNUT_LOG, initial = 36, maxStock = 60, targetStock = 45, buyMax = 4270, restockRate = 3 }, { id = xi.item.CHESTNUT_LOG, initial = 72, maxStock = 120, targetStock = 90, buyMax = 14130, restockRate = 6 }, { id = xi.item.OAK_LOG, initial = 36, maxStock = 60, targetStock = 45, buyMax = 31600, restockRate = 3 }, @@ -524,7 +524,7 @@ xi.data.guildShops = { id = xi.item.CROSSBOW, initial = 0, maxStock = 60, targetStock = 45, buyMax = 11775, restockRate = 0 }, -- targetStock assumed { id = xi.item.ZAMBURAK, initial = 0, maxStock = 60, targetStock = 45, buyMax = 76950, restockRate = 0 }, -- targetStock assumed { id = xi.item.BOOMERANG, initial = 0, maxStock = 60, targetStock = 45, buyMax = 8750, restockRate = 0 }, -- targetStock assumed - { id = xi.item.WOODEN_ARROW, initial = 50, maxStock = 240, targetStock = 180, buyMax = 20, restockRate = 10 }, + { id = xi.item.WOODEN_ARROW, initial = 50, maxStock = 240, targetStock = 50, buyMax = 20, restockRate = 10 }, { id = xi.item.IRON_ARROW, initial = 0, maxStock = 240, targetStock = 180, buyMax = 40, restockRate = 0 }, -- targetStock assumed { id = xi.item.SILVER_ARROW, initial = 0, maxStock = 240, targetStock = 180, buyMax = 90, restockRate = 0 }, -- targetStock assumed }, @@ -564,33 +564,33 @@ xi.data.guildShops = stock = { { id = xi.item.ARROWWOOD_LOG, initial = 180, maxStock = 240, targetStock = 180, buyMax = 100, restockRate = 60 }, - { id = xi.item.LAUAN_LOG, initial = 144, maxStock = 240, targetStock = 144, buyMax = 180, restockRate = 12 }, - { id = xi.item.MAPLE_LOG, initial = 144, maxStock = 240, targetStock = 144, buyMax = 300, restockRate = 12 }, - { id = xi.item.ASH_LOG, initial = 144, maxStock = 240, targetStock = 144, buyMax = 480, restockRate = 12 }, - { id = xi.item.WILLOW_LOG, initial = 144, maxStock = 240, targetStock = 144, buyMax = 800, restockRate = 12 }, - { id = xi.item.HOLLY_LOG, initial = 108, maxStock = 180, targetStock = 108, buyMax = 3525, restockRate = 9 }, - { id = xi.item.YEW_LOG, initial = 108, maxStock = 180, targetStock = 108, buyMax = 2200, restockRate = 9 }, - { id = xi.item.ELM_LOG, initial = 84, maxStock = 255, targetStock = 84, buyMax = 11490, restockRate = 12, priceFloor = 270 }, - { id = xi.item.WALNUT_LOG, initial = 36, maxStock = 60, targetStock = 36, buyMax = 4270, restockRate = 3 }, - { id = xi.item.CHESTNUT_LOG, initial = 72, maxStock = 120, targetStock = 72, buyMax = 14130, restockRate = 6 }, - { id = xi.item.OAK_LOG, initial = 36, maxStock = 60, targetStock = 36, buyMax = 31600, restockRate = 3 }, - { id = xi.item.ROSEWOOD_LOG, initial = 36, maxStock = 60, targetStock = 36, buyMax = 44100, restockRate = 3 }, - { id = xi.item.MAHOGANY_LOG, initial = 16, maxStock = 60, targetStock = 16, buyMax = 60500, restockRate = 3 }, - { id = xi.item.EBONY_LOG, initial = 16, maxStock = 60, targetStock = 16, buyMax = 64000, restockRate = 3 }, + { id = xi.item.LAUAN_LOG, initial = 144, maxStock = 240, targetStock = 180, buyMax = 180, restockRate = 12 }, + { id = xi.item.MAPLE_LOG, initial = 144, maxStock = 240, targetStock = 180, buyMax = 300, restockRate = 12 }, + { id = xi.item.ASH_LOG, initial = 144, maxStock = 240, targetStock = 180, buyMax = 480, restockRate = 12 }, + { id = xi.item.WILLOW_LOG, initial = 144, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 12 }, + { id = xi.item.HOLLY_LOG, initial = 108, maxStock = 180, targetStock = 135, buyMax = 3525, restockRate = 9 }, + { id = xi.item.YEW_LOG, initial = 108, maxStock = 180, targetStock = 135, buyMax = 2200, restockRate = 9 }, + { id = xi.item.ELM_LOG, initial = 84, maxStock = 255, targetStock = 240, buyMax = 11490, restockRate = 12, priceFloor = 270 }, + { id = xi.item.WALNUT_LOG, initial = 36, maxStock = 60, targetStock = 45, buyMax = 4270, restockRate = 3 }, + { id = xi.item.CHESTNUT_LOG, initial = 72, maxStock = 120, targetStock = 90, buyMax = 14130, restockRate = 6 }, + { id = xi.item.OAK_LOG, initial = 36, maxStock = 60, targetStock = 45, buyMax = 31600, restockRate = 3 }, + { id = xi.item.ROSEWOOD_LOG, initial = 36, maxStock = 60, targetStock = 45, buyMax = 44100, restockRate = 3 }, + { id = xi.item.MAHOGANY_LOG, initial = 16, maxStock = 60, targetStock = 45, buyMax = 60500, restockRate = 3 }, + { id = xi.item.EBONY_LOG, initial = 16, maxStock = 60, targetStock = 45, buyMax = 64000, restockRate = 3 }, { id = xi.item.DOGWOOD_LOG, initial = 0, maxStock = 240, targetStock = 180, buyMax = 100, restockRate = 0 }, -- targetStock assumed { id = xi.item.BLOODWOOD_LOG, initial = 0, maxStock = 240, targetStock = 180, buyMax = 63000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BAMBOO_STICK, initial = 36, maxStock = 240, targetStock = 36, buyMax = 720, restockRate = 12 }, + { id = xi.item.BAMBOO_STICK, initial = 36, maxStock = 240, targetStock = 180, buyMax = 720, restockRate = 12 }, { id = xi.item.PIECE_OF_RATTAN_LUMBER, initial = 0, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 0 }, -- targetStock assumed - { id = xi.item.PIECE_OF_ARROWWOOD_LUMBER, initial = 36, maxStock = 240, targetStock = 36, buyMax = 20, restockRate = 12 }, - { id = xi.item.PIECE_OF_LAUAN_LUMBER, initial = 36, maxStock = 240, targetStock = 36, buyMax = 180, restockRate = 12 }, - { id = xi.item.PIECE_OF_MAPLE_LUMBER, initial = 36, maxStock = 240, targetStock = 36, buyMax = 300, restockRate = 12 }, - { id = xi.item.PIECE_OF_ASH_LUMBER, initial = 36, maxStock = 240, targetStock = 36, buyMax = 480, restockRate = 12 }, - { id = xi.item.PIECE_OF_WILLOW_LUMBER, initial = 36, maxStock = 240, targetStock = 36, buyMax = 800, restockRate = 12 }, - { id = xi.item.PIECE_OF_HOLLY_LUMBER, initial = 27, maxStock = 180, targetStock = 27, buyMax = 4050, restockRate = 9 }, - { id = xi.item.PIECE_OF_YEW_LUMBER, initial = 27, maxStock = 180, targetStock = 27, buyMax = 2200, restockRate = 9 }, - { id = xi.item.PIECE_OF_ELM_LUMBER, initial = 18, maxStock = 120, targetStock = 18, buyMax = 11490, restockRate = 6 }, - { id = xi.item.PIECE_OF_CHESTNUT_LUMBER, initial = 18, maxStock = 120, targetStock = 18, buyMax = 14130, restockRate = 6 }, - { id = xi.item.PIECE_OF_OAK_LUMBER, initial = 15, maxStock = 60, targetStock = 15, buyMax = 31600, restockRate = 6 }, + { id = xi.item.PIECE_OF_ARROWWOOD_LUMBER, initial = 36, maxStock = 240, targetStock = 180, buyMax = 20, restockRate = 12 }, + { id = xi.item.PIECE_OF_LAUAN_LUMBER, initial = 36, maxStock = 240, targetStock = 180, buyMax = 180, restockRate = 12 }, + { id = xi.item.PIECE_OF_MAPLE_LUMBER, initial = 36, maxStock = 240, targetStock = 180, buyMax = 300, restockRate = 12 }, + { id = xi.item.PIECE_OF_ASH_LUMBER, initial = 36, maxStock = 240, targetStock = 180, buyMax = 480, restockRate = 12 }, + { id = xi.item.PIECE_OF_WILLOW_LUMBER, initial = 36, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 12 }, + { id = xi.item.PIECE_OF_HOLLY_LUMBER, initial = 27, maxStock = 180, targetStock = 135, buyMax = 4050, restockRate = 9 }, + { id = xi.item.PIECE_OF_YEW_LUMBER, initial = 27, maxStock = 180, targetStock = 135, buyMax = 2200, restockRate = 9 }, + { id = xi.item.PIECE_OF_ELM_LUMBER, initial = 18, maxStock = 120, targetStock = 90, buyMax = 11490, restockRate = 6 }, + { id = xi.item.PIECE_OF_CHESTNUT_LUMBER, initial = 18, maxStock = 120, targetStock = 90, buyMax = 14130, restockRate = 6 }, + { id = xi.item.PIECE_OF_OAK_LUMBER, initial = 15, maxStock = 60, targetStock = 45, buyMax = 31600, restockRate = 6 }, { id = xi.item.PIECE_OF_WALNUT_LUMBER, initial = 0, maxStock = 60, targetStock = 45, buyMax = 4880, restockRate = 0 }, -- targetStock assumed { id = xi.item.PIECE_OF_ROSEWOOD_LUMBER, initial = 0, maxStock = 60, targetStock = 45, buyMax = 44100, restockRate = 0 }, -- targetStock assumed { id = xi.item.PIECE_OF_MAHOGANY_LUMBER, initial = 0, maxStock = 60, targetStock = 45, buyMax = 60500, restockRate = 0 }, -- targetStock assumed @@ -776,48 +776,48 @@ xi.data.guildShops = holiday = xi.day.LIGHTNINGDAY, stock = { - { id = xi.item.SABIKI_RIG, initial = 180, maxStock = 240, targetStock = 180, buyMax = 4401, restockRate = 5 }, -- targetStock assumed + { id = xi.item.SABIKI_RIG, initial = 180, maxStock = 240, targetStock = 180, buyMax = 4401, restockRate = 5 }, -- targetStock assumed { id = xi.item.TARUTARU_FISHING_ROD, initial = 45, maxStock = 60, targetStock = 45, buyMax = 27180, restockRate = 10 }, -- targetStock assumed - { id = xi.item.CLOTHESPOLE, initial = 45, maxStock = 60, targetStock = 45, buyMax = 13200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.FASTWATER_FISHING_ROD, initial = 45, maxStock = 60, targetStock = 45, buyMax = 6970, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CARBON_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SINGLE_HOOK_FISHING_ROD, initial = 36, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed - { id = xi.item.COBALT_JELLYFISH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CRAYFISH_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CLUMP_OF_PAMTAM_KELP, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed - { id = xi.item.MOAT_CARP_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BASTORE_SARDINE_1, initial = 0, maxStock = 240, targetStock = 42, buyMax = 160, restockRate = 1 }, -- targetStock assumed - { id = xi.item.SHINING_TROUT_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 650, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SHALL_SHELL, initial = 0, maxStock = 240, targetStock = 180, buyMax = 9000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CHEVAL_SALMON, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.YELLOW_GLOBE, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.TRICOLORED_CARP, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed - { id = xi.item.NOSTEAU_HERRING_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 2000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.PIPIRA_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1150, restockRate = 0 }, -- targetStock assumed - { id = xi.item.TIGER_COD_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed - { id = xi.item.DARK_BASS_1, initial = 0, maxStock = 240, targetStock = 33, buyMax = 400, restockRate = 1 }, -- targetStock assumed - { id = xi.item.NEBIMONITE, initial = 0, maxStock = 240, targetStock = 17, buyMax = 1300, restockRate = 1 }, -- targetStock assumed - { id = xi.item.BLACK_EEL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 5760, restockRate = 0 }, -- targetStock assumed - { id = xi.item.OGRE_EEL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 0 }, -- targetStock assumed - { id = xi.item.ICEFISH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 4590, restockRate = 0 }, -- targetStock assumed - { id = xi.item.ZAFMLUG_BASS, initial = 0, maxStock = 240, targetStock = 180, buyMax = 775, restockRate = 0 }, -- targetStock assumed - { id = xi.item.RED_TERRAPIN, initial = 0, maxStock = 120, targetStock = 14, buyMax = 9000, restockRate = 1 }, -- targetStock assumed - { id = xi.item.GOLD_LOBSTER_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 5760, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BLUETAIL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 9000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.CRESCENT_FISH, initial = 0, maxStock = 120, targetStock = 90, buyMax = 15400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.NOBLE_LADY, initial = 0, maxStock = 120, targetStock = 90, buyMax = 14000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.COPPER_FROG_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SILVER_SHARK, initial = 0, maxStock = 240, targetStock = 83, buyMax = 20000, restockRate = 1 }, -- targetStock assumed - { id = xi.item.BASTORE_BREAM, initial = 0, maxStock = 120, targetStock = 90, buyMax = 27000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BLACK_SOLE, initial = 0, maxStock = 120, targetStock = 9, buyMax = 35000, restockRate = 1 }, -- targetStock assumed - { id = xi.item.GREEDIE, initial = 0, maxStock = 240, targetStock = 62, buyMax = 160, restockRate = 2 }, -- targetStock assumed - { id = xi.item.QUUS_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed - { id = xi.item.GIANT_CATFISH_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed - { id = xi.item.MONKE_ONKE_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 9000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.GAVIAL_FISH, initial = 0, maxStock = 60, targetStock = 45, buyMax = 20000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.GUGRU_TUNA_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BHEFHEL_MARLIN_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 9000, restockRate = 0 }, -- targetStock assumed - { id = xi.item.BLADEFISH_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 14000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CLOTHESPOLE, initial = 45, maxStock = 60, targetStock = 45, buyMax = 13200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.FASTWATER_FISHING_ROD, initial = 45, maxStock = 60, targetStock = 45, buyMax = 6970, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CARBON_FISHING_ROD, initial = 0, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SINGLE_HOOK_FISHING_ROD, initial = 36, maxStock = 60, targetStock = 45, buyMax = 64380, restockRate = 0 }, -- targetStock assumed + { id = xi.item.COBALT_JELLYFISH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CRAYFISH_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CLUMP_OF_PAMTAM_KELP, initial = 0, maxStock = 240, targetStock = 180, buyMax = 160, restockRate = 0 }, -- targetStock assumed + { id = xi.item.MOAT_CARP_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 200, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BASTORE_SARDINE_1, initial = 0, maxStock = 240, targetStock = 42, buyMax = 160, restockRate = 1 }, -- targetStock assumed + { id = xi.item.SHINING_TROUT_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 650, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SHALL_SHELL, initial = 0, maxStock = 240, targetStock = 180, buyMax = 9000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CHEVAL_SALMON, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.YELLOW_GLOBE, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.TRICOLORED_CARP, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed + { id = xi.item.NOSTEAU_HERRING_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 2000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.PIPIRA_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1150, restockRate = 0 }, -- targetStock assumed + { id = xi.item.TIGER_COD_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 1300, restockRate = 0 }, -- targetStock assumed + { id = xi.item.DARK_BASS_1, initial = 0, maxStock = 240, targetStock = 33, buyMax = 400, restockRate = 1 }, -- targetStock assumed + { id = xi.item.NEBIMONITE, initial = 0, maxStock = 240, targetStock = 17, buyMax = 1300, restockRate = 1 }, -- targetStock assumed + { id = xi.item.BLACK_EEL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 5760, restockRate = 0 }, -- targetStock assumed + { id = xi.item.OGRE_EEL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 0 }, -- targetStock assumed + { id = xi.item.ICEFISH, initial = 0, maxStock = 240, targetStock = 180, buyMax = 4590, restockRate = 0 }, -- targetStock assumed + { id = xi.item.ZAFMLUG_BASS, initial = 0, maxStock = 240, targetStock = 180, buyMax = 775, restockRate = 0 }, -- targetStock assumed + { id = xi.item.RED_TERRAPIN, initial = 0, maxStock = 120, targetStock = 14, buyMax = 9000, restockRate = 1 }, -- targetStock assumed + { id = xi.item.GOLD_LOBSTER_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 5760, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BLUETAIL_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 9000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.CRESCENT_FISH, initial = 0, maxStock = 120, targetStock = 90, buyMax = 15400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.NOBLE_LADY, initial = 0, maxStock = 120, targetStock = 90, buyMax = 14000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.COPPER_FROG_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.SILVER_SHARK, initial = 0, maxStock = 240, targetStock = 83, buyMax = 20000, restockRate = 1 }, -- targetStock assumed + { id = xi.item.BASTORE_BREAM, initial = 0, maxStock = 120, targetStock = 90, buyMax = 27000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BLACK_SOLE, initial = 0, maxStock = 120, targetStock = 9, buyMax = 35000, restockRate = 1 }, -- targetStock assumed + { id = xi.item.GREEDIE, initial = 0, maxStock = 240, targetStock = 62, buyMax = 160, restockRate = 2 }, -- targetStock assumed + { id = xi.item.QUUS_1, initial = 0, maxStock = 240, targetStock = 180, buyMax = 400, restockRate = 0 }, -- targetStock assumed + { id = xi.item.GIANT_CATFISH_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed + { id = xi.item.MONKE_ONKE_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 9000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.GAVIAL_FISH, initial = 0, maxStock = 60, targetStock = 45, buyMax = 20000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.GUGRU_TUNA_1, initial = 0, maxStock = 120, targetStock = 90, buyMax = 2500, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BHEFHEL_MARLIN_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 9000, restockRate = 0 }, -- targetStock assumed + { id = xi.item.BLADEFISH_1, initial = 0, maxStock = 60, targetStock = 45, buyMax = 14000, restockRate = 0 }, -- targetStock assumed }, }, ['Ilita'] = @@ -1224,7 +1224,7 @@ xi.data.guildShops = { id = xi.item.PIECE_OF_CRAWLER_COCOON, initial = 60, maxStock = 240, targetStock = 140, buyMax = 930, restockRate = 10 }, { id = xi.item.SPIDER_WEB, initial = 0, maxStock = 240, targetStock = 180, buyMax = 30738, restockRate = 0 }, -- targetStock assumed { id = xi.item.SPOOL_OF_GRASS_THREAD, initial = 180, maxStock = 240, targetStock = 180, buyMax = 300, restockRate = 30 }, - { id = xi.item.SPOOL_OF_COTTON_THREAD, initial = 132, maxStock = 240, targetStock = 132, buyMax = 800, restockRate = 6 }, + { id = xi.item.SPOOL_OF_COTTON_THREAD, initial = 132, maxStock = 240, targetStock = 180, buyMax = 800, restockRate = 6 }, { id = xi.item.SPOOL_OF_LINEN_THREAD, initial = 102, maxStock = 180, targetStock = 135, buyMax = 5000, restockRate = 6 }, { id = xi.item.SPOOL_OF_WOOL_THREAD, initial = 66, maxStock = 120, targetStock = 90, buyMax = 18000, restockRate = 3 }, { id = xi.item.SPOOL_OF_SILK_THREAD, initial = 8, maxStock = 30, targetStock = 15, buyMax = 4060, restockRate = 1, priceFloor = 9 }, @@ -1623,7 +1623,7 @@ xi.data.guildShops = stock = { { id = xi.item.CRAB_SHELL, initial = 0, maxStock = 240, targetStock = 180, buyMax = 11490, restockRate = 0 }, -- targetStock assumed - { id = xi.item.SHEEP_TOOTH, initial = 36, maxStock = 240, targetStock = 143, buyMax = 1000, restockRate = 12 }, + { id = xi.item.SHEEP_TOOTH, initial = 36, maxStock = 240, targetStock = 180, buyMax = 1000, restockRate = 12 }, { id = xi.item.BLACK_TIGER_FANG, initial = 0, maxStock = 180, targetStock = 135, buyMax = 12900, restockRate = 0 }, -- targetStock assumed { id = xi.item.TURTLE_SHELL, initial = 4, maxStock = 120, targetStock = 90, buyMax = 78000, restockRate = 0 }, { id = xi.item.SEASHELL, initial = 180, maxStock = 240, targetStock = 180, buyMax = 600, restockRate = 60 }, @@ -2365,22 +2365,22 @@ xi.data.guildShops = { id = xi.item.CHUNK_OF_SILVER_ORE, initial = 90, maxStock = 200, targetStock = 100, buyMax = 2100, restockRate = 10, priceFloor = 180 }, { id = xi.item.CHUNK_OF_MYTHRIL_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 10000, restockRate = 0, priceFloor = 15 }, { id = xi.item.CHUNK_OF_GOLD_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 23100, restockRate = 0, priceFloor = 15 }, - { id = xi.item.CHUNK_OF_PLATINUM_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 58500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.COPPER_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 600, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.BRASS_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.SILVER_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 10500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.MYTHRIL_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 50000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.GOLD_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 115500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.CHUNK_OF_PLATINUM_ORE, initial = 0, maxStock = 200, targetStock = 100, buyMax = 58500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.COPPER_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 600, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.BRASS_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.SILVER_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 10500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.MYTHRIL_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 50000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.GOLD_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 115500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed { id = xi.item.PLATINUM_INGOT, initial = 0, maxStock = 200, targetStock = 100, buyMax = 292500, restockRate = 0, priceFloor = 15 }, - { id = xi.item.BRASS_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1200, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.MYTHRIL_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 60000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.GOLD_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 371700, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.BRASS_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1200, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.MYTHRIL_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 60000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.GOLD_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 371700, restockRate = 0, priceFloor = 15 }, -- targetStock assumed { id = xi.item.PLATINUM_SHEET, initial = 0, maxStock = 200, targetStock = 100, buyMax = 581250, restockRate = 0, priceFloor = 15 }, - { id = xi.item.HANDFUL_OF_BRASS_SCALES, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1400, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.SILVER_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 78000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.MYTHRIL_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 70000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.GOLD_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 255240, restockRate = 0, priceFloor = 15 }, -- targetStock assumed - { id = xi.item.PLATINUM_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 418500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.HANDFUL_OF_BRASS_SCALES, initial = 0, maxStock = 200, targetStock = 100, buyMax = 1400, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.SILVER_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 78000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.MYTHRIL_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 70000, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.GOLD_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 255240, restockRate = 0, priceFloor = 15 }, -- targetStock assumed + { id = xi.item.PLATINUM_CHAIN, initial = 0, maxStock = 200, targetStock = 100, buyMax = 418500, restockRate = 0, priceFloor = 15 }, -- targetStock assumed { id = xi.item.RED_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, { id = xi.item.BLUE_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, { id = xi.item.YELLOW_ROCK, initial = 4, maxStock = 60, targetStock = 35, buyMax = 7000, restockRate = 1 }, From d7d0f4fa8d70c1e355ef44981471f499b95e1c8c Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Fri, 10 Jul 2026 01:25:53 -0400 Subject: [PATCH 43/59] Fix Crimson Pawberry QM and Toppi-Meppi Content Tag Adds some more content tags, fixes tonberry mitts NM --- sql/npc_list.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 573e05a5996..1ecf25a69df 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -5181,7 +5181,7 @@ INSERT INTO `npc_list` VALUES (16994439,'Achieve_Master','Achieve Master',0,0.00 INSERT INTO `npc_list` VALUES (16994440,'NPC[88]','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (16994441,'Unity_Master','Unity Master',0,0.000,0.000,0.000,0,50,50,0,0,96,2,2051,0x0000340000000000000000000000000000000000,0,'SOA',0); INSERT INTO `npc_list` VALUES (16994442,'Survival_Guide','Survival Guide',128,-20.000,0.000,-33.000,8,50,50,0,1,32,0,3,0x0000810900000000000000000000000000000000,0,'SURVIVAL_GUIDE',1); -INSERT INTO `npc_list` VALUES (16994443,'Shelu-Mapelu','Shelu-Mapelu',222,17.190,0.000,60.730,1,50,50,0,1,0,0,27,0x01000505D1107320733073407350006000700000,32,NULL,1); +INSERT INTO `npc_list` VALUES (16994443,'Shelu-Mapelu','Shelu-Mapelu',222,17.190,0.000,60.730,1,50,50,0,1,0,0,27,0x01000505D1107320733073407350006000700000,32,'TVR',1); -- ------------------------------------------------------------ -- Arrapago Reef (Zone 54) @@ -14482,7 +14482,7 @@ INSERT INTO `npc_list` VALUES (17195675,'qm9','???',113,-162.571,3.020,261.092,0 INSERT INTO `npc_list` VALUES (17195676,'qm10','???',79,-164.956,2.889,270.277,0,40,40,0,0,0,6,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17195677,'qm11','???',238,-197.428,3.484,254.169,0,40,40,0,0,0,6,3,0x0000320000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17195678,'qm12','???',1,-203.287,2.761,264.192,0,40,40,0,0,0,6,3,0x0000320000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17195679,'Chocobo_Tracks','Chocobo Tracks',249,-556.742,0.000,523.814,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'WOTG',1); +INSERT INTO `npc_list` VALUES (17195679,'Chocobo_Tracks','Chocobo Tracks',249,-556.742,0.000,523.814,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,'TOAU',1); INSERT INTO `npc_list` VALUES (17195680,'Chocobo','Chocobo',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0700200000000100000000000000000000000000,32,NULL,1); INSERT INTO `npc_list` VALUES (17195681,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,6,27,0x0700200000000100000000000000000000000000,32,NULL,0); INSERT INTO `npc_list` VALUES (17195682,'Field_Manual','Field Manual',148,-576.994,-4.033,661.371,7,50,50,0,0,32,0,3,0x0000F20800000000000000000000000000000000,0,'FIELD_MANUALS',1); @@ -22764,7 +22764,7 @@ INSERT INTO `npc_list` VALUES (17428859,'qm1','???',0,127.339,-0.601,-107.979,7, INSERT INTO `npc_list` VALUES (17428860,'qm2','???',0,374.148,-0.300,272.672,7,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428861,'qm3','???',0,-132.366,-1.076,9.150,7,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428862,'qm4','???',0,-60.173,-0.937,5.107,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); -INSERT INTO `npc_list` VALUES (17428863,'qm_crimson_pawberry','???',0,-39.975,-24.499,29.037,1,50,50,0,0,0,2,3,0x0000340000000000000000000000000000000000,0,NULL,0); +INSERT INTO `npc_list` VALUES (17428863,'qm_crimson_pawberry','???',0,-39.975,-24.499,29.037,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428864,'qm6','???',0,300.188,1.495,258.202,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428865,'qm7','???',0,50.273,-1.176,-71.042,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17428866,'qm8','???',0,-57.434,-8.484,55.317,1,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); @@ -33956,7 +33956,7 @@ INSERT INTO `npc_list` VALUES (17764591,'Ibwam','Ibwam',142,-25.655,2.749,-60.65 INSERT INTO `npc_list` VALUES (17764592,'blank','',0,0.000,0.000,0.000,0,50,50,0,0,0,2,2051,0x0000340000000000000000000000000000000000,0,NULL,0); INSERT INTO `npc_list` VALUES (17764593,'Bwi_Kaghonsa','Bwi Kaghonsa',61,123.933,-6.250,-120.470,14,50,50,0,1,0,0,27,0x0100000700101020103010401050006000700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17764594,'blank','',192,115.000,-5.000,-140.545,32769,50,50,0,0,64,0,2075,0x0000E00500000000000000000000000000000000,34,NULL,0); -INSERT INTO `npc_list` VALUES (17764595,'Toppi-Meppi','Toppi-Meppi',188,112.639,-4.999,-139.181,1,50,50,0,0,0,0,27,0x0100030500106720673067406750006000700000,32,'TOAU',1); +INSERT INTO `npc_list` VALUES (17764595,'Toppi-Meppi','Toppi-Meppi',188,112.639,-4.999,-139.181,1,50,50,0,0,0,0,27,0x0100030500106720673067406750006000700000,32,'WOTG',1); INSERT INTO `npc_list` VALUES (17764596,'Claiborne','Claiborne',148,118.929,-5.000,-138.910,1,50,50,0,0,0,2,27,0x0100000200100020003000400050006000700000,32,NULL,1); INSERT INTO `npc_list` VALUES (17764597,'Game_Table','Game Table',247,55.408,-3.500,-153.458,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17764598,'Gate_Chocobo_Circuit','Gate: Chocobo Circuit',0,115.000,-6.699,-140.580,32769,50,50,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,0); From 6e462ea3ca230599bd1ae8fb6f5b52c373e044e3 Mon Sep 17 00:00:00 2001 From: sruon Date: Fri, 10 Jul 2026 00:00:31 -0600 Subject: [PATCH 44/59] Log item name and ID when a locked trade happens --- src/map/packets/c2s/0x036_item_transfer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/map/packets/c2s/0x036_item_transfer.cpp b/src/map/packets/c2s/0x036_item_transfer.cpp index 25541bce9d4..d1234bc4f79 100644 --- a/src/map/packets/c2s/0x036_item_transfer.cpp +++ b/src/map/packets/c2s/0x036_item_transfer.cpp @@ -111,7 +111,7 @@ void GP_CLI_COMMAND_ITEM_TRANSFER::process(MapSession* PSession, CCharEntity* PC if (PItem->isSubType(ITEM_LOCKED)) { - ShowErrorFmt("GP_CLI_COMMAND_ITEM_TRANSFER: {} trying to trade NPC {} with locked item!", PChar->getName(), PNpc->getName()); + ShowErrorFmt("GP_CLI_COMMAND_ITEM_TRANSFER: {} trying to trade NPC {} with locked item {} ({})!", PChar->getName(), PNpc->getName(), PItem->getName(), PItem->getID()); return; } From b9e43e6809f929bc71ddc7ad05d27ba33521c1b4 Mon Sep 17 00:00:00 2001 From: Skold <113406182+Skold177@users.noreply.github.com> Date: Fri, 10 Jul 2026 01:59:56 -0400 Subject: [PATCH 45/59] Update Seiryi to WAR/RDM Changes the job based on capture. --- scripts/zones/RuAun_Gardens/mobs/Seiryu.lua | 7 +++++++ sql/mob_pools.sql | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/zones/RuAun_Gardens/mobs/Seiryu.lua b/scripts/zones/RuAun_Gardens/mobs/Seiryu.lua index d6e4b4ed4f6..da6713fbae7 100644 --- a/scripts/zones/RuAun_Gardens/mobs/Seiryu.lua +++ b/scripts/zones/RuAun_Gardens/mobs/Seiryu.lua @@ -41,6 +41,13 @@ entity.onMobSpawn = function(mob) mobArg:setMobAbilityEnabled(true) end end) + + xi.mix.jobSpecial.config(mob, { + specials = + { + { id = xi.mobSkill.HUNDRED_FISTS_1, hpp = math.random(50, 60) }, + }, + }) end entity.onMobFight = function(mob, target) diff --git a/sql/mob_pools.sql b/sql/mob_pools.sql index 0a74f5dd863..19dde0aacfa 100644 --- a/sql/mob_pools.sql +++ b/sql/mob_pools.sql @@ -3596,7 +3596,7 @@ INSERT INTO `mob_pools` VALUES (3536,'Seeker','Seeker',195,0x0000080100000000000 INSERT INTO `mob_pools` VALUES (3537,'Seeker_Bats','Seeker_Bats',181,0x0000040100000000000000000000000000000000,1,1,11,240,100,0,0,0,1,0,0,64,293,643,8,0,0,0,0,47,47,1,16); INSERT INTO `mob_pools` VALUES (3538,'Seelie','Seelie',274,0x0000EE0700000000000000000000000000000000,3,3,11,240,100,0,0,0,1,0,0,0,0,515,8,0,20,0,0,195,195,1,8); INSERT INTO `mob_pools` VALUES (3539,'Seether','Seether',286,0x0000610400000000000000000000000000000000,1,5,7,240,100,0,1,1,0,16,0,0,138,131,5,0,0,0,0,220,220,1,12); -INSERT INTO `mob_pools` VALUES (3540,'Seiryu','Seiryu',236,0x00008F0100000000000000000000000000000000,2,2,7,240,125,0,1,1,0,2,0,32,1041,159,0,1,25,0,0,278,278,3,44); +INSERT INTO `mob_pools` VALUES (3540,'Seiryu','Seiryu',236,0x00008F0100000000000000000000000000000000,1,5,7,240,125,0,1,1,0,2,0,32,1041,159,0,1,25,0,0,278,278,3,44); INSERT INTO `mob_pools` VALUES (3541,'Seneschal_Imp','Seneschal_Imp',212,0x0000BC0800000000000000000000000000000000,4,4,7,240,100,0,1,1,1,0,0,0,188,131,4,0,21,0,0,165,165,1,12); INSERT INTO `mob_pools` VALUES (3542,'Sensenmann','Sensenmann',419,0x0000340200000000000000000000000000000000,4,4,7,240,100,0,1,0,0,0,0,0,0,131,0,0,21,0,0,227,227,1,12); INSERT INTO `mob_pools` VALUES (3543,'Sentinel_Crab','Sentinel_Crab',25,0x0000640100000000000000000000000000000000,7,7,4,240,100,0,1,0,0,4,0,0,0,129,8,0,0,0,0,77,77,0,11); @@ -4727,7 +4727,7 @@ INSERT INTO `mob_pools` VALUES (4667,'Shah','Shah',54,0x00002E080000000000000000 INSERT INTO `mob_pools` VALUES (4668,'Morta','Morta',332,0x00002B0800000000000000000000000000000000,6,6,2,240,100,0,1,1,1,2,0,32,7,669,8,0,0,0,0,453,453,2,28); INSERT INTO `mob_pools` VALUES (4669,'Bismarck','Bismarck',35,0x00002C0800000000000000000000000000000000,1,1,2,240,100,0,1,0,1,2,0,0,7,155,0,0,0,0,0,451,510,1,40); INSERT INTO `mob_pools` VALUES (4670,'Genbu_pet','Genbu',300,0x0000970100000000000000000000000000000000,7,5,7,320,100,0,1,1,0,2,0,32,121,153,0,0,24,0,0,330,330,2,36); -INSERT INTO `mob_pools` VALUES (4671,'Seiryu_pet','Seiryu',235,0x00008F0100000000000000000000000000000000,2,2,7,240,100,0,1,1,0,2,0,32,1041,157,0,0,25,0,0,331,331,3,44); +INSERT INTO `mob_pools` VALUES (4671,'Seiryu_pet','Seiryu',235,0x00008F0100000000000000000000000000000000,1,5,7,240,100,0,1,1,0,2,0,32,1041,157,0,0,25,0,0,331,331,3,44); INSERT INTO `mob_pools` VALUES (4672,'Byakko_pet','Byakko',112,0x0000350100000000000000000000000000000000,6,3,7,240,100,0,1,0,0,2,0,32,1231,159,0,0,26,0,0,332,332,3,36); INSERT INTO `mob_pools` VALUES (4673,'Suzaku_pet','Suzaku',175,0x0000510100000000000000000000000000000000,5,1,3,240,100,0,1,1,0,2,0,32,1079,159,0,0,27,0,0,333,333,3,44); INSERT INTO `mob_pools` VALUES (4674,'Tonberrys_Elemental_SC','Tonberrys_Elemental',261,0x00000F0000000000000000000000000000000000,4,5,12,240,100,0,1,0,1,16,0,0,0,0,0,0,19,0,0,102,102,NULL,NULL); From 6c814f7b5dec4965fc0aaf445216ffa261d3f1d9 Mon Sep 17 00:00:00 2001 From: sruon Date: Fri, 10 Jul 2026 00:19:37 -0600 Subject: [PATCH 46/59] Unequip linkshell and rebind new when changing item during promotion --- src/map/linkshell.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/map/linkshell.cpp b/src/map/linkshell.cpp index c47f5380630..634060dd0db 100644 --- a/src/map/linkshell.cpp +++ b/src/map/linkshell.cpp @@ -211,10 +211,13 @@ void CLinkshell::ChangeMemberRank(const std::string& MemberName, const uint8 req newShellItem->setSubType(ITEM_LOCKED); uint8 LocationID = PItemLinkshell->getLocationID(); uint8 SlotID = PItemLinkshell->getSlotID(); + + PMember->clearEquip(slot); PMember->getStorage(LocationID)->RemoveItem(SlotID); PItemLinkshell = newShellItem; PMember->getStorage(LocationID)->InsertItem(std::move(PNewItem), SlotID); + PMember->bindEquip(slot, newShellItem); db::preparedStmt("UPDATE char_inventory SET itemid = ?, extra = ? WHERE charid = ? AND location = ? AND slot = ? LIMIT 1", PItemLinkshell->getID(), PItemLinkshell->m_extra, From 1342b15f2b0efb41ed3f6e566361545e0ba1b58c Mon Sep 17 00:00:00 2001 From: Kipling Date: Fri, 10 Jul 2026 00:29:53 -0700 Subject: [PATCH 47/59] Xolotl Bug Fixes --- scripts/zones/Attohwa_Chasm/mobs/Xolotl.lua | 1 + scripts/zones/Attohwa_Chasm/mobs/Xolotls_Hound_Warrior.lua | 6 ++++++ scripts/zones/Attohwa_Chasm/mobs/Xolotls_Sacrifice.lua | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/scripts/zones/Attohwa_Chasm/mobs/Xolotl.lua b/scripts/zones/Attohwa_Chasm/mobs/Xolotl.lua index 693b7cde33a..4e3ce94847f 100644 --- a/scripts/zones/Attohwa_Chasm/mobs/Xolotl.lua +++ b/scripts/zones/Attohwa_Chasm/mobs/Xolotl.lua @@ -38,6 +38,7 @@ end entity.onMobInitialize = function(mob) mob:addImmunity(xi.immunity.DARK_SLEEP) + mob:setRespawnTime(math.randomInt(75600, 86400)) -- When server restarts, reset respawn timer. end entity.onMobSpawn = function(mob) diff --git a/scripts/zones/Attohwa_Chasm/mobs/Xolotls_Hound_Warrior.lua b/scripts/zones/Attohwa_Chasm/mobs/Xolotls_Hound_Warrior.lua index 0f64c5f3474..704821cbcc4 100644 --- a/scripts/zones/Attohwa_Chasm/mobs/Xolotls_Hound_Warrior.lua +++ b/scripts/zones/Attohwa_Chasm/mobs/Xolotls_Hound_Warrior.lua @@ -17,6 +17,12 @@ entity.onMobSpawn = function(mob) mob:setMobMod(xi.mobMod.NO_STANDBACK, 1) end +entity.onMobRoam = function(mob) + if VanadielHour() >= 4 and VanadielHour() < 20 then + DespawnMob(mob:getID(), 1) + end +end + entity.onMobSpellChoose = function(mob, target, spellId) local spellList = { diff --git a/scripts/zones/Attohwa_Chasm/mobs/Xolotls_Sacrifice.lua b/scripts/zones/Attohwa_Chasm/mobs/Xolotls_Sacrifice.lua index 9ce8930591e..acd88a2637c 100644 --- a/scripts/zones/Attohwa_Chasm/mobs/Xolotls_Sacrifice.lua +++ b/scripts/zones/Attohwa_Chasm/mobs/Xolotls_Sacrifice.lua @@ -13,6 +13,12 @@ entity.onMobInitialize = function(mob) mob:addImmunity(xi.immunity.PETRIFY) end +entity.onMobRoam = function(mob) + if VanadielHour() >= 4 and VanadielHour() < 20 then + DespawnMob(mob:getID(), 1) + end +end + entity.onMobDeath = function(mob, player, optParams) if optParams.isKiller or optParams.noKiller then local xolotl = GetMobByID(zones[xi.zone.ATTOHWA_CHASM].mob.XOLOTL) From 791af1b25029d319914a3caa3e38d66ad5fad415 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Fri, 10 Jul 2026 17:38:47 +0200 Subject: [PATCH 48/59] Bandaid: Blue spell ecosystem being nil --- scripts/globals/bluemagic.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/globals/bluemagic.lua b/scripts/globals/bluemagic.lua index 83b53151a97..5247fd401b5 100644 --- a/scripts/globals/bluemagic.lua +++ b/scripts/globals/bluemagic.lua @@ -250,7 +250,7 @@ xi.spells.blue.usePhysicalSpell = function(caster, target, spell, params) wsc = wsc + wsc * bonusWSC -- Bonus WSC from AF3/CA -- Monster correlation - local correlationMultiplier = xi.combat.damage.ecosystemMultiplier(caster, target, params.ecosystem) + local correlationMultiplier = xi.combat.damage.ecosystemMultiplier(caster, target, params.ecosystem or 0) -- Azure Lore if caster:getStatusEffect(xi.effect.AZURE_LORE) then @@ -396,7 +396,7 @@ xi.spells.blue.useMagicalSpell = function(caster, target, spell, params) end -- Monster correlation - local correlationMultiplier = xi.combat.damage.ecosystemMultiplier(caster, target, params.ecosystem) + local correlationMultiplier = xi.combat.damage.ecosystemMultiplier(caster, target, params.ecosystem or 0) -- Data local spellId = spell:getID() @@ -547,7 +547,7 @@ xi.spells.blue.useBreathSpell = function(caster, target, spell, params) local damageType = params.damageType or xi.damageType.NONE -- Multipliers - local correlationMultiplier = xi.combat.damage.ecosystemMultiplier(caster, target, params.ecosystem) + local correlationMultiplier = xi.combat.damage.ecosystemMultiplier(caster, target, params.ecosystem or 0) local breathSDT = 1 + caster:getMod(xi.mod.BREATH_DMG_DEALT) / 100 local absorb = xi.spells.damage.calculateAbsorption(target, spellElement, false, true, false, true) local nullify = xi.spells.damage.calculateNullification(target, spellElement, false, true, false, true) From 63812beca35be0abfadd4527e1b11771aac6be39 Mon Sep 17 00:00:00 2001 From: Nobutadas Date: Thu, 9 Jul 2026 20:31:05 -0500 Subject: [PATCH 49/59] [cpp][sql][lua] Add Neutral region control --- scripts/enum/nation.lua | 1 + scripts/events/egg_hunt_egg-stravaganza.lua | 4 +-- scripts/globals/conquest.lua | 29 +++++++--------- sql/conquest_system.sql | 38 ++++++++++----------- src/map/entities/mob_entity.cpp | 2 +- src/map/packets/s2c/0x05e_conquest.cpp | 2 +- src/map/zone.h | 2 +- src/world/conquest_system.cpp | 4 ++- 8 files changed, 40 insertions(+), 42 deletions(-) diff --git a/scripts/enum/nation.lua b/scripts/enum/nation.lua index dc30325739f..e577bfe14f3 100644 --- a/scripts/enum/nation.lua +++ b/scripts/enum/nation.lua @@ -11,4 +11,5 @@ xi.nation = WINDURST = 2, BEASTMEN = 3, OTHER = 4, + NEUTRAL = 5, } diff --git a/scripts/events/egg_hunt_egg-stravaganza.lua b/scripts/events/egg_hunt_egg-stravaganza.lua index e72f997c88e..9cde4b48d5b 100644 --- a/scripts/events/egg_hunt_egg-stravaganza.lua +++ b/scripts/events/egg_hunt_egg-stravaganza.lua @@ -568,13 +568,13 @@ local regionControl = function(player, npc, trade) local owner = GetRegionOwner(regionID - 1) -- Beastmen controlled - if owner == 3 then + if owner == xi.nation.BEASTMEN then local costume = beastCostumes[math.randomInt(1, #beastCostumes)] player:addStatusEffect(xi.effect.COSTUME, { power = costume, duration = utils.minutes(60), origin = player }) player:confirmTrade() return - else + elseif owner >= xi.nation.SANDORIA and owner <= xi.nation.WINDURST then local reward = nationRewards[owner + 1] -- 2005 Reward diff --git a/scripts/globals/conquest.lua b/scripts/globals/conquest.lua index 72116e54770..3099dc09ea6 100644 --- a/scripts/globals/conquest.lua +++ b/scripts/globals/conquest.lua @@ -430,13 +430,13 @@ local overseerOffsets = { offset = 1, nation = xi.nation.BASTOK }, -- Tsunashige, I.M. { offset = 8, nation = xi.nation.BASTOK }, -- Fighting Ant, I.M. { offset = 4, nation = xi.nation.BASTOK }, -- flag - { offset = 13, nation = xi.nation.BASTOK }, -- flag + { offset = 12, nation = xi.nation.BASTOK }, -- flag { offset = 2, nation = xi.nation.WINDURST }, -- Nyata-Mobuta, W.W. { offset = 9, nation = xi.nation.WINDURST }, -- Tebubu, W.W. { offset = 5, nation = xi.nation.WINDURST }, -- flag - { offset = 14, nation = xi.nation.WINDURST }, -- flag + { offset = 13, nation = xi.nation.WINDURST }, -- flag { offset = 6, nation = xi.nation.BEASTMEN }, -- flag - { offset = 15, nation = xi.nation.BEASTMEN }, -- flag + { offset = 14, nation = xi.nation.BEASTMEN }, -- flag { offset = 10, nation = xi.nation.OTHER }, -- Medicine Axe }, [xi.region.NORVALLEN] = @@ -1237,10 +1237,10 @@ xi.conquest.setRegionalConquestOverseers = function(region) end if v.nation == xi.nation.OTHER then - if owner ~= xi.nation.BEASTMEN then - npc:setStatus(xi.status.NORMAL) - else + if owner == xi.nation.BEASTMEN or owner == xi.nation.NEUTRAL then npc:setStatus(xi.status.DISAPPEAR) + else + npc:setStatus(xi.status.NORMAL) end end end @@ -1826,10 +1826,10 @@ xi.conquest.sendConquestTallyEndMessage = function(player, messageBase, owner, r -- Tallying conquest results... player:messageText(player, messageBase + 1, 5) - if owner <= 3 then - player:messageText(player, messageBase + 2 + owner, 5) -- This region is currently under control. + if owner == xi.nation.NEUTRAL then + player:messageText(player, messageBase + 6, 5) -- This region is currently neutral. else - player:messageText(player, messageBase + 6, 5) -- This region is currently under beastman control. + player:messageText(player, messageBase + 2 + owner, 5) -- This region is currently under control. end -- Global balance of power message @@ -1888,15 +1888,10 @@ xi.conquest.sendBalanceOfPowerMessage = function(player, messageBase, ranking, i end xi.conquest.sendConquestTallyUpdateMessage = function(player, messageBase, owner, ranking, influence, isConquestAlliance) - -- don't send regional influence for city zones -- nobody can gain influence here. - if owner == 255 then - return - end - - if owner <= 3 then - player:messageText(player, messageBase + 32 + owner, 5) -- This region is currently under control. + if owner == xi.nation.NEUTRAL then + player:messageText(player, messageBase + 31, 5) -- Conquest update: This region is currently neutral. else - player:messageText(player, messageBase + 31, 5) -- This region is currently under beastman control. + player:messageText(player, messageBase + 32 + owner, 5) -- Conquest update: This region is currently under control. end if influence >= 64 then diff --git a/sql/conquest_system.sql b/sql/conquest_system.sql index ed514e11d1b..46f11194fad 100644 --- a/sql/conquest_system.sql +++ b/sql/conquest_system.sql @@ -34,25 +34,25 @@ CREATE TABLE `conquest_system` ( LOCK TABLES `conquest_system` WRITE; /*!40000 ALTER TABLE `conquest_system` DISABLE KEYS */; -INSERT INTO `conquest_system` VALUES (0,0,1,0,0,0,0); -INSERT INTO `conquest_system` VALUES (1,0,1,0,0,0,0); -INSERT INTO `conquest_system` VALUES (2,0,1,0,0,0,0); -INSERT INTO `conquest_system` VALUES (3,1,1,0,0,0,0); -INSERT INTO `conquest_system` VALUES (4,1,0,0,0,0,0); -INSERT INTO `conquest_system` VALUES (5,2,0,0,0,0,0); -INSERT INTO `conquest_system` VALUES (6,2,0,0,0,0,0); -INSERT INTO `conquest_system` VALUES (7,2,0,0,0,0,0); -INSERT INTO `conquest_system` VALUES (8,3,0,0,0,0,0); -INSERT INTO `conquest_system` VALUES (9,3,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (10,2,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (11,3,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (12,3,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (13,3,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (14,3,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (15,3,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (16,3,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (17,3,3,0,0,0,0); -INSERT INTO `conquest_system` VALUES (18,3,3,0,0,0,0); +INSERT INTO `conquest_system` VALUES (0,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (1,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (2,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (3,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (4,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (5,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (6,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (7,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (8,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (9,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (10,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (11,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (12,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (13,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (14,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (15,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (16,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (17,5,5,0,0,0,0); +INSERT INTO `conquest_system` VALUES (18,5,5,0,0,0,0); /*!40000 ALTER TABLE `conquest_system` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; diff --git a/src/map/entities/mob_entity.cpp b/src/map/entities/mob_entity.cpp index 4826ff9abe0..caf38c3fb13 100644 --- a/src/map/entities/mob_entity.cpp +++ b/src/map/entities/mob_entity.cpp @@ -1109,7 +1109,7 @@ void CMobEntity::DropItems(CCharEntity* PChar) // Signet Regions default: - if (regionID < REGION_TYPE::TAVNAZIA && conquest::GetRegionOwner(regionID) <= 2) + if (regionID < REGION_TYPE::TAVNAZIA && conquest::GetRegionOwner(regionID) != NATION_BEASTMEN) { requiredEffect = xi::StatusEffect::Signet; } diff --git a/src/map/packets/s2c/0x05e_conquest.cpp b/src/map/packets/s2c/0x05e_conquest.cpp index 023941f4ab8..5a58576bf78 100644 --- a/src/map/packets/s2c/0x05e_conquest.cpp +++ b/src/map/packets/s2c/0x05e_conquest.cpp @@ -51,7 +51,7 @@ GP_SERV_COMMAND_CONQUEST::GP_SERV_COMMAND_CONQUEST(CCharEntity* PChar) packet.Conquest.Regions[regionId].InfluenceRankingWithBeastmen = conquest::GetInfluenceRanking(sandoriaInf, bastokInf, windurstInf, beastmenInf); packet.Conquest.Regions[regionId].InfluenceRankingNoBeastmen = conquest::GetInfluenceRanking(sandoriaInf, bastokInf, windurstInf); packet.Conquest.Regions[regionId].InfluenceGraphics = conquest::GetInfluenceGraphics(sandoriaInf, bastokInf, windurstInf, beastmenInf); - packet.Conquest.Regions[regionId].Owner = regionOwner + 1; + packet.Conquest.Regions[regionId].Owner = regionOwner == NATION_NEUTRAL ? 0 : regionOwner + 1; const int64 total = sandoriaInf + bastokInf + windurstInf; const int64 totalBeastmen = total + beastmenInf; diff --git a/src/map/zone.h b/src/map/zone.h index bed325c16b2..4340a9ee61f 100644 --- a/src/map/zone.h +++ b/src/map/zone.h @@ -374,7 +374,7 @@ enum NATION_TYPE : uint8 NATION_BASTOK = 0x01, NATION_WINDURST = 0x02, NATION_BEASTMEN = 0x03, - NATION_NEUTRAL = 0xFF, + NATION_NEUTRAL = 0x05, }; DECLARE_FORMAT_AS_UNDERLYING(NATION_TYPE); diff --git a/src/world/conquest_system.cpp b/src/world/conquest_system.cpp index e05fcf3c7a1..ac6f8c8a369 100644 --- a/src/world/conquest_system.cpp +++ b/src/world/conquest_system.cpp @@ -188,7 +188,9 @@ void ConquestSystem::updateWeekConquest() "IF(bastok_influence > sandoria_influence AND bastok_influence > windurst_influence AND " "bastok_influence > beastmen_influence, 1, " "IF(windurst_influence > bastok_influence AND windurst_influence > sandoria_influence AND " - "windurst_influence > beastmen_influence, 2, 3)))"; + "windurst_influence > beastmen_influence, 2, " + "IF(beastmen_influence > sandoria_influence AND beastmen_influence > bastok_influence AND " + "beastmen_influence > windurst_influence, 3, 5))))"; const auto rset = db::preparedStmt(query); if (!rset) From 9344a4348ee9c907cc061c36a9bdb9a8e3f4caa6 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Fri, 10 Jul 2026 19:47:27 +0200 Subject: [PATCH 50/59] Fix Ifrit's TP spells --- scripts/actions/abilities/pets/fire_ii.lua | 2 -- scripts/actions/abilities/pets/fire_iv.lua | 2 -- 2 files changed, 4 deletions(-) diff --git a/scripts/actions/abilities/pets/fire_ii.lua b/scripts/actions/abilities/pets/fire_ii.lua index 30d2f2db60f..f9d23600c3b 100644 --- a/scripts/actions/abilities/pets/fire_ii.lua +++ b/scripts/actions/abilities/pets/fire_ii.lua @@ -31,8 +31,6 @@ abilityObject.onPetAbility = function(target, pet, petskill, summoner, action) target:takeDamage(info.damage, pet, info.attackType, info.damageType) end - print('skillID', petskill:getID()) - return info.damage end diff --git a/scripts/actions/abilities/pets/fire_iv.lua b/scripts/actions/abilities/pets/fire_iv.lua index 08c47788737..9ce302b8233 100644 --- a/scripts/actions/abilities/pets/fire_iv.lua +++ b/scripts/actions/abilities/pets/fire_iv.lua @@ -31,8 +31,6 @@ abilityObject.onPetAbility = function(target, pet, petskill, summoner, action) target:takeDamage(info.damage, pet, info.attackType, info.damageType) end - petskill:setMsg(xi.msg.basic.PET_MAGIC_BURST) - return info.damage end From 449d422eb27899304b7f76ade8d5821c88800f32 Mon Sep 17 00:00:00 2001 From: Skold177 <113406182+Skold177@users.noreply.github.com> Date: Fri, 10 Jul 2026 14:09:16 -0400 Subject: [PATCH 51/59] Add TP Clamp to Aftermath handler Ensures atleast 1000 tp is fed to the handler --- scripts/globals/aftermath.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/globals/aftermath.lua b/scripts/globals/aftermath.lua index 6ab2e832b01..54ad708266d 100644 --- a/scripts/globals/aftermath.lua +++ b/scripts/globals/aftermath.lua @@ -557,6 +557,9 @@ xi.aftermath.addStatusEffect = function(player, tp, weaponSlot, aftermathType) return end + -- Ensures atleast 1000 TP is fed to AM handler, incase of TP Draining ability TODO: Check how this interaction works on retail. + tp = utils.clamp(tp, 1000, 3000) + local weapon = player:getStorageItem(0, 0, weaponSlot) if not weapon then return From cb3466db1405d36696f2ffd4cc3bb086c309e95a Mon Sep 17 00:00:00 2001 From: sruon Date: Fri, 10 Jul 2026 12:30:09 -0600 Subject: [PATCH 52/59] Handle TOTD despawning differently in sleeping zones --- src/map/spawn_handler.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/map/spawn_handler.cpp b/src/map/spawn_handler.cpp index abb76a1bac3..6708c27eaa6 100644 --- a/src/map/spawn_handler.cpp +++ b/src/map/spawn_handler.cpp @@ -21,6 +21,7 @@ #include "spawn_handler.h" +#include "ai/ai_container.h" #include "common/timer.h" #include "common/vana_time.h" #include "entities/mob_entity.h" @@ -240,13 +241,23 @@ void SpawnHandler::Tick(const timer::time_point now) // Despawn mobs now outside their spawn window. Not tied to 30s task. void SpawnHandler::onGameHour(const uint32 hour) const { + const bool zoneActive = zone_->IsZoneActive(); + zone_->ForEachMob( - [hour](CMobEntity* PMob) + [zoneActive, hour](CMobEntity* PMob) { const auto window = spawnWindowOf(PMob); if (window.has_value() && PMob->isAlive() && !hourInWindow(hour, window->spawnHour, window->despawnHour)) { - PMob->SetDespawnTime(1ms); + if (zoneActive) + { + PMob->SetDespawnTime(1ms); + } + else + { + // Sleeping zone -> process the despawn immediately since AI doesnt tick on its own + PMob->PAI->Despawn(); + } } }); } From 040b72b60874f03c5ea979ced31e72f84cb2067c Mon Sep 17 00:00:00 2001 From: Skold177 <113406182+Skold177@users.noreply.github.com> Date: Fri, 10 Jul 2026 15:02:54 -0400 Subject: [PATCH 53/59] [lua] Rename mob files to match SQL Changed all the ones I found --- .../mobs/{Duu_Masa_The_Onecut.lua => Duu_Masa_the_Onecut.lua} | 0 .../mobs/{Fee_Jugu_The_Ramfist.lua => Fee_Jugu_the_Ramfist.lua} | 0 .../{Goo_Pake_The_Bloodhound.lua => Goo_Pake_the_Bloodhound.lua} | 0 .../{Kee_Taw_The_Nightingale.lua => Kee_Taw_the_Nightingale.lua} | 0 .../mobs/{Laa_Yaku_The_Austere.lua => Laa_Yaku_the_Austere.lua} | 0 .../mobs/{Poo_Yozo_The_Babbler.lua => Poo_Yozo_the_Babbler.lua} | 0 .../mobs/{Hadding_The_Elder.lua => Hadding_the_Elder.lua} | 0 .../mobs/{Hadding_The_Younger.lua => Hadding_the_Younger.lua} | 0 .../mobs/{Ghul-I-Beaban_blm.lua => Ghul-I-Beaban_BLM.lua} | 0 .../mobs/{Ghul-I-Beaban_drk.lua => Ghul-I-Beaban_DRK.lua} | 0 scripts/zones/Spire_of_Dem/mobs/{neogorger.lua => Neogorger.lua} | 0 .../zones/Spire_of_Dem/mobs/{neoingester.lua => Neoingester.lua} | 0 .../zones/Spire_of_Dem/mobs/{neosatiator.lua => Neosatiator.lua} | 0 .../Spire_of_Dem/mobs/{wanderer_enm.lua => Wanderer_enm.lua} | 0 14 files changed, 0 insertions(+), 0 deletions(-) rename scripts/zones/Altar_Room/mobs/{Duu_Masa_The_Onecut.lua => Duu_Masa_the_Onecut.lua} (100%) rename scripts/zones/Altar_Room/mobs/{Fee_Jugu_The_Ramfist.lua => Fee_Jugu_the_Ramfist.lua} (100%) rename scripts/zones/Altar_Room/mobs/{Goo_Pake_The_Bloodhound.lua => Goo_Pake_the_Bloodhound.lua} (100%) rename scripts/zones/Altar_Room/mobs/{Kee_Taw_The_Nightingale.lua => Kee_Taw_the_Nightingale.lua} (100%) rename scripts/zones/Altar_Room/mobs/{Laa_Yaku_The_Austere.lua => Laa_Yaku_the_Austere.lua} (100%) rename scripts/zones/Altar_Room/mobs/{Poo_Yozo_The_Babbler.lua => Poo_Yozo_the_Babbler.lua} (100%) rename scripts/zones/Hazhalm_Testing_Grounds/mobs/{Hadding_The_Elder.lua => Hadding_the_Elder.lua} (100%) rename scripts/zones/Hazhalm_Testing_Grounds/mobs/{Hadding_The_Younger.lua => Hadding_the_Younger.lua} (100%) rename scripts/zones/QuBia_Arena/mobs/{Ghul-I-Beaban_blm.lua => Ghul-I-Beaban_BLM.lua} (100%) rename scripts/zones/QuBia_Arena/mobs/{Ghul-I-Beaban_drk.lua => Ghul-I-Beaban_DRK.lua} (100%) rename scripts/zones/Spire_of_Dem/mobs/{neogorger.lua => Neogorger.lua} (100%) rename scripts/zones/Spire_of_Dem/mobs/{neoingester.lua => Neoingester.lua} (100%) rename scripts/zones/Spire_of_Dem/mobs/{neosatiator.lua => Neosatiator.lua} (100%) rename scripts/zones/Spire_of_Dem/mobs/{wanderer_enm.lua => Wanderer_enm.lua} (100%) diff --git a/scripts/zones/Altar_Room/mobs/Duu_Masa_The_Onecut.lua b/scripts/zones/Altar_Room/mobs/Duu_Masa_the_Onecut.lua similarity index 100% rename from scripts/zones/Altar_Room/mobs/Duu_Masa_The_Onecut.lua rename to scripts/zones/Altar_Room/mobs/Duu_Masa_the_Onecut.lua diff --git a/scripts/zones/Altar_Room/mobs/Fee_Jugu_The_Ramfist.lua b/scripts/zones/Altar_Room/mobs/Fee_Jugu_the_Ramfist.lua similarity index 100% rename from scripts/zones/Altar_Room/mobs/Fee_Jugu_The_Ramfist.lua rename to scripts/zones/Altar_Room/mobs/Fee_Jugu_the_Ramfist.lua diff --git a/scripts/zones/Altar_Room/mobs/Goo_Pake_The_Bloodhound.lua b/scripts/zones/Altar_Room/mobs/Goo_Pake_the_Bloodhound.lua similarity index 100% rename from scripts/zones/Altar_Room/mobs/Goo_Pake_The_Bloodhound.lua rename to scripts/zones/Altar_Room/mobs/Goo_Pake_the_Bloodhound.lua diff --git a/scripts/zones/Altar_Room/mobs/Kee_Taw_The_Nightingale.lua b/scripts/zones/Altar_Room/mobs/Kee_Taw_the_Nightingale.lua similarity index 100% rename from scripts/zones/Altar_Room/mobs/Kee_Taw_The_Nightingale.lua rename to scripts/zones/Altar_Room/mobs/Kee_Taw_the_Nightingale.lua diff --git a/scripts/zones/Altar_Room/mobs/Laa_Yaku_The_Austere.lua b/scripts/zones/Altar_Room/mobs/Laa_Yaku_the_Austere.lua similarity index 100% rename from scripts/zones/Altar_Room/mobs/Laa_Yaku_The_Austere.lua rename to scripts/zones/Altar_Room/mobs/Laa_Yaku_the_Austere.lua diff --git a/scripts/zones/Altar_Room/mobs/Poo_Yozo_The_Babbler.lua b/scripts/zones/Altar_Room/mobs/Poo_Yozo_the_Babbler.lua similarity index 100% rename from scripts/zones/Altar_Room/mobs/Poo_Yozo_The_Babbler.lua rename to scripts/zones/Altar_Room/mobs/Poo_Yozo_the_Babbler.lua diff --git a/scripts/zones/Hazhalm_Testing_Grounds/mobs/Hadding_The_Elder.lua b/scripts/zones/Hazhalm_Testing_Grounds/mobs/Hadding_the_Elder.lua similarity index 100% rename from scripts/zones/Hazhalm_Testing_Grounds/mobs/Hadding_The_Elder.lua rename to scripts/zones/Hazhalm_Testing_Grounds/mobs/Hadding_the_Elder.lua diff --git a/scripts/zones/Hazhalm_Testing_Grounds/mobs/Hadding_The_Younger.lua b/scripts/zones/Hazhalm_Testing_Grounds/mobs/Hadding_the_Younger.lua similarity index 100% rename from scripts/zones/Hazhalm_Testing_Grounds/mobs/Hadding_The_Younger.lua rename to scripts/zones/Hazhalm_Testing_Grounds/mobs/Hadding_the_Younger.lua diff --git a/scripts/zones/QuBia_Arena/mobs/Ghul-I-Beaban_blm.lua b/scripts/zones/QuBia_Arena/mobs/Ghul-I-Beaban_BLM.lua similarity index 100% rename from scripts/zones/QuBia_Arena/mobs/Ghul-I-Beaban_blm.lua rename to scripts/zones/QuBia_Arena/mobs/Ghul-I-Beaban_BLM.lua diff --git a/scripts/zones/QuBia_Arena/mobs/Ghul-I-Beaban_drk.lua b/scripts/zones/QuBia_Arena/mobs/Ghul-I-Beaban_DRK.lua similarity index 100% rename from scripts/zones/QuBia_Arena/mobs/Ghul-I-Beaban_drk.lua rename to scripts/zones/QuBia_Arena/mobs/Ghul-I-Beaban_DRK.lua diff --git a/scripts/zones/Spire_of_Dem/mobs/neogorger.lua b/scripts/zones/Spire_of_Dem/mobs/Neogorger.lua similarity index 100% rename from scripts/zones/Spire_of_Dem/mobs/neogorger.lua rename to scripts/zones/Spire_of_Dem/mobs/Neogorger.lua diff --git a/scripts/zones/Spire_of_Dem/mobs/neoingester.lua b/scripts/zones/Spire_of_Dem/mobs/Neoingester.lua similarity index 100% rename from scripts/zones/Spire_of_Dem/mobs/neoingester.lua rename to scripts/zones/Spire_of_Dem/mobs/Neoingester.lua diff --git a/scripts/zones/Spire_of_Dem/mobs/neosatiator.lua b/scripts/zones/Spire_of_Dem/mobs/Neosatiator.lua similarity index 100% rename from scripts/zones/Spire_of_Dem/mobs/neosatiator.lua rename to scripts/zones/Spire_of_Dem/mobs/Neosatiator.lua diff --git a/scripts/zones/Spire_of_Dem/mobs/wanderer_enm.lua b/scripts/zones/Spire_of_Dem/mobs/Wanderer_enm.lua similarity index 100% rename from scripts/zones/Spire_of_Dem/mobs/wanderer_enm.lua rename to scripts/zones/Spire_of_Dem/mobs/Wanderer_enm.lua From bb8bbc004228fa12eeb3837228f759c9f3938208 Mon Sep 17 00:00:00 2001 From: sruon Date: Fri, 10 Jul 2026 13:16:53 -0600 Subject: [PATCH 54/59] Reject lockstyle if item is no longer owned --- src/map/enums/packet_s2c.h | 1 + src/map/packets/c2s/0x053_lockstyle.cpp | 21 +++++++++- src/map/packets/s2c/0x11c_lockstyle_error.cpp | 36 ++++++++++++++++ src/map/packets/s2c/0x11c_lockstyle_error.h | 42 +++++++++++++++++++ src/map/packets/s2c/CMakeLists.txt | 2 + src/map/utils/charutils.cpp | 38 +++-------------- src/map/utils/charutils.h | 5 ++- 7 files changed, 109 insertions(+), 36 deletions(-) create mode 100644 src/map/packets/s2c/0x11c_lockstyle_error.cpp create mode 100644 src/map/packets/s2c/0x11c_lockstyle_error.h diff --git a/src/map/enums/packet_s2c.h b/src/map/enums/packet_s2c.h index fb3685f5a42..2449f7b2749 100644 --- a/src/map/enums/packet_s2c.h +++ b/src/map/enums/packet_s2c.h @@ -175,6 +175,7 @@ enum class PacketS2C : uint16_t GP_SERV_COMMAND_CURRENCIES_2 = 0x118, GP_SERV_COMMAND_ABIL_RECAST = 0x119, GP_SERV_COMMAND_EMOTE_LIST = 0x11A, + GP_SERV_COMMAND_LOCKSTYLE_ERROR = 0x11C, GP_SERV_COMMAND_PARTYREQ = 0x11D, GP_SERV_COMMAND_JUMP = 0x11E, }; diff --git a/src/map/packets/c2s/0x053_lockstyle.cpp b/src/map/packets/c2s/0x053_lockstyle.cpp index 1cf1c1a9d81..c67aaf9d79b 100644 --- a/src/map/packets/c2s/0x053_lockstyle.cpp +++ b/src/map/packets/c2s/0x053_lockstyle.cpp @@ -26,9 +26,12 @@ #include "packets/char_sync.h" #include "packets/s2c/0x009_message.h" #include "packets/s2c/0x051_grap_list.h" +#include "packets/s2c/0x11c_lockstyle_error.h" #include "utils/charutils.h" #include "utils/itemutils.h" +#include + namespace { @@ -79,6 +82,9 @@ void GP_CLI_COMMAND_LOCKSTYLE::process(MapSession* PSession, CCharEntity* PChar) // TODO: Missing a handful of retail checks here charutils::SetStyleLock(PChar, true); + // Any items that we fail to lockstyle will be reported to the client + std::vector failedItemIds; + // Build new lockstyle for (int i = 0; i < this->Count; i++) { @@ -100,12 +106,17 @@ void GP_CLI_COMMAND_LOCKSTYLE::process(MapSession* PSession, CCharEntity* PChar) { itemId = 0; } + else if (!charutils::HasItem(PChar, itemId, IncludeRecycleBin::No)) // valid for the slot but not owned + { + failedItemIds.push_back(itemId); + itemId = 0; + } PChar->styleItems[item.EquipKind] = itemId; - if (i == SLOT_MAIN) + if (i == SLOT_MAIN && itemId != 0) { - if (const CItemWeapon* PItemWeapon = dynamic_cast(PItem); PItemWeapon) + if (auto* PItemWeapon = dynamic_cast(PItem); PItemWeapon) { if (PItemWeapon->isHandToHand()) { @@ -165,6 +176,12 @@ void GP_CLI_COMMAND_LOCKSTYLE::process(MapSession* PSession, CCharEntity* PChar) } charutils::UpdateRemovedSlotsLookForLockStyle(PChar); + + if (!failedItemIds.empty()) + { + PChar->pushPacket(failedItemIds); + } + PChar->RequestPersist(CHAR_PERSIST::EQUIP); updateClientAppearance(PChar); } diff --git a/src/map/packets/s2c/0x11c_lockstyle_error.cpp b/src/map/packets/s2c/0x11c_lockstyle_error.cpp new file mode 100644 index 00000000000..0aaabdd56d8 --- /dev/null +++ b/src/map/packets/s2c/0x11c_lockstyle_error.cpp @@ -0,0 +1,36 @@ +/* +=========================================================================== + + Copyright (c) 2026 LandSandBoat Dev Teams + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see http://www.gnu.org/licenses/ + +=========================================================================== +*/ + +#include "0x11c_lockstyle_error.h" + +#include +#include + +GP_SERV_COMMAND_LOCKSTYLE_ERROR::GP_SERV_COMMAND_LOCKSTYLE_ERROR(const std::vector& failedItemIds) +{ + auto& packet = this->data(); + + packet.Count = static_cast(std::min(failedItemIds.size(), std::size(packet.ItemNo))); + for (size_t i = 0; i < packet.Count; ++i) + { + packet.ItemNo[i] = failedItemIds[i]; + } +} diff --git a/src/map/packets/s2c/0x11c_lockstyle_error.h b/src/map/packets/s2c/0x11c_lockstyle_error.h new file mode 100644 index 00000000000..5c065a7e561 --- /dev/null +++ b/src/map/packets/s2c/0x11c_lockstyle_error.h @@ -0,0 +1,42 @@ +/* +=========================================================================== + + Copyright (c) 2026 LandSandBoat Dev Teams + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see http://www.gnu.org/licenses/ + +=========================================================================== +*/ + +#pragma once + +#include "base.h" + +#include + +// https://github.com/atom0s/XiPackets/tree/main/world/server/0x011C +// This packet is sent by the server in response to the client locking their style. +// (This packet was intended to work similar to packet 0x0117 to inform the client when a piece of gear could not be style locked.) +class GP_SERV_COMMAND_LOCKSTYLE_ERROR final : public GP_SERV_PACKET +{ +public: + struct PacketData + { + uint8_t Count; // PS2: (New; did not exist.) + uint8_t padding05[3]; // PS2: (New; did not exist.) + uint16_t ItemNo[16]; // PS2: (New; did not exist.) + }; + + GP_SERV_COMMAND_LOCKSTYLE_ERROR(const std::vector& failedItemIds); +}; diff --git a/src/map/packets/s2c/CMakeLists.txt b/src/map/packets/s2c/CMakeLists.txt index 59500d25493..7c89909f3cd 100644 --- a/src/map/packets/s2c/CMakeLists.txt +++ b/src/map/packets/s2c/CMakeLists.txt @@ -294,6 +294,8 @@ set(PACKET_S2C_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/0x119_abil_recast.cpp ${CMAKE_CURRENT_SOURCE_DIR}/0x11a_emote_list.h ${CMAKE_CURRENT_SOURCE_DIR}/0x11a_emote_list.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/0x11c_lockstyle_error.h + ${CMAKE_CURRENT_SOURCE_DIR}/0x11c_lockstyle_error.cpp ${CMAKE_CURRENT_SOURCE_DIR}/0x11d_partyreq.h ${CMAKE_CURRENT_SOURCE_DIR}/0x11e_jump.h ${CMAKE_CURRENT_SOURCE_DIR}/0x11e_jump.cpp diff --git a/src/map/utils/charutils.cpp b/src/map/utils/charutils.cpp index 0e060b92c22..afecf474a3e 100644 --- a/src/map/utils/charutils.cpp +++ b/src/map/utils/charutils.cpp @@ -1796,7 +1796,7 @@ auto AddItem(CCharEntity* PChar, uint8 LocationID, std::unique_ptr PItem, * * ************************************************************************/ -bool HasItem(CCharEntity* PChar, uint16 ItemID) +bool HasItem(CCharEntity* PChar, uint16 ItemID, IncludeRecycleBin includeRecycleBin) { if (ItemID == 0) { @@ -1804,6 +1804,11 @@ bool HasItem(CCharEntity* PChar, uint16 ItemID) } for (uint8 LocID = 0; LocID < CONTAINER_ID::MAX_CONTAINER_ID; ++LocID) { + if (!includeRecycleBin && LocID == LOC_RECYCLEBIN) + { + continue; + } + if (PChar->getStorage(LocID)->SearchItem(ItemID) != ERROR_SLOTID) { return true; @@ -2007,37 +2012,6 @@ uint32 UpdateItem(CCharEntity* PChar, uint8 LocationID, uint8 slotID, int32 quan auto PRemoved = PChar->getStorage(LocationID)->RemoveItem(slotID); PChar->pushPacket(nullptr, static_cast(LocationID), slotID); - if (PChar->getStyleLocked() && !HasItem(PChar, ItemID)) - { - if (PItem->isType(ITEM_WEAPON)) - { - if (PChar->styleItems[SLOT_MAIN] == ItemID) - { - charutils::UpdateWeaponStyle(PChar, SLOT_MAIN, (CItemWeapon*)PChar->getEquip(SLOT_MAIN)); - } - else if (PChar->styleItems[SLOT_SUB] == ItemID) - { - charutils::UpdateWeaponStyle(PChar, SLOT_SUB, (CItemWeapon*)PChar->getEquip(SLOT_SUB)); - } - } - else if (PItem->isType(ITEM_EQUIPMENT)) - { - auto equipSlotID = ((CItemEquipment*)PItem)->getSlotType(); - if (PChar->styleItems[equipSlotID] == ItemID) - { - switch (equipSlotID) - { - case SLOT_HEAD: - case SLOT_BODY: - case SLOT_HANDS: - case SLOT_LEGS: - case SLOT_FEET: - charutils::UpdateArmorStyle(PChar, equipSlotID); - break; - } - } - } - } luautils::OnItemDrop(PChar, PItem); // Remove soon to be stale PItem pointer from sync state diff --git a/src/map/utils/charutils.h b/src/map/utils/charutils.h index 02d7fd8c027..b3175936d18 100644 --- a/src/map/utils/charutils.h +++ b/src/map/utils/charutils.h @@ -27,7 +27,8 @@ #include "entities/char_entity.h" -using Recalculate = xi::Flag; +using Recalculate = xi::Flag; +using IncludeRecycleBin = xi::Flag; struct Charge_t; enum class MissionLog : uint8_t; @@ -123,7 +124,7 @@ void DoTrade(CCharEntity* PChar, CCharEntity* PTarget); bool CanTrade(CCharEntity* PChar, CCharEntity* PTarget); void CheckWeaponSkill(CCharEntity* PChar, uint8 skill); -bool HasItem(CCharEntity* PChar, uint16 ItemID); +bool HasItem(CCharEntity* PChar, uint16 ItemID, IncludeRecycleBin includeRecycleBin = IncludeRecycleBin::Yes); uint32 getItemCount(CCharEntity* PChar, uint16 ItemID); auto AddItem(CCharEntity* PChar, uint8 LocationID, std::unique_ptr PItem, bool silence = false) -> uint8; uint8 AddItem(CCharEntity* PChar, uint8 LocationID, uint16 itemID, uint32 quantity = 1, bool silence = false); From a828ff707d8b893ebd50e62dc88d32f7e8998131 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Fri, 10 Jul 2026 22:18:50 +0200 Subject: [PATCH 55/59] Cap crystal trade overflow conquest points to 1000 --- scripts/globals/conquest.lua | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/scripts/globals/conquest.lua b/scripts/globals/conquest.lua index 72116e54770..f1d53296116 100644 --- a/scripts/globals/conquest.lua +++ b/scripts/globals/conquest.lua @@ -727,22 +727,22 @@ local overseerOffsets = local crystals = { - [xi.item.FIRE_CRYSTAL] = 12, - [xi.item.ICE_CRYSTAL] = 12, - [xi.item.WIND_CRYSTAL] = 12, - [xi.item.EARTH_CRYSTAL] = 12, + [xi.item.FIRE_CRYSTAL ] = 12, + [xi.item.ICE_CRYSTAL ] = 12, + [xi.item.WIND_CRYSTAL ] = 12, + [xi.item.EARTH_CRYSTAL ] = 12, [xi.item.LIGHTNING_CRYSTAL] = 12, - [xi.item.WATER_CRYSTAL] = 12, - [xi.item.LIGHT_CRYSTAL] = 16, - [xi.item.DARK_CRYSTAL] = 16, - [xi.item.INFERNO_CRYSTAL] = 12, - [xi.item.GLACIER_CRYSTAL] = 12, - [xi.item.CYCLONE_CRYSTAL] = 12, - [xi.item.TERRA_CRYSTAL] = 12, - [xi.item.PLASMA_CRYSTAL] = 12, - [xi.item.TORRENT_CRYSTAL] = 12, - [xi.item.AURORA_CRYSTAL] = 16, - [xi.item.TWILIGHT_CRYSTAL] = 16, + [xi.item.WATER_CRYSTAL ] = 12, + [xi.item.LIGHT_CRYSTAL ] = 16, + [xi.item.DARK_CRYSTAL ] = 16, + [xi.item.INFERNO_CRYSTAL ] = 12, + [xi.item.GLACIER_CRYSTAL ] = 12, + [xi.item.CYCLONE_CRYSTAL ] = 12, + [xi.item.TERRA_CRYSTAL ] = 12, + [xi.item.PLASMA_CRYSTAL ] = 12, + [xi.item.TORRENT_CRYSTAL ] = 12, + [xi.item.AURORA_CRYSTAL ] = 16, + [xi.item.TWILIGHT_CRYSTAL ] = 16, } local expRings = @@ -1288,7 +1288,7 @@ xi.conquest.overseerOnTrade = function(player, npc, trade, guardNation, guardTyp if addPoints > 0 and pRank ~= 1 and pRankPoints < 4000 then if pRankPoints + addPoints >= 4000 then player:setRankPoints(4000) - player:addCP(pRankPoints + addPoints - 4000) + player:addCP(pRankPoints + utils.clamp(addPoints - 4000, 0, 1000)) player:showText(npc, mOffset + 44) -- 'Your rank points are full. We've added the excess to your conquest points.' else player:addRankPoints(addPoints) From a25adffeceb773c9054f565d6ba950971a4d0fc9 Mon Sep 17 00:00:00 2001 From: Kipling Date: Fri, 10 Jul 2026 13:01:43 -0700 Subject: [PATCH 56/59] Zoredonite Bug Fixes --- scripts/actions/mobskills/venom_shell.lua | 4 ++++ scripts/enum/mob_pool.lua | 1 + scripts/zones/Manaclipper/mobs/Zoredonite.lua | 10 +++++----- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/actions/mobskills/venom_shell.lua b/scripts/actions/mobskills/venom_shell.lua index d77029bbc5c..b2ebf00932d 100644 --- a/scripts/actions/mobskills/venom_shell.lua +++ b/scripts/actions/mobskills/venom_shell.lua @@ -18,6 +18,10 @@ mobskillObject.onMobWeaponSkill = function(mob, target, skill, action) local power = math.floor(mob:getMainLvl() / 2) - 2 power = math.max(power, 16) -- Floor of 16 damage per tick + if mob:getPool() == xi.mobPool.ZOREDONITE then + power = 30 -- Retail capture: Zoredonite's Venom Shell ticks for 30 + end + skill:setMsg(xi.mobskills.mobStatusEffectMove(mob, target, xi.effect.POISON, power, 0, 120)) return xi.effect.POISON diff --git a/scripts/enum/mob_pool.lua b/scripts/enum/mob_pool.lua index 07a60469006..22c93e456f3 100644 --- a/scripts/enum/mob_pool.lua +++ b/scripts/enum/mob_pool.lua @@ -46,6 +46,7 @@ xi.mobPool = THRONE_ROOM_VOLKER = 4249, -- Throne Room BC, Volker WREAKER = 4382, -- Wreaker (CoP 1-3 Spire Battle) ZIZZY_ZILLAH = 4509, -- Zizzy Zillah (Mamook NM) + ZOREDONITE = 4519, -- Zoredonite (Manaclipper NM) Venom Shell 30/tick poison QNAERN_WHM = 4651, -- Qn'Aern WHM benediction check GROUNDSKEEPER_WALL = 5128, -- Groundskeepers in wall that aggro AMNAF_PSYCHEFLAYER = 5310, -- Reset enmity on sleepga diff --git a/scripts/zones/Manaclipper/mobs/Zoredonite.lua b/scripts/zones/Manaclipper/mobs/Zoredonite.lua index 7328ff22f0e..f6c3ef5643c 100644 --- a/scripts/zones/Manaclipper/mobs/Zoredonite.lua +++ b/scripts/zones/Manaclipper/mobs/Zoredonite.lua @@ -1,6 +1,5 @@ --- Note: Zoredonite not despawning when the boat docks is correct to retail behavior. He will respawn on the boat when it takes off again. As long as he is claimed when the boat docks, he will always respawn on the next boat ride. --- To Do: Venom Shell poison tick rate is 30/HP per tick based on retail captures. --- To Do: Fix uragnite family mixin. Right now, they do not go into their shells to heal. +-- Note: Zoredonite persists on the boat across rides until killed. +-- On death he goes on a 12 hour cooldown before he can spawn again. ----------------------------------- -- Area: Manaclipper -- NM: Zoredonite @@ -18,8 +17,9 @@ entity.onMobEngage = function(mob, player) mob:setLocalVar('[uragnite]inShellRegen', 100) end -entity.onMobDespawn = function(mob) - mob:setLocalVar('respawn', GetSystemTime() + 43200) -- 12 hour respawn +entity.onMobDeath = function(mob, player, optParams) + mob:setLocalVar('respawn', GetSystemTime() + 43200) -- When killed: 12 hour respawn timer. + mob:setRespawnTime(0) -- Cancel auto-respawn. end return entity From 276039e2bf2ba837d9c876def6471abf7cef3a53 Mon Sep 17 00:00:00 2001 From: sruon Date: Fri, 10 Jul 2026 14:49:26 -0600 Subject: [PATCH 57/59] Reject lockstyle if item can't be equipped / has wrong skill type --- src/map/packets/c2s/0x053_lockstyle.cpp | 12 ++++++++++++ src/map/utils/charutils.h | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/map/packets/c2s/0x053_lockstyle.cpp b/src/map/packets/c2s/0x053_lockstyle.cpp index c67aaf9d79b..f58d469f669 100644 --- a/src/map/packets/c2s/0x053_lockstyle.cpp +++ b/src/map/packets/c2s/0x053_lockstyle.cpp @@ -111,6 +111,18 @@ void GP_CLI_COMMAND_LOCKSTYLE::process(MapSession* PSession, CCharEntity* PChar) failedItemIds.push_back(itemId); itemId = 0; } + else if (!charutils::canEquipItemOnAnyJob(PChar, PItem)) // owned but no leveled job can equip it + { + failedItemIds.push_back(itemId); + itemId = 0; + } + else if ((item.EquipKind == SLOT_MAIN || item.EquipKind == SLOT_SUB || item.EquipKind == SLOT_RANGED) && + !charutils::hasValidStyle(PChar, PChar->getEquip(static_cast(item.EquipKind)), PItem)) + { + // A weapon appearance can only be locked over a weapon of the same skill type + failedItemIds.push_back(itemId); + itemId = 0; + } PChar->styleItems[item.EquipKind] = itemId; diff --git a/src/map/utils/charutils.h b/src/map/utils/charutils.h index b3175936d18..84d320f7e7e 100644 --- a/src/map/utils/charutils.h +++ b/src/map/utils/charutils.h @@ -143,6 +143,8 @@ void CheckUnarmedWeapon(CCharEntity* PChar); void SetStyleLock(CCharEntity* PChar, bool isStyleLocked); void UpdateWeaponStyle(CCharEntity* PChar, uint8 equipSlotID, CItemEquipment* PItem); void UpdateArmorStyle(CCharEntity* PChar, uint8 equipSlotID); +auto canEquipItemOnAnyJob(CCharEntity* PChar, const CItemEquipment* PItem) -> bool; +auto hasValidStyle(CCharEntity* PChar, const CItemEquipment* PItem, const CItemEquipment* AItem) -> bool; void UpdateRemovedSlotsLookForLockStyle(CCharEntity* PChar); void UpdateRemovedSlotsLook(CCharEntity* PChar); void AddItemToRecycleBin(CCharEntity* PChar, uint32 container, uint8 slotID, uint8 quantity); From 4193cadd0de204730dbf95b947d3c378d5750069 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Fri, 10 Jul 2026 21:07:59 +0200 Subject: [PATCH 58/59] Update `calculateAbsorbtion` and `calcullateNullification` in modules --- modules/era/lua/actions/weaponskills/sword.lua | 8 ++++---- modules/era/lua/globals/combat/skillchain.lua | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/era/lua/actions/weaponskills/sword.lua b/modules/era/lua/actions/weaponskills/sword.lua index e724c49dbc5..f4fcd1544d5 100644 --- a/modules/era/lua/actions/weaponskills/sword.lua +++ b/modules/era/lua/actions/weaponskills/sword.lua @@ -166,8 +166,8 @@ m:addOverride('xi.actions.weaponskills.spirits_within.onUseWeaponSkill', functio local damage = dmg damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) - damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false)) - damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true)) + damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, false, false, true)) + damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, false, false, true)) damage = math.floor(target:handleSevereDamage(damage, false)) if damage > 0 then @@ -304,8 +304,8 @@ m:addOverride('xi.actions.weaponskills.atonement.onUseWeaponSkill', function(pla -- This is here to account for damage adjustments needed because it is breath damage. damage = dmg damage = math.floor(damage * xi.combat.damage.calculateDamageAdjustment(target, false, false, false, true)) - damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false)) - damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, true)) + damage = math.floor(damage * xi.spells.damage.calculateAbsorption(target, xi.element.NONE, false, false, false, true)) + damage = math.floor(damage * xi.spells.damage.calculateNullification(target, xi.element.NONE, false, false, false, true)) damage = math.floor(target:handleSevereDamage(damage, false)) if player:getMod(xi.mod.WEAPONSKILL_DAMAGE_BASE + wsID) > 0 then diff --git a/modules/era/lua/globals/combat/skillchain.lua b/modules/era/lua/globals/combat/skillchain.lua index a8d88f26261..5fc50720182 100644 --- a/modules/era/lua/globals/combat/skillchain.lua +++ b/modules/era/lua/globals/combat/skillchain.lua @@ -76,7 +76,7 @@ m:addOverride('xi.combat.skillchain.calculateSkillchainDamage', function(actor, return 0 end - if xi.spells.damage.calculateNullification(target, skillchainElement, true, false) == 0 then + if xi.spells.damage.calculateNullification(target, skillchainElement, false, true, false, false) == 0 then return 0 end @@ -94,7 +94,7 @@ m:addOverride('xi.combat.skillchain.calculateSkillchainDamage', function(actor, -- Unconfirmed order. local inninMultiplier = 1 + actor:getMerit(xi.merit.INNIN_EFFECT) / 100 local sengikoriMultiplier = 1 + target:getMod(xi.mod.SENGIKORI_SC_DMG_DEBUFF) / 100 - local absorptionMultiplier = xi.spells.damage.calculateAbsorption(target, skillchainElement, true) + local absorptionMultiplier = xi.spells.damage.calculateAbsorption(target, skillchainElement, false, true, false, false) -- Apply multipliers in order and floor after each step. finalDamage = math.floor(finalDamage * levelMultiplier) From bb490d3e0727124de47d2d8e4840ce995e34caf0 Mon Sep 17 00:00:00 2001 From: Xaver-DaRed Date: Fri, 10 Jul 2026 21:32:47 +0200 Subject: [PATCH 59/59] Update modules combat folder location and structure --- modules/era/lua/{globals/combat => combat/basic}/tp.lua | 0 modules/era/lua/{globals => }/combat/pdif_caps.lua | 0 modules/era/lua/{globals => }/combat/physical_hit_rate.lua | 0 modules/era/lua/{globals => }/combat/skillchain.lua | 0 scripts/globals/conquest.lua | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-) rename modules/era/lua/{globals/combat => combat/basic}/tp.lua (100%) rename modules/era/lua/{globals => }/combat/pdif_caps.lua (100%) rename modules/era/lua/{globals => }/combat/physical_hit_rate.lua (100%) rename modules/era/lua/{globals => }/combat/skillchain.lua (100%) diff --git a/modules/era/lua/globals/combat/tp.lua b/modules/era/lua/combat/basic/tp.lua similarity index 100% rename from modules/era/lua/globals/combat/tp.lua rename to modules/era/lua/combat/basic/tp.lua diff --git a/modules/era/lua/globals/combat/pdif_caps.lua b/modules/era/lua/combat/pdif_caps.lua similarity index 100% rename from modules/era/lua/globals/combat/pdif_caps.lua rename to modules/era/lua/combat/pdif_caps.lua diff --git a/modules/era/lua/globals/combat/physical_hit_rate.lua b/modules/era/lua/combat/physical_hit_rate.lua similarity index 100% rename from modules/era/lua/globals/combat/physical_hit_rate.lua rename to modules/era/lua/combat/physical_hit_rate.lua diff --git a/modules/era/lua/globals/combat/skillchain.lua b/modules/era/lua/combat/skillchain.lua similarity index 100% rename from modules/era/lua/globals/combat/skillchain.lua rename to modules/era/lua/combat/skillchain.lua diff --git a/scripts/globals/conquest.lua b/scripts/globals/conquest.lua index f1d53296116..6e087a81617 100644 --- a/scripts/globals/conquest.lua +++ b/scripts/globals/conquest.lua @@ -1288,7 +1288,7 @@ xi.conquest.overseerOnTrade = function(player, npc, trade, guardNation, guardTyp if addPoints > 0 and pRank ~= 1 and pRankPoints < 4000 then if pRankPoints + addPoints >= 4000 then player:setRankPoints(4000) - player:addCP(pRankPoints + utils.clamp(addPoints - 4000, 0, 1000)) + player:addCP(utils.clamp(pRankPoints + addPoints - 4000, 0, 1000)) player:showText(npc, mOffset + 44) -- 'Your rank points are full. We've added the excess to your conquest points.' else player:addRankPoints(addPoints)