public static void RobustHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; var codes = e.Message.CQCodes; //无此人,直接返回 if (!Game.Players.ContainsKey(qq)) { return; } var p = Game.Players[qq]; p.SetEIn(e); //无此道具,提示返回 if (!p.Package.Contain("神偷手套")) { p.SendMes("你没有神偷手套,无法偷取"); return; } //异常处理 if (codes.Count != 1) { p.SendMes("请选择唯一一个角色"); return; } //获取被偷玩家 long qq2 = long.Parse(codes[0].Items["qq"]); //如果这名玩家是自己 if (p.QQ == qq2) { p.SendMes("请不要偷取自己"); return; } if (!Game.Players.ContainsKey(qq2)) { FixStroy.WarnNoUser(e); return; } var p2 = Game.Players[qq2]; int num = p2.StatusInt.Get("修为增加数值"); p.XW += num; p2.XW -= num; p.SendMes($"你成功从对方处偷取了修为{num}点"); p.Package.LoseOne("神偷手套"); }
//援助-吸收疯狂 public static void HelpHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; var codes = e.Message.CQCodes; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); if (Math.Abs(p.StatusInt.Get("援助时间") - DateTime.Now.DayOfYear) < 7) { p.SendMes("七天之内只能援助一次~"); return; } //异常处理 if (codes.Count != 1) { p.SendMes("请选择唯一一个角色"); return; } //疯狂高于50 if (p.Crazy >= 50) { p.SendMes("请先照顾好自己!"); return; } //获取被偷玩家 long qq2 = long.Parse(codes[0].Items["qq"]); //如果这名玩家是自己 if (p.QQ == qq2) { p.SendMes("请不要援助自己"); return; } if (!Game.Players.ContainsKey(qq2)) { FixStroy.WarnNoUser(e); return; } var p2 = Game.Players[qq2]; if (p2.Crazy < 50) { p.SendMes("对方疯狂少于50,无法援助"); return; } p.SendMes("患难见真情,对方疯狂-5,你疯狂+6"); p2.Crazy -= 5; p.Crazy += 6; p.StatusInt.Set("援助时间", DateTime.Now.DayOfYear); }
public static void TwoHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; var codes = e.Message.CQCodes; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); if (p.LevelNum < 4) { p.SendMes($"境界达到唤灵境才可以双修"); return; } if (codes.Count == 0) { p.SendMes("请选择一个双修的对象"); return; } if (codes.Count > 1) { e.FromGroup.SendGroupMessage(cqat, " ", "等到你变得更强的时候,再来和更多人一起双修吧!"); return; } if (p.StatusInt.Get("上次双修时间") == DateTime.Now.DayOfYear) { e.FromGroup.SendGroupMessage(cqat, " ", "你今天已经*修过啦~"); return; } //获取被双修玩家 long qq2 = long.Parse(codes[0].Items["qq"]); //如果这名玩家是自己 if (p.QQ == qq2) { e.FromGroup.SendGroupMessage(cqat, " ", "请不要和自己双修~"); return; } if (!Game.Players.ContainsKey(qq2)) { FixStroy.WarnNoUser(e); return; } var p2 = Game.Players[qq2]; //更新双修日期 p.StatusInt.Set("上次双修时间", DateTime.Now.DayOfYear); //上次的 var p1str = p.QQ.ToString(); var p1ChooseStr = p.StatusStr.Get("双修对象"); var p1time = p.StatusInt.Get("上次双修时间"); //这次选择的 var p2str = p2.QQ.ToString(); var p2ChooseStr = p2.StatusStr.Get("双修对象"); var p2time = p2.StatusInt.Get("上次双修时间"); //有且仅有一种情况加,双方今日都选了对方作为双修对象 if (p2ChooseStr == p1str && p1time == p2time) { //设置一个上限! if (p.StatusInt.Get("双修分") < (p.LevelNum + p2.LevelNum) * 10) { p.StatusInt.Add("双修分", 5); p2.StatusInt.Add("双修分", 5); } var r = p.StatusInt.Get("双修分"); if (r >= 80) { r = 80; } p.XW += r; p2.XW += r; e.FromGroup.SendGroupMessage(cqat, $"[CQ:at,qq={qq2}]", " ", $"你们两人一番云雨,水到渠成,功力各增加{r}点"); } else { //如果你坚持了同一个双修对象 if (p2str == p1ChooseStr) { e.FromGroup.SendGroupMessage(cqat, " ", $"对方还没有回应你的双修~等待机会吧"); } //第一次选择角色,或换角色 else { p.StatusInt.Set("双修分", 0); p.StatusStr.Set("双修对象", p2str); e.FromGroup.SendGroupMessage(cqat, " ", $"你选择了一个新的双修对象"); } } }
public static void FightHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; var codes = e.Message.CQCodes; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //异常处理 if (codes.Count == 0) { FixStroy.WarnUnserFightWind(e); return; } if (codes.Count > 1) { p.SendMes("等到你变得更强的时候,再来挑战多人吧!"); return; } if (p.StatusInt.Get("上次挑战时间") == DateTime.Now.DayOfYear) { p.SendMes("你今天已经挑战过啦~"); return; } //获取被挑战玩家 long qq2 = long.Parse(codes[0].Items["qq"]); //如果这名玩家是自己 if (p.QQ == qq2) { p.SendMes("请不要挑战自己~"); return; } if (!Game.Players.ContainsKey(qq2)) { FixStroy.WarnNoUser(e); return; } var p2 = Game.Players[qq2]; //r如果选了一个闭关的人呢 if (p2.StatusStr.Contain("闭关")) { p.SendMes("请不要挑战闭关中的修炼者"); return; } // p.Fight(p2); // p.StatusInt.Set("上次挑战时间", DateTime.Now.DayOfYear); }