mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 14:37:44 +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 );
|
EXPOSE_SCRIPT( INSTANCE_NAME );
|
|
@ -231,6 +231,10 @@ namespace Sapphire::ScriptAPI
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InstanceContentScript::onLeaveTerritory( InstanceContent& instance, Entity::Player& player )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
QuestBattleScript::QuestBattleScript( uint32_t questBattleId ) :
|
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,
|
virtual void onEnterTerritory( Sapphire::InstanceContent& instance, Sapphire::Entity::Player& player, uint32_t eventId,
|
||||||
uint16_t param1, uint16_t param2 );
|
uint16_t param1, uint16_t param2 );
|
||||||
|
|
||||||
|
virtual void onLeaveTerritory( InstanceContent& instance, Entity::Player& player );
|
||||||
|
|
||||||
World::Manager::EventMgr& eventMgr()
|
World::Manager::EventMgr& eventMgr()
|
||||||
{
|
{
|
||||||
return Common::Service< World::Manager::EventMgr >::ref();
|
return Common::Service< World::Manager::EventMgr >::ref();
|
||||||
|
|
|
@ -637,6 +637,18 @@ bool Sapphire::Scripting::ScriptMgr::onInstanceEnterTerritory( InstanceContent&
|
||||||
return false;
|
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 )
|
bool Sapphire::Scripting::ScriptMgr::onPlayerSetup( QuestBattle& instance, Entity::Player& player )
|
||||||
{
|
{
|
||||||
auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::QuestBattleScript >( instance.getDirectorId() );
|
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,
|
onInstanceEnterTerritory( InstanceContent& instance, Entity::Player& player, uint32_t eventId, uint16_t param1,
|
||||||
uint16_t param2 );
|
uint16_t param2 );
|
||||||
|
|
||||||
|
bool onInstanceLeaveTerritory( InstanceContent& instance, Entity::Player& player );
|
||||||
|
|
||||||
bool onPlayerSetup( QuestBattle& instance, Entity::Player& player );
|
bool onPlayerSetup( QuestBattle& instance, Entity::Player& player );
|
||||||
|
|
||||||
bool onInstanceInit( QuestBattle& instance );
|
bool onInstanceInit( QuestBattle& instance );
|
||||||
|
|
|
@ -110,6 +110,9 @@ void Sapphire::InstanceContent::onLeaveTerritory( Entity::Player& player )
|
||||||
unbindPlayer( player.getId() );
|
unbindPlayer( player.getId() );
|
||||||
|
|
||||||
clearDirector( player );
|
clearDirector( player );
|
||||||
|
|
||||||
|
auto& scriptMgr = Common::Service< Scripting::ScriptMgr >::ref();
|
||||||
|
scriptMgr.onInstanceLeaveTerritory( *this, player );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sapphire::InstanceContent::onUpdate( uint64_t tickCount )
|
void Sapphire::InstanceContent::onUpdate( uint64_t tickCount )
|
||||||
|
|
Loading…
Add table
Reference in a new issue