tgp饥荒 存档无法覆盖地图被一群数字覆盖怎么回事

网页设计教程与开发
提供各种常见网页效果
提供各种各样的设计教程
装扮QQ,让QQ变得更酷
设计参考,提高自升水平
学习服务器和操作系统
提供各种素材和工具
收藏学习资料
您现在的位置:&&>>&&>>&&>>&正文
《饥荒》联机版地图逻辑结构与地图构成详解
《》联机版的地图怎么样覆盖范围如何呢?相信有些玩家还不了解地图构成结构,那今天就为大家带来了《饥荒》联机版地图逻辑结构地图构成详解,一起来看看吧。
研究了一下联机版的地图生成方式。在学习到如何创建地图的同时,也了解到了饥荒本身的地图生成机制。
感觉了解这些机制,对玩家提高探图效率,节约时间还是非常有帮助的,所以就来写一写。
限于时间精力,只写联机的,如果对单机的有兴趣,自己类比着看下代码也能明白。
首先,关于地图的大部分代码,全部都储存在map文件夹下。不知道该怎么用相关函数的时候,参照这个文件夹里的代码就好。
然后,再说一说饥荒地图的逻辑结构。下面的专有名词,由于我不清楚确切的中文翻译,就全部采用其英文名行文了。
prefab,是地图里最基础的东西,也就是所谓的最小元,一颗草,一块燧石,一棵树,都是一个prefab。这是饥荒地图里最小的构成元素。
room,包含了一系列prefab的一块区域。典型的代表是猪王村,这个村子的一整块区域就是一个room。可以为一个room设置它的地皮属性,prefab的丰富程度,各个prefab之间出现比例,还可以直接设定出现多少个prefab。
task,包含了一系列的room的一块非常大的区域。因为包含着地皮相似或相同的room,所以在地图上常常以所谓地形的形态呈现出来。可以为一个task设定选取哪几种room以及相应的数量,还可以设定作为背景的room(在room的数量不足时,偶尔会填充进来。),更为重要的,可以设置keys和locks,这决定着生成世界时,各个task之间要怎样连接起来。
taskset和level,taskset是联机版最近才新增加的东西,单机只有level。taskset基本就是包含了一系列的task,然后level就是比taskset更高的一级,除了控制taskset之外,还可以控制世界生成的其他参数,比如说春夏秋冬的长度之类的。由于现在不是在讲怎么做mod,这一部分就不细讲了。
在level之上还有一个叫游戏类型的东西,但也和本贴关系不大,不细讲。
然后有一些比较特殊的,要单独讲。
location,也就是出生的区域,从各个属性设置上,可以看作是一个room。特殊之处在于,它不归属于任何一个task,但有可能在生成的时候,融入到其它的task中去。如果在taskset里设定了valid_start_tasks,它就只会融入指定的valid_start_tasks之一。同时,还可以设计出生时的set
piece。那个经典的恶魔之门就是典型的set piece。如果你开永夜的话,你会发现还会多了一个火坑,这就是略微改变了出生的set piece的效果。
2、set piece,或者是static layout
或者是layout。这里说到的这三个东西在本质上都是一样的:都是以固定形式存在,而且可以被嵌入到世界中去的东西。典型代表就是各种奇遇了,比如蘑菇圆环啊,高鸟洞穴啊,各种前辈啊之类的。他们既可以被嵌入到room当中――比如猪王村的猪王和它周围的方尖塔就是被嵌入到猪王村的room里的;也可以在taskset里设置,散布在各个task里――比如默认地上世界会有8个虫洞,9个鹿鹅巢穴,1个龙蝇领地,2个复活石和10个洞穴入口,分布在各个不同的task里,这些分布的task是可以自己设定的。
3、keys和locks。这两张表是task中的属性选项,关系着世界生成时,各个task怎么结合。在map文件夹下的lockandkey.lua文件里有lock和key的对应关系描述,当一个task的key和另外一个task的lock匹配的时候,他们就会结合在一起。不过有时候凑不出匹配的,那就只能胡乱结合了。需要说明的是,一个lock可以有多个key和它匹配。结合还设计到start
task的选取,具体操作我已经研究实践过了,但这不是本贴的重点,就不详细说明了。
讲完这些基础知识,就可以来详细地说一下地图的构成了,这里只说饥荒地上世界的默认构成,地下世界或者说其他设置,构成的方式和地上世界是不一样的。
打开maptasksetsforest.lua
然后你可以在这个文件里看到AddTaskSet这个函数,里面的参数就是要详解的内容了。这个函数使用了两次,第一次,第一个参数为"default"的,就是我们默认世界的生成参数。
这一段结合着代码来说,为了方便不喜欢阅读代码,想要直接得到结论的人,代码的释义放在前面,结论放在后面。不想看代码的可以直接跳过这一楼。
"Make a pick",
"Dig that rock",
"Great Plains",
"Squeltch",
"Beeeees!",
"Speak to the king",
"Forest hunters",
"Badlands",
"For a nice walk",
这个tasks表,就设定了每次开世界,必然会有的几个task
numoptionaltasks=6,
optionaltasks={
"Befriend the pigs",
"Kill the spiders",
"Killer bees!",
"Make a Beehat",
"The hunters",
"Magic meadow",
"Frogs and bugs",
"Mole Colony Deciduous",
"Mole Colony Rocks",
"MooseBreedingTask",
numoptionaltasks 就设定了会随机出现的task的数量,而后面的optionaltasks 表,就是所有可能会被抽取的task。
valid_start_tasks={
"Make a pick",
valid_start_tasks
就是设定可能会作为世界生成最开始的task的集合。最开始的task,是会因为它的keys和locks而影响到世界生成的样子的。
set_pieces={
["ResurrectionStone"]={ count=2, tasks={"Make a pick", "Dig that rock",
"Great Plains", "Squeltch", "Beeeees!", "Speak to the king", "Forest hunters",
"Badlands" } },
["WormholeGrass"]={ count=8, tasks={"Make a pick", "Dig that rock", "Great
Plains", "Squeltch", "Beeeees!", "Speak to the king", "Forest hunters",
"Befriend the pigs", "For a nice walk", "Kill the spiders", "Killer bees!",
"Make a Beehat", "The hunters", "Magic meadow", "Frogs and bugs", "Badlands"}
["MooseNest"]={ count=9, tasks={"Make a pick", "Beeeees!", "Speak to the
king", "Forest hunters", "Befriend the pigs", "For a nice walk", "Make a
Beehat", "Magic meadow", "Frogs and bugs"} },
["DragonflyArena"]={ count=1, tasks={"Badlands"}},
["CaveEntrance"]={ count=10, tasks={"Make a pick", "Dig that rock", "Great
Plains", "Squeltch", "Beeeees!", "Speak to the king", "Forest hunters",
"Befriend the pigs", "For a nice walk", "Kill the spiders", "Killer bees!",
"Make a Beehat", "The hunters", "Magic meadow", "Frogs and bugs"} },
set_pieces
就是设定各个奇遇了,这里ResurrectionStone(复活石),WormholeGrass(虫洞),都可以算是奇遇。后面的count就是数量,tasks就是设定这些奇遇可能出现在哪些task上。
然后来对上面的代码做分析。为了加强和游戏的联系感,我们分析一下各个task对应的所谓地形。相应的代码可以在maptasks文件夹下查到,这里就不多说了,直接说代码的解析结果--也就是每个task的room组成。
room的大小,虽然不固定,但总体上是差不多的,决定一个task有多大,就看room的总数量有多少了。另外,room的数量是可以设定随机的。不过,官方的习惯,差值不会超过2。
下面会先列出组成的room,然后解释各个room的特点(资源的数量和种类,以及一些特殊的奇遇或者特点等等)
资源的数量,如果固定了数量的,就直接写出数量,否则用room的参数中的distributepercent来表示
0.1以下,匮乏
0.1-0.2 适中
0.2-0.3 丰富,
0.3以上 非常丰富
资源比例的数字,只是影响资源的分布比例,只在与其他资源相互比较时会有意义,其本身的绝对值是没有意义的。资源的总数量,完全由distributepercent决定。
饥荒联机版
饥荒新手攻略
饥荒热门攻略
转载请注明:破洛洛(谢谢合作)
上一篇文章: 下一篇文章:
网友评论:  看到不少人求饥荒地图全开方法,蟹么么给大家分享个方法,理论全版本通用,至少从4.10开始之后的中英文版本适用。
  找到游戏中main.lua,文件,地址在dont_starve\data\scripts,用记事本打开,拖到最后,在最后一行(即ModManager:LoadMods()——这一行前面)添加以下代码,保存,进游戏后ctrl+1地图全开,ctrl+2瞬移到鼠标所在位置。建议修改前保存原文件!!!  --地图全开  TheInput:AddKeyUpHandler(KEY_1, function()  if TheInput:IsKeyDown(KEY_CTRL) then  local MainCharacter = TheSim:FindFirstEntityWithTag("player")  local map = TheSim:FindFirstEntityWithTag("minimap")  if MainCharacter and map then  local x, y, z = MainCharacter.Transform:GetWorldPosition()  map.MiniMap:ShowArea(x, y, z, 10000)  end  end  end  );  --传送  TheInput:AddKeyUpHandler(KEY_2, function()  if TheInput:IsKeyDown(KEY_CTRL) then  local player = TheSim:FindFirstEntityWithTag("player");  player.Transform:SetPosition(TheInput:GetMouseWorldPos():Get())  end  end  )  以上就是蟹么么为大家带来的饥荒:/game/10681.html地图全开方法,希望能帮到大家,若还有任何疑问,欢迎向勤劳又能干的本蟹提问哦!  转自斗蟹网:
楼主发言:1次 发图:0张 | 更多
请遵守言论规则,不得违反国家法律法规回复(Ctrl+Enter)当前位置: >
饥荒地图怎么全开 饥荒地图全开秘籍代码
作者:皮卡
饥荒地图全开秘籍代码 饥荒地图怎么全开。很多玩家在玩饥荒的时候不想去探地图,那么如何让饥荒地图全开呢?今天小编给大家分享饥荒地图全开秘籍代码,一起来看吧。
在游戏中打开控制台,输入如下代码:
minimap=TheSim:FindFirstEntityWithTag(&minimap&)
minimap.MiniMap:ShowArea(0,0,0,10000)
两行分别输入,注意区分大小写。
18183手游网发布此文仅为传递信息,不代表18183认同其观点或证实其描述。
最新最全的独家礼包、游戏资讯
还有各种活动、八卦等你来!
扫描二维码或搜索微信号:sylt_18183
果断关注涨姿势吧!
热门安卓游戏
安卓修改精选
新游期待榜
热门手游榜

我要回帖

更多关于 百度地图添加覆盖物 的文章

 

随机推荐