关于 Nova Weather
Nova Weather 是 Rust 原生服务器端天气系统的直接替代品。它非常可定制,具有独特的功能,例如带有事件的时间线配置文件,以及使其脱颖而出的特殊功能,例如支持特定区域的天气系统。
请注意:这个 mod 没有必需的依赖项,可以在没有 Oxide 的情况下开箱即用。只有当你需要 zone 支持时,你才需要 Oxide 和 ZoneManager 插件。
让我们列出 Nova Weather 的一些最佳功能。您将在下面找到 Mod 中每个主要功能的描述。
首先,我们有 Profile Timelines。这使您可以通过引入交错的元素而不是一次引入所有元素来仔细构建您的天气系统。例如;你可以先制造一些云,然后在 30 秒后让它们变暗,当它们完成后,慢慢开始下雨,雨在 5 分钟内增加,直到它达到最大强度。
您可以玩大约 20 种天气属性,从云层覆盖到雾度再到风速,甚至覆盖温度。
现在,你第一次可以使用 Nova Weather 对 ZoneManager 插件的支持在你的世界中激活多个独立的天气系统。你可以让一个岛屿下雨,让另一个岛屿变成热带岛屿。您可以为 Boss 创建区域,随着您靠近,天空会因雷云而变暗,或者您可以让您的管理员婴儿床始终阳光明媚,而世界其他地方正在经历大雨。可能性是无穷无尽的。
想让您的 VIP 们阳光明媚地开始美好的一天吗?想用一场永久的风暴来打击努力者吗?现在可以通过使用权限来完成此操作。Nova Weather 支持基于权限的覆盖,为您提供最大的灵活性。虽然这是一个 Harmony 模组,但 Nova Weather 将连接到 Oxide 的权限系统,让您像以前一样管理权限。如果未安装 Oxide,它将以 Oxide 为模型启动自己的权限,以便您能够使用您习惯的命令。
请注意:如果你使用的是 Nova Weather 的原生权限,你应该用 “nw.perm.<command> <arguments> 来代替 ”o.<command> <arguments>”。
您不仅可以使用 Profile Timelines 功能来创建美丽而逼真的天气模式,还可以根据您运行的任何天气来使事情发生。
使用时间轴,您可以创建属性元素,也可以创建命令元素。如果您创建一个命令元素并将其放置在时间轴中的 30 秒标记处,则该命令将在该配置文件中经过 30 秒时执行。
想在雷雨中雷声开始时生成 Boss 吗?想在雨停时开始活动吗?想在你开雾 10 分钟后给每个人一些货币吗?!您可以使用预定命令来做到这一点!
所有天气系统都基于一些简单的概念,其中最重要的是 Profiles。配置文件确定应在 World 中显示的内容。您将拥有 Clear、Rain、Fog 等的配置文件。这些配置文件作为单独的文件存在于您的配置文件夹中,并且完全可以互换。
创建了一个很棒的天气配置文件,但讨厌必须混合和匹配配置文件的麻烦?只需拖放您的配置文件即可。他们只需将它们拖放到他们的 profiles 文件夹中,即可立即使用。分享吧!
具有高级特性URES 带来了一些高级配置。不过,我们试图让它尽可能简单,在下面的 配置 章节中,我们将解释所有功能。有各种各样的设置可以让你的天气看起来很棒,或者为低端机器优化天气系统的性能。您可以选择是否使用 ZoneManager 支持,您可以调整系统每秒更新的次数,等等。包含大量 RCON 命令 (20+!),您甚至可以在不查看 JSON 文件的情况下完成大部分操作。
该 mod 使用非常全面的默认配置进行安装,旨在模仿原生天气系统,并在安装时进行一些改造,因此您可以安装并忘记它。默认配置文件具有时间线,并调整了加载机会以恢复一些漂亮的天气类型。
Nova Weather 为您提供了大量命令,让您作为管理员的生活更轻松,并让您完全控制服务器的天气。现在不喜欢某个特定的个人资料?跳过它!想要炫耀您的个人资料,但乐趣仅在 1 分钟开始?跳到时间线中的那一刻!所有命令都要从 RCON 或服务器控制台执行,而不是在游戏中执行!
所有命令必须以 ‘novaweather’ 开头。或“nw.”。为清楚起见,下面的列表使用前者,但您可以使用 ‘nw.’ 作为替代来缩短您的命令。
用 “<argument>” 指示的参数是必须与命令一起使用的,而 “(argument)” 表示可选参数。
请注意:为了能够使用任何与区域相关的命令,您需要安装 Oxide 并加载 ZoneManager 插件。
您将在下面找到所有可用命令的列表以及简短说明。
基本命令
novaweather.reload
重新加载 mod 并从磁盘重新加载所有配置文件,并检查 ZoneManager 区域是否存在。如果你已经购买或下载了配置文件到你的 Profiles 文件夹中,请重新加载 Mod 以使其生效。
novaweather.report (climate)
如果未设置可选的 climate 参数,则报告所有气候的当前天气状况。如果是,则会将报告限制为仅该气候。
novaweather.tickrate (number)
如果未设置数字,将返回当前滴答率。如果传递了一个数字,则会将滴答率设置为该数字。滴答率决定了天气系统计算和更新的频率,数字越低意味着越频繁。它基本上是说“每 <number>th frame 更新一次”,其中 1 是可能的最低数字,50 是最高数字。数字越小,过渡越平滑。
气候相关命令
novaweather.globalclimate (climate)
如果设置了 climate 参数,则会将全球天气系统的 climate 设置为该气候。如果未设置 climate 参数,将返回当前分配给全球天气的气候名称。
Novaweather.load <climate> <profile> (transition)
用于立即强制将给定的剖面加载到气候中。如果数字过渡参数,它将覆盖配置文件的 Set transition time。“nw.load default default_clear 10” 将加载default_clear配置文件并将过渡覆盖到 10 秒,以加快配置文件的显示速度。
novaweather.loadnext <climate> <profile>
将强制设置气候的下一个配置文件。当当前天气配置文件到达末尾时,将自动加载下一个配置文件。
novaweather.next <climate> (transition)
强制结束当前活动配置文件的时间轴,并加载队列中的下一个配置文件。如果传递了数字过渡参数,它将覆盖配置文件的设置过渡时间。
novaweather.pause <climate>
暂停所提供的气候的时间轴。暂停气候将有效地将当前天气无限期地冻结在其当前状态,直到取消暂停。
novaweather.unpause <climate>
暂停命令的 ‘counter charm’。取消暂停提供的气候时间轴(如果已暂停)。
novaweather.skip设置为 <climate> <seconds>
将当前配置文件的时间轴跳到提供的秒标记处。如果输入的秒标记大于时间轴的持续时间,则会将其跳到最后一帧,从而有效地结束配置文件的时间轴。
novaweather.listclimates
为您提供所有正在运行的气候及其状态的简洁列表,以及所有已分配配置文件的列表。
Zone related commands
novaweather.disablezones
完全禁用 ZoneManager 支持。将停用所有非全球气候以节省处理能力。
novaweather.enablezones
基本上是 disablezones 的“计数器魅力”。重新启用所有禁用的区域并启动所有非全球气候(如果存在)。
novaweather.disablezone <zone>
禁用单个区域的覆盖。就是这样。
novaweather.enablezone <zone>
上述的 brother-command 的命令。再次启用该区域。
novaweather.showzone <zone>
更像是一个调试函数,显示给定区域的线框,就像您正在使用 ZoneManager 编辑它一样。适用于确定区域的过渡缓冲区。
novaweather.zoneclimate <zone> (气候)
这是一个很大的问题。这将根据提供的参数做一些事情;
– 如果设置了 climate 参数并且该区域已经在 Nova Weather 中注册,它将更改该区域的气候并立即加载它。
– 如果气候已设置但区域尚未注册,它将注册该区域并设置该区域的气候并加载它。
– 如果未设置 climate 参数但已注册区域,则将返回该区域的设置气候。
novaweather.removezone <zone>
与你的想法相反,这并没有删除实际的 ZoneManager 区域。它只是将其从 Nova Weather 的配置中删除,从而删除任何区域覆盖。如果您只是想暂时残疾,这是永久性的e 它使用上面列出的 ‘disablezones’ 命令。
novaweather.listzones
列出 Nova Weather 中配置的所有区域及其状态和气候。
与配置文件相关的命令
novaweather.getprofile <climate>
返回给定气候的当前活动配置文件的名称。
novaweather.assignprofile <climate> <profile> (chance)
将配置文件添加到气候的配置文件列表中,以包含在轮换中。如果设置了 chance 参数,将覆盖默认值 “100”。请注意,“chance” 并不是字面上的意思是 chance %,它是一个加权随机的权重,只是命名为 “chance” 以确保人们理解它的预期用途。
novaweather.unassignprofile <climate> <profile>
上述命令的对立面。将从气候的剖面旋转中永久删除剖面。
novaweather.setprofilechance <climate> <profile> <chance >
在给定气候剖面列表的上下文中设置给定剖面的几率(权重)。
novaweather.listprofiles
列出加载到 Nova Weather 内存中的所有配置文件。如果您刚刚创建了一个配置文件,但未在此列表中看到它,请使用此列表中的 reload 命令重新加载插件,然后重试。
Nova Weather 的配置非常深入,但我们将尝试使其尽可能轻松。
这个 Mod 有两种不同类型的配置文件,它们是单数 Configuration.json 文件和单独的配置文件。我们将在本节中介绍这两个部分。Nova Weather 的所有配置文件都可以在以下位置找到:
ROOT / HarmonyMods_Data / NovaWeather (/ Profiles)
在深入研究这些选项之前,您需要清楚一些关键概念,以便您充分了解自定义服务器天气的所有方法。
配置文件
配置文件是具有属性的单独文件。它们包含所有实际天气数据,例如降雨量、云量等。它本身没有任何作用,它基本上只是一个时间线,向气候展示什么天气。
气候
其次,有气候。气候是每个单独且孤立的天气系统,并分配了一个或多个配置文件以循环浏览。他们读取配置文件数据并对过渡、时间轴等进行所有计算。他们是手术的大脑。
区域
最后是区域。区域是向 Nova Weather 注册的 ZoneManager 区域,包含区域 ID 和气候等信息,这些信息应该呈现给该区域内的客户端。这本身并没有什么关系,它只是告诉我们用另一种气候来取代全球天气气候。
气候都在背景中不断循环。将气候应用于一个区域根本不会改变气候,它只是在某种程度上认同它。气候总是很明显ng the mod “嘿伙计,rain 应该是 1。风应为 0”。它不在乎是否有东西在听。
然后,该区域可以连接到它,听到气候在说什么,然后向玩家展示。这使得您可以拥有 10 个共享 1 个气候的区域,从而节省大量处理能力。
配置文件:Configuration.json
好了,让我们深入了解我们的第一部分配置。我们首先来看一下 Configuration.json。请注意,此配置可能会更改,下图可能无法完全准确地描述配置文件结构的当前状态。
启用修改 (true/false)
一个布尔值,用于打开或关闭 mod 而不必卸载它。如果设置为 false,将启用原生天气系统。
启用调试日志 (true/false)
将打印相当详细的日志,旨在让开发人员更深入地了解潜在问题。如果您要联系支持人员,请确保包含将此设置为 true 的日志。
全局选项 -> 如果服务器为空,则暂停天气 (true/false)
暂停所有气候的时间线以停止处理,因为无论如何都没有人在那里享受它。我想不出将其设置为 false 的真正理由,除非它是出于测试目的,但您可以选择。
全局选项 -> 全球天气气候
确定将应用于全球天气的气候。不言自明。
ZoneManager 选项 -> 使用 ZoneManager 区域 (true/false)
如果设置为 true,则会将 (a) 气候应用于区域气候列表中的区域。如果设置为 false,这将完全禁用所有区域功能,并将 Mod 限制为仅全局天气。
ZoneManager 选项 -> ZoneManager zone climates
这是您注册和修改区域信息的地方。区域可以单独禁用,设置气候,并具有修改后的过渡缓冲区。更多内容见下文。
ZoneManager 选项 -> ZoneManager zone climates -> Enabled (true/false)
启用或禁用此特定区域具有气候覆盖。
ZoneManager 选项 -> ZoneManager 区域气候 -> 气候
应向该区域内的客户端显示的气候。
ZoneManager 选项 -> ZoneManager 区域气候 -> 区域过渡缓冲区百分比 (1-100)
应用作过渡缓冲区的区域半径百分比。当您进入某个区域时,您不希望立即出现另一种天气类型。这就是区域过渡缓冲区省力而生的地方;天气类型在两者之间逐渐过渡,直到您身体健康并适当地进入该区域。如果您将其设置为 50%,您将看到一半的区域发生转变。进入该区域一半后,您将看不到“外部”气候的痕迹,只会看到该地区的气候。
ZoneManager 选项 -> ZoneManager 区域气候 -> 最大区域过渡缓冲区尺寸(米)
有了这个,您可以对t设置绝对限制。区域缓冲区大小。如果您不完全知道要放置的区域的尺寸,则此方法效果最佳。这使得 transition buffer 不会超过区域边界的给定米数。因此,如果您将缓冲区百分比设置为 50%,但将最大米数设置为 10,则缓冲区将变为 50%(如果缓冲区短于 10 米),或者缓冲区将达到 10 米
。请注意:由于没有可靠的方法来计算在长方体形状区域内行驶的距离,因此没有过渡缓冲区。该 Mod 仍然可以运行,尽管天气不会平稳地从长方体形状区域过渡到长方体形状的区域。
有关径向区域内缓冲区的直观表示,请参见下图,其中“%”表示缓冲区百分比。
气候定义
这将包含要使用的气候的定义。气候定义非常简单,我们只需要一个 enabled 状态和一个分配的配置文件列表。
气候定义 -> 已启用
这将启用或禁用气候。禁用的气候不会进行任何计算,也不会将任何数据传播给玩家。如果您计划了一个特殊活动,您想使用特定的气候,但又不想在其他地方意外使用它,您可以禁用它。
气候定义 – > 配置文件
这是已分配的配置文件列表。就是这样。
气候定义 -> 配置文件 -> 配置文件
要分配给此气候的配置文件的名称。请注意,名称必须完全匹配,区分大小写。
气候定义 -> 剖面 -> 机会
这是此剖面的几率(权重)。气候将根据其权重循环显示所有剖面;如果一个配置文件的权重为 1,另一个配置文件的权重为 10,则后者被选为下一个要加载的配置文件的可能性将增加 10 倍。权重没有 100 的上限,它只是命名为 “chance”,以确保每个人都了解它的功能。
从版本 1.1.0 开始:
更新 1.1.0 引入了基于权限的替代。这会在你的配置中添加一个部分:
“Permissions options”: {
“Use Oxide permissions if possible (true/false)”: true,
“Permission climate overrides (set ‘disabled’ to disable)”: {
“novaweather.vip”: “default_clear”,
“novaweather.disabled”: “disabled”
}
}
虽然非常基本且不言自明,但它添加了以下字段:
如果可能,请使用 Oxide 权限 (true/false)
如果安装了 Oxide,这告诉 mod 使用 Oxide 权限。如果未安装 Oxide,则忽略此选项并使用本机权限。如果将其设置为 false,则无论 Oxide 的状态如何,都将始终使用本机权限。
权限环境覆盖(设置为 ‘disabled’ 以禁用)
这些是实际的覆盖。在键值对中工作,键是权限,值是气候 th在它应该使用。请注意,如果 give 权限是 novaweather 特定的权限,则必须使用 ‘novaweather.’ 前缀完全指定。因此,如果您愿意,您也可以在此处插入另一个 Mod 的权限。
如果气候设置为“禁用”,用户将看不到不断变化的天气,因为 Mod 会在计算天气变化时跳过该用户。这将允许其他 Mod 影响该用户的天气。
配置文件:Profiles/*.json
说完这些,让我们深入研究配置文件配置。
{
“过渡时间(秒)”: 300,
“父配置文件”: “default_overcast”,
“持续时间”: {
“类型”: “范围”,
“最小秒数”: 900,
“最大秒数”: 1800
},
“基本属性”: [
{
“属性”: “风”,
“值”: 0.8
},
{
“属性”: “雨”,
“值”: 1
}
],
“steps”: {
“0”: [
{
“type”: “property”,
“property”: “cloud_coverage”,
“value”: 0.8,
“fade (seconds)”: 60
}
],
“60”: [
{
“type”: “property”,
“property”: “cloud_attenuation”,
“value”: 0.7,
“fade (seconds)”: 30
}
]
}
} 过渡
时间(秒)
确定上一个配置文件与此配置文件之间的过渡持续时间。当气候在配置文件的时间轴之间循环并且时间轴结束时,将加载下一个配置文件,并且到该配置文件的过渡将从最后一个配置文件的最后一帧开始。如果将此设置为 0,则新配置文件将弹出。将此设置为 10 秒后,旧配置文件将消失,而新配置文件将出现。
家长资料
大约有 20 种天气设置需要处理,所以如果你每次都必须输入它们,那会很烦人。这就是我们实现配置文件继承的原因。如果您将此字段留空,则需要自己输入所有 20 个属性,但如果您已经有一个包含您喜欢的属性并希望进行一些修改的配置文件,则可以在此处输入该属性。
例如,假设您有一个 “storm” 个人资料,其中包含一个常规的旧 storm。但是,除了常规风暴之外,您还需要一个暴风雨但也有雷声并具有深红色天空的配置文件。但您不想复制粘贴 “storm” 配置文件。
相反,你可以做的是将父配置文件设置为 “storm”,然后将 thunder 属性设置为 1,并将大气 rayleigh 设置为你想要的任何值。然后,配置文件将使用 “storm” 的属性作为基础,并使用其自己的基础属性来覆盖这些属性。这样,您可以对相似的天气类型进行无限变化。
持续时间
不言自明;配置文件的实际持续时间。有两种类型,“static” 和 “range”。如果类型设置为 “range”,它将随机选择一个介于 min 和 max 值之间的数字。如果类型设置为 “static”,它将始终选择最小秒onds 值作为其持续时间。
基本属性
这些是配置文件的属性,这些属性始终处于设置状态,并将在配置文件加载时转换为这些属性。您可以在以下 URL 的“详细 convars”部分找到所有可能的属性:https://wiki.facepunch.com/rust/Weather#detailedconvars
在配置文件的属性中,您不包含这些属性的“weather.”前缀,因此“weather.rain”只会变成“rain”。
该列表中唯一未包含在 Nova Weather 中的属性是 “temperature” 属性。此属性用于覆盖本地计算的温度(想想夜间的温度下降等),并且始终是您输入的温度。此属性也可以使用步骤进行动画处理。
步骤
这是为天气配置文件制作动画的方式。使用步骤,您可以按照您认为合适的方式填充配置文件的时间轴。还记得页面顶部的那个有趣的时间线图形吗?
大致翻译为:
“步数”: {
“5”: [
{
“类型”: “属性”,
“属性”: “cloud_coverage”,
“值”: 0.8,
“淡化(秒)”: 120
}
],
“30”: [
{
“类型”: “属性”,
“属性”: “雨”,
“值”: 1.0,
“淡化(秒)”: 120
}
],
“130”: [
{
“Type”: “Property”,
“Property”: “thunder”,
“Value”: 1.0,
“Fade (seconds)”: 150
}
]
}
通过将步数设置为特定的秒,将步长放置在时间线中的静态位置。想在 30 秒时下雨吗?您在 “30” 处添加一个步骤。
步骤也会进行动画处理;您可以在 30 秒内下雨,然后花 60 秒从一滴雨变成倾盆大雨。这一切都在淡入淡出的时间里。
在一个步骤中,有四个属性:
– 类型 – 这是 “Property” (区分大小写!) 或 “Command”。
– 属性 – 这是实际的天气属性名称,如“风”或“雨”等
– 值 – 该属性的值,通常介于 0 和 1 之间
– 淡入淡出(秒) – 它应该从基本值过渡到新值
的时间量Nova Weather 将发布一些非常基本的天气配置文件,这些配置文件通过基本属性和时间线步骤展示了 Mod 的功能。您可以尽情玩转。
但是,对于那些不太热衷于花费数小时配置完美天气的人来说,我们远远领先于您。
我们的团队正在制作一组美丽的天气概况,这些概况将在不久的将来在这个市场上发布。这需要大量时间,因此在您阅读本文时可能尚未发布。但如果他们是这样,他们将被免费或收取少量费用。查看相关产品以了解更多信息。需要注意的是,您从我们这里购买的任何配置文件包都是许可的,因此不能与未购买该包的其他人共享。
配置文件是单独的文件,位于 Nova Weather 文件夹的 /Profiles 文件夹中。这些配置文件采用.json格式,基本上可以在任何地方共享。要导入它们,你所要做的就是将你收到的.json文件与其他配置文件一起放入你的 /Profiles 文件夹,然后使用适当的命令重新加载 mod。
过渡的平滑度由 Tickrate 设置决定。如果你将其设置为 10,那么 mod 将每 10 帧计算一次新值。要使过渡更平滑,请通过修改 Configuration.json 或使用适当的命令来降低 Tickrate 设置。请注意,如果降低此数字,服务器上的负载将略有增加,因为它必须更频繁地计算。
由于这是一个 Harmony mod,您可以通过将 .dll 文件拖放到 Rust 服务器根目录中的 HarmonyMods 文件夹中来安装它。