API详细说明
1. API_GetPlayerPoints
功能: 获取指定玩家的当前积分
参数:
- string userid - 玩家的SteamID(字符串格式)
返回值:
- int - 玩家当前积分数量
- 如果玩家不存在或参数无效,返回 0
2. API_AddPlayerPoints
功能: 为指定玩家增加积分
参数:
- string userid - 玩家的SteamID(字符串格式)
- int amount - 要增加的积分数量(必须大于0)
返回值:
- bool - true 表示增加成功,false 表示失败
触发Hook: 成功增加后会触发 OnXMUniversalPointsGained Hook
3. API_RemovePlayerPoints
功能: 扣除指定玩家的积分
参数:
- string userid - 玩家的SteamID(字符串格式)
- int amount - 要扣除的积分数量(必须大于0)
返回值:
- bool - true 表示扣除成功,false 表示失败(积分不足或参数无效)
触发Hook: 成功扣除后会触发 OnXMUniversalPointsRemoved Hook
4. API_ShowDeductConfirm
功能: 显示积分抵扣确认UI,用于物品不足时使用积分抵扣
参数:
- BasePlayer player - 玩家对象(传 `null` 时仅检查配置是否存在)
- string itemName - 物品显示名称
- string itemShortname - 物品简称
- ulong itemSkin - 物品皮肤ID
- int requiredAmount - 需要的物品数量
- string callbackCommand - 确认后执行的控制台指令
返回值:
- bool - true 表示显示了抵扣UI,false 表示无法抵扣或配置不存在
使用场景:
- 玩家背包物品不足
- 该物品已在配置文件中设置了抵扣规则
- 玩家积分足够支付缺少的物品
详细说明:
- 此API会自动计算玩家背包中已有的物品数量
- 只对缺少的部分进行积分抵扣
- 如果积分不足会自动提示玩家
- 玩家确认后会执行 callbackCommand 指定的控制台指令
5. API_ShowPointsDeductConfirm
功能: 显示积分抵扣确认UI,用于数值不足时使用积分抵扣(如幸运值、经验值等)
参数:
- BasePlayer player - 玩家对象(传 `null` 时仅检查配置是否存在)
- int pluginId - 插件编号
- int missingValue - 缺少的数值数量
- string valueName - 数值显示名称(如"幸运值"、"贡献度"等)
- string callbackCommand - 确认后执行的控制台指令
返回值:
- bool - true 表示显示了抵扣UI,false 表示无法抵扣或配置不存在
使用场景:
- 玩家某个数值不足(如幸运值、经验等)
- 需要使用积分来补足差额
- 与其他插件配合实现数值抵扣功能
详细说明:
- 此API专门用于数值型抵扣,不涉及物品
- 直接传入缺少的数值数量和需要消耗的积分
- 如果积分不足会自动提示玩家
- 玩家确认后会自动扣除积分并执行 callbackCommand 指定的控制台指令
- 回调指令由调用方插件决定,用于执行后续业务逻辑
HOOK
1. 玩家获得积分时
C#:
void OnXMUniversalPointsGained(string playerName, int amount)
{
Puts($"玩家 {playerName} 获得了 {amount} 积分");
}
参数说明:
- playerName (string) - 玩家名称
- amount (int) - 获得的积分数量
2. 玩家扣除积分时
C#:
void OnXMUniversalPointsRemoved(string playerName, int amount)
{
Puts($"玩家 {playerName} 被扣除了 {amount} 积分");
}
参数说明:
- playerName (string) - 玩家名称
- amount (int) - 扣除的积分数量
触发时机:
- 管理员使用指令扣除玩家积分时
- 其他插件通过API扣除玩家积分时