将迷你世界的蓝图导出成表格

将迷你世界的蓝图导出成表格

使用方法为编译此代码,然后将游戏存档的vbp文件拖入编译出的exe上即可导出csv文件

#include<iostream>
#include<Windows.h>
#include<direct.h>
#include<io.h>
using namespace std;
#define N_L 4
//这个改为用户的名字长度
string UTF8toANSI(const char* utf8)
{
        int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);
        wchar_t* wstr = new wchar_t[len + 1];
        memset(wstr, 0, len + 1);
        MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr, len);
        len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, NULL);
        char* str = new char[len + 1];
        memset(str, 0, len + 1);
        WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, NULL, NULL);
        if (wstr) delete[] wstr;
        string ret = str;
        if (str) delete[] str;
        return ret;
}
int count_i = 0;
void outfile(const char*filename,FILE*tp)
{
        char name[1024];
        memset(name, 0, 1024);
        strcpy(name, filename);
        int len = strlen(name);
        if (name[len - 1] != 'p')
        {
                for (int i = len - 1; i >= 0; i--)
                {
                        if (name[i] == '\\')
                        {
                                ++i;
                                name[len] = '\\';
                                for (int j = 1; i < len; i++, j++)
                                {
                                        name[len + j] = name[i];
                                }
                                strcat(name, ".vbp");
                                break;
                        }
                }
        }
        FILE *fp = fopen(name, "rb");
        char reader[16];
        fread(reader, 1, 16, fp);
        unsigned char s = reader[6];
        int ttt = (int)s & 0xFF;
        ttt -= 48;
        fread(reader, 1, 16, fp);
        fread(reader, 1, 16, fp);
        fread(reader, 1, 16, fp);
        fread(reader, 1, 16, fp);
        fseek(fp, ttt, 1);
        char *bpname = new char[32];
        fread(bpname, 1, 32, fp);//开始获取名称
        for (int i = 0; i <32; i++)
                if (bpname[i] == 0)
                {
                        for (; i < 32; i++)
                                bpname[i] = 0;
                        break;
                }
        string bp_name = bpname;
        len = ((N_L + 1) * 4);
        fread(bpname, 1, len, fp);
        for (int i = 0; i <len; i++)
                if (bpname[i] == 0)
                {
                        for (; i < len; i++)
                                bpname[i] = 0;
                        break;
                }
        std::string h = UTF8toANSI(bpname);
        h.clear();
        fread(bpname, 1, 32, fp);
        for (int i = 0; i <32; i++)
                if (bpname[i] == 0)
                {
                        for (; i < 32; i++)
                                bpname[i] = 0;
                        break;
                }
        h = UTF8toANSI(bpname);
        string bp_c_name= h;
        fclose(fp);
        delete bpname;
        if (count_i % 3 == 0)
                fprintf(tp, "\n");
        fprintf(tp,"%s,\"0,%s\",", bp_c_name.data(), bp_name.data());
}
void main(int argc,char **argv)
{
        if (argc != 2)return;
        _finddata_t file;
        long id;
        string h = argv[1];
        id =_findfirst((h+"\\*").data(), &file);
        if (id == -1)return;
        FILE*fp = fopen("out.csv", "w");
        while (_findnext(id, &file)==0)
        {
                if (file.name[0] == 'b'&&file.name[1] == 'p')
                {
                        printf("%s\n", file.name);
                        outfile((h + "\\" + file.name).data(), fp);
                        count_i++;
                }
        }
        fclose(fp);
        getchar();
}

效果就是这样,可以看到蓝图名字对应的ID
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/36212.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大数据技术】hive 窗口函数sum range between的详细介绍

【大数据技术】hive 窗口函数sum range between的详细介绍 数据准备 建表 create table range_test( name string, month int , sales int ) row format delimited fields terminated by "," ;插入数据 load data local inpath "/home/xx/test/1.t…

CentOS环境下的Nginx安装

Nginx 安装 下载 nginx 下载地址&#xff1a;http://nginx.org/en/download.html 将下载好的压缩包拷贝到根目录下 通过xshell如果出现 bash: rz: 未找到命令 &#xff0c;需要先运行下面的命令 yum -y install lrzsz安装 解压到当前目录 tar -zxvf nginx-1.22.1.tar.gz安…

qt对话框

完善文本编辑器 #include "second.h" #include "ui_second.h"second::second(QWidget *parent) :QWidget(parent),ui(new Ui::second) {ui->setupUi(this);this->setWindowTitle("聊天室界面");//设置标题this->setWindowIcon(QIcon(&…

SpringBoot 如何使用 @ControllerAdvice 注解进行全局异常处理

在 Spring Boot 应用中&#xff0c;异常处理是非常重要的一部分&#xff0c;它可以帮助我们捕获并处理应用程序中出现的异常情况&#xff0c;提高应用程序的健壮性和可靠性。在 Spring Boot 中&#xff0c;我们可以使用 ControllerAdvice 注解来实现全局异常处理。本文将介绍 C…

Java链式编程与Builder(建造者)设计模式

一、链式编程 1.1.释义 链式编程&#xff0c;也叫级联式编程&#xff0c;调用对象的函数时返回一个this对象指向对象本身&#xff0c;达到链式效果&#xff0c;可以级联调用。 1.2.特点 可以通过一个方法调用多个方法&#xff0c;将多个方法调用链接起来&#xff0c;形成一…

