API 列表
1. API_GetPlayerStarInfo
说明: 获取玩家的星标信息
参数:
- userIdString (string) - 玩家的SteamID字符串
返回值: Dictionary<string, object>
- type (string) - 星标类型:"无星标"、"红星标"、"黄星标"、"蓝星标"、"绿星标"
- level (int) - 星标等级:0=无星标, 1=红星, 2=黄星, 3=蓝星, 4=绿星
- hasStar (bool) - 是否拥有星标
示例:
C#:
[PluginReference]
private Plugin XMPlayerAdmin;
var starInfo = XMPlayerAdmin?.Call("API_GetPlayerStarInfo", player.UserIDString) as Dictionary<string, object>;
if (starInfo != null)
{
string type = starInfo["type"].ToString();
int level = Convert.ToInt32(starInfo["level"]);
bool hasStar = Convert.ToBoolean(starInfo["hasStar"]);
Puts($"玩家星标: {type}, 等级: {level}, 有星标: {hasStar}");
}
2. API_GetAllStarPlayerIds
说明: 获取指定星标等级的所有玩家ID列表
参数:
- starLevel (int) - 星标等级 (1=红星, 2=黄星, 3=蓝星, 4=绿星)
返回值: List<ulong> - 该星标等级的玩家ID列表
示例:
C#:
// 获取所有红星玩家
var redStarPlayers = XMPlayerAdmin?.Call("API_GetAllStarPlayerIds", 1) as List<ulong>;
if (redStarPlayers != null)
{
Puts($"红星玩家数量: {redStarPlayers.Count}");
}
3. API_GetAllStarPlayers
说明: 获取所有星标玩家,按星标等级分类
参数: 无
返回值: Dictionary<int, List<ulong>>
- Key: 星标等级 (1=红星, 2=黄星, 3=蓝星, 4=绿星)
- Value: 该等级的玩家ID列表
示例:
C#:
var allStarPlayers = XMPlayerAdmin?.Call("API_GetAllStarPlayers") as Dictionary<int, List<ulong>>;
if (allStarPlayers != null)
{
Puts($"红星玩家: {allStarPlayers[1].Count}");
Puts($"黄星玩家: {allStarPlayers[2].Count}");
Puts($"蓝星玩家: {allStarPlayers[3].Count}");
Puts($"绿星玩家: {allStarPlayers[4].Count}");
}
4. API_GetAllNewPlayerIds
说明: 获取所有新玩家的ID列表(包括离线玩家,自动排除已过期的玩家)
参数: 无
返回值: List<ulong> - 所有有效的新玩家ID列表
特点:
- 返回存档中所有新玩家的ID(包括在线和离线玩家)
- 自动过滤已过期的新玩家
- 可用于统计新玩家数量或批量处理新玩家数据
示例:
C#:
var allNewPlayers = XMPlayerAdmin?.Call("API_GetAllNewPlayerIds") as List<ulong>;
if (allNewPlayers != null)
{
Puts($"当前服务器共有 {allNewPlayers.Count} 个新玩家");
foreach (var playerId in allNewPlayers)
{
// 对每个新玩家进行处理
var playerName = GetPlayerName(playerId);
Puts($"新玩家: {playerName} ({playerId})");
}
}
5. API_GetEntityName
说明: 根据实体预制路径获取实体的中文名称
参数:
- prefabName (string) - 实体预制路径(完整路径或部分路径)
返回值: string - 实体的中文名称,如果找不到返回null
特点:
- 支持完整预制路径和部分路径匹配
- 优先查找配置文件中的自定义实体
- 自动搜索载具、NPC、资源、箱子、设施、事件、树木、灌木、特效、售货机等分类
- 返回对应的中文名称
示例:
C#:
[PluginReference]
private Plugin XMPlayerAdmin;
// 使用完整路径
string entityName1 = XMPlayerAdmin?.Call("API_GetEntityName", "assets/bundled/prefabs/autospawn/resource/ores/stone-ore.prefab") as string;
Puts($"实体名称: {entityName1}"); // 输出: 实体名称: 石头矿石
// 使用部分路径
string entityName2 = XMPlayerAdmin?.Call("API_GetEntityName", "stone-ore") as string;
Puts($"实体名称: {entityName2}"); // 输出: 实体名称: 石头矿石
// 获取载具名称
string vehicleName = XMPlayerAdmin?.Call("API_GetEntityName", "minicopter") as string;
Puts($"载具名称: {vehicleName}"); // 输出: 载具名称: 小型直升机
6. API_GetEntityCategory
说明: 根据实体预制路径获取实体的分类
参数:
- prefabName (string) - 实体预制路径(完整路径或部分路径)
返回值: string - 实体的分类名称,如果找不到返回null
可能的返回值:
- "载具"
- "NPC"
- "资源"
- "箱子"
- "设施"
- "事件"
- "树木"
- "灌木"
- "特效"
- "售货机"
特点:
- 支持完整预制路径和部分路径匹配
- 自动搜索所有实体分类
- 返回实体所属的分类名称
示例:
C#:
[PluginReference]
private Plugin XMPlayerAdmin;
// 获取矿石分类
string category1 = XMPlayerAdmin?.Call("API_GetEntityCategory", "stone-ore") as string;
Puts($"实体分类: {category1}"); // 输出: 实体分类: 资源
// 获取载具分类
string category2 = XMPlayerAdmin?.Call("API_GetEntityCategory", "minicopter") as string;
Puts($"实体分类: {category2}"); // 输出: 实体分类: 载具
// 获取NPC分类
string category3 = XMPlayerAdmin?.Call("API_GetEntityCategory", "scientistnpc_roam") as string;
Puts($"实体分类: {category3}"); // 输出: 实体分类: NPC
// 判断实体是否属于特定分类
string category = XMPlayerAdmin?.Call("API_GetEntityCategory", entity.PrefabName) as string;
if (category == "树木" || category == "灌木")
{
Puts("这是一个植物类实体");
}