// 在其他插件中调用
bool success = (bool)XMChessGame?.Call("StartChessChallenge",
player.UserIDString, // 玩家ID
300, // 5分钟时限
true, // 允许重试一次
"完成象棋挑战获得神秘大礼包!", // 奖励描述
new Action<bool>(success => {
if (success)
{
// 挑战成功后的处理
player.ChatMessage("恭喜完成象棋挑战!");
// 可以在这里给予奖励
rust.RunServerCommand($"inventory.giveto {player.UserIDString} scrap 1000");
}
else
{
// 挑战失败后的处理
player.ChatMessage("很遗憾,挑战失败了!");
}
})
);
if (success)
{
player.ChatMessage("象棋挑战已启动!");
}
else
{
player.ChatMessage("启动挑战失败,请稍后再试。");
}
void OnChessGameStart(BasePlayer player, bool isChallenge)
{
if (isChallenge)
Puts($"{player.displayName} 开始了象棋挑战!");
else
Puts($"{player.displayName} 开始了象棋游戏!");
}
void OnChessGameSuccess(BasePlayer player, int score, bool isChallenge)
{
if (isChallenge)
Puts($"{player.displayName} 完成了象棋挑战!");
else if (score > 0)
Puts($"{player.displayName} 象棋获胜,获得 {score} 分!");
else
Puts($"{player.displayName} 在PvP对战中获胜!");
}
void OnChessGameFailed(BasePlayer player, int score, bool isChallenge)
{
if (isChallenge)
Puts($"{player.displayName} 象棋挑战失败!");
else
Puts($"{player.displayName} 象棋失败,最终 {score} 分");
}
void OnChessPvPStart(BasePlayer player1, BasePlayer player2)
{
Puts($"{player1.displayName} 和 {player2.displayName} 开始了象棋对战!");
// 可以在这里添加对战开始的提示或奖励
}