1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-26 22:37:45 +00:00

Greatly improved initui and changed DB and player field sizes

This commit is contained in:
Mordred 2017-12-16 00:41:51 +01:00
parent e574d4035d
commit 33eeb6acb6
6 changed files with 71 additions and 56 deletions

View file

@ -6,7 +6,7 @@
<!-- Ip the lobby server listens on --> <!-- Ip the lobby server listens on -->
<ListenIp>127.0.0.1</ListenIp> <ListenIp>127.0.0.1</ListenIp>
<!-- Path of FFXIV dat files --> <!-- Path of FFXIV dat files -->
<DataPath>H:\\SteamLibrary\\steamapps\\common\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv</DataPath> <DataPath>C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv</DataPath>
<!-- <DataPath>/opt/sapphire_3_15_0/bin/sqpack</DataPath> --> <!-- <DataPath>/opt/sapphire_3_15_0/bin/sqpack</DataPath> -->
<!-- IP of the lobby server --> <!-- IP of the lobby server -->
<LobbyHost>127.0.0.1</LobbyHost> <LobbyHost>127.0.0.1</LobbyHost>

View file

@ -5,7 +5,7 @@
<!-- Ip the zone server conenctions on --> <!-- Ip the zone server conenctions on -->
<ListenIp>127.0.0.1</ListenIp> <ListenIp>127.0.0.1</ListenIp>
<!-- Path of FFXIV dat files --> <!-- Path of FFXIV dat files -->
<DataPath>H:\\SteamLibrary\\steamapps\\common\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv</DataPath> <DataPath>C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv</DataPath>
<Scripts> <Scripts>
<!-- where compiled scripts are placed --> <!-- where compiled scripts are placed -->

View file

@ -42,3 +42,7 @@ MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURR
ALTER TABLE charainfo ALTER TABLE charainfo
ADD `Orchestrion` binary(38) DEFAULT NULL AFTER `Mounts`; ADD `Orchestrion` binary(38) DEFAULT NULL AFTER `Mounts`;
ALTER TABLE `charainfo` CHANGE `Mounts` `Mounts` BINARY(14) NULL DEFAULT NULL;
ALTER TABLE `charainfo` CHANGE `Orchestrion` `Orchestrion` BINARY(40) NULL DEFAULT NULL;
ALTER TABLE `charainfo` CHANGE `Minions` `Minions` BINARY(35) NULL DEFAULT NULL;

View file

