From 0e85e2bddf57f0ca6c4de25d15d1c6f794cc53e4 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 17 Jan 2016 01:51:02 -0500 Subject: [PATCH] Implementing zone settings from DB. --- FFXIVClassic Map Server/Database.cs | 48 +++++++++++++++++++++ FFXIVClassic Map Server/PacketProcessor.cs | 6 ++- FFXIVClassic Map Server/actors/area/Zone.cs | 7 ++- 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index 866de839..3d35f4e1 100644 --- a/FFXIVClassic Map Server/Database.cs +++ b/FFXIVClassic Map Server/Database.cs @@ -13,12 +13,14 @@ using FFXIVClassic_Map_Server.utils; using FFXIVClassic_Lobby_Server.packets; using FFXIVClassic_Map_Server.packets.send.player; using FFXIVClassic_Lobby_Server.dataobjects; +using FFXIVClassic_Map_Server; namespace FFXIVClassic_Lobby_Server { class Database { + public static uint getUserIdFromSession(String sessionId) { uint id = 0; @@ -540,5 +542,51 @@ namespace FFXIVClassic_Lobby_Server return cheevosPacket.buildPacket(player.actorId); } + public static List loadZones() + { + List zones = new List(); + 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(); + + //Load Last 5 Completed + string query = @" + SELECT + id, + regionId, + zoneName, + dayMusic, + nightMusic, + battleMusic, + isInn, + canRideChocobo, + canStealth, + isInstanceRaid, + FROM server_zones + WHERE zoneName IS NOT NULL"; + + MySqlCommand cmd = new MySqlCommand(query, conn); + + using (MySqlDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) { + Zone zone = new Zone(reader.GetUInt32(0), reader.GetString(2), reader.GetUInt16(1), reader.GetUInt16(3), reader.GetUInt16(4), reader.GetUInt16(5), reader.GetBoolean(6), reader.GetBoolean(7), reader.GetBoolean(8), reader.GetBoolean(9)); + zones.Add(zone); + } + } + } + catch (MySqlException e) + { Console.WriteLine(e); } + finally + { + conn.Dispose(); + } + } + + return zones; + } + } } diff --git a/FFXIVClassic Map Server/PacketProcessor.cs b/FFXIVClassic Map Server/PacketProcessor.cs index bcf92323..eb2a5e46 100644 --- a/FFXIVClassic Map Server/PacketProcessor.cs +++ b/FFXIVClassic Map Server/PacketProcessor.cs @@ -49,13 +49,15 @@ namespace FFXIVClassic_Lobby_Server DebugProg debug = new DebugProg(); WorldMaster worldMaster = new WorldMaster(); - Zone inn = new Zone(0xF4, "prv0Inn01", 0xD1, false, false, false, false); + + List zoneList; public PacketProcessor(Dictionary playerList, List connectionList) { mPlayers = playerList; mConnections = connectionList; - // initNpcs(); + + zoneList = Database.loadZones(); } public void processPacket(ClientConnection client, BasePacket packet) diff --git a/FFXIVClassic Map Server/actors/area/Zone.cs b/FFXIVClassic Map Server/actors/area/Zone.cs index 94a82191..5dcfea5d 100644 --- a/FFXIVClassic Map Server/actors/area/Zone.cs +++ b/FFXIVClassic Map Server/actors/area/Zone.cs @@ -25,7 +25,8 @@ namespace FFXIVClassic_Map_Server private int halfWidth, halfHeight; private List[,] actorBlock; - public Zone(uint id, string zoneName, ushort regionId, bool canStealth, bool isInn, bool canRideChocobo, bool isInstanceRaid) : base(id) + public Zone(uint id, string zoneName, ushort regionId, ushort bgmDay, ushort bgmNight, ushort bgmBattle, bool canStealth, bool isInn, bool canRideChocobo, bool isInstanceRaid) + : base(id) { this.zoneName = zoneName; @@ -35,6 +36,10 @@ namespace FFXIVClassic_Map_Server this.canRideChocobo = canRideChocobo; this.isInstanceRaid = isInstanceRaid; + this.bgmDay = bgmDay; + this.bgmNight = bgmNight; + this.bgmBattle = bgmBattle; + this.displayNameId = 0; this.customDisplayName = "_areaMaster"; this.actorName = String.Format("_areaMaster@{0:X5}",id<<8);