若隐若现的芯片

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>若隐若现的芯片</title><script src"https://unpkg.co/gsap3/dist/gsap.min.js">…

Selenium基础 — Selenium自动化测试框架介绍

1、什么是selenium Selenium是一个用于Web应用程序测试的工具。只要在测试用例中把预期的用户行为与结果都描述出来&#xff0c;我们就得到了一个可以自动化运行的功能测试套件。Selenium测试套件直接运行在浏览器中&#xff0c;就像真正的用户在操作浏览器一样。Selenium也是…

我的创作纪念日兼GPT模型简单介绍

目录 一、引言 二、收获与开端 2.1 问题&#xff1a;在创作的过程中都有哪些收获&#xff1f; 2.2 模型开端 三、日常与深入 3.1 问题&#xff1a;当前创作和你的学习是什么样的关系&#xff1f; 3.2 模型深入介绍 3.2.1 无监督预训练 3.2.2 有监督下游任务精调 四、…

多元回归预测 | Matlab灰狼算法(GWO)优化极限梯度提升树XGBoost回归预测,GWO-XGBoost回归预测模型,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab灰狼算法(GWO)优化极限梯度提升树XGBoost回归预测,GWO-XGBoost回归预测模型,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源…

2023MWC精彩回顾 | 未来数字世界中的社交,游戏与娱乐

6月28日至6月30日&#xff0c;由GSMA主办的2023 MWC 上海世界移动通信大会&#xff08;简称“MWC 上海”&#xff09;启幕。「Paraverse平行云」参与组织并主持了本次大会中【未来数字世界中的社交&#xff0c;游戏与娱乐】的主题会议。 「Paraverse平行云」携手上海交通大学、…

ChatGPT 提示词设置

提示词 Prompt&#xff08;提示词&#xff09;&#xff1a;当我们询问GPT时&#xff0c;发送的消息就是Prompt。 通过给出合适的Prompt&#xff0c;可以让GPT了解我们的想法&#xff0c;在根据我们的想法做出更加合适的判断&#xff0c;帮助我们完成任务&#xff0c;提高效率。…

el-tab-pane 和el-tooltip及el-tree 组合使用

<el-tabs v-model"groupId" tab-click"handleClick"><el-tab-pane label"全部" name"0"></el-tab-pane><el-tab-pane v-for"items in editableTabs" :key"items.group_id" :name"item…

MySQL注入-SQLi-Less1笔记

前置知识点&#xff1a; 1. SELECT 1,2,3 用于查询数据通道的方式 例如Less-1中,Secury数据库中的users表结构如下&#xff0c;可以看到有散列&#xff0c;当用户在页面输入id的时候&#xff0c;会查询到对应的散列数据也就是<id>/<username>/<password>&a…

分布式监控zabbix的使用(一)

zabbix 一、添加zabbix客户端主机&#xff0c;测试是否能连接服务端和客户端都设置 hosts 解析设置 zabbix 的下载源&#xff0c;安装 zabbix-agent2修改 agent2 配置文件通过键值测试连通性在 Web 页面中添加 agent 主机 二、自定义监控内容在客户端创建自定义key 三、在web页…

Lion:闭源大语言模型的对抗蒸馏

Lion&#xff1a;闭源大语言模型的对抗蒸馏 Lion&#xff0c;由香港科技大学提出的针对闭源大语言模型的对抗蒸馏框架&#xff0c;成功将 ChatGPT 的知识转移到了参数量 7B的 LLaMA 模型&#xff08;命名为 Lion&#xff09;&#xff0c;在只有 70k训练数据的情况下&#xff0…

微服务网关技术选型:Zuul2、Gateway、OpenResty、Kong

1、简介 当使用单体应用程序架构时&#xff0c;客户端&#xff08;Web 或移动端&#xff09;通过向后端应用程序发起一次 REST 调用来获取数据。负载均衡器将请求路由给 N 个相同的应用程序实例中的一个。然后应用程序会查询各种数据库表&#xff0c;并将响应返回给客户端。微…

443端口被占用,vmware居然也来捣乱

今天搬砖时发现应用起不来了&#xff0c;显示出了熟悉的error *************************** APPLICATION FAILED TO START ***************************~~重点在这块哈 Description:Web server failed to start. Port 443 was already in use.Action:Identify and stop the p…

Modbus tcp转ETHERCAT在Modbus软件中的配置方法

Modbus tcp和ETHERCAT是两种不同的协议&#xff0c;这给工业生产带来了很大的麻烦&#xff0c;因为这两种设备之间无法通讯。但是&#xff0c;远创智控YC-ECT-TCP网关的出现&#xff0c;却为这个难题提供了解决方案。 YC-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中…

Android之WebView加载PDF链接预览PDF文件

文章目录 前言一、效果图二、实现步骤1.在项目main目录下新建一个assets2.新建一个js为index.js3.新建一个HTML为index.html4.xml布局4.Activity类&#xff08;kotlin&#xff09;5.Activity类&#xff08;Java&#xff09; 总结 前言 Android的webview压根就不支持加载pdf&am…

基于单片机的智能空调系统的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示当前水温&#xff0c;定时提醒&#xff0c;水量变化DS18B20检测当前水体温度&#xff1b;水位传感器检测当前水位&#xff1b;继电器驱动加热片进行水温加热&#xff1b;定时提醒喝水&#xff0c;蜂鸣器报警&#x…