设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 406|回复: 9
打印 上一主题 下一主题

[有事请教] 请问如何用地图ID查找是哪个图?

[复制链接]

Lv2.观梦者

梦石
0
星屑
942
在线时间
107 小时
注册时间
2023-9-30
帖子
38
跳转到指定楼层
1
发表于 2024-6-21 05:14:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
10星屑
本帖最后由 chaipipi 于 2024-6-21 05:17 编辑


地图创建太多了,想找到某一个编号的太难了,有方法吗?

最佳答案

查看完整内容

打开mapinfos.json找呗,有时间把名字改成带id的

点评

可以去data文件夹的MapInfos.json找,用记事本打开就行  发表于 2024-6-21 08:14

Lv2.观梦者

梦石
0
星屑
949
在线时间
129 小时
注册时间
2024-5-22
帖子
87
2
发表于 2024-6-21 05:14:29 | 只看该作者
打开mapinfos.json找呗,有时间把名字改成带id的
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
737 小时
注册时间
2018-5-18
帖子
408
3
发表于 2024-6-21 10:49:14 | 只看该作者
自己弄个excel记录一下
这个人很馋,什么都没有留下。。。
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5430
在线时间
1229 小时
注册时间
2016-12-6
帖子
389
4
发表于 2024-6-21 12:18:50 | 只看该作者
如果你有给每张地图都设置名称的话,那你可以在控制台中新建一个通过检索地图显示名来查找地图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给你
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6590
在线时间
1497 小时
注册时间
2013-12-3
帖子
321
5
发表于 2024-6-21 15:34:25 | 只看该作者
我觉得楼主的意思应该是想问 怎么在编辑器里找到特定ID的那张地图……?
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
107 小时
注册时间
2023-9-30
帖子
38
6
 楼主| 发表于 2024-6-21 19:24:56 | 只看该作者
utunnels 发表于 2024-6-21 17:59
打开mapinfos.json找呗,有时间把名字改成带id的

我基本都改了..就有一个图忘了当初啥情况了,然后我就找不到了..所以发了这个帖子..
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
107 小时
注册时间
2023-9-30
帖子
38
7
 楼主| 发表于 2024-6-21 19:26:00 | 只看该作者
HM495 发表于 2024-6-21 15:34
我觉得楼主的意思应该是想问 怎么在编辑器里找到特定ID的那张地图……?

是的,我创建地图基本都修改名称了,但是突然中间有一个死活找不到..
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
942
在线时间
107 小时
注册时间
2023-9-30
帖子
38
8
 楼主| 发表于 2024-6-21 19:27:17 | 只看该作者
shiroin 发表于 2024-6-21 12:18
如果你有给每张地图都设置名称的话,那你可以在控制台中新建一个通过检索地图显示名来查找地图ID的函数来帮 ...

抱歉,你的方法可能对我没用...
我是基本上每个图都设置名字了,与ID对应,但中间有一个图找不到了,只知道缺失哪个编号..
要是重头找起有点麻烦...所以发了个帖子
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6590
在线时间
1497 小时
注册时间
2013-12-3
帖子
321
9
发表于 2024-6-21 20:49:15 | 只看该作者
chaipipi 发表于 2024-6-21 19:26
是的,我创建地图基本都修改名称了,但是突然中间有一个死活找不到..

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

评分

参与人数 1+1 收起 理由
chaipipi + 1 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 04:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表