1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-01 16:37:45 +00:00

Add onLeaveTerritory for instances

This commit is contained in:
Rushi 2022-02-12 20:30:27 +01:00
parent 1e8eba6ef3
commit a4cf9fe544
6 changed files with 29 additions and 0 deletions

View file

@ -25,6 +25,11 @@ EOBJ_INIT
}
void onLeaveTerritory( InstanceContent& instance, Entity::Player& player ) override
{
}
};
EXPOSE_SCRIPT( INSTANCE_NAME );

View file

@ -231,6 +231,11 @@ namespace Sapphire::ScriptAPI
{
}
void InstanceContentScript::onLeaveTerritory( InstanceContent& instance, Entity::Player& player )
{
}
///////////////////////////////////////////////////////////////////
QuestBattleScript::QuestBattleScript( uint32_t questBattleId ) :

View file

@ -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();

View file

@ -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() );

View file

@ -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 );

View file

@ -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 )