Spaces:
Runtime error
Runtime error
File size: 2,194 Bytes
a67101c 1cc60af a67101c dace851 a67101c 1cc60af a2a5d31 a67101c a2a5d31 a67101c a05a2de |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import json
from utils.lua import parse_player
class Parser:
@staticmethod
def parse_talents(detail):
return [row[1] for row in detail]
def parse_buff(self, row):
detail = row.strip("{}").split(",")
buff_id, buff_stack, buff_level = int(detail[4]), int(detail[5]), int(detail[8])
if buff_id not in self.buffs:
self.buffs[buff_id] = {}
if buff_level not in self.buffs[buff_id]:
self.buffs[buff_id][buff_level] = []
if buff_stack not in self.buffs[buff_id][buff_level]:
self.buffs[buff_id][buff_level].append(buff_stack)
self.buffs[buff_id][buff_level].sort()
def parse_skill(self, row):
detail = row.strip("{}").split(",")
skill_id, skill_level, critical = int(detail[4]), int(detail[5]), detail[6] == "true"
# if not sum(parse(row)[-1].values()):
# return
if skill_id not in self.skills:
self.skills[skill_id] = []
if skill_level not in self.skills[skill_id]:
self.skills[skill_id].append(skill_level)
self.skills[skill_id].sort()
def __call__(self, file_name):
self.buffs = {}
self.skills = {}
self.talents = []
lines = open(file_name).readlines()
for line in lines:
row = line.split("\t")
if row[4] == "4":
detail = parse_player(row[-1])
self.school_id = int(detail[3])
if isinstance(detail, list):
self.talents = self.parse_talents(detail[6])
for line in lines:
row = line.split("\t")
if row[4] == "13":
self.parse_buff(row[-1])
elif row[4] == "21":
self.parse_skill(row[-1])
print(self.school_id)
print(self.talents)
json.dump(self.skills, open("skills.json", "w", encoding="utf-8"))
print(len(self.skills))
json.dump(self.buffs, open("buffs.json", "w", encoding="utf-8"))
print(len(self.buffs))
if __name__ == '__main__':
parser = Parser()
parser(r"2024-05-11-22-42-47-长安(15)-极境试炼木桩(24538).jcl")
|