mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-25 02:57:45 +00:00
* Add more commands/ability to unlock for mounts
This commit is contained in:
parent
8152f67959
commit
9b096c72ff
5 changed files with 46 additions and 0 deletions
|
@ -678,7 +678,9 @@ namespace Common {
|
|||
|
||||
GearSetEquipMsg = 0x321,
|
||||
|
||||
ToggleMountUnlock = 0x387,
|
||||
ToggleOrchestrionUnlock = 0x396,
|
||||
|
||||
Dismount = 0x3a0
|
||||
};
|
||||
|
||||
|
|
|
@ -619,6 +619,17 @@ void Core::Entity::Player::learnSong( uint8_t songId, uint32_t itemId )
|
|||
queuePacket( ActorControlPacket143( getId(), ToggleOrchestrionUnlock, songId, 1, itemId ) );
|
||||
}
|
||||
|
||||
void Core::Entity::Player::learnMount( uint8_t mountId )
|
||||
{
|
||||
uint16_t index;
|
||||
uint8_t value;
|
||||
Util::valueToFlagByteIndexValue( mountId, value, index );
|
||||
|
||||
m_orchestrion[index] |= value;
|
||||
|
||||
queuePacket( ActorControlPacket143( getId(), ToggleMountUnlock, mountId, 1 ) );
|
||||
}
|
||||
|
||||
bool Core::Entity::Player::isActionLearned( uint8_t actionId ) const
|
||||
{
|
||||
uint16_t index;
|
||||
|
|
|
@ -381,6 +381,8 @@ public:
|
|||
void learnAction( uint8_t actionId );
|
||||
/*! learn a song / update the unlock bitmask. */
|
||||
void learnSong( uint8_t songId, uint32_t itemId );
|
||||
/*! get a mount / update the unlock bitmask. */
|
||||
void learnMount( uint8_t mountId );
|
||||
/*! check if an action is already unlocked in the bitmask. */
|
||||
bool isActionLearned( uint8_t actionId ) const;
|
||||
/*! return a const pointer to the unlock bitmask array */
|
||||
|
|
|
@ -397,6 +397,17 @@ void Core::DebugCommandHandler::add( char * data, Core::Entity::PlayerPtr pPlaye
|
|||
pPlayer->queuePacket(controlPacket);*/
|
||||
|
||||
}
|
||||
else if (subCommand == "unlock")
|
||||
{
|
||||
int32_t id;
|
||||
sscanf( params.c_str(), "%d", &id );
|
||||
|
||||
pPlayer->learnAction( id );
|
||||
}
|
||||
else if (subCommand == "enablecompanion")
|
||||
{
|
||||
pPlayer->learnAction( 17 );
|
||||
}
|
||||
else
|
||||
{
|
||||
pPlayer->sendUrgent( subCommand + " is not a valid ADD command." );
|
||||
|
|
|
@ -70,6 +70,7 @@ enum GmCommand
|
|||
Exp = 0x0068,
|
||||
Inv = 0x006A,
|
||||
|
||||
Mount = 0x0071,
|
||||
Orchestrion = 0x0074,
|
||||
|
||||
Item = 0x00C8,
|
||||
|
@ -298,6 +299,25 @@ void Core::Network::GameConnection::gm1Handler( const Packets::GamePacket& inPac
|
|||
|
||||
break;
|
||||
}
|
||||
case GmCommand::Mount:
|
||||
{
|
||||
if (param2 == 0)
|
||||
{
|
||||
for (uint8_t i = 0; i < 255; i++)
|
||||
targetActor->getAsPlayer()->learnMount( i );
|
||||
|
||||
pPlayer->sendNotice( "All mounts for " + targetPlayer->getName() +
|
||||
" were turned on." );
|
||||
}
|
||||
else
|
||||
{
|
||||
targetActor->getAsPlayer()->learnMount( param1 );
|
||||
pPlayer->sendNotice( "Mount " + std::to_string( param1 ) + " for " + targetPlayer->getName() +
|
||||
" was turned on." );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case GmCommand::Item:
|
||||
{
|
||||
if( param2 < 1 || param2 > 99 )
|
||||
|
|
Loading…
Add table
Reference in a new issue