雀魂的年兽还有一部分动态皮肤还挺不错的
虽然可以用网页开发者工具提取出已经加载了的皮肤资源,但是一些过期的活动内容却完全无法用此方法得到了

我记得没错也只是隐藏版本号,自己找吧,挺简单的
2020.3.48f1
一年之后,雀魂把角色立绘给加密了
只是资产名处理了下,加密个锤子。。
import os
import shutil
import sys
class MajsetDecryptor:
def __init__(self):
self.char_list = "abcdefghijklmnopqrstuvwxyz0123456789@$_-"
self.char_map = {cnt: i for i, cnt in enumerate(self.char_list)}
self.char_list_len = len(self.char_list)
def decrypt(self, enc):
r = []
d = -17
for cnt in enc:
if cnt in self.char_map:
i = self.char_map[cnt]
ni = (i + d) % self.char_list_len
r.append(self.char_list[ni])
else:
r.append(cnt)
d -= 1
return "".join(r)
def parse(self, f):
ne = os.path.splitext(f)[0]
li = ne.rfind("_")
if li != -1:
enc = ne[:li]
else:
enc = ne
return enc
def process(self, i, o):
cnt = 0
for r, _, f in os.walk(i):
for ff in f:
if ff.endswith(".majset"):
op = os.path.join(r, ff)
fs = self.decrypt(self.parse(ff)).replace("$@$", os.sep)
tp = os.path.join(o, fs + ".majset")
tf = os.path.dirname(tp)
if not os.path.exists(tf):
os.makedirs(tf)
shutil.copy2(op, tp)
print(f"{ff} -> {fs}.majset")
cnt += 1
print(cnt)
if __name__ == "__main__":
i = sys.argv[1]
i = i.replace('"', "").replace("'", "")
o = os.path.join(os.path.dirname(os.path.abspath(i)), "Renamed_Assets")
MajsetDecryptor().process(i, o)
理论上随便输,只要符合版本号格式就行
1 个赞


