首页 > 技术文章 > 二 CheatEngine怎么提取地图数据

SunChuangYu 2020-05-03 14:10 原文

1.我们先用模拟器打开原版游戏。

 

 2.选择 CONSTRUCTION 模式,按攻击种一排草

 

 3 打开 工具->查看器->内存查看器,往下滑一个页面,到这里,就能看到有几排2

 

 4 打开Cheat Engine,点击这个

 

 5 内存查看器 + Cheat Engine 查找地图的地址,先把坦克开到左上角。

 

 点攻击把草换成别的,你会发现内存查看器中的某块数值改变了

 

 

 盯住这个数,开始找地址。

按照下图设置好Cheat Engine ,首次扫描。

 

 改变左上角,在内存查看工具中看改后的数(12)

 

 改成12,新的扫描,结果就是这样了,把第一个双击保存

 

 

 

 右击,打开浏览相关内存区域。

 

 这样就找到了,但这是左上角的,并不是第一块

 

 地图真正的第一个地址是我们找到这个,左移两列,上移一行,到达下图

 

 然后就很清晰能看出,边界时11,草是22(半透明),水是12,铁是10,墙是0F,冰是21(冰特效是会滑)。他们一整块都是由4个小块拼成的。

整个地图是24行,32列。

 

 6找到地图后,我们 直接复制粘贴到txt中保存就行了。如果想换一下行(换不换无所谓的)

#include <iostream> 
using namespace std; 
int main(){ 
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w", stdout); 
    string s;
    int cnt = 1;
    while( cin>>s ){
        cout<<s;
        if(cnt%32==0) cout<<endl;
        else cout<<' ';
        cnt++;
    }
    fclose(stdin);
    fclose(stdout); 
    return 0;
}

 这个out.txt另存为map.txt,然后就可以拿来画图了

推荐阅读