游戏达人
- 贡献度
- 76
- 金元
- 20854
- 积分
- 2389
- 精华
- 0
- 注册时间
- 2011-6-12
|
本帖最后由 spowiii 于 2016-3-28 10:48 编辑
前言:
第一:向易宁大大致敬,是他的帖子带我走进饥荒的修改,这是大大的原帖
http://bbs.3dmgame.com/thread-3859071-1-1.html
他写的比较小白,我应该没有那么细心
第二:我比较懒,而且是英文苦手,所以一些东西会教你怎么去弄,自己懒得去找英汉对照
正题:
首先因为大大的帖子将近两年前就停更了【虽然修改的思路没变化,而且部分修改依然可用】而这个小游戏又出了第二个dlc,很多小白想修改,但是发现之前的修改:无效/找不到文件等等问题
想自己改东西咋就这么难?
问题1:我之前改的都有效,为什么现在无效了
首先我们从data文件开始看起。目前游戏除了原版之外有两个dlc:巨人和海滩
于是有三个地方存放数据文件:
data\scripts目录下。
data\DLC0001\scripts目录
data\DLC0002\scripts目录
那么问题来了,我要改的在哪个目录?
记住这句话:dlc的加载遵循最新的文件。即 原文件-->DLC文件-->mod文件
这句话直白的意思就是:
我玩dlc1,如果dlc1有何data里面同样的文件,那么,修改dlc1下的文件,如果没有,那么修改data下的文件:
举个实例:
翻到易宁大大的修改:
怎么写的?
打开游戏目录\data\scripts\prefabs\axe.lua文件
然而,你按照这上面写的修改之后玩海滩发现:
坑爹啊,这,说好的秒砍树,秒挖矿呢?
问题在哪儿?
让我们打开“dont_starve\data\DLC0002\scripts\prefabs”目录,一个新的axe.lua文件出现在你面前,将这个文件按照修改来试试。好了,尽情去破坏大自然吧
问题2.明明没有新的文件,为什么我改了还是无效?
接上一个;
举个实例:
翻到易宁大大的修改:
怎么写的?
打开游戏目录\data\DLC0001\scripts\prefabs\evergreens.lua文件
这次你学乖了,dlc0001是巨人,所以逆改成了dlc0002,对应成海滩。
然而,你按照这上面写的修改之后玩海滩发现:
坑爹啊,这掉落有区别么?有区别么????
问题在哪儿?
海滩的树叫啥:丛林树,椰子树。。。
这有什么关系么?
这两棵树未汉化前叫做“jungletrees”“palmtrees”
于是你在游戏目录下一找:
\data\DLC0001\scripts\prefabs\jungletrees.lua
\data\DLC0001\scripts\prefabs\palmtrees.lua
新的树木根本不在evergreens文件里面,所以修改怎么可能有效果
ps:就是因为没有物品的对照表,我本人又是英文苦手,所以这里只举例子,具体的对照各位自己去发掘吧
3.我想将巨人里面的配方修改出来
海滩没有远古祭坛,但是,我们可以通过修改,改出来啊
但是修改之后发现:坑爹啊,站在祭坛旁边不会解锁远古科技树
然而这个问题涉及到的文件,我也没找到。
但是,还是有办法解决的。
找到:dont_starve\data\DLC0002\scripts\recipes.lua
没错,这就是配方表了
----ANCIENT----
Recipe("thulecite", {Ingredient("thulecite_pieces", 6)}, RECIPETABS.ANCIENT, TECH.ANCIENT_TWO, nil, nil, true)
Recipe("wall_ruins_item", {Ingredient("thulecite", 1)}, RECIPETABS.ANCIENT, TECH.ANCIENT_TWO, nil, nil, true, 6)
Recipe("nightmare_timepiece", {Ingredient("thulecite", 2), Ingredient("nightmarefuel", 2)}, RECIPETABS.ANCIENT, TECH.ANCIENT_TWO, nil, nil, true)
Recipe("orangeamulet", {Ingredient("thulecite", 2), Ingredient("nightmarefuel", 3),Ingredient("orangegem", 1)}, RECIPETABS.ANCIENT, TECH.ANCIENT_FOUR,nil, nil, true)
Recipe("yellowamulet", {Ingredient("thulecite", 2), Ingredient("nightmarefuel", 3),Ingredient("yellowgem", 1)}, RECIPETABS.ANCIENT, TECH.ANCIENT_TWO, nil, nil, true)
Recipe("greenamulet", {Ingredient("thulecite", 2), Ingredient("nightmarefuel", 3),Ingredient("greengem", 1)}, RECIPETABS.ANCIENT, TECH.ANCIENT_TWO, nil, nil, true)
Recipe("orangestaff", {Ingredient("nightmarefuel", 2), Ingredient("cane", 1), Ingredient("orangegem", 2)}, RECIPETABS.ANCIENT, TECH.ANCIENT_FOUR,nil, nil, true)
Recipe("yellowstaff", {Ingredient("nightmarefuel", 4), Ingredient("livinglog", 2), Ingredient("yellowgem", 2)}, RECIPETABS.ANCIENT, TECH.ANCIENT_TWO, nil, nil, true)
Recipe("greenstaff", {Ingredient("nightmarefuel", 4), Ingredient("livinglog", 2), Ingredient("greengem", 2)}, RECIPETABS.ANCIENT, TECH.ANCIENT_TWO, nil, nil, true)
Recipe("multitool_axe_pickaxe", {Ingredient("goldenaxe", 1),Ingredient("goldenpickaxe", 1), Ingredient("thulecite", 2)}, RECIPETABS.ANCIENT, TECH.ANCIENT_FOUR, nil, nil, true)
Recipe("ruinshat", {Ingredient("thulecite", 4), Ingredient("nightmarefuel", 4)}, RECIPETABS.ANCIENT, TECH.ANCIENT_FOUR, nil, nil, true)
Recipe("armorruins", {Ingredient("thulecite", 6), Ingredient("nightmarefuel", 4)}, RECIPETABS.ANCIENT, TECH.ANCIENT_FOUR, nil, nil, true)
Recipe("ruins_bat", {Ingredient("livinglog", 3), Ingredient("thulecite", 4), Ingredient("nightmarefuel", 4)}, RECIPETABS.ANCIENT, TECH.ANCIENT_FOUR, nil, nil, true)
Recipe("eyeturret_item", { Ingredient("thulecite", 5)}, RECIPETABS.ANCIENT, TECH.ANCIENT_FOUR, nil, nil, nil,10)
远古可以打不开,但是,我们同样可以把他放在科技这一栏,战斗这一栏,生存这一栏,甚至食物这一栏么,对不对。
等等,不要激动,不是把----ANCIENT----下的代码复制到--SCIENCE下就完事的。
我们来解读一下这句话
Recipe("合成的道具", {Ingredient("材料1", 材料数)}, RECIPETABS.在哪一栏, TECH.需要科技等级, nil, nil, true【,合成出的数量(一个则无此项)】)
以橙色(橘色)护符为例,我想将它放到战斗这一栏(war):
原代码:
Recipe("orangeamulet", {Ingredient("thulecite", 2), Ingredient("nightmarefuel", 3),Ingredient("orangegem", 1)}, RECIPETABS.ANCIENT, TECH.ANCIENT_FOUR,nil, nil, true)
Recipe("橙色护符", {Ingredient("铥矿", 2), Ingredient("噩梦", 3),Ingredient("橙色宝石", 1)}, RECIPETABS.远古科技栏, TECH.ANCIENT_4级远古科技【即完整的祭坛】,nil, nil, true)
修改后:
Recipe("orangeamulet", {Ingredient("thulecite", 2), Ingredient("nightmarefuel", 3),Ingredient("orangegem", 1)}, RECIPETABS.WAR, TECH.NONE,nil, nil, true)
当然我建议你给它加上这一句“, RECIPE_GAME_TYPE.SHIPWRECKED”只在海滩dlc下出现
即:
Recipe("orangeamulet", {Ingredient("thulecite", 2), Ingredient("nightmarefuel", 3),Ingredient("orangegem", 1)}, RECIPETABS.WAR, TECH.NONE,RECIPE_GAME_TYPE.SHIPWRECKED,nil, nil, true)
Recipe("橙色护符", {Ingredient("铥矿", 2), Ingredient("噩梦", 3),Ingredient("橙色宝石", 1)}, RECIPETABS.战斗科技栏, TECH.不需要科技,RECIPE_GAME_TYPE.只在海滩dlc有效,nil, nil, true)
再进游戏你会发现,护身符出现在了战斗一栏,需要2个铥矿,2个噩梦和1个橙色宝石。铥矿!铥矿!!铥矿!!!
wqnmlgb,这“铥矿”可是远古洞穴里面的东西啊
所以接下来就看你想怎么弄咯,是让铥矿可以从其他方式获得还是将铥矿这个材料改成其他材料或者删掉。
好了,意思都表达清楚了,剩下的你们按照易宁大大的教程和我的解释自己摸索吧
ps:我不会,不会,不会做mod!!!!
ps2:一次不要改太多,不然出错就麻烦大了,我某次就是很自信的改了3个小时,然后。。。进不去游戏了。。。
|
|