- Reformat for readability. No functional change.
git-svn-id: svn://svn.code.sf.net/p/crossfire/code/maps/trunk@10637 282e977c-c81d-0410-88c4-b93c2d0d6712master
parent
cb381c6b26
commit
1bb1e16719
|
@ -105,37 +105,48 @@ import os
|
||||||
from CFDialog import DialogRule, Dialog
|
from CFDialog import DialogRule, Dialog
|
||||||
import cjson
|
import cjson
|
||||||
|
|
||||||
def ruleConnected(character,rule):
|
def ruleConnected(character, rule):
|
||||||
m = character.Map
|
m = character.Map
|
||||||
m.TriggerConnected(rule.connected,1)
|
m.TriggerConnected(rule.connected, 1)
|
||||||
|
|
||||||
|
npc = Crossfire.WhoAmI()
|
||||||
event = Crossfire.WhatIsEvent()
|
event = Crossfire.WhatIsEvent()
|
||||||
player = Crossfire.WhoIsActivator()
|
player = Crossfire.WhoIsActivator()
|
||||||
npc = Crossfire.WhoAmI()
|
|
||||||
if (Crossfire.ScriptParameters() != None):
|
if (Crossfire.ScriptParameters() != None):
|
||||||
filename = os.path.join(Crossfire.DataDirectory(),Crossfire.MapDirectory(),Crossfire.ScriptParameters())
|
filename = os.path.join(Crossfire.DataDirectory(),
|
||||||
|
Crossfire.MapDirectory(),
|
||||||
|
Crossfire.ScriptParameters())
|
||||||
try:
|
try:
|
||||||
f = open(filename,'rb')
|
f = open(filename,'rb')
|
||||||
except:
|
except:
|
||||||
Crossfire.Log(Crossfire.LogDebug, "Error loading NPC dialog %s" % filename)
|
Crossfire.Log(Crossfire.LogDebug, "Error loading NPC dialog %s" % filename)
|
||||||
raise
|
raise
|
||||||
else:
|
else:
|
||||||
Crossfire.Log(Crossfire.LogDebug,"Loading NPC dialog %s" %filename)
|
Crossfire.Log(Crossfire.LogDebug, "Loading NPC dialog %s" % filename)
|
||||||
parameters=cjson.decode(f.read())
|
parameters = cjson.decode(f.read())
|
||||||
f.close()
|
f.close()
|
||||||
else:
|
else:
|
||||||
parameters = cjson.decode(event.Message)
|
parameters = cjson.decode(event.Message)
|
||||||
location = parameters["location"];
|
location = parameters["location"];
|
||||||
speech = Dialog(player, npc, location)
|
speech = Dialog(player, npc, location)
|
||||||
index=0;
|
index = 0;
|
||||||
|
|
||||||
for jsonRule in parameters["rules"]:
|
for jsonRule in parameters["rules"]:
|
||||||
if (jsonRule.has_key("connected")):
|
if (jsonRule.has_key("connected")):
|
||||||
rule = DialogRule(jsonRule["match"], jsonRule["pre"], jsonRule["msg"], jsonRule["post"],None,ruleConnected);
|
rule = DialogRule(jsonRule["match"],
|
||||||
|
jsonRule["pre"],
|
||||||
|
jsonRule["msg"],
|
||||||
|
jsonRule["post"],
|
||||||
|
None,
|
||||||
|
ruleConnected);
|
||||||
rule.connected = jsonRule["connected"]
|
rule.connected = jsonRule["connected"]
|
||||||
else:
|
else:
|
||||||
rule = DialogRule(jsonRule["match"], jsonRule["pre"], jsonRule["msg"], jsonRule["post"])
|
rule = DialogRule(jsonRule["match"],
|
||||||
speech.addRule(rule,index)
|
jsonRule["pre"],
|
||||||
index=index+1
|
jsonRule["msg"],
|
||||||
|
jsonRule["post"])
|
||||||
|
speech.addRule(rule, index)
|
||||||
|
index = index + 1
|
||||||
|
|
||||||
if speech.speak(Crossfire.WhatIsMessage()) == 0:
|
if speech.speak(Crossfire.WhatIsMessage()) == 0:
|
||||||
Crossfire.SetReturnValue(1)
|
Crossfire.SetReturnValue(1)
|
||||||
|
|
Loading…
Reference in New Issue