找回密码
 防止广告:仅有QQ可以登录注册

QQ登录

只需一步,快速开始

搜索

免费自助文章链接,禁止站外链接:一次最多7天

文视教程 修改服务器天气

enzR 2020-2-22 20:18:07 显示全部楼层 阅读模式
声明一点:
我英语不是特别好,所以某些地方用了翻译工具。
如果有什么错误大家可以提出 我及时改正。

服务器新版本1.07 我感觉会经常下雨  于是我就想着修改一下
首先 服务器的天气命令是在 DayZServer\mpmissions\dayzOffline.chernarusplus\init.c  这个文件里  打开它
打开之后 最上面的几行代码就是控制服务器天气的代码:
Weather weather = g_Game.GetWeather();

weather.MissionWeather(false);    // false = use weather controller from Weather.c

weather.GetOvercast().Set( Math.RandomFloatInclusive(0.4, 0.6), 1, 0);
weather.GetRain().Set( 0, 0, 1);
weather.GetFog().Set( Math.RandomFloatInclusive(0.05, 0.1), 1, 0);

但是我发现  它过于简单了 并且还调用别的函数:Weather weather = g_Game.GetWeather();
于是乎 我就反编译了  scripts.pbo 并且找到了 Weather.c 研究了一波。

研究成果:
1、天气一共有3种:雾天、雨天、阴天;还有个辅助性气候:风(任何天气都有可能起风)
2、天气出现的概率是随机性的(随机0至1之间的一个数,下面会详细说)
3、服务器随机出来的天气是按照队列储存在storage_xxx存档里(具体在哪个文件我也没仔细研究),并且根据读取存档再体现到游戏里。
     举个栗子:第1个天气是雨天(持续:3600),第2个天气是阴天(持续:1800),第三个天气是雨天(持续:600)
     游戏体现:第1个天气持续3600秒(游戏时间)→结束→第2个天气持续1800秒(游戏时间)→结束→第3个天气持续xxx秒 ……以此类推
     特别说明:天气的持续时间最小是300秒(5分钟),最长是3600秒(1小时);并且是根据游戏时间流失的。

差不多说到这里,2楼放我服务器自用的天气参数
游客,如果您要查看本帖隐藏内容请回复

大神点评138

 楼主| enzR 2020-2-22 20:19:12 显示全部楼层
本帖最后由 enzR 于 2020-2-22 21:14 编辑

上面也说过了,因为天气是保存在存档文件里的;
所以 修改完也要等服务器运行一段时间,新的天气才会生效 :)
Weather weather = g_Game.GetWeather();
weather.MissionWeather(false);// false = use weather controller from Weather.c

// 原来的天气参数,注释掉即失效。
// weather.GetOvercast().Set( Math.RandomFloatInclusive(0.4, 0.6), 1, 0);
// weather.GetRain().Set( 0, 0, 1);
// weather.GetFog().Set( Math.RandomFloatInclusive(0.05, 0.1), 1, 0);

// 阴天的持续时间, 900=最短时间,1800=最长(秒,按游戏时间流失)
weather.GetOvercast().SetForecastTimeLimits(900, 1800);
// 雨天的持续时间,300=最短时间,900=最长(秒,按游戏时间流失)
weather.GetRain().SetForecastTimeLimits(300, 900);
// 雾天的持续时间,600=最短时间,1200=最长(秒,按游戏时间流失)
weather.GetFog().SetForecastTimeLimits(600, 1200);
// tip:
//  1楼说过的,持续时间最短不能少于300,最长不能超过3600
//  如果想设定持续时间为固定时间,最短=最长即可  例如:900, 900

// Math.RandomFloatInclusive() 里的数值的差越少,出现的概率越低。
// 第2个数不能低于第1个数,并且最大只能是1
weather.GetOvercast().Set(Math.RandomFloatInclusive(0.0, 0.6), 0, 0);
weather.GetRain().Set(Math.RandomFloatInclusive(0.0, 0.3), 0, 0);
weather.GetFog().Set(Math.RandomFloatInclusive(0.0, 0.1), 0, 0);

