diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 357bb54b..208aeb97 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -304,6 +304,7 @@ enum ActorControlType : uint16_t RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, + UpdateEstateLightingLevel = 0x471, CompanionAction = 0x6A4, CompanionSetBarding = 0x6A5, diff --git a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp index e534d42e..7394ac86 100644 --- a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp +++ b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp @@ -42,16 +42,14 @@ public: player.sendDebug( "created zone with guid: " + std::to_string( internalZone->getGuId() ) + "\nname: " + internalZone->getName() ); } + // param2 == 1 when player wants to enter house if( result.param2 != 1 ) return; - if( result.param2 == 1 ) - { - //player.eventFinish( 131148, 0 ); - //player.eventFinish( this->getId(), 1 ); - player.setPos( {0, 0, 0} ); - player.setInstance( internalZone ); - } + player.eventFinish( result.eventId, 1 ); + + player.setPos( { 0.f, 0.f, 0.f } ); + player.setInstance( internalZone ); } ); } }; \ No newline at end of file diff --git a/src/servers/Scripts/common/housing/CmnDefHousingPersonalRoomEntrance.cpp b/src/servers/Scripts/common/housing/CmnDefHousingPersonalRoomEntrance.cpp new file mode 100644 index 00000000..abb5e740 --- /dev/null +++ b/src/servers/Scripts/common/housing/CmnDefHousingPersonalRoomEntrance.cpp @@ -0,0 +1,21 @@ +#include +#include + +using namespace Sapphire; + +class CmnDefHousingPersonalRoomEntrance : public Sapphire::ScriptAPI::EventScript +{ +public: + CmnDefHousingPersonalRoomEntrance() : + Sapphire::ScriptAPI::EventScript( 0x000b00b2 ) + { + } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + player.playScene( eventId, 0, 0, []( Entity::Player& player, const Event::SceneResult& result ) + { + + } ); + } +}; \ No newline at end of file diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/housing/CmnDefHousingSignboard.cpp similarity index 100% rename from src/servers/Scripts/common/CmnDefHousingSignboard.cpp rename to src/servers/Scripts/common/housing/CmnDefHousingSignboard.cpp diff --git a/src/servers/Scripts/common/warptaxi/HousingWarpTaxiExitEstate.cpp b/src/servers/Scripts/common/warptaxi/HousingWarpTaxiExitEstate.cpp new file mode 100644 index 00000000..5dd34bf3 --- /dev/null +++ b/src/servers/Scripts/common/warptaxi/HousingWarpTaxiExitEstate.cpp @@ -0,0 +1,25 @@ +#include +#include + +using namespace Sapphire; + +class HousingWarpTaxiExitEstate : public Sapphire::ScriptAPI::EventScript +{ +public: + HousingWarpTaxiExitEstate() : + Sapphire::ScriptAPI::EventScript( 0x0002004d ) + { + } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + player.playScene( eventId, 0, 0, []( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + player.eventFinish( result.eventId, 1 ); + player.exitInstance(); + } + } ); + } +}; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/House.cpp b/src/servers/sapphire_zone/Territory/House.cpp index c63f7a2c..d5b20ef2 100644 --- a/src/servers/sapphire_zone/Territory/House.cpp +++ b/src/servers/sapphire_zone/Territory/House.cpp @@ -55,10 +55,10 @@ Sapphire::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, ui auto houseInteriorModels = res->getBlobVector( "HouseInteriorModels" ); - models = reinterpret_cast( &houseInteriorModels[0] ); + auto interiorModels = reinterpret_cast< uint32_t* >( &houseInteriorModels[ 0 ] ); for( auto i = 0; i < 10; i++ ) { - m_houseInteriorParts[ i ] = houseInteriorModels[ i ]; + m_houseInteriorParts[ i ] = interiorModels[ i ]; } } } diff --git a/src/servers/sapphire_zone/Territory/Land.cpp b/src/servers/sapphire_zone/Territory/Land.cpp index 8ba1412c..d61dcaf5 100644 --- a/src/servers/sapphire_zone/Territory/Land.cpp +++ b/src/servers/sapphire_zone/Territory/Land.cpp @@ -332,21 +332,22 @@ bool Sapphire::Land::setPreset( uint32_t itemId ) m_pHouse = make_House( newId, getLandSetId(), getLandId(), getWardNum(), getTerritoryTypeId() ); } + getHouse()->setHousePart( Common::HousePartSlot::ExteriorRoof, convertItemIdToHousingItemId( housingPreset->exteriorRoof ) ); getHouse()->setHousePart( Common::HousePartSlot::ExteriorWall, convertItemIdToHousingItemId( housingPreset->exteriorWall ) ); getHouse()->setHousePart( Common::HousePartSlot::ExteriorWindow, convertItemIdToHousingItemId( housingPreset->exteriorWindow ) ); getHouse()->setHousePart( Common::HousePartSlot::ExteriorDoor, convertItemIdToHousingItemId( housingPreset->exteriorDoor ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall, convertItemIdToHousingItemId( housingPreset->interiorWall ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor, convertItemIdToHousingItemId( housingPreset->interiorFlooring ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight, convertItemIdToHousingItemId( housingPreset->interiorLighting ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorWall ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorFlooring ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorLighting ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall_Basement, convertItemIdToHousingItemId( housingPreset->basementWall ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor_Basement, convertItemIdToHousingItemId( housingPreset->basementFlooring ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Basement, convertItemIdToHousingItemId( housingPreset->basementLighting ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Mansion, convertItemIdToHousingItemId( housingPreset->mansionLighting ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorWall, convertItemIdToHousingItemId( housingPreset->interiorWall ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorFloor, convertItemIdToHousingItemId( housingPreset->interiorFlooring ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorLight, convertItemIdToHousingItemId( housingPreset->interiorLighting ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorWall_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorWall ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorFloor_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorFlooring ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorLight_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorLighting ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorWall_Basement, convertItemIdToHousingItemId( housingPreset->basementWall ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorFloor_Basement, convertItemIdToHousingItemId( housingPreset->basementFlooring ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorLight_Basement, convertItemIdToHousingItemId( housingPreset->basementLighting ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorLight_Mansion, convertItemIdToHousingItemId( housingPreset->mansionLighting ) ); return true;