mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 06:27:45 +00:00
Merge pull request #952 from pinapelz/master
Minor ItemAction and Player Title fixes
This commit is contained in:
commit
48c0127fa8
4 changed files with 19 additions and 1 deletions
|
@ -1023,6 +1023,7 @@ namespace Sapphire::Common
|
||||||
ItemActionCompanion = 853,
|
ItemActionCompanion = 853,
|
||||||
ItemActionVFX2 = 944,
|
ItemActionVFX2 = 944,
|
||||||
ItemActionMount = 1322,
|
ItemActionMount = 1322,
|
||||||
|
ItemActionSong = 5845,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ActionEffectDisplayType : uint8_t
|
enum ActionEffectDisplayType : uint8_t
|
||||||
|
|
|
@ -67,6 +67,13 @@ void ItemAction::execute()
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case Common::ItemActionType::ItemActionSong:
|
||||||
|
{
|
||||||
|
handleSongItem();
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,4 +109,12 @@ void ItemAction::handleMountItem()
|
||||||
|
|
||||||
player->unlockMount( m_itemAction->data().Calcu0Arg[ 0 ] );
|
player->unlockMount( m_itemAction->data().Calcu0Arg[ 0 ] );
|
||||||
player->dropInventoryItem( static_cast< Common::InventoryType >( m_itemSourceContainer ), static_cast< uint8_t >( m_itemSourceSlot ) );
|
player->dropInventoryItem( static_cast< Common::InventoryType >( m_itemSourceContainer ), static_cast< uint8_t >( m_itemSourceSlot ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
void ItemAction::handleSongItem()
|
||||||
|
{
|
||||||
|
auto player = getSourceChara()->getAsPlayer();
|
||||||
|
|
||||||
|
player->learnSong( m_itemAction->data().Calcu0Arg[ 0 ], m_id );
|
||||||
|
player->dropInventoryItem( static_cast< Common::InventoryType >( m_itemSourceContainer ), static_cast< uint8_t >( m_itemSourceSlot ) );
|
||||||
}
|
}
|
|
@ -31,6 +31,8 @@ namespace Sapphire::World::Action
|
||||||
|
|
||||||
void handleMountItem();
|
void handleMountItem();
|
||||||
|
|
||||||
|
void handleSongItem();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr< Excel::ExcelStruct< Excel::ItemAction > > m_itemAction;
|
std::shared_ptr< Excel::ExcelStruct< Excel::ItemAction > > m_itemAction;
|
||||||
|
|
||||||
|
|
|
@ -1183,7 +1183,7 @@ void Player::setTitle( uint16_t titleId )
|
||||||
uint8_t value;
|
uint8_t value;
|
||||||
Util::valueToFlagByteIndexValue( titleId, value, index );
|
Util::valueToFlagByteIndexValue( titleId, value, index );
|
||||||
|
|
||||||
if( ( m_titleList[ index ] & value ) == 0 ) // Player doesn't have title - bail
|
if( ( m_titleList[ index ] & value ) == 0 && titleId != 0 ) // Player doesn't have title and is not "no title" - bail
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m_activeTitle = titleId;
|
m_activeTitle = titleId;
|
||||||
|
|
Loading…
Add table
Reference in a new issue