maps/python/dialog/post/quest.py

26 lines
1.0 KiB
Python

# -*- coding: utf-8 -*-
#quest.py
# This is one of the files that can be called by an npc_dialog,
# The following code runs when a dialog has a post rule of 'quest'
# The syntax is ["quest", "questname", "queststage"]
# All arguments are required, questname must be a quest that is
# defined by one of the .quests files queststage must be a step
# number in that quest
## DIALOGCHECK
## MINARGS 2
## MAXARGS 2
## .*
## \d+
## ENDDIALOGCHECK
questname = args[0]
stage = args[1]
if character.QuestGetState(questname) == 0:
Crossfire.Log(Crossfire.LogDebug, "CFDialog: starting quest: %s at stage %s for character %s" %(questname, stage, character.Name))
character.QuestStart(questname, int(stage))
elif int(stage) > character.QuestGetState(questname):
Crossfire.Log(Crossfire.LogDebug, "CFDialog: advancing quest: %s to stage %s for character %s" %(questname, stage, character.Name ))
character.QuestSetState(questname, int(stage))
else:
Crossfire.Log(Crossfire.LogError, "CFDialog: Tried to advance a quest backwards.")