mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	Fixed all errors with player loader from db. DBAppearance is redundent and was removed.
This commit is contained in:
		| @@ -12,6 +12,8 @@ using FFXIVClassic_Map_Server.dataobjects.database; | |||||||
| using FFXIVClassic_Map_Server.dataobjects.chara.npc; | using FFXIVClassic_Map_Server.dataobjects.chara.npc; | ||||||
| using FFXIVClassic_Map_Server.dataobjects.chara; | using FFXIVClassic_Map_Server.dataobjects.chara; | ||||||
| using FFXIVClassic_Map_Server.utils; | using FFXIVClassic_Map_Server.utils; | ||||||
|  | using FFXIVClassic_Lobby_Server.packets; | ||||||
|  | using FFXIVClassic_Map_Server.packets.send.player; | ||||||
|  |  | ||||||
| namespace FFXIVClassic_Lobby_Server | namespace FFXIVClassic_Lobby_Server | ||||||
| { | { | ||||||
| @@ -160,9 +162,8 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public static void loadPlayerCharacter(Player player, bool isMe) |         public static void loadPlayerCharacter(Player player) | ||||||
|         {             |         {             | ||||||
|             //Load basic info |  | ||||||
|             string query; |             string query; | ||||||
|             MySqlCommand cmd;             |             MySqlCommand cmd;             | ||||||
|  |  | ||||||
| @@ -172,8 +173,7 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                 { |                 { | ||||||
|                     conn.Open(); |                     conn.Open(); | ||||||
|  |  | ||||||
|                     if (isMe) |                     //Load basic info                   | ||||||
|                     { |  | ||||||
|                     query = @" |                     query = @" | ||||||
|                     SELECT  |                     SELECT  | ||||||
|                     name, |                     name, | ||||||
| @@ -192,35 +192,18 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                     guardian, |                     guardian, | ||||||
|                     birthDay, |                     birthDay, | ||||||
|                     birthMonth, |                     birthMonth, | ||||||
|                         initialNation, |                     initialTown, | ||||||
|  |                     tribe, | ||||||
|                     currentParty, |                     currentParty, | ||||||
|                     restBonus, |                     restBonus, | ||||||
|                     achievementPoints |                     achievementPoints | ||||||
|                     FROM characters WHERE id = @charId";                     |                     FROM characters WHERE id = @charId";                     | ||||||
|                     } |  | ||||||
|                     else |  | ||||||
|                     { |  | ||||||
|                         query = @" |  | ||||||
|                         SELECT  |  | ||||||
|                         name, |  | ||||||
|                         positionX, |  | ||||||
|                         positionY, |  | ||||||
|                         positionZ, |  | ||||||
|                         rotation, |  | ||||||
|                         actorState, |  | ||||||
|                         currentZoneId, |  | ||||||
|                         currentClassJob, |  | ||||||
|                         gcCurrent,           |  | ||||||
|                         gcLimsaRank, |  | ||||||
|                         gcGridaniaRank, |  | ||||||
|                         gcUldahRank, |  | ||||||
|                         currentTitle |  | ||||||
|                         FROM characters WHERE id = @charId"; |  | ||||||
|                     } |  | ||||||
|  |  | ||||||
|                     cmd = new MySqlCommand(query, conn); |                     cmd = new MySqlCommand(query, conn); | ||||||
|                     cmd.Parameters.AddWithValue("@charId", player.actorId); |                     cmd.Parameters.AddWithValue("@charId", player.actorId); | ||||||
|                     using (MySqlDataReader reader = cmd.ExecuteReader()) |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|  |                     { | ||||||
|  |                         if (reader.Read()) | ||||||
|                         { |                         { | ||||||
|                             player.displayNameId = 0xFFFFFFFF; |                             player.displayNameId = 0xFFFFFFFF; | ||||||
|                             player.customDisplayName = reader.GetString(0); |                             player.customDisplayName = reader.GetString(0); | ||||||
| @@ -236,15 +219,13 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                             player.gcRankGridania = reader.GetByte(10); |                             player.gcRankGridania = reader.GetByte(10); | ||||||
|                             player.gcRankUldah = reader.GetByte(11); |                             player.gcRankUldah = reader.GetByte(11); | ||||||
|                             player.currentTitle = reader.GetUInt32(12); |                             player.currentTitle = reader.GetUInt32(12); | ||||||
|  |  | ||||||
|                         if (isMe) |  | ||||||
|                         { |  | ||||||
|                             player.playerWork.guardian = reader.GetByte(13); |                             player.playerWork.guardian = reader.GetByte(13); | ||||||
|                             player.playerWork.birthdayDay = reader.GetByte(14); |                             player.playerWork.birthdayDay = reader.GetByte(14); | ||||||
|                             player.playerWork.birthdayMonth = reader.GetByte(15); |                             player.playerWork.birthdayMonth = reader.GetByte(15); | ||||||
|                             player.playerWork.initialTown = reader.GetByte(16); |                             player.playerWork.initialTown = reader.GetByte(16); | ||||||
|                             player.playerWork.restBonusExpRate = reader.GetInt32(17); |                             player.playerWork.tribe = reader.GetByte(17); | ||||||
|                             player.achievementPoints = reader.GetUInt32(18); |                             player.playerWork.restBonusExpRate = reader.GetInt32(19); | ||||||
|  |                             player.achievementPoints = reader.GetUInt32(20); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
| @@ -252,7 +233,6 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                     query = @" |                     query = @" | ||||||
|                         SELECT  |                         SELECT  | ||||||
|                         baseId,                        |                         baseId,                        | ||||||
|                         tribe, |  | ||||||
|                         size, |                         size, | ||||||
|                         voice, |                         voice, | ||||||
|                         skinColor, |                         skinColor, | ||||||
| @@ -288,24 +268,31 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                     cmd.Parameters.AddWithValue("@charId", player.actorId); |                     cmd.Parameters.AddWithValue("@charId", player.actorId); | ||||||
|                     using (MySqlDataReader reader = cmd.ExecuteReader()) |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|                     { |                     { | ||||||
|                         player.modelID = DBAppearance.getTribeModel(reader.GetByte(1)); |                         if (reader.Read()) | ||||||
|                         player.appearanceIDs[Character.SIZE] = reader.GetByte(2); |                         { | ||||||
|                         player.appearanceIDs[Character.COLORINFO] = (uint)(reader.GetUInt16(4) | (reader.GetUInt16(6) << 10) | (reader.GetUInt16(8) << 20)); |                             if (reader.GetUInt32(0) == 0xFFFFFFFF) | ||||||
|                         player.appearanceIDs[Character.FACEINFO] = PrimitiveConversion.ToUInt32(CharacterUtils.getFaceInfo(reader.GetByte(9), reader.GetByte(10), reader.GetByte(11), reader.GetByte(12), reader.GetByte(13), reader.GetByte(14), reader.GetByte(15), reader.GetByte(16), reader.GetByte(17), reader.GetByte(18))); |                                 player.modelID = CharacterUtils.getTribeModel(player.playerWork.tribe); | ||||||
|                         player.appearanceIDs[Character.HIGHLIGHT_HAIR] = (uint)(reader.GetUInt16(7) | reader.GetUInt16(5) << 10); |                             else | ||||||
|                         player.appearanceIDs[Character.VOICE] = reader.GetByte(3); |                                 player.modelID = reader.GetUInt32(0); | ||||||
|                         player.appearanceIDs[Character.WEAPON1] = reader.GetUInt32(19); |                             player.appearanceIDs[Character.SIZE] = reader.GetByte(1); | ||||||
|                         player.appearanceIDs[Character.WEAPON2] = reader.GetUInt32(20); |                             player.appearanceIDs[Character.COLORINFO] = (uint)(reader.GetUInt16(3) | (reader.GetUInt16(5) << 10) | (reader.GetUInt16(7) << 20)); | ||||||
|                         player.appearanceIDs[Character.HEADGEAR] = reader.GetUInt32(21); |                             player.appearanceIDs[Character.FACEINFO] = PrimitiveConversion.ToUInt32(CharacterUtils.getFaceInfo(reader.GetByte(8), reader.GetByte(9), reader.GetByte(10), reader.GetByte(11), reader.GetByte(12), reader.GetByte(13), reader.GetByte(14), reader.GetByte(15), reader.GetByte(16), reader.GetByte(17))); | ||||||
|                         player.appearanceIDs[Character.BODYGEAR] = reader.GetUInt32(22); |                             player.appearanceIDs[Character.HIGHLIGHT_HAIR] = (uint)(reader.GetUInt16(6) | reader.GetUInt16(4) << 10); | ||||||
|                         player.appearanceIDs[Character.LEGSGEAR] = reader.GetUInt32(23); |                             player.appearanceIDs[Character.VOICE] = reader.GetByte(2); | ||||||
|                         player.appearanceIDs[Character.HANDSGEAR] = reader.GetUInt32(24); |                             player.appearanceIDs[Character.WEAPON1] = reader.GetUInt32(18); | ||||||
|                         player.appearanceIDs[Character.FEETGEAR] = reader.GetUInt32(25); |                             player.appearanceIDs[Character.WEAPON2] = reader.GetUInt32(19); | ||||||
|                         player.appearanceIDs[Character.WAISTGEAR] = reader.GetUInt32(26); |                             player.appearanceIDs[Character.HEADGEAR] = reader.GetUInt32(20); | ||||||
|                         player.appearanceIDs[Character.R_EAR] = reader.GetUInt32(27); |                             player.appearanceIDs[Character.BODYGEAR] = reader.GetUInt32(21); | ||||||
|                         player.appearanceIDs[Character.L_EAR] = reader.GetUInt32(28); |                             player.appearanceIDs[Character.LEGSGEAR] = reader.GetUInt32(22); | ||||||
|                         player.appearanceIDs[Character.R_FINGER] = reader.GetUInt32(29); |                             player.appearanceIDs[Character.HANDSGEAR] = reader.GetUInt32(23); | ||||||
|                         player.appearanceIDs[Character.L_FINGER] = reader.GetUInt32(30); |                             player.appearanceIDs[Character.FEETGEAR] = reader.GetUInt32(24); | ||||||
|  |                             player.appearanceIDs[Character.WAISTGEAR] = reader.GetUInt32(25); | ||||||
|  |                             player.appearanceIDs[Character.R_EAR] = reader.GetUInt32(26); | ||||||
|  |                             player.appearanceIDs[Character.L_EAR] = reader.GetUInt32(27); | ||||||
|  |                             player.appearanceIDs[Character.R_FINGER] = reader.GetUInt32(28); | ||||||
|  |                             player.appearanceIDs[Character.L_FINGER] = reader.GetUInt32(29); | ||||||
|  |                         } | ||||||
|  |  | ||||||
|                     } |                     } | ||||||
|  |  | ||||||
|                     //Load Status Effects |                     //Load Status Effects | ||||||
| @@ -339,24 +326,15 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                     cmd = new MySqlCommand(query, conn); |                     cmd = new MySqlCommand(query, conn); | ||||||
|                     cmd.Parameters.AddWithValue("@charId", player.actorId); |                     cmd.Parameters.AddWithValue("@charId", player.actorId); | ||||||
|                     using (MySqlDataReader reader = cmd.ExecuteReader()) |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|  |                     { | ||||||
|  |                         if (reader.Read()) | ||||||
|                         { |                         { | ||||||
|                             player.hasChocobo = reader.GetBoolean(0); |                             player.hasChocobo = reader.GetBoolean(0); | ||||||
|                             player.hasGoobbue = reader.GetBoolean(1); |                             player.hasGoobbue = reader.GetBoolean(1); | ||||||
|                             player.chocoboAppearance = reader.GetByte(2); |                             player.chocoboAppearance = reader.GetByte(2); | ||||||
|                             player.chocoboName = reader.GetString(3); |                             player.chocoboName = reader.GetString(3); | ||||||
|                         } |                         } | ||||||
|  |                     } | ||||||
|                     //Load Achievements |  | ||||||
|                     query = @" |  | ||||||
|                         SELECT  |  | ||||||
|                         achievementId                                           |  | ||||||
|                         FROM characters_achievements WHERE characterId = @charId AND timeDone NOT NULL"; |  | ||||||
|  |  | ||||||
|                     //Load Last 5 Completed |  | ||||||
|                     query = @" |  | ||||||
|                         SELECT  |  | ||||||
|                         achievementId                                      |  | ||||||
|                         FROM characters_achievements WHERE characterId = @charId ORDER BY timeDone DESC LIMIT 5"; |  | ||||||
|  |  | ||||||
|                     //Load Timers |                     //Load Timers | ||||||
|                     query = @" |                     query = @" | ||||||
| @@ -380,28 +358,31 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                         behests, |                         behests, | ||||||
|                         companybehests, |                         companybehests, | ||||||
|                         returntimer, |                         returntimer, | ||||||
|                         skirmish, |                         skirmish | ||||||
|                         FROM characters_timers WHERE characterId = @charId"; |                         FROM characters_timers WHERE characterId = @charId"; | ||||||
|  |  | ||||||
|                     cmd = new MySqlCommand(query, conn); |                     cmd = new MySqlCommand(query, conn); | ||||||
|                     cmd.Parameters.AddWithValue("@charId", player.actorId); |                     cmd.Parameters.AddWithValue("@charId", player.actorId); | ||||||
|                     using (MySqlDataReader reader = cmd.ExecuteReader()) |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|  |                     { | ||||||
|  |                         if (reader.Read()) | ||||||
|                         { |                         { | ||||||
|                             for (int i = 0; i < player.timers.Length; i++) |                             for (int i = 0; i < player.timers.Length; i++) | ||||||
|                                 player.timers[i] = reader.GetUInt32(i); |                                 player.timers[i] = reader.GetUInt32(i); | ||||||
|                         } |                         } | ||||||
|  |                     } | ||||||
|                     |                     | ||||||
|                     //Load Hotbar |                     //Load Hotbar | ||||||
|                     query = @" |                     query = @" | ||||||
|                         SELECT  |                         SELECT  | ||||||
|                         hotbarIndex, |                         hotbarSlot, | ||||||
|                         commandId, |                         commandId, | ||||||
|                         recastTime                 |                         recastTime                 | ||||||
|                         FROM characters_hotbar WHERE characterId = @charId AND classId = @classId"; |                         FROM characters_hotbar WHERE characterId = @charId AND classId = @classId"; | ||||||
|  |  | ||||||
|                     cmd = new MySqlCommand(query, conn); |                     cmd = new MySqlCommand(query, conn); | ||||||
|                     cmd.Parameters.AddWithValue("@charId", player.actorId); |                     cmd.Parameters.AddWithValue("@charId", player); | ||||||
|                     //cmd.Parameters.AddWithValue("@classId", player.currentClassId); |                     cmd.Parameters.AddWithValue("@classId", player.charaWork.parameterSave.state_mainSkill[0]); | ||||||
|                     using (MySqlDataReader reader = cmd.ExecuteReader()) |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|                     {                         |                     {                         | ||||||
|                         while (reader.Read()) |                         while (reader.Read()) | ||||||
| @@ -415,10 +396,12 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                     //Load Scenario Quests |                     //Load Scenario Quests | ||||||
|                     query = @" |                     query = @" | ||||||
|                         SELECT  |                         SELECT  | ||||||
|                         index, |                         slot, | ||||||
|                         questId                        |                         questId                        | ||||||
|                         FROM characters_quest_scenario WHERE characterId = @charId"; |                         FROM characters_quest_scenario WHERE characterId = @charId"; | ||||||
|                     |                     | ||||||
|  |                     cmd = new MySqlCommand(query, conn); | ||||||
|  |                     cmd.Parameters.AddWithValue("@charId", player); | ||||||
|                     using (MySqlDataReader reader = cmd.ExecuteReader()) |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|                     { |                     { | ||||||
|                         while (reader.Read()) |                         while (reader.Read()) | ||||||
| @@ -431,12 +414,14 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                     //Load Guildleve Quests |                     //Load Guildleve Quests | ||||||
|                     query = @" |                     query = @" | ||||||
|                         SELECT  |                         SELECT  | ||||||
|                         index, |                         slot, | ||||||
|                         questId, |                         questId, | ||||||
|                         abandoned, |                         abandoned, | ||||||
|                         completed   |                         completed   | ||||||
|                         FROM characters_quest_scenario WHERE characterId = @charId"; |                         FROM characters_quest_scenario WHERE characterId = @charId"; | ||||||
|  |  | ||||||
|  |                     cmd = new MySqlCommand(query, conn); | ||||||
|  |                     cmd.Parameters.AddWithValue("@charId", player); | ||||||
|                     using (MySqlDataReader reader = cmd.ExecuteReader()) |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|                     { |                     { | ||||||
|                         while (reader.Read()) |                         while (reader.Read()) | ||||||
| @@ -454,8 +439,10 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|                         npcLinkshellId, |                         npcLinkshellId, | ||||||
|                         isCalling, |                         isCalling, | ||||||
|                         isExtra   |                         isExtra   | ||||||
|                         FROM characters_quest_scenario WHERE characterId = @charId"; |                         FROM characters_npclinkshell WHERE characterId = @charId"; | ||||||
|  |  | ||||||
|  |                     cmd = new MySqlCommand(query, conn); | ||||||
|  |                     cmd.Parameters.AddWithValue("@charId", player); | ||||||
|                     using (MySqlDataReader reader = cmd.ExecuteReader()) |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|                     { |                     { | ||||||
|                         while (reader.Read()) |                         while (reader.Read()) | ||||||
| @@ -476,5 +463,76 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         public static SubPacket getLatestAchievements(Player player) | ||||||
|  |         { | ||||||
|  |             uint[] latestAchievements = new uint[5]; | ||||||
|  |             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  | ||||||
|  |                                     achievementId                                      | ||||||
|  |                                     FROM characters_achievements WHERE characterId = @charId ORDER BY timeDone DESC LIMIT 5"; | ||||||
|  |  | ||||||
|  |                     MySqlCommand cmd = new MySqlCommand(query, conn); | ||||||
|  |                     cmd.Parameters.AddWithValue("@charId", player.actorId); | ||||||
|  |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|  |                     { | ||||||
|  |                         int count = 0; | ||||||
|  |                         while (reader.Read()) | ||||||
|  |                             latestAchievements[count] = reader.GetUInt32(0); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 catch (MySqlException e) | ||||||
|  |                 { Console.WriteLine(e); } | ||||||
|  |                 finally | ||||||
|  |                 { | ||||||
|  |                     conn.Dispose(); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             return SetLatestAchievementsPacket.buildPacket(player.actorId, latestAchievements); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public static SubPacket getAchievements(Player player) | ||||||
|  |         { | ||||||
|  |             uint[] latestAchievements = new uint[5]; | ||||||
|  |             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  | ||||||
|  |                                 achievementId                                           | ||||||
|  |                                 FROM characters_achievements WHERE characterId = @charId AND timeDone NOT NULL"; | ||||||
|  |  | ||||||
|  |                     MySqlCommand cmd = new MySqlCommand(query, conn); | ||||||
|  |                     cmd.Parameters.AddWithValue("@charId", player.actorId); | ||||||
|  |                     using (MySqlDataReader reader = cmd.ExecuteReader()) | ||||||
|  |                     { | ||||||
|  |                         int count = 0; | ||||||
|  |                         while (reader.Read()) | ||||||
|  |                             latestAchievements[count] = reader.GetUInt32(0); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 catch (MySqlException e) | ||||||
|  |                 { Console.WriteLine(e); } | ||||||
|  |                 finally | ||||||
|  |                 { | ||||||
|  |                     conn.Dispose(); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |             return SetLatestAchievementsPacket.buildPacket(player.actorId, latestAchievements);   | ||||||
|  |         } | ||||||
|  |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -64,6 +64,7 @@ | |||||||
|     <Reference Include="System.Xml" /> |     <Reference Include="System.Xml" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|  |     <Compile Include="actors\chara\Work.cs" /> | ||||||
|     <Compile Include="actors\judge\Judge.cs" /> |     <Compile Include="actors\judge\Judge.cs" /> | ||||||
|     <Compile Include="actors\StaticActors.cs" /> |     <Compile Include="actors\StaticActors.cs" /> | ||||||
|     <Compile Include="ClientConnection.cs" /> |     <Compile Include="ClientConnection.cs" /> | ||||||
| @@ -209,6 +210,7 @@ | |||||||
|     <Compile Include="Properties\AssemblyInfo.cs" /> |     <Compile Include="Properties\AssemblyInfo.cs" /> | ||||||
|     <Compile Include="lua\LuaUtils.cs" /> |     <Compile Include="lua\LuaUtils.cs" /> | ||||||
|     <Compile Include="Server.cs" /> |     <Compile Include="Server.cs" /> | ||||||
|  |     <Compile Include="utils\CharacterUtils.cs" /> | ||||||
|     <Compile Include="Zone.cs" /> |     <Compile Include="Zone.cs" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|   | |||||||
| @@ -49,7 +49,7 @@ namespace FFXIVClassic_Lobby_Server | |||||||
|         { |         { | ||||||
|             mPlayers = playerList; |             mPlayers = playerList; | ||||||
|             mConnections = connectionList; |             mConnections = connectionList; | ||||||
|             initNpcs(); |            // initNpcs(); | ||||||
|         }      |         }      | ||||||
|  |  | ||||||
|         public void processPacket(ClientConnection client, BasePacket packet) |         public void processPacket(ClientConnection client, BasePacket packet) | ||||||
|   | |||||||
| @@ -49,7 +49,6 @@ namespace FFXIVClassic_Map_Server.dataobjects.chara | |||||||
|  |  | ||||||
|         public Work work = new Work(); |         public Work work = new Work(); | ||||||
|         public CharaWork charaWork = new CharaWork(); |         public CharaWork charaWork = new CharaWork(); | ||||||
|         public PlayerWork playerWork = new PlayerWork(); |  | ||||||
|          |          | ||||||
|         public Character(uint actorID) : base(actorID) |         public Character(uint actorID) : base(actorID) | ||||||
|         { |         { | ||||||
|   | |||||||
| @@ -53,8 +53,9 @@ namespace FFXIVClassic_Map_Server.dataobjects.chara | |||||||
|         public string chocoboName; |         public string chocoboName; | ||||||
|  |  | ||||||
|         public uint achievementPoints; |         public uint achievementPoints; | ||||||
|  |         public ushort[] latestAchievements = new ushort[5]; | ||||||
|  |  | ||||||
|         PlayerWork playerWork = new PlayerWork(); |         public PlayerWork playerWork = new PlayerWork(); | ||||||
|  |  | ||||||
|         public Player(uint actorID) : base(actorID) |         public Player(uint actorID) : base(actorID) | ||||||
|         { |         { | ||||||
| @@ -62,56 +63,15 @@ namespace FFXIVClassic_Map_Server.dataobjects.chara | |||||||
|             className = "Player"; |             className = "Player"; | ||||||
|             currentSubState = SetActorStatePacket.SUB_STATE_PLAYER; |             currentSubState = SetActorStatePacket.SUB_STATE_PLAYER; | ||||||
|  |  | ||||||
|             DBStats stats = Database.getCharacterStats(actorID); |  | ||||||
|  |  | ||||||
|             charaWork.property[0] = 1; |             charaWork.property[0] = 1; | ||||||
|             charaWork.property[1] = 1; |             charaWork.property[1] = 1; | ||||||
|             charaWork.property[2] = 1; |             charaWork.property[2] = 1; | ||||||
|             charaWork.property[4] = 1;             |             charaWork.property[4] = 1;             | ||||||
|  |  | ||||||
|             charaWork.parameterSave.hp[0] = stats.hp; |  | ||||||
|             charaWork.parameterSave.hpMax[0] = stats.hpMax; |  | ||||||
|             charaWork.parameterSave.mp = stats.mp; |  | ||||||
|             charaWork.parameterSave.mpMax = stats.mpMax; |  | ||||||
|  |  | ||||||
|             charaWork.parameterSave.state_mainSkill[0] = 3; |             charaWork.parameterSave.state_mainSkill[0] = 3; | ||||||
|             charaWork.parameterSave.state_mainSkillLevel = 1; |             charaWork.parameterSave.state_mainSkillLevel = 1; | ||||||
|  |  | ||||||
|             charaWork.battleSave.skillLevel = 1; |             Database.loadPlayerCharacter(this); | ||||||
|             charaWork.battleSave.skillLevelCap = 2; |  | ||||||
|             charaWork.battleSave.potencial = 0.5f; |  | ||||||
|             charaWork.battleSave.physicalExp = 1; |  | ||||||
|             charaWork.battleSave.negotiationFlag[0] = false; |  | ||||||
|             charaWork.battleSave.negotiationFlag[1] = false; |  | ||||||
|  |  | ||||||
|             for (int i = 0; i < 20; i++) |  | ||||||
|                 charaWork.statusShownTime[i] = 0xFFFFFFFF; |  | ||||||
|              |  | ||||||
|             setPlayerAppearance(); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         public void setPlayerAppearance() |  | ||||||
|         { |  | ||||||
|             DBAppearance appearance = Database.getAppearance(true, actorId); |  | ||||||
|  |  | ||||||
|             modelID = DBAppearance.getTribeModel(appearance.tribe); |  | ||||||
|             appearanceIDs[SIZE] = appearance.size; |  | ||||||
|             appearanceIDs[COLORINFO] = (uint)(appearance.skinColor | (appearance.hairColor << 10) | (appearance.eyeColor << 20)); |  | ||||||
|             appearanceIDs[FACEINFO] = PrimitiveConversion.ToUInt32(appearance.getFaceInfo()); |  | ||||||
|             appearanceIDs[HIGHLIGHT_HAIR] = (uint)(appearance.hairHighlightColor | appearance.hairStyle << 10); |  | ||||||
|             appearanceIDs[VOICE] = appearance.voice; |  | ||||||
|             appearanceIDs[WEAPON1] = appearance.mainHand; |  | ||||||
|             appearanceIDs[WEAPON2] = appearance.offHand; |  | ||||||
|             appearanceIDs[HEADGEAR] = appearance.head; |  | ||||||
|             appearanceIDs[BODYGEAR] = appearance.body; |  | ||||||
|             appearanceIDs[LEGSGEAR] = appearance.legs; |  | ||||||
|             appearanceIDs[HANDSGEAR] = appearance.hands; |  | ||||||
|             appearanceIDs[FEETGEAR] = appearance.feet; |  | ||||||
|             appearanceIDs[WAISTGEAR] = appearance.waist; |  | ||||||
|             appearanceIDs[R_EAR] = appearance.rightEar; |  | ||||||
|             appearanceIDs[L_EAR] = appearance.leftEar; |  | ||||||
|             appearanceIDs[R_FINGER] = appearance.rightFinger; |  | ||||||
|             appearanceIDs[L_FINGER] = appearance.leftFinger; |  | ||||||
|         } |         } | ||||||
|          |          | ||||||
|         public List<SubPacket> create0x132Packets(uint playerActorId) |         public List<SubPacket> create0x132Packets(uint playerActorId) | ||||||
|   | |||||||
| @@ -28,8 +28,8 @@ namespace FFXIVClassic_Map_Server.dataobjects | |||||||
|         public ConnectedPlayer(uint actorId) |         public ConnectedPlayer(uint actorId) | ||||||
|         { |         { | ||||||
|             this.actorID = actorId; |             this.actorID = actorId; | ||||||
|             DBCharacter chara = Database.getCharacter(actorId); |             playerActor = new Player(actorId); | ||||||
|             createPlayerActor(actorId, chara); |             actorInstanceList.Add(playerActor); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public void addConnection(ClientConnection conn) |         public void addConnection(ClientConnection conn) | ||||||
| @@ -89,16 +89,6 @@ namespace FFXIVClassic_Map_Server.dataobjects | |||||||
|             return playerActor; |             return playerActor; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         public void createPlayerActor(uint actorId, DBCharacter chara) |  | ||||||
|         { |  | ||||||
|             playerActor = new Player(actorId); |  | ||||||
|  |  | ||||||
|             playerActor.displayNameId = 0xFFFFFFFF; |  | ||||||
|             playerActor.customDisplayName = chara.name; |  | ||||||
|             playerActor.setPlayerAppearance(); |  | ||||||
|             actorInstanceList.Add(playerActor); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         public void updatePlayerActorPosition(float x, float y, float z, float rot, ushort moveState) |         public void updatePlayerActorPosition(float x, float y, float z, float rot, ushort moveState) | ||||||
|         { |         { | ||||||
|             /* |             /* | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user