var result = XMSkillLibrary.Call("CallSkill", targetUserId, skillId, customReleaserName);
// 对玩家释放雷电技能(技能1)
var result = XMSkillLibrary.Call("CallSkill", player.UserIDString, 1);
// 使用自定义释放者名称
var result = XMSkillLibrary.Call("CallSkill", player.UserIDString, 1, "恶龙王");
// 聊天提示将显示:"恶龙王将释放雷电技能!"
var result = XMSkillLibrary.Call("CallSkillWithReleaser", releaserUserId, targetUserId, skillId, customReleaserName);
// 玩家A对玩家B释放火箭弹技能(技能2)
var result = XMSkillLibrary.Call("CallSkillWithReleaser",
playerA.UserIDString,
playerB.UserIDString,
2);
// BOSS对玩家释放技能,使用自定义BOSS名称
var result = XMSkillLibrary.Call("CallSkillWithReleaser",
bossPlayer.UserIDString,
player.UserIDString,
1,
"火焰巨龙");
// 聊天提示将显示:"火焰巨龙将释放雷电技能!"
var result = XMSkillLibrary.Call("CallSkillDirect", releaserEntity, targetEntity, skillId, customReleaserName);
// NPC对玩家释放技能(最推荐的方式)
var result = XMSkillLibrary.Call("CallSkillDirect", npc, player, 1);
// 玩家对玩家释放技能
var result = XMSkillLibrary.Call("CallSkillDirect", attacker, victim, 5);
// 使用自定义名称的NPC技能
var result = XMSkillLibrary.Call("CallSkillDirect", npc, player, 1, "守护者机器人");
// 聊天提示将显示:"守护者机器人将释放雷电技能!"
var result = XMSkillLibrary.Call("CallSkillAtPosition", targetUserId, skillId, x, y, z, customReleaserName);
// 从指定坐标对玩家释放技能
var result = XMSkillLibrary.Call("CallSkillAtPosition",
player.UserIDString,
1,
100.0f, 50.0f, 200.0f);
// 建筑反击,使用自定义名称
var result = XMSkillLibrary.Call("CallSkillAtPosition",
player.UserIDString,
1,
turret.transform.position.x,
turret.transform.position.y,
turret.transform.position.z,
"玩家名称的炮塔");
// 聊天提示将显示:"玩家名称的炮塔将释放雷电技能!"
var result = XMSkillLibrary.Call("CallSkillAtPositionExclude", targetUserId, skillId, x, y, z, excludeEntityId, customReleaserName);
// 建筑反击,排除建筑自身不受伤害
var result = XMSkillLibrary.Call("CallSkillAtPositionExclude",
player.UserIDString,
1,
building.transform.position.x,
building.transform.position.y,
building.transform.position.z,
building.net.ID,
"玩家名称的建筑");
public class WorldBoss : RustPlugin
{
[PluginReference]
private Plugin XMSkillLibrary;
private void OnEntityDeath(BasePlayer boss, HitInfo info)
{
if (boss.displayName != "世界BOSS") return;
var killer = info.InitiatorPlayer;
if (killer == null) return;
// BOSS死亡时对击杀者释放奖励技能,使用自定义BOSS名称
XMSkillLibrary?.Call("CallSkillDirect", boss, killer, 25, "恶龙王"); // 回血技能
}
private void BossAttack(BasePlayer boss, BasePlayer target)
{
// BOSS攻击时随机释放技能,使用自定义BOSS名称
int randomSkill = UnityEngine.Random.Range(1, 6);
XMSkillLibrary?.Call("CallSkillDirect", boss, target, randomSkill, "火焰巨龙");
// 聊天提示:"警告!火焰巨龙将释放XX技能!"
}
}
private void OnEntityTakeDamage(BasePlayer npc, HitInfo info)
{
var attacker = info.InitiatorPlayer;
if (attacker == null) return;
// NPC被攻击时反击,使用自定义NPC名称
if (UnityEngine.Random.Range(0, 100) < 30) // 30%概率
{
XMSkillLibrary?.Call("CallSkillDirect", npc, attacker, 1, "守护者机器人"); // 雷电反击
// 聊天提示:"警告!守护者机器人将释放雷电技能!"
}
}
// 实体反击示例
private void OnEntityAttacked(BaseEntity entity, BasePlayer attacker)
{
var owner = GetEntityOwner(entity);
if (owner == null) return;
// 构造自定义释放者名称
string entityType = GetEntityDisplayName(entity);
string customName = $"{owner.displayName}的{entityType}";
// 实体反击,使用自定义名称
XMSkillLibrary?.Call("CallSkill",
attacker.UserIDString,
UnityEngine.Random.Range(1, 6),
customName);
// 聊天提示:"警告!玩家名称的炮塔将释放XX技能!"
}