From 927916a286c0f548bfcb9519ca7da8954dcb4aef Mon Sep 17 00:00:00 2001 From: Kevin Zheng Date: Sun, 17 Oct 2021 13:09:31 -0700 Subject: [PATCH] Remove extra release event Remove extraneous release event when player steps on a QuestTriggerConnect and does not satisfy the quest predicate. While here, correct the polarity of the state flag to match the comments in the server's trigger_connected() function. --- python/quests/QuestTriggerConnect.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/python/quests/QuestTriggerConnect.py b/python/quests/QuestTriggerConnect.py index b0e35528f..f4d66587c 100644 --- a/python/quests/QuestTriggerConnect.py +++ b/python/quests/QuestTriggerConnect.py @@ -29,13 +29,22 @@ import Crossfire +def trigger_connected(conn, state, player): + if state == 0: + name = "push" + else: + name = "release" + Crossfire.Log(Crossfire.LogDebug, "QuestTriggerConnect.py: triggering connection number %d (%s)" % (conn, name)) + Crossfire.WhoAmI().Map.TriggerConnected(conn, state, player) + def trigger(): player = Crossfire.WhoIsActivator() params = Crossfire.ScriptParameters() args = params.split() + conn = int(args[2]) if type(player) != Crossfire.Player: - # stepping off, trigger state 0 - Crossfire.WhoAmI().Map.TriggerConnected(int(args[2]), 0, Crossfire.WhoAmI()) + # stepping off, trigger released state + trigger_connected(conn, 1, player) return questname = args[0] currentstep = player.QuestGetState(questname) @@ -47,9 +56,6 @@ def trigger(): startstep = int(condition.split("-")[0]) endstep= int(condition.split("-")[1]) if currentstep >= startstep and currentstep <= endstep: - Crossfire.Log(Crossfire.LogDebug, "QuestTriggerConnect.py: triggering connection number %s." % args[2]) - Crossfire.WhoAmI().Map.TriggerConnected(int(args[2]), 1, player) - else: - Crossfire.WhoAmI().Map.TriggerConnected(int(args[2]), 0, player) + trigger_connected(conn, 0, player) trigger()