======Kingdom Rush====== =====2~4代一键满经验值===== 用python运行如下代码,注意需先安装''lxml''库 import lxml.etree import re from pathlib import Path from os import environ as ENVIRON from itertools import chain def new_document(text, encoding="utf-8", parser=None): """text: 可以是str或bytes。如果text是str类型,则encoding会被忽略""" if isinstance(text, bytes): text = text.decode(encoding, "replace") text = text.replace("\r", "").encode("utf-8") return lxml.etree.XML(text, parser) def kr23(): root_dir2 = Path(ENVIRON["APPDATA"], "kingdom_rush_frontiers") root_dir2.mkdir(parents=True, exist_ok=True) root_dir3 = Path(ENVIRON["APPDATA"], "kingdom_rush_origins") root_dir3.mkdir(parents=True, exist_ok=True) save_file_pattern = "slot_*.lua" for path in chain( root_dir2.glob(save_file_pattern), root_dir3.glob(save_file_pattern) ): text = path.read_text("utf-8") text = re.sub(r"\[\"xp\"\] = \d+", '["xp"] = 145000', text) path.write_text(text, "utf-8") def kr4(): root_dir = Path(ENVIRON["LOCALAPPDATA"], "Kingdom Rush Vengeance") root_dir.mkdir(parents=True, exist_ok=True) for path in root_dir.glob("slot_*.plist"): root = new_document(path.read_text("utf-8")) all_exps_nodes = root.xpath( '//key[text() = "heroes"]/following-sibling::*[1]/dict/integer[1]' ) for node in all_exps_nodes: node.text = "400000" path.write_bytes(lxml.etree.tostring(root, encoding="utf-8", method="xml")) kr23() kr4()