mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
Fixed all errors with player loader from db. DBAppearance is redundent and was removed.
This commit is contained in:
parent
16f6fe98b3
commit
9fc4101812
@ -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)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user