- 需要插件(必装)
-
原创 - RustSB Extensions - RustSB扩展
RustSB Extensions是RustSB.COM提供的Oxide扩展DLL,提供本站插件所需的大量扩展。 部分插件必须按照本扩展才能够正常运行。 功能 UI构建扩展方法。 成长型武器判断方法。 内置物品中文名API。 内置RustSBAuth,不再需要安装RustSBAuth插件。 内置图像管理系统,不再需要安装ImageLibrary插件。 玩家库存扩展方法。 玩家权限扩展方法。 其他扩展方法。 使用本扩展构建的插件将节省插件代码的复杂性,方便开发者快速扩展和维护。...rustsb.com
- 需要插件(可选)
-
付费 - BattlePass - 通行证
插件功能 玩家通过各种方式获得点数,累计多少点数后即可升级。升级即可领取对应等级的奖品。以下是可获取点数的方式: 击杀NPC。 击杀动物。 击杀玩家。 击杀坦克。 击杀武直。 采集资源。 收割植物。 钓鱼。 完成突袭基地事件。 击杀BossNPC。 在线挂机。 支持为vip玩家设置获得的点数倍数(可配置多个权限)。 支持为指定皮肤ID设置获得的点数倍数。 支持为vip玩家设置专属的 至尊通行证 。 只有拥有权限的玩家才能领取至尊通行证中的内容。...rustsb.com原创 - 【VipLogo·服务器等级】
插件简介 服务器必备的等级系统!超简单配置,超实用功能,超多联动插件! 提升玩家在线时间,增加服务器人气,根据等级解锁权限,指令,物品。 强烈建议配合【服务器等级奖励】使用!(安装后会同步在UI左上角显示等级奖励按钮) 功能特点 在线升级 玩家每在线指定时间升级1级 支持自定义升级所需时间 等级越高,代表玩家在您服务器的游玩时间越久 等级权益 等级权限系统:不同等级解锁不同权限 当玩家达到指定等级,自动上某个权限...rustsb.com汉化 - Economics - 经济系统
Economics是一个基础的经济系统,其他插件可以通过使用提供的API来使用。 就其本身而言,该插件仅提供列出的功能,没有附带商店功能。 权限 economics.balance - 允许玩家为其他玩家使用balance指令 economics.deposit - 允许玩家使用deposit指令 economics.depositall - 允许玩家使用deposit指令向所有玩家存款 economics.setbalance - 允许玩家使用setbalance指令...rustsb.com原创 - 【PlayerBannerUI·玩家头像】
插件简介 插件支持以下功能: 为有权限的玩家在屏幕上提供一个头像框,算是一个自定义图片 玩家可以通过简单的指令更改图片,可以随时修改 /banner 图片外链 比如:/banner http://server.blga.cc:81/kit.png 玩家可以通过简单的指令自定义图片绑定的指令,玩家点击图片即可执行聊天指令,可以随时修改 /bannercommand 指令 比如:/bannercommand kit 这样玩家点击他的头像时,会自动为其执行/kit指令...rustsb.com
插件介绍
一个功能丰富的玩家名片插件,支持查看玩家的各种信息,包括自定义头像、称号、个人说明等。主要功能
【1.便捷互动,R键直接查看个人名片】
在游戏中对任意玩家按R键,查看该玩家的个人名片。有权限的玩家可以通过指令查看任意玩家的。也可以输入指令查看自己的名片,非常灵活。- 支持在线玩家对着他R键查看他的个人名片
- 支持睡眠离线玩家对着他R键查看他的个人名片
- 支持对着NpcR键查看他的个人名片(但没什么用)
【2.全面信息,配置自由开关显示】
名片UI中支持查看玩家的: (可以在配置文件设置显示开关)- Steam ID
- 游戏时间:插件安装后算起,每1分钟更新一次存档
- 玩家状态:血量,水量,饱食度
- 武器等级:自动判断玩家背包和快捷栏是否有等级后缀的武器类物品
- 服装等级:自动判断玩家服装栏是否有等级后缀的服装类物品
- 财富 (需要Economics插件)
- 服务器等级 (需要VipLogo插件)
- 通行证等级 (需要BattlePass插件)
- 显示队长:显示玩家组队状态和其队长游戏名称
- 爆头:通过爆头击杀的玩家,npc,动物,累积数量
- 死亡:记录玩家死亡次数
- 生存:记录玩家上一次死亡复活后至今存活的总时长,再次死亡后重新累积时间
- 个人说明:支持玩使用指令编写义个人说明,最多16个汉字
- 可以通过配置文件决定这些信息的开启或关闭
- 玩家也可以在查看自己的名片时,点击左上角的【编辑】按钮,自行决定开关显
JSON:
{
"显示steamid?": true,
"显示游戏时间?": true,
"显示武器等级?": true,
"显示服装等级?": true,
"显示财富?(需要Economics插件)": true,
"显示服务器等级?(需要VipLogo插件)": true,
"显示通行证等级?(需要BattlePass插件)": true,
"显示玩家状态吗?": true,
"显示组队队长?": true,
"显示爆头次数?": true,
"显示死亡次数?": true,
"显示生存时间?": true
}
【3.氪金赞助,荣耀彰显】
支持头像自定义,称号权限,个人标题背景图,个人说明彩色权限等等- 支持自定义头像 (需要PlayerBannerUI插件):没安装插件默认显示名字首字头像,安装后完全同步PlayerBannerUI设置的头像
- 支持多个称号显示:根据权限,UI中最多显示3个称号。
- 【您可以在此处额外购买405款图片称号素材】
- 素材均为png无背景格式,直接放在oxide/data/XMPlayerCard 目录下,在配置写入图片文件名即可使用
- 支持自定义名片标题背景图,根据权限设置,玩家有一张背景图权限即可点击自己的标题处自由设置背景。背景图片需要放在 oxide/data/XMPlayerCard文件夹里
- 【您可以在此处额外购买52款横幅素材】
- 名片背景颜色,玩家名称颜色,个人说明文字颜色,也都支持根据权限自定义
- 玩家只要有任意权限,都可以在查看自己名片时;
- 点击标题栏更换背景或颜色
- 点击自己的名字更换颜色
- 点击个人说明更换颜色
- 点击称号佩戴或卸下
- 超方便的UI,玩家可以随意更换颜色和背景图
【4.活跃必备,老玩家带新】
UI中主要功能之一:老玩家扶持礼。支持老玩家设置礼物,送给每一个查看他个人名片的玩家- 配置文件设置-1,代表禁用此功能
- 配置文件设置0,代表不限制任何人都可以送礼,也不需要调用VipLogo插件
- 配置文件设置任意数字,代表需要满足VipLogo插件的对应等级才能送礼
- 如果对方满足等级但没有设置礼物,UI按钮中显示【他正在筹备礼物中】
- 如果对方满足等级并设置了礼物,他人查看时会显示【领取他提供的萌新礼】,其他玩家均可领取1次
- 如果对方不满足等级则会在查看对方名片时,不显示此项
- 如果自己不满足等级则会在查看自己的名片时显示【详细介绍】按钮,点击查看详细说明
- 如果自己满足等级则会在查看自己的名片时显示【设置礼物】按钮,点击即可设置礼物
- 点击【设置礼物】按钮,或者手动输入指令/songli
- 判断玩家背包(不含快捷栏和服装栏)所有物品,将其全部作为送物品
- 包括物品显示名,物品短名,皮肤ID,数量
- 其他点击点击领取时,就会收到这些礼物了
【5.点赞互动,内置商城】
UI中主要功之一,在配置中写入商品则自动开启,如果留空[],则不开启- 每个玩家可以被相同玩家点赞一次
- 有两个权限:
- 允许有权限的玩家每24小时清空自己被点赞人的记录,
- 允许有权限的玩家每24小时情况别人点赞自己的记录。
- 这允许有任意权限的玩家不受到只能给相同人点赞一次的限制,每天都可以点赞
- 玩家互动,提升老玩家和新玩家的交流
- 点赞数量越多,代表玩家人气越高
- 点赞数可以在查看自己的名片时点击【点赞奖励】进入到点赞商城
- 使用点赞数兑换配置文件设置的物品
- 花费点赞数会扣除可用点赞,但UI中的总累积点赞数不会改变
依赖插件(可选)
- PlayerBannerUI - 提供自定义头像功能,未安装此插件将显示玩家第一个名字作为头像
- Economics - 提供【财富】显示功能,未安装此插件将不显示【服务器等级】信息栏
- VipLogo - 提供【服务器等级】显示功能,未安装此插件将不显示【服务器等级】信息栏
- BattlePass - 提供【通行证等级】显示功能,未安装此插件将不显示【通行证等级】信息栏
权限
- xmplayercard.use - 允许通过指令直接查看其他玩家的名片
- xmplayercard.admin - 允许管理员查看玩家隐藏的信息
- xmplayercard.dailylike - 允许玩家每24小时给相同人重复点赞(24小时清空自己点别人的记录)
- xmplayercard.autoresetlikes - 允许玩家每24小时被相同人重复点赞(24小时清空别人点自己的记录)
- xmplayercard.XX -
- 配置文件自定义权限后缀,包括如下权限的自定义添加:
- 称号权限
- 标题背景颜色权限
- 标题背景图权限
- 玩家名称颜色权限
- 玩家个人说明颜色权限
聊天指令
/card
- 查看自己的名片/card <玩家名>
- 查看指定玩家的名片(需要权限)/shuoming <内容>
- 设置个人说明/songli
- 判断背包物品设置成老玩家扶持礼
控制台指令
playercard.addlikecount <玩家ID> <数量> -
增加玩家的点赞总数和可用点赞数- 用法示例:playercard.addlikecount 76561198123456789 10
playercard.addavailablelikes <玩家ID> <数量> -
只增加玩家的可用点赞数- 不增加点赞总数
- 用法示例:playercard.addavailablelikes 76561198123456789 10
playercard.clearlikes <玩家ID/all>
- 清除指定玩家或所有玩家点赞记录(可以再次点赞)- 用法示例:playercard.clearlikes all - 清空所有玩家的点赞记录
- 用法示例:playercard.clearlikes 76561198xxxxxxxx - 清空指定玩家的点赞记录
playercard.cleargifts <玩家ID/all>
- 清空指定玩家或所有玩家礼物领取记录(可以再次领取)- 用法示例:playercard.cleargifts all - 清空所有玩家的礼物领取记录
- 用法示例:playercard.cleargifts 76561198xxxxxxxx - 清空指定玩家的礼物领取记录
默认配置
JSON:
{
"显示steamid?": true,
"显示游戏时间?": true, //在您服务器的在线总时长,此插件安装日起开始计算哦
"显示武器等级?": true, //会自动判断玩家快捷栏和背包的武器类物品显示名称后缀
"显示服装等级?": true, //会自动判断玩家服装栏服装类物品显示名称后缀
"显示财富?(需要Economics插件)": true, //如果未安装此插件也不会显示
"显示服务器等级?(需要VipLogo插件)": true, //如果未安装此插件也不会显示
"显示通行证等级?(需要BattlePass插件)": true, //如果未安装此插件也不会显示
"显示玩家状态吗?": true, //显示玩家的实时血量,水量,饱食度
"显示组队队长?": true, //显示玩家组队状态的队长名字
"显示爆头次数?": true,
"显示死亡次数?": true,
"显示生存时间?": true,
"老玩家扶持礼等级": -1, //设置-1禁用,0=不限制也无需VipLogo插件,设置正数等级达到才能设置礼物,只要设置了礼物不限制任何人领取,但相同玩家之间只能领取一次。
"称号权限": [
{
"权限": "vip1", //自定义字母数字,授权时前面要写插件名 XMPlayerCard.XX
"图像": "vip1.png" //把图片放到oxide/data/XMPlayerCard 目录下
}
],
"说明颜色权限": [
{
"权限": "color.red", //自定义字母数字,授权时前面要写插件名 XMPlayerCard.XX
"颜色": "#FF0000"
},
"名称颜色权限": [
{
"权限": "color.rrr", //自定义字母数字,授权时前面要写插件名 XMPlayerCard.XX
"颜色": "#FF0000"
}
],
"标题背景颜色权限": [
{
"权限": "color.rr",
"颜色": "#FF0000"
}
],
"标题背景图片权限": [
{
"权限": "color.01",
"图像": "01.png" //把图片放到oxide/data/XMPlayerCard 目录下
}
],
"点赞奖励": [ //此处留空禁用点赞功能
{
"物品名称": "强化石",
"物品简称": "habrepair",
"皮肤ID": 2433594063,
"数量": 1,
"花费": 2
},
{
"物品名称": "石头",
"物品简称": "stones",
"皮肤ID": 0,
"数量": 1000,
"花费": 2
}
]
}
存档配置
JSON:
{
"Players": { // 玩家数据字典,key为玩家steamID
"76561198123456789": { // 示例玩家ID
"TotalTime": 3600.0, // 玩家总游戏时间(秒)
"Description": "这是我的个人说明", // 玩家设置的个人说明
"HeadshotKills": 10, // 爆头击杀次数
"Deaths": 5, // 死亡次数
"SurvivalTime": 1800.0, // 当前生存时间(秒)
"LastSpawnTime": 1234567890.0, // 最后重生时间戳
"GiftItems": [ // 老玩家扶持礼物品列表
{
"DisplayName": "木头", // 物品显示名称
"ShortName": "wood", // 物品简称
"SkinID": 0, // 物品皮肤ID
"Amount": 1000 // 物品数量
}
],
"GiftReceivers": [ // 已领取礼物的玩家ID集合
"76561198987654321"
],
"LikeCount": 5, // 获得的总点赞数
"AvailableLikes": 3, // 可用的点赞数(用于兑换奖励)
"LikedBy": [ // 已点赞过的玩家ID集合
"76561198987654321"
],
"LikeTimesByPlayer": { // 玩家点赞时间记录,key为点赞者ID,value为时间戳
"76561198987654321": 1234567890000
},
"DisplaySettings": { // 玩家的显示设置
"steamid": true, // 是否显示steamID
"gametime": true, // 是否显示游戏时间
"weaponlevel": true, // 是否显示武器等级
"armorlevel": true, // 是否显示装备等级
"economics": true, // 是否显示财富
"serverlevel": true, // 是否显示服务器等级
"battlepass": true, // 是否显示通行证等级
"playerstatus": true, // 是否显示玩家状态
"teamleader": true, // 是否显示队长信息
"headshots": true, // 是否显示爆头数
"deaths": true, // 是否显示死亡数
"survivaltime": true // 是否显示生存时间
}
}
}
}
注意事项
- 称号图片支持png、jpg格式
- 查看自己的名片不需要权限
视频演示
1.0.3新增:点赞商城
API
C#:
// 只操作可用点赞数的API方法
[HookMethod("GetAvailableLikes")] //只查询可用点赞数
public int GetPlayerAvailableLikes(ulong playerId)
{
if (!storedData.Players.TryGetValue(playerId, out PlayerInfo playerInfo))
return 0;
return playerInfo.AvailableLikes;
}
[HookMethod("DeductAvailableLikes")] //只扣除可用点赞数,不影响总点赞数
public bool DeductPlayerAvailableLikes(ulong playerId, int amount)
{
if (amount <= 0) return false;
if (!storedData.Players.TryGetValue(playerId, out PlayerInfo playerInfo))
return false;
if (playerInfo.AvailableLikes < amount)
return false;
playerInfo.AvailableLikes -= amount; // 只减少可用点赞数
SaveData();
return true;
}
[HookMethod("AddAvailableLikes")] //只增加可用点赞数,不影响总点赞数
public bool AddPlayerAvailableLikes(ulong playerId, int amount)
{
if (amount <= 0) return false;
if (!storedData.Players.ContainsKey(playerId))
storedData.Players[playerId] = new PlayerInfo();
var playerInfo = storedData.Players[playerId];
playerInfo.AvailableLikes += amount; // 只增加可用点赞数
SaveData();
return true;
}
// 同时操作总点赞数和可用点赞数的API方法
[HookMethod("GetAllLikes")] //同时查询总点赞数和可用点赞数
public (int totalLikes, int availableLikes) GetPlayerAllLikes(ulong playerId)
{
if (!storedData.Players.TryGetValue(playerId, out PlayerInfo playerInfo))
return (0, 0);
return (playerInfo.LikeCount, playerInfo.AvailableLikes);
}
[HookMethod("AddAllLikes")] //同时增加总点赞数和可用点赞数
public bool AddPlayerAllLikes(ulong playerId, int amount)
{
if (amount <= 0) return false;
if (!storedData.Players.ContainsKey(playerId))
storedData.Players[playerId] = new PlayerInfo();
var playerInfo = storedData.Players[playerId];
playerInfo.LikeCount += amount; // 增加总点赞数
playerInfo.AvailableLikes += amount; // 增加可用点赞数
SaveData();
return true;
}
[HookMethod("DeductAllLikes")] //同时扣除总点赞数和可用点赞数
public bool DeductPlayerAllLikes(ulong playerId, int amount)
{
if (amount <= 0) return false;
if (!storedData.Players.TryGetValue(playerId, out PlayerInfo playerInfo))
return false;
if (playerInfo.LikeCount < amount || playerInfo.AvailableLikes < amount)
return false;
playerInfo.LikeCount -= amount; // 减少总点赞数
playerInfo.AvailableLikes -= amount; // 减少可用点赞数
SaveData();
return true;
}