Example #1
0
 /// <summary> FAMILY_LEAVE_PUSH单体模式 </summary>
 public static FAMILY_LEAVE_PUSH GetInstance()
 {
     return(ObjInstance ?? (ObjInstance = new FAMILY_LEAVE_PUSH()));
 }
Example #2
0
        /// <summary>解散家族</summary>
        public ASObject CommandStart(TGGSession session, ASObject data)
        {
            try
            {
# if DEBUG
                XTrace.WriteLine("{0}:{1}", "FAMILY_DISSOLVE", "解散家族");
#endif
                var member   = session.Player.Family;
                var basepost = Variable.BASE_FAMILYPOST.FirstOrDefault(m => m.post == member.degree);

                if (basepost == null)
                {
                    return(ErrorResult((int)ResultType.BASE_TABLE_ERROR));
                }
                if (basepost.dissolve == (int)FamilyRightType.NORIGHT)
                {
                    return(ErrorResult((int)ResultType.FAMILY_DROIT_LACK));
                }

                var list      = tg_family_member.GetAllById(member.fid);
                var playerids = list.ToList().Select(m => m.userid).ToArray();

                var base_log = Variable.BASE_FAMILYLOG.FirstOrDefault(m => m.type == (int)FamilyLogType.FAMILY_DISMISS);
                if (base_log == null)
                {
                    return(ErrorResult((int)ResultType.BASE_TABLE_ERROR));
                }

                //推送家族频道
                Common.GetInstance().FamilyTraining(session.Player.User.id, member.fid, session.Player.User.player_name, base_log.prestige);

                foreach (var uid in playerids)
                {
                    if (!Variable.OnlinePlayer.ContainsKey(uid))
                    {
                        continue;
                    }
                    var sessionB = Variable.OnlinePlayer[uid] as TGGSession;
                    sessionB.Player.Family = new tg_family_member {
                        fid = 0
                    };
                    //推送邀请信息
                    FAMILY_LEAVE_PUSH.GetInstance().CommandStart(sessionB);
                }
                session.Player.Family = new tg_family_member {
                    fid = 0
                };
                if (!tg_family_apply.GetDelete(member.fid))
                {
                    return(ErrorResult((int)ResultType.DATABASE_ERROR));
                }
                if (!tg_family_member.GetMembersDelete(member.fid))
                {
                    return(ErrorResult((int)ResultType.DATABASE_ERROR));
                }
                if (!tg_family_log.GetDelete(member.fid))
                {
                    return(ErrorResult((int)ResultType.DATABASE_ERROR));
                }
                if (!tg_family.GetDelete(member.fid))
                {
                    return(ErrorResult((int)ResultType.DATABASE_ERROR));
                }
                return(new ASObject(Common.GetInstance().BuilData((int)ResultType.SUCCESS)));
            }