英灵神殿世界 - 区域

创作者: HackShardGaming
已更新:2021-09-24 18:00:44
1.0MB

前置 MOD

使用 英灵神殿世界 - 区域 时将自动安装

关于此 MOD

《英灵神殿》世界 - 区域是一个为服务器添加“区域”的插件。每个区域可通过配置文件定义,并可以有以下设置:强制PVP开启(PVP开)/ 开启(PVP关)/ 关闭(客户端控制)。以及强制地图
请注意:此模组是一个 BepInEx 插件因此需要此项才能使用。

欢迎来到瓦尔海姆的世界——区域插件。

这是以下内容的一个分支: 瓦尔海姆在线插件由AluvielDev制作。

我们已获得AluvielDev的许可,可以发布他修改过的资源。他还更改了Valheim-Online页面上的插件许可,内容如下:“允许你修改我的文件并发布错误修复或改进功能,只要注明我是原创作者即可。”

这个模组基于 Valheim-Online 的两项功能(强制开启 PVP 与安全区)进行了扩展。新增了完整的区域配置文件,并可选择启用或禁用 PVP 与共享定位,甚至允许客户端在某些“区域”中自行接管。

如果你想搭配这个插件使用他的服务端角色部分,请查看我的另一个插件 瓦尔海姆世界 - SSC
核心特性:
服务器端区域配置文件:当客户端连接到服务器时,会向其发送当前的区域配置。


登录服务器时的到达通知已移除。在PVP服务器中此功能毫无意义,因为它会暴露你的位置。


* 炉火与家园更新版本0.7.2 *
《炉火与家园》扩展包官方更新

** 0.6.1版本新功能 **
你现在可以使用 ValheimPermissions 为此插件的以下功能授予覆盖权限:

结界保护:此插件添加的结界保护包括在结界区域内丢弃物品、拾取物品以及损坏建筑(如果启用)。如果你希望管理员能够覆盖此功能,请赋予他们权限节点 HackShardGaming.WoV-Zones.Wards.Override,并让他们重新登录游戏。

区域配置:可以通过将用户的steamid添加到区域文件中来覆盖区域配置。不过,我们现在还有一个新选项,你可以添加权限节点HackShardGaming.WoV-Zones.Override.ZONETYPE,这也能实现同样的效果。  

** 0.6.0 版本新增内容 向下滚动查看更多信息 **

必需模组:
我们现在需要我的 瓦尔海姆权限 为了运行,我们的插件现在使用权限系统,而不是直接用isAdmin来执行下面列出的客户端命令。

兼容性 问题

更新:如果你使用过0.5.0到0.5.10之间的任何版本,你需要查看新的ZONES.TXT格式!ZONES_CONFIGURATION.TXT现已移至ZONES.TXT,以减轻服务器负载!



客户端配置默认值:
生物群系


我们是否应该在生物群系公告中宣布PVP的改动?是或否
# 设置类型:布尔值
# 默认值:true
BiomePVPAnnouncement = true


[颜色]


如果区域类型开启了PVP,我们的“正在进入”提示应该是什么颜色
# 设置类型:字符串
# 默认值:红色
PVP颜色 = 红色


如果区域类型关闭了PVE,我们的“Now Entering”消息应显示什么颜色?
# 设置类型:字符串
# 默认值:白色
PVE颜色 = 白色


如果区域类型没有PVP强制,我们“即将进入”的提示信息应该是什么颜色?
# 设置类型:字符串
# 默认值:黄色
NonEnforcedColor = 黄色


[瓦尔海姆世界区域]


默认配置 ID 使 Nexus 更新正常!
# 设置类型:Int32
# 默认值:891
NexusID = 891



服务器端配置默认值:
## 设置文件由插件 WorldofValheimZones v0.6.0 创建
## 插件 GUID:HackShardGaming.WorldofValheimZones

死亡


