Login
芋圆社区 > 编程 > JavaScript > 公主连结.cysp转.skel

公主连结.cysp转.skel

715
0
2024-02-21
2024-02-21
Hey、小怪兽

  • • 之前看到有 python 版本的转换,我自己写了 js 版本的,可以将公主连结解包的 _CHARA_BASE.cysp.bytes 和 _BATTLE.cysp.bytes 文件合成为 .skel
  • • fileName就是人物编号,修改完人物编号,需要看一下路径对不对,f1_path,f2_path,f3_path
  • const fs = require("fs");
    const path = require("path");
    
    const fileName = "310000";
    
    const b_num = Buffer.from(fileName, "hex");
    const f_num = b_num.toString("utf8");
    
    const f1_path = "./dist/ccysp/" + fileName + "_CHARA_BASE.cysp.bytes";
    const f2_path = "./dist/bcysp/" + fileName + "_BATTLE.cysp.bytes";
    const f3_path = "./dist/skel/" + fileName + ".skel";
    
    // 读取基础文件
    const b1 = fs.readFileSync(f1_path);
    let i = 0;
    while (i < b1.length) {
      if (b1[i] === 0x1c) {
        break;
      }
      i++;
    }
    const result = b1.slice(i);
    
    // 读取增量文件
    const b2 = fs.readFileSync(f2_path);
    i = 0;
    while (i < b2.length) {
      let j = 0;
      let flag = true;
      while (j < b_num.length) {
        if (b2[i + j] !== b_num[j]) {
          flag = false;
          break;
        }
        j++;
      }
      if (flag) {
        break;
      }
      i++;
    }
    const animationCount = Buffer.alloc(1);
    animationCount.writeUInt8(0x50, 0);
    const b2sub = b2.slice(i - 1);
    const mergedResult = Buffer.concat([result, animationCount, b2sub]);
    
    fs.writeFileSync(f3_path, mergedResult);
  • • 这样的文件列表:

上一篇:Array 进阶方法 - ES6

下一篇:获取视频的第一帧

Message Board
回复
回复内容不允许为空
留言字数要大于2,小于200!
提交成功,5s后刷新页面!
编程导航

Array 基础方法

Array 进阶方法 - ES6

公主连结.cysp转.skel

获取视频的第一帧

定制Console.log

WebAssembly简单案例

一些常用的方法【持续更新】

AES加密 CBC模式

滚动条滚动到底部的判断

console.log展开值不一样

JSON解析与序列化

|| 运算符的坑

对象转为字符串

call,apply,bind

获取数组中对象的某一属性值

jQuery合并ajax请求

批量命名全局变量

forEach方法

round,ceil,floor

Copyright © 2020 芋圆社区

Powered by 浙ICP备2020039309号-1

此页面不支持夜间模式!

已进入夜间模式!

已进入普通模式!

搜索框不允许为空

签到成功!经验+5!芋圆币+2!

签到失败!今日已签到!

需要登录社区账号才可以进入!

复制成功
寄,页面未加载完成或页面无锚点