三国杀十周年的解包

三国杀十周年版本解包
三国杀移动版拆包教程 - 简书 (jianshu.com)
我对应这个文章到 pvr转png 这部时候发现 pvr并没有转成png 而是删除了 不知道什么情况
https://www.123pan.com/s/MiJxjv-VkCKA.html提取码:9p6I 这是资源链接

1 个赞

看了一下你给的链接。这老哥和我一样Arch邪教(bushi,他用的pvr-tex-tool-bin还需要转两次太麻烦了,直接上TexturePacker,白嫖方法看之前的绯红神约帖子,我改进了他的脚本,弄了个一键处理的bash脚本(重命名+转换pvr.ccz+合并RGBA)
python依赖就一个opencv
plist我就不整了 (其实是自己用不到那些素材)
注意:该脚本会删除pvr.ccz文件,alpha文件,若有需要,请备份后再执行或者自行修改脚本

#!/bin/bash

input_folder="spine"
fileType="*.pvr.ccz"
max_jobs=16 # 改成你电脑能接受的数

# 重命名 .pvr.ccz@alpha 文件
alphaFiles=$(find "$input_folder" -name "*.pvr.ccz@alpha")
for file in $alphaFiles; do
    baseName=${file%%.*}
    mv "$file" "${baseName}_alpha.pvr.ccz"
done

echo "完事,5秒后开始转换pvr.ccz文件"
sleep 5

# 转换 pvr.ccz 文件
allFiles=$(find "$input_folder" -name "$fileType")

for i in $allFiles; do
    while [ $(jobs -r | wc -l) -ge $max_jobs ]; do
        sleep 1
    done

    fileName=${i%%.*}
    TexturePacker $i --sheet "${fileName}.png" --data "${fileName}.plist" --allow-free-size --no-trim --algorithm Basic --maxrects-heuristics Best --max-size 4096 &

done

wait

rm -f "${fileName}.pvr.ccz"
echo "完事。"

python <<EOF

import cv2
import os

input_folder = "./spine"

for root, dirs, files in os.walk(input_folder):
    for file in files:
        if file.lower().endswith(".png") and not file.endswith("_alpha.png"):
            mask_file = file.replace(".png", "_alpha.png")

            if mask_file not in files:
                print(f"文件 '{file}' 未找到匹配的_alpha文件 '{mask_file}'")
                continue

            src = cv2.imread(os.path.join(root, file))
            mask = cv2.imread(os.path.join(root, mask_file), 0)  # 灰度

            dst = cv2.merge((src, mask))

            output_path = os.path.join(root, file)
            cv2.imwrite(output_path, dst)

            os.remove(os.path.join(root, mask_file))

EOF

效果



image
感谢大佬, 但是我这个图片貌似并未完全合并

脚本也未报错

1

不太懂这个,大佬能细说说吗 :face_with_monocle: