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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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) {