31 lines
907 B
Python
31 lines
907 B
Python
# -*- coding: utf-8 -*-
|
||
# QuestApplyIf.py - A script to let an item be applied only if a quest
|
||
# reached a certain step
|
||
# Arguments are:
|
||
# - quest name
|
||
# - a list of steps, either single value (x) or range (x-y)
|
||
# If any matches, then the item can be applied, else it is not applied
|
||
|
||
import Crossfire
|
||
|
||
player = Crossfire.WhoIsActivator()
|
||
params = Crossfire.ScriptParameters()
|
||
args = params.split()
|
||
|
||
# by default, forbid applying
|
||
Crossfire.SetReturnValue(1)
|
||
|
||
if type(player) == Crossfire.Player:
|
||
questname = args[0]
|
||
currentstep = player.QuestGetState(questname)
|
||
|
||
for rule in args[1:]:
|
||
if rule.find("-") == -1:
|
||
startstep = int(rule)
|
||
endstep = startstep
|
||
else:
|
||
startstep = int(rule.split("-")[0])
|
||
endstep= int(rule.split("-")[1])
|
||
if currentstep >= startstep and currentstep <= endstep:
|
||
Crossfire.SetReturnValue(0)
|