DWRole - 身份系统

原创 DWRole - 身份系统 1.0.7

需要插件(必装)
DWRole - 身份系统允许您设置一些目标,当玩家完成该目标后即可获得该身份。

当玩家完成这些目标之后就会获得该身份,允许其他插件来判断该玩家是否拥有指定身份来判断有无权限。

使用DWRole的插件:​

插件功能描述备注
DWWeapon - 成长型武器拥有指定身份才能使用该成长型武器或强化石
DWAttire - 成长型服饰拥有指定身份才能使用该成长型服饰、强化石或激活套装
ContinuousRockets - 连发火箭弹拥有指定身份后获得额外的连发火箭弹数量
DWSkinWeapon - 武器增益拥有指定身份才能使用该武器
DWSkinAttrie - 服饰增益拥有指定身份才能使用该服饰
DWMenu - 服务器菜单拥有指定身份才能显示分类或使用该按钮
【EntityTitle·头顶称号】拥有指定身份才能使用该头顶称号
【DoorSkinCheck·门票系统】拥有指定身份才能打开门
更多插件正在接入中……

达成要求​

名称描述达成条件要求目标要求数值备注
收集收集指定物品Gather填写物品短名称,或用 * 代表全部物品数量
击杀完成击杀或摧毁Kill填写实体短名称、特殊NPC名称,玩家填写 player ,或用 * 代表全部数量
钓鱼在游戏内钓鱼Fishing填写物品短名称,或用 * 代表全部物品数量
死亡次数玩家累计死亡次数Death次数自杀不计入次数
在线时间累计在线时间Online秒数
权限拥有权限Permission填写权限名无需如果填入不存在的权限插件会自动注册。
忽略要求数值
权限组拥有权限组Group填写权限组名称无需
EconomicsEconomics插件余额Economics余额数量
突袭基地参与完成突袭基地事件次数RaidableBase填写事件等级(Easy=0以此+1),或用*代表全部事件等级次数
进服天数累计进服天数JoinDays天数
最长离线时间最长有多久时间没有进过服务器MaxOffline秒数不会叠加,只会在超过当前时间时刷新
算术答题累计达对算术答题事件次数DWMath次数
XPerience满足XPerience插件数值要求XPeriencelevel(当前等级);xp(当前经验);rank(当前级别ID);rankname(当前级别名称);truexp(累计经验)……对应数值
* 名称或达成条件填入达成要求中的达成条件里。
* 要求目标根据表格提示填写,如果是无则忽略。

配置文件(1.0.1)​

