Project1

标题: 请问如何用地图ID查找是哪个图? [打印本页]

作者: chaipipi    时间: 2024-6-21 05:14
标题: 请问如何用地图ID查找是哪个图?
本帖最后由 chaipipi 于 2024-6-21 05:17 编辑


地图创建太多了,想找到某一个编号的太难了,有方法吗?
作者: utunnels    时间: 2024-6-21 05:14
打开mapinfos.json找呗,有时间把名字改成带id的
作者: 马铃薯条    时间: 2024-6-21 10:49
自己弄个excel记录一下
作者: shiroin    时间: 2024-6-21 12:18
如果你有给每张地图都设置名称的话,那你可以在控制台中新建一个通过检索地图显示名来查找地图ID的函数来帮忙找出你要的地图:
  1. function findMapByName(mapName) {
  2.     const mapCount = 343; // 假设游戏中最多有343张地图
  3.     let foundMapId = -1; // 默认值,表示未找到

  4.     // 返回一个新的Promise
  5.     return new Promise(async (resolve, reject) => {
  6.         // 递归函数来处理异步的 fetch
  7.         const loadMapData = async (index) => {
  8.             if (index > mapCount || foundMapId !== -1) {
  9.                 resolve(foundMapId); // 如果超出地图数量或已找到地图,则解决Promise
  10.                 return; // 停止递归
  11.             }

  12.             let mapDataPath = 'data/Map' + ('000' + index).slice(-3) + '.json';
  13.             try {
  14.                 const response = await fetch(mapDataPath);
  15.                 if (!response.ok) {
  16.                     throw new Error('Network response was not ok');
  17.                 }
  18.                 const data = await response.json();
  19.                 if (data && data.displayName === mapName) {
  20.                     foundMapId = index;
  21.                     console.log("找到匹配的地图: " + mapName + ",地图ID: " + foundMapId);
  22.                     resolve(foundMapId); // 解决Promise
  23.                     return; // 找到后停止递归
  24.                 }
  25.             } catch (error) {
  26.                 console.error('Could not load map data:', error);
  27.             }

  28.             loadMapData(index + 1); // 递归调用以加载下一个地图文件
  29.         };

  30.         loadMapData(1); // 从地图ID 1开始
  31.     });
  32. }
复制代码

函数设置好了就可以通过这个脚本来使用:
  1. let Name = "魔物の巣窟5";
  2. findMapByName(Name).then(mapId => {
  3.     if (mapId === -1) {
  4.         console.log("未找到名为" + Name + "的地图");
  5.     }
  6. });
复制代码

如果你的地图集里有名为"魔物の巣窟5"的地图,就会返回ID给你
作者: HM495    时间: 2024-6-21 15:34
我觉得楼主的意思应该是想问 怎么在编辑器里找到特定ID的那张地图……?
作者: chaipipi    时间: 2024-6-21 19:24
utunnels 发表于 2024-6-21 17:59
打开mapinfos.json找呗,有时间把名字改成带id的

我基本都改了..就有一个图忘了当初啥情况了,然后我就找不到了..所以发了这个帖子..
作者: chaipipi    时间: 2024-6-21 19:26
HM495 发表于 2024-6-21 15:34
我觉得楼主的意思应该是想问 怎么在编辑器里找到特定ID的那张地图……?

是的,我创建地图基本都修改名称了,但是突然中间有一个死活找不到..
作者: chaipipi    时间: 2024-6-21 19:27
shiroin 发表于 2024-6-21 12:18
如果你有给每张地图都设置名称的话,那你可以在控制台中新建一个通过检索地图显示名来查找地图ID的函数来帮 ...

抱歉,你的方法可能对我没用...
我是基本上每个图都设置名字了,与ID对应,但中间有一个图找不到了,只知道缺失哪个编号..
要是重头找起有点麻烦...所以发了个帖子
作者: HM495    时间: 2024-6-21 20:49
chaipipi 发表于 2024-6-21 19:26
是的,我创建地图基本都修改名称了,但是突然中间有一个死活找不到..

如果你是指不记得放在哪张地图层级内所以找不到的话
打开MapInfos.json 找到你要找的那条ID 然后看他的order和parentId
parentId是他的父级地图 不断往上找可以定位到根地图
order是这张地图在编辑器里的排序,可以大体上推断你要找的图在哪个位置上




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1