diff options
Diffstat (limited to 'hercules/code/servertoclient/luas.py')
-rw-r--r-- | hercules/code/servertoclient/luas.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/hercules/code/servertoclient/luas.py b/hercules/code/servertoclient/luas.py new file mode 100644 index 0000000..8b401b7 --- /dev/null +++ b/hercules/code/servertoclient/luas.py @@ -0,0 +1,51 @@ +# -*- coding: utf8 -*- +# +# Copyright (C) 2015 Evol Online +# Author: Andrei Karas (4144) + +import re + +comaSplit = re.compile(",") +equalSplit = re.compile("=") + +def extractLuaArray(fileName, arrName): + with open(fileName, "r") as f: + for line in f: + if line.find(arrName) == 0: + line = line[line.find("{") + 1:] + line = line[:line.find("}")] + return line + return "" + +def convertJobName(): + jobs = dict() + jobNameFile = "rodata/decompiled/jobname.lua" + line = extractLuaArray(jobNameFile, "JobNameTable") + arr = comaSplit.split(line) + for itemStr in arr: + parts = equalSplit.split(itemStr.strip()) + if parts[0].find("[jobtbl.") == 0: + key = parts[0].strip() + key = key[8:-1].strip() + val = parts[1].strip() + val = val[1:-1].strip() + jobs[key] = val + return jobs + +def convertIdentity(jobs): + idents = dict() + npcIdentityFile = "rodata/decompiled/npcidentity.lua" + line = extractLuaArray(npcIdentityFile, "jobtbl = ") + arr = comaSplit.split(line) + for itemStr in arr: + parts = equalSplit.split(itemStr.strip()) + key = parts[0].strip() + val = parts[1].strip() + if key in jobs: + idents[val] = jobs[key].lower() + return idents + +def convertLuas(): + jobs = convertJobName() + idtofile = convertIdentity(jobs) + return idtofile |