From 532645fc8853c6de971a6aabf47bdb780ee0758f Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 21 Dec 2021 12:02:22 +0100 Subject: [PATCH] Various quest script adjustments. --- src/scripts/quest/subquest/gridania/SubFst033.cpp | 2 +- src/world/Script/NativeScriptApi.cpp | 2 +- src/world/Script/NativeScriptApi.h | 2 +- src/world/Script/ScriptMgr.cpp | 8 ++++++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/scripts/quest/subquest/gridania/SubFst033.cpp b/src/scripts/quest/subquest/gridania/SubFst033.cpp index 5f733b5e..fc426f8d 100644 --- a/src/scripts/quest/subquest/gridania/SubFst033.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst033.cpp @@ -98,7 +98,7 @@ class SubFst033 : public Sapphire::ScriptAPI::QuestScript } - void onBNpcKill( uint32_t npcId, Entity::Player& player ) override + void onBNpcKill( World::Quest& quest, uint32_t npcId, Entity::Player& player ) override { switch( npcId ) { diff --git a/src/world/Script/NativeScriptApi.cpp b/src/world/Script/NativeScriptApi.cpp index ee5b6fab..83179c94 100644 --- a/src/world/Script/NativeScriptApi.cpp +++ b/src/world/Script/NativeScriptApi.cpp @@ -146,7 +146,7 @@ namespace Sapphire::ScriptAPI { } - void QuestScript::onBNpcKill( uint32_t nameId, Entity::Player& player ) + void QuestScript::onBNpcKill( World::Quest& quest, uint32_t nameId, Entity::Player& player ) { } diff --git a/src/world/Script/NativeScriptApi.h b/src/world/Script/NativeScriptApi.h index 310959b3..219aa0aa 100644 --- a/src/world/Script/NativeScriptApi.h +++ b/src/world/Script/NativeScriptApi.h @@ -210,7 +210,7 @@ namespace Sapphire::ScriptAPI virtual void onEventItem( World::Quest& quest, Sapphire::Entity::Player& player, uint64_t actorId ); - virtual void onBNpcKill( uint32_t nameId, Sapphire::Entity::Player& player ); + virtual void onBNpcKill( World::Quest& quest, uint32_t nameId, Sapphire::Entity::Player& player ); virtual void onEmote( World::Quest& quest, uint64_t actorId, uint32_t emoteId, Sapphire::Entity::Player& player ); diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index 62052077..2cc6a542 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -365,14 +365,18 @@ bool Sapphire::Scripting::ScriptMgr::onBNpcKill( Entity::Player& player, uint16_ uint32_t questId = quest.getId() | Event::EventHandler::EventHandlerType::Quest << 16; - auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( questId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::QuestScript >( questId ); if( script ) { std::string objName = eventMgr.getEventName( questId ); PlayerMgr::sendDebug( player, "Calling: {0}.onBnpcKill nameId#{1}", objName, nameId ); - script->onBNpcKill( nameId, player ); + + World::Quest preQ = quest; + script->onBNpcKill( quest, nameId, player ); + if( quest != preQ ) + player.updateQuest( quest ); } }