diff options
author | Jesusaves <cpntb1@ymail.com> | 2018-06-18 16:52:12 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2018-06-18 16:52:12 -0300 |
commit | 9d506e6059b8bcf1b7b82114ced3f548600fbd71 (patch) | |
tree | 16a0eb3a4efe2585bf8e6585b9453e5dae059b03 /wiki | |
parent | 5997cb0d497a6b023985252ab0c343c8d61d590d (diff) | |
download | tools-9d506e6059b8bcf1b7b82114ced3f548600fbd71.tar.gz tools-9d506e6059b8bcf1b7b82114ced3f548600fbd71.tar.bz2 tools-9d506e6059b8bcf1b7b82114ced3f548600fbd71.tar.xz tools-9d506e6059b8bcf1b7b82114ced3f548600fbd71.zip |
Update make wiki to print list of quests, nothing major is done yet.
Diffstat (limited to 'wiki')
-rwxr-xr-x | wiki/wikigen.py | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/wiki/wikigen.py b/wiki/wikigen.py index 04172a7..eb7eef6 100755 --- a/wiki/wikigen.py +++ b/wiki/wikigen.py @@ -614,10 +614,121 @@ def ArmorWrite(name,scope): wikia.write("## "+name+"\n") ItemWrite(IT_ARMOR[scope], ID=True, AEGIS=True, PRICE=True, WEIGHT=True, DEF=True, LVL=True, SCRIPT=True) + + + + + + + + + + +class Quest: + def __init__(self, ide): + # Basic + self.id=ide + self.name="Unknown Quest Name" + self.group="Unknown" + self.ent=[] + + +class QuestEntry: + def __init__(self): + # Basic + self.complete=False + self.entry=[] # collection of <text> + self.giver="" + self.reward="" + self.loc="" + +def qnt(string): + return string.replace(' ','').replace('"','').replace("'","").replace('<','').replace('>','') + +def DoQuest(): + print("Generating Quest Wiki...") + src=open("../../client-data/quests.xml", "r") + + qlog=[] + q=Quest(-1) + qe=QuestEntry() + ig=False + + for e in src: + # Handle Comments + if '<!--' in e and '-->' in e: + continue + elif '<!--' in e: + ig=True + elif '-->' in e: + ig=False + + if ig: + continue + + # Handle Quest Headers + if '</var' in e: + qlog.append(q) + elif '<var' in e: + g=qnt(e) + try: + q=Quest(int( g.replace('varid=','') )) + except: + print("Invalid quest: %s" % g) + exit(1) + + # Handle quest entries + if '</quest' in e: + q.ent.append(qe) + elif '<quest' in e: + qe=QuestEntry() + l=e.split('"') + rc=[False, ""] + for arg in l: + if not rc[0]: + if "name" in arg: + rc=[True, 'name'] + elif "group" in arg: + rc=[True, 'group'] + elif "complete" in arg: + rc=[True, arg.replace('=','').replace(' ','')] + else: + if rc[1] == "name": + q.name=arg + elif rc[1] == "group": + q.group=arg + elif rc[1] == "complete": + qe.complete=True + elif rc[1] == "incomplete": + qe.complete=False + else: + print("Invalid <quest> tag: %s (arg was %s) (line was %s)" % (e, rc[1], l)) + exit(1) + rc=[False, ""] + + # Fill stuff in Quest Entry + if '<text' in e: + a=qnt(e) + qe.entry.append( a.replace('text','').replace('/','') ) + elif '<questgiver' in e: + a=qnt(e) + qe.giver=a.replace('questgiver','').replace('/','') + + + print("\033[32;1mTotal quests: %d\033[0m" % len(qlog)) + for i in qlog: + print(i.name) + src.close() + + + + + showHeader() testMobs() newItemDB() +DoQuest() wikia.close() wikib.close() |