#include #include #include #include #include #include using namespace Core; class CmnDefHousingSignboard : public EventScript { public: CmnDefHousingSignboard() : EventScript( 721031 ) { } void Scene00000( Entity::Player& player ) { auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result ) { // Purchase Land if( result.param2 == 2 ) { auto activeLand = player.getActiveLand(); auto territoryId = player.getTerritoryId(); auto pTerritory = player.getCurrentZone(); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); PurchaseResult res = pHousing->purchseLand( player, activeLand.plot, static_cast< uint8_t >( result.param2 ) ); switch( res ) { case PurchaseResult::SUCCESS: { auto screenMsgPkt = Network::Packets::Server::makeActorControl143( player.getId(), Network::ActorControl::DutyQuestScreenMsg, m_id, 0x98 ); player.queuePacket( screenMsgPkt ); } case PurchaseResult::ERR_NOT_ENOUGH_GIL: { auto errorMsg = Network::Packets::Server::makeActorControl143( player.getId(), Network::ActorControl::LogMsg, 4027 ); player.queuePacket( errorMsg ); } } } }; player.playScene( getId(), 0, HIDE_HOTBAR, 0, 0, callback ); } void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { Scene00000( player ); } };