Car Turrets-汽车炮塔

 
官方下载(默认最新)
cs文件
11.6K

插件原网址:                                                                                        https://umod.org/plugins/CarTurrets.cs

特征

    • 允许玩家在模块化汽车上部署自动炮塔,每个模块最多一个。

    • 限制每辆车的最大炮塔数量,可以选择使用车主的权限。

    • 使用权限限制玩家可以将炮塔部署到哪些模块。

    • 当汽车生成时自动为汽车添加炮塔。
        • 可配置的几率为每种模块类型生成一个炮塔。

        • 可以应用于道路沿途的自然汽车生成点,以及其他汽车生成点,可选择要求车主获得许可。

    • 每种模块类型的可配置转塔位置。

笔记

    • 部署到汽车前部的炮塔自动面向前方,而部署到后部的炮塔自动面向后方。如果不需要默认旋转,您可以在部署后像往常一样旋转自动炮塔。

    • 在槽位之间移动模块物品会自动移动炮塔而不旋转它。

    • 将模块物品从车辆物品栏移动到你的物品栏中,或将其从车辆物品栏中丢弃,会自动将自动炮塔物品添加到你的物品栏中(如果模块有炮塔),其条件与自动炮塔的生命值相匹配,除非配置选项是 。EnableTurretPickupfalse

    • 部署到载具模块的炮塔不会以 NPC 玩家或安全区内的非敌对玩家为目标。

如何使用

有两种方法可以将自动炮塔部署到车辆模块上。

    • 瞄准 car 模块并使用命令carturret

    • 在电梯上编辑车辆时,单击并拖动自动炮塔项目到车辆的模块之一上

将自动炮塔部署到车辆模块会消耗玩家库存中的自动炮塔物品。拥有额外权限的玩家可以免费部署炮塔,但他们的库存中仍然需要自动炮塔才能使用拖放方法。

命令

此插件使用相同的语法提供聊天和控制台命令。在聊天中使用命令时,请为其添加正斜杠前缀: ‘/’。

    • carturret— 将自动炮塔部署到您正在瞄准的车辆模块上。您不得被建筑物阻塞。您必须在汽车几米范围内。

    • carturrets.removeall— 移除所有车辆的所有炮塔。

权限

此插件使用权限系统。要分配权限,请使用 。要删除权限,请使用 。

oxide.grant <user or group> <name or steam id> <permission>oxide.revoke <user or group> <name or steam id> <permission>

    • carturrets.deploy.command— 允许玩家使用该命令。注意:播放器还需要特定于模块的权限才能使该命令正常工作。carturret

    • carturrets.deploy.inventory— 允许玩家在电梯上编辑汽车时,通过单击自动炮塔项目并将其拖动到汽车库存中的车辆模块项目上,将自动炮塔部署到车辆模块上。注意: 播放器还需要特定于模块的权限才能正常工作。

    • carturrets.control— 允许远程控制汽车炮塔。仅当 config 选项设置为 时才需要。RequirePermissionToControlCarTurretstrue

    • carturrets.spawnwithcar— 拥有此权限的玩家拥有的汽车将在生成时自动将炮塔添加到他们有权限的每个模块中,直到达到允许的限制。每个模块生成炮塔的几率由 下的插件配置决定。SpawnWithCar->SpawnChanceByModule
        • 仅当 的插件配置 为 时适用,并且仅在 为 时才需要。SpawnWithCar->OtherCarSpawns->EnabledtrueSpawnWithCar->OtherCarSpawns->RequirePermissiontrue

    • carturrets.removall— 允许玩家使用该命令。carturrets.removall

    • carturrets.allmodules— 允许玩家将炮塔部署到所有模块类型。

作为权限的替代方法,您可以按模块类型授予权限(这些权限是从配置生成的):allmodules

    • carturrets.vehicle.1mod.cockpit

    • carturrets.vehicle.1mod.cockpit.armored

    • carturrets.vehicle.1mod.cockpit.with.engine

    • carturrets.vehicle.1mod.engine

    • carturrets.vehicle.1mod.flatbed

    • carturrets.vehicle.1mod.passengers.armored

    • carturrets.vehicle.1mod.rear.seats

    • carturrets.vehicle.1mod.storage

    • carturrets.vehicle.1mod.taxi

    • carturrets.vehicle.2mod.flatbed

    • carturrets.vehicle.2mod.fuel.tank

    • carturrets.vehicle.2mod.passengers

    • carturrets.vehicle.2mod.camper

