From 1516e0bc5037fe1c463387f4c3b5bcc749c76aa5 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Mon, 1 May 2017 22:30:43 -0400 Subject: [PATCH] Added homepoint and aetheryte code. You can set the homepoint on an aetheryte or inn and the return menu will show the correct response. Added effects/msgs to teleport/return. Some sql changes I forgot. --- FFXIVClassic Map Server/Database.cs | 42 ++++++- .../actors/chara/Character.cs | 7 +- .../actors/chara/player/Player.cs | 36 ++++++ data/scripts/aetheryte.lua | 113 ++++++++++++++++++ .../npc/object/aetheryte/AetheryteChild.lua | 49 ++++++-- .../npc/object/aetheryte/AetheryteParent.lua | 101 ++++++++++++++-- data/scripts/commands/TeleportCommand.lua | 54 ++++----- data/scripts/content/SimpleContent30002.lua | 25 ++++ .../directors/Quest/QuestDirectorMan0l001.lua | 52 ++++---- .../fst0Town01/PopulaceStandard/vkorolon.lua | 9 +- .../PopulaceStandard/exit_door.lua | 23 ++-- .../sea0Town01/PopulaceStandard/mytesyn.lua | 7 +- .../PopulaceStandard/kopuru_fupuru.lua | 18 ++- sql/characters.sql | 6 +- sql/gamedata_actor_class.sql | 44 ++++--- sql/server_spawn_locations.sql | 15 ++- sql/server_zones.sql | 4 +- sql/server_zones_privateareas.sql | 16 +-- 18 files changed, 481 insertions(+), 140 deletions(-) create mode 100644 data/scripts/aetheryte.lua create mode 100644 data/scripts/content/SimpleContent30002.lua diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index e9ef2101..c4858f73 100644 --- a/FFXIVClassic Map Server/Database.cs +++ b/FFXIVClassic Map Server/Database.cs @@ -302,6 +302,42 @@ namespace FFXIVClassic_Map_Server } } + public static void SavePlayerHomePoints(Player player) + { + string query; + MySqlCommand cmd; + + using (MySqlConnection conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + try + { + conn.Open(); + + query = @" + UPDATE characters SET + homepoint = @homepoint, + homepointInn = @homepointInn + WHERE id = @charaId + "; + + cmd = new MySqlCommand(query, conn); + cmd.Parameters.AddWithValue("@charaId", player.actorId); + cmd.Parameters.AddWithValue("@homepoint", player.homepoint); + cmd.Parameters.AddWithValue("@homepointInn", player.homepointInn); + + cmd.ExecuteNonQuery(); + } + catch (MySqlException e) + { + Program.Log.Error(e.ToString()); + } + finally + { + conn.Dispose(); + } + } + } + public static void SaveQuest(Player player, Quest quest) { int slot = player.GetQuestSlot(quest.actorId); @@ -486,7 +522,9 @@ namespace FFXIVClassic_Map_Server destinationZoneId, destinationSpawnType, currentPrivateArea, - currentPrivateAreaType + currentPrivateAreaType, + homepoint, + homepointInn FROM characters WHERE id = @charId"; cmd = new MySqlCommand(query, conn); @@ -517,6 +555,8 @@ namespace FFXIVClassic_Map_Server player.playerWork.restBonusExpRate = reader.GetInt32(17); player.achievementPoints = reader.GetUInt32(18); player.playTime = reader.GetUInt32(19); + player.homepoint = reader.GetUInt32("homepoint"); + player.homepointInn = reader.GetByte("homepointInn"); player.destinationZone = reader.GetUInt32("destinationZoneId"); player.destinationSpawnType = reader.GetByte("destinationSpawnType"); diff --git a/FFXIVClassic Map Server/actors/chara/Character.cs b/FFXIVClassic Map Server/actors/chara/Character.cs index 88249669..6969e069 100644 --- a/FFXIVClassic Map Server/actors/chara/Character.cs +++ b/FFXIVClassic Map Server/actors/chara/Character.cs @@ -104,7 +104,12 @@ namespace FFXIVClassic_Map_Server.Actors propPacketUtil.AddProperty("charaWork.currentContentGroup"); player.QueuePackets(propPacketUtil.Done()); } - } + } + + public void PlayAnimation(uint animId) + { + zone.BroadcastPacketAroundActor(this, PlayAnimationOnActorPacket.BuildPacket(actorId, actorId, animId)); + } } diff --git a/FFXIVClassic Map Server/actors/chara/player/Player.cs b/FFXIVClassic Map Server/actors/chara/player/Player.cs index 759ba4b1..a42d2c91 100644 --- a/FFXIVClassic Map Server/actors/chara/player/Player.cs +++ b/FFXIVClassic Map Server/actors/chara/player/Player.cs @@ -128,6 +128,10 @@ namespace FFXIVClassic_Map_Server.Actors public Quest[] questScenario = new Quest[16]; public Quest[] questGuildleve = new Quest[8]; + //Aetheryte + public uint homepoint = 0; + public byte homepointInn = 0; + private List ownedDirectors = new List(); private Director loginInitDirector = null; @@ -1039,6 +1043,36 @@ namespace FFXIVClassic_Map_Server.Actors return playerWork.initialTown; } + public uint GetHomePoint() + { + return homepoint; + } + + public byte GetHomePointInn() + { + return homepointInn; + } + + public void SetHomePoint(uint aetheryteId) + { + homepoint = aetheryteId; + Database.SavePlayerHomePoints(this); + } + + public void SetHomePointInn(byte townId) + { + homepointInn = townId; + Database.SavePlayerHomePoints(this); + } + + public bool HasAetheryteNodeUnlocked(uint aetheryteId) + { + if (aetheryteId != 0) + return true; + else + return false; + } + public int GetFreeQuestSlot() { for (int i = 0; i < questScenario.Length; i++) @@ -1527,6 +1561,8 @@ namespace FFXIVClassic_Map_Server.Actors currentParty = null; } + + public void Update(double delta) { LuaEngine.GetInstance().CallLuaFunction(this, this, "OnUpdate", true, delta); diff --git a/data/scripts/aetheryte.lua b/data/scripts/aetheryte.lua new file mode 100644 index 00000000..7b80c41c --- /dev/null +++ b/data/scripts/aetheryte.lua @@ -0,0 +1,113 @@ +--[[ + +Aetheryte related info + +--]] + +aetheryteParentLinks = { + --La Noscea + [1280001] = nil, + [1280002] = {1280007, 1280008, 1280009, 0, 0}, + [1280003] = {1280010, 0, 0, 0, 0}, + [1280004] = {1280011, 1280018, 0, 0, 0}, + [1280005] = {1280020, 1280012, 1280013, 1280014, 0}, + [1280006] = {1280015, 1280016, 1280017, 0, 0}, + --Thanalan + [1280031] = nil, + [1280032] = {1280037, 1280038, 1280052, 0, 0}, + [1280033] = {1280039, 1280040, 1280041, 0, 0}, + [1280034] = {1280042, 1280043, 1280044, 1280054, 0}, + [1280035] = {1280045, 1280046, 1280047, 0, 0}, + [1280036] = {1280048, 1280049, 1280050, 0, 0}, + --Black Shroud + [1280061] = nil, + [1280062] = {1280067, 1280068, 1280069, 1280083, 0}, + [1280063] = {1280070, 1280071, 1280072, 0, 0}, + [1280064] = {1280073, 1280074, 1280075, 1280082, 0}, + [1280065] = {1280076, 1280077, 1280078, 0, 0}, + [1280066] = {1280079, 1280080, 1280081, 0, 0}, + --Coerthas + [1280092] = {1280097, 1280098, 1280099, 0, 0}, + [1280093] = {1280100, 1280101, 1280102, 0, 0}, + [1280094] = {1280103, 1280104, 0, 0, 0}, + [1280095] = {1280105, 1280106, 1280107, 0, 0}, + [1280096] = {1280108, 1280109, 1280110, 0, 0}, + --Mor Dhona + [1280121] = {1280124, 1280125, 0, 0, 0}, + [1280122] = {1280123, 0, 0, 0, 0} +} + +aetheryteChildLinks = { + --La Noscea + [1280007] = 1280002, + [1280008] = 1280002, + [1280009] = 1280002, + [1280010] = 1280003, + [1280011] = 1280004, + [1280012] = 1280005, + [1280013] = 1280005, + [1280014] = 1280005, + [1280015] = 1280006, + [1280016] = 1280006, + [1280017] = 1280006, + [1280018] = 1280004, + [1280020] = 1280005, + --Thanalan + [1280037] = 1280032, + [1280038] = 1280032, + [1280039] = 1280033, + [1280040] = 1280033, + [1280041] = 1280033, + [1280042] = 1280034, + [1280043] = 1280034, + [1280044] = 1280034, + [1280045] = 1280035, + [1280046] = 1280035, + [1280047] = 1280035, + [1280048] = 1280036, + [1280049] = 1280036, + [1280050] = 1280036, + [1280052] = 1280032, + [1280054] = 1280034, + --Black Shroud + [1280067] = 1280062, + [1280068] = 1280062, + [1280069] = 1280062, + [1280070] = 1280063, + [1280071] = 1280063, + [1280072] = 1280063, + [1280073] = 1280064, + [1280074] = 1280064, + [1280075] = 1280064, + [1280076] = 1280065, + [1280077] = 1280065, + [1280078] = 1280065, + [1280079] = 1280066, + [1280080] = 1280066, + [1280081] = 1280066, + [1280082] = 1280064, + [1280083] = 1280062, + --Coerthas + [1280097] = 1280092, + [1280098] = 1280092, + [1280099] = 1280092, + [1280100] = 1280093, + [1280101] = 1280093, + [1280102] = 1280093, + [1280103] = 1280094, + [1280104] = 1280094, + [1280105] = 1280095, + [1280106] = 1280095, + [1280107] = 1280095, + [1280108] = 1280096, + [1280109] = 1280096, + [1280110] = 1280096, + --Mor Dhona + [1280123] = 1280122, + [1280124] = 1280121, + [1280125] = 1280121 +} + +aetheryteTeleportPositions = { + [1280001] = {0.0, 0.0, 0.0} +} \ No newline at end of file diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua index c192e78b..13ff288b 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteChild.lua @@ -6,35 +6,68 @@ Functions: eventAetheryteChildSelect(showTeleport, parentAetheryteID, animaAmount, animaCost(always 1)): Opens menu eventAetheryteChildDesion(aetheryteId): "Your homepoint is now X" -processGuildleveBoost(favourCost, currentFavour): Ask: "Invoke the aspect of your Guardian deity to gain a temporary boon for the duration of a levequest." -processGuildlevePlaying(??) -processGuildleveJoin() - Ask: "Do you wish to join your party leader's levequest?" + +eventGLSelect(?) - Open GL selector +eventGLSelectDetail(glid, ?, reward, rewardQuantity, subreward, subrewardQuantity, faction, ?, completed) - Show GL details +eventGLDifficulty() - Open difficulty selector +eventGLStart(glId, difficulty, evaluatingFaction, areaFactionStanding, factionReward, warningBoundByDuty, warningTooFar, warningYouCannotRecieve, warningChangingClass) - Confirmation dialog + +eventGLBoost(currentFavor, minNeeded) - Ask player for Guardian Aspect +eventGLPlay(??) - Open Menu (GL active version) +eventGLReward (glId, clearTime, missionBonus, difficultyBonus, factionNumber, factionBonus, factionCredit, reward, rewardQuantity, subreward, subrewardQuantity, difficulty) - Open reward window +eventGLJoin () - Ask to join party leader's leve --]] require ("global") +require ("aetheryte") function init(npc) return false, false, 0, 0; end -function onEventStarted(player, npc, triggerName) - menuChoice = callClientFunction(player, "eventAetheryteChildSelect", true, 1280062, 4, 1); +function onEventStarted(player, aetheryte, triggerName) + + aetheryteId = aetheryte:GetActorClassId(); + parentNode = aetheryteParentLinks[aetheryteId]; + menuChoice = callClientFunction(player, "eventAetheryteChildSelect", true, aetheryteChildLinks[aetheryteId], 100, 1); --Teleport if (menuChoice == 2) then --Init Levequest elseif (menuChoice == -1) then - callClientFunction(player, "eventGLSelect", 0); + doLevequestInit(player, aetheryte); --Set Homepoint elseif (menuChoice == -2) then - + player:SetHomePoint(aetheryteId); + callClientFunction(player, "eventAetheryteChildDesion", aetheryteId); --View Faction Standing elseif (menuChoice == -3) then - + player:SendGameMessage(player, aetheryte, 27, 0x20); + player:SendGameMessage(player, aetheryte, 28, 0x20, 1, 15); + player:SendGameMessage(player, aetheryte, 29, 0x20, 2, 10); + player:SendGameMessage(player, aetheryte, 30, 0x20, 3, 5); end player:EndEvent(); end +function doLevequestInit(player, aetheryte) + ::SELECT_LOOP:: + unknown, glId = callClientFunction(player, "eventGLSelect", 0x0); + if (glId ~= 0) then + ::SELECT_DETAIL:: + unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false); + if (begin) then + ::SELECT_DIFFICULTY:: + difficulty = callClientFunction(player, "eventGLDifficulty", glId); + if (difficulty == nil) then goto SELECT_DETAIL; end + confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, 10, 20, 0, 0, 0, 0); + if (confirmResult == nil) then goto SELECT_DIFFICULTY; else + end + else + goto SELECT_LOOP; + end + end +end diff --git a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua index 8d9b4c07..44feb5b7 100644 --- a/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua +++ b/data/scripts/base/chara/npc/object/aetheryte/AetheryteParent.lua @@ -4,21 +4,106 @@ AetheryteParent Script Functions: -eventAetheryteParentSelect(0x0, false, 0x60, 0x138807,0,0,0,0) -eventAetheryteParentDesion(sheetId) -processGuildleveBoost(?, ?) -processGuildlevePlaying(??) -processGuildleveJoin() - Join party leader's levequest? +eventAetheryteParentSelect(showTeleportMenu, animaAmount, gate1, gate2, gate3, gate4, gate5) - Open Menu +eventAetheryteParentDesion(sheetId) - Show Homepoint Set Message + +eventGLSelect(?) - Open GL selector +eventGLSelectDetail(glid, ?, reward, rewardQuantity, subreward, subrewardQuantity, faction, ?, completed) - Show GL details +eventGLDifficulty() - Open difficulty selector +eventGLStart(glId, difficulty, evaluatingFaction, areaFactionStanding, factionReward, warningBoundByDuty, warningTooFar, warningYouCannotRecieve, warningChangingClass) - Confirmation dialog + +eventGLBoost(currentFavor, minNeeded) - Ask player for Guardian Aspect +eventGLPlay(??) - Open Menu (GL active version) +eventGLReward (glId, clearTime, missionBonus, difficultyBonus, factionNumber, factionBonus, factionCredit, reward, rewardQuantity, subreward, subrewardQuantity, difficulty) - Open reward window +eventGLJoin () - Ask to join party leader's leve + + + --callClientFunction(player, "eventGLBoost", 0xc8, 0xb); + --callClientFunction(player, "eventGLReward", 0x2a48, 120, 123, 125, 1, 111, 0, 0xf4241, 5, 0, 0, 3); --]] require ("global") +require ("aetheryte") function init(npc) return false, false, 0, 0; end -function onEventStarted(player, npc, triggerName) - callClientFunction(player, "eventAetheryteParentSelect", 0x0, false, 0x61, 0x0,0,0,0,0); +function onEventStarted(player, aetheryte, triggerName) + + local aetheryteId = aetheryte:GetActorClassId(); + local childNodes = aetheryteParentLinks[aetheryteId]; + + local listPosition = 1; + local activeChildNodes = {0, 0, 0, 0, 0}; + + if (player:HasAetheryteNodeUnlocked(childNodes[1])) then + activeChildNodes[listPosition] = childNodes[1]; + listPosition = listPosition+1; + end + if (player:HasAetheryteNodeUnlocked(childNodes[2])) then + activeChildNodes[listPosition] = childNodes[2]; + listPosition = listPosition+1; + end + if (player:HasAetheryteNodeUnlocked(childNodes[3])) then + activeChildNodes[listPosition] = childNodes[3]; + listPosition = listPosition+1; + end + if (player:HasAetheryteNodeUnlocked(childNodes[4])) then + activeChildNodes[listPosition] = childNodes[4]; + listPosition = listPosition+1; + end + if (player:HasAetheryteNodeUnlocked(childNodes[5])) then + activeChildNodes[listPosition] = childNodes[5]; + listPosition = listPosition+1; + end + + local showTeleportOptions = true; + if (listPosition == 1) then + showTeleportOptions = false; + end + + local choice = callClientFunction(player, "eventAetheryteParentSelect", showTeleportOptions, 100, activeChildNodes[1], activeChildNodes[2], activeChildNodes[3], activeChildNodes[4], activeChildNodes[5]); + + if (choice ~= nil) then + --Init Leavequest + if (choice == -1) then + doLevequestInit(player, aetheryte); + --Set Homepoint + elseif (choice == -2) then + player:SetHomePoint(aetheryteId); + callClientFunction(player, "eventAetheryteParentDesion", aetheryteId); + --View Faction Standings + elseif (choice == -3) then + player:SendGameMessage(player, aetheryte, 124, 0x20); + player:SendGameMessage(player, aetheryte, 125, 0x20, 1, 15); + player:SendGameMessage(player, aetheryte, 126, 0x20, 2, 10); + player:SendGameMessage(player, aetheryte, 127, 0x20, 3, 5); + --Teleport to Gate + elseif (choice > 0) then + end + end + player:EndEvent(); -end \ No newline at end of file + +end + +function doLevequestInit(player, aetheryte) + ::SELECT_LOOP:: + unknown, glId = callClientFunction(player, "eventGLSelect", 0x0); + if (glId ~= 0) then + ::SELECT_DETAIL:: + unknown, begin = callClientFunction(player, "eventGLSelectDetail", glId, 0xa, 0xf4241, 1000, 0, 0, 0, true, false); + if (begin) then + ::SELECT_DIFFICULTY:: + difficulty = callClientFunction(player, "eventGLDifficulty", glId); + if (difficulty == nil) then goto SELECT_DETAIL; end + confirmResult = callClientFunction(player, "eventGLStart", glId, difficulty, 1, 10, 20, 0, 0, 0, 0); + if (confirmResult == nil) then goto SELECT_DIFFICULTY; else + end + else + goto SELECT_LOOP; + end + end +end diff --git a/data/scripts/commands/TeleportCommand.lua b/data/scripts/commands/TeleportCommand.lua index eb08a965..732d4444 100644 --- a/data/scripts/commands/TeleportCommand.lua +++ b/data/scripts/commands/TeleportCommand.lua @@ -12,10 +12,10 @@ eventConfirm(isReturn, isInBattle, cityReturnNum, 138821, forceAskReturnOnly) require ("global") -function doTeleport(region, aetheryte) -end - function onEventStarted(player, actor, triggerName, isTeleport) + + local worldMaster = GetWorldMaster(); + if (isTeleport == 0) then while (true) do regionChoice = callClientFunction(player, "delegateCommand", actor, "eventRegion", 100); @@ -27,45 +27,33 @@ function onEventStarted(player, actor, triggerName, isTeleport) if (aetheryteChoice == nil) then break end - confirmChoice = callClientFunction(player, "delegateCommand", actor, "eventConfirm", false, false, 1, 138824, false); - + player:PlayAnimation(0x4000FFA); + player:SendGameMessage(worldMaster, 34101, 0x20, 2, 0x13883d, 100, 100); + confirmChoice = callClientFunction(player, "delegateCommand", actor, "eventConfirm", false, false, 1, 138824, false); if (confirmChoice == 1) then - doTeleport(regionChoice, aetheryteChoice); + player:PlayAnimation(0x4000FFB); + player:SendGameMessage(worldMaster, 34105, 0x20); + --Do teleport end player:endEvent(); return; - end end else - callClientFunction(player, "delegateCommand", actor, "eventConfirm", true, false, 1, 0x138824, false); + player:PlayAnimation(0x4000FFA); + local choice, wasMulti = callClientFunction(player, "delegateCommand", actor, "eventConfirm", true, false, player:GetHomePointInn(), player:GetHomePoint(), false); + if (wasMulti and choice == 1 or choice == 2) then + player:PlayAnimation(0x4000FFB); + player:SendGameMessage(worldMaster, 34104, 0x20); + --Do return + elseif (not wasMulti and choice == 1) then + player:PlayAnimation(0x4000FFB); + player:SendGameMessage(worldMaster, 34104, 0x20); + --Do return + end end player:endEvent(); -end - -function onEventUpdate(player, actor, step, arg1) - - menuId = player:GetCurrentMenuId(); - - if (menuId == 0) then --Region - if (arg1 ~= nil and arg1 >= 1) then - player:SetCurrentMenuId(1); - player:RunEventFunction("delegateCommand", actor, "eventAetheryte", arg1, 2, 2, 2, 4, 4, 4); - else - player:EndCommand(); - end - elseif (menuId == 1) then --Aetheryte - if (arg1 == nil) then - player:EndCommand(); - return; - end - player:SetCurrentMenuId(2); - player:RunEventFunction("delegateCommand", actor, "eventConfirm", false, false, 1, 138824, false); - elseif (menuId == 2) then --Confirm - player:EndCommand(); - end - -end +end \ No newline at end of file diff --git a/data/scripts/content/SimpleContent30002.lua b/data/scripts/content/SimpleContent30002.lua new file mode 100644 index 00000000..1ca2ba03 --- /dev/null +++ b/data/scripts/content/SimpleContent30002.lua @@ -0,0 +1,25 @@ + +function onCreate(starterPlayer, contentArea, contentGroup, director) + + yshtola = contentArea:SpawnActor(2290001, "yshtola", -8, 16.35, 6, 0.5); + stahlmann = contentArea:SpawnActor(2290002, "stahlmann", 0, 16.35, 22, 3); + + mob1 = contentArea:SpawnActor(2205403, "mob1", -3.02+3, 17.35, 14.24, -2.81); + 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); + +end + +function onDestroy() + + + +end \ No newline at end of file diff --git a/data/scripts/directors/Quest/QuestDirectorMan0l001.lua b/data/scripts/directors/Quest/QuestDirectorMan0l001.lua index 8a1748f9..f26b1094 100644 --- a/data/scripts/directors/Quest/QuestDirectorMan0l001.lua +++ b/data/scripts/directors/Quest/QuestDirectorMan0l001.lua @@ -2,21 +2,30 @@ require ("global") require ("tutorial") require ("quests/man/man0l0") ---processTtrBtl001: Active Mode Tutorial ---processTtrBtl002: Targetting Tutorial (After active mode done) - function init() return "/Director/Quest/QuestDirectorMan0l001"; end -function onEventStarted(player, actor, triggerName) +function onCreateContentArea(players, director, contentArea, contentGroup) - contentGroup = GetWorldManager():CreateContentGroup(actor); - contentGroup:AddMember(director); - contentGroup:AddMember(GetWorldManager():GetActorInWorldByUniqueId("opening_jelly")); - contentGroup:AddMember(GetWorldManager():GetActorInWorldByUniqueId("opening_yshtola")); - contentGroup:AddMember(GetWorldManager():GetActorInWorldByUniqueId("opening_stahlmann")); + yshtola = contentArea:SpawnActor(2290001, "yshtola", -8, 16.35, 6, 0.5); + stahlmann = contentArea:SpawnActor(2290002, "stahlmann", 0, 16.35, 22, 3); + + mob1 = contentArea:SpawnActor(2205403, "mob1", -3.02+3, 17.35, 14.24, -2.81); + 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(player); + contentGroup:AddMember(director); + contentGroup:AddMember(yshtola); + contentGroup:AddMember(stahlmann); + contentGroup:AddMember(mob1); + contentGroup:AddMember(mob2); + contentGroup:AddMember(mob3); + +end + +function onEventStarted(player, director, triggerName) man0l0Quest = player:GetQuest("Man0l0"); startTutorialMode(player); @@ -24,7 +33,7 @@ function onEventStarted(player, actor, triggerName) player:EndEvent(); waitForSignal("playerActive"); wait(1); --If this isn't here, the scripts bugs out. TODO: Find a better alternative. - kickEventContinue(player, actor, "noticeEvent", "noticeEvent"); + kickEventContinue(player, director, "noticeEvent", "noticeEvent"); callClientFunction(player, "delegateEvent", player, man0l0Quest, "processTtrBtl002", nil, nil, nil); player:EndEvent(); wait(4); @@ -45,7 +54,7 @@ function onEventStarted(player, actor, triggerName) wait(7); player:ChangeMusic(7); player:ChangeState(0); - kickEventContinue(player, actor, "noticeEvent", "noticeEvent"); + kickEventContinue(player, director, "noticeEvent", "noticeEvent"); callClientFunction(player, "delegateEvent", player, man0l0Quest, "processEvent000_3", nil, nil, nil); --[[ @@ -64,26 +73,7 @@ function onEventStarted(player, actor, triggerName) man0l0Quest: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) - -end - -function onEventUpdate(player, npc) -end - -function onCommand(player, command) -end \ No newline at end of file diff --git a/data/scripts/unique/fst0Town01/PopulaceStandard/vkorolon.lua b/data/scripts/unique/fst0Town01/PopulaceStandard/vkorolon.lua index b2ae178a..24a7aa9e 100644 --- a/data/scripts/unique/fst0Town01/PopulaceStandard/vkorolon.lua +++ b/data/scripts/unique/fst0Town01/PopulaceStandard/vkorolon.lua @@ -30,8 +30,13 @@ function onEventStarted(player, npc) if (choice == 1) then GetWorldManager():DoZoneChange(player, 13); - elseif (choice == 2) then - --Do Set Homepoint + elseif (choice == 2) then + if (player:GetHomePointInn() ~= 2) then + player:SetHomePointInn(2); + player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 2075); --Secondary homepoint set to the Roost + else + player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint + end end elseif (result == 1) then callClientFunction(player, "delegateEvent", player, defaultFst, "defaultTalkWithVkorolon_001", -1, -1); diff --git a/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua b/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua index a1213a7d..a4d05536 100644 --- a/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua +++ b/data/scripts/unique/ocn0Battle02/PopulaceStandard/exit_door.lua @@ -10,8 +10,8 @@ function onSpawn(player, npc) player:SetEventStatus(npc, "pushDefault", true, 0x2); npc:SetQuestGraphic(player, 0x3); else - player:SetEventStatus(npc, "pushDefault", false, 0x2); - npc:SetQuestGraphic(player, 0x0); + player:SetEventStatus(npc, "pushDefault", true, 0x2); + npc:SetQuestGraphic(player, 0x3); end end @@ -27,16 +27,21 @@ function onEventStarted(player, npc, triggerName) man0l0Quest:NextPhase(5); - worldMaster = GetWorldMaster(); - player:SendGameMessage(player, worldMaster, 34108, 0x20); - player:SendGameMessage(player, worldMaster, 50011, 0x20); - - director = player:GetZone():CreateDirector("Quest/QuestDirectorMan0l001"); + contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0l01", "SimpleContent30002", "Quest/QuestDirectorMan0l001"); + + if (contentArea == nil) then + player:EndEvent(); + return; + end + + director = contentArea:GetContentDirector(); + player:KickEvent(director, "noticeEvent", true); player:AddDirector(director); - player:SetLoginDirector(director); + player:SetLoginDirector(director); + + GetWorldManager():DoZoneChangeContent(player, contentArea, -5, 16.35, 6, 0.5, 16); - GetWorldManager():DoZoneChange(player, 9); else player:EndEvent(); end diff --git a/data/scripts/unique/sea0Town01/PopulaceStandard/mytesyn.lua b/data/scripts/unique/sea0Town01/PopulaceStandard/mytesyn.lua index 5c468992..2b5a837d 100644 --- a/data/scripts/unique/sea0Town01/PopulaceStandard/mytesyn.lua +++ b/data/scripts/unique/sea0Town01/PopulaceStandard/mytesyn.lua @@ -7,7 +7,12 @@ function onEventStarted(player, npc) if (choice == 1) then GetWorldManager():DoZoneChange(player, 13); elseif (choice == 2) then - --Do Set Homepoint + if (player:GetHomePointInn() ~= 1) then + player:SetHomePointInn(1); + player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 1070); --Secondary homepoint set to the Mizzenmast + else + player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint + end end player:EndEvent(); diff --git a/data/scripts/unique/wil0Town01a/PopulaceStandard/kopuru_fupuru.lua b/data/scripts/unique/wil0Town01a/PopulaceStandard/kopuru_fupuru.lua index 124f6f9a..c8c3626c 100644 --- a/data/scripts/unique/wil0Town01a/PopulaceStandard/kopuru_fupuru.lua +++ b/data/scripts/unique/wil0Town01a/PopulaceStandard/kopuru_fupuru.lua @@ -1,7 +1,19 @@ require ("global") function onEventStarted(player, npc) - defaultWil = GetStaticActor("DftWil"); - result = player:RunEventFunction("delegateEvent", player, defaultWil, "defaultTalkWithInn_Desk_2", nil, nil, nil); --BTN - player:EndEvent(); + defaultWil = GetStaticActor("DftWil"); + choice = callClientFunction(player, "delegateEvent", player, defaultWil, "defaultTalkWithInn_Desk_2", nil, nil, nil); + + if (choice == 1) then + GetWorldManager():DoZoneChange(player, 11); + elseif (choice == 2) then + if (player:GetHomePointInn() ~= 3) then + player:SetHomePointInn(3); + player:SendGameMessage(GetWorldMaster(), 60019, 0x20, 3071); --Secondary homepoint set to the Hourglass + else + player:SendGameMessage(GetWorldMaster(), 51140, 0x20); --This inn is already your Secondary Homepoint + end + end + + player:EndEvent(); end \ No newline at end of file diff --git a/sql/characters.sql b/sql/characters.sql index 7ea79ffb..78213547 100644 --- a/sql/characters.sql +++ b/sql/characters.sql @@ -4,7 +4,7 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 4/2/2017 2:27:44 PM +Date: 5/1/2017 10:28:15 PM */ SET FOREIGN_KEY_CHECKS=0; @@ -45,5 +45,7 @@ CREATE TABLE `characters` ( `restBonus` int(10) DEFAULT '0', `achievementPoints` int(10) unsigned DEFAULT '0', `currentActiveLinkshell` varchar(32) NOT NULL DEFAULT '', + `homepoint` int(10) unsigned NOT NULL DEFAULT '0', + `homepointInn` tinyint(3) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; diff --git a/sql/gamedata_actor_class.sql b/sql/gamedata_actor_class.sql index 7eb483e2..5bb19e41 100644 --- a/sql/gamedata_actor_class.sql +++ b/sql/gamedata_actor_class.sql @@ -4,20 +4,20 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 4/2/2017 2:27:36 PM +Date: 5/1/2017 10:28:42 PM */ -SET autocommit=0; + SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for gamedata_actor_class -- ---------------------------- -CREATE TABLE `gamedata_actor_class` ( - `id` int(10) unsigned NOT NULL, - `classPath` varchar(64) NOT NULL, - `displayNameId` int(10) unsigned NOT NULL DEFAULT '4294967295', - `propertyFlags` int(10) unsigned NOT NULL DEFAULT '0', - `eventConditions` longtext, - PRIMARY KEY (`id`) +CREATE TABLE `gamedata_actor_class` ( + `id` int(10) unsigned NOT NULL, + `classPath` varchar(64) NOT NULL, + `displayNameId` int(10) unsigned NOT NULL DEFAULT '4294967295', + `propertyFlags` int(10) unsigned NOT NULL DEFAULT '0', + `eventConditions` longtext, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- @@ -4723,7 +4723,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('2103907', '', '3103907', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2103908', '', '3103908', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2103909', '', '3103909', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2103910', '', '3103910', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2104001', '/Chara/Npc/Monster/Lemming/LemmingStandard', '3104027', '7', null); +INSERT INTO `gamedata_actor_class` VALUES ('2104001', '/Chara/Npc/Monster/Lemming/LemmingStandard', '3104027', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2104002', '', '3104002', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2104003', '', '3104003', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2104004', '', '3104004', '0', null); @@ -4941,7 +4941,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('2105611', '', '3105610', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105612', '', '3105611', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105613', '', '3105611', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105614', '', '3105611', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2105701', '/Chara/Npc/Monster/Mole/MoleMoleStandard', '3105701', '7', null); +INSERT INTO `gamedata_actor_class` VALUES ('2105701', '/Chara/Npc/Monster/Mole/MoleMoleStandard', '3105701', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2105702', '', '3105702', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105703', '', '3105703', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2105704', '', '3105704', '0', null); @@ -5701,10 +5701,10 @@ INSERT INTO `gamedata_actor_class` VALUES ('2201309', '', '3201309', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201401', '', '3201401', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201402', '', '3201402', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201403', '', '3201403', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2201404', '/Chara/Npc/Monster/Wolf/WolfStandard', '3201405', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2201404', '/Chara/Npc/Monster/Wolf/WolfStandard', '3201405', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2201405', '', '3201419', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201406', '', '3201404', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2201407', '/Chara/Npc/Monster/Wolf/WolfStandard', '3201406', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2201407', '/Chara/Npc/Monster/Wolf/WolfStandard', '3201406', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2201408', '', '3201407', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201409', '', '3201408', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2201410', '', '3201409', '0', null); @@ -5882,7 +5882,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('2203201', '', '3203201', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203202', '', '3203202', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203203', '', '3203203', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203204', '', '3203204', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2203301', '/Chara/Npc/Monster/Goobbue/GoobbueLesserStandard', '3203301', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2203301', '/Chara/Npc/Monster/Goobbue/GoobbueLesserStandard', '3203301', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2203302', '', '3203302', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203303', '', '3203303', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2203401', '', '3203401', '0', null); @@ -6055,7 +6055,7 @@ INSERT INTO `gamedata_actor_class` VALUES ('2205310', '', '3205310', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205311', '', '3205311', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205401', '', '3205401', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205402', '', '3205402', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2205403', '/Chara/Npc/Monster/Jellyfish/JellyfishScenarioLimsaLv00', '3205403', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2205403', '/Chara/Npc/Monster/Jellyfish/JellyfishScenarioLimsaLv00', '3205403', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2205404', '', '3205404', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205405', '', '3205405', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2205406', '', '3205406', '0', null); @@ -6665,12 +6665,12 @@ INSERT INTO `gamedata_actor_class` VALUES ('2289041', '', '3280323', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2289042', '', '3280324', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2289043', '', '3280325', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2289044', '', '3280403', '0', null); -INSERT INTO `gamedata_actor_class` VALUES ('2290001', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1900006', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('2290002', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '1600179', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('2290003', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1200024', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('2290004', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '1000010', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('2290005', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1400004', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); -INSERT INTO `gamedata_actor_class` VALUES ('2290006', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '2300120', '7', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290001', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1900006', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290002', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '1600179', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290003', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1200024', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290004', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '1000010', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290005', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningHealer', '1400004', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); +INSERT INTO `gamedata_actor_class` VALUES ('2290006', '/Chara/Npc/Monster/Fighter/FighterAllyOpeningAttacker', '2300120', '23', '{\r\n \"talkEventConditions\": [],\r\n \"noticeEventConditions\": [\r\n {\r\n \"unknown1\": 0,\r\n \"unknown2\": 1,\r\n \"conditionName\": \"noticeEvent\"\r\n }\r\n ],\r\n \"emoteEventConditions\": [],\r\n \"pushWithCircleEventConditions\": []\r\n}'); INSERT INTO `gamedata_actor_class` VALUES ('2290007', '', '1500024', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2290008', '', '1900054', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('2290009', '', '1000029', '0', null); @@ -8007,5 +8007,3 @@ INSERT INTO `gamedata_actor_class` VALUES ('9220405', '', '2', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9220406', '', '2', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9220407', '', '2', '0', null); INSERT INTO `gamedata_actor_class` VALUES ('9220408', '', '2', '0', null); - -COMMIT; \ No newline at end of file diff --git a/sql/server_spawn_locations.sql b/sql/server_spawn_locations.sql index 6d63d4cc..15fd456b 100644 --- a/sql/server_spawn_locations.sql +++ b/sql/server_spawn_locations.sql @@ -4,7 +4,7 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 4/2/2017 2:27:23 PM +Date: 5/1/2017 10:28:49 PM */ SET FOREIGN_KEY_CHECKS=0; @@ -558,9 +558,9 @@ INSERT INTO `server_spawn_locations` VALUES ('526', '1000450', 'lanky_traveler', INSERT INTO `server_spawn_locations` VALUES ('527', '1000451', 'grinning_adventurer', '193', '', '0', '-1.1', '9.85', '-33.62', '-0.82', '0', '1026', null); INSERT INTO `server_spawn_locations` VALUES ('528', '1001652', 'rostnsthal', '193', '', '0', '-7.73', '9.967', '-27.44', '1.6', '0', '1041', null); INSERT INTO `server_spawn_locations` VALUES ('529', '1090025', 'exit_door', '193', '', '0', '0', '10', '-18', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('530', '2205403', '', '193', '', '0', '-3.02', '17.35', '14.24', '-2.81', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('531', '2290001', '', '193', '', '0', '-8', '16.35', '6', '0.5', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('532', '2290002', '', '193', '', '0', '0', '16.35', '22', '3', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('530', '2205403', 'opening_jelly', '193', '', '0', '-3.02', '17.35', '14.24', '-2.81', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('531', '2290001', 'opening_yshtola', '193', '', '0', '-8', '16.35', '6', '0.5', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('532', '2290002', 'opening_stahlmann', '193', '', '0', '0', '16.35', '22', '3', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('533', '1000009', 'yda', '166', '', '0', '353.37', '3.88', '-698.98', '-2.6', '0', '1007', null); INSERT INTO `server_spawn_locations` VALUES ('534', '1000010', 'papalymo', '166', '', '0', '353.37', '3.75', '-703.09', '-2.6', '0', '1000', null); INSERT INTO `server_spawn_locations` VALUES ('535', '1090384', 'openingstoper_gridania', '166', '', '0', '356.09', '3.74', '-701.62', '-1.41', '0', '0', null); @@ -755,7 +755,7 @@ INSERT INTO `server_spawn_locations` VALUES ('728', '1200052', 'test_mining_poin INSERT INTO `server_spawn_locations` VALUES ('729', '5900013', 'ship_route_1', '200', '', '0', '0', '10', '-128', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('730', '5900014', 'ship_route_2', '200', '', '0', '0', '10', '128', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('731', '1280001', 'limsa_aetheryte', '230', '', '0', '-400', '43', '338', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('732', '1280002', 'camp_beardedrock_aetheryte', '128', '', '0', '32', '-31', '-31', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('732', '1280002', 'camp_beardedrock_aetheryte', '128', '', '0', '29.97', '45.83', '-35.47', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('733', '1280003', 'camp_skullvalley_aetheryte', '129', '', '0', '-992', '62', '-1121', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('734', '1280004', 'camp_baldknoll_aetheryte', '129', '', '0', '-1889', '54', '-1379', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('735', '1280005', 'camp_bloodshore_aetheryte', '130', '', '0', '1128', '46', '-926', '0', '0', '0', null); @@ -771,8 +771,8 @@ INSERT INTO `server_spawn_locations` VALUES ('744', '1280014', 'agelysswise_aeth INSERT INTO `server_spawn_locations` VALUES ('745', '1280015', 'zelmasrun_aetherytegate', '135', '', '0', '-125', '61', '-1440', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('746', '1280016', 'bronzelake_aetherytegate', '135', '', '0', '-320', '53', '-1826', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('747', '1280017', 'oakwood_aetherytegate', '135', '', '0', '-894', '42', '-2188', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('748', '1280018', 'mistbeardcove_aetherytegate', '0', '', '0', '-1694.5', '-19', '-1534', '0', '0', '0', null); -INSERT INTO `server_spawn_locations` VALUES ('749', '1280020', 'cassiopeia_aetherytegate', '0', '', '0', '1344.5', '-53', '-869', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('748', '1280018', 'mistbeardcove_aetherytegate', '131', '', '0', '-1694.5', '-19', '-1534', '0', '0', '0', null); +INSERT INTO `server_spawn_locations` VALUES ('749', '1280020', 'cassiopeia_aetherytegate', '132', '', '0', '1343.5', '-54.38', '-870.84', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('750', '1280031', 'uldah_aetheryte', '175', '', '0', '240.45', '185.93', '-9.56', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('751', '1280032', 'camp_blackbrush_aetheryte', '170', '', '0', '33', '201', '-482', '0', '0', '0', null); INSERT INTO `server_spawn_locations` VALUES ('752', '1280033', 'camp_drybone_aetheryte', '171', '', '0', '1251', '265', '-545', '0', '0', '0', null); @@ -857,7 +857,6 @@ INSERT INTO `server_spawn_locations` VALUES ('830', '2290003', 'opening_niellefr 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 ('834', '2201404', 'opening_wolf1', '166', 'ContentSimpleContent30010', '1', '0', '0', '0', '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); diff --git a/sql/server_zones.sql b/sql/server_zones.sql index c1ccda9a..2e508ed2 100644 --- a/sql/server_zones.sql +++ b/sql/server_zones.sql @@ -4,7 +4,7 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 3/7/2017 8:30:14 AM +Date: 5/1/2017 10:29:02 PM */ SET FOREIGN_KEY_CHECKS=0; @@ -38,7 +38,7 @@ INSERT INTO `server_zones` VALUES ('128', '101', 'sea0Field01', 'Lower La Noscea INSERT INTO `server_zones` VALUES ('129', '101', 'sea0Field02', 'Western La Noscea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); INSERT INTO `server_zones` VALUES ('130', '101', 'sea0Field03', 'Eastern La Noscea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); INSERT INTO `server_zones` VALUES ('131', '101', 'sea0Dungeon01', 'Mistbeard Cove', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); -INSERT INTO `server_zones` VALUES ('132', '101', 'sea0Dungeon02', 'Cassiopeia Hollow', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); +INSERT INTO `server_zones` VALUES ('132', '101', 'sea0Dungeon03', 'Cassiopeia Hollow', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `server_zones` VALUES ('133', '101', 'sea0Town01', 'Limsa Lominsa', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '59', '59', '0', '0', '0', '0', '0', '0'); INSERT INTO `server_zones` VALUES ('134', '202', 'sea0Market01', 'Market Wards', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterMarketSeaS0', '0', '0', '0', '0', '0', '0', '0', '0'); INSERT INTO `server_zones` VALUES ('135', '101', 'sea0Field04', 'Upper La Noscea', '127.0.0.1', '1989', '/Area/Zone/ZoneMasterSeaS0', '60', '60', '21', '0', '0', '1', '0', '0'); diff --git a/sql/server_zones_privateareas.sql b/sql/server_zones_privateareas.sql index bcd1e1a4..006a5551 100644 --- a/sql/server_zones_privateareas.sql +++ b/sql/server_zones_privateareas.sql @@ -4,7 +4,7 @@ Source Host: localhost Source Database: ffxiv_server Target Host: localhost Target Database: ffxiv_server -Date: 4/2/2017 2:27:10 PM +Date: 5/1/2017 10:28:55 PM */ SET FOREIGN_KEY_CHECKS=0; @@ -26,10 +26,10 @@ CREATE TABLE `server_zones_privateareas` ( -- ---------------------------- -- Records -- ---------------------------- -INSERT INTO `server_zones_privateareas` VALUES ('1', '184', '/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '66', '0', '0'); -INSERT INTO `server_zones_privateareas` VALUES ('2', '230', '/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '59', '0', '0'); -INSERT INTO `server_zones_privateareas` VALUES ('3', '193', '/Content/PrivateAreaMasterSimpleContent', 'ContentSimpleContent30002', '0', '0', '0', '0'); -INSERT INTO `server_zones_privateareas` VALUES ('4', '133', '/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0'); -INSERT INTO `server_zones_privateareas` VALUES ('5', '155', '/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '51', '0', '0'); -INSERT INTO `server_zones_privateareas` VALUES ('6', '155', '/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0'); -INSERT INTO `server_zones_privateareas` VALUES ('7', '166', '/Content/PrivateAreaMasterSimpleContent', 'ContentSimpleContent30010', '1', '0', '0', '0'); +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');