mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 14:57:44 +00:00
Cleaned up some zoning code. Secondly, alot more bnpcs will spawn now
This commit is contained in:
parent
d5d6584e2a
commit
328b8bf14d
5 changed files with 1002 additions and 376 deletions
File diff suppressed because one or more lines are too long
|
@ -195,7 +195,7 @@ std::string delChar( std::string &str, char del )
|
|||
int dumpSpawns()
|
||||
{
|
||||
|
||||
Logger::init( "mob_parse" );
|
||||
//Logger::init( "mob_parse" );
|
||||
|
||||
Logger::info( "Setting up EXD data" );
|
||||
if( !g_exdData.init( datLocation ) )
|
||||
|
@ -250,7 +250,7 @@ int dumpSpawns()
|
|||
|
||||
}
|
||||
|
||||
std::ofstream out("output_1.txt");
|
||||
std::ofstream out("spawns.txt");
|
||||
|
||||
int spawngroups = 0;
|
||||
for( auto entry : zoneToPacketList )
|
||||
|
@ -462,7 +462,8 @@ int dumpTemplates()
|
|||
|
||||
}
|
||||
|
||||
std::ofstream out("output.txt");
|
||||
std::map< std::string, bool > mobDumped;
|
||||
std::ofstream out("templates.txt");
|
||||
|
||||
for( auto entry : zoneToPacketList )
|
||||
{
|
||||
|
@ -530,6 +531,11 @@ int dumpTemplates()
|
|||
std::string name = delChar( nameStruct->singular, ' ' );
|
||||
name = delChar( name, '\'' );
|
||||
|
||||
if( mobDumped.find( name + "_" + std::to_string( instance.bNPCBase ) ) != mobDumped.end() )
|
||||
continue;
|
||||
|
||||
mobDumped[ name +"_" + std::to_string( instance.bNPCBase ) ] = true;
|
||||
|
||||
std::string output = "INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) "
|
||||
"VALUES ( \"" + name +"_" + std::to_string( instance.bNPCBase ) + "\", "
|
||||
+ std::to_string( instance.bNPCBase ) + ", "
|
||||
|
@ -593,7 +599,7 @@ int dumpTemplates()
|
|||
int main()
|
||||
{
|
||||
|
||||
//dumpTemplates();
|
||||
dumpTemplates();
|
||||
dumpSpawns();
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -420,13 +420,13 @@ void Sapphire::Entity::Player::setZone( uint32_t zoneId )
|
|||
return;
|
||||
}
|
||||
|
||||
sendZonePackets();
|
||||
}
|
||||
|
||||
bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId )
|
||||
{
|
||||
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||
m_onEnterEventDone = false;
|
||||
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||
|
||||
auto instance = pTeriMgr->getInstanceZonePtr( instanceContentId );
|
||||
if( !instance )
|
||||
return false;
|
||||
|
@ -441,7 +441,6 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance )
|
|||
return false;
|
||||
|
||||
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||
|
||||
auto currentZone = getCurrentZone();
|
||||
|
||||
// zoning within the same zone won't cause the prev data to be overwritten
|
||||
|
@ -453,35 +452,30 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance )
|
|||
m_prevTerritoryId = getTerritoryId();
|
||||
}
|
||||
|
||||
if( !pTeriMgr->movePlayer( instance, getAsPlayer() ) )
|
||||
return false;
|
||||
|
||||
sendZonePackets();
|
||||
|
||||
return true;
|
||||
return pTeriMgr->movePlayer( instance, getAsPlayer() );
|
||||
}
|
||||
|
||||
bool Sapphire::Entity::Player::setInstance( ZonePtr instance, Common::FFXIVARR_POSITION3 pos )
|
||||
{
|
||||
m_onEnterEventDone = false;
|
||||
if( !instance )
|
||||
return false;
|
||||
|
||||
m_onEnterEventDone = false;
|
||||
|
||||
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||
auto currentZone = getCurrentZone();
|
||||
|
||||
m_prevPos = m_pos;
|
||||
m_prevRot = m_rot;
|
||||
m_prevTerritoryTypeId = currentZone->getTerritoryTypeId();
|
||||
m_prevTerritoryId = getTerritoryId();
|
||||
// zoning within the same zone won't cause the prev data to be overwritten
|
||||
if( instance->getTerritoryTypeId() != m_territoryTypeId )
|
||||
{
|
||||
m_prevPos = m_pos;
|
||||
m_prevRot = m_rot;
|
||||
m_prevTerritoryTypeId = currentZone->getTerritoryTypeId();
|
||||
m_prevTerritoryId = getTerritoryId();
|
||||
}
|
||||
|
||||
if( pTeriMgr->movePlayer( instance, getAsPlayer() ) )
|
||||
{
|
||||
m_pos = pos;
|
||||
|
||||
sendZonePackets();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -512,8 +506,6 @@ bool Sapphire::Entity::Player::exitInstance()
|
|||
m_territoryTypeId = m_prevTerritoryTypeId;
|
||||
m_territoryId = m_prevTerritoryId;
|
||||
|
||||
sendZonePackets();
|
||||
|
||||
//m_queuedZoneing = std::make_shared< QueuedZoning >( m_territoryTypeId, m_pos, Util::getTimeMs(), m_rot );
|
||||
|
||||
return true;
|
||||
|
|
|
@ -67,6 +67,5 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire:
|
|||
player.setPos( terriPos->getTargetPosition() );
|
||||
player.setRot( terriPos->getTargetRotation() );
|
||||
|
||||
if( terriMgr->movePlayer( destinationZone, player.getAsPlayer() ) )
|
||||
player.sendZonePackets();
|
||||
terriMgr->movePlayer( destinationZone, player.getAsPlayer() );
|
||||
}
|
||||
|
|
|
@ -535,7 +535,7 @@ bool Sapphire::World::Manager::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire
|
|||
// mark character as zoning in progress
|
||||
pPlayer->setLoadingComplete( false );
|
||||
|
||||
if( pPlayer->getLastPing() != 0 )
|
||||
if( pPlayer->getLastPing() != 0 && pPlayer->getCurrentZone() )
|
||||
pPlayer->getCurrentZone()->removeActor( pPlayer );
|
||||
|
||||
pPlayer->setCurrentZone( pZone );
|
||||
|
@ -544,6 +544,8 @@ bool Sapphire::World::Manager::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire
|
|||
// map player to instanceId so it can be tracked.
|
||||
m_playerIdToInstanceMap[ pPlayer->getId() ] = pZone->getGuId();
|
||||
|
||||
pPlayer->sendZonePackets();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue