• 注册后才能下载/购买插件!快来注册吧,注册即可免费下载 精翻插件 !【点我注册
  • RustSB.COM向广大野生Rust插件作者发出入驻邀请!详情请见[原创作者条约]
【XMSkillLibrary·技能库】

原创 【XMSkillLibrary·技能库】 1.0.22

XMSkillLibrary API 使用指南​

XMSkillLibrary提供了简洁的API接口,让其他插件轻松调用技能系统。

🎯 核心特性​

  • 精确目标控制:可选择攻击玩家、NPC、动物、建筑的任意组合
  • 完整权限支持:自动检查免疫权限、格挡权限等
  • 配置驱动:伤害、特效、冷却等完全由技能配置决定
  • 建筑保护:支持TruePVE和建筑群保护
  • 击杀统计:支持击杀归属和数据统计



📋 API列表​

1. CallSkillAtPositionToTargets - 万能技能调用​

功能:在指定位置释放技能,精确控制攻击目标
C#:
var result = XMSkillLibrary.Call("CallSkillAtPositionToTargets",
    skillId, x, y, z,
    attackPlayers, attackNPCs, attackAnimals, attackBuildings,
    excludeEntityId, customReleaserName,
    excludePlayerId, attackerUserId, releaserUserId);
参数详解
  • skillId (int): 技能编号(1-99预设技能,100+自定义技能)
  • x, y, z (float): 技能释放位置坐标
  • attackPlayers (bool): 是否攻击真实玩家
  • attackNPCs (bool): 是否攻击NPC
  • attackAnimals (bool): 是否攻击动物
  • attackBuildings (bool): 是否攻击建筑
  • excludeEntityId (ulong): 排除的实体ID(0=不排除)⚠️
  • customReleaserName (string): 自定义释放者名称(用于聊天提示)
  • excludePlayerId (ulong): 排除的玩家ID(0=不排除)⚠️
  • attackerUserId (string): 攻击者UserIDString(用于击杀统计,null=无攻击者)
  • releaserUserId (string): 释放者UserIDString(用于伤害类型判断,null=天雷效果)
返回值:bool - 技能是否成功释放


2. GetSkillInfo - 获取技能信息​

功能:获取技能详细信息,用于UI显示
C#:
var skillInfo = XMSkillLibrary.Call("GetSkillInfo", skillId);
var skillInfo = XMSkillLibrary.Call("GetSkillInfo", skillId);
参数
  • skillId (int): 技能编号
返回值:Dictionary<string, object> - 包含技能名称、描述、图像、伤害等所有配置信息

⚠️ 重要注意事项​

参数类型要求

  • excludeEntityId 和 excludePlayerId 必须是 (ulong)0 或有效的ulong值
  • 不能使用 0(int类型),会导致API调用失败

目标选择逻辑

  • 四个攻击参数控制技能对哪些类型造成伤害
  • false = 该类型不受伤害(即使在技能范围内)
  • true = 该类型会受到伤害

伤害类型区分

  • 有 releaserUserId = 玩家对玩家伤害(使用PvP伤害配置)
  • 无 releaserUserId = 非玩家对玩家伤害(使用PvE伤害配置)

📖 常用示例​

天雷攻击玩家

C#:
XMSkillLibrary.Call("CallSkillAtPositionToTargets",
    1,                          // 雷电技能
    player.transform.position.x, player.transform.position.y, player.transform.position.z,
    true, false, false, false,  // 只攻击玩家
    (ulong)0, "天雷",           // 不排除实体,自定义名称
    (ulong)0, null, null);      // 不排除玩家,无攻击者,天雷效果

NPC反击玩家

C#:
XMSkillLibrary.Call("CallSkillAtPositionToTargets",
    2,                          // 火球技能
    player.transform.position.x, player.transform.position.y, player.transform.position.z,
    true, false, false, false,  // 只攻击玩家
    (ulong)0, "愤怒的NPC",      // 不排除实体,自定义名称
    (ulong)0, null,             // 不排除玩家,无攻击者
    npc.UserIDString);          // NPC作为释放者(PvE伤害)

玩家攻击NPC

C#:
XMSkillLibrary.Call("CallSkillAtPositionToTargets",
    3,                          // 冰锥技能
    npc.transform.position.x, npc.transform.position.y, npc.transform.position.z,
    false, true, false, false,  // 只攻击NPC
    (ulong)0, player.displayName, // 不排除实体,玩家名称
    (ulong)0,                   // 不排除玩家
    player.UserIDString,        // 玩家作为攻击者(击杀统计)
    player.UserIDString);       // 玩家作为释放者(PvP伤害)

范围清理(不伤害玩家)

C#:
XMSkillLibrary.Call("CallSkillAtPositionToTargets",
    4,                          // 爆炸技能
    centerX, centerY, centerZ,  // 清理中心
    false, true, true, false,   // 攻击NPC和动物,不攻击玩家和建筑
    (ulong)0, "清理系统",       // 不排除实体,系统名称
    (ulong)0, null, null);      // 不排除玩家,无攻击者,天雷效果

🎯 快速参考表​


场景attackPlayersattackNPCsattackAnimalsattackBuildingsreleaserUserId
天雷劈人✅❌❌❌null
玩家PvP✅❌❌❌玩家ID
NPC反击✅❌❌❌NPC的ID
清理怪物❌✅✅❌null
攻城技能❌❌❌✅攻击者ID
全能攻击✅✅✅✅释放者ID