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

原创 【XMTeam·组队系统】 1.0.3

功能概述​

XMTeam 插件现已提供 API 接口,允许其他插件调用组队功能,实现玩家之间的快速组队交互。通过此 API,您可以让玩家在不打开组队界面的情况下,直接发送组队邀请或申请加入他人队伍。

API 方法​

TeamInteraction​

此方法用于处理玩家之间的组队交互,包括发送邀请和申请加入队伍。

参数​

  • senderId (string): 发起交互的玩家 SteamID
  • targetId (string): 目标玩家 SteamID

返回值​

方法返回一个字符串,表示交互结果:

返回值说明
success操作成功,邀请或申请已发送
both_no_team双方都没有队伍,需要先创建队伍
target_has_team目标玩家已在队伍中,无法邀请
target_offline目标玩家不在线
target_not_leader发起者不是队长,无法邀请其他玩家
invalid_target无效的目标玩家
error其他错误

使用逻辑​

API 会根据双方的队伍状态自动判断应该执行的操作:
  1. 如果发起者有队伍:
  • 检查发起者是否为队长
  • 如果是队长且目标没有队伍,则向目标发送邀请
  • 如果目标已有队伍,则返回错误
  1. 如果发起者没有队伍:
  • 如果目标也没有队伍,则返回错误(双方都需要先创建队伍)
  • 如果目标有队伍且是队长,则向目标发送入队申请
  • 如果目标队伍开启了自动通过申请,则直接加入队伍

调用示例​

C#:
// 引用插件
[PluginReference]
private Plugin XMTeam;

// 调用API
private void SendTeamInteraction(BasePlayer sender, BasePlayer target)
{
    if (XMTeam == null) return;
  
    string result = XMTeam.Call<string>("TeamInteraction", sender.UserIDString, target.UserIDString);
  
    switch (result)
    {
        case "success":
            // 成功处理,消息已在API中发送
            break;
        case "both_no_team":
            sender.ChatMessage($"你和 {target.displayName} 都没有队伍,请先创建一个队伍。");
            break;
        case "target_has_team":
            sender.ChatMessage($"{target.displayName} 已经在一个队伍中了,无法邀请。");
            break;
        case "target_offline":
            sender.ChatMessage("目标玩家不在线。");
            break;
        case "target_not_leader":
            sender.ChatMessage("你不是队长,无法邀请其他玩家。");
            break;
        default:
            sender.ChatMessage("组队操作失败,请稍后再试。");
            break;
    }
}

实际应用场景​

  1. 玩家互动界面:在玩家资料卡、聊天界面等地方添加组队按钮
  2. 求助系统:在求助页面添加组队按钮,方便玩家快速组队解决问题
  3. 活动系统:在活动界面中添加组队功能,方便玩家快速组队参与活动
  4. 交易系统:在交易界面添加组队按钮,方便交易后继续互动

注意事项​

  1. 调用前请确保 XMTeam 插件已加载,可以通过检查引用是否为 null 来判断
  2. API 会自动发送相关提示消息给玩家,无需重复发送
  3. 如果需要自定义提示消息,可以根据返回结果自行处理