新浪博客

异星工厂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

文件介绍

异星工厂Factorio数据修改
类型(type)
异星工厂Factorio数据修改

主要语句结构
{
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
异星工厂Factorio数据修改
recipe
异星工厂Factorio数据修改
technology
异星工厂Factorio数据修改
常见修改

角色属性修改

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

我的更多文章

下载客户端阅读体验更佳

APP专享