插件简介
XMSkillLibrary是一个强大的技能库插件,为Rust服务器提供完整的技能系统。插件支持硬编码技能和自定义技能两套系统,并提供API接口供其他插件调用。预设数十种技能
编码 | 技能名称(可自定义) | 技能描述 |
1 | 雷电 | 释放一道雷电攻击目标 |
2 | 火箭弹 | 释放一枚火箭弹攻击目标 |
3 | 沉默 | 释放后卸除目标的手持武器 |
4 | 无敌 | 释放目标暂时无敌(双项目标) |
5 | 空袭 | 释放多管火箭弹轰炸目标 |
6 | 火域 | 释放火焰效果包裹目标 |
7 | 水域 | 释放喷泉攻击目标 |
8 | 龙卷风 | 释放沙尘暴效果+击飞效果 |
9 | 听觉污染 | 为玩家播放奇奇怪怪的音乐 |
10 | 瞬移 | 将目标从当前位置移动到随机几米外的位置(双项目标) |
11 | 隐身 | 将目标隐身一段时间(双项目标) |
12 | 囚笼 | 在目标位置生成一个1x1的建筑并将目标关到里面10秒 |
13 | 冰封 | 原地冻住目标5秒 |
14 | 光污染 | 释放光污染闪瞎目标 |
15 | 龙腾 | 一条龙围绕目标并释放火焰特效 |
16 | 陨石 | 巨大的陨石砸向目标并爆炸 |
17 | 核爆 | 生成一圈核弹坠落目标造成蘑菇云 |
18 | 狼群 | 10只狼360°围住目标攻击 |
19 | 诅咒 | 一群骷髅头追击目标触碰后屏幕变红并造成伤害 |
20 | 催眠 | 让玩家操作不了游戏并不停说“服主真帅” |
21 | 不许动 | 10台维和炮塔360°围住目标一旦目标开枪就会被打成筛子 |
22 | 疯狂陷阱 | 随目标每移动一次在脚下生成一个熊陷阱 |
23 | 昏迷 | 让目标立刻进入睡眠X秒 |
24 | 快速反应 | 让玩家快速输入随机三位数数字,否则X秒后进入受伤状态 |
25 | 回血 | 目标立刻回复自定义血量,配置里写入对玩家的最小伤害值=回复的血量 |
26 | 饥饿幻想 | 各种大肉从天而降,对玩家造成持续饥饿度扣除,拾取成功可恢复饥饿值 |
27 |
- 【注意】:插件更新新的技能时,配置文件的[预设技能]类会自动添加新技能,但默认参数相同,请务必在每次更新后按需求设置一次技能参数
- 以上属于插件自带的硬编码技能预设,直接调用即可生效
- 以上所有技能除特殊描述外,都支持自定义伤害,玩家负面影响,持续时间,范围等
- 所有技能都支持修改技能名称,是否允许玩法释放,伤害设置,触发设置等
- 详情查看底部默认配置
- (不断开发中ing……)
五种自定义技能类型
类型1 | 生成实体 | 可以创建各种实体生成在目标位置,包括范围,数量,存在时间,伤害 |
类型2 | 执行控制台指令 | 为释放者执行各种控制台指令 |
类型3 | 给予权限 | 为释放者授权限时时间的各种权限 |
类型4 | 效果伤害 | 为目标播放特效预制并造成持续伤害(可以参考病毒插件) |
类型5 | 图像污染 | 用自定义的固定或动态图像霸占玩家全屏,设置消失时间并造成持续伤害 |
- 每种类型都可以无限创建,打造无限款自定义技能
- 每种类型都支持写入多个执行参数,可固定按顺序执行,或随机执行参数
- 详情查看底部默认配置
自定义技能免疫权限
- 基于编码的自定义权限配置
- 有权限的玩家不会被技能命中或触发
- 支持概率免疫
- 每日免疫次数限制
- 免疫冷却时间
支持玩家释放技能
- 【注意】:有些技能并不适合给玩家使用!注意辨别,谨慎为玩家激活!
- 此插件所有技能,包括预设技能和自定义技能,都可以通过配置文件为每个技能开启玩家使用
- 可以通过判断玩家使用的远程武器、近战武器、工具时的,击中位置,碰撞位置
- 可以通过判断名称中的强化信息来决定技能触发几率和等级几率加成
- 包括但不限于:Lv.X、LV.X、+X,识别后面的数字
- 包括但不限于:远程枪械,近战刀具,工具如斧头稿子等
- 并不是必须检测等级,也可以直接使用权限+默认概率
- 开启技能支持玩家使用后,检测玩家开火键+手持支持的物品+概率+冷却=技能释放是否成功
- 释放成后,会对碰撞目标,或碰撞范围,释放技能并造成自定义伤害
-
JSON:
"玩家使用设置 - 对玩家武器激活": true, "玩家使用设置 - 对玩家近战激活": true, "玩家使用设置 - 使用权限": "", "玩家使用设置 - 仅以下物品简称或皮肤生效": [ "rifle.ak", "123456" ], "玩家使用设置 - 武器等级最低要求": 10, "玩家使用设置 - 默认释放几率": 50, "玩家使用设置 - 每级提升几率": 1.0, "玩家使用设置 - 释放冷却时间秒": 60.0,
支持其他插件调用
提供完整的API接口供其他插件调用:
- CallSkill(string targetUserId, int skillId) - 对目标释放技能
- CallSkillWithReleaser(string releaserUserId, string targetUserId, int skillId) - 带释放者的技能调用
- 待补全……
其他插件调用示例
C#:
// 调用技能库插件
var skillLibrary = plugins.Find("XMSkillLibrary");
if (skillLibrary != null)
{
// 对玩家释放编号为1的技能(雷电)
bool success = (bool)skillLibrary.Call("CallSkill", player.UserIDString, 1);
// 带释放者的技能调用
bool success2 = (bool)skillLibrary.Call("CallSkillWithReleaser",
npc.UserIDString, player.UserIDString, 100);
}
BOSS插件集成示例
JSON:
{
"BOSS阶段技能设置": {
"开启BOSS血量阶段技能": true,
"判断玩家范围": 50,
"召唤技能设置": [
{
"技能库编码": 1,//直接调用技能库技能,无需其他配置,简单好用
"召唤时血量百分比": 90,
"预制件": "",
"存在时间秒": 0,
"召唤数量": 0,
"生成距离": 0.0,
"技能特效": ""
}
]
}
}
目前已支持/计划支持的插件列表
XMNpcChallenge·自定义副本限时挑战按钮 |
XMWorldBoss·巨大化世界BOSS |
XMBossStronghold·BOSS突袭基地 |
XMPlantSpirit·植物BOSS/植物成精 |
XMRaidBoss·抄家BOSS |
XMAnimalBoss·动物BOSS |
SoulSkill·魂环强化 |
ComponentSkill·铭文强化 |
XMHeavenlyTribulation·天劫挑战 |
技能效果截图
(等待添加)权限系统
管理员权限
xmskilllibrary.admin
- 管理员权限,可使用控制台指令
技能使用权限
- 格式:
xmskilllibrary.use.{权限后缀}
- 在配置文件中设置
"玩家使用设置 - 使用权限"
字段 - 留空表示无需权限,填写后缀则需要对应权限
- 例如:配置"vip",则需要权限xmskilllibrary.use.vip
免疫权限
xmskilllibrary.immunity.
XX- 根据配置文件中的免疫权限设置自动注册
- 例如:xmskilllibrary.immunity.100 - 对技能编码100的技能免疫
控制台指令
XMSkillLibraryAdd
用法:XMSkillLibraryAdd <玩家ID> <技能ID>权限:xmskilllibrary.admin
功能:为指定玩家释放指定技能
示例:XMSkillLibraryAdd 76561198000000000 1
配置
JSON:
{
"技能预设(勿改前缀编号!)": {
"1": {
"技能名称": "雷电",
"玩家使用设置 - 对玩家武器激活": true,
"玩家使用设置 - 使用权限": "",
"玩家使用设置 - 对玩家近战激活": true,
"玩家使用设置 - 仅以下物品简称或皮肤生效": [
"rifle.ak",
"123456"
],
"玩家使用设置 - 武器等级最低要求": 10,
"玩家使用设置 - 默认释放几率": 50,
"玩家使用设置 - 每级提升几率": 1.0,
"玩家使用设置 - 释放冷却时间秒": 60.0,
"伤害设置 - 玩家最小伤害": 5.0,
"伤害设置 - 玩家最大伤害": 10.0,
"伤害设置 - 减少玩家血量": 0.0,
"伤害设置 - 减少玩家水量": 0.0,
"伤害设置 - 减少玩家饱食": 0.0,
"伤害设置 - 增加玩家辐射": 0.0,
"伤害设置 - 动物最小伤害": 10.0,
"伤害设置 - 动物最大伤害": 50.0,
"伤害设置 - NPC最小伤害": 50.0,
"伤害设置 - NPC最大伤害": 100.0,
"伤害设置 - 建筑最小伤害": 0.0,
"伤害设置 - 建筑最大伤害": 0.0,
"触发设置 - 触发伤害半径米": 10.0,
"触发设置 - 每秒造成伤害(玩家使用无效)": false,
"触发设置 - 持续时间秒(玩家使用无效)": 3.0,
"触发设置 - 触发时聊天提示": "小心!{0}将释放{1}技能!",
"触发设置 - 触发特效": "assets/prefabs/misc/halloween/lootbag/effects/gold_open.prefab"
}
},
//以上预设技能除编码和技能名称预设外,其他配置完全相同,随插件更新自动填充
//以下自定义技能只作为演示,可以根据需求,想法,创造无限个属于你服务器的技能!
"自定义技能": [
{
"编号": 100,
"技能名称": "一只猪",
"玩家使用设置 - 对玩家武器激活": true,
"玩家使用设置 - 使用权限": "",
"玩家使用设置 - 对玩家近战激活": true,
"玩家使用设置 - 仅以下物品简称或皮肤生效": [],
"玩家使用设置 - 武器等级最低要求": 10,
"玩家使用设置 - 默认释放几率": 50,
"玩家使用设置 - 每级提升几率": 1.0,
"玩家使用设置 - 释放冷却时间秒": 60.0,
"技能类型(类型1=生成预制件 类型2=控制台指令 类型3=给予权限 类型4=效果伤害 类型5=生成图片)": 1,
"有效期秒(类型1=实体多久删 类型2=无效不用写 类型3=授权时间 类型4=伤害持续 类型5=存在时长)": 5.0,
"执行参数(类型1=写入预制件 类型2=写入指令名 类型3=写入权限 类型4=写入特效 类型5=写入外链)": [
"assets/rust.ai/agents/boar/boar.prefab"
],
"列表随机执行": false,
"类型1生成设置 - 高度距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 水平距离米(针对目标玩家位置)": 1.0,
"类型1生成设置 - 生成坠落效果": false,
"类型1生成设置 - 生成包围效果": false,
"类型1生成设置 - 生成数量(开启包围无效)": 1,
"类型1、4、5伤害设置 - 减少玩家血量": 0.0,
"类型1、4、5伤害设置 - 减少玩家水量": 0.0,
"类型1、4、5伤害设置 - 减少玩家饱食": 0.0,
"类型1、4、5伤害设置 - 增加玩家辐射": 0.0,
"类型1、4、5伤害设置 - 减少NPC血量": 0.0,
"类型1、4、5伤害设置 - 减少动物血量": 0.0,
"类型1、4、5伤害设置 - 触发伤害半径米": 10.0,
"类型1、4、5伤害设置 - 每秒造成伤害(玩家使用无效)": false,
"触发设置 - 触发时聊天提示": "小心!{0}将释放{1}技能!",
"触发设置 - 触发特效": "assets/prefabs/misc/halloween/lootbag/effects/gold_open.prefab"
},
{
"编号": 101,
"技能名称": "控制台指令示例",
"玩家使用设置 - 对玩家武器激活": true,
"玩家使用设置 - 使用权限": "",
"玩家使用设置 - 对玩家近战激活": false,
"玩家使用设置 - 仅以下物品简称或皮肤生效": [
"rifle.bolt"
],
"玩家使用设置 - 武器等级最低要求": 5,
"玩家使用设置 - 默认释放几率": 30,
"玩家使用设置 - 每级提升几率": 2.0,
"玩家使用设置 - 释放冷却时间秒": 120.0,
"技能类型(类型1=生成预制件 类型2=控制台指令 类型3=给予权限 类型4=效果伤害)": 2,
"有效期秒(类型1=实体多久删 类型2=无效不用写 类型3=授权时间 类型4=伤害持续)": 0.0,
"执行参数(类型1=写入预制件 类型2=写入指令名 类型3=写入权限 类型4=写入特效)": [
"say 玩家 %玩家名称% 触发了控制台技能!",
"heal %STEAMID% 50"
],
"列表随机执行": false,
"类型1生成设置 - 高度距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 水平距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 生成坠落效果": false,
"类型1生成设置 - 生成包围效果": false,
"类型1生成设置 - 生成数量(开启包围无效)": 1,
"类型1、4伤害设置 - 减少玩家血量": 0.0,
"类型1、4伤害设置 - 减少玩家水量": 0.0,
"类型1、4伤害设置 - 减少玩家饱食": 0.0,
"类型1、4伤害设置 - 增加玩家辐射": 0.0,
"类型1、4伤害设置 - 减少NPC血量": 0.0,
"类型1、4伤害设置 - 减少动物血量": 0.0,
"类型1、4伤害设置 - 触发伤害半径米": 0.0,
"类型1、4伤害设置 - 每秒造成伤害(玩家使用无效)": false,
"触发设置 - 触发时聊天提示": "系统将为{0}执行特殊指令!",
"触发设置 - 触发特效": "assets/prefabs/misc/halloween/lootbag/effects/gold_open.prefab"
},
{
"编号": 102,
"技能名称": "临时VIP权限",
"玩家使用设置 - 对玩家武器激活": false,
"玩家使用设置 - 使用权限": "",
"玩家使用设置 - 对玩家近战激活": true,
"玩家使用设置 - 仅以下物品简称或皮肤生效": [
"knife.bone"
],
"玩家使用设置 - 武器等级最低要求": 15,
"玩家使用设置 - 默认释放几率": 10,
"玩家使用设置 - 每级提升几率": 1.5,
"玩家使用设置 - 释放冷却时间秒": 300.0,
"技能类型(类型1=生成预制件 类型2=控制台指令 类型3=给予权限 类型4=效果伤害)": 3,
"有效期秒(类型1=实体多久删 类型2=无效不用写 类型3=授权时间 类型4=伤害持续)": 60.0,
"执行参数(类型1=写入预制件 类型2=写入指令名 类型3=写入权限 类型4=写入特效)": [
"vip.use",
"teleport.use"
],
"列表随机执行": true,
"类型1生成设置 - 高度距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 水平距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 生成坠落效果": false,
"类型1生成设置 - 生成包围效果": false,
"类型1生成设置 - 生成数量(开启包围无效)": 1,
"类型1、4伤害设置 - 减少玩家血量": 0.0,
"类型1、4伤害设置 - 减少玩家水量": 0.0,
"类型1、4伤害设置 - 减少玩家饱食": 0.0,
"类型1、4伤害设置 - 增加玩家辐射": 0.0,
"类型1、4伤害设置 - 减少NPC血量": 0.0,
"类型1、4伤害设置 - 减少动物血量": 0.0,
"类型1、4伤害设置 - 触发伤害半径米": 0.0,
"类型1、4伤害设置 - 每秒造成伤害(玩家使用无效)": false,
"触发设置 - 触发时聊天提示": "恭喜{0}获得临时特殊权限!",
"触发设置 - 触发特效": "assets/prefabs/misc/halloween/lootbag/effects/gold_open.prefab"
},
{
"编号": 103,
"技能名称": "毒雾伤害",
"玩家使用设置 - 对玩家武器激活": true,
"玩家使用设置 - 使用权限": "",
"玩家使用设置 - 对玩家近战激活": false,
"玩家使用设置 - 仅以下物品简称或皮肤生效": [
"rifle.lr300"
],
"玩家使用设置 - 武器等级最低要求": 20,
"玩家使用设置 - 默认释放几率": 25,
"玩家使用设置 - 每级提升几率": 1.0,
"玩家使用设置 - 释放冷却时间秒": 180.0,
"技能类型(类型1=生成预制件 类型2=控制台指令 类型3=给予权限 类型4=效果伤害)": 4,
"有效期秒(类型1=实体多久删 类型2=无效不用写 类型3=授权时间 类型4=伤害持续)": 10.0,
"执行参数(类型1=写入预制件 类型2=写入指令名 类型3=写入权限 类型4=写入特效)": [
"assets/bundled/prefabs/fx/gas_explosion_small.prefab",
"assets/prefabs/misc/halloween/lootbag/effects/gold_open.prefab"
],
"列表随机执行": false,
"类型1生成设置 - 高度距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 水平距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 生成坠落效果": false,
"类型1生成设置 - 生成包围效果": false,
"类型1生成设置 - 生成数量(开启包围无效)": 1,
"类型1、4、5伤害设置 - 减少玩家血量": 5.0,
"类型1、4、5伤害设置 - 减少玩家水量": 10.0,
"类型1、4、5伤害设置 - 减少玩家饱食": 15.0,
"类型1、4、5伤害设置 - 增加玩家辐射": 20.0,
"类型1、4、5伤害设置 - 减少NPC血量": 30.0,
"类型1、4、5伤害设置 - 减少动物血量": 25.0,
"类型1、4、5伤害设置 - 触发伤害半径米": 8.0,
"类型1、4、5伤害设置 - 每秒造成伤害(玩家使用无效)": true,
"触发设置 - 触发时聊天提示": "警告!{0}释放了毒雾技能,快速离开该区域!",
"触发设置 - 触发特效": "assets/bundled/prefabs/fx/gas_explosion_small.prefab"
},
{
"编号": 104,
"技能名称": "全屏图片显示",
"玩家使用设置 - 对玩家武器激活": true,
"玩家使用设置 - 使用权限": "",
"玩家使用设置 - 对玩家近战激活": true,
"玩家使用设置 - 仅以下物品简称或皮肤生效": [
"pistol.revolver"
],
"玩家使用设置 - 武器等级最低要求": 5,
"玩家使用设置 - 默认释放几率": 15,
"玩家使用设置 - 每级提升几率": 2.0,
"玩家使用设置 - 释放冷却时间秒": 240.0,
"技能类型(类型1=生成预制件 类型2=控制台指令 类型3=给予权限 类型4=效果伤害 类型5=生成图片)": 5,
"有效期秒(类型1=实体多久删 类型2=无效不用写 类型3=授权时间 类型4=伤害持续 类型5=存在时长)": 8.0,
"执行参数(类型1=写入预制件 类型2=写入指令名 类型3=写入权限 类型4=写入特效 类型5=写入外链)": [
"http://img.rustsb.com/1.jpg",
"http://img.rustsb.com/2.jpg",
"http://img.rustsb.com/3.jpg"
],
"列表随机执行": false,
"类型1生成设置 - 高度距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 水平距离米(针对目标玩家位置)": 0.0,
"类型1生成设置 - 生成坠落效果": false,
"类型1生成设置 - 生成包围效果": false,
"类型1生成设置 - 生成数量(开启包围无效)": 1,
"类型1、4、5伤害设置 - 减少玩家血量": 2.0,
"类型1、4、5伤害设置 - 减少玩家水量": 5.0,
"类型1、4、5伤害设置 - 减少玩家饱食": 3.0,
"类型1、4、5伤害设置 - 增加玩家辐射": 10.0,
"类型1、4、5伤害设置 - 减少NPC血量": 0.0,
"类型1、4、5伤害设置 - 减少动物血量": 0.0,
"类型1、4、5伤害设置 - 触发伤害半径米": 0.0,
"类型1、4、5伤害设置 - 每秒造成伤害(玩家使用无效)": false,
"触发设置 - 触发时聊天提示": "注意!{0}的视野被干扰了!",
"触发设置 - 触发特效": "assets/prefabs/misc/halloween/lootbag/effects/gold_open.prefab"
}
],
"免疫权限设置": [
{
"编号": 1,
"权限": "xmskilllibrary.immunity.1",
"免疫概率(1-100)": 100,
"每日免疫上限次数": 0,
"免疫后冷却时间": 0.0
},
{
"编号": 100,
"权限": "xmskilllibrary.immunity.100",
"免疫概率(1-100)": 50,
"每日免疫上限次数": 5,
"免疫后冷却时间": 300.0
},
{
"编号": 103,
"权限": "xmskilllibrary.immunity.103",
"免疫概率(1-100)": 75,
"每日免疫上限次数": 3,
"免疫后冷却时间": 600.0
}
]
}
注意事项
- 性能优化:插件已优化性能,避免频繁的碰撞检测
- 扩展性:支持后续添加更多硬编码技能
- 安全性:所有API调用都经过权限和免疫检查
开发计划
- [ ] 添加更多预设技能
- [ ] 添加UI界面
- [ ] 添加技能组合系统