mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-28 07:07:45 +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()
|
int dumpSpawns()
|
||||||
{
|
{
|
||||||
|
|
||||||
Logger::init( "mob_parse" );
|
//Logger::init( "mob_parse" );
|
||||||
|
|
||||||
Logger::info( "Setting up EXD data" );
|
Logger::info( "Setting up EXD data" );
|
||||||
if( !g_exdData.init( datLocation ) )
|
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;
|
int spawngroups = 0;
|
||||||
for( auto entry : zoneToPacketList )
|
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 )
|
for( auto entry : zoneToPacketList )
|
||||||
{
|
{
|
||||||
|
@ -530,6 +531,11 @@ int dumpTemplates()
|
||||||
std::string name = delChar( nameStruct->singular, ' ' );
|
std::string name = delChar( nameStruct->singular, ' ' );
|
||||||
name = delChar( name, '\'' );
|
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`) "
|
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 ) + "\", "
|
"VALUES ( \"" + name +"_" + std::to_string( instance.bNPCBase ) + "\", "
|
||||||
+ std::to_string( instance.bNPCBase ) + ", "
|
+ std::to_string( instance.bNPCBase ) + ", "
|
||||||
|
@ -593,7 +599,7 @@ int dumpTemplates()
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
|
||||||
//dumpTemplates();
|
dumpTemplates();
|
||||||
dumpSpawns();
|
dumpSpawns();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -420,13 +420,13 @@ void Sapphire::Entity::Player::setZone( uint32_t zoneId )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
sendZonePackets();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId )
|
bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId )
|
||||||
{
|
{
|
||||||
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
|
||||||
m_onEnterEventDone = false;
|
m_onEnterEventDone = false;
|
||||||
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
|
|
||||||
auto instance = pTeriMgr->getInstanceZonePtr( instanceContentId );
|
auto instance = pTeriMgr->getInstanceZonePtr( instanceContentId );
|
||||||
if( !instance )
|
if( !instance )
|
||||||
return false;
|
return false;
|
||||||
|
@ -441,7 +441,6 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
|
|
||||||
auto currentZone = getCurrentZone();
|
auto currentZone = getCurrentZone();
|
||||||
|
|
||||||
// zoning within the same zone won't cause the prev data to be overwritten
|
// 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();
|
m_prevTerritoryId = getTerritoryId();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !pTeriMgr->movePlayer( instance, getAsPlayer() ) )
|
return pTeriMgr->movePlayer( instance, getAsPlayer() );
|
||||||
return false;
|
|
||||||
|
|
||||||
sendZonePackets();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::setInstance( ZonePtr instance, Common::FFXIVARR_POSITION3 pos )
|
bool Sapphire::Entity::Player::setInstance( ZonePtr instance, Common::FFXIVARR_POSITION3 pos )
|
||||||
{
|
{
|
||||||
|
m_onEnterEventDone = false;
|
||||||
if( !instance )
|
if( !instance )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_onEnterEventDone = false;
|
|
||||||
|
|
||||||
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
auto currentZone = getCurrentZone();
|
auto currentZone = getCurrentZone();
|
||||||
|
|
||||||
m_prevPos = m_pos;
|
// zoning within the same zone won't cause the prev data to be overwritten
|
||||||
m_prevRot = m_rot;
|
if( instance->getTerritoryTypeId() != m_territoryTypeId )
|
||||||
m_prevTerritoryTypeId = currentZone->getTerritoryTypeId();
|
{
|
||||||
m_prevTerritoryId = getTerritoryId();
|
m_prevPos = m_pos;
|
||||||
|
m_prevRot = m_rot;
|
||||||
|
m_prevTerritoryTypeId = currentZone->getTerritoryTypeId();
|
||||||
|
m_prevTerritoryId = getTerritoryId();
|
||||||
|
}
|
||||||
|
|
||||||
if( pTeriMgr->movePlayer( instance, getAsPlayer() ) )
|
if( pTeriMgr->movePlayer( instance, getAsPlayer() ) )
|
||||||
{
|
{
|
||||||
m_pos = pos;
|
m_pos = pos;
|
||||||
|
|
||||||
sendZonePackets();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -512,8 +506,6 @@ bool Sapphire::Entity::Player::exitInstance()
|
||||||
m_territoryTypeId = m_prevTerritoryTypeId;
|
m_territoryTypeId = m_prevTerritoryTypeId;
|
||||||
m_territoryId = m_prevTerritoryId;
|
m_territoryId = m_prevTerritoryId;
|
||||||
|
|
||||||
sendZonePackets();
|
|
||||||
|
|
||||||
//m_queuedZoneing = std::make_shared< QueuedZoning >( m_territoryTypeId, m_pos, Util::getTimeMs(), m_rot );
|
//m_queuedZoneing = std::make_shared< QueuedZoning >( m_territoryTypeId, m_pos, Util::getTimeMs(), m_rot );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -67,6 +67,5 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire:
|
||||||
player.setPos( terriPos->getTargetPosition() );
|
player.setPos( terriPos->getTargetPosition() );
|
||||||
player.setRot( terriPos->getTargetRotation() );
|
player.setRot( terriPos->getTargetRotation() );
|
||||||
|
|
||||||
if( terriMgr->movePlayer( destinationZone, player.getAsPlayer() ) )
|
terriMgr->movePlayer( destinationZone, player.getAsPlayer() );
|
||||||
player.sendZonePackets();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -535,7 +535,7 @@ bool Sapphire::World::Manager::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire
|
||||||
// mark character as zoning in progress
|
// mark character as zoning in progress
|
||||||
pPlayer->setLoadingComplete( false );
|
pPlayer->setLoadingComplete( false );
|
||||||
|
|
||||||
if( pPlayer->getLastPing() != 0 )
|
if( pPlayer->getLastPing() != 0 && pPlayer->getCurrentZone() )
|
||||||
pPlayer->getCurrentZone()->removeActor( pPlayer );
|
pPlayer->getCurrentZone()->removeActor( pPlayer );
|
||||||
|
|
||||||
pPlayer->setCurrentZone( pZone );
|
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.
|
// map player to instanceId so it can be tracked.
|
||||||
m_playerIdToInstanceMap[ pPlayer->getId() ] = pZone->getGuId();
|
m_playerIdToInstanceMap[ pPlayer->getId() ] = pZone->getGuId();
|
||||||
|
|
||||||
|
pPlayer->sendZonePackets();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue