summaryrefslogtreecommitdiff
path: root/wiki/wikigen.py
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2018-06-18 16:52:12 -0300
committerJesusaves <cpntb1@ymail.com>2018-06-18 16:52:12 -0300
commit9d506e6059b8bcf1b7b82114ced3f548600fbd71 (patch)
tree16a0eb3a4efe2585bf8e6585b9453e5dae059b03 /wiki/wikigen.py
parent5997cb0d497a6b023985252ab0c343c8d61d590d (diff)
downloadtools-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/wikigen.py')
-rwxr-xr-xwiki/wikigen.py111
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()