コード例 #1
0
        private bool ProcessMultiMediaHello(MsgInformationEx MsgDTO)
        {
            var hello = MultiMediaHelloList.FirstOrDefault(p => p.QQNum == MsgDTO.FromQQ);

            if (hello == null)
            {
                return(false);
            }

            var key      = $"MultiMediaHello-{MsgDTO.FromGroup}-{MsgDTO.FromQQ}";
            var response = SCacheService.Get <MultiMediaCache>(key);

            if (response != null)
            {
                return(false);
            }

            SendMultiMediaHello(MsgDTO, hello);
            var model = new MultiMediaCache
            {
                QQNum    = MsgDTO.FromQQ,
                RecordID = hello.Name
            };

            SCacheService.Cache(key, model);
            return(true);
        }
コード例 #2
0
        private bool ProcessHello(MsgInformationEx MsgDTO)
        {
            var hello = HelloList.FirstOrDefault(h => h.GroupNum == MsgDTO.FromGroup && h.QQNum == MsgDTO.FromQQ);

            if (hello == null)
            {
                return(false);
            }

            var key      = $"Hello-{MsgDTO.FromGroup}-{MsgDTO.FromQQ}";
            var response = SCacheService.Get <HelloCache>(key);

            if (response != null)
            {
                return(false);
            }

            MsgSender.PushMsg(MsgDTO, hello.Content, true);
            var model = new HelloCache
            {
                GroupNum       = MsgDTO.FromGroup,
                LastUpdateTime = DateTime.Now,
                QQNum          = MsgDTO.FromQQ
            };

            SCacheService.Cache(key, model);
            return(true);
        }
コード例 #3
0
        public bool Reborn(MsgInformationEx MsgDTO, object[] param)
        {
            var aimQQ = (long)param[0];

            var key   = $"AliveState-{MsgDTO.FromGroup}-{aimQQ}";
            var cache = SCacheService.Get <AliveStateCache>(key);

            if (cache == null)
            {
                MsgSender.PushMsg(MsgDTO, "该成员不需要复活!", true);
                return(false);
            }

            if (!WaiterSvc.WaitForConfirm_Gold(MsgDTO, 100))
            {
                MsgSender.PushMsg(MsgDTO, "操作取消!");
                return(false);
            }

            var osPerson = OSPerson_Doremi.GetPerson(MsgDTO.FromQQ);

            osPerson.Golds -= 100;
            osPerson.Update();

            SCacheService.Cache(key, cache, DateTime.Now);

            MsgSender.PushMsg(MsgDTO, $"复活成功!你当前剩余金币:{osPerson.Golds}", true);
            return(true);
        }
コード例 #4
0
        private static void DoSkill(MsgInformationEx MsgDTO, long aimQQ, string key, DateTime rebornTime, string skillName)
        {
            var cache = new AliveStateCache
            {
                QQNum      = aimQQ,
                GroupNum   = MsgDTO.FromGroup,
                Name       = skillName,
                RebornTime = rebornTime
            };

            SCacheService.Cache(key, cache, rebornTime);

            MsgSender.PushMsg(MsgDTO, $"成功对 {CodeApi.Code_At(aimQQ)} 使用了 {skillName}!他将于 {rebornTime.ToString(CultureInfo.CurrentCulture)} 后复活!");
        }
コード例 #5
0
        private static bool SkillCheck(MsgInformationEx MsgDTO, long aimQQ, string key)
        {
            if (MsgDTO.FromQQ == aimQQ)
            {
                MsgSender.PushMsg(MsgDTO, "你无法对自己使用该能力!", true);
                return(false);
            }

            var cache = SCacheService.Get <AliveStateCache>(key);

            if (cache == null)
            {
                return(true);
            }

            MsgSender.PushMsg(MsgDTO, $"他已经死了,你不能对尸体使用该能力!请于 {cache.RebornTime.ToString(CultureInfo.CurrentCulture)} 后再试!", true);
            return(false);
        }