From e4d38347d879523d314c4a46826d612db10aeef2 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 21 Nov 2018 10:27:52 +1100 Subject: [PATCH 1/2] HousingAethernet event type --- src/servers/sapphire_zone/Event/EventHandler.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/servers/sapphire_zone/Event/EventHandler.h b/src/servers/sapphire_zone/Event/EventHandler.h index 7b880279..c9008964 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.h +++ b/src/servers/sapphire_zone/Event/EventHandler.h @@ -69,6 +69,7 @@ namespace Core::Event Story = 0x001A, SpecialShop = 0x001B, BahamutGuide = 0x001C, + HousingAethernet = 0x001E, FcTalk = 0x001F, ICDirector = 0x8003, }; From fe2c757faa6cb337794f9348760530e011a602bf Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 21 Nov 2018 17:17:47 +1100 Subject: [PATCH 2/2] HousingAethernet script --- .../common/{ => aethernet}/Aetheryte.cpp | 0 .../common/aethernet/HousingAethernet.cpp | 42 +++++++++++++++++++ 2 files changed, 42 insertions(+) rename src/servers/Scripts/common/{ => aethernet}/Aetheryte.cpp (100%) create mode 100644 src/servers/Scripts/common/aethernet/HousingAethernet.cpp diff --git a/src/servers/Scripts/common/Aetheryte.cpp b/src/servers/Scripts/common/aethernet/Aetheryte.cpp similarity index 100% rename from src/servers/Scripts/common/Aetheryte.cpp rename to src/servers/Scripts/common/aethernet/Aetheryte.cpp diff --git a/src/servers/Scripts/common/aethernet/HousingAethernet.cpp b/src/servers/Scripts/common/aethernet/HousingAethernet.cpp new file mode 100644 index 00000000..e6854980 --- /dev/null +++ b/src/servers/Scripts/common/aethernet/HousingAethernet.cpp @@ -0,0 +1,42 @@ +#include +#include + +#include +#include +#include + +using namespace Core; + +class HousingAethernet : + public Sapphire::ScriptAPI::EventScript +{ +public: + HousingAethernet() : + Sapphire::ScriptAPI::EventScript( 0x001E0000 ) + { + } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + player.playScene( eventId, 0, HIDE_HOTBAR | NO_DEFAULT_CAMERA, [this, eventId]( Entity::Player& player, const Event::SceneResult& result ) + { + auto pExdData = getFramework()->get< Core::Data::ExdDataGenerated >(); + if( !pExdData ) + return; + + auto housingAethernetIds = pExdData->getHousingAethernetIdList(); + auto terrritoryTypeId = player.getCurrentZone()->getTerritoryTypeId(); + + // param2 is the index starting from 0 inside housingaethernet.exd, but the ID column starts at 0x001E0000........ wtf + auto pHousingAethernet = pExdData->get< Core::Data::HousingAethernet >( getId() + result.param2 ); + if( !pHousingAethernet ) + return; + + // check we're teleporting to the same territorytype + if( player.getCurrentZone()->getTerritoryTypeId() != pHousingAethernet->territoryType ) + return; + + player.sendDebug( "got level entry: " + std::to_string( pHousingAethernet->level ) ); + } ); + } +}; \ No newline at end of file