异星工厂Factorio数据修改
2016-09-29 09:33阅读:
最近重新玩Factorio这款游戏,发现1年多时间升级了不少内容。作为改派必然要折腾一番了,这里把所有网上出现的修改诺列一下,同时加入一些笔者的总结,希望对各位有所帮助。
目录结构
首先介绍一下目录结构,重点介绍Factorio\data\base\prototypes目录,也是本文修改的重点。
categories - 分类
entity - 实体,游戏可放置物品
equipment - 装置
fluid - 流体
item - 物品
recipe - 合成
technology - 科技
tile - 地面层
目录结构下修改方法
主要介绍entity、item、recipe、technology这4个目录下各文件分类和修改方法,其他修改除非要整体改造游戏或MOD,否则很少会用到。其中有相同名称,但前缀加了“demo-”,一般情况下不带有demo为基础项目,反之是扩展项目。其实两者没什么区别,可能是游戏开发后期文件结构有所改变,所以重新建立了新的文件来区分。
entity
文件介绍

类型(type)
主要语句结构
{
type = “player”, #类型,不同类型下面设定也不同name = “player”, #名称icon =
“__base__/graphics/icons/player.png”, #图标max_health = 9000,
#最大生命值healing_per_tick = 900, # 每秒恢复生命值crafting_speed = 150,
#合成速度,没有任何效果inventory_size = 100, #背包大小,1-255build_distance = 30,
#建筑最远距离drop_item_distance = 30, #破坏物品最远距离reach_distance = 6,
#拾取距离reach_resource_distance = 2.7, #采矿距离running_speed = 0.3,
#奔跑速度
mining_speed = 0.01, #采矿速度,越小越好
effectivity = 1, #效率
light = #自带光源
{minimum_darkness = 0.3, #最小黑暗intensity = 0.4, #强度size = 25,
#大小},
energy_source = #能量源
{type = “burner”,effectivity = 1, #效率fuel_inventory_size = 1,
#燃料存储空间emissions = 0.01, #排放污染smoke = #特效烟雾
{{name = “smoke”,deviation = {0.1, 0.1},frequency = 0.5,position
= {0, 0},starting_vertical_speed = 0.05}}
},
item

recipe

technology

常见修改
角色属性修改
修改文件:Factorio\data\base\prototypes\entity\demo-entities.lua,查找其中的“name
=
“player”,”可以找到所有关于角色的属性数据。唯一不能修改的是合成速度,需要配合合成工厂、速度模块进行弥补。下面介绍主要几个需要修改的参数:

机器人修改
修改文件Factorio\data\base\prototypes\entity\entities.lua,搜索“name =
“logistic-robot”,”物流机器人找到如下代码进行修改(省略掉部分不需要修改的数据)。
#运输机器人
type = “logistic-robot”,name = “logistic-robot”,max_health = 100,
#最大血量speed = 0.05, #移动速度,过大耗能将加大transfer_distance = 0.5,
#传输距离max_energy = “300kJ”, #储能,建议不要改大,否则会一直充电energy_per_tick =
“0.01kJ”, #停靠耗能,改成0.001Jenergy_per_move = “1kJ”,
#移动耗能,改成0.001Jmin_to_charge = 0.2, #最小能量补充耗时,改为0.002max_to_charge =
0.95, #最大能量补充耗时,改为0.095
# 建筑机器人
type = “construction-robot”,name = “construction-robot”,max_health
= 100,speed = 0.06,transfer_distance = 0.5,max_energy =
“300kJ”,energy_per_tick = “0.01kJ”,energy_per_move =
“1kJ”,min_to_charge = 0.2,max_to_charge = 0.95,
石墙修改
修改Factorio\data\base\prototypes\entity\entities.lua文件,找到“name =
“stone-wall”,”石墙,修改内容如下。
type = “wall”,name = “stone-wall”,max_health = 350,
#生命值,改为35000
太阳能和蓄电池
修改Factorio\data\base\prototypes\entity\entities.lua文件,找到“name =
“solar-panel”,”太阳能板,修改内容如下。
#太阳能
type = “solar-panel”,name = “solar-panel”,max_health = 100,
#生命值production = “60kW” #产能,改为60MW
#蓄电池
type = “accumulator”,name = “basic-accumulator”,max_health = 150,
#最大生命energy_source ={type = “electric”, #产能类型buffer_capacity =
“5MJ”, #电池容量,改为50GJusage_priority = “terciary”,input_flow_limit =
“300kW”, #充电速率,改成300MJoutput_flow_limit = “300kW” #放电功率},
科技消耗
将Factorio\data\base\prototypes\technology目录下所有文件中的2个地方修改,找到如下类似的语句结构部分:
unit =
{count = 1,ingredients ={{“science-pack-1”, 1}},time =
1},
其中,“count”为需要研究的次数;“ingredients”为需要消耗的瓶子;“time”为耗时。可以按照这段语句修改,把所有相关内容替换,即耗时最短、全部科技只需要1个红瓶子即可。
速度模块
修改Factorio\data\base\prototypes\item\module.lua文件,其中“effect = {
speed = {bonus = 300}, consumption = {bonus =
0.01}}”就是效果部分。“speed”是生产速度,括号里面的“bonus”表示增加多少,如“speed = {bonus =
300}”意思就是生产速度增加300倍,其他的如“consumption”耗能、“productivity”生产率、“pollution”污染。
物品叠加修改
修改Factorio\data\base\prototypes\item\demo-item.lua文件内的“stack_size”为任意值,建议改为9999,太大的显示会出问题。注意,某些物品不能叠加,如“blueprint”、“deconstruction-planner”,以及一些装备,所以修改叠加要注意避开这些内容,如果修改进游戏会报错,根据报错找到修改即可。
采矿机修改
修改Factorio\data\base\prototypes\entity\demo-mining-drill.lua文件,修改如下。
关于跟随机器人上限科技的修改
修改Factorio\data\base\prototypes\technology\combat-robots.lua文件,修改如下:
#修改开头的函数语句,如下部分修改result.unit.count = count #改为result.unit.count =
1,将研究次数改为1
#去掉以下部分,不需要任何瓶子即可完成研究if pack1 ~= 0
thentable.insert(result.unit.ingredients, {“science-pack-1”,
pack1})endif pack2 ~= 0 thentable.insert(result.unit.ingredients,
{“science-pack-2”, pack2})endif pack3 ~= 0
thentable.insert(result.unit.ingredients, {“science-pack-3”,
pack3})endif alienpack ~= 0
thentable.insert(result.unit.ingredients, {“alien-science-pack”,
alienpack})end
关于MOD制作
关于批量修改问题
建议使用sublime text打开正则表达式替换,ctrl+h打开替换界面,如下:
- 修改物品叠加“count = 100”这类,用“stack_size =
[0-9]{1,3}”,会自动匹配文件内所有1-3位数的数字,替换为“count = 9999”即可。
- 修改科技研究次数、耗时、研究需求,用“count = [0-9]{1,5}”研究次数、“count =
[0-9]{1,5}”耗时、“ingredients
=\s{1,15}\{(\s{1,15}\{\S{1,50}\s[0-9]{1,5}\}[,|\s|,\s])*\s{1,15}\},”研究需求,注意研究需求有时候格式不太确定,所以还需要用“\{\”science\S{1,20}\s[1-9]{1,15}\}[,|\S]”替换一次确保全部替换,最后再用“ingredients
= \{ ,”加上“}”括号封住即可。
参考文献
http://bbs.3dmgame.com/thread-4262805-1-1.html
http://www.gamersky.com/handbook/201403/348777.shtml
http://bbs.3dmgame.com/thread-4650858-1-1.html
| assemblerpipes.lua |
组装机图标函数 |
| demo-biter-animations.lua |
虫子动画 |
| demo-doodads.lua |
地面草丛、石头动画和基本设定 |
| demo-enemies.lua |
虫子设定 |
| demo-entities.lua |
实体物品基本设定 |
| demo-mining-drill.lua |
采矿设备基本设定 |
| demo-particles.lua |
粒子 |
| demo-pipecovers.lua |
覆盖物图片 |
| demo-player-animations.lua |
角色动作函数 |
| demo-projectiles.lua |
抛射物 |
| demo-railpictures.lua |
铁道图片 |
| demo-remnants.lua |
被破坏物图片 |
| demo-resources.lua |
矿产资源设定,非石油 |
| demo-spawner-animation.lua |
巢穴动画 |
| demo-transport-belt-pictures.lua |
运输带图片 |
| demo-trees.lua |
树木 |
| demo-turrets.lua |
炮塔设定 |
| demo-worm-animations.lua |
虫子动画 |
| enemies.lua |
虫子设定 |
| entities.lua |
实体设定 |
| mining-drill.lua |
挖掘机设定 |
| projectiles.lua |
炮弹 |
| resources.lua |
矿产资源设定,石油 |
| spitter-animations.lua |
虫子动画 |
| transport-belt-pictures.lua |
传输带图片 |
| turrets.lua |
炮塔设定 |
类型(type)
| player |
角色 |
| furnace |
炉子 |
| transport-belt |
传输带 |
| fish |
鱼 |
| boiler |
锅炉 |
| container |
箱子 |
| electric-pole |
电线杆 |
| explosion |
爆炸 |
| generator |
发电机 |
| offshore-pump |
水泵 |
|
主要语句结构
| assemblerpipes.lua |
组装机图标函数 |
| demo-biter-animations.lua |
虫子动画 |
| demo-doodads.lua |
地面草丛、石头动画和基本设定 |
| demo-enemies.lua |
虫子设定 |
| demo-entities.lua |
实体物品基本设定 |
| demo-mining-drill.lua |
采矿设备基本设定 |
| demo-particles.lua |
粒子 |
| demo-pipecovers.lua |
覆盖物图片 |
| demo-player-animations.lua |
角色动作函数 |
| demo-projectiles.lua |
抛射物 |
| demo-ra |