From e7712bb34618cd30423e3751099068eb78a8595f Mon Sep 17 00:00:00 2001 From: Mordred Date: Wed, 16 Aug 2017 22:59:53 +0200 Subject: [PATCH] #58 - Fixed roleplaying tag not showing up --- src/servers/Server_Common/Common.h | 4 +++- src/servers/Server_Zone/GameConnection.cpp | 8 ++++---- src/servers/Server_Zone/PacketHandlers2.cpp | 3 ++- src/servers/Server_Zone/Player.cpp | 4 ++++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/servers/Server_Common/Common.h b/src/servers/Server_Common/Common.h index a8695923..dec1509a 100644 --- a/src/servers/Server_Common/Common.h +++ b/src/servers/Server_Common/Common.h @@ -691,7 +691,7 @@ namespace Core { ClassJobChange = 0x05, DefeatMsg = 0x06, GainExpMsg = 0x07, - + LevelUpEffect = 0x0A, ExpChainMsg = 0x0C, @@ -699,6 +699,8 @@ namespace Core { DeathAnimation = 0x0E, CastInterrupt = 0x0F, + ActionStart = 0x11, + StatusEffectGain = 0x14, StatusEffectLose = 0x15, diff --git a/src/servers/Server_Zone/GameConnection.cpp b/src/servers/Server_Zone/GameConnection.cpp index 35a75dff..6dd4712a 100644 --- a/src/servers/Server_Zone/GameConnection.cpp +++ b/src/servers/Server_Zone/GameConnection.cpp @@ -84,10 +84,10 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, setHandler( ClientIpcType::ReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler ); setHandler( ClientIpcType::TradeReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandler ); - setHandler(ClientIpcType::CFDutyInfoHandler, "CFDutyInfoRequest", &GameConnection::cfDutyInfoRequest ); - setHandler(ClientIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty ); - setHandler(ClientIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette ); - setHandler(ClientIpcType::CFCommenceHandler, "CFDutyAccepted", &GameConnection::cfDutyAccepted); + setHandler( ClientIpcType::CFDutyInfoHandler, "CFDutyInfoRequest", &GameConnection::cfDutyInfoRequest ); + setHandler( ClientIpcType::CFRegisterDuty, "CFRegisterDuty", &GameConnection::cfRegisterDuty ); + setHandler( ClientIpcType::CFRegisterRoulette, "CFRegisterRoulette", &GameConnection::cfRegisterRoulette ); + setHandler( ClientIpcType::CFCommenceHandler, "CFDutyAccepted", &GameConnection::cfDutyAccepted); } diff --git a/src/servers/Server_Zone/PacketHandlers2.cpp b/src/servers/Server_Zone/PacketHandlers2.cpp index 609638d8..20cfba63 100644 --- a/src/servers/Server_Zone/PacketHandlers2.cpp +++ b/src/servers/Server_Zone/PacketHandlers2.cpp @@ -57,12 +57,13 @@ void Core::Network::GameConnection::skillHandler( Core::Network::Packets::GamePa uint64_t targetId = pInPacket->getValAt< uint64_t >( 0x30 ); - if( action < 1000000 ) // normal action { std::string actionIdStr = boost::str( boost::format( "%|04X|" ) % action ); pPlayer->sendDebug( "---------------------------------------" ); pPlayer->sendDebug( "ActionHandler ( " + actionIdStr + " | " + g_exdData.m_actionInfoMap[action].name + " | " + std::to_string( targetId ) + " )" ); + + pPlayer->queuePacket( ActorControlPacket142( pPlayer->getId(), ActorControlType::ActionStart, 0x01, action ) ); if( action == 5 ) { diff --git a/src/servers/Server_Zone/Player.cpp b/src/servers/Server_Zone/Player.cpp index a71a5ddb..8f931a11 100644 --- a/src/servers/Server_Zone/Player.cpp +++ b/src/servers/Server_Zone/Player.cpp @@ -132,6 +132,7 @@ Core::Common::OnlineStatus Core::Entity::Player::getOnlineStatus() uint64_t dcMask = uint64_t( 1 ) << static_cast< uint32_t >( OnlineStatus::Disconnected ); uint64_t meldMask = uint64_t( 1 ) << static_cast< uint32_t >( OnlineStatus::LfMeld ); uint64_t ptMask = uint64_t( 1 ) << static_cast< uint32_t >( OnlineStatus::LfParty ); + uint64_t rpMask = uint64_t( 1 ) << static_cast< uint32_t >( OnlineStatus::RolePlaying ); OnlineStatus status = OnlineStatus::Online; @@ -154,6 +155,9 @@ Core::Common::OnlineStatus Core::Entity::Player::getOnlineStatus() if( m_onlineStatus & ptMask ) status = OnlineStatus::LfParty; + if( m_onlineStatus & rpMask ) + status = OnlineStatus::RolePlaying; + if( hasStateFlag( PlayerStateFlag::WatchingCutscene ) || hasStateFlag( PlayerStateFlag::WatchingCutscene1 ) ) status = OnlineStatus::Cutscene;