以下权限决定了可以部署到玩家拥有的汽车上的最大炮塔数量,覆盖了插件配置中的选项。DefaultLimitPerCar

    • carturrets.limit.2— 允许玩家拥有的汽车最多接收 2 个炮塔。

    • carturrets.limit.3— 允许玩家拥有的汽车最多接收 3 个炮塔。

    • carturrets.limit.4— 允许玩家拥有的汽车最多接收 4 个炮塔。

如果向玩家授予了多个这些权限,则将使用最高权限。

汽车的所有权由汽车的财产决定,通常是玩家的 Steam ID,或者没有所有者。各种插件可以生成具有固定所有者的汽车,例如 Spawn Modular Car 或 Craft Car Chassis,而其他插件则允许所有者使用某些事件进行更改,例如 Claim VehicleOwnerID0

配置

设置和选项可以在目录下的文件中进行配置。建议使用编辑器和验证器,以避免格式问题和语法错误。

CarTurretsconfig

{
  "RequirePermissionToControlCarTurrets": false,
  "DefaultLimitPerCar": 4,
  "EnableTurretPickup": true,
  "OnlyPowerTurretsWhileEngineIsOn": false,
  "TargetPlayers": true,
  "TargetNPCs": true,
  "TargetAnimals": true,
  "SpawnWithCar": {
    "NaturalCarSpawns": {
      "Enabled": false
    },
    "OtherCarSpawns": {
      "Enabled": false,
      "RequirePermission": false
    },
    "SpawnChanceByModule": {
      "vehicle.1mod.cockpit": 0,
      "vehicle.1mod.cockpit.armored": 0,
      "vehicle.1mod.cockpit.with.engine": 0,
      "vehicle.1mod.engine": 0,
      "vehicle.1mod.flatbed": 0,
      "vehicle.1mod.passengers.armored": 0,
      "vehicle.1mod.rear.seats": 0,
      "vehicle.1mod.storage": 0,
      "vehicle.1mod.taxi": 0,
      "vehicle.2mod.flatbed": 0,
      "vehicle.2mod.fuel.tank": 0,
      "vehicle.2mod.passengers": 0,
      "vehicle.2mod.camper": 0
    }
  },
  "AutoTurretPositionByModule": {
    "vehicle.1mod.cockpit": {
      "x": 0.0,
      "y": 1.39,
      "z": -0.3
    },
    "vehicle.1

    • RequirePermissionToControlCarTurrets (true或 ) — 确定玩家是否需要远程控制连接到汽车的炮塔的权限。而 ,任何人都可以控制汽车炮塔。虽然禁止玩家控制汽车炮塔,但他们仍然可以查看炮塔的视角。falsecarturrets.controlfalse

    • DefaultLimitPerCar— 每辆车允许的最大自动炮塔数量。具有额外权限的玩家拥有的汽车可能具有更高的价值。无论此值如何,自动炮塔的数量都不能超过车辆上的模块数量。
        • 注意:您还可以通过限制汽车炮塔可以部署到的模块来降低每辆车的自动炮塔的实际限制。例如,如果你只允许将自动炮塔部署到平板模块上,那么一辆 2 插槽的汽车最多可以有一个自动炮塔(假设它是可驾驶的)。对于更长的汽车,玩家将不得不在更多的炮塔和其他实用程序之间进行选择。您也可以将炮塔限制为仅 2 插槽模块。

    • EnableTurretPickup (true或 ) — 虽然 ,但汽车炮塔不能用锤或 RemoverTool pugin 捡起,从汽车上移除一个模块会摧毁炮塔,而不会将自动炮塔物品添加到玩家物品栏中。falsefalse

    • OnlyPowerTurretsWhileEngineIsOn (true或 ) — 当 ,除非发动机打开,否则炮塔不会通电。falsetrue

    • TargetPlayers (true或 ) — 车载炮塔是否应该以真实玩家为目标。false

    • TargetNPCs (true或 ) — 车载炮塔是否应该以 NPC 为目标。false

    • TargetAnimals (true或 ) — 车载炮塔是否应该以 NPC 动物(如熊)为目标。false

    • SpawnWithCar— 当汽车生成时自动向汽车添加炮塔的设置。
        • NaturalCarSpawns
            • Enabled (true或 ) — 虽然 ,沿道路自然生成的汽车将自动添加炮塔,直到 确定的限制内,并根据 中的几率。falsetrueDefaultLimitPerCarSpawnChanceByModule

        • OtherCarSpawns.
            • Enabled (true或 ) — 虽然 ,由插件(例如 Spawn Modular Car 或 Vehicle Airdrops)生成的汽车将自动添加炮塔,但不得超过由车主的权限或基于其权限(如果适用)确定的限制,并取决于 中的几率。falsetrueDefaultLimitPerCarSpawnChanceByModule

            • RequirePermission (true或 ) — 虽然 ,如果由插件生成的汽车由具有权限的玩家拥有,则只会添加炮塔。falsetruecarturrets.spawnwithcar

        • SpawnChanceByModule— 对于每种模块类型(基于物品简称),这些值决定了该类型的模块在汽车生成时自动添加炮塔的百分比几率 ( – )。0100

    • AutoTurretPositionByModule— 对于每种模块类型(基于物品简称),这些值决定了自动炮塔相对于其父模块的位置。这些默认值在不同位置的模块中进行了测试,炮塔朝前和朝后。一些模块,尤其是小型发动机驾驶舱模块,由于屋顶非常小,根本没有理想的位置,但仔细放置模块和炮塔可以避免任何视觉问题。

地方化

默认消息位于目录下的文件中。要添加对其他语言的支持,请创建一个新的语言文件夹(例如 对于德语),请将默认语言文件复制到新文件夹,然后自定义消息。

CarTurretslang/ende

{
  "Generic.Error.NoPermission": "You don't have permission to do that.",
  "Generic.Error.BuildingBlocked": "Error: Cannot do that while building blocked.",
  "Deploy.Error.NoCarFound": "Error: No car found.",
  "Deploy.Error.NoModules": "Error: That car has no modules.",
  "Deploy.Error.NoPermissionToModule": "You don't have permission to do that to that module type.",
  "Deploy.Error.ModuleAlreadyHasTurret": "Error: That module already has a turret.",
  "Deploy.Error.UnsupportedModule": "Error: That module is not supported.",
  "Deploy.Error.TurretLimit": "Error: That car may only have {0} turret(s).",
  "Deploy.Error.NoSuitableModule": "Error: No suitable module found.",
  "Deploy.Error.NoTurret": "Error: You need an auto turret to do that.",
  "Remove.Error.TurretHasItems": "Error: That module's turret must be empty.",
  "RemoveAll.Success": "Removed all {0} car turrets.",
  "Info.PowerRequiresEngine": "The turret will power on when the car engine starts."
}

插件兼容性

    • 车辆部署的锁兼容。无法使用锁的玩家无法拨动开关或授权自己使用炮塔。

    • 推荐:更好的炮塔瞄准让炮塔可以更快地瞄准当前目标。对于能够在车辆移动时击中目标的车辆炮塔非常有用。如果需要,可以选择仅应用于车辆炮塔。

开发人员 API

API_DeployAutoTurret

插件可以调用此 API 来将自动炮塔部署到 car 模块。该参数是可选的,但建议提供它,因为它会自动授权玩家并允许与在部署时自动向炮塔添加武器和弹药的插件兼容。BasePlayer

注意:这会绕过一些检查,例如权限、玩家是否被建筑阻塞以及汽车的炮塔限制。

AutoTurret API_DeployAutoTurret(BaseVehicleModule module, BasePlayer player)

返回值将是新部署的自动炮塔,或者如果由于以下任何原因未部署自动炮塔。null

    • 模块类型不受支持(即,未在配置中定义)

    • 指定的模块上已经有一个炮塔

开发人员 Hook

OnCarAutoTurret部署

    • 当玩家或插件尝试将自动炮塔部署到 car 模块时调用。

    • 返回将阻止自动炮塔被部署。玩家的任何物品都不会被消耗掉。false

    • 返回将导致默认行为。null

注意:如果另一个插件在未指定播放器的情况下启动部署,则该参数可能为 null。BasePlayer

object OnCarAutoTurretDeploy(BaseVehicleModule module, BasePlayer player, bool automatedDeployment)

如果你的插件正在使用这个钩子来阻止炮塔被部署到特定的汽车上,建议你向用户的聊天打印一条相关消息,告诉他们为什么它被阻止。

如果参数为 ,则表示此插件尝试在汽车生成时自动部署炮塔。在这种情况下,此插件尝试添加的每个炮塔都会调用 hook(最多 4 次),因此在这种情况下,您应该避免向用户发送消息,以避免向他们发送垃圾邮件。automatedDeploymenttrue

OnEntityBuilt

这是一个 Oxide 钩子,通常在部署自动炮塔或其他部署物时调用。为了兼容其他插件,每当将自动炮塔部署到玩家的 car 模块时,此插件都会调用此钩子。

注意:当通过 API 部署自动炮塔时未指定玩家,则不会调用此函数。

void OnEntityBuilt(Planner planner, GameObject go)

这可以用来获取玩家或自动炮塔物品,而 可以用来获取部署的自动炮塔。PlannerGameObject

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消   颜色代码
昵称表情

    暂无评论内容