From 4d3da59c7a7ea1ba044cde99ac292676d149f1fc Mon Sep 17 00:00:00 2001 From: claywar Date: Sat, 11 May 2024 15:38:39 -0400 Subject: [PATCH] Fix "A Thief in Norg?!" content group IDs Turn off pet spawn, since mob_pets spawn automatically Add missing variable to getVar Fix default actions for SAM AF2, AF3 Correct spawn points, add additional NPCs for Waughroon Shrine Add jobspecial mixin for enemies Add missing mob entries, cleanup groups Remove avatars from required group Fix conditional for Yomi Okuri timing Fix conditional again --- .../Waughroon_Shrine/thief_in_norg.lua | 18 +++++++++--- scripts/quests/outlands/Yomi_Okuri.lua | 16 +++++++---- .../Labyrinth_of_Onzozo/DefaultActions.lua | 2 +- scripts/zones/Labyrinth_of_Onzozo/IDs.lua | 1 + .../zones/Valkurm_Dunes/DefaultActions.lua | 2 +- scripts/zones/Valkurm_Dunes/IDs.lua | 2 ++ .../zones/Waughroon_Shrine/mobs/Ayakashi.lua | 12 ++++++++ scripts/zones/Waughroon_Shrine/mobs/Gaki.lua | 2 ++ scripts/zones/Waughroon_Shrine/mobs/Onki.lua | 2 ++ .../zones/Waughroon_Shrine/mobs/Rasetsu.lua | 2 ++ sql/mob_groups.sql | 1 + sql/mob_spawn_points.sql | 28 +++++++++---------- sql/npc_list.sql | 10 +++++-- 13 files changed, 71 insertions(+), 27 deletions(-) create mode 100644 scripts/zones/Waughroon_Shrine/mobs/Ayakashi.lua diff --git a/scripts/battlefields/Waughroon_Shrine/thief_in_norg.lua b/scripts/battlefields/Waughroon_Shrine/thief_in_norg.lua index a81dd6bc5ef..4b47f30f703 100644 --- a/scripts/battlefields/Waughroon_Shrine/thief_in_norg.lua +++ b/scripts/battlefields/Waughroon_Shrine/thief_in_norg.lua @@ -21,7 +21,7 @@ local content = BattlefieldQuest:new({ }) function content:entryRequirement(player, npc, isRegistrant, trade) - return xi.quest.getVar(player, xi.questLog.OUTLANDS, xi.quest.id.outlands.A_THIEF_IN_NORG) == 6 + return xi.quest.getVar(player, xi.questLog.OUTLANDS, xi.quest.id.outlands.A_THIEF_IN_NORG, 'Prog') == 6 end content.groups = @@ -33,21 +33,18 @@ content.groups = waughroonID.mob.GAKI, waughroonID.mob.GAKI + 1, waughroonID.mob.GAKI + 2, - waughroonID.mob.GAKI + 3, }, { waughroonID.mob.GAKI + 5, waughroonID.mob.GAKI + 6, waughroonID.mob.GAKI + 7, - waughroonID.mob.GAKI + 8, }, { waughroonID.mob.GAKI + 10, waughroonID.mob.GAKI + 11, waughroonID.mob.GAKI + 12, - waughroonID.mob.GAKI + 13, }, }, @@ -56,6 +53,17 @@ content.groups = end, }, + -- Elemental + { + mobIds = + { + { waughroonID.mob.GAKI + 3 }, + { waughroonID.mob.GAKI + 8 }, + { waughroonID.mob.GAKI + 13 }, + }, + }, + + -- Avatar { mobIds = { @@ -63,6 +71,8 @@ content.groups = { waughroonID.mob.GAKI + 9 }, { waughroonID.mob.GAKI + 14 }, }, + + spawned = false, }, } diff --git a/scripts/quests/outlands/Yomi_Okuri.lua b/scripts/quests/outlands/Yomi_Okuri.lua index b7e2e7a8f28..a3bdee9674d 100644 --- a/scripts/quests/outlands/Yomi_Okuri.lua +++ b/scripts/quests/outlands/Yomi_Okuri.lua @@ -207,16 +207,22 @@ quest.sections = { onTrigger = function(player, npc) local vanadielHour = VanadielHour() + local domanMob = GetMobByID(valkurmID.mob.DOMAN) + local onryoMob = GetMobByID(valkurmID.mob.ONRYO) if player:hasKeyItem(xi.ki.YOMOTSU_HIRASAKA) and quest:getLocalVar(player, 'valkurmNM') == 0 and - (vanadielHour > 18 or vanadielHour < 5) and - not GetMobByID(valkurmID.mob.DOMAN):isSpawned() and - not GetMobByID(valkurmID.mob.ONRYO):isSpawned() + (vanadielHour >= 18 or vanadielHour < 5) then - npc:setLocalVar('triggerInProgress', 1) - return quest:progressEvent(10) + if + not domanMob:isSpawned() and + not onryoMob:isSpawned() + then + return quest:progressEvent(10) + else + return quest:messageSpecial(valkurmID.text.WHAT_DO_YOU_THINK) + end elseif quest:getLocalVar(player, 'valkurmNM') == 1 then player:delKeyItem(xi.ki.YOMOTSU_HIRASAKA) return quest:keyItem(xi.ki.FADED_YOMOTSU_HIRASAKA) diff --git a/scripts/zones/Labyrinth_of_Onzozo/DefaultActions.lua b/scripts/zones/Labyrinth_of_Onzozo/DefaultActions.lua index 835aad5662f..46476a337c6 100644 --- a/scripts/zones/Labyrinth_of_Onzozo/DefaultActions.lua +++ b/scripts/zones/Labyrinth_of_Onzozo/DefaultActions.lua @@ -2,5 +2,5 @@ local ID = zones[xi.zone.LABYRINTH_OF_ONZOZO] return { ['qm1'] = { messageSpecial = ID.text.NOTHING_OUT_OF_ORDINARY }, - ['qm2'] = { messageSpecial = ID.text.NOTHING_OUT_OF_ORDINARY }, + ['qm2'] = { messageSpecial = ID.text.NEST_OF_LARGE_BIRD }, } diff --git a/scripts/zones/Labyrinth_of_Onzozo/IDs.lua b/scripts/zones/Labyrinth_of_Onzozo/IDs.lua index 6dc39ec0e05..dd83305160a 100644 --- a/scripts/zones/Labyrinth_of_Onzozo/IDs.lua +++ b/scripts/zones/Labyrinth_of_Onzozo/IDs.lua @@ -21,6 +21,7 @@ zones[xi.zone.LABYRINTH_OF_ONZOZO] = CONQUEST_BASE = 7061, -- Tallying conquest results... FISHING_MESSAGE_OFFSET = 7220, -- You can't fish here. CHEST_UNLOCKED = 7328, -- You unlock the chest! + NEST_OF_LARGE_BIRD = 7336, -- It looks like the nest of a very large bird. SENSE_OMINOUS_PRESENCE = 7344, -- You sense an ominous presence... REGIME_REGISTERED = 9400, -- New training regime registered! PLAYER_OBTAINS_ITEM = 10452, -- obtains ! diff --git a/scripts/zones/Valkurm_Dunes/DefaultActions.lua b/scripts/zones/Valkurm_Dunes/DefaultActions.lua index 8a05aab48ff..c1823a93821 100644 --- a/scripts/zones/Valkurm_Dunes/DefaultActions.lua +++ b/scripts/zones/Valkurm_Dunes/DefaultActions.lua @@ -1,5 +1,5 @@ local ID = zones[xi.zone.VALKURM_DUNES] return { - ['qm3'] = { messageSpecial = ID.text.NOTHING_OUT_OF_ORDINARY }, + ['qm3'] = { messageSpecial = ID.text.YOU_SENSE_AN_EVIL_PRESENCE }, } diff --git a/scripts/zones/Valkurm_Dunes/IDs.lua b/scripts/zones/Valkurm_Dunes/IDs.lua index ea08a462b91..f6f612efdbc 100644 --- a/scripts/zones/Valkurm_Dunes/IDs.lua +++ b/scripts/zones/Valkurm_Dunes/IDs.lua @@ -32,6 +32,8 @@ zones[xi.zone.VALKURM_DUNES] = SIGNPOST2 = 7371, -- Northeast: La Theine Plateau Southeast: Konschtat Highlands West: Selbina SIGNPOST1 = 7372, -- Northeast: La Theine Plateau Southeast: Konschtat Highlands Southwest: Selbina CONQUEST = 7382, -- You've earned conquest points! + YOU_SENSE_AN_EVIL_PRESENCE = 7726, -- You sense an evil presence... + WHAT_DO_YOU_THINK = 7728, -- What do you think you are doing!? AN_EMPTY_LIGHT_SWIRLS = 7760, -- An empty light swirls about the cave, eating away at the surroundings... GARRISON_BASE = 7762, -- Hm? What is this? %? How do I know this is not some [San d'Orian/Bastokan/Windurstian] trick? MONSTERS_KILLED_ADVENTURERS = 7836, -- Long ago, monsters killed many adventurers and merchants just off the coast here. If you find any vestige of the victims and return it to the sea, perhaps it would appease the spirits of the dead. diff --git a/scripts/zones/Waughroon_Shrine/mobs/Ayakashi.lua b/scripts/zones/Waughroon_Shrine/mobs/Ayakashi.lua new file mode 100644 index 00000000000..0e07c718bea --- /dev/null +++ b/scripts/zones/Waughroon_Shrine/mobs/Ayakashi.lua @@ -0,0 +1,12 @@ +----------------------------------- +-- Area: Waughroon Shrine +-- Mob: Ayakashi +----------------------------------- +mixins = { require('scripts/mixins/families/avatar') } +----------------------------------- +local entity = {} + +entity.onMobDeath = function(mob, player, optParams) +end + +return entity diff --git a/scripts/zones/Waughroon_Shrine/mobs/Gaki.lua b/scripts/zones/Waughroon_Shrine/mobs/Gaki.lua index 0dc96d0d613..dafc9917e65 100644 --- a/scripts/zones/Waughroon_Shrine/mobs/Gaki.lua +++ b/scripts/zones/Waughroon_Shrine/mobs/Gaki.lua @@ -3,6 +3,8 @@ -- Mob: Gaki -- a Thief in Norg BCNM Fight ----------------------------------- +mixins = { require('scripts/mixins/job_special') } +----------------------------------- local entity = {} entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Waughroon_Shrine/mobs/Onki.lua b/scripts/zones/Waughroon_Shrine/mobs/Onki.lua index 01c62e64446..ee9d7695617 100644 --- a/scripts/zones/Waughroon_Shrine/mobs/Onki.lua +++ b/scripts/zones/Waughroon_Shrine/mobs/Onki.lua @@ -3,6 +3,8 @@ -- Mob: Onki -- a Thief in Norg BCNM Fight ----------------------------------- +mixins = { require('scripts/mixins/job_special') } +----------------------------------- local entity = {} entity.onMobDeath = function(mob, player, optParams) diff --git a/scripts/zones/Waughroon_Shrine/mobs/Rasetsu.lua b/scripts/zones/Waughroon_Shrine/mobs/Rasetsu.lua index 303dfb6e0c2..a912e4bb3ac 100644 --- a/scripts/zones/Waughroon_Shrine/mobs/Rasetsu.lua +++ b/scripts/zones/Waughroon_Shrine/mobs/Rasetsu.lua @@ -3,6 +3,8 @@ -- Mob: Rasetsu -- a Thief in Norg BCNM Fight ----------------------------------- +mixins = { require('scripts/mixins/job_special') } +----------------------------------- local entity = {} entity.onMobDeath = function(mob, player, optParams) diff --git a/sql/mob_groups.sql b/sql/mob_groups.sql index bb900e54e38..7a6d5f9f234 100644 --- a/sql/mob_groups.sql +++ b/sql/mob_groups.sql @@ -10225,6 +10225,7 @@ INSERT INTO `mob_groups` VALUES (64,0,144,'Naji',0,128,0,0,0,0,0,0); INSERT INTO `mob_groups` VALUES (65,0,144,'Naji',0,128,0,0,0,0,0,0); INSERT INTO `mob_groups` VALUES (66,0,144,'Kupipi',0,128,0,0,0,0,0,0); INSERT INTO `mob_groups` VALUES (67,0,144,'Excenmille',0,128,0,0,0,0,0,0); +INSERT INTO `mob_groups` VALUES (68,304,144,'Ayakashi',0,128,0,2400,0,66,67,0); -- ------------------------------------------------------------ -- Giddeus (Zone 145) diff --git a/sql/mob_spawn_points.sql b/sql/mob_spawn_points.sql index f0a28e0b9d5..043322f5eab 100644 --- a/sql/mob_spawn_points.sql +++ b/sql/mob_spawn_points.sql @@ -51628,20 +51628,20 @@ INSERT INTO `mob_spawn_points` VALUES (17367057,'DaShu_Knightslayer','Da\'Shu Kn INSERT INTO `mob_spawn_points` VALUES (17367058,'GoBha_Slaughterer','Go\'Bha Slaughterer',6,221.194,-59.900,136.246,128); -- A Thief in Norg!? -INSERT INTO `mob_spawn_points` VALUES (17367059,'Gaki','Gaki',7,-177.000,60.000,-144.000,130); -INSERT INTO `mob_spawn_points` VALUES (17367060,'Rasetsu','Rasetsu',8,-177.000,60.000,-142.000,130); -INSERT INTO `mob_spawn_points` VALUES (17367061,'Onki','Onki',9,-177.000,60.000,-140.000,130); -INSERT INTO `mob_spawn_points` VALUES (17367062,'Onibi','Onibi',10,1.000,1.000,1.000,130); -INSERT INTO `mob_spawn_points` VALUES (17367063,'Ayakashi','Ayakashi',11,0.000,0.000,0.000,0); -INSERT INTO `mob_spawn_points` VALUES (17367064,'Gaki','Gaki',7,23.274,0.000,15.964,130); -INSERT INTO `mob_spawn_points` VALUES (17367065,'Rasetsu','Rasetsu',8,23.274,0.000,17.964,130); -INSERT INTO `mob_spawn_points` VALUES (17367066,'Onki','Onki',9,23.274,0.000,19.964,130); -INSERT INTO `mob_spawn_points` VALUES (17367067,'Onibi','Onibi',10,201.274,-59.000,160.964,130); -INSERT INTO `mob_spawn_points` VALUES (17367068,'Ayakashi','Ayakashi',11,0.000,0.000,0.000,0); -INSERT INTO `mob_spawn_points` VALUES (17367069,'Gaki','Gaki',7,223.224,-60.000,135.946,130); -INSERT INTO `mob_spawn_points` VALUES (17367070,'Rasetsu','Rasetsu',8,223.224,-60.000,137.946,130); -INSERT INTO `mob_spawn_points` VALUES (17367071,'Onki','Onki',9,223.224,-60.000,139.946,130); -INSERT INTO `mob_spawn_points` VALUES (17367072,'Onibi','Onibi',10,401.224,-119.000,280.946,130); +INSERT INTO `mob_spawn_points` VALUES (17367059,'Gaki','Gaki',7,-177.354,59.769,-144.000,130); +INSERT INTO `mob_spawn_points` VALUES (17367060,'Rasetsu','Rasetsu',8,-177.354,59.696,-142.000,130); +INSERT INTO `mob_spawn_points` VALUES (17367061,'Onki','Onki',9,-177.354,59.770,-140.000,130); +INSERT INTO `mob_spawn_points` VALUES (17367062,'Onibi','Onibi',10,-177.352,59.770,-139.998,130); +INSERT INTO `mob_spawn_points` VALUES (17367063,'Ayakashi','Ayakashi',11,-182.116,59.641,-139.434,0); +INSERT INTO `mob_spawn_points` VALUES (17367064,'Gaki','Gaki',7,22.646,-0.230,15.982,130); +INSERT INTO `mob_spawn_points` VALUES (17367065,'Rasetsu','Rasetsu',8,22.646,-0.304,17.982,130); +INSERT INTO `mob_spawn_points` VALUES (17367066,'Onki','Onki',9,22.646,-0.230,19.982,130); +INSERT INTO `mob_spawn_points` VALUES (17367067,'Onibi','Onibi',10,22.646,-0.230,19.982,130); +INSERT INTO `mob_spawn_points` VALUES (17367068,'Ayakashi','Ayakashi',11,18.130,-0.202,17.401,0); +INSERT INTO `mob_spawn_points` VALUES (17367069,'Gaki','Gaki',7,222.641,-60.230,136.000,130); +INSERT INTO `mob_spawn_points` VALUES (17367070,'Rasetsu','Rasetsu',8,222.641,-60.303,138.000,130); +INSERT INTO `mob_spawn_points` VALUES (17367071,'Onki','Onki',9,222.641,-60.229,140.000,130); +INSERT INTO `mob_spawn_points` VALUES (17367072,'Onibi','Onibi',10,222.641,-60.229,140.001,130); INSERT INTO `mob_spawn_points` VALUES (17367073,'Ayakashi','Ayakashi',11,0.000,0.000,0.000,0); -- Shattering Stars diff --git a/sql/npc_list.sql b/sql/npc_list.sql index 6170c1bd856..58d346d10da 100644 --- a/sql/npc_list.sql +++ b/sql/npc_list.sql @@ -18308,18 +18308,24 @@ INSERT INTO `npc_list` VALUES (17367777,'Achieve_Master','Achieve Master',0,0.00 INSERT INTO `npc_list` VALUES (17367779,'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 (17367781,'NPC[2e5]','NPC',0,0.000,0.500,0.000,0,50,50,0,0,0,2,1,0x0000320000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17367782,'NPC[2e6]','NPC',0,0.000,0.500,0.000,0,40,40,0,16,32,2,129,0x00002C0900000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17367783,'NPC[2e7]','NPC',0,0.000,0.000,0.000,0,50,50,0,0,4,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367784,'BC_Entrance','Burning Circle',0,-339.601,104.304,-260.341,1,40,40,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367785,'Burning_Circle','Burning Circle',0,-260.800,60.304,-139.564,1,40,40,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367786,'Burning_Circle','Burning Circle',0,-60.971,0.304,20.262,1,40,40,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367787,'Burning_Circle','Burning Circle',165,139.246,-59.695,140.031,1,40,40,0,0,0,0,3,0x0000340000000000000000000000000000000000,0,NULL,1); - +INSERT INTO `npc_list` VALUES (17367788,'NPC[2ec]','NPC',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17367789,'NPC[2ed]','NPC',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17367790,'NPC[2ee]','NPC',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); +INSERT INTO `npc_list` VALUES (17367791,'NPC[2ef]','NPC',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367792,'Seeker','Seeker',126,-169.973,59.862,-142.114,0,40,40,0,0,0,6,155,0x0000080100000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367793,'Dark_Dragon','Dark Dragon',130,-177.226,60.168,-142.009,0,40,40,0,0,0,6,155,0x0000A40100000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367794,'Lion','Lion',254,-200.570,58.544,-140.758,0,40,40,0,0,0,6,27,0x00003C0000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367795,'Ayame','Ayame',253,-183.525,59.896,-141.997,0,40,40,0,0,0,6,27,0x0100030211100920093009400950906000700000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367796,'Ayame','Ayame',35,-185.383,59.815,-136.122,0,40,40,0,0,0,6,27,0x0100030211100920093009400950006000700000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367797,'blank','',23,-155.643,58.061,-141.992,0,50,50,0,0,0,4,2051,0x0000320000000000000000000000000000000000,0,NULL,1); - +INSERT INTO `npc_list` VALUES (17367798,'NPC[2f6]','NPC',0,0.000,0.000,0.000,0,50,50,0,0,0,2,3,0x0000320000000000000000000000000000000000,0,NULL,1); INSERT INTO `npc_list` VALUES (17367799,'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 (17367800,'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 (17367801,'Moogle','Moogle',0,0.000,0.000,0.000,0,40,40,0,0,0,2,4194307,0x0000520000000000000000000000000000000000,0,NULL,0);