// 最大的风力(单位:m/s),默认是10,也就是每秒10米的风速。
weather.SetWindMaximumSpeed(15); // 这里是修改成 15m/s。
复制粘贴的时候 注意粘贴的位置  别把别的代码给覆盖了
//INIT WEATHER BEFORE ECONOMY INIT------------------------
粘贴到这里
//INIT ECONOMY--------------------------------------

回复 支持 1 反对 0

使用道具 举报

时间真话 2020-2-22 21:03:13 显示全部楼层
6666666666666666666666666666666
回复 支持 反对

使用道具 举报

jiangzcao 2020-2-22 21:26:51 显示全部楼层
大神级别,66666
回复 支持 反对

使用道具 举报

NiuShuhao 2020-2-22 23:20:47 显示全部楼层
66666666666666666666666666666666666
回复 支持 反对

使用道具 举报

chimera 2020-2-23 07:29:44 显示全部楼层
666666666666666
回复 支持 反对

使用道具 举报

qingweixiao 2020-2-23 11:02:14 显示全部楼层
dddddddddddddddddd
回复 支持 反对

使用道具 举报

xmmyu 2020-2-23 11:07:53 显示全部楼层
这个牛逼,学习了。
回复 支持 反对

使用道具 举报

xmmyu 2020-2-23 11:23:40 显示全部楼层
复制的时候注意换行,哈哈哈哈,别问我怎么知道的。
回复 支持 反对

使用道具 举报

dkleo 2020-2-23 11:24:30 显示全部楼层
1111111111111111111111111
回复 支持 反对

使用道具 举报

tang904191857 2020-2-23 16:53:08 显示全部楼层
本帖最后由 tang904191857 于 2020-2-23 16:54 编辑

楼主写得漂亮
回复 支持 反对

使用道具 举报

444157551 2020-2-23 17:45:39 显示全部楼层
66666666666666666666
回复 支持 反对

使用道具 举报

三石945 2020-2-23 20:07:28 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

zhouyanguo 2020-2-23 23:45:56 显示全部楼层
回复 支持 反对

使用道具 举报

949246880 2020-2-24 00:38:28 显示全部楼层
asdasdasdasdasd
回复 支持 反对

使用道具 举报

a129045780 2020-2-24 01:37:01 显示全部楼层
6666666666666666
回复 支持 反对

使用道具 举报

xiaokeboy 2020-2-24 02:42:31 显示全部楼层
学习了!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

249332116 2020-2-24 12:23:50 显示全部楼层
111111111111111111
回复 支持 反对

使用道具 举报

w347977008 2020-2-24 13:48:54 显示全部楼层
111111111111111
回复 支持 反对

使用道具 举报

happy咩 2020-2-24 15:36:09 显示全部楼层
66666666666666
回复 支持 反对

使用道具 举报

自动武器 2020-2-24 18:01:57 显示全部楼层
123333333333333333333333
回复 支持 反对

使用道具 举报

misuccccc 2020-2-24 23:32:19 显示全部楼层
111111111111111111
回复 支持 反对

使用道具 举报

hanyiran666 2020-2-25 01:08:28 显示全部楼层
66666666666666666666666
回复 支持 反对

使用道具 举报

韩昊杰i 2020-2-25 03:04:34 显示全部楼层
123123123123123
回复 支持 反对

使用道具 举报

2658760876 2020-2-25 21:22:37 显示全部楼层
666666666666666666
回复 支持 反对

使用道具 举报

331914882 2020-2-26 18:45:20 显示全部楼层
666666666666666666666
回复 支持 反对

使用道具 举报

zmwwxa 2020-2-26 20:55:56 显示全部楼层
回复 支持 反对

使用道具 举报

qqq110158 2020-2-26 23:11:57 显示全部楼层
3232323112
回复 支持 反对

使用道具 举报

laoguiuncle 2020-2-27 13:37:02 显示全部楼层
6666666666666666666666666666
回复 支持 反对

使用道具 举报

小超人 2020-2-27 14:11:14 显示全部楼层
123123123123123123
回复 支持 反对

使用道具 举报