修改缺氧的存档-太空背景
Posted goas
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改缺氧的存档-太空背景相关的知识,希望对你有一定的参考价值。
修改缺氧的存档
游戏名: Oxygen Not Included (缺氧)
在线编辑器: https://robophred.github.io/oni-duplicity/ (可能需要翻墙)
缺氧的存档文件是16进制对象文件. 使用16进制做为分割符.
数据保存格式复杂.
基本功能可以修改等级,名字,属性这些.
这里重点介绍下修改太空背景
修改太空背景(未测试通过)
在游戏中使用debug修改不了"真空和太空"背景. 只能通过编辑存档来实现.
debug做不了"太空"背景.
打开在线编辑器,进入RawEditor,先关闭压缩.
游戏背景 在这个路径下 gameData/worldDetail/overworldCells
以块为组合,有位置坐标和背景名;每个块都是Polygon多边形. 多边形共用背景最后一个tag名就是背景名. 太空的背景名为: 内部代码为7. 修改保存就行.
由于游戏坐标太多找起来太麻烦. 需要用代码来做
修改变异信息
在github上找到 格式化代码
(https://github.com/RoboPhred/oni-save-parser)
nodejs 示例代码:
https://github.com/youwi/oni-test
npm init
npm install oni-save-parser
// testRW.js
const readFileSync ,writeFileSync = require("fs");
const
parseSaveGame,
writeSaveGame,
AIAttributeLevelsBehavior,getBehavior
= require("oni-save-parser");
var fileName="不做冷却管"; //存档名。 脚本和存档放在一个目录
function loadFile(fileName)
const fileData = readFileSync(`./$fileName.sav`);
return parseSaveGame(fileData.buffer,versionStrictness:"none");//不检查版本。可能导致奔溃。
function saveFile(fileName, save)
const fileData = writeSaveGame(save);
writeFileSync(`./$fileName.sav`, new Uint8Array(fileData));
const saveData = loadFile(fileName);
// Make all duplicants half-sized
const minions = saveData.gameObjects.find(x => x.name === "Minion");
for (const minion of minions.gameObjects)
minion.scale.x = 0.5;
minion.scale.y = 0.5;
for (const minion of minions.gameObjects)
const skillBehavior = getBehavior(minion, AIAttributeLevelsBehavior);
// Set each attribute to 10
for (const attribute of skillBehavior.templateData.saveLoadLevels)
attribute.level = 10
saveFile(`$fileName-tweaked`, saveData);
运行时提示版本不兼容了。。。格式已经升级到了7.28
//把所有乔木种子搞成旺盛
const seeds2=saveData.gameObjects.find(x=>x.name==="ForestTreeSeed");
for(const seed of seeds2.gameObjects)
const mutantKey=seed.behaviors.find(x=>x.name=== "MutantPlant") //找变异属性
mutantKey.templateData.mutationIDs=['rottenHeaps'] ;//添加旺盛属性
有空再搞
修改星球名字路径
gameObjects/Asteroid/gameObjects/0/behaviors//AsteroidGridEntity/templateData/m_name
几个重要的字段:
DLC中支持有“RegolithMoonMeteorShowers” 现在编辑器只能改不能加。。。。
MeteorShowers 标准陨石
RegolithMoonMeteorShowers DLC支持的纯陨石
可以使用代码来添加陨石雨信息.
修改特性信息和3D坐标和大小都没什么用,地图生成以后就只纯显示用. 而且容易导致游戏崩溃
isDiscovered 这个我认为比较关键. 如果后期很卡的话,修改这个值,让这个星球进入"初始化模式",那么星球上的所有设备都不工作了,性能提升很大(已经验证)
修改辐射和光照数值没有用,要修改Traitkey(上面图片写错了),示例:
sunlightVeryVeryHigh
sunlightMed
sunlightVeryVeryVeryHigh
cosmicRadiationMed (辐射)
cosmicRadiationVeryLow
修正时空裂口
修改这个值可以关闭时空裂口,如果debug导致参数没有走对,陨石出不来,用这个重新开始.
gameObjects/TemporalTear/gameObjects/0/behaviors/TemporalTear/templateData/m_hasConsumedCraft
m_open
gameObjects/TemporalTearOpener 这个是打开器. 在debug菜单POI最下面一层.
修改种子的信息
修改数量:
gameObjects/ForestTreeSeed/gameObjects/0/behaviors/PlantableSeed/templateData/timeUntilSelfPlant
修改变异:
gameObjects/ForestTreeSeed/gameObjects/0/behaviors/MutantPlant/templateData/mutationIDs
MutantPlant表示变异种子的信息.
示例:
我找到几种对应的名字:
- rottenHeaps 旺盛
- extremelyTight
- moderatelyLoose
- heavyFruit
- moderatelyTight
- loadedWithFruit
- slowBurn
- bonusLice
- sunnySpeed
翻译有点麻烦…
现在编辑器无法添加key,添加不了变异信息,只能修改.
如果用16进制修改器直接改呢?
找到MutantPlant,再插入字符串. 不过这可能导致信息错位(有空再搞)
以上是关于修改缺氧的存档-太空背景的主要内容,如果未能解决你的问题,请参考以下文章
Pygame系列别样的飞机大战:太空陨石VS大型战机对决(内含源码)