|
地图文件制作篇: gs配置(这里以a33举例)
首先 我们要确定一下新地图区域基本有2种模式无非是world_servers和instance_servers 很明显世界服务器类别是所有人都可以共同进入 instance_servers 服务器是团队副本 所以在制作新地图的之前要确定好大类别 新资料片为world_servers 所以在gs.conf的一开始[General]的world_servers类别内添加a32;a33;
确定完大类别 我们仿照类似的世界副本
[World_is33] 世界副本
index = 73 顺序根据is31推断
tag = 133 地图ID
根据客户端文件确定
base_path = a33/ 路径地址
limit = allow-root; 限制
grid = {16060,50,-2000.0,-2000.0}
base_region = {-1024.0,-1024.0} , {1024024.0}
local_region = {-1024.0,-1024.0} , {1024024.0}
基本区域 根据客户端的p.sev 确定 只要能覆盖p.sev里所有坐标就行
;player_capacity = 8192
;npc_count = 20000
;matter_count = 163840
;副本里特殊player逻辑,通过制定player逻辑的三个部分的cid来完成
;这几个值得设定非常敏感,不能随意设定,与程序代码耦合性非常强
cid = 0,23
[Terrain_is33]
szMapPath = map
nAreaWidth = 512
nAreaHeight = 512
nNumAreas = 4 地图数量根据客户端map文件确定
nNumCols = 2 根据客户端确定
nNumRows = 2根据客户端确定
★还有一点很重要 nNumeClos*nNumRows=nNumAreas
vGridSize = 2.0f
vHeightMin = 0.0f
vHeightMax = 800.0f
[MsgReceiverTCP_is33]
type = tcp
listen_addr = INSTANCE33:11943 根据is31推断
so_sndbuf = 16384
so_rcvbuf = 16384
tcp_nodelay = 0
listen_backlog = 10
[MsgReceiverUNIX_is33]
type = unix
listen_addr = /tmp/gssock_is33
so_sndbuf = 16384
so_rcvbuf = 16384
listen_backlog = 10
这时肯定有人要问根据客户端文件究竟是哪些文件 不急 等我慢慢说来
地图数量请查看客户端map文件 比如a33里你会发现一共a33_4.t2bk
最大数量到4 那就能确定地图数量为4
我们用pck文件解开 config.pck 找到一个叫instance.txt的文件
[World_is33]
index = 73
tag = 133
base_path = a33/
limit = allow-root;
grid = {80,80,50,-2000.0,-2000.0}
base_region = {-1024.0,-1024.0} , {1024024.0}
local_region = {-1024.0,-1024.0} , {1024024.0}
;player_capacity = 8192
;npc_count = 20000
;matter_count = 163840
;副本里特殊player逻辑,通过制定player逻辑的三个部分的cid来完成
;这几个值得设定非常敏感,不能随意设定,与程序代码耦合性非常强
cid = 0,23
[Terrain_is33]
szMapPath = map
nAreaWidth = 512
nAreaHeight = 512
nNumAreas = 4
nNumCols = 2
nNumRows = 2
vGridSize = 2.0f
vHeightMin = 0.0f
vHeightMax = 800.0f
[MsgReceiverTCP_is33]
type = tcp
listen_addr = INSTANCE33:11943
so_sndbuf = 16384
so_rcvbuf = 16384
tcp_nodelay = 0
listen_backlog = 10
[MsgReceiverUNIX_is33]
type = unix
listen_addr = /tmp/gssock_is33
so_sndbuf = 16384
so_rcvbuf = 16384
listen_backlog = 10
众所周知 gs启动项配好后 就进行测试 看看能不能顺利通过 一般大类别分辨错误的话基本log里会出提示这个不用担心
我们首先来看下地图文件的组成 airmap map movemap watermap
npcgen sev文件 方法还是一样根据类似副本决定比如a33 我们可以取a26 作为模版 说句实话 对于airmap movemap我没有过多的研究 只是根据客户端的area的数量决定其文件数量
对于map里的文件我也没有更好的办法唯一的办法就是替换法 使用其他副本的.hmap文件替换 有人这办法真笨确实但没更好的办法 地图数量需要几个 就复制几个.hmap 按顺序作为1.hmap 2.hmap== .conf文件里的一些宽度啥的配置参照想关副本和gs
之前有人传了个工具给我 修改地图高度文件的软件 结果我研究时中了彩那东西加壳软件很牛比 感染我所有exe文件后来就放弃研究高度数据了;这时候肯定有人会说了 这么简单还用的着你说明?呵呵别忙下定论
下面给你们说个很有趣的测试:
对于地图.hmap文件我做了个很有趣的测试 结果不影响正常运行
这个测试就是我任意取一个.hmap文件 然后用UE打开了.hmap文件 全部删空 此时的.hmao文件字节为0 然后我把所有0字节的.hmap替换掉原先的.hmap文件结果运行正常 进入副本跟原先的.hmap效果一样
额 此时说明了什么?大家自己想
测试二:我后来又做了一个实验
对于服务端东西的研究 我一直主张从客户端着手 所以我研究了下客户端
我有了个大胆的想法 于是我把data文件所有的后缀名全改为了.hmap文件复制到了服务端的map下 启动参数 额 一切正常效果一样
|
|