用户工具

站点工具


塔防:kingdom-rush

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
塔防:kingdom-rush [2024/06/29 09:50] – 移除 - 外部编辑 (未知日期) 127.0.0.1塔防:kingdom-rush [2024/06/29 09:51] (当前版本) – [2~4代一键满经验值] bluequilt
行 1: 行 1:
 +======Kingdom Rush======
 +=====2~4代一键满经验值=====
 +用python运行如下代码,注意需先安装''lxml''
  
 +<code python>
 +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()
 +</code>