public static void SayGoodHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //展示信息 p.XW += 1; foreach (var c in Common.Word) { if (e.Message.Text.Contains(c)) { e.FromGroup.SendGroupMessage(cqat, " ", "夸群主的都是好人!修为+1"); return; } } }
//显示当前所有违禁品 public static void ForbinHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //展示信息 var s = @"易章大帝敕令-356号 以下物品,部分因效果强大对党国安全造成不可忽略的威胁,部分因效果过于薄弱,存在欺骗消费者的嫌疑,予以禁止。 "; foreach (var c in items.ItemList.Forbin.Keys) { s += "\n" + c; } p.SendMes(s); }
public static void InhomeHandle(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 < 6) { p.SendMes($"境界达到问灵境才可以闭关"); return; } //执行闭关 p.StatusStr.Set("闭关", "true"); p.StatusInt.Set("入关年", DateTime.Now.Year); p.StatusInt.Set("入关月", DateTime.Now.Month); p.StatusInt.Set("入关日", DateTime.Now.Day); p.SendMes("你已经开始闭关,闭关期间,你无法进行各种活动。如果你是考生,祝你考试顺心如意;如果你要好好工作了~希望你可以实现自己的梦想!"); }
//来自群主的馈赠 public static void GiveITHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); // if (p.StatusStr.Contain("馈赠")) { p.SendMes("你已经领取过一次群主的馈赠了!"); return; } if (p.XW <= 9000) { p.SendMes("你太弱了,不配领取群主的馈赠!"); return; } //正常领取 p.Package.AddOne("小树苗"); p.Package.AddOne("疾跑药水"); p.StatusStr.Set("馈赠", "True"); p.SendMes($"请领取你的馈赠吧!一个小树苗,一个疾跑药水已入账!"); }
/// <summary> /// 赠送 /// </summary> /// <param name="e"></param> public static void GiveHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); if (p.LevelNum < 7) { p.SendMes("境界达到寻灵境才可以赠送东西给伴侣物品"); return; } if (e.Message.Text == "赠送") { //展示信息 p.SendMes("使用‘赠送#物品名’来把自己背包中的一个道具,赠送给自己的伴侣"); return; } if (e.Message.Text.Contains("赠送#")) { //展示信息 var name = e.Message.Text.Split('#')[1]; if (!p.Package.Contain(name)) { p.SendMes("请不要送出你没有的物品"); return; } if (p.StatusInt.Get("双修分") < 50) { p.SendMes("清热分还不到50,还不能赠送物品~请再接再厉"); return; } p.Package.LoseOne(name); var p2 = Game.Players[long.Parse(p.StatusStr.Get("双修对象"))]; //获得 p2.Package.AddOne(name); p.SendMes($"你失去了{name},对方获得了{name}"); } return; }
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 SendHandle(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); //如果不是我 long a = 1160564525; if (p.QQ != a) { p.SendMes("你并无此权限"); return; } if (e.Message.Text == "奖励#临别赠言") { e.FromGroup.SendGroupMessage(CQApi.CQCode_AtAll(), "感谢大家这么多天的陪伴,现在,我要休息一会儿了;世界很大,我们有缘再会~"); e.FromGroup.SendGroupMessage("大家最后的数据,会通过私发消息的方式发给大家,再见!"); foreach (var p0 in Game.Players.Values) { try { //文档位置 e.CQApi.SendPrivateMessage(p0.QQ, "百科全书地址:https://zgarry.github.io/SimpleXiuXian/_site/story/index.html"); //因一些原因 e.CQApi.SendPrivateMessage(p0.QQ, @"这是一封告别信。因为QQ考虑到机器人常用来做一些灰产,封停了所有机器人。我们的机器人,面粉团,也不例外。2020.8.7日上午8: 00,我们将正式关闭面粉团。我们坚信,未来的世界会产生更多连接,生活更加美好!面粉团,再见!"); //展示信息 string template = @$ "{p0.Level.Slogan} 境界: {p0.Level.LevelName} LV.{p0.LevelNum} 修为: {p0.XW} 金币: {p0.Gold} 三相: 体质{p0.Basic} | 疯狂{p0.Crazy} | 幸运{p0.Lucky}
//挑衅野怪 public static void FightMonsterHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //使用 if (p.StatusInt.Get("上次挑衅时间") == DateTime.Now.DayOfYear) { p.SendMes("每次遗迹开放都只能挑衅一次~"); return; } //时间判断 if (DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday) { p.SendMes($"遗迹开放时才能挑衅"); return; } //19-20(不包括二十) if (DateTime.Now.Hour != 19) { p.SendMes($"现在不是挑衅的时间"); return; } //今天还没进入遗迹 if (Game.IntRecord.Get("进入遗迹时间") != DateTime.Now.DayOfYear) { p.SendMes("请先进入遗迹"); return; } var monsterName = e.Message.Text.Split('#')[1]; p.StatusInt.Set("上次挑衅时间", DateTime.Now.DayOfYear); NowPlace.MonsterATKbyPerson(p, monsterName); }
public static void ChooseHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //p.SendMes($"你选择了第{p.Choose}个选项"); p.SetTNowEvent(PlayerEvent.GiveChoice, int.Parse(e.Message.Text[1].ToString())); }
public static void LookUpHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //提示没有角色 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } //排序 var up = Game.Players.Values.ToList().OrderBy(x => - x.XW).ToList(); //找出你在其中的位置 int i = 0; for (; i < up.Count; i++) { if (up[i].QQ == qq) { break; } } //展示信息 string template = $@"修为排行榜-像大佬学习! 1.{e.CQApi.GetStrangerInfo(up[0].QQ).Nick} | {up[0].XW} | 2.{e.CQApi.GetStrangerInfo(up[1].QQ).Nick} | {up[1].XW} | 3.{e.CQApi.GetStrangerInfo(up[2].QQ).Nick} | {up[2].XW} | 4.{e.CQApi.GetStrangerInfo(up[3].QQ).Nick} | {up[3].XW} | 5.{e.CQApi.GetStrangerInfo(up[4].QQ).Nick} | {up[4].XW} |"; if (0 <= i && i <= 4) { template += "\n你在榜上!再接再厉!"; } else if (i == up.Count - 1) { template += @$ " ...... {i - 1 + 1}. {e.CQApi.GetStrangerInfo(up[i - 1].QQ).Nick} | {up[i - 1].XW} |
public static void RandomHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //展示信息 ItemList.Lottery(p); }
public static void CheatHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); // if (p.StatusStr.Contain("作弊")) { p.SendMes("你已经使用过一次作弊码了"); return; } // var input = int.Parse(e.Message.Text.Split('#')[1]); var all = 0; foreach (char c in qq.ToString()) { all += int.Parse(c.ToString()); } //如果正确 if (input == DateTime.Now.Day * all) { p.Gold += 3; var c = ItemList.RandomOne(ItemList.ItemsC).name; var b = ItemList.RandomOne(ItemList.ItemsB).name; p.Package.AddOne(c); p.Package.AddOne(b); p.StatusStr.Set("作弊", "True"); p.SendMes($"你输入了正确的作弊码!奖励金币3个,一个{c},一个{b}~"); } }
public static void TestHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; //这行代码是必须的 p.SetEIn(e); //使用 p.Package.AddOne("许愿币"); e.FromGroup.SendGroupMessage(cqat, " ", "你获得了一个许愿币"); }
public static void BlockHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //展示信息 string template = $@"交易所暂未开放"; e.FromGroup.SendGroupMessage(template); return; }
public static void LookEquipHandle(CQGroupMessageEventArgs e) { CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //、 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //展示信息 string template = $@"你暂无装备"; e.FromGroup.SendGroupMessage(cqat, " ", template); }
//出关 public static void OuthomeHandle(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.StatusStr.Contain("闭关")) { p.SendMes("不闭关如何出关"); return; } //直接使用c#的时间构造和时间求差 var ago = new DateTime(p.StatusInt.Get("入关年"), p.StatusInt.Get("入关月"), p.StatusInt.Get("入关日")); var num = (DateTime.Now - ago).Days; if (num < 10) { p.SendMes("至少需要闭关十天!"); return; } p.StatusStr.Dic.Remove("闭关"); p.Basic += num; p.XW += num * num; p.SendMes($"恭喜出关!你闭关了长达{num}天,获得体质{num}点,修为{num * num}点"); }
public static void ShopHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //展示信息 string template = Shop.Show(); e.FromGroup.SendGroupMessage(cqat, " ", template); return; }
public static void UseHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); //使用 var itemName = e.Message.Text.Split('#')[1]; items.ItemList.UseItemByPerson(p, itemName); }
public static void BuyHandle(CQGroupMessageEventArgs e) { //解析参数 var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); if (e.Message.Text.Contains("购买#")) { //展示信息 var name = e.Message.Text.Split('#')[1]; Shop.ItemBuy(p, name); } return; }
public static void YouselfHandle(CQGroupMessageEventArgs e) { //解析参数 CQCode cqat = e.FromQQ.CQCode_At(); var qq = e.FromQQ.Id; //获取个人信息 if (!Game.Players.ContainsKey(qq)) { FixStroy.WarnNoCreateUser(e); return; } var p = Game.Players[qq]; p.SetEIn(e); if (e.Message.Text == "查看") { //展示信息 string template = @$ "{(p.StrictJude(10) ? p.Level.Slogan : " ")} 境界: {p.Level.LevelName} LV.{p.LevelNum} 修为: {p.XW} 金币: {p.Gold} 三相: 体质{p.Basic} | 疯狂{p.Crazy} | 幸运{p.Lucky}
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); }
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 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); }