1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-08 03:37:45 +00:00

WIP fixing contentfinder

This commit is contained in:
Mordred 2023-01-21 23:46:03 +01:00
parent 6a7261a22b
commit b1ecbb7446
2 changed files with 24 additions and 5 deletions

View file

@ -216,7 +216,8 @@ namespace Sapphire::Network::Packets
CancelLogoutCountdown = 0x264,
FateDebugCommand = 0x265,
ContentAction = 0x266,
RequestPenalties = 0x267,
//RequestPenalties = 0x267,
RequestPenalties = 0x2CB,
Logout = 0x269,
HousingHouseName = 0x026A,

View file

@ -153,7 +153,11 @@ void Sapphire::World::ContentFinder::completeRegistration( const Sapphire::Entit
auto queuedContent = m_queuedContent[ m_queuedPlayer[ player.getId() ]->getActiveRegisterId() ];
auto& exdData = Service< Data::ExdData >::ref();
auto content = exdData.getRow< Excel::InstanceContent >( queuedContent->getContentFinderId() );
auto contentFinderCondition = exdData.getRow< Excel::ContentFinderCondition >( queuedContent->getContentFinderId() );
if( !contentFinderCondition )
return;
auto content = exdData.getRow< Excel::InstanceContent >( contentFinderCondition->data().InstanceContentId );
// Undersized
if( flags & 0x01 )
@ -368,7 +372,11 @@ void Sapphire::World::ContentFinder::accept( Entity::Player& player )
auto queuedPlayer = m_queuedPlayer[ player.getId() ];
auto queuedContent = m_queuedContent[ queuedPlayer->getActiveRegisterId() ];
auto content = exdData.getRow< Excel::InstanceContent >( queuedContent->getContentFinderId() );
auto contentFinderCondition = exdData.getRow< Excel::ContentFinderCondition >( queuedContent->getContentFinderId() );
if( !contentFinderCondition )
return;
auto content = exdData.getRow< Excel::InstanceContent >( contentFinderCondition->data().InstanceContentId );
// Something has gone quite wrong..
if( queuedContent->getState() != WaitingForAccept )
@ -413,7 +421,12 @@ void Sapphire::World::ContentFinder::withdraw( Entity::Player& player )
auto& exdData = Service< Data::ExdData >::ref();
auto queuedPlayer = m_queuedPlayer[ player.getId() ];
auto contentInfo = exdData.getRow< Excel::InstanceContent >( m_queuedContent[ queuedPlayer->getActiveRegisterId() ]->getContentFinderId() );
auto contentFinderCondition = exdData.getRow< Excel::ContentFinderCondition >( m_queuedContent[ queuedPlayer->getActiveRegisterId() ]->getContentFinderId() );
if( !contentFinderCondition )
return;
auto contentInfo = exdData.getRow< Excel::InstanceContent >( contentFinderCondition->data().InstanceContentId );
// remove the player from the global CF list
m_queuedPlayer.erase( player.getId() );
@ -442,7 +455,12 @@ void Sapphire::World::ContentFinder::withdraw( Entity::Player& player )
if( updateRegisterIdSet.count( regId ) == 0 )
continue;
auto queuedContentInfo = exdData.getRow< Excel::InstanceContent >( content.second->getContentFinderId() );
auto contentFinderCondition = exdData.getRow< Excel::ContentFinderCondition >( content.second->getContentFinderId() );
if( !contentFinderCondition )
return;
auto queuedContentInfo = exdData.getRow< Excel::InstanceContent >( contentFinderCondition->data().InstanceContentId );
auto& playerList = content.second->m_players;
for( const auto& pPlayer : playerList )
{