Utility script to let an item be applied only for certain quest steps.
git-svn-id: svn://svn.code.sf.net/p/crossfire/code/maps/trunk@13389 282e977c-c81d-0410-88c4-b93c2d0d6712master
parent
4d433955d8
commit
930183356e
|
|
@ -0,0 +1,29 @@
|
||||||
|
# -*- 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()
|
||||||
|
|
||||||
|
questname = args[0]
|
||||||
|
currentstep = player.QuestGetState(questname)
|
||||||
|
|
||||||
|
# by default, forbid applying
|
||||||
|
Crossfire.SetReturnValue(1)
|
||||||
|
|
||||||
|
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)
|
||||||
Loading…
Reference in New Issue