mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 06:27:45 +00:00
Merge pull request #772 from Skyliegirl33/feature-impl
[3.x] Add onLeaveTerritory for instances
This commit is contained in:
commit
cddac062f1
6 changed files with 28 additions and 0 deletions
|
@ -25,6 +25,11 @@ EOBJ_INIT
|
|||
|
||||
}
|
||||
|
||||
void onLeaveTerritory( InstanceContent& instance, Entity::Player& player ) override
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
EXPOSE_SCRIPT( INSTANCE_NAME );
|
|
@ -231,6 +231,10 @@ namespace Sapphire::ScriptAPI
|
|||
{
|
||||
}
|
||||
|
||||
void InstanceContentScript::onLeaveTerritory( InstanceContent& instance, Entity::Player& player )
|
||||
{
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
QuestBattleScript::QuestBattleScript( uint32_t questBattleId ) :
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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() );
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 )
|
||||
|
|
Loading…
Add table
Reference in a new issue