mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-30 08:07:46 +00:00
Finish zoning converted aswell
This commit is contained in:
parent
bfdf732579
commit
cf69e1876a
5 changed files with 34 additions and 56 deletions
|
@ -1581,55 +1581,6 @@ void Sapphire::Entity::Player::sendTitleList()
|
|||
queuePacket( titleListPacket );
|
||||
}
|
||||
|
||||
void Sapphire::Entity::Player::sendZoneInPackets( uint32_t param1, bool shouldSetStatus = false )
|
||||
{
|
||||
auto zoneInPacket = makeActorControlSelf( getId(), Appear, param1, 0, 0, 0 );
|
||||
auto SetStatusPacket = makeActorControl( getId(), SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) );
|
||||
|
||||
if( !getGmInvis() )
|
||||
sendToInRangeSet( zoneInPacket );
|
||||
|
||||
if( shouldSetStatus )
|
||||
sendToInRangeSet( SetStatusPacket, true );
|
||||
|
||||
queuePacket( zoneInPacket );
|
||||
|
||||
setZoningType( Common::ZoneingType::None );
|
||||
unsetStateFlag( PlayerStateFlag::BetweenAreas );
|
||||
}
|
||||
|
||||
void Sapphire::Entity::Player::finishZoning()
|
||||
{
|
||||
switch( getZoningType() )
|
||||
{
|
||||
case ZoneingType::None:
|
||||
sendZoneInPackets( 0x01 );
|
||||
break;
|
||||
|
||||
case ZoneingType::Teleport:
|
||||
sendZoneInPackets( 0x01 );
|
||||
break;
|
||||
|
||||
case ZoneingType::Return:
|
||||
case ZoneingType::ReturnDead:
|
||||
{
|
||||
if( getStatus() == Common::ActorStatus::Dead )
|
||||
{
|
||||
resetHp();
|
||||
resetMp();
|
||||
setStatus( Common::ActorStatus::Idle );
|
||||
sendZoneInPackets( 0x01, true );
|
||||
}
|
||||
else
|
||||
sendZoneInPackets( 0x01 );
|
||||
}
|
||||
break;
|
||||
|
||||
case ZoneingType::FadeIn:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId )
|
||||
{
|
||||
auto& exdData = Common::Service< Data::ExdData >::ref();
|
||||
|
|
|
@ -562,10 +562,6 @@ namespace Sapphire::Entity
|
|||
/*! set the loading complete bool */
|
||||
void setLoadingComplete( bool bComplete );
|
||||
|
||||
void sendZoneInPackets( uint32_t param1, bool pSetStatus );
|
||||
|
||||
void finishZoning();
|
||||
|
||||
void sendZonePackets();
|
||||
|
||||
Common::ZoneingType getZoningType() const;
|
||||
|
|
|
@ -61,6 +61,37 @@ void WarpMgr::requestMoveTerritory( Entity::Player& player, Common::WarpType war
|
|||
|
||||
void WarpMgr::finishWarp( Entity::Player& player )
|
||||
{
|
||||
WarpType warpType = WarpType::WARP_TYPE_NORMAL;
|
||||
auto it = m_entityIdToWarpInfoMap.find( player.getId() );
|
||||
if( it != m_entityIdToWarpInfoMap.end() )
|
||||
warpType = it->second.m_warpType;
|
||||
|
||||
switch( warpType )
|
||||
{
|
||||
case WarpType::WARP_TYPE_REISE:
|
||||
case WarpType::WARP_TYPE_HOME_POINT:
|
||||
{
|
||||
if( player.getStatus() == Common::ActorStatus::Dead )
|
||||
{
|
||||
player.resetHp();
|
||||
player.resetMp();
|
||||
player.setStatus( Common::ActorStatus::Idle );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto zoneInPacket = makeActorControlSelf( player.getId(), Appear, warpType, 0, 0, 0 );
|
||||
auto SetStatusPacket = makeActorControl( player.getId(), SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) );
|
||||
|
||||
if( !player.getGmInvis() )
|
||||
player.sendToInRangeSet( zoneInPacket );
|
||||
|
||||
player.sendToInRangeSet( SetStatusPacket, true );
|
||||
|
||||
auto& server = Common::Service< WorldServer >::ref();
|
||||
server.queueForPlayer( player.getCharacterId(), zoneInPacket );
|
||||
|
||||
player.unsetStateFlag( PlayerStateFlag::BetweenAreas );
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -648,8 +648,6 @@ void Sapphire::Network::GameConnection::gmCommandNameHandler( const Packets::FFX
|
|||
targetPlayer->resetHp();
|
||||
targetPlayer->resetMp();
|
||||
targetPlayer->setStatus( Common::ActorStatus::Idle );
|
||||
targetPlayer->sendZoneInPackets( 0x01, true );
|
||||
|
||||
|
||||
targetPlayer->sendToInRangeSet( makeActorControlSelf( player.getId(), Appear, 0x01, 0x01, 0, 113 ), true );
|
||||
targetPlayer->sendToInRangeSet( makeActorControl( player.getId(), SetStatus,
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
|
||||
#include "Territory/Territory.h"
|
||||
#include "Manager/HousingMgr.h"
|
||||
#include "Manager/WarpMgr.h"
|
||||
|
||||
#include "Network/GameConnection.h"
|
||||
|
||||
|
@ -587,7 +588,8 @@ void Sapphire::Network::GameConnection::commandHandler( const Packets::FFXIVARR_
|
|||
}
|
||||
case PacketCommand::FINISH_LOADING: // Finish zoning
|
||||
{
|
||||
player.finishZoning();
|
||||
auto& warpMgr = Service< WarpMgr >::ref();
|
||||
warpMgr.finishWarp( player );
|
||||
player.setLoadingComplete( true );
|
||||
if( player.isLogin() )
|
||||
player.setIsLogin( false );
|
||||
|
|
Loading…
Add table
Reference in a new issue