**新功能 0.6.0** 仅限服务器:我们是否应全局防止用户在死亡时丢失物品/技能?
# 设置类型:布尔值
# 默认值:false
NoItemLoss = false


## ** 新功能 0.6.0 ** 仅限服务器:客户端应以多快速度重生?
# 设置类型:单选
# 默认值:10
重生计时器 = 1

守护结界


## 仅限服务器:保护建筑在防护区域内免受损坏?
# 设置类型:布尔值
默认值:false
建筑_保护伤害 = false


## 仅限服务器:在受守护区域保护拾取物品?
# 设置类型:布尔值
# 默认值:false
拾取物品 = false


## 仅限服务器:保护警戒区域内的掉落物品?
# 设置类型:布尔值
默认值:false
物品掉落 = false


瓦尔海姆世界区域


## 让 Nexus 更新愉快的 Nexus ID!
# 设置类型:Int32
# 默认值:891
NexusID = 891


## 仅限服务器:区域文件的文件路径。如果该文件不存在,将使用默认区域创建。
# 设置类型:字符串
默认值:XXXXXXXXXXXX\BepInEx\config\WoV\Zones.txt
ZonePath = XXXXXXXXXXX\BepInEx\config\WoV\Zones.txt


## 仅限服务器:ZonesPermissions 文件的位置。
# 设置类型:字符串
# 默认值:XXXXXXXXXXXXX\BepInEx\config\WoV\Zone_Configuration.txt
ZoneConfigurationPath = XXXXXXXXXXXX\BepInEx\config\WoV\Zone_Configuration.txt
自定义区域配置
我个人建议,如果你打算使用以下任何功能,最好在你希望放置这些功能的区域中专门为它们创建一个新的区域类型,而不是直接使用“野外”/“安全”/“战斗”。

你的 zones.txt 中的每一新行都应类似这样

配置:区域类型 | 00000000000000000 11111111111111111 22222222222222222 33333333333333333 | 选项1 选项2 选项3 选项4

分解:我们对数组中的每个 | 进行拆分。因此,你可以每行输入多个配置选项。

首先,我们会在插件内部将冒号转换为竖线。然后,我们会忽略第一个数组,即“配置”这个词:

第二次分割是ZoneType。它需要与你的zones.txt中已存在的ZoneType匹配(不是区域名称!)。如果不匹配,将会报错,但仍会加载文件。

第三部分拆分是管理员列表。在此列表中找到的任何用户steamid都将覆盖你选择的任何选项。因此,例如如果你想要一个仅管理员区域,你可以在此处提供所有人,并在选项列表中使用pushaway。

第四部分是你希望实现的实际选项。以下是可用于服务器的实际可用选项列表。注意,此列表将随未来补丁更新而变化,以包含更多功能。