@ -678,12 +678,12 @@ struct FFXIVIpcInitZone : FFXIVIpcBasePacket<InitZone>
struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI> struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
{ {
uint64_t contentId; uint64_t contentId;
uint32_t unknown_8; uint32_t unknown8;
uint32_t unknown_9; uint32_t unknownC;
uint32_t charId; uint32_t charId;
uint32_t restedExp; uint32_t restedExp;
uint16_t unknown_12; uint16_t unknown18;
uint8_t unknown_13; uint8_t maxLevel;
uint8_t expansion; uint8_t expansion;
uint8_t race; uint8_t race;
uint8_t tribe; uint8_t tribe;
@ -693,9 +693,9 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
uint8_t deity; uint8_t deity;
uint8_t namedayMonth; uint8_t namedayMonth;
uint8_t namedayDay; uint8_t namedayDay;
Common::GrandCompany grandCompany; uint8_t cityState;
uint8_t homepoint; uint8_t homepoint;
uint8_t unknown_19; uint8_t unknown26;
uint8_t petHotBar; uint8_t petHotBar;
uint8_t companionRank; uint8_t companionRank;
uint8_t companionStars; uint8_t companionStars;
@ -703,36 +703,36 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
uint8_t companionUnk1; uint8_t companionUnk1;
uint8_t companionColor; uint8_t companionColor;
uint8_t companionFavoFeed; uint8_t companionFavoFeed;
uint8_t companionUnk2[2]; uint16_t companionUnk2;
float companionTimePassed; float companionTimePassed;
uint32_t companionCurrentExp; uint32_t companionCurrentExp;
uint32_t unknown_1b; uint32_t unknown38;
uint32_t unknown3C;
uint32_t fishCaught; uint32_t fishCaught;
uint32_t useBaitCatalogId; uint32_t useBaitCatalogId;
uint32_t unknown_1c;
uint16_t pvpWolfFoldMatches; uint16_t pvpWolfFoldMatches;
uint16_t pvpWolfFoldVictories; uint16_t pvpWolfFoldVictories;
uint16_t pvpWolfFoldWeeklyMatches; uint16_t pvpWolfFoldWeeklyMatches;
uint16_t pvpWolfFoldWeeklyVictories; uint16_t pvpWolfFoldWeeklyVictories;
uint16_t pvpStats[6];
uint16_t playerCommendations; uint16_t playerCommendations;
uint8_t pvpStats[14]; uint16_t pvpStats1;
uint32_t frontlineCampaigns; uint32_t frontlineCampaigns;
uint16_t frontlineCampaignsWeekly; uint16_t frontlineCampaignsWeekly;
uint8_t unknown_112; uint8_t currentRelic;
uint8_t currentBook;
uint8_t masterCrafterMask; uint8_t masterCrafterMask;
uint8_t unknown_001; uint8_t unknown69;
uint8_t unknown_002; uint8_t unknown6A;
uint8_t unknown_003; uint8_t unknown6B;
uint8_t unknown_004; uint32_t unknown6C;
uint16_t unknown_005; uint8_t unknown70[61];
uint8_t unknown_114;
uint8_t padding_114;
uint8_t unknown_1141[61];
uint8_t preNamePadding; uint8_t preNamePadding;
char name[32]; char name[32];
uint8_t unknown_54[16]; uint8_t unknownOword[16];
uint8_t unknown55[4]; uint8_t unknownDE[2];
uint16_t levels[25]; uint16_t levels[25];
uint16_t levelsPadding;
uint32_t exp[25]; uint32_t exp[25];
uint8_t unlockBitmask[64]; uint8_t unlockBitmask[64];
uint8_t aetheryte[16]; uint8_t aetheryte[16];
@ -741,6 +741,8 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
uint8_t minions[35]; uint8_t minions[35];
uint8_t chocoboTaxiMask[8]; uint8_t chocoboTaxiMask[8];
uint8_t contentClearMask[105]; uint8_t contentClearMask[105];
uint8_t contentClearPadding;
uint16_t unknown422[8];
uint8_t companionBardingMask[8]; uint8_t companionBardingMask[8];
uint8_t companionEquippedHead; uint8_t companionEquippedHead;
uint8_t companionEquippedBody; uint8_t companionEquippedBody;
@ -750,13 +752,14 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
uint8_t companionDefRank; uint8_t companionDefRank;
uint8_t companionAttRank; uint8_t companionAttRank;
uint8_t companionHealRank; uint8_t companionHealRank;
uint8_t mountGuideMask[13]; uint8_t mountGuideMask[14];
uint8_t fishingGuideMask[77]; uint8_t fishingGuideMask[89];
uint8_t fishingSpotVisited[25]; uint8_t fishingSpotVisited[25];
uint8_t unknown_41;
uint16_t fishingRecordsFish[26]; uint16_t fishingRecordsFish[26];
uint16_t fishingRecordsFishWeight[26]; uint16_t fishingRecordsFishWeight[26];
uint8_t unknown_590[62]; uint8_t unknownMask4[15];
uint8_t unknownMask4Padding;
uint8_t unknown55C[19];
uint8_t rankAmalJaa; uint8_t rankAmalJaa;
uint8_t rankSylph; uint8_t rankSylph;
uint8_t rankKobold; uint8_t rankKobold;
@ -765,6 +768,7 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
uint8_t rankVanu; uint8_t rankVanu;
uint8_t rankVath; uint8_t rankVath;
uint8_t rankMoogle; uint8_t rankMoogle;
uint8_t rankKojin;
uint16_t expAmalJaa; uint16_t expAmalJaa;
uint16_t expSylph; uint16_t expSylph;
uint16_t expKobold; uint16_t expKobold;
@ -773,28 +777,43 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket<InitUI>
uint16_t expVanu; uint16_t expVanu;
uint16_t expVath; uint16_t expVath;
uint16_t expMoogle; uint16_t expMoogle;
uint8_t unknown_0341[20]; uint16_t expKojin;
uint8_t unknownMask0[5]; uint8_t unknown58A[10];
uint8_t unknown_0342[15]; uint16_t unknown594[5];
uint8_t unknownMask1[28]; uint8_t unknownMask59E[5];
uint32_t unknownDword0; uint8_t unknown5A3[16];
uint8_t unknown_0343[12]; uint8_t unknownMask5B3[28];
uint8_t sightseeingMask[19]; uint8_t unknown_03411;
uint8_t unknown_421; uint32_t unknownDword5D0;
uint8_t relicBookCompletion[12];
uint8_t sightseeingMask[26];
uint16_t unknown_XXX;
uint32_t pvpFrontlineOverall1st; uint32_t pvpFrontlineOverall1st;
uint32_t pvpFrontlineOverall2nd; uint32_t pvpFrontlineOverall2nd;
uint32_t pvpFrontlineOverall3rd; uint32_t pvpFrontlineOverall3rd;
uint16_t pvpFrontlineWeekly1st; uint16_t pvpFrontlineWeekly1st;
uint16_t pvpFrontlineWeekly2nd; uint16_t pvpFrontlineWeekly2nd;
uint16_t pvpFrontlineWeekly3rd; uint16_t pvpFrontlineWeekly3rd;
uint8_t unknownRest[32]; uint8_t unknown60E;
uint8_t tripleTriadCards[26]; uint8_t unknown60F[32];
uint8_t unknownRest1[21]; uint8_t unknown62F[22];
uint8_t orchestrionMask[38]; uint8_t tripleTriadCards[27];
uint8_t unknown660[11];
uint8_t unknownMask66B[22];
uint8_t unknown681[3];
uint8_t orchestrionMask[40];
uint8_t hallOfNoviceCompleteMask[3]; uint8_t hallOfNoviceCompleteMask[3];
uint8_t unknownMask2[11]; uint8_t unknownMask6AF[11];
uint8_t unknownMask3[16]; uint8_t unknownMask6BA[16];
uint8_t unknown_500[9]; uint8_t unknown6CA[13];
uint8_t unlockedRaids[28];
uint8_t unlockedDungeons[18];
uint8_t unlockedGuildhests[10];
uint8_t unlockedTrails[7];
uint8_t unlockedPvp[5];
uint8_t unknownMask71B[28];
uint8_t unknownMask737[18];
uint8_t unknown749[23];
}; };
/** /**

View file

@ -579,8 +579,8 @@ private:
uint16_t m_activeTitle; uint16_t m_activeTitle;
uint8_t m_titleList[48]; uint8_t m_titleList[48];
uint8_t m_howTo[33]; uint8_t m_howTo[33];
uint8_t m_minions[33]; uint8_t m_minions[35];
uint8_t m_mountGuide[13]; uint8_t m_mountGuide[14];
uint8_t m_homePoint; uint8_t m_homePoint;
uint8_t m_startTown; uint8_t m_startTown;
uint16_t m_townWarpFstFlags; uint16_t m_townWarpFstFlags;
@ -592,7 +592,7 @@ private:
uint32_t m_expArray[25]; uint32_t m_expArray[25];
uint8_t m_aetheryte[16]; uint8_t m_aetheryte[16];
uint8_t m_unlocks[64]; uint8_t m_unlocks[64];
uint8_t m_orchestrion[38]; uint8_t m_orchestrion[40];
uint8_t m_openingSequence; uint8_t m_openingSequence;

View file

@ -42,11 +42,9 @@ private:
m_data.namedayMonth = player.getBirthMonth(); m_data.namedayMonth = player.getBirthMonth();
m_data.namedayDay = player.getBirthDay(); m_data.namedayDay = player.getBirthDay();
// TODO: Support grand company status. // TODO: Support grand company status.
m_data.grandCompany = static_cast< Common::GrandCompany >( player.getGc() ); m_data.cityState = player.getStartTown();
//m_data.gcRank = GCRank::None; //m_data.gcRank = GCRank::None;
// TODO: Support starting city.
//m_data.startCity = Town::Gridania;
m_data.homepoint = player.getHomepoint(); m_data.homepoint = player.getHomepoint();
memset( &m_data.name[0], 0, sizeof( m_data.name ) ); memset( &m_data.name[0], 0, sizeof( m_data.name ) );
@ -72,16 +70,10 @@ private:
memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) ); memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) );
m_data.unknown_13 = 0x46; // possibly max level or current level
m_data.unknown1A = 0x46;
m_data.expansion = 2; m_data.expansion = 2;
//memset( m_data.unlockBitmask, 0xFF, sizeof( m_data.unlockBitmask ) );
//memset( m_data.unknown_0344, 0xFF, sizeof( m_data.unknown_0344 ) );
//memset( m_data.unknown_F4, 0xFF, sizeof( m_data.unknown_F4 ) );
//m_data.pos.x = player->getPos().getX();
//m_data.pos.y = player->getPos().getY();
//m_data.pos.z = player->getPos().getZ();
}; };
}; };