JSON:
{
  "身份列表": [
    {
      "身份名称": "杀手",
      "身份描述": "累计杀死5名玩家",
      "达成要求": [
        {
          "达成条件": "Kill",
          "要求目标": "player",
          "要求数值": "5"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "Boss杀手",
      "身份描述": "击杀 世界Boss-狼王 一次",
      "达成要求": [
        {
          "达成条件": "Kill",
          "要求目标": "世界Boss-狼王",
          "要求数值": "1"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "猎人",
      "身份描述": "击杀过大部分动物且达一定数量",
      "达成要求": [
        {
          "达成条件": "Kill",
          "要求目标": "wolf",
          "要求数值": "5"
        },
        {
          "达成条件": "Kill",
          "要求目标": "boar",
          "要求数值": "5"
        },
        {
          "达成条件": "Kill",
          "要求目标": "bear",
          "要求数值": "5"
        },
        {
          "达成条件": "Kill",
          "要求目标": "chicken",
          "要求数值": "5"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "黑奴",
      "身份描述": "累计采集物品数量达10万个",
      "达成要求": [
        {
          "达成条件": "Gather",
          "要求目标": "*",
          "要求数值": "100000"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "高金矿工",
      "身份描述": "累计采集高金5000个且累计采集资源数量达1万个",
      "达成要求": [
        {
          "达成条件": "Gather",
          "要求目标": "*",
          "要求数值": "10000"
        },
        {
          "达成条件": "Gather",
          "要求目标": "hq.metal.ore",
          "要求数值": "5000"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "渔夫",
      "身份描述": "钓鱼100次",
      "达成要求": [
        {
          "达成条件": "Fishing",
          "要求目标": "*",
          "要求数值": "100"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "肝帝",
      "身份描述": "作为服务器的肝帝满足各种的要求吧",
      "达成要求": [
        {
          "达成条件": "Kill",
          "要求目标": "*",
          "要求数值": "100"
        },
        {
          "达成条件": "Gather",
          "要求目标": "*",
          "要求数值": "100000"
        },
        {
          "达成条件": "Fishing",
          "要求目标": "*",
          "要求数值": "100"
        },
        {
          "达成条件": "Online",
          "要求目标": "",
          "要求数值": "86400"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "首富",
      "身份描述": "当前持有金币数量达100万且累计在线时间达24个小时",
      "达成要求": [
        {
          "达成条件": "Economics",
          "要求目标": "",
          "要求数值": "1000000"
        },
        {
          "达成条件": "Online",
          "要求目标": "",
          "要求数值": "86400"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "夜行者",
      "身份描述": "拥有夜视权限",
      "达成要求": [
        {
          "达成条件": "Permission",
          "要求目标": "nightvision.allowed",
          "要求数值": ""
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "突袭者",
      "身份描述": "累计完成任意等级突袭基地10次",
      "达成要求": [
        {
          "达成条件": "RaidableBase",
          "要求目标": "*",
          "要求数值": "10"
        }
      ],
      "不满足条件后移除身份": true
    },
    {
      "身份名称": "流浪汉",
      "身份描述": "在外漂泊的人回到了这里,最长离线时间达30天",
      "达成要求": [
        {
          "达成条件": "MaxOffline",
          "要求目标": "",
          "要求数值": "2592000"
        }
      ],
      "不满足条件后移除身份": true
    }
  ]
}

API​

检查玩家是否有指定身份​

C#:
private bool HasRole(BasePlayer player, string name)

检查是否存在指定名称的身份​

C#:
private bool IsRole(string name)

获取玩家全部身份列表​

C#:
private List<string> GetRoles(BasePlayer player)

获取玩家第一次进入服务器时间​

C#:
private DateTime GetFristJoinDate(BasePlayer player)

获取玩家指定统计信息​

C#:
private object GetStatusData(BasePlayer player, string type, string detail)
Type:填写达成条件。
Detail:可选,填写要求目标。
示例代码:
C#:
// 获取玩家总击杀数
var totalKills = GetStatusData(player, "kill", "*");

// 获取玩家击杀狼的数量
var wolfKills = GetStatusData(player, "kill", "wolf");

// 获取玩家在线时间
var onlineTime = GetStatusData(player, "time", "");

// 获取玩家所有数据
var allData = GetStatusData(player, "all", "");
作者
对味
下载
5
类型
数字产品
有效期
无限
价格
138.00 CNY
查看
1007
文件类型
cs
文件大小
38.7 KB
文件Hash
935d76f860a1f9d7716d348bb0173d74
首次发布
最后更新
评分
0.00 星 0评价

来自对味的更多资源

分享资源

最新更新

  1. 1.0.7 更新

    [信息] 该版本需要安装 RustSB Extensions - RustSB扩展 ,请在安装该扩展后更新该插件。 [新增] 使用 RustSB Extensions - RustSB扩展...
  2. 1.0.6 更新

    [新增] BattlePass 要求,要求玩家拥有BattlePass - 通行证等级大于或等于指定等级。 [新增] void OnPlayerRoleGained(BasePlayer...
  3. 1.0.5 更新

    [改进] 优化插件性能。 [改进] 优化玩家/NPC判断。 [改进] GetStatusData API现在支持查询玩家的详细信息。
标签
api 权限 身份