1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-04 01:37:47 +00:00

update MapUpdate2/128 opcode, fix discovery and clean up custom PlayerSetup unlocks

This commit is contained in:
collett 2024-06-13 22:57:52 +09:00
parent 036a561098
commit e22669876c
3 changed files with 16 additions and 19 deletions

View file

@ -163,7 +163,7 @@ enum ServerZoneIpcType :
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x164, // updated 6.58 hotfix 2 PartyList = 0x164, // updated 6.58 hotfix 2
PartyUpdate = 0x2D8, // updated 6.58 hotfix 2 PartyUpdate = 0x2D8, // updated 6.58 hotfix 2?
HateRank = 0x2A7, // updated 6.58 hotfix 2 HateRank = 0x2A7, // updated 6.58 hotfix 2
HateList = 0x26B, // updated 6.58 hotfix 2 HateList = 0x26B, // updated 6.58 hotfix 2
ObjectSpawn = 0x03B8, // updated 6.58 hotfix 2 ObjectSpawn = 0x03B8, // updated 6.58 hotfix 2
@ -242,7 +242,7 @@ enum ServerZoneIpcType :
WeatherChange = 0x021D, // updated 6.58 hotfix 2 WeatherChange = 0x021D, // updated 6.58 hotfix 2
PlayerTitleList = 0x1FF, // updated 6.58 hotfix 2? PlayerTitleList = 0x1FF, // updated 6.58 hotfix 2?
Discovery = 0x11E, // updated 6.58 hotfix 2? Discovery = 0x11E, // updated 6.58 hotfix 2
EorzeaTimeOffset = 0x398, // updated 6.58 hotfix 2? EorzeaTimeOffset = 0x398, // updated 6.58 hotfix 2?
@ -294,13 +294,13 @@ enum ServerZoneIpcType :
DailyQuests = 0x2EF, // updated 6.58 hotfix 2 DailyQuests = 0x2EF, // updated 6.58 hotfix 2
DailyQuestRepeatFlags = 0x134, // updated 6.58 hotfix 2 DailyQuestRepeatFlags = 0x134, // updated 6.58 hotfix 2
MapUpdate = 0xF0A3, // updated 6.48 MapUpdate = 0x0FF, // updated 6.58 hotfix 2
MapUpdate4 = 0x345, // updated 6.58 hotfix 2 MapUpdate4 = 0x345, // updated 6.58 hotfix 2
MapUpdate8 = 0x114, // updated 6.58 hotfix 2 MapUpdate8 = 0x114, // updated 6.58 hotfix 2
MapUpdate16 = 0x2CE, // updated 6.58 hotfix 2 MapUpdate16 = 0x2CE, // updated 6.58 hotfix 2
MapUpdate32 = 0x205, // updated 6.58 hotfix 2 MapUpdate32 = 0x205, // updated 6.58 hotfix 2
MapUpdate64 = 0x1FC, // updated 6.58 hotfix 2 MapUpdate64 = 0x1FC, // updated 6.58 hotfix 2
MapUpdate128 = 0xF09c, // updated 6.48 MapUpdate128 = 0x158, // updated 6.58 hotfix 2
/// Doman Mahjong ////////////////////////////////////// /// Doman Mahjong //////////////////////////////////////
MahjongOpenGui = 0x02A4, // only available in mahjong instance MahjongOpenGui = 0x02A4, // only available in mahjong instance

View file

@ -690,9 +690,9 @@ void Sapphire::Entity::Player::discover( int16_t map_id, int16_t sub_id )
} }
if( info->discoveryArrayByte ) if( info->discoveryArrayByte )
offset = 5 + 2 * info->discoveryIndex; offset = 2 * info->discoveryIndex;
else else
offset = 325 + 4 * info->discoveryIndex; offset = 320 + 4 * info->discoveryIndex;
int32_t index = offset + sub_id / 8; int32_t index = offset + sub_id / 8;
uint8_t bitIndex = sub_id % 8; uint8_t bitIndex = sub_id % 8;

View file

@ -45,7 +45,6 @@ namespace Sapphire::Network::Packets::Server
//m_data.gcRank = GCRank::None; //m_data.gcRank = GCRank::None;
m_data.homepoint = player.getHomepoint(); m_data.homepoint = player.getHomepoint();
m_data.pose[0] = player.getPose();
memset( &m_data.name[ 0 ], 0, sizeof( m_data.name ) ); memset( &m_data.name[ 0 ], 0, sizeof( m_data.name ) );
strcpy( &m_data.name[ 0 ], player.getName().c_str() ); strcpy( &m_data.name[ 0 ], player.getName().c_str() );
@ -69,29 +68,27 @@ namespace Sapphire::Network::Packets::Server
memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) ); memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) );
// possibly max level or current level
m_data.maxLevel = Common::MAX_PLAYER_LEVEL; m_data.maxLevel = Common::MAX_PLAYER_LEVEL;
m_data.expansion = Common::CURRENT_EXPANSION_ID; m_data.expansion = Common::CURRENT_EXPANSION_ID;
// df stuff // unlock mounts
// todo: actually do this properly memset( m_data.mountGuideMask, 0xFF, sizeof( m_data.mountGuideMask ) );
// m_data.unknown70[4] = 1; // enable df
// enable all raids/guildhests/dungeons // uncomment to unlock everything or choose options below
//memset( &m_data.unknown293[ 0 ], 0xFF, reinterpret_cast< uint64_t >( &m_data.unknown85E[ 40 ] ) - reinterpret_cast< uint64_t >( &m_data.unknown293[ 0 ] ) + 1 );
m_data.pose[0] = player.getPose();
memset( &m_data.pose[ 1 ], 0, sizeof( m_data.pose ) - 1 );
// custom unlock options
memset( m_data.unlockedDungeons, 0xFF, sizeof( m_data.unlockedDungeons ) ); memset( m_data.unlockedDungeons, 0xFF, sizeof( m_data.unlockedDungeons ) );
memset( m_data.unlockedGuildhests, 0xFF, sizeof( m_data.unlockedGuildhests ) ); memset( m_data.unlockedGuildhests, 0xFF, sizeof( m_data.unlockedGuildhests ) );
memset( m_data.unlockedPvp, 0xFF, sizeof( m_data.unlockedPvp ) ); memset( m_data.unlockedPvp, 0xFF, sizeof( m_data.unlockedPvp ) );
memset( m_data.unlockedRaids, 0xFF, sizeof( m_data.unlockedRaids ) ); memset( m_data.unlockedRaids, 0xFF, sizeof( m_data.unlockedRaids ) );
memset( m_data.unlockedTrials, 0xFF, sizeof( m_data.unlockedTrials ) ); memset( m_data.unlockedTrials, 0xFF, sizeof( m_data.unlockedTrials ) );
// uncomment to enable custom unlocks
// everything
//memset( &m_data.unknownOword[ 0 ], 0xFF, reinterpret_cast< uint64_t >( &m_data.unknown5_55c ) - reinterpret_cast< uint64_t >( &m_data.unknownOword[ 0 ] ) );
// or select options below
//memset( m_data.unlockBitmask, 0xFF, sizeof( m_data.unlockBitmask ) ); //memset( m_data.unlockBitmask, 0xFF, sizeof( m_data.unlockBitmask ) );
//memset( m_data.mountGuideMask, 0xFF, sizeof( m_data.mountGuideMask ) );
//memset( m_data.minions, 0xFF, sizeof( m_data.minions ) ); //memset( m_data.minions, 0xFF, sizeof( m_data.minions ) );
//memset( m_data.discovery, 0xFF, sizeof( m_data.discovery ) );
}; };
}; };