From a4cf9fe54448cc0cd113af753f5e78a83b1275d4 Mon Sep 17 00:00:00 2001 From: Rushi <44952533+Skyliegirl33@users.noreply.github.com> Date: Sat, 12 Feb 2022 20:30:27 +0100 Subject: [PATCH 1/2] Add onLeaveTerritory for instances --- src/tools/event_object_parser/instance.tmpl | 5 +++++ src/world/Script/NativeScriptApi.cpp | 5 +++++ src/world/Script/NativeScriptApi.h | 2 ++ src/world/Script/ScriptMgr.cpp | 12 ++++++++++++ src/world/Script/ScriptMgr.h | 2 ++ src/world/Territory/InstanceContent.cpp | 3 +++ 6 files changed, 29 insertions(+) diff --git a/src/tools/event_object_parser/instance.tmpl b/src/tools/event_object_parser/instance.tmpl index c8188474..558f1d25 100644 --- a/src/tools/event_object_parser/instance.tmpl +++ b/src/tools/event_object_parser/instance.tmpl @@ -25,6 +25,11 @@ EOBJ_INIT } + void onLeaveTerritory( InstanceContent& instance, Entity::Player& player ) override + { + + } + }; EXPOSE_SCRIPT( INSTANCE_NAME ); \ No newline at end of file diff --git a/src/world/Script/NativeScriptApi.cpp b/src/world/Script/NativeScriptApi.cpp index dcf124c6..60a82cc4 100644 --- a/src/world/Script/NativeScriptApi.cpp +++ b/src/world/Script/NativeScriptApi.cpp @@ -231,6 +231,11 @@ namespace Sapphire::ScriptAPI { } + void InstanceContentScript::onLeaveTerritory( InstanceContent& instance, Entity::Player& player ) + + { + } + /////////////////////////////////////////////////////////////////// QuestBattleScript::QuestBattleScript( uint32_t questBattleId ) : diff --git a/src/world/Script/NativeScriptApi.h b/src/world/Script/NativeScriptApi.h index 150f5465..0fcf222a 100644 --- a/src/world/Script/NativeScriptApi.h +++ b/src/world/Script/NativeScriptApi.h @@ -336,6 +336,8 @@ namespace Sapphire::ScriptAPI virtual void onEnterTerritory( Sapphire::InstanceContent& instance, Sapphire::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); + virtual void onLeaveTerritory( InstanceContent& instance, Entity::Player& player ); + World::Manager::EventMgr& eventMgr() { return Common::Service< World::Manager::EventMgr >::ref(); diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index 69c85548..6d43ba49 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -637,6 +637,18 @@ bool Sapphire::Scripting::ScriptMgr::onInstanceEnterTerritory( InstanceContent& return false; } +bool Sapphire::Scripting::ScriptMgr::onInstanceLeaveTerritory( InstanceContent& instance, Entity::Player& player ) +{ + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance.getDirectorId() ); + if( script ) + { + script->onLeaveTerritory( instance, player ); + return true; + } + + return false; +} + bool Sapphire::Scripting::ScriptMgr::onPlayerSetup( QuestBattle& instance, Entity::Player& player ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::QuestBattleScript >( instance.getDirectorId() ); diff --git a/src/world/Script/ScriptMgr.h b/src/world/Script/ScriptMgr.h index aeb000c9..f336682b 100644 --- a/src/world/Script/ScriptMgr.h +++ b/src/world/Script/ScriptMgr.h @@ -102,6 +102,8 @@ namespace Sapphire::Scripting onInstanceEnterTerritory( InstanceContent& instance, Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); + bool onInstanceLeaveTerritory( InstanceContent& instance, Entity::Player& player ); + bool onPlayerSetup( QuestBattle& instance, Entity::Player& player ); bool onInstanceInit( QuestBattle& instance ); diff --git a/src/world/Territory/InstanceContent.cpp b/src/world/Territory/InstanceContent.cpp index 286afe57..2101923f 100644 --- a/src/world/Territory/InstanceContent.cpp +++ b/src/world/Territory/InstanceContent.cpp @@ -110,6 +110,9 @@ void Sapphire::InstanceContent::onLeaveTerritory( Entity::Player& player ) unbindPlayer( player.getId() ); clearDirector( player ); + + auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref(); + scriptMgr.onInstanceLeaveTerritory( *this, player ); } void Sapphire::InstanceContent::onUpdate( uint64_t tickCount ) From 1cddf71da3da5943e709b2db77a31d9cfe140081 Mon Sep 17 00:00:00 2001 From: Rushi <44952533+Skyliegirl33@users.noreply.github.com> Date: Sat, 12 Feb 2022 20:32:31 +0100 Subject: [PATCH 2/2] Remove newline --- src/world/Script/NativeScriptApi.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/world/Script/NativeScriptApi.cpp b/src/world/Script/NativeScriptApi.cpp index 60a82cc4..8068f42c 100644 --- a/src/world/Script/NativeScriptApi.cpp +++ b/src/world/Script/NativeScriptApi.cpp @@ -232,7 +232,6 @@ namespace Sapphire::ScriptAPI } void InstanceContentScript::onLeaveTerritory( InstanceContent& instance, Entity::Player& player ) - { }