mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 14:37:44 +00:00
More fw cleanup
This commit is contained in:
parent
101f284003
commit
199d7a6ec6
14 changed files with 79 additions and 98 deletions
|
@ -19,16 +19,14 @@ using namespace Sapphire::Network::Packets;
|
||||||
using namespace Sapphire::Network::Packets::Server;
|
using namespace Sapphire::Network::Packets::Server;
|
||||||
using namespace Sapphire::Network::ActorControl;
|
using namespace Sapphire::Network::ActorControl;
|
||||||
|
|
||||||
extern Sapphire::Framework g_fw;
|
|
||||||
|
|
||||||
Sapphire::Action::ActionTeleport::ActionTeleport()
|
Sapphire::Action::ActionTeleport::ActionTeleport()
|
||||||
{
|
{
|
||||||
m_handleActionType = HandleActionType::Event;
|
m_handleActionType = HandleActionType::Event;
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Action::ActionTeleport::ActionTeleport( Entity::CharaPtr pActor, uint16_t targetZone, uint16_t cost )
|
Sapphire::Action::ActionTeleport::ActionTeleport( Entity::CharaPtr pActor, uint16_t targetZone, uint16_t cost, FrameworkPtr pFw )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = pFw->get< Data::ExdDataGenerated >();
|
||||||
m_startTime = 0;
|
m_startTime = 0;
|
||||||
m_id = 5;
|
m_id = 5;
|
||||||
m_handleActionType = HandleActionType::Teleport;
|
m_handleActionType = HandleActionType::Teleport;
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace Sapphire::Action
|
||||||
|
|
||||||
~ActionTeleport();
|
~ActionTeleport();
|
||||||
|
|
||||||
ActionTeleport( Entity::CharaPtr pActor, uint16_t action, uint16_t cost );
|
ActionTeleport( Entity::CharaPtr pActor, uint16_t action, uint16_t cost, FrameworkPtr pFw );
|
||||||
|
|
||||||
void onStart() override;
|
void onStart() override;
|
||||||
|
|
||||||
|
|
|
@ -27,10 +27,6 @@
|
||||||
|
|
||||||
#include "Math/CalcBattle.h"
|
#include "Math/CalcBattle.h"
|
||||||
|
|
||||||
#include "Framework.h"
|
|
||||||
|
|
||||||
extern Sapphire::Framework g_fw;
|
|
||||||
|
|
||||||
using namespace Sapphire::Common;
|
using namespace Sapphire::Common;
|
||||||
using namespace Sapphire::Network::Packets;
|
using namespace Sapphire::Network::Packets;
|
||||||
//using namespace Sapphire::Network::Packets::Server;
|
//using namespace Sapphire::Network::Packets::Server;
|
||||||
|
@ -297,16 +293,10 @@ Send a packet to all players in range, potentially to self if set and is player
|
||||||
*/
|
*/
|
||||||
void Sapphire::Entity::Actor::sendToInRangeSet( Network::Packets::FFXIVPacketBasePtr pPacket, bool bToSelf )
|
void Sapphire::Entity::Actor::sendToInRangeSet( Network::Packets::FFXIVPacketBasePtr pPacket, bool bToSelf )
|
||||||
{
|
{
|
||||||
auto pServerZone = g_fw.get< World::ServerMgr >();
|
|
||||||
if( bToSelf && isPlayer() )
|
if( bToSelf && isPlayer() )
|
||||||
{
|
{
|
||||||
auto pPlayer = getAsPlayer();
|
auto pPlayer = getAsPlayer();
|
||||||
|
pPlayer->queuePacket( pPacket );
|
||||||
auto pSession = pServerZone->getSession( pPlayer->getId() );
|
|
||||||
|
|
||||||
// it might be that the player DC'd in which case the session would be invalid
|
|
||||||
if( pSession )
|
|
||||||
pSession->getZoneConnection()->queueOutPacket( pPacket );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_inRangePlayers.empty() )
|
if( m_inRangePlayers.empty() )
|
||||||
|
|
|
@ -43,8 +43,6 @@
|
||||||
#include "ServerMgr.h"
|
#include "ServerMgr.h"
|
||||||
#include "Framework.h"
|
#include "Framework.h"
|
||||||
|
|
||||||
extern Sapphire::Framework g_fw;
|
|
||||||
|
|
||||||
using namespace Sapphire::Common;
|
using namespace Sapphire::Common;
|
||||||
using namespace Sapphire::Network::Packets;
|
using namespace Sapphire::Network::Packets;
|
||||||
using namespace Sapphire::Network::Packets::Server;
|
using namespace Sapphire::Network::Packets::Server;
|
||||||
|
@ -56,7 +54,7 @@ using InvSlotPair = std::pair< uint16_t, int8_t >;
|
||||||
using InvSlotPairVec = std::vector< InvSlotPair >;
|
using InvSlotPairVec = std::vector< InvSlotPair >;
|
||||||
|
|
||||||
// player constructor
|
// player constructor
|
||||||
Sapphire::Entity::Player::Player() :
|
Sapphire::Entity::Player::Player( FrameworkPtr pFw ) :
|
||||||
Chara( ObjKind::Player ),
|
Chara( ObjKind::Player ),
|
||||||
m_lastWrite( 0 ),
|
m_lastWrite( 0 ),
|
||||||
m_lastPing( 0 ),
|
m_lastPing( 0 ),
|
||||||
|
@ -77,7 +75,8 @@ Sapphire::Entity::Player::Player() :
|
||||||
m_mount( 0 ),
|
m_mount( 0 ),
|
||||||
m_emoteMode( 0 ),
|
m_emoteMode( 0 ),
|
||||||
m_directorInitialized( false ),
|
m_directorInitialized( false ),
|
||||||
m_onEnterEventDone( false )
|
m_onEnterEventDone( false ),
|
||||||
|
m_pFw( pFw )
|
||||||
{
|
{
|
||||||
m_id = 0;
|
m_id = 0;
|
||||||
m_currentStance = Stance::Passive;
|
m_currentStance = Stance::Passive;
|
||||||
|
@ -109,7 +108,7 @@ Sapphire::Entity::Player::~Player()
|
||||||
|
|
||||||
void Sapphire::Entity::Player::injectPacket( const std::string& path )
|
void Sapphire::Entity::Player::injectPacket( const std::string& path )
|
||||||
{
|
{
|
||||||
auto pServerZone = g_fw.get< World::ServerMgr >();
|
auto pServerZone = m_pFw->get< World::ServerMgr >();
|
||||||
auto session = pServerZone->getSession( getId() );
|
auto session = pServerZone->getSession( getId() );
|
||||||
if( session )
|
if( session )
|
||||||
session->getZoneConnection()->injectPacket( path, *this );
|
session->getZoneConnection()->injectPacket( path, *this );
|
||||||
|
@ -195,7 +194,7 @@ bool Sapphire::Entity::Player::isMarkedForRemoval() const
|
||||||
|
|
||||||
Sapphire::Common::OnlineStatus Sapphire::Entity::Player::getOnlineStatus() const
|
Sapphire::Common::OnlineStatus Sapphire::Entity::Player::getOnlineStatus() const
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
if( !pExdData )
|
if( !pExdData )
|
||||||
return OnlineStatus::Online;
|
return OnlineStatus::Online;
|
||||||
|
|
||||||
|
@ -250,7 +249,7 @@ void Sapphire::Entity::Player::calculateStats()
|
||||||
uint8_t level = getLevel();
|
uint8_t level = getLevel();
|
||||||
uint8_t job = static_cast< uint8_t >( getClass() );
|
uint8_t job = static_cast< uint8_t >( getClass() );
|
||||||
|
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
|
|
||||||
auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( job );
|
auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( job );
|
||||||
auto tribeInfo = pExdData->get< Sapphire::Data::Tribe >( tribe );
|
auto tribeInfo = pExdData->get< Sapphire::Data::Tribe >( tribe );
|
||||||
|
@ -339,8 +338,8 @@ void Sapphire::Entity::Player::sendStats()
|
||||||
|
|
||||||
void Sapphire::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type )
|
void Sapphire::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
auto pTeriMgr = g_fw.get< TerritoryMgr >();
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
|
|
||||||
auto data = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId );
|
auto data = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId );
|
||||||
|
|
||||||
|
@ -407,7 +406,7 @@ void Sapphire::Entity::Player::returnToHomepoint()
|
||||||
|
|
||||||
void Sapphire::Entity::Player::setZone( uint32_t zoneId )
|
void Sapphire::Entity::Player::setZone( uint32_t zoneId )
|
||||||
{
|
{
|
||||||
auto pTeriMgr = g_fw.get< TerritoryMgr >();
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
m_onEnterEventDone = false;
|
m_onEnterEventDone = false;
|
||||||
if( !pTeriMgr->movePlayer( zoneId, getAsPlayer() ) )
|
if( !pTeriMgr->movePlayer( zoneId, getAsPlayer() ) )
|
||||||
{
|
{
|
||||||
|
@ -425,7 +424,7 @@ void Sapphire::Entity::Player::setZone( uint32_t zoneId )
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId )
|
bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId )
|
||||||
{
|
{
|
||||||
auto pTeriMgr = g_fw.get< TerritoryMgr >();
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
m_onEnterEventDone = false;
|
m_onEnterEventDone = false;
|
||||||
auto instance = pTeriMgr->getInstanceZonePtr( instanceContentId );
|
auto instance = pTeriMgr->getInstanceZonePtr( instanceContentId );
|
||||||
if( !instance )
|
if( !instance )
|
||||||
|
@ -440,7 +439,7 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance )
|
||||||
if( !instance )
|
if( !instance )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
auto pTeriMgr = g_fw.get< TerritoryMgr >();
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
|
|
||||||
auto currentZone = getCurrentZone();
|
auto currentZone = getCurrentZone();
|
||||||
|
|
||||||
|
@ -463,7 +462,7 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance )
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::exitInstance()
|
bool Sapphire::Entity::Player::exitInstance()
|
||||||
{
|
{
|
||||||
auto pTeriMgr = g_fw.get< TerritoryMgr >();
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
|
|
||||||
// check if housing zone
|
// check if housing zone
|
||||||
if( pTeriMgr->isHousingTerritory( m_prevTerritoryTypeId ) )
|
if( pTeriMgr->isHousingTerritory( m_prevTerritoryTypeId ) )
|
||||||
|
@ -548,7 +547,7 @@ void Sapphire::Entity::Player::discover( int16_t map_id, int16_t sub_id )
|
||||||
|
|
||||||
// section to starts at 320 - 4 bytes long
|
// section to starts at 320 - 4 bytes long
|
||||||
|
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
|
|
||||||
int32_t offset = 4;
|
int32_t offset = 4;
|
||||||
|
|
||||||
|
@ -640,7 +639,7 @@ bool Sapphire::Entity::Player::isActionLearned( uint8_t actionId ) const
|
||||||
|
|
||||||
void Sapphire::Entity::Player::gainExp( uint32_t amount )
|
void Sapphire::Entity::Player::gainExp( uint32_t amount )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
|
|
||||||
uint32_t currentExp = getExp();
|
uint32_t currentExp = getExp();
|
||||||
|
|
||||||
|
@ -721,14 +720,14 @@ void Sapphire::Entity::Player::sendStatusUpdate( bool toSelf )
|
||||||
|
|
||||||
uint8_t Sapphire::Entity::Player::getLevel() const
|
uint8_t Sapphire::Entity::Player::getLevel() const
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
|
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
|
||||||
return static_cast< uint8_t >( m_classArray[ classJobIndex ] );
|
return static_cast< uint8_t >( m_classArray[ classJobIndex ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t Sapphire::Entity::Player::getLevelForClass( Common::ClassJob pClass ) const
|
uint8_t Sapphire::Entity::Player::getLevelForClass( Common::ClassJob pClass ) const
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pClass ) )->expArrayIndex;
|
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pClass ) )->expArrayIndex;
|
||||||
return static_cast< uint8_t >( m_classArray[ classJobIndex ] );
|
return static_cast< uint8_t >( m_classArray[ classJobIndex ] );
|
||||||
}
|
}
|
||||||
|
@ -741,14 +740,14 @@ bool Sapphire::Entity::Player::isClassJobUnlocked( Common::ClassJob classJob ) c
|
||||||
|
|
||||||
uint32_t Sapphire::Entity::Player::getExp() const
|
uint32_t Sapphire::Entity::Player::getExp() const
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
|
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
|
||||||
return m_expArray[ classJobIndex ];
|
return m_expArray[ classJobIndex ];
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sapphire::Entity::Player::setExp( uint32_t amount )
|
void Sapphire::Entity::Player::setExp( uint32_t amount )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
|
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
|
||||||
m_expArray[ classJobIndex ] = amount;
|
m_expArray[ classJobIndex ] = amount;
|
||||||
}
|
}
|
||||||
|
@ -790,14 +789,14 @@ void Sapphire::Entity::Player::setClassJob( Common::ClassJob classJob )
|
||||||
|
|
||||||
void Sapphire::Entity::Player::setLevel( uint8_t level )
|
void Sapphire::Entity::Player::setLevel( uint8_t level )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
|
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex;
|
||||||
m_classArray[ classJobIndex ] = level;
|
m_classArray[ classJobIndex ] = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sapphire::Entity::Player::setLevelForClass( uint8_t level, Common::ClassJob classjob )
|
void Sapphire::Entity::Player::setLevelForClass( uint8_t level, Common::ClassJob classjob )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( classjob ) )->expArrayIndex;
|
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( classjob ) )->expArrayIndex;
|
||||||
|
|
||||||
if( m_classArray[ classJobIndex ] == 0 )
|
if( m_classArray[ classJobIndex ] == 0 )
|
||||||
|
@ -942,7 +941,7 @@ const uint8_t* Sapphire::Entity::Player::getStateFlags() const
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::actionHasCastTime( uint32_t actionId ) //TODO: Add logic for special cases
|
bool Sapphire::Entity::Player::actionHasCastTime( uint32_t actionId ) //TODO: Add logic for special cases
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
auto actionInfoPtr = pExdData->get< Sapphire::Data::Action >( actionId );
|
auto actionInfoPtr = pExdData->get< Sapphire::Data::Action >( actionId );
|
||||||
if( actionInfoPtr->preservesCombo )
|
if( actionInfoPtr->preservesCombo )
|
||||||
return false;
|
return false;
|
||||||
|
@ -1103,7 +1102,7 @@ void Sapphire::Entity::Player::update( int64_t currTime )
|
||||||
|
|
||||||
void Sapphire::Entity::Player::onMobKill( uint16_t nameId )
|
void Sapphire::Entity::Player::onMobKill( uint16_t nameId )
|
||||||
{
|
{
|
||||||
auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >();
|
auto pScriptMgr = m_pFw->get< Scripting::ScriptMgr >();
|
||||||
pScriptMgr->onMobKill( *getAsPlayer(), nameId );
|
pScriptMgr->onMobKill( *getAsPlayer(), nameId );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1204,7 +1203,7 @@ const uint8_t* Sapphire::Entity::Player::getGcRankArray() const
|
||||||
|
|
||||||
void Sapphire::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPacket )
|
void Sapphire::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPacket )
|
||||||
{
|
{
|
||||||
auto pServerZone = g_fw.get< World::ServerMgr >();
|
auto pServerZone = m_pFw->get< World::ServerMgr >();
|
||||||
auto pSession = pServerZone->getSession( m_id );
|
auto pSession = pServerZone->getSession( m_id );
|
||||||
|
|
||||||
if( !pSession )
|
if( !pSession )
|
||||||
|
@ -1219,7 +1218,7 @@ void Sapphire::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr
|
||||||
|
|
||||||
void Sapphire::Entity::Player::queueChatPacket( Network::Packets::FFXIVPacketBasePtr pPacket )
|
void Sapphire::Entity::Player::queueChatPacket( Network::Packets::FFXIVPacketBasePtr pPacket )
|
||||||
{
|
{
|
||||||
auto pServerZone = g_fw.get< World::ServerMgr >();
|
auto pServerZone = m_pFw->get< World::ServerMgr >();
|
||||||
auto pSession = pServerZone->getSession( m_id );
|
auto pSession = pServerZone->getSession( m_id );
|
||||||
|
|
||||||
if( !pSession )
|
if( !pSession )
|
||||||
|
@ -1555,7 +1554,7 @@ void Sapphire::Entity::Player::sendZonePackets()
|
||||||
if( isLogin() )
|
if( isLogin() )
|
||||||
{
|
{
|
||||||
//Update player map in servermgr - in case player name has been changed
|
//Update player map in servermgr - in case player name has been changed
|
||||||
auto pServerMgr = g_fw.get< World::ServerMgr >();
|
auto pServerMgr = m_pFw->get< World::ServerMgr >();
|
||||||
pServerMgr->updatePlayerName( getId(), getName() );
|
pServerMgr->updatePlayerName( getId(), getName() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1603,7 +1602,7 @@ void Sapphire::Entity::Player::sendZonePackets()
|
||||||
sendItemLevel();
|
sendItemLevel();
|
||||||
}
|
}
|
||||||
|
|
||||||
auto pHousingMgr = g_fw.get< HousingMgr >();
|
auto pHousingMgr = m_pFw->get< HousingMgr >();
|
||||||
if( Sapphire::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) )
|
if( Sapphire::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) )
|
||||||
{
|
{
|
||||||
uint32_t state = 0;
|
uint32_t state = 0;
|
||||||
|
@ -1731,9 +1730,9 @@ void Sapphire::Entity::Player::emoteInterrupt()
|
||||||
sendToInRangeSet( makeActorControl142( getId(), ActorControlType::EmoteInterrupt ) );
|
sendToInRangeSet( makeActorControl142( getId(), ActorControlType::EmoteInterrupt ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId )
|
void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId, FrameworkPtr pFw )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = pFw->get< Data::ExdDataGenerated >();
|
||||||
// TODO: only register this action if enough gil is in possession
|
// TODO: only register this action if enough gil is in possession
|
||||||
auto targetAetheryte = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId );
|
auto targetAetheryte = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId );
|
||||||
|
|
||||||
|
@ -1757,7 +1756,7 @@ void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId )
|
||||||
if( !insufficientGil )
|
if( !insufficientGil )
|
||||||
{
|
{
|
||||||
Action::ActionPtr pActionTeleport;
|
Action::ActionPtr pActionTeleport;
|
||||||
pActionTeleport = Action::make_ActionTeleport( getAsPlayer(), aetheryteId, cost );
|
pActionTeleport = Action::make_ActionTeleport( getAsPlayer(), aetheryteId, cost, pFw );
|
||||||
setCurrentAction( pActionTeleport );
|
setCurrentAction( pActionTeleport );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ namespace Sapphire::Entity
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/*! Contructor */
|
/*! Contructor */
|
||||||
Player();
|
Player( FrameworkPtr pFw );
|
||||||
|
|
||||||
/*! Destructor */
|
/*! Destructor */
|
||||||
~Player();
|
~Player();
|
||||||
|
@ -523,7 +523,7 @@ namespace Sapphire::Entity
|
||||||
void teleport( uint16_t aetheryteId, uint8_t type = 1 );
|
void teleport( uint16_t aetheryteId, uint8_t type = 1 );
|
||||||
|
|
||||||
/*! query teleport of a specified type */
|
/*! query teleport of a specified type */
|
||||||
void teleportQuery( uint16_t aetheryteId );
|
void teleportQuery( uint16_t aetheryteId, FrameworkPtr pFw );
|
||||||
|
|
||||||
/*! prepares zoning / fades out the screen */
|
/*! prepares zoning / fades out the screen */
|
||||||
void prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadoutTime = 0, uint16_t animation = 0 );
|
void prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadoutTime = 0, uint16_t animation = 0 );
|
||||||
|
@ -1047,6 +1047,9 @@ namespace Sapphire::Entity
|
||||||
|
|
||||||
Util::SpawnIndexAllocator< uint8_t > m_objSpawnIndexAllocator;
|
Util::SpawnIndexAllocator< uint8_t > m_objSpawnIndexAllocator;
|
||||||
Util::SpawnIndexAllocator< uint8_t > m_actorSpawnIndexAllocator;
|
Util::SpawnIndexAllocator< uint8_t > m_actorSpawnIndexAllocator;
|
||||||
|
|
||||||
|
// todo: temporary store ptr to framework
|
||||||
|
FrameworkPtr m_pFw;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
#include "ServerMgr.h"
|
#include "ServerMgr.h"
|
||||||
#include "Framework.h"
|
#include "Framework.h"
|
||||||
|
|
||||||
extern Sapphire::Framework g_fw;
|
|
||||||
|
|
||||||
using namespace Sapphire::Common;
|
using namespace Sapphire::Common;
|
||||||
using namespace Sapphire::Network::Packets;
|
using namespace Sapphire::Network::Packets;
|
||||||
using namespace Sapphire::Network::Packets::Server;
|
using namespace Sapphire::Network::Packets::Server;
|
||||||
|
@ -328,7 +326,7 @@ void Sapphire::Entity::Player::eventItemActionStart( uint32_t eventId,
|
||||||
|
|
||||||
void Sapphire::Entity::Player::onLogin()
|
void Sapphire::Entity::Player::onLogin()
|
||||||
{
|
{
|
||||||
auto pConfig = g_fw.get< ConfigMgr >();
|
auto pConfig = m_pFw->get< ConfigMgr >();
|
||||||
auto motd = pConfig->getValue< std::string >( "General", "MotD", "" );
|
auto motd = pConfig->getValue< std::string >( "General", "MotD", "" );
|
||||||
|
|
||||||
std::istringstream ss( motd );
|
std::istringstream ss( motd );
|
||||||
|
|
|
@ -33,8 +33,6 @@
|
||||||
#include "Framework.h"
|
#include "Framework.h"
|
||||||
#include <Network/CommonActorControl.h>
|
#include <Network/CommonActorControl.h>
|
||||||
|
|
||||||
extern Sapphire::Framework g_fw;
|
|
||||||
|
|
||||||
using namespace Sapphire::Common;
|
using namespace Sapphire::Common;
|
||||||
using namespace Sapphire::Network::Packets;
|
using namespace Sapphire::Network::Packets;
|
||||||
using namespace Sapphire::Network::Packets::Server;
|
using namespace Sapphire::Network::Packets::Server;
|
||||||
|
@ -116,7 +114,7 @@ void Sapphire::Entity::Player::sendItemLevel()
|
||||||
|
|
||||||
void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass )
|
void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass )
|
||||||
{
|
{
|
||||||
auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >();
|
auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >();
|
||||||
if( !exdData )
|
if( !exdData )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -137,7 +135,7 @@ void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass )
|
||||||
|
|
||||||
void Sapphire::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob )
|
void Sapphire::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob )
|
||||||
{
|
{
|
||||||
auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >();
|
auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >();
|
||||||
if ( !exdData )
|
if ( !exdData )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -248,7 +246,7 @@ void Sapphire::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, Ite
|
||||||
|
|
||||||
void Sapphire::Entity::Player::unequipSoulCrystal( ItemPtr pItem )
|
void Sapphire::Entity::Player::unequipSoulCrystal( ItemPtr pItem )
|
||||||
{
|
{
|
||||||
auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >();
|
auto exdData = m_pFw->get< Sapphire::Data::ExdDataGenerated >();
|
||||||
if ( !exdData )
|
if ( !exdData )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -358,7 +356,7 @@ void Sapphire::Entity::Player::removeCrystal( Common::CrystalType type, uint32_t
|
||||||
|
|
||||||
void Sapphire::Entity::Player::sendInventory()
|
void Sapphire::Entity::Player::sendInventory()
|
||||||
{
|
{
|
||||||
auto pInvMgr = g_fw.get< World::Manager::InventoryMgr >();
|
auto pInvMgr = m_pFw->get< World::Manager::InventoryMgr >();
|
||||||
|
|
||||||
for( auto it = m_storageMap.begin(); it != m_storageMap.end(); ++it )
|
for( auto it = m_storageMap.begin(); it != m_storageMap.end(); ++it )
|
||||||
{
|
{
|
||||||
|
@ -426,7 +424,7 @@ uint32_t Sapphire::Entity::Player::getCrystal( CrystalType type )
|
||||||
|
|
||||||
void Sapphire::Entity::Player::writeInventory( InventoryType type )
|
void Sapphire::Entity::Player::writeInventory( InventoryType type )
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
|
|
||||||
auto storage = m_storageMap[ type ];
|
auto storage = m_storageMap[ type ];
|
||||||
|
|
||||||
|
@ -455,7 +453,7 @@ void Sapphire::Entity::Player::writeInventory( InventoryType type )
|
||||||
|
|
||||||
void Sapphire::Entity::Player::writeItem( Sapphire::ItemPtr pItem ) const
|
void Sapphire::Entity::Player::writeItem( Sapphire::ItemPtr pItem ) const
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_UP );
|
auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_UP );
|
||||||
|
|
||||||
// todo: add more fields
|
// todo: add more fields
|
||||||
|
@ -470,7 +468,7 @@ void Sapphire::Entity::Player::writeItem( Sapphire::ItemPtr pItem ) const
|
||||||
|
|
||||||
void Sapphire::Entity::Player::deleteItemDb( Sapphire::ItemPtr item ) const
|
void Sapphire::Entity::Player::deleteItemDb( Sapphire::ItemPtr item ) const
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_DELETE );
|
auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_DELETE );
|
||||||
|
|
||||||
stmt->setInt64( 1, item->getUId() );
|
stmt->setInt64( 1, item->getUId() );
|
||||||
|
@ -488,8 +486,8 @@ bool Sapphire::Entity::Player::isObtainable( uint32_t catalogId, uint8_t quantit
|
||||||
|
|
||||||
Sapphire::ItemPtr Sapphire::Entity::Player::addItem( uint32_t catalogId, uint32_t quantity, bool isHq, bool silent )
|
Sapphire::ItemPtr Sapphire::Entity::Player::addItem( uint32_t catalogId, uint32_t quantity, bool isHq, bool silent )
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
|
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
|
||||||
|
|
||||||
// if item data doesn't exist or it's a blank field
|
// if item data doesn't exist or it's a blank field
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
#include "Session.h"
|
#include "Session.h"
|
||||||
#include "Framework.h"
|
#include "Framework.h"
|
||||||
|
|
||||||
extern Sapphire::Framework g_fw;
|
|
||||||
|
|
||||||
using namespace Sapphire::Common;
|
using namespace Sapphire::Common;
|
||||||
using namespace Sapphire::Network::Packets;
|
using namespace Sapphire::Network::Packets;
|
||||||
using namespace Sapphire::Network::Packets::Server;
|
using namespace Sapphire::Network::Packets::Server;
|
||||||
|
@ -1030,7 +1028,7 @@ void Sapphire::Entity::Player::removeQuestsCompleted( uint32_t questId )
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t optionalChoice )
|
bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t optionalChoice )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
uint32_t playerLevel = getLevel();
|
uint32_t playerLevel = getLevel();
|
||||||
auto questInfo = pExdData->get< Sapphire::Data::Quest >( questId );
|
auto questInfo = pExdData->get< Sapphire::Data::Quest >( questId );
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,6 @@
|
||||||
#include "ServerMgr.h"
|
#include "ServerMgr.h"
|
||||||
#include "Framework.h"
|
#include "Framework.h"
|
||||||
|
|
||||||
extern Sapphire::Framework g_fw;
|
|
||||||
|
|
||||||
using namespace Sapphire::Common;
|
using namespace Sapphire::Common;
|
||||||
using namespace Sapphire::Network::Packets;
|
using namespace Sapphire::Network::Packets;
|
||||||
using namespace Sapphire::Network::Packets::Server;
|
using namespace Sapphire::Network::Packets::Server;
|
||||||
|
@ -31,8 +29,8 @@ using namespace Sapphire::World::Manager;
|
||||||
// load player from the db
|
// load player from the db
|
||||||
bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession )
|
bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession )
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto pTeriMgr = g_fw.get< TerritoryMgr >();
|
auto pTeriMgr = m_pFw->get< TerritoryMgr >();
|
||||||
|
|
||||||
const std::string char_id_str = std::to_string( charId );
|
const std::string char_id_str = std::to_string( charId );
|
||||||
|
|
||||||
|
@ -248,7 +246,7 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::loadActiveQuests()
|
bool Sapphire::Entity::Player::loadActiveQuests()
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_QUEST );
|
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_QUEST );
|
||||||
|
|
||||||
stmt->setUInt( 1, m_id );
|
stmt->setUInt( 1, m_id );
|
||||||
|
@ -284,7 +282,7 @@ bool Sapphire::Entity::Player::loadActiveQuests()
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::loadClassData()
|
bool Sapphire::Entity::Player::loadClassData()
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
// ClassIdx, Exp, Lvl
|
// ClassIdx, Exp, Lvl
|
||||||
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_CLASS_SEL );
|
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_CLASS_SEL );
|
||||||
stmt->setUInt( 1, m_id );
|
stmt->setUInt( 1, m_id );
|
||||||
|
@ -305,7 +303,7 @@ bool Sapphire::Entity::Player::loadClassData()
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::loadSearchInfo()
|
bool Sapphire::Entity::Player::loadSearchInfo()
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_SEARCHINFO );
|
auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_SEARCHINFO );
|
||||||
stmt->setUInt( 1, m_id );
|
stmt->setUInt( 1, m_id );
|
||||||
auto res = pDb->query( stmt );
|
auto res = pDb->query( stmt );
|
||||||
|
@ -327,7 +325,7 @@ bool Sapphire::Entity::Player::loadSearchInfo()
|
||||||
|
|
||||||
void Sapphire::Entity::Player::updateSql()
|
void Sapphire::Entity::Player::updateSql()
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
/*"Hp 1, Mp 2, Tp 3, Gp 4, Mode 5, Mount 6, InvincibleGM 7, Voice 8, "
|
/*"Hp 1, Mp 2, Tp 3, Gp 4, Mode 5, Mount 6, InvincibleGM 7, Voice 8, "
|
||||||
"Customize 9, ModelMainWeapon 10, ModelSubWeapon 11, ModelSystemWeapon 12, "
|
"Customize 9, ModelMainWeapon 10, ModelSubWeapon 11, ModelSystemWeapon 12, "
|
||||||
"ModelEquip 13, EmoteModeType 14, Language 15, IsNewGame 16, IsNewAdventurer 17, "
|
"ModelEquip 13, EmoteModeType 14, Language 15, IsNewGame 16, IsNewAdventurer 17, "
|
||||||
|
@ -469,8 +467,8 @@ void Sapphire::Entity::Player::updateSql()
|
||||||
|
|
||||||
void Sapphire::Entity::Player::updateDbClass() const
|
void Sapphire::Entity::Player::updateDbClass() const
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast<uint8_t>( getClass() ) )->expArrayIndex;
|
uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast<uint8_t>( getClass() ) )->expArrayIndex;
|
||||||
|
|
||||||
//Exp = ?, Lvl = ? WHERE CharacterId = ? AND ClassIdx = ?
|
//Exp = ?, Lvl = ? WHERE CharacterId = ? AND ClassIdx = ?
|
||||||
|
@ -484,7 +482,7 @@ void Sapphire::Entity::Player::updateDbClass() const
|
||||||
|
|
||||||
void Sapphire::Entity::Player::insertDbClass( const uint8_t classJobIndex ) const
|
void Sapphire::Entity::Player::insertDbClass( const uint8_t classJobIndex ) const
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto stmtClass = pDb->getPreparedStatement( Db::CHARA_CLASS_INS );
|
auto stmtClass = pDb->getPreparedStatement( Db::CHARA_CLASS_INS );
|
||||||
stmtClass->setInt( 1, getId() );
|
stmtClass->setInt( 1, getId() );
|
||||||
stmtClass->setInt( 2, classJobIndex );
|
stmtClass->setInt( 2, classJobIndex );
|
||||||
|
@ -495,7 +493,7 @@ void Sapphire::Entity::Player::insertDbClass( const uint8_t classJobIndex ) cons
|
||||||
|
|
||||||
void Sapphire::Entity::Player::updateDbSearchInfo() const
|
void Sapphire::Entity::Player::updateDbSearchInfo() const
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto stmtS = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTCLASS );
|
auto stmtS = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTCLASS );
|
||||||
stmtS->setInt( 1, m_searchSelectClass );
|
stmtS->setInt( 1, m_searchSelectClass );
|
||||||
stmtS->setInt( 2, m_id );
|
stmtS->setInt( 2, m_id );
|
||||||
|
@ -514,7 +512,7 @@ void Sapphire::Entity::Player::updateDbSearchInfo() const
|
||||||
|
|
||||||
void Sapphire::Entity::Player::updateDbAllQuests() const
|
void Sapphire::Entity::Player::updateDbAllQuests() const
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
for( int32_t i = 0; i < 30; i++ )
|
for( int32_t i = 0; i < 30; i++ )
|
||||||
{
|
{
|
||||||
if( !m_activeQuests[ i ] )
|
if( !m_activeQuests[ i ] )
|
||||||
|
@ -539,7 +537,7 @@ void Sapphire::Entity::Player::updateDbAllQuests() const
|
||||||
|
|
||||||
void Sapphire::Entity::Player::deleteQuest( uint16_t questId ) const
|
void Sapphire::Entity::Player::deleteQuest( uint16_t questId ) const
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_DEL );
|
auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_DEL );
|
||||||
stmt->setInt( 1, m_id );
|
stmt->setInt( 1, m_id );
|
||||||
stmt->setInt( 2, questId );
|
stmt->setInt( 2, questId );
|
||||||
|
@ -548,7 +546,7 @@ void Sapphire::Entity::Player::deleteQuest( uint16_t questId ) const
|
||||||
|
|
||||||
void Sapphire::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uint8_t seq ) const
|
void Sapphire::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uint8_t seq ) const
|
||||||
{
|
{
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_INS );
|
auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_INS );
|
||||||
stmt->setInt( 1, m_id );
|
stmt->setInt( 1, m_id );
|
||||||
stmt->setInt( 2, index );
|
stmt->setInt( 2, index );
|
||||||
|
@ -567,10 +565,10 @@ void Sapphire::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uin
|
||||||
|
|
||||||
Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint32_t quantity )
|
Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint32_t quantity )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = m_pFw->get< Data::ExdDataGenerated >();
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
|
auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId );
|
||||||
auto itemMgr = g_fw.get< World::Manager::ItemMgr >();
|
auto itemMgr = m_pFw->get< World::Manager::ItemMgr >();
|
||||||
|
|
||||||
if( !itemInfo )
|
if( !itemInfo )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -599,8 +597,8 @@ Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint
|
||||||
|
|
||||||
bool Sapphire::Entity::Player::loadInventory()
|
bool Sapphire::Entity::Player::loadInventory()
|
||||||
{
|
{
|
||||||
auto itemMgr = g_fw.get< World::Manager::ItemMgr >();
|
auto itemMgr = m_pFw->get< World::Manager::ItemMgr >();
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// load active gearset
|
// load active gearset
|
||||||
auto res = pDb->query( "SELECT storageId, container_0, container_1, container_2, container_3, "
|
auto res = pDb->query( "SELECT storageId, container_0, container_1, container_2, container_3, "
|
||||||
|
|
|
@ -9,9 +9,6 @@
|
||||||
#include <Logging/Logger.h>
|
#include <Logging/Logger.h>
|
||||||
#include <Database/DatabaseDef.h>
|
#include <Database/DatabaseDef.h>
|
||||||
|
|
||||||
|
|
||||||
extern Sapphire::Framework g_fw;
|
|
||||||
|
|
||||||
Sapphire::World::Manager::ItemMgr::ItemMgr( Sapphire::FrameworkPtr pFw ) :
|
Sapphire::World::Manager::ItemMgr::ItemMgr( Sapphire::FrameworkPtr pFw ) :
|
||||||
BaseManager( pFw )
|
BaseManager( pFw )
|
||||||
{
|
{
|
||||||
|
@ -125,8 +122,8 @@ bool Sapphire::World::Manager::ItemMgr::isOneHandedWeapon( Common::ItemUICategor
|
||||||
|
|
||||||
Sapphire::ItemPtr Sapphire::World::Manager::ItemMgr::loadItem( uint64_t uId )
|
Sapphire::ItemPtr Sapphire::World::Manager::ItemMgr::loadItem( uint64_t uId )
|
||||||
{
|
{
|
||||||
auto pExdData = g_fw.get< Data::ExdDataGenerated >();
|
auto pExdData = framework()->get< Data::ExdDataGenerated >();
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
// load actual item
|
// load actual item
|
||||||
auto itemRes = pDb->query(
|
auto itemRes = pDb->query(
|
||||||
"SELECT catalogId, stack, flags FROM charaglobalitem WHERE itemId = " + std::to_string( uId ) + ";" );
|
"SELECT catalogId, stack, flags FROM charaglobalitem WHERE itemId = " + std::to_string( uId ) + ";" );
|
||||||
|
@ -182,7 +179,7 @@ Sapphire::Common::ContainerType Sapphire::World::Manager::ItemMgr::getContainerT
|
||||||
uint32_t Sapphire::World::Manager::ItemMgr::getNextUId()
|
uint32_t Sapphire::World::Manager::ItemMgr::getNextUId()
|
||||||
{
|
{
|
||||||
uint32_t charId = 0;
|
uint32_t charId = 0;
|
||||||
auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >();
|
||||||
auto pQR = pDb->query( "SELECT MAX(ItemId) FROM charaglobalitem" );
|
auto pQR = pDb->query( "SELECT MAX(ItemId) FROM charaglobalitem" );
|
||||||
|
|
||||||
if( !pQR->next() )
|
if( !pQR->next() )
|
||||||
|
|
|
@ -84,7 +84,6 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
|
||||||
"\nparam3: " + Util::intToHexString( static_cast< uint64_t >( param3 & 0xFFFFFFFFFFFFFFF ), 16 )
|
"\nparam3: " + Util::intToHexString( static_cast< uint64_t >( param3 & 0xFFFFFFFFFFFFFFF ), 16 )
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
//g_log.Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString());
|
//g_log.Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString());
|
||||||
|
|
||||||
switch( commandId )
|
switch( commandId )
|
||||||
|
@ -273,7 +272,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw,
|
||||||
case ClientTriggerType::Teleport: // Teleport
|
case ClientTriggerType::Teleport: // Teleport
|
||||||
{
|
{
|
||||||
|
|
||||||
player.teleportQuery( param11 );
|
player.teleportQuery( param11, pFw );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ClientTriggerType::DyeItem: // Dye item
|
case ClientTriggerType::DyeItem: // Dye item
|
||||||
|
|
|
@ -301,7 +301,7 @@ bool Sapphire::World::ServerMgr::createSession( uint32_t sessionId )
|
||||||
|
|
||||||
Logger::info( "[" + session_id_str + "] Creating new session" );
|
Logger::info( "[" + session_id_str + "] Creating new session" );
|
||||||
|
|
||||||
std::shared_ptr< Session > newSession( new Session( sessionId ) );
|
std::shared_ptr< Session > newSession( new Session( sessionId, framework() ) );
|
||||||
m_sessionMapById[ sessionId ] = newSession;
|
m_sessionMapById[ sessionId ] = newSession;
|
||||||
|
|
||||||
if( !newSession->loadPlayer() )
|
if( !newSession->loadPlayer() )
|
||||||
|
|
|
@ -12,11 +12,12 @@
|
||||||
|
|
||||||
namespace fs = std::experimental::filesystem;
|
namespace fs = std::experimental::filesystem;
|
||||||
|
|
||||||
Sapphire::World::Session::Session( uint32_t sessionId ) :
|
Sapphire::World::Session::Session( uint32_t sessionId, FrameworkPtr pFw ) :
|
||||||
m_sessionId( sessionId ),
|
m_sessionId( sessionId ),
|
||||||
m_lastDataTime( Util::getTimeSeconds() ),
|
m_lastDataTime( Util::getTimeSeconds() ),
|
||||||
m_lastSqlTime( Util::getTimeSeconds() ),
|
m_lastSqlTime( Util::getTimeSeconds() ),
|
||||||
m_isValid( false )
|
m_isValid( false ),
|
||||||
|
m_pFw( pFw )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +51,7 @@ Sapphire::Network::GameConnectionPtr Sapphire::World::Session::getChatConnection
|
||||||
bool Sapphire::World::Session::loadPlayer()
|
bool Sapphire::World::Session::loadPlayer()
|
||||||
{
|
{
|
||||||
|
|
||||||
m_pPlayer = Entity::make_Player();
|
m_pPlayer = Entity::make_Player( m_pFw );
|
||||||
|
|
||||||
if( !m_pPlayer->load( m_sessionId, shared_from_this() ) )
|
if( !m_pPlayer->load( m_sessionId, shared_from_this() ) )
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace Sapphire::World
|
||||||
class Session : public std::enable_shared_from_this< Session >
|
class Session : public std::enable_shared_from_this< Session >
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Session( uint32_t sessionId );
|
Session( uint32_t sessionId, FrameworkPtr pFw );
|
||||||
|
|
||||||
~Session();
|
~Session();
|
||||||
|
|
||||||
|
@ -67,6 +67,8 @@ namespace Sapphire::World
|
||||||
Network::GameConnectionPtr m_pZoneConnection;
|
Network::GameConnectionPtr m_pZoneConnection;
|
||||||
Network::GameConnectionPtr m_pChatConnection;
|
Network::GameConnectionPtr m_pChatConnection;
|
||||||
|
|
||||||
|
FrameworkPtr m_pFw;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue