コード例 #1
0
ファイル: Role_Guild.cs プロジェクト: 372285834/GServer
 public CSCommon.Data.Message CreateMessage(CSCommon.eMessageFrom from, CSCommon.eMessageType type, string sender, ulong targetId)
 {
     CSCommon.Data.Message msg = new CSCommon.Data.Message();
     msg.MessageId   = ServerFrame.Util.GenerateObjID(ServerFrame.GameObjectType.Message);
     msg.MessageType = (byte)type;
     msg.MessageFrom = (byte)from;
     msg.OwnerId     = targetId;
     msg.Sender      = sender;
     return(msg);
 }
コード例 #2
0
ファイル: Role_Social.cs プロジェクト: 372285834/GServer
        public CSCommon.eMessageType _GetSocialMsgType(CSCommon.eSocialType type)
        {
            CSCommon.eMessageType mType = CSCommon.eMessageType.Friend_Ask;
            switch (type)
            {
            case CSCommon.eSocialType.Friend:
                mType = CSCommon.eMessageType.Friend_Ask;
                break;

            case CSCommon.eSocialType.ManWife:
                mType = CSCommon.eMessageType.ManWife_Ask;
                break;

            case CSCommon.eSocialType.Brother:
                mType = CSCommon.eMessageType.Brother_Ask;
                break;

            case CSCommon.eSocialType.BasicFriends:
                mType = CSCommon.eMessageType.BasicFriends_Ask;
                break;

            case CSCommon.eSocialType.Lover:
                mType = CSCommon.eMessageType.Lover_Ask;
                break;

            case CSCommon.eSocialType.Sister:
                mType = CSCommon.eMessageType.Sister_Ask;
                break;

            case CSCommon.eSocialType.Lily:
                mType = CSCommon.eMessageType.Lily_Ask;
                break;

            default:
                break;
            }
            return(mType);
        }
コード例 #3
0
ファイル: Role_Social.cs プロジェクト: 372285834/GServer
        public CSCommon.eSocialType _GetSocialTypeFromMsg(CSCommon.eMessageType type)
        {
            CSCommon.eSocialType mType = CSCommon.eSocialType.None;
            switch (type)
            {
            case CSCommon.eMessageType.Friend_Ask:
                mType = CSCommon.eSocialType.Friend;
                break;

            case CSCommon.eMessageType.ManWife_Ask:
                mType = CSCommon.eSocialType.ManWife;
                break;

            case CSCommon.eMessageType.Brother_Ask:
                mType = CSCommon.eSocialType.Brother;
                break;

            case CSCommon.eMessageType.BasicFriends_Ask:
                mType = CSCommon.eSocialType.BasicFriends;
                break;

            case CSCommon.eMessageType.Lover_Ask:
                mType = CSCommon.eSocialType.Lover;
                break;

            case CSCommon.eMessageType.Sister_Ask:
                mType = CSCommon.eSocialType.Sister;
                break;

            case CSCommon.eMessageType.Lily_Ask:
                mType = CSCommon.eSocialType.Lily;
                break;

            default:
                break;
            }
            return(mType);
        }
コード例 #4
0
ファイル: Role_Guild.cs プロジェクト: 372285834/GServer
        public void RPC_SetGuildPost(ulong roleId, ulong targetId, byte post, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd)
        {
            RPC.PackageWriter retPkg = new RPC.PackageWriter();
            var role = GetRole(roleId);

            if (role == null)
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.NoRole);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            var targetRole = GetRole(targetId);

            if (targetRole == null)
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.NoTargetRole);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            if (role.GuildInstance == null)
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.RoleNoGuild);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            if (targetRole.GuildInstance == null)
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.TargetRoleNoGuild);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            if (role.GuildInstance.GuildData.GuildId != targetRole.GuildInstance.GuildData.GuildId)
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.DifferentGuild);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            if (role.RoleData.GuildPost <= (byte)CSCommon.eGuildPost.JingYing)//没有权限
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.RoleNoPower);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            if (role.RoleData.GuildPost <= targetRole.RoleData.GuildPost)//级别低于对方
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.RolePostLowTarget);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            if (role.RoleData.GuildPost <= post)
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.RolePostLowSet);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            if (targetRole.RoleData.GuildPost == post)
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.TargetPostEqualSet);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            CSCommon.eMessageType msgType = CSCommon.eMessageType.Guild_SetBangZhong;
            byte maxnum = 0;

            if (post == (byte)CSCommon.eGuildPost.ZhangLao)
            {
                maxnum  = CSCommon.GuildCommon.Instance.MaxZhangLao;
                msgType = CSCommon.eMessageType.Guild_SetZhangLao;
            }
            else if (post == (byte)CSCommon.eGuildPost.TangZhu)
            {
                maxnum  = CSCommon.GuildCommon.Instance.MaxTangZhu;
                msgType = CSCommon.eMessageType.Guild_SetTangZhu;
            }
            else if (post == (byte)CSCommon.eGuildPost.JingYing)
            {
                maxnum  = CSCommon.GuildCommon.Instance.MaxJingYing;
                msgType = CSCommon.eMessageType.Guild_SetJingYing;
            }
            byte num = role.GuildInstance.GetNumByPost(post);

            if (num >= maxnum)
            {
                retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.OverMaxNum);
                retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
                return;
            }
            retPkg.Write((sbyte)CSCommon.eRet_SetGuildPost.Succeed);

            targetRole.RoleData.GuildPost = post;
            CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Guild, msgType, role.RoleData.Name, targetId);
            msg.ShowInfo = string.Format("你的帮会职位被改为{0}", GetPostStr(post));
            SendMessageToOther(targetRole, msg);
            targetRole.GuildInstance.UpdateMember(targetRole);
            retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId);
        }