From fe2c757faa6cb337794f9348760530e011a602bf Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 21 Nov 2018 17:17:47 +1100 Subject: [PATCH] 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