Server Rewards - 点数商店(服务器奖励)

汉化 Server Rewards - 点数商店(服务器奖励) 0.4.745

功能​

  • 带UI的奖励商店。
  • 购买物品、Kit和指令
  • 使用内置货币兑换器(需要经济系统插件)将奖励点数(RP)兑换为经济系统货币(反之亦然)。
  • 为您的Kit/指令添加描述。
  • 为您的物品添加图片。
  • 为一个购买添加多个指令(有关数据文件布局,请参见下文)。
  • 物品商店每页可容纳 21 个物品,您可以添加无限的页面。
  • 定价仅使用 RP;经济系统的伙伴被添加为一种用于与UI商店兑换点数的功能。
  • 禁用任何奖励分类的选项。
  • 创建自定义权限以使 VIP 在游戏时间获得更多点数。
  • 记录所有添加和花费的点数,以打击作弊。
  • 奖励商店NPC。
  • 为 NPC 分配单独的商店列表。
  • 玩家可以使用奖励点数(RP)通过奖励商店购买礼包/物品或指令。

添加礼包​

要将Kits礼包添加到奖励商店,您必须首先使用 Kits 插件创建礼包。一旦完成,就像编写聊天指令一样简单。

例如:/rewards add kit <名称> <KIT名称> <成本> - <名称> 是商店中的名称,<KIT名称> 是礼包的名称,<成本> 是价格(RP)。

这也可以通过使用相同语法的控制台命令来实现。完成此步骤后,您还可以添加描述(如果需要)。这可以通过提供的“编辑”聊天或控制台指令来完成(见下文)。或者,您可以通过在配置文件的“UIOption”部分启用“Display kit contents as the description”来自动生成描述。

添加物品​

要简单地将物品添加到奖励商店。生成您想要使用的物品,将其放在手中,然后输入聊天指令。

例如:/rewards add item <成本> - 这将把您手中的物品添加到奖励商店, <成本> 是价格(RP)。它还会保存物品的数量和皮肤,因此在添加价格时请记住这一点。

通过控制台指令添加物品的使用示例:rewards add item <物品短名称> <皮肤Id> <数量> <价格>。
如果想要以 10RP 的价格出售一把AK47,就需要输入 - "rewards add item rifle.ak 0 1 10"
*注意 - 物品将自动添加到对应的分类中!

添加命令​

要添加指令,请使用聊天指令添加带有变量的控制台指令。

例如:/rewards add command <名称> <指令> <成本> - <名称> 是商店中的名称,<命令> 是您希望运行的聊天命令,<成本> 是价格(RP)。

这也可以通过使用相同语法的控制台指令来实现。完成后,您可以使用提供的指令添加描述(见下文)
示例:“say RockOn!,$player.name!” 这将使玩家发出 RockOn! :p 消息。

可以在指令中使用的当前变量有:
  • $player.name - 玩家显示名称
  • $player.id - 玩家 Steam ID
  • $player.x$player.y$player.z - Vector3 坐标
要添加或删除指令以完成购买,您可以使用提供的指令(见下文)。请确保所有输入的指令都在引号内!

向商店物品添加描述和图片要向Kit和指令添加描述和图片(仅限Kit和指令),您必须使用提供的指令。

如何添加/移除 NPC 商店​

  • 站在您希望添加或移除的 NPC 面前
  • 输入 '/srnpc add' 来添加或 '/srnpc remove' 来移除
  • 然后您将被提示对着NPC按 E 键
  • 下一个被您对着按E键的NPC将受到影响

如何为 NPC 商店添加自定义战利品表​

  • 站在您希望添加的 NPC 面前
  • 输入 '/srnpc loot'
  • 对着NPC按下E键
  • 将弹出一个UI,只需选择您希望该 NPC 出售的物品/KIT/指令,然后按保存

如何激活物品进行出售(需要编辑数据文件)​

  • 加载时,您的服务器将生成一个数据文件。它可以在 "oxide/data/ServerRewards/" 文件夹中找到,名称为 "sale_data.json"
  • 在这个文件中,您将看到每个游戏物品和皮肤的列表。随着新物品或皮肤的添加,此列表将自动更新
  • 下面是一个示例。销售价格是每单位的价格!因此,1 木头,1 石头,1 AK-47等。这个价格乘以用户希望出售的数量
  • 只需调整物品的 “price” 到您想要设置的价格,并设置 "enabled" 为 true 。
JSON:
"rifle.ak": { // 这是物品短名称。在此下方,您将找到该商品的所有记录的皮肤 ID 及其各自的销售价格、名称和状态
      "0": { // 皮肤ID
        "price": 0.0, // 单个价格
        "displayName": "Assault Rifle", // 显示名称
        "enabled": false // 是否启用
      },
      "10135": {
        "price": 0.0,
        "displayName": "Digital Camo AK47",
        "enabled": false
      },
      "10137": {
        "price": 0.0,
        "displayName": "Military Camo AK47",
        "enabled": false
      },
      "10138": {
        "price": 0.0,
        "displayName": "Tempered AK47",
        "enabled": false
      }
    },

Lusty Map 图标​

NPC位置支持通过 LustyMap 添加地图图标。要添加图标,只需将图标图像放置在添加新 NPC 之前的 data/LustyMap/custom 文件夹中。此文件必须命名为 rewarddealer.png。图标将自动加载到 LustyMap 中。这里有一个简单的图标供您使用,或者您可以创建自己的图标。

日志记录​

