总之
直接从 Rust 中的电网取电 – 在任何地图上,无论是程序生成的还是自定义的!在电力线杆上爬升,用 Root Combiners(替换您插入的丢失/被盗/损坏的插座)和 Tech Trash(永久升级电源输出水平,直至可配置点)等组件升级其变压器。使用耐用的 Fuses 维护服务。但最重要的是,保护您在网格中的宝贵部分免受那些嫉妒的玩家不可避免地造成的破坏、盗窃和破坏!无论你做什么,在上面都要小心……高压恰好是非常危险的。始终佩戴防护装备(如防护服),并且在电线带电时不要触摸电线! 作为奖励,这个插件还通过逼真地悬挂电线/软管/圣诞灯来改善原版视觉效果,其松弛度(它们看起来悬挂的松弛程度)可以在放置时进行调整。此功能也是完全可选的。再见,看起来像钢棒的直线 – 你好,真正的物理定律!
但不要相信我的话——让视频自己说话:
还是不相信?看看 srtbull 的这个深入的、20+ 分钟长的评论和教程!
1.0.2 UPDATE: Introducing working Street Lights for eligible poles! The lights go on between between 20:00 and 8:00 by default.
快速入门(面向管理员)
将 GridPower.cs 文件上传到 oxide/plugins 文件夹,您应该就可以开始了,它都是即插即用的。无需重新启动服务器!
如果您是第一次加载它,或者它是新的地图擦除,该插件将自动定位您地图上的所有 Power Line Prefabs,随机选择其中一些(根据默认配置中设置的机会)并为其附加额外的电气实体以使其正常运行。这些实体应在整个擦除过程中保留,如果缺少,则在每次插件重新加载/服务器重启时被替换。每个 Power Line Pole 将被分配一个编号,其位置将存储在数据中。
这将适用于至少包含以下预制件之一的任何地图:
assets/bundled/prefabs/autospawn/decor/powerline-small/powerline_pole_a.prefab
assets/content/props/powerline_poles/powerline_pole_a.prefab
快速入门(面向玩家)
定位功能变压器
并非所有的 Power Line 杆都是一样的。其中只有一部分 (默认情况下,平均 33%) 将正常运行。您如何识别功能性 LOGO?抬头看 – 如果你看到一个按钮连接到杆的顶部,甚至可能有一些预先存在的 Root Combiner Outlets,就是这样!
[在此处插入图片,可能是一名玩家用双筒望远镜看着电线杆]
阶梯式上升
现在您已经找到了一个功能性杆子,您需要爬上它。
通常你不能在电线杆和许多其他地方部署梯子(但奇怪的是,你可以将它们部署在电线杆顶部的水平木板上!但是,Grid Power 重新实现了所有客户端部署逻辑,以允许绕过这个看似任意的限制。
如果您尝试在电线杆上部署梯子,请不要因为“幽灵指南”是红色而不是蓝色/琥珀色而气馁。无论如何点击,它都会强制它通过!忽略聊天中说部署失败的消息——就像 ghost guide 的颜色一样,它都是客户端的,因此从视觉上讲,插件对此无能为力。但相信我,无论客户消息告诉您什么,一切都按预期进行。
然后可以摧毁/捡起梯子以重新使用。
保养
一个 Transformer 最多可以有 4 个 Outlets(根合路器)。这就是球员们从中汲取电力的地方。这些根组合器可以随时被锤子损坏/摧毁/修复/捡起(如果你有建筑特权)。
如果出口少于 4 个,请右键单击库存中的 Root Combiner 物品或将其拖到 Transformer 的 Fuse Box 中。您将听到部署效果,并且 Root Combiner 将部署在杆上。
为了能够从该变压器获取电力,您需要在里面放置一个保险丝。右键单击物品栏中的 Fuse 或将其直接拖到 Fuse Box 上。别担心 – 在变形金刚内部,这些保险丝的使用寿命比普通纪念碑保险丝盒要长得多。默认情况下,变压器保险丝盒内的全新保险丝将持续 12000 秒(= 200 分钟,= 3.33 小时)。可以在配置中增加或减少此值。
您可以在 Transformer GUI 中查看保险丝还剩下多少时间。
默认情况下,Power Grid 将在上午 8 点到晚上 8 点之间发电。功率输出将遵循平滑曲线,在早上/晚上最低,并在下午 2 点达到峰值。
每个插座上究竟会产生多少 RW 取决于 Transformer 的 Tech Trash 等级。默认情况下,每插入一个 Tech Trash 都会增加 5 个 RW 的峰值功率输出(直到某个点 – 默认情况下,该水平的上限为 50,即在高峰时段每个插座 250 个 RW)。通过右键单击库存中的 Tech Trash 物品或将其直接拖入 Fuse Box 来升级关卡。
即使 Fuse Box 内部已经有 Fuse,仍然可以插入 Root Combiners/Tech Trash。融合不会作为槽位中的唯一物品被替换,因为根合成器/科技垃圾会立即消耗掉。
勾搭和闲逛
一旦至少有 1 个插座存在,您手头就有了一个保险丝,并且电网目前正在发电 – 一切就绪。使用电线工具,使用 [RELOAD] 按钮(通常为 R)选择您最喜欢的电线颜色,然后将 Root Combiner 插座的输出连接到您自己的电子设备,通常是电池或其他 Root Combiner。
您会注意到屏幕顶部的文本告诉您电线工具/软管工具的当前松弛度是多少。您可以使用 [DUCK] 按钮(通常为 CTRL)增加它,并使用 [SPRINT] 按钮(通常为 SHIFT)减少它。较大的 Slack 值意味着电线/软管看起来悬挂得更松散。较小的值会使其看起来更紧密。接近零的值会使它们看起来像原版 Rust ——即;) 相比不太好
最终的 Slack 值将在您完成电线/软管连接时应用。这种悬挂改进适用于您使用电线工具/软管工具进行的任何事情,而不仅仅是变压器插座连接!
对于高级圣诞灯,它甚至更好:您可以单独调整每个段的 Slack!放置 Advanced Xmas Lights 段后,您将要放置下一个段,请使用 [DUCK] 和 [SPRINT] 按钮调整您刚刚放置的段的 Slack。您将看到它使区段的外观的预览。将下一个区段放下将确认其前一个区段的 Slack。
危险!高压!
如果电网当前正在发电(默认情况下,在白天)并且 Transformer 中插入了保险丝,则所有根合路器插座都被视为该 Transformer 上的带电。
您可以判断变压器是否带电:首先,检查直接插入电网的电气设备。如果他们当前没有收到任何费用,则表示他们不是直播的。同样,您可以查看 Root Combiner Outlets 上的二极管。如果它们没有打开,则 Transformer 也不是带电的。最后,从 Transformer GUI 中可以清楚地看出这一点。
如果玩家试图将电线连接到/断开与带电的插座的连接,或者他们试图用锤子捡起 Root Combiner Outlet,并且他们没有佩戴预先批准列表中的任何物品(请参阅下面的高级配置部分),则他们有 1.0 (100%) 的几率触电身亡。另一种保证触电的方法是尝试清除名为 INTERNAL 的连接。别管那些!
穿着防护服会将该几率降低到 1/10(根据默认权限配置文件为 10% – 见下文)。如果您想让玩家安心,您可以将该几率设置为 0.0 (0%)。
保证 0% 触电几率的另一种方法是确保变压器没有带电:要么等待电网停止发电,要么先取出保险丝再做任何其他事情。
权限 (Oxide.Grant 用户 YourName [权限名称以 gridpower 开头。
默认情况下,该插件在配置中生成 3 个权限配置文件 – 一个用于管理员,一个用于没有特定权限的普通玩家(默认),一个用于 VIP。有关它们可以处理的权限配置文件和配置值的更多信息,请参阅 高级配置 部分。
除非您添加了更多权限配置文件,否则您的配置将仅使用以下两个:
gridpower.admin
管理员权限的持有者还可以运行 /gp_cfg 和 /gp_emergency_cleanup 命令
网格电源.vip1
此权限的持有者将遵循与该权限配置文件关联的设置和限制。
以下权限也已注册,但默认情况下不会使用。要使用它们,只需创建一些以这些权限为键的权限配置文件。
- 网格电源.vip2
- 网格电源.vip3
- 网格电源.vip4
- 网格电源.vip5
自动路灯
根据您的地图设计,某些电线杆上可能有灯。默认情况下,所有这些灯现在都会发光,默认在 20:00 到 8:00 之间,这恰好是电网生产恢复为 0 的时间。您还可以将路灯设置为始终亮起,无论一天中的什么时间。路灯的时间设置与您的发电时间设置无关 – 它们可以重叠,一个可以在午夜之前开始,在午夜之后结束,而另一个则不然,等等。
这些路灯甚至可以在无法正常工作的电线杆上工作,例如那些顶部没有按钮的电线杆。
开启时,指示灯会不时闪烁。它们闪烁的频率和单个闪烁的时间取决于您的配置 – 请参阅下文。
管理员 F1 控制台/聊天命令(必须具有 ownerid/moderatorid/gridpower.admin 权限)
如果要从 F1 控制台或服务器控制台键入这些命令,请删除命令名称中前面的斜杠。
/gp_cfg Will allow the admins to change non-permission profile related config values on the fly (see below) /gp_emergency_cleanup Instantly kills all the plugin-related entities: fuseboxes, admin generators, root combiners and buttons. It won't remove the power line entries in your data, however. All the killed entities will be re-generated according to your current generation settings in the config next time your server restarts or the plugin reloads. If you want to permanently get rid of them, unload the plugin, delete your oxide/data/GridPower.json, and load it back in. /gp_pole [add/remove] This command will allow admins to add or remove functional power line poles at any time. Just look directly at the pole you want to modify and type the command with an argument (either "add" or "remove", depending on what you want to achieve). If you want to add a pole and it already is functional, or if you want to remove a pole, but it isn't functional - you will get a warning. Same if you try to add a pole, but the pole you're looking at is building blocked by a nearby monument."Ent killing" (or using a plugin like Remover) the power line fusebox is the equivalent of permanently removing it from the data and it won't be re-generated any more on next reload. Wiping your save file also automatically removes all the extra components and replaces them with new ones tailored to your map, in accordance to your generation settings.
配置 (oxide/config/GridPower.json 和 /gp_cfg console/chat 命令)
绝大多数设置都可以使用 /gp_cfg chat 命令进行配置。在聊天/控制台中键入不带参数的 ID 应该会转储配置字段及其值的概要。
要运行任何 config 命令,您需要具有 ownerid 或 moderatorid(或 gridpower.admin 权限)。
/gp_cfg GridConstantPower [逻辑值(true 或 false)]
如果设置为 true,则 Grid 将始终在一天 24 小时(默认值:false)的峰值 (100%) 发电 (DEFAULT: false)/gp_cfg GridProductionStartAtHour [介于 0.00 和 24.00 之间的分数(如 13.37)]
一天中发电量从 0 开始攀升的小时(默认值:8.0)
/gp_cfg GridProductionEndAtHour [分数(如 0.69,不错)介于 0.00 和 24.00 之间]
一天中发电量恢复为 0 的小时(默认值:20.0)/gp_cfg StreetlightsConstantPower [逻辑值 (true 或 false)]
如果设置为 true,路灯将全天 24 小时开启。(默认值:FALSE)/gp_cfg StreetlightsTurnOnAtHour [介于 0.00 和 24.00 之间的分数 (如 20.4) ]
一天中路灯亮起的小时(默认值:20.0)/gp_cfg StreetlightsTurnOffAtHour [介于 0.00 和 24.00 之间的分数(如 8.2)]
路灯关闭的小时(默认值:8.0)/gp_cfg 路灯可靠性 [介于 0.00 和 1.00 之间的分数(如 0.5)]
路灯的可靠性。它越少,闪烁的频率就越高。值为 1(表示 100%)时,它永远不会闪烁。(默认值:0.95)/gp_cfg StreetlightsFlickerLengthMin [介于 0.00 和正无穷大之间的分数 (如 1.2)]
闪烁的最小随机长度,以秒为单位 (默认值: 0.1)/gp_cfg StreetlightsFlickerLengthMin [介于 0.00 和正无穷大之间的分数 (如 2.4)]
闪烁的最大随机长度,以秒为单位 (默认值: 0.5)/gp_cfg GeneratorChancePowerlineFunctional [介于 0.00 和 1.00 之间的分数(如 0.5)]
在发电过程中有效电力线杆的几率。0 代表 0%,0.5 代表 50%,1 代表 100% (默认: 0.33)/gp_cfg FuseRequired [逻辑值 (true 或 false)]
如果设置为 false,则变压器不需要保险丝来发电,只需在一天中的适当时间(如果电力不是 24/7)(默认值:TRUE)/gp_cfg BuildingBlockPreventsButtonPress [逻辑值 (true 或 false)]如果
设置为 true,则如果 Transformer 范围内有任何工具柜,则需要在所有工具柜上获得授权才能打开 Transformer GUI(默认值:TRUE)/gp_cfg GeneratorInitialLevelMin [介于 0 和 1000 之间的整数 (如 7)]
生成过程中有效电力线杆的随机科技垃圾等级的下限 (DEFAULT: 1)/gp_cfg GeneratorInitialLevelMax [介于 0 和 1000 之间的整数 (如 7)]
生成过程中有效电力线杆的随机科技垃圾等级上限 (DEFAULT: 5)/gp_cfg GeneratorInitialOutletsMin [介于 0 和 4 之间的整数(如 1)]
生成过程中有效电力线极的 Outlet 随机数的下限(默认值:0)/gp_cfg GeneratorInitialOutletsMax [介于 0 和 4 之间的整数(如 3)]
生成过程中有效电源线极的随机插座数上限(默认值:4)/gp_cfg PowerlinePowerPerTechTrash [介于 0 和 1000 之间的整数(如 7)]
每 1 次技术垃圾桶级别升级在高峰时段提供多少 RW(默认值:5)/gp_cfg PowerlineMaxTechTrashLevel [介于 0 和 1000 之间的整数 (如 7)]
变压器可以升级到的最高级别 (DEFAULT: 50)/gp_cfg PowerlineFuseDurationSeconds [介于 0.0 和无穷大之间的分数(如 420.69,不错)]
插入变压器保险丝盒的全新保险丝将持续多长时间(以秒为单位)(默认值:12000.0)/gp_cfg FuseItemShortname [字符串 (如 “fuse”) ]
作为变压器保险丝盒的项目的简称,必须是有效的 Rust 项目简称/gp_cfg FuseItemGuiName [字符串(如 “Transformer Fuse”) ]
充当 Transformer Fuseboxes 的 Fuse 的项目的自定义 GUI 显示名称,可以是任何内容,也可以是默认值留空/gp_cfg FuseItemGuiName [字符串(如 “Transformer Fuse”) ]
充当 Transformer Fuseboxes 的 Fuse 的项目的自定义 GUI 显示名称,可以是任何内容,也可以是默认值留空/gp_cfg FuseItemSkinID [正长整数(如 2783151202) ]
$“如果使用自定义,则为 0 以接受 FuseItemShortname 指定的短名称的任何项目
防护服 (只能通过 oxide/config/GridPower.json 编辑)
"ProtectiveClothing": { "hazmatsuit": null, "scientistsuit_heavy": null, "hazmatsuit_scientist": null, "hazmatsuit_scientist_peacekeeper": null, "hazmatsuit.spacesuit": null, "boots.frog": null, "hazmatsuit.nomadsuit": null, "pants": [ 1581896222 ], "hoodie": [ 1581890527, 1582492745 ] },
每个条目都有一个键(引号中的 item 简称)和一个值。如果值为 null,则表示接受该 item 短名称的所有可能皮肤。
在上面的示例中,我们允许所有橡胶连体衣(值为空,因此任何皮肤),并且我们还允许将具有 1 种可能皮肤的裤子或具有 2 种可能皮肤的连帽衫视为防护服。您将看到列表中的最后一个条目后没有逗号。在保存之前,请始终使用 JSON LINT 之类的工具验证您的 JSON!
权限配置文件
使用配置文件,您可以为不同的玩家快速创建/编辑不同的权限,例如,如果您的服务器上有超过 1 个 VIP 层级 – 只需添加一些新的配置文件即可。
不同的玩家可以有不同的限制和权限与使用 Power Grid 相关联。为了检查播放器应该属于哪个权限配置文件,插件会遍历所有权限配置文件,并检查播放器是否被授予了该权限。权限是按顺序检查的,这意味着如果玩家没有第一个权限,它将尝试列表中的下一个权限,依此类推(类似于 Auto Kits 根据玩家的权限顺序检查要给玩家的工具包)。
如果玩家没有从授予的列表中获得任何权限,他们将回退到“default”配置文件。这是你唯一不应该删除的!如果删除它,将创建一个具有默认值的新 MissAV.com |
因此,如果您不希望默认的非 VIP 玩家使用电网,请不要删除默认配置文件,只需取消该配置文件中的权限(例如升级/部署梯子/按下按钮)。
您不必使用内置的 VIP 权限 – 来自任何插件的任何 REGISTERED 权限都可以!
默认情况下,配置中会生成三个权限配置文件:default、gridpower.admin 和 gridpower.vip1。
默认权限配置文件将应用于配置文件列表中未列出任何权限的玩家 – 让我们看一下:
"PermissionProfiles": { "default": { "PermissionRequired": "default", "GridCanDeployLadder": true, "GridCanDeployRootCombiners": true, "GridCanConnectDisconnect": true, "GridCanPressButton": true, "GridCanUpgrade": true, "GridDangerousWireElectricutionChance": 0.1, "HangingXmasLights": false, "HangingWiresAndHoses": false, "SubdivisionsPreview": 10, "SubdivisionsFinal": 50, "SlackMax": 5.0 },
- PermissionRequired 应包含任何插件以 pluginname.permissionname 的形式注册的现有权限
- GridCanDeployLadder 允许玩家在电线杆上部署梯子
- GridCanDeployRootCombiners 允许玩家通过将 Root Combiners 插入 Fuse Box 来将它们部署到 Power Line Pole 变压器上
- GridCanConnectDisconnect 允许玩家使用电线工具将他们自己的电气设备连接到网格
- GridCanPressButton 允许玩家访问 Transformer GUI
- GridCanUpgrade 允许玩家通过将 Tech Trash 插入 Fuse Box 来升级 Transformer 峰值输出
- GridDangerousWireElectricutionChance 定义玩家死于电气事故的可能性,即使穿着防护服也是如此
- HangingXmasLights 允许玩家更好地控制高级圣诞灯的悬挂量(纯视觉)
- HangingWiresAndHoses 允许玩家更好地控制电线/软管的悬挂量(纯视觉)
- SubdivisionsPreview 是显示最后放置的线段的悬挂 Xmas Lights 预览悬链线时使用的中间点的数量。点越多,看起来就越平滑。(纯视觉)
- SubdivisionsFinal 是用于吊线/软管/圣诞灯的最终悬链线曲线的中间点的数量。点越多,看起来就越平滑(纯视觉)
- SlackMax 设置允许玩家使用的电线/软管/圣诞灯的最大“松动度”。松弛度越大,导线总体上显示的时间就越长。
API 钩子(适用于插件开发人员)
所有方法都使用 [HookMethod] 属性,这意味着你不能通过 Interface.Call 调用它们,你需要先在插件的主类中创建这个字段……
[PluginReference]
private Plugin GridPower;
然后,像这样调用 hooks。他们将为您提供哪些信息是不言自明的。
bool isPowerConstant = (bool) GridPower.Call(“GridPowerIsConstant”);
bool isGridProducing = (bool) GridPower.Call(“GridIsProducing”);
浮点 productionHourStart = (float) GridPower.Call(“GridGetProductionHourStart”);
浮点 productionHourEnd = (float) GridPower.Call(“GridGetProductionHourEnd”);
浮点 currentGridEfficiency = (float) GridPower.Call(“GridGetEfficiency”);
bool areStreetlightsAlwaysOn = (bool) GridPower.Call(“StreetlightsPowerIsConstant”);
bool areStreetlightsOn = (bool) GridPower.Call(“StreetlightsAreOn”);
float streetlightsHourStart = (float) GridPower.Call(“streetlightsGetTurnOnHour”);
float streetlightsHourEnd = (float) GridPower.Call(“StreetlightsGetTurnOffHour”);
翻译支持 (oxide/lang/en/GridPower.json)
玩家看到的几乎所有字符串,包括聊天和 GUI 中显示的文本,都可以编辑。只需加载插件并让它生成文件 – 编辑后,重新加载插件。