From 77d6cb2e43d01edf1957aed3e3edc3e1fa170120 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 9 Jul 2017 11:39:17 -0400 Subject: [PATCH 1/6] Fixed up how "special" items work (ie: PUG and ARC weapons). No more glitches hopefully. --- FFXIVClassic Map Server/Database.cs | 11 ++++---- .../actors/chara/player/Player.cs | 13 ++++++++++ .../dataobjects/ItemData.cs | 12 +++++++++ data/scripts/commands/EquipCommand.lua | 10 +++---- sql/gamedata_items_graphics_extra.sql | 26 +++++++++++++++++++ 5 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 sql/gamedata_items_graphics_extra.sql diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index b23214f1..576ef116 100644 --- a/FFXIVClassic Map Server/Database.cs +++ b/FFXIVClassic Map Server/Database.cs @@ -84,11 +84,12 @@ namespace FFXIVClassic_Map_Server SELECT * FROM gamedata_items - LEFT JOIN gamedata_items_equipment ON gamedata_items.catalogID = gamedata_items_equipment.catalogID - LEFT JOIN gamedata_items_accessory ON gamedata_items.catalogID = gamedata_items_accessory.catalogID - LEFT JOIN gamedata_items_armor ON gamedata_items.catalogID = gamedata_items_armor.catalogID - LEFT JOIN gamedata_items_weapon ON gamedata_items.catalogID = gamedata_items_weapon.catalogID - LEFT JOIN gamedata_items_graphics ON gamedata_items.catalogID = gamedata_items_graphics.catalogID + LEFT JOIN gamedata_items_equipment ON gamedata_items.catalogID = gamedata_items_equipment.catalogID + LEFT JOIN gamedata_items_accessory ON gamedata_items.catalogID = gamedata_items_accessory.catalogID + LEFT JOIN gamedata_items_armor ON gamedata_items.catalogID = gamedata_items_armor.catalogID + LEFT JOIN gamedata_items_weapon ON gamedata_items.catalogID = gamedata_items_weapon.catalogID + LEFT JOIN gamedata_items_graphics ON gamedata_items.catalogID = gamedata_items_graphics.catalogID + LEFT JOIN gamedata_items_graphics_extra ON gamedata_items.catalogID = gamedata_items_graphics_extra.catalogID "; MySqlCommand cmd = new MySqlCommand(query, conn); diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index fed88f12..7801edac 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -1005,6 +1005,19 @@ namespace FFXIVClassic_Map_Server.Actors appearanceIds[slot] = graphicId; } + + //Handle offhand + if (slot == MAINHAND && item is WeaponItem) + { + WeaponItem wpItem = (WeaponItem)item; + + uint graphicId = + (wpItem.graphicsOffhandWeaponId & 0x3FF) << 20 | + (wpItem.graphicsOffhandEquipmentId & 0x3FF) << 10 | + (wpItem.graphicsOffhandVariantId & 0x3FF); + + appearanceIds[SetActorAppearancePacket.OFFHAND] = graphicId; + } } Database.SavePlayerAppearance(this); diff --git a/FFXIVClassic Map Server/dataobjects/ItemData.cs b/FFXIVClassic Map Server/dataobjects/ItemData.cs index c07dc4e1..f72d73dc 100644 --- a/FFXIVClassic Map Server/dataobjects/ItemData.cs +++ b/FFXIVClassic Map Server/dataobjects/ItemData.cs @@ -467,6 +467,11 @@ namespace FFXIVClassic_Map_Server.dataobjects class WeaponItem : EquipmentItem { + //extra graphics + public readonly uint graphicsOffhandWeaponId; + public readonly uint graphicsOffhandEquipmentId; + public readonly uint graphicsOffhandVariantId; + //weapon sheet public readonly short attack; public readonly short magicAttack; @@ -497,6 +502,13 @@ namespace FFXIVClassic_Map_Server.dataobjects public WeaponItem(MySqlDataReader reader) : base(reader) { + if (!reader.IsDBNull(reader.GetOrdinal("offHandWeaponId")) && !reader.IsDBNull(reader.GetOrdinal("offHandEquipmentId")) && !reader.IsDBNull(reader.GetOrdinal("offHandVarientId"))) + { + graphicsOffhandWeaponId = reader.GetUInt32("offHandWeaponId"); + graphicsOffhandEquipmentId = reader.GetUInt32("offHandEquipmentId"); + graphicsOffhandVariantId = reader.GetUInt32("offHandVarientId"); + } + attack = reader.GetInt16("attack"); magicAttack = reader.GetInt16("magicAttack"); craftProcessing = reader.GetInt16("craftProcessing"); diff --git a/data/scripts/commands/EquipCommand.lua b/data/scripts/commands/EquipCommand.lua index 8d741d32..966939ac 100644 --- a/data/scripts/commands/EquipCommand.lua +++ b/data/scripts/commands/EquipCommand.lua @@ -147,8 +147,10 @@ function equipItem(player, equipSlot, item) player:GetEquipment():Equip(equipSlot, item); - if (equipSlot == EQUIPSLOT_MAINHAND and gItem:IsNailWeapon() == false and gItem:IsBowWeapon() == false) then graphicSlot = GRAPHICSLOT_MAINHAND; + if (equipSlot == EQUIPSLOT_MAINHAND and gItem:IsNailWeapon() == false) then graphicSlot = GRAPHICSLOT_MAINHAND; elseif (equipSlot == EQUIPSLOT_OFFHAND) then graphicSlot = GRAPHICSLOT_OFFHAND; + elseif (equipSlot == EQUIPSLOT_THROWINGWEAPON) then graphicSlot = GRAPHICSLOT_THROWING; + elseif (equipSlot == EQUIPSLOT_PACK) then graphicSlot = GRAPHICSLOT_PACK; elseif (equipSlot == EQUIPSLOT_HEAD) then graphicSlot = GRAPHICSLOT_HEAD; elseif (equipSlot == EQUIPSLOT_BODY) then graphicSlot = GRAPHICSLOT_BODY; elseif (equipSlot == EQUIPSLOT_LEGS) then graphicSlot = GRAPHICSLOT_LEGS; @@ -162,13 +164,9 @@ function equipItem(player, equipSlot, item) --Graphic Slot was set, otherwise it's a special case if (graphicSlot ~= nil) then player:GraphicChange(graphicSlot, item); - if (graphicSlot == GRAPHICSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil); end elseif (gItem:IsNailWeapon()) then player:GraphicChange(GRAPHICSLOT_MAINHAND, item); player:GraphicChange(GRAPHICSLOT_OFFHAND, item); - elseif (gItem:IsBowWeapon()) then - player:GraphicChange(GRAPHICSLOT_MAINHAND, item); - --player:GraphicChange(GRAPHICSLOT_OFFHAND, item); elseif (equipSlot == EQUIPSLOT_EARS) then player:GraphicChange(GRAPHICSLOT_R_EAR, item); player:GraphicChange(GRAPHICSLOT_L_EAR, item); @@ -203,6 +201,8 @@ function unequipItem(player, equipSlot, item) else if (equipSlot == EQUIPSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_MAINHAND, nil); elseif (equipSlot == EQUIPSLOT_OFFHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil); + elseif (equipSlot == EQUIPSLOT_THROWINGWEAPON) then player:GraphicChange(GRAPHICSLOT_THROWING, nil); + elseif (equipSlot == EQUIPSLOT_PACK) then player:GraphicChange(GRAPHICSLOT_PACK, nil); elseif (equipSlot == EQUIPSLOT_HEAD) then player:GraphicChange(GRAPHICSLOT_HEAD, nil); elseif (equipSlot == EQUIPSLOT_WAIST) then player:GraphicChange(GRAPHICSLOT_WAIST, nil); elseif (equipSlot == EQUIPSLOT_EARS) then player:GraphicChange(GRAPHICSLOT_L_EAR, nil); player:GraphicChange(GRAPHICSLOT_R_EAR, nil); diff --git a/sql/gamedata_items_graphics_extra.sql b/sql/gamedata_items_graphics_extra.sql new file mode 100644 index 00000000..c78a928d --- /dev/null +++ b/sql/gamedata_items_graphics_extra.sql @@ -0,0 +1,26 @@ +/* +MySQL Data Transfer +Source Host: localhost +Source Database: ffxiv_server +Target Host: localhost +Target Database: ffxiv_server +Date: 7/9/2017 11:38:35 AM +*/ + +SET FOREIGN_KEY_CHECKS=0; +-- ---------------------------- +-- Table structure for gamedata_items_graphics_extra +-- ---------------------------- +CREATE TABLE `gamedata_items_graphics_extra` ( + `catalogID` int(10) unsigned NOT NULL, + `offHandWeaponId` int(10) unsigned NOT NULL DEFAULT '0', + `offHandEquipmentId` int(10) unsigned NOT NULL DEFAULT '0', + `offHandVarientId` int(10) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`catalogID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- ---------------------------- +-- Records +-- ---------------------------- +INSERT INTO `gamedata_items_graphics_extra` VALUES ('4020001', '58', '1', '0'); +INSERT INTO `gamedata_items_graphics_extra` VALUES ('4070001', '226', '1', '0'); From affff96837dacafafeba41dce7af9915d97a78ae Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 9 Jul 2017 11:40:28 -0400 Subject: [PATCH 2/6] A default return destination is now set on new character based on initialTown. --- data/scripts/player.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data/scripts/player.lua b/data/scripts/player.lua index 00926769..6a82be35 100644 --- a/data/scripts/player.lua +++ b/data/scripts/player.lua @@ -7,11 +7,14 @@ function onBeginLogin(player) initialTown = player:GetInitialTown(); if (initialTown == 1 and player:HasQuest(110001) == false) then - player:AddQuest(110001); + player:AddQuest(110001); + player:SetHomePoint(1280001); elseif (initialTown == 2 and player:HasQuest(110005) == false) then player:AddQuest(110005); + player:SetHomePoint(1280061); elseif (initialTown == 3 and player:HasQuest(110009) == false) then player:AddQuest(110009); + player:SetHomePoint(1280031); end end From 24c46c0480d1e39640499c51d00d0965ee509ea6 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 9 Jul 2017 12:58:22 -0400 Subject: [PATCH 3/6] Fixed issue where any actor < -1000 Z position would appear anyways. --- FFXIVClassic Map Server/actors/area/Area.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index a9fb2976..28691b42 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -30,7 +30,7 @@ namespace FFXIVClassic_Map_Server.Actors protected string classPath; public int boundingGridSize = 50; - public int minX = -1000, minY = -1000, maxX = 1000, maxY = 1000; + public int minX = -5000, minY = -5000, maxX = 5000, maxY = 5000; protected int numXBlocks, numYBlocks; protected int halfWidth, halfHeight; From 69f7fb5e475de41139b6f122d1575f0a1efd739c Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 9 Jul 2017 18:38:01 -0400 Subject: [PATCH 4/6] Ported over all the opening directors and improved the director code a bit more. Also implemented content instances for Grid/Uld. --- FFXIVClassic Map Server/actors/area/Area.cs | 4 +- .../actors/area/PrivateAreaContent.cs | 9 +-- FFXIVClassic Map Server/actors/area/Zone.cs | 4 +- .../actors/director/Director.cs | 59 ++++++++++++++++++- .../actors/director/GuildleveDirector.cs | 10 ++-- .../actors/group/ContentGroup.cs | 17 ++++-- FFXIVClassic Map Server/lua/LuaEngine.cs | 11 +++- .../npc/object/aetheryte/AetheryteParent.lua | 2 +- data/scripts/content/SimpleContent30002.lua | 18 +++--- data/scripts/content/SimpleContent30010.lua | 30 ++++++++++ data/scripts/content/SimpleContent30079.lua | 26 ++++++++ .../directors/Quest/QuestDirectorMan0u001.lua | 26 +------- data/scripts/player.lua | 24 ++++---- .../openingstoper_gridania.lua | 2 +- .../fst0Battle03/PopulaceStandard/yda.lua | 23 +++++--- .../PopulaceStandard/exit_door.lua | 5 +- .../opening_stoper_uldah.lua | 2 +- .../PopulaceStandard/exit_trigger.lua | 27 +++++---- 18 files changed, 205 insertions(+), 94 deletions(-) create mode 100644 data/scripts/content/SimpleContent30010.lua create mode 100644 data/scripts/content/SimpleContent30079.lua diff --git a/FFXIVClassic Map Server/actors/area/Area.cs b/FFXIVClassic Map Server/actors/area/Area.cs index 28691b42..220ac86b 100644 --- a/FFXIVClassic Map Server/actors/area/Area.cs +++ b/FFXIVClassic Map Server/actors/area/Area.cs @@ -501,11 +501,11 @@ namespace FFXIVClassic_Map_Server.Actors } } - public Director CreateDirector(string path, params object[] args) + public Director CreateDirector(string path, bool hasContentGroup, params object[] args) { lock (directorLock) { - Director director = new Director(directorIdCount, this, path, args); + Director director = new Director(directorIdCount, this, path, hasContentGroup, args); currentDirectors.Add(director.actorId, director); directorIdCount++; return director; diff --git a/FFXIVClassic Map Server/actors/area/PrivateAreaContent.cs b/FFXIVClassic Map Server/actors/area/PrivateAreaContent.cs index e82727e7..4cece65c 100644 --- a/FFXIVClassic Map Server/actors/area/PrivateAreaContent.cs +++ b/FFXIVClassic Map Server/actors/area/PrivateAreaContent.cs @@ -14,7 +14,6 @@ namespace FFXIVClassic_Map_Server.actors.area class PrivateAreaContent : PrivateArea { private Director currentDirector; - private ContentGroup currentContentGroup; private bool isContentFinished = false; public static PrivateAreaContent CreateContentArea(String scriptPath) @@ -26,8 +25,7 @@ namespace FFXIVClassic_Map_Server.actors.area : base(parent, parent.actorId, classPath, privateAreaName, privateAreaType, 0, 0, 0) { currentDirector = director; - currentContentGroup = Server.GetWorldManager().CreateContentGroup(director); - LuaEngine.GetInstance().CallLuaFunction(contentStarter, this, "onCreate", false, currentContentGroup, currentDirector); + LuaEngine.GetInstance().CallLuaFunction(contentStarter, this, "onCreate", false, currentDirector); } public Director GetContentDirector() @@ -35,11 +33,6 @@ namespace FFXIVClassic_Map_Server.actors.area return currentDirector; } - public ContentGroup GetContentGroup() - { - return currentContentGroup; - } - public void ContentFinished() { isContentFinished = true; diff --git a/FFXIVClassic Map Server/actors/area/Zone.cs b/FFXIVClassic Map Server/actors/area/Zone.cs index 409bdbb2..16ee73e7 100644 --- a/FFXIVClassic Map Server/actors/area/Zone.cs +++ b/FFXIVClassic Map Server/actors/area/Zone.cs @@ -114,11 +114,11 @@ namespace FFXIVClassic_Map_Server.actors.area return mActorList[id]; } - public PrivateAreaContent CreateContentArea(Player starterPlayer, string areaClassPath, string contentScript, string areaName, string directorName) + public PrivateAreaContent CreateContentArea(Player starterPlayer, string areaClassPath, string contentScript, string areaName, string directorName, params object[] args) { lock (contentAreasLock) { - Director director = CreateDirector(directorName); + Director director = CreateDirector(directorName, true, args); if (director == null) return null; diff --git a/FFXIVClassic Map Server/actors/director/Director.cs b/FFXIVClassic Map Server/actors/director/Director.cs index f5c7bc8b..321645ab 100644 --- a/FFXIVClassic Map Server/actors/director/Director.cs +++ b/FFXIVClassic Map Server/actors/director/Director.cs @@ -1,6 +1,7 @@  using FFXIVClassic.Common; using FFXIVClassic_Map_Server.actors.area; +using FFXIVClassic_Map_Server.actors.group; using FFXIVClassic_Map_Server.Actors; using FFXIVClassic_Map_Server.lua; using FFXIVClassic_Map_Server.packets.send.actor; @@ -16,6 +17,7 @@ namespace FFXIVClassic_Map_Server.actors.director private uint directorId; private string directorScriptPath; private List members = new List(); + protected ContentGroup contentGroup; private bool isCreated = false; private bool isDeleted = false; private bool isDeleting = false; @@ -23,7 +25,7 @@ namespace FFXIVClassic_Map_Server.actors.director private Script directorScript; private Coroutine currentCoroutine; - public Director(uint id, Area zone, string directorPath, params object[] args) + public Director(uint id, Area zone, string directorPath, bool hasContentGroup, params object[] args) : base((6 << 28 | zone.actorId << 19 | (uint)id)) { directorId = id; @@ -33,6 +35,9 @@ namespace FFXIVClassic_Map_Server.actors.director LoadLuaScript(); + if (hasContentGroup) + contentGroup = Server.GetWorldManager().CreateContentGroup(this, GetMembers()); + eventConditions = new EventList(); eventConditions.noticeEventConditions = new List(); eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("noticeEvent", 0xE,0x0)); @@ -108,6 +113,9 @@ namespace FFXIVClassic_Map_Server.actors.director if (isCreated && spawnImmediate) { + if (contentGroup != null) + contentGroup.Start(); + foreach (Player p in GetPlayerMembers()) { p.QueuePackets(GetSpawnPackets()); @@ -116,15 +124,26 @@ namespace FFXIVClassic_Map_Server.actors.director } if (this is GuildleveDirector) + { ((GuildleveDirector)this).LoadGuildleve(); - + } + StartCoroutine("main", this); } + public void StartContentGroup() + { + if (contentGroup != null) + contentGroup.Start(); + } + public void EndDirector() { isDeleting = true; + if (contentGroup != null) + contentGroup.DeleteGroup(); + if (this is GuildleveDirector) ((GuildleveDirector)this).EndGuildleveDirector(); @@ -139,13 +158,20 @@ namespace FFXIVClassic_Map_Server.actors.director public void AddMember(Actor actor) { if (!members.Contains(actor)) + { members.Add(actor); + + if (contentGroup != null) + contentGroup.AddMember(actor); + } } public void RemoveMember(Actor actor) { if (members.Contains(actor)) members.Remove(actor); + if (contentGroup != null) + contentGroup.RemoveMember(actor.actorId); if (GetPlayerMembers().Count == 0 && !isDeleting) EndDirector(); } @@ -175,6 +201,16 @@ namespace FFXIVClassic_Map_Server.actors.director return isDeleted; } + public bool HasContentGroup() + { + return contentGroup != null; + } + + public ContentGroup GetContentGroup() + { + return contentGroup; + } + public void GenerateActorName(int actorNumber) { //Format Class Name @@ -262,5 +298,24 @@ namespace FFXIVClassic_Map_Server.actors.director return null; } + public void OnEventStart(Player player, object[] args) + { + object[] args2 = new object[args.Length + (player == null ? 1 : 2)]; + Array.Copy(args, 0, args2, (player == null ? 1 : 2), args.Length); + if (player != null) + { + args2[0] = player; + args2[1] = this; + } + else + args2[0] = this; + + Coroutine coroutine = directorScript.CreateCoroutine(directorScript.Globals["onEventStarted"]).Coroutine; + DynValue value = coroutine.Resume(args2); + LuaEngine.GetInstance().ResolveResume(player, coroutine, value); + } + + + } } \ No newline at end of file diff --git a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs index 6e10da11..0bfa49a4 100644 --- a/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs +++ b/FFXIVClassic Map Server/actors/director/GuildleveDirector.cs @@ -18,7 +18,6 @@ namespace FFXIVClassic_Map_Server.actors.director public uint guildleveId; public Player guildleveOwner; public byte selectedDifficulty; - public ContentGroup contentGroup; public GuildleveData guildleveData; public GuildleveWork guildleveWork = new GuildleveWork(); @@ -27,7 +26,7 @@ namespace FFXIVClassic_Map_Server.actors.director public uint completionTime = 0; public GuildleveDirector(uint id, Area zone, string directorPath, uint guildleveId, byte selectedDifficulty, Player guildleveOwner, params object[] args) - : base(id, zone, directorPath, args) + : base(id, zone, directorPath, true, args) { this.guildleveId = guildleveId; this.selectedDifficulty = selectedDifficulty; @@ -53,7 +52,7 @@ namespace FFXIVClassic_Map_Server.actors.director public void LoadGuildleve() { - contentGroup = Server.GetWorldManager().CreateGLContentGroup(this, GetMembers()); + } public void StartGuildleve() @@ -123,7 +122,7 @@ namespace FFXIVClassic_Map_Server.actors.director if (wasCompleted) { Npc aetheryteNode = zone.SpawnActor(1200040, String.Format("{0}:warpExit", guildleveOwner.actorName), guildleveOwner.positionX, guildleveOwner.positionY, guildleveOwner.positionZ); - contentGroup.AddMember(aetheryteNode); + AddMember(aetheryteNode); foreach (Actor a in GetPlayerMembers()) { @@ -149,8 +148,7 @@ namespace FFXIVClassic_Map_Server.actors.director //Delete ContentGroup, change music back public void EndGuildleveDirector() - { - contentGroup.DeleteGroup(); + { foreach (Actor p in GetPlayerMembers()) { Player player = (Player)p; diff --git a/FFXIVClassic Map Server/actors/group/ContentGroup.cs b/FFXIVClassic Map Server/actors/group/ContentGroup.cs index 0af1e0d9..f5353198 100644 --- a/FFXIVClassic Map Server/actors/group/ContentGroup.cs +++ b/FFXIVClassic Map Server/actors/group/ContentGroup.cs @@ -19,6 +19,7 @@ namespace FFXIVClassic_Map_Server.actors.group public ContentGroupWork contentGroupWork = new ContentGroupWork(); private Director director; private List members = new List(); + private bool isStarted = false; public ContentGroup(ulong groupIndex, Director director, uint[] initialMembers) : base(groupIndex) { @@ -38,6 +39,12 @@ namespace FFXIVClassic_Map_Server.actors.group contentGroupWork._globalTemp.director = (ulong)director.actorId << 32; } + public void Start() + { + isStarted = true; + SendGroupPacketsAll(members); + } + public void AddMember(Actor actor) { if (actor == null) @@ -46,15 +53,17 @@ namespace FFXIVClassic_Map_Server.actors.group members.Add(actor.actorId); if (actor is Character) - ((Character)actor).SetCurrentContentGroup(this); - - SendGroupPacketsAll(members); + ((Character)actor).SetCurrentContentGroup(this); + + if (isStarted) + SendGroupPacketsAll(members); } public void RemoveMember(uint memberId) { members.Remove(memberId); - SendGroupPacketsAll(members); + if (isStarted) + SendGroupPacketsAll(members); CheckDestroy(); } diff --git a/FFXIVClassic Map Server/lua/LuaEngine.cs b/FFXIVClassic Map Server/lua/LuaEngine.cs index c0134a3e..fb382518 100644 --- a/FFXIVClassic Map Server/lua/LuaEngine.cs +++ b/FFXIVClassic Map Server/lua/LuaEngine.cs @@ -117,7 +117,7 @@ namespace FFXIVClassic_Map_Server.lua Coroutine coroutine = mSleepingOnPlayerEvent[player.actorId]; mSleepingOnPlayerEvent.Remove(player.actorId); DynValue value = coroutine.Resume(LuaUtils.CreateLuaParamObjectList(args)); - ResolveResume(null, coroutine, value); + ResolveResume(player, coroutine, value); } catch (ScriptRuntimeException e) { @@ -384,8 +384,13 @@ namespace FFXIVClassic_Map_Server.lua player.EndEvent(); } } - else - CallLuaFunction(player, target, "onEventStarted", false, LuaUtils.CreateLuaParamObjectList(lparams)); + else + { + if (target is Director) + ((Director)target).OnEventStart(player, LuaUtils.CreateLuaParamObjectList(lparams)); + else + CallLuaFunction(player, target, "onEventStarted", false, LuaUtils.CreateLuaParamObjectList(lparams)); + } } public DynValue ResolveResume(Player player, Coroutine coroutine, DynValue value) diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua index 1917a37b..63fee49d 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua @@ -144,7 +144,7 @@ function doLevequestInit(player, aetheryte) player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true)); director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player); player:AddDirector(director); - director:StartDirector(true, glId) + director:StartDirector(true, glId); end else diff --git a/data/scripts/content/SimpleContent30002.lua b/data/scripts/content/SimpleContent30002.lua index 1ca2ba03..f0154a81 100644 --- a/data/scripts/content/SimpleContent30002.lua +++ b/data/scripts/content/SimpleContent30002.lua @@ -1,5 +1,5 @@ -function onCreate(starterPlayer, contentArea, contentGroup, director) +function onCreate(starterPlayer, contentArea, director) yshtola = contentArea:SpawnActor(2290001, "yshtola", -8, 16.35, 6, 0.5); stahlmann = contentArea:SpawnActor(2290002, "stahlmann", 0, 16.35, 22, 3); @@ -8,13 +8,15 @@ function onCreate(starterPlayer, contentArea, contentGroup, director) mob2 = contentArea:SpawnActor(2205403, "mob2", -3.02, 17.35, 14.24, -2.81); mob3 = contentArea:SpawnActor(2205403, "mob3", -3.02-3, 17.35, 14.24, -2.81); - contentGroup:AddMember(starterPlayer); - contentGroup:AddMember(director); - contentGroup:AddMember(yshtola); - contentGroup:AddMember(stahlmann); - contentGroup:AddMember(mob1); - contentGroup:AddMember(mob2); - contentGroup:AddMember(mob3); + director:AddMember(starterPlayer); + director:AddMember(director); + director:AddMember(yshtola); + director:AddMember(stahlmann); + director:AddMember(mob1); + director:AddMember(mob2); + director:AddMember(mob3); + + director:StartContentGroup(); end diff --git a/data/scripts/content/SimpleContent30010.lua b/data/scripts/content/SimpleContent30010.lua new file mode 100644 index 00000000..d78c2935 --- /dev/null +++ b/data/scripts/content/SimpleContent30010.lua @@ -0,0 +1,30 @@ + +function onCreate(starterPlayer, contentArea, director) + + papalymo = contentArea:SpawnActor(2290005, "papalymo", 365.89, 4.0943, -706.72, -0.718); + yda = contentArea:SpawnActor(2290006, "yda", 365.266, 4.122, -700.73, 1.5659); + yda:ChangeState(2); + + mob1 = contentArea:SpawnActor(2201407, "mob1", 374.427, 4.4, -698.711, -1.942); + mob2 = contentArea:SpawnActor(2201407, "mob2", 375.377, 4.4, -700.247, -1.992); + mob3 = contentArea:SpawnActor(2201407, "mob3", 375.125, 4.4, -703.591, -1.54); + + openingStoper = contentArea:SpawnActor(1090384, "openingstoper", 356.09, 3.74, -701.62, -1.41); + + director:AddMember(starterPlayer); + director:AddMember(director); + director:AddMember(papalymo); + director:AddMember(yda); + director:AddMember(mob1); + director:AddMember(mob2); + director:AddMember(mob3); + + director:StartContentGroup(); + +end + +function onDestroy() + + + +end \ No newline at end of file diff --git a/data/scripts/content/SimpleContent30079.lua b/data/scripts/content/SimpleContent30079.lua new file mode 100644 index 00000000..1e40131c --- /dev/null +++ b/data/scripts/content/SimpleContent30079.lua @@ -0,0 +1,26 @@ + +function onCreate(starterPlayer, contentArea, director) + + niellefresne = contentArea:SpawnActor(2290003, "niellefresne", -11.86, 192, 35.06, -0.8); + thancred = contentArea:SpawnActor(2290004, "thancred", -26.41, 192, 39.52, 1.2); + thancred:ChangeState(2); + + mob1 = contentArea:SpawnActor(2203301, "mob1", -6.193, 192, 47.658, -2.224); + + openingStoper = contentArea:SpawnActor(1090385, "openingstoper", -24.34, 192, 34.22, 0); + + director:AddMember(starterPlayer); + director:AddMember(director); + director:AddMember(niellefresne); + director:AddMember(thancred); + director:AddMember(mob1); + + director:StartContentGroup(); + +end + +function onDestroy() + + + +end \ No newline at end of file diff --git a/data/scripts/directors/Quest/QuestDirectorMan0u001.lua b/data/scripts/directors/Quest/QuestDirectorMan0u001.lua index a0baacab..7a09c750 100644 --- a/data/scripts/directors/Quest/QuestDirectorMan0u001.lua +++ b/data/scripts/directors/Quest/QuestDirectorMan0u001.lua @@ -59,27 +59,7 @@ function onEventStarted(player, actor, triggerName) man0u0Quest:NextPhase(10); player:EndEvent(); + player:GetZone():ContentFinished(); + GetWorldManager():DoZoneChange(player, 230, "PrivateAreaMasterPast", 1, 15, -826.868469, 6, 193.745865, -0.008368492); + end - -function onUpdate() -end - -function onTalkEvent(player, npc) - -end - -function onPushEvent(player, npc) -end - -function onCommandEvent(player, command) - - quest = GetStaticActor("Man0l0"); - callClientFunction(player, "delegateEvent", player, quest, "processTtrBtl002", nil, nil, nil); - -end - -function onEventUpdate(player, npc) -end - -function onCommand(player, command) -end \ No newline at end of file diff --git a/data/scripts/player.lua b/data/scripts/player.lua index 6a82be35..19930b93 100644 --- a/data/scripts/player.lua +++ b/data/scripts/player.lua @@ -21,11 +21,12 @@ function onBeginLogin(player) --For Opening. Set Director and reset position incase d/c if (player:HasQuest(110001) == true) then - director = player:GetZone():CreateDirector("OpeningDirector"); + director = player:GetZone():CreateDirector("OpeningDirector", false); player:AddDirector(director); + director:StartDirector(true); player:SetLoginDirector(director); player:KickEvent(director, "noticeEvent", true); - + player.positionX = 0.016; player.positionY = 10.35; player.positionZ = -36.91; @@ -33,10 +34,11 @@ function onBeginLogin(player) player:GetQuest(110001):ClearQuestData(); player:GetQuest(110001):ClearQuestFlags(); elseif (player:HasQuest(110005) == true) then - director = player:GetZone():CreateDirector("OpeningDirector"); + director = player:GetZone():CreateDirector("OpeningDirector", false); player:AddDirector(director); - player:SetLoginDirector(director); - player:KickEvent(director, "noticeEvent", "noticeEvent"); + director:StartDirector(false); + player:SetLoginDirector(director); + player:KickEvent(director, "noticeEvent", true); player.positionX = 369.5434; player.positionY = 4.21; @@ -45,10 +47,11 @@ function onBeginLogin(player) player:GetQuest(110005):ClearQuestData(); player:GetQuest(110005):ClearQuestFlags(); elseif (player:HasQuest(110009) == true) then - director = player:GetZone():CreateDirector("OpeningDirector"); - player:AddDirector(director); - player:SetLoginDirector(director); - player:KickEvent(director, "noticeEvent", "noticeEvent"); + --director = player:GetZone():CreateDirector("OpeningDirector", false); + --player:AddDirector(director); + --director:StartDirector(false); + --player:SetLoginDirector(director); + --player:KickEvent(director, "noticeEvent", true); player.positionX = 5.364327; player.positionY = 196.0; @@ -61,8 +64,7 @@ function onBeginLogin(player) end function onLogin(player) - player:SendMessage(0x1D,"",">Callback \"onLogin\" for player script:Running."); - + if (player:GetPlayTime(false) == 0) then player:SendMessage(0x1D,"",">PlayTime == 0, new player!"); diff --git a/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/openingstoper_gridania.lua b/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/openingstoper_gridania.lua index 28521fac..2d63e9f0 100644 --- a/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/openingstoper_gridania.lua +++ b/data/scripts/unique/fst0Battle03/OpeningStoperF0B1/openingstoper_gridania.lua @@ -6,7 +6,7 @@ function onEventStarted(player, npc, triggerName) worldMaster = GetWorldMaster(); player:SendGameMessage(player, worldMaster, 34109, 0x20); elseif (triggerName == "exit") then - GetWorldManager():DoPlayerMoveInZone(player, 5); + GetWorldManager():DoPlayerMoveInZone(player, 356.09, 3.74, -701.62, -1.4); end player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua b/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua index 3a16e9de..a82963ad 100644 --- a/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua +++ b/data/scripts/unique/fst0Battle03/PopulaceStandard/yda.lua @@ -27,16 +27,21 @@ function onEventStarted(player, npc, triggerName) player:EndEvent(); - worldMaster = GetWorldMaster(); - player:SendGameMessage(player, worldMaster, 34108, 0x20); - player:SendGameMessage(player, worldMaster, 50011, 0x20); - - director = player:GetZone():CreateDirector("Quest/QuestDirectorMan0g001"); - player:KickEvent(director, "noticeEvent", true); - player:AddDirector(director); - player:SetLoginDirector(director); + contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0g01", "SimpleContent30010", "Quest/QuestDirectorMan0g001"); + + if (contentArea == nil) then + player:EndEvent(); + return; + end + + director = contentArea:GetContentDirector(); + player:AddDirector(director); + director:StartDirector(false); - GetWorldManager():DoZoneChange(player, 166, "ContentSimpleContent30010", 1, 16, 362.4087, 4, -703.8168, 1.5419); + player:KickEvent(director, "noticeEvent", true); + player:SetLoginDirector(director); + + GetWorldManager():DoZoneChangeContent(player, contentArea, 362.4087, 4, -703.8168, 1.5419, 16); return; else callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_1", nil, nil, nil); diff --git a/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua b/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua index a4d05536..ade16c2e 100644 --- a/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua +++ b/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua @@ -34,10 +34,11 @@ function onEventStarted(player, npc, triggerName) return; end - director = contentArea:GetContentDirector(); + director = contentArea:GetContentDirector(); + player:AddDirector(director); + director:StartDirector(false); player:KickEvent(director, "noticeEvent", true); - player:AddDirector(director); player:SetLoginDirector(director); GetWorldManager():DoZoneChangeContent(player, contentArea, -5, 16.35, 6, 0.5, 16); diff --git a/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah.lua b/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah.lua index cb7b27e6..ab7f52a1 100644 --- a/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah.lua +++ b/data/scripts/unique/wil0Battle01/OpeningStoperW0B1/opening_stoper_uldah.lua @@ -7,7 +7,7 @@ function onEventStarted(player, npc, triggerName) worldMaster = GetWorldMaster(); player:SendGameMessage(player, worldMaster, 34109, 0x20); elseif (triggerName == "exit") then - GetWorldManager():DoPlayerMoveInZone(player, 6); + GetWorldManager():DoPlayerMoveInZone(player, 5.36433, 196, 133.656, -2.84938); end player:EndEvent(); end \ No newline at end of file diff --git a/data/scripts/unique/wil0Battle01/PopulaceStandard/exit_trigger.lua b/data/scripts/unique/wil0Battle01/PopulaceStandard/exit_trigger.lua index db93a4f7..880602bc 100644 --- a/data/scripts/unique/wil0Battle01/PopulaceStandard/exit_trigger.lua +++ b/data/scripts/unique/wil0Battle01/PopulaceStandard/exit_trigger.lua @@ -25,18 +25,23 @@ function onEventStarted(player, npc, triggerName) --if (man0u0Quest ~= nil and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == true) then + player:EndEvent(); + + contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0u01", "SimpleContent30079", "Quest/QuestDirectorMan0u001"); + + if (contentArea == nil) then player:EndEvent(); - - worldMaster = GetWorldMaster(); - player:SendGameMessage(player, worldMaster, 34108, 0x20); - player:SendGameMessage(player, worldMaster, 50011, 0x20); - - director = player:GetZone():CreateDirector("Quest/QuestDirectorMan0u001"); - player:KickEvent(director, "noticeEvent", true); - player:AddDirector(director); - player:SetLoginDirector(director); - - GetWorldManager():DoZoneChange(player, 184, nil, 0, 16, -24.34, 192, 34.22, 0.78); + return; + end + + director = contentArea:GetContentDirector(); + player:AddDirector(director); + director:StartDirector(false); + + player:KickEvent(director, "noticeEvent", true); + player:SetLoginDirector(director); + + GetWorldManager():DoZoneChangeContent(player, contentArea, -24.34, 192, 34.22, 0.78, 16); end From bac901c437375b48202849e02cbd4afea5132cae Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 9 Jul 2017 18:49:12 -0400 Subject: [PATCH 5/6] Added warp after the ul'dah battle to the private area. --- data/scripts/directors/Quest/QuestDirectorMan0u001.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/data/scripts/directors/Quest/QuestDirectorMan0u001.lua b/data/scripts/directors/Quest/QuestDirectorMan0u001.lua index 7a09c750..04b4c864 100644 --- a/data/scripts/directors/Quest/QuestDirectorMan0u001.lua +++ b/data/scripts/directors/Quest/QuestDirectorMan0u001.lua @@ -60,6 +60,5 @@ function onEventStarted(player, actor, triggerName) player:EndEvent(); player:GetZone():ContentFinished(); - GetWorldManager():DoZoneChange(player, 230, "PrivateAreaMasterPast", 1, 15, -826.868469, 6, 193.745865, -0.008368492); - + GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 3, 15, -22.81, 196, 87.82, 2.98); end From 372d50d7eb3af59ea9a2f2aca93750758188cad9 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 9 Jul 2017 19:13:17 -0400 Subject: [PATCH 6/6] Added closed doors to the two private areas for the ul'dah opening. CAN'T ESCAPE NOW!!!! --- .../wil0Battle01/DoorStandard/door3.lua | 3 +++ .../DoorStandard/door1.lua | 3 +++ .../DoorStandard/door2.lua | 3 +++ sql/server_spawn_locations.sql | 23 ++++++++----------- sql/server_zones_privateareas.sql | 9 ++++---- 5 files changed, 23 insertions(+), 18 deletions(-) create mode 100644 data/scripts/unique/wil0Battle01/DoorStandard/door3.lua create mode 100644 data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door1.lua create mode 100644 data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door2.lua diff --git a/data/scripts/unique/wil0Battle01/DoorStandard/door3.lua b/data/scripts/unique/wil0Battle01/DoorStandard/door3.lua new file mode 100644 index 00000000..c228e206 --- /dev/null +++ b/data/scripts/unique/wil0Battle01/DoorStandard/door3.lua @@ -0,0 +1,3 @@ +function init(npc) + return false, false, 0, 0, 0x1A5, 4040; +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door1.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door1.lua new file mode 100644 index 00000000..0640e65f --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door1.lua @@ -0,0 +1,3 @@ +function init(npc) + return false, false, 0, 0, 0x1A5, 2829; +end \ No newline at end of file diff --git a/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door2.lua b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door2.lua new file mode 100644 index 00000000..c3d90089 --- /dev/null +++ b/data/scripts/unique/wil0Town01/PrivateArea/PrivateAreaMasterPast_3/DoorStandard/door2.lua @@ -0,0 +1,3 @@ +function init(npc) + return false, false, 0, 0, 0x1A5, 2825; +end \ No newline at end of file diff --git a/sql/server_spawn_locations.sql b/sql/server_spawn_locations.sql index 82e195f9..d410bc9a 100644 --- a/sql/server_spawn_locations.sql +++ b/sql/server_spawn_locations.sql @@ -4,10 +4,11 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 6/19/2017 10:24:01 PM +Date: 7/9/2017 7:11:04 PM */ SET FOREIGN_KEY_CHECKS=0; +SET AUTOCOMMIT=0; -- ---------------------------- -- Table structure for server_spawn_locations -- ---------------------------- @@ -26,7 +27,7 @@ CREATE TABLE `server_spawn_locations` ( `animationId` int(10) unsigned NOT NULL DEFAULT '0', `customDisplayName` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=936 DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=939 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records @@ -654,8 +655,8 @@ INSERT INTO `server_spawn_locations` VALUES ('624', '5900001', 'centaurs_eye', ' INSERT INTO `server_spawn_locations` VALUES ('625', '5900001', 'guild_lnc', '206', '', '0', '172', '28', '-1576', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('626', '5900001', 'guild_arc', '206', '', '0', '227', '12', '-1264', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('627', '5900001', 'guild_cnj', '206', '', '0', '-325', '8', '-1669', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('628', '5900001', 'door1', '184', '', '0', '-14', '196', '112', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('629', '5900001', 'door2', '184', '', '0', '12', '196', '184', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('628', '5900004', 'door1', '184', '', '0', '-14', '196', '112', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('629', '5900004', 'door2', '184', '', '0', '12', '196', '184', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('630', '5900011', 'uldah_mapshipport_2', '209', '', '0', '-127', '271', '157', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('631', '1000466', 'frances', '206', '', '0', '11.85', '8.75', '-1266.45', '1.48', '0', '1041', null); INSERT INTO `server_spawn_locations` VALUES ('632', '1200288', 'miniaeth_adv', '155', '', '0', '98.77', '3.59', '-1213.67', '2.47', '0', '0', null); @@ -851,11 +852,7 @@ INSERT INTO `server_spawn_locations` VALUES ('825', '1280124', 'singingshards_ae INSERT INTO `server_spawn_locations` VALUES ('826', '1280125', 'jaggedcrestcave_aetherytegate', '190', '', '0', '-365', '-13', '-37', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('827', '1280126', '', '0', '', '0', '484', '19', '672', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('828', '1280127', '', '0', '', '0', '-400', '19', '338', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('829', '2290004', 'opening_thancred', '184', '', '0', '-26.41', '192', '39.52', '1.2', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('830', '2290003', 'opening_niellefresne', '184', '', '0', '-11.86', '192', '35.06', '-0.8', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('831', '2203301', 'opening_goobbue', '184', '', '0', '-10.31', '193', '50.73', '-1.06', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('832', '1090373', 'opening_stoper_uldah', '184', '', '0', '27.42', '192', '126.94', '0.33', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('833', '1090385', 'opening_stoper_uldah_battle', '184', '', '0', '-24.34', '192', '34.22', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('835', '1000444', 'undignified_adventurer', '230', 'PrivateAreaMasterPast', '1', '-832.36', '6', '209.44', '-0.35', '0', '1041', null); INSERT INTO `server_spawn_locations` VALUES ('836', '1000438', 'well-traveled_merchant', '230', 'PrivateAreaMasterPast', '1', '-831.73', '6', '196.77', '0.86', '0', '1035', null); INSERT INTO `server_spawn_locations` VALUES ('837', '1000447', 'voluptuous_vixen', '230', 'PrivateAreaMasterPast', '1', '-863.34', '4', '236.13', '0.93', '0', '1016', null); @@ -894,15 +891,9 @@ INSERT INTO `server_spawn_locations` VALUES ('869', '1000562', 'wispily_whiskere INSERT INTO `server_spawn_locations` VALUES ('870', '1000458', 'vkorolon', '155', 'PrivateAreaMasterPast', '2', '55.82', '4', '-1212.23', '1.91', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('871', '5900004', 'closed_gridania_gate', '155', 'PrivateAreaMasterPast', '1', '185', '-1', '-1154', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('872', '1099047', 'gridania_blocker1', '155', 'PrivateAreaMasterPast', '1', '105.945', '10.851', '-1217.8', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('873', '2201407', 'opening_wolf1', '166', 'ContentSimpleContent30010', '1', '374.427', '4.4', '-698.711', '-1.942', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('874', '1001430', 'kinnison', '206', '', '0', '-194', '23', '-1610', '0.9', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('875', '1099046', 'gridania_opening_exit', '155', 'PrivateAreaMasterPast', '1', '72.19', '4', '-1207.91', '1.17', '0', '0', ''); INSERT INTO `server_spawn_locations` VALUES ('876', '1001648', 'unconcerned_passerby', '155', 'PrivateAreaMasterPast', '2', '77.577', '3.953', '-1210.66', '-0.518', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('877', '1090384', 'openingstoper_gridania', '166', 'ContentSimpleContent30010', '1', '356.09', '3.74', '-701.62', '-1.41', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('878', '2290005', 'ally_papalymo', '166', 'ContentSimpleContent30010', '1', '365.89', '4.0943', '-706.72', '-0.718', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('879', '2290006', 'ally_yda', '166', 'ContentSimpleContent30010', '1', '365.266', '4.122', '-700.73', '1.5659', '2', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('880', '2201407', 'opening_wolf2', '166', 'ContentSimpleContent30010', '1', '375.377', '4.4', '-700.247', '-1.992', '0', '0', ''); -INSERT INTO `server_spawn_locations` VALUES ('881', '2201407', 'opening_wolf3', '166', 'ContentSimpleContent30010', '1', '375.125', '4.4', '-703.591', '-1.54', '0', '0', ''); INSERT INTO `server_spawn_locations` VALUES ('882', '1500007', 'didiwai', '128', '', '0', '23.98', '46.05', '-42.96', '0.6', '0', '1041', null); INSERT INTO `server_spawn_locations` VALUES ('883', '1000613', 'nahctahr', '128', '', '0', '22.57', '45.5', '-23.08', '1.5', '0', '1041', null); INSERT INTO `server_spawn_locations` VALUES ('884', '1000359', 'ryssfloh', '128', '', '0', '58.78', '46.1', '-12.45', '0.6', '0', '1056', null); @@ -957,3 +948,7 @@ INSERT INTO `server_spawn_locations` VALUES ('932', '1200334', 'inn_limsa_exitdo INSERT INTO `server_spawn_locations` VALUES ('933', '1090549', 'inn_uld_exitdoor_push', '244', '', '0', '-0.02', '0.02', '-8.6', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('934', '1090547', 'inn_limsa_exitdoor_push', '244', '', '0', '-160.02', '0.02', '-168.4', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('935', '1060027', 'yoshi_p', '130', '', '0', '1117.76', '52.143', '-445.258', '2.173', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('936', '5900004', 'door1', '175', 'PrivateAreaMasterPast', '3', '14', '196', '174', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('937', '5900004', 'door2', '175', 'PrivateAreaMasterPast', '3', '12', '196', '184', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('938', '5900004', 'door3', '184', '', '0', '-44', '196', '68', '0', '0', '0', null); +COMMIT; \ No newline at end of file diff --git a/sql/server_zones_privateareas.sql b/sql/server_zones_privateareas.sql index 006a5551..ddddee1a 100644 --- a/sql/server_zones_privateareas.sql +++ b/sql/server_zones_privateareas.sql @@ -4,10 +4,11 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 5/1/2017 10:28:55 PM +Date: 7/9/2017 7:11:12 PM */ SET FOREIGN_KEY_CHECKS=0; +SET AUTOCOMMIT=0; -- ---------------------------- -- Table structure for server_zones_privateareas -- ---------------------------- @@ -21,15 +22,15 @@ CREATE TABLE `server_zones_privateareas` ( `nightMusic` smallint(6) unsigned DEFAULT '0', `battleMusic` smallint(6) unsigned DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1; +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1; -- ---------------------------- -- Records -- ---------------------------- INSERT INTO `server_zones_privateareas` VALUES ('1', '184', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '66', '0', '0'); INSERT INTO `server_zones_privateareas` VALUES ('2', '230', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '59', '0', '0'); -INSERT INTO `server_zones_privateareas` VALUES ('3', '193', '/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent', 'ContentSimpleContent30002', '0', '0', '0', '0'); INSERT INTO `server_zones_privateareas` VALUES ('4', '133', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0'); INSERT INTO `server_zones_privateareas` VALUES ('5', '155', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '51', '0', '0'); INSERT INTO `server_zones_privateareas` VALUES ('6', '155', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0'); -INSERT INTO `server_zones_privateareas` VALUES ('7', '166', '/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent', 'ContentSimpleContent30010', '1', '0', '0', '0'); +INSERT INTO `server_zones_privateareas` VALUES ('8', '175', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '3', '66', '0', '0'); +COMMIT; \ No newline at end of file