点数日志可以在 logs/ServerRewards_RP_Log.txt 中找到。它显示所有已添加和消耗的点数,将记录玩家名称(如果在线)和 Steam ID,时间以及添加/减少的点数数量。

聊天指令​

  • /rewards check - 显示当前有的奖励点数和在服务器上游玩时间
  • /s - 打开奖励商店

管理员命令​

  • /rewards add kit <name> <kitname> <cost> - 向奖励商店添加新礼包。
  • /rewards add item <cost> 可选:bp - 向奖励商店添加新物品(在指令末尾添加“bp”将使该物品成为蓝图)。
  • /rewards add command <name> <command> <cost> - 向奖励商店添加新指令。
  • /rewards edit kit <ID> <cost|description|name|icon|cooldown> - 编辑指定奖励礼包的信息
  • /rewards edit item <ID> <cost|amount|icon|cooldown> - 编辑指定奖励物品的信息
  • /rewards edit command <ID> <cost|description|name|icon|add|remove|cooldown> - 编辑指定奖励指令的信息
  • /rewards remove kit <name> - 从奖励商店中删除礼包。
  • /rewards remove item <name> - 从奖励商店中删除物品。
  • /rewards remove command <name> - 从奖励商店中删除指令。
  • /rewards list <items|commands|kits> - 列出所有指定类型的奖励,以及它们在控制台中的具体 ID。

手动添加、扣除、查询点数​

  • /sr add <playername> <amount> - 向玩家的信息中添加点数
  • /sr take <playername> <amount> - 从玩家的信息中减去点数
  • /sr clear <playername> - 删除玩家的奖励信息
  • /sr check <playername> - 显示玩家的点数

---- NPC商店 ----​

  • /srnpc add - 将您正在查看的 NPC 添加到奖励商店NPC列表中
  • /srnpc remove - 将您正在查看的 NPC 从奖励商店NP中删除
  • /srnpc loot - 为 NPC 创建或替换自定义战利品列表

控制台指令​

  • sr add <playername> <amount> - 参见上述^
  • sr take <playername> <amount> ^^
  • sr clear <playername> ^^
  • sr check <playername> ^^
  • rewards add kit <name> <kitname> <cost> - 向奖励商店添加新礼包。
  • rewards add item <shortname> <skinId> <amount> <cost> opt:bp - 向奖励商店添加新物品(在指令末尾添加“bp”将使该物品成为蓝图)。
  • rewards add command "name" "command" <cost> - 向奖励商店添加新指令。
  • rewards edit kit <ID> <cost|description|name|icon|cooldown> - 编辑指定奖励礼包的信息
  • rewards edit item <ID> <cost|amount|icon|cooldown> - 编辑指定奖励物品的信息
  • rewards edit command <ID> <cost|description|name|icon|add|remove|cooldown> - 编辑指定奖励套指令的信息
  • rewards remove kit <name> - 从奖励商店中删除礼包。
  • rewards remove item <name> - 从奖励商店中删除物品。
  • rewards remove command <name> - 从奖励商店中删除指令。
  • /rewards list <items|commands|kits> - 列出所有指定类型的奖励,以及它们在控制台中的具体 ID。

配置文件​

JSON:
{
  "Active categories (global)": { // 启用选项
    "Show commands tab": true,
    "Show exchange tab": true,
    "Show items tab": true,
    "Show kits tab": true,
    "Show seller tab": true,
    "Show transfer tab": true
  },
  "Coloring": { // 更改UI文字颜色等
    "Background color": {
      "Hex color": "#2a2a2a",
      "Transparency (0 - 1)": 0.98
    },
    "Button color - accept": {
      "Hex color": "#00cd00",
      "Transparency (0 - 1)": 0.9
    },
    "Button color - inactive": {
      "Hex color": "#a8a8a8",
      "Transparency (0 - 1)": 0.9
    },
    "Button color - standard": {
      "Hex color": "#2a2a2a",
      "Transparency (0 - 1)": 0.9
    },
    "Primary panel color": {
      "Hex color": "#696969",
      "Transparency (0 - 1)": 0.3
    },
    "Primary text color": "#ce422b",
    "Secondary panel color": {
      "Hex color": "#373737",
      "Transparency (0 - 1)": 0.98
    },
    "Secondary text color": "#939393"
  },
  "Currency exchange rates": { // 货币转换率
    "Value of Economics": 100,
    "Value of RP": 1
  },
  "Options": {
    "Data save interval": 600,
    "Log all transactions": true,
    "Use NPC dealers only": false
  },
  "UI Options": {
    "Disable fade in effect": true,
    "Display kit contents as the description": true,
    "Display user playtime": true
  }
}

开发API​

C#:
object AddPoints(ulong playerID, int amount) // 返回true为成功,其它则为null
object TakePoints(ulong playerID, int amount) // 返回true为成功,其它则为null
object object CheckPoints(ulong ID) // 返回int,如果为null则无信息

API示例​

C#:
[PluginReference]
private Plugin ServerRewards;

private void ExampleFunction(BasePlayer player)
{
     ServerRewards?.Call("AddPoints", player.userID, 5);
     ServerRewards?.Call("TakePoints", player.userID, 5);
}
作者
对味儿
下载
29
查看
526
文件类型
cs
文件大小
213.2 KB
文件Hash
b77175d8df0de01ef079e8aceddd4d75
首次发布
最后更新
评分
0.00 星 0评价

来自对味儿的更多资源

分享资源

最新更新

  1. 0.4.745 修复

    [修复] 修复2024年7月6日更新导致的错误。该修复应该能解决大部分调用本插件时出错的问题。(修复补丁由本站提供)
标签