禁止开启宝箱:阻止用户访问宝箱                                                 
NoDoors:阻止用户打开门。                                                   
NoBuilding:禁止用户使用锤子建造或摧毁。                         
NoBuildDamage:防止任何人或任何事物破坏建筑。
NoItemPickup: 阻止玩家拾取物品。                                           
NoItemDrop: 阻止用户丢弃物品。   
NoItemLoss:防止使用者在死亡时丢失物品。                                           
NoTerrain:禁止修改地形。
NoPickaxe:禁止使用镐子。(注意:NoTerrain也会阻止此操作)
推开:阻止用户进入该区域。(请注意,如果你的冲刺速度足够快
你仍然可以往里推,但它会把你推开,就像你从地图上掉下去时那样。
周期性伤害(int):定期对使用者造成(INT)点伤害。                               
持续伤害(类型,整数) 周期性对使用者造成(整数)点(类型)伤害。
伤害类型包括:火焰、冰霜、闪电、毒素、穿刺、钝击、斩击和伤害 
持续治疗(整数) 周期性为用户恢复(整数)生命值                                         
对生物伤害倍率(整数): 对生物造成(整数) * 100% 的伤害 (包括生物             
对怪物生效!)(1 = 100%)                                                                     
对玩家伤害倍率(整数): 对玩家造成(整数) * 100% 伤害 (当前     
在PVP中无效)(1 = 100%)                                                        
对树木伤害倍率(整数):对树木造成(整数)*100%的伤害!(这包括         
树木倒在树木上!)(1 = 100%)
客户端控制台命令(F5 界面)
警告:以错误的方式添加区域可能会破坏你的区域文件。请确保你了解自己实际拥有哪些“ZoneTypes”!
注意:我们将在未来为此添加更多检查。目前,它会写入你输入的任何内容。所以……如果你输入了错误的内容,它将不会加载那个区域,并且会在你的zones.txt中留下一行无效内容!

获取坐标
    这将会向你显示你当前的坐标


以下所有命令均要求用户为已批准的管理员(adminlists.txt),否则无法使用这些命令!

(需要权限:HackShardGaming.WoV-Zones.Reload)
!reload-zones
重新加载服务器区域文件。同时将所有新的区域列表发送给所有已连接的用户!

(需要权限:HackShardGaming.WoV-Zones.Add)
!addzone [名称] [区域类型] [优先级] [形状(圆形/方形)] [x] [y] [半径]
将区域添加到当前服务器并重新加载服务器区域文件。同时将新区域列表发送给所有已连接用户!**请注意:X、Y 和 Radius 必须格式化为 0.0(注意保留一位小数)**

!addzone [名称] [区域类型 [优先级] [形状(圆形/方形)] [半径]
    使用我们当前坐标向当前服务器添加一个区域,并重新加载服务器区域文件。同时将新的区域列表发送给所有已连接的用户!**请注意:半径需要格式化为0.0(注意保留一位小数)。X和Y将根据你当前在游戏中的位置自动生成。**



安装


你必须在服务端和客户端上都安装此插件才能登录服务器。


服务器端:

>>下载 WorldofValheimZones.dll
>>将 WorldofValheimZones.dll 放入你的 BepInEx/plugins 文件夹中
>>启动服务器
>>关闭服务器
>>前往你的 BepInEx/config 文件夹
>>打开WorldofValheimZones.cfg并将EnforceZone设为true以启用此插件
>>将ZonePath更改为您有访问权限的位置。(是的,这适用于GPortal等)
>>默认的 ZonePath 是 BepInEx/config/WoV/zones.txt
>>重新启动服务器
>>关闭服务器
>>按你的喜好配置 Zones.txt 文件。


客户端:

下载 WorldofValheimZones.dll
将 WorldofValheimZones.dll 放入你的 BepInEx/plugins 文件夹
完成。开始游戏。



Zones.txt 可用示例

# 区域配置文件
# 在此处指定区域类型及其占用的区域。


# [区域类型]
# ZoneTypeName:区域类型的唯一名称(区域将使用)
# PVP_Mode: 区域的PVP状态。
强制PVP:强制用户开启PVP模式。
# Position_Show: 是否在区域内显示我们的位置?
# 位置_强制:强制用户位置。
#
# 类型:[区域类型名称] [PVP模式] [PVP强制] [位置显示] [位置强制]


# 荒野是各处的默认区域
类型:荒野 是 否
类型:安全 假 真 真 真
类型:战斗 真 真 假 真


# [区域配置]
# ZoneTypeName: 现有区域类型的名称
# AdminIDs:管理员SteamID列表,这些管理员可覆盖区域内除伤害修改以外的所有配置。
# 配置:您希望放入此区域的所有选项列表。以下是一份可用选项列表。
## 禁止开箱:阻止用户访问箱子
## NoDoors:阻止用户打开门。
## NoBuilding:禁止玩家使用锤子进行建造或拆除。
## NoBuildDamage:防止任何人/任何事物破坏建筑。
## NoItemPickup:阻止用户拾取物品。
## NoItemDrop:禁止用户丢弃物品。
## NoItemLoss:防止玩家死亡时丢失物品(墓碑)。
## NoTerrain: 禁止修改地形。
无镐:防止使用镐子。(注意:无地形也会阻止此操作)
## PushAway:阻止用户进入该区域。(请注意,如果你的冲刺速度足够快
## 你仍然可以往里推,但它会把你推开,就像你从地图上掉下去时那样。
## PeriodicDamage(int):持续对使用者造成(INT)点伤害。
## PeriodicDamage(type,int) 周期性对使用者造成(INT)点(type)类型伤害。
## 伤害类型包括:火焰、冰霜、闪电、毒素、穿刺、钝击、、斩击和伤害
## 周期性治疗(int) 周期性为使用者恢复(int)生命值
对生物造成的伤害倍率(整数):对生物造成(整数)*100%的伤害(包括生物
## 对怪物生效!)(1 = 100%)
对玩家造成伤害倍率(int):对玩家造成(INT) * 100%的伤害(当前
## 在PVP中无效)(1 = 100%)
对树木的伤害倍率(整数):对树木造成(整数)*100%的伤害!(这包括
## 树木倒下砸中树木!)(1 = 100%) 
#
# 配置:[ZoneTypeName] | [AdminIDs] | [Configuration]
配置:荒野 | 空 | 无
配置:safe | null | none
配置:战斗 | 空 | 无




# [区域]
# 名称:区域名称。
区域类型:为区域命名区域类型
# 优先级:数字越小,优先级越高
# 形状:你想要的区域形状类型
# - 圆形:以 x,y 为中心、向外延伸至半径的圆形区域。
# - 方形:以x,y为中心的方形区域,向外延伸至半径。


# [名称] [区域类型] [优先级] [形状(圆形/方形)] [x] [y] [r]
默认安全区 安全 5 圆形 0.0 0.0 50.0
默认战斗 战斗 4 方形 50.0 50.0 20.0
Poni!? 安全 1 圈 0.0 0.0 2.0
请注意:如果你没有区域类型:荒野,将会导致异常。为以防万一,我们添加了一个默认荒野,在没有荒野的情况下会被加载。

另请注意:如果你没有任何区域 他们自己 这会导致异常。作为另一项预防措施,我们添加了一个默认区域,如果区域文件中没有已存在的区域,它将在20000, 20000处生成。

不过,如果 zones_configuration 文件为空,那也完全没问题。它将保留现有区域的默认设置。
区域的默认值为:

管理员:空
配置:无





这是怎么回事??



瓦尔海姆区域通过客户端与服务器之间的RPC调用来实现区域限制。服务器会告知客户端区域位置,随后客户端将通过此插件来执行这些区域限制。

新的配置部分通过检查你当前所在的区域来实现其功能。然后它会检查Zones_Configuration.txt文件中是否有该区域的可配置选项。如果有,它将强制客户端应用这些选项。然而,如果用户位于文件的Admin列表部分,那么它将允许该用户覆盖已应用于该区域的所有配置。


Bug列表/兼容性问题:

此模组无法与《英灵神殿》原版联机兼容,因为它使用了与《英灵神殿》原版联机相同的补丁。如果你想要服务端角色,请下载我的另一个修改版模组。 瓦尔海姆世界 - SSC


待办事项:
- [X] 首次发布
- [X] 添加 /reload-zones 命令
- [X] 添加 /addzone 的命令 
- [X] 添加 /getcoords 命令
- [ ] 为 /removezone 添加命令
- [ ] 添加 /addtype 命令
- [ ] 添加 /removetype 命令
- [ ] 添加 /addconfiguration 的命令
- [ ] 为 /removeconfiguration 添加命令
- [ ] 添加 /updateconfiguration 命令
- [X] 为区域添加额外功能。例如:治疗、建筑无伤害、作为守卫区域且不允许编辑。

GitHub 仓库:
https://github.com/HackShardGaming/World-of-Valheim-Public/tree/master/WorldofValheimZones

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!