From fc578eb0c308cdbcad0bf6ecd6f6075104f94903 Mon Sep 17 00:00:00 2001 From: amibu Date: Mon, 2 Oct 2017 16:00:26 +0200 Subject: [PATCH] Force model change debug command --- src/servers/Server_Zone/Actor/Player.cpp | 6 +++++ src/servers/Server_Zone/Actor/Player.h | 2 ++ .../DebugCommand/DebugCommandHandler.cpp | 22 +++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/src/servers/Server_Zone/Actor/Player.cpp b/src/servers/Server_Zone/Actor/Player.cpp index 43416175..54b7270e 100644 --- a/src/servers/Server_Zone/Actor/Player.cpp +++ b/src/servers/Server_Zone/Actor/Player.cpp @@ -805,6 +805,12 @@ uint32_t Core::Entity::Player::getModelForSlot( Inventory::EquipSlot slot ) return m_modelEquip[slot]; } +void Core::Entity::Player::setModelForSlot( Inventory::EquipSlot slot, uint32_t val ) +{ + m_modelEquip[slot] = val; + setSyncFlag( PlayerSyncFlags::Status ); +} + uint64_t Core::Entity::Player::getModelMainWeapon() const { return m_modelMainWeapon; diff --git a/src/servers/Server_Zone/Actor/Player.h b/src/servers/Server_Zone/Actor/Player.h index 568419f9..1001251a 100644 --- a/src/servers/Server_Zone/Actor/Player.h +++ b/src/servers/Server_Zone/Actor/Player.h @@ -218,6 +218,8 @@ public: const uint32_t * getModelArray() const; /*! return the equipment model in a specified equipment slot */ uint32_t getModelForSlot( Inventory::EquipSlot slot ); + /*! set the equipment model in a specified equipment slot */ + void setModelForSlot( Inventory::EquipSlot slot, uint32_t val ); /*! return the current amount of currency of type */ uint32_t getCurrency( uint8_t type ) const; /*! add amount to the currency of type */ diff --git a/src/servers/Server_Zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/Server_Zone/DebugCommand/DebugCommandHandler.cpp index b3137453..b6adea25 100644 --- a/src/servers/Server_Zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/Server_Zone/DebugCommand/DebugCommandHandler.cpp @@ -254,6 +254,20 @@ void Core::DebugCommandHandler::set( char * data, Core::Entity::PlayerPtr pPlaye pPlayer->setEorzeaTimeOffset( timestamp ); pPlayer->sendNotice( "Eorzea time offset: " + std::to_string( timestamp ) ); } + else if ( subCommand == "model" ) + { + uint32_t slot; + uint32_t val; + sscanf( params.c_str(), "%d %d %d", &slot, &val ); + + pPlayer->setModelForSlot( static_cast( slot ), val ); + pPlayer->sendModel(); + pPlayer->sendDebug( "Model updated" ); + } + else + { + pPlayer->sendUrgent( subCommand + " is not a valid SET command." ); + } } @@ -359,6 +373,10 @@ void Core::DebugCommandHandler::add( char * data, Core::Entity::PlayerPtr pPlaye pPlayer->queuePacket(controlPacket);*/ } + else + { + pPlayer->sendUrgent( subCommand + " is not a valid ADD command." ); + } } @@ -400,6 +418,10 @@ void Core::DebugCommandHandler::get( char * data, Core::Entity::PlayerPtr pPlaye std::to_string( map_id ) + "\nZoneID: " + std::to_string( pPlayer->getCurrentZone()->getId() ) + "\n" ); } + else + { + pPlayer->sendUrgent( subCommand + " is not a valid GET command." ); + } }