Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarPlayerLuaBindings.cpp
diff options
context:
space:
mode:
authoremmaker <emmaker@myyahoo.com>2025-04-23 06:24:37 -0400
committeremmaker <emmaker@myyahoo.com>2025-04-23 06:24:37 -0400
commit7e515fd58c0ba9de814de62f2f732525f172d0d9 (patch)
tree204bc40b6a1e2223244e0bba9b0e00028564ccc4 /source/game/scripting/StarPlayerLuaBindings.cpp
parent6ecf53828ed8c262a4fde826c704db1b43206e1b (diff)
Add player.questObjectives; fix player.setTrackedQuest to stop tracking quest if ID matches current quest
Diffstat (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp')
-rwxr-xr-x[-rw-r--r--]source/game/scripting/StarPlayerLuaBindings.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp
index 5af86d0..ea2bae5 100644..100755
--- a/source/game/scripting/StarPlayerLuaBindings.cpp
+++ b/source/game/scripting/StarPlayerLuaBindings.cpp
@@ -496,6 +496,10 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) {
return QuestStateNames.getRight(player->questManager()->getQuest(questId)->state());
});
+ callbacks.registerCallback("questObjectives", [player](String const& questId) -> Maybe<JsonArray> {
+ return player->questManager()->getQuest(questId)->objectiveList();
+ });
+
callbacks.registerCallback("callQuest", [player](String const& questId, String const& func, LuaVariadic<LuaValue> const& args) -> Maybe<LuaValue> {
if (!player->questManager()->hasQuest(questId))
return {};
@@ -522,8 +526,11 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) {
return player->questManager()->trackedQuestId();
});
- callbacks.registerCallback("setTrackedQuest", [player](Maybe<String> const& questId) {
- return player->questManager()->setAsTracked(questId);
+ callbacks.registerCallback("setTrackedQuest", [player](String const& questId) {
+ if (!player->questManager()->isCurrent(questId))
+ return player->questManager()->setAsTracked(questId);
+ else
+ return player->questManager()->setAsTracked({});
});
callbacks.registerCallback("canTurnInQuest", [player](String const& questId) {