From 82e46225071629e5cb9f4c54c57bea2e0e8e292d Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 24 Nov 2014 12:37:53 +0300 Subject: hercules: convert mob spawns. --- hercules/code/server/npcs.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'hercules/code') diff --git a/hercules/code/server/npcs.py b/hercules/code/server/npcs.py index 6b59736..a9d7ed1 100644 --- a/hercules/code/server/npcs.py +++ b/hercules/code/server/npcs.py @@ -26,6 +26,10 @@ mapFlagRe = re.compile("^(?P[^/](.+))[.]gat" + warpRe = re.compile("^(?P[^/](.+))[.]gat,([ ]*)(?P[\d]+),([ ]*)(?P[\d]+)[\t]" "(?Pwarp)[\t](?P[^\t]+)[\t](?P[\d-]+),(?P[\d-]+),(?P[^/](.+))[.]gat,([ ]*)(?P[\d]+),([ ]*)(?P[\d]+)$") +monsterRe = re.compile("^(?P[^/](.+))[.]gat,([ ]*)(?P[\d]+),([ ]*)(?P[\d]+),([ ]*)(?P[\d-]+),(?P[\d-]+)\t" + "(?Pmonster)[\t](?P[\w#' ]+)[\t]" + "(?P[\d]+),(?P[\d]+),(?P[\d-]+),(?P[\d]+),(?P[\d]+)$") + class ScriptTracker: pass @@ -79,6 +83,10 @@ def convertTextLine(tracker): if idx >= 0: processShop(tracker) return False + idx = line.find("\tmonster\t") + if idx >= 0: + processMonster(tracker) + return False idx = line.find("\twarp\t") if idx >= 0: processWarp(tracker) @@ -225,6 +233,28 @@ def processWarp(tracker): xs, ys, m.group("targetmap"), m.group("targetx"), m.group("targety"))) +def processMonster(tracker): + line = tracker.line + w = tracker.w + m = monsterRe.search(line) + if m == None: + print "error in parsing: " + line + w.write("!!!error parsing line") + w.write(line) + return + +# print "source=" + line[:-1] +# print ("map={0} xy={1},{2} xs={3} ys={4} tag={5} name={6} class={7} " + +# "num={8} look={9} delays={10},{11}").format( +# m.group("map"), m.group("x"), m.group("y"), m.group("xs"), m.group("ys"), +# m.group("tag"), m.group("name"), m.group("class"), +# m.group("num"), m.group("look"), m.group("delay1"), m.group("delay2")) + w.write("{0},{1},{2},{3},{4}\t{5}\t{6}\t{7},{8},{9},{10}\n".format(m.group("map"), + m.group("x"), m.group("y"), m.group("xs"), m.group("ys"), + m.group("tag"), m.group("name"), + m.group("class"), m.group("num"), m.group("delay1"), m.group("delay2"))) + + def processStrReplace(tracker): line = tracker.line w = tracker.w -- cgit v1.2.3-70-g09d2