public static void SendMsg2Client(PlayerInstance player, CSCommon.Data.Message msg) { RPC.PackageWriter pkg = new RPC.PackageWriter(); pkg.SetSinglePkg(); Wuxia.H_RpcRoot.smInstance.RPC_ReceiveMsg(pkg, msg); pkg.DoCommandPlanes2Client(player.Planes2GateConnect, player.ClientLinkId); }
public void RPC_InviteToGuild(ulong roleId, string tarName, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); var role = GetRole(roleId); if (role == null) { retPkg.Write((sbyte)CSCommon.eRet_InviteToGuild.NoRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var targetRole = GetRole(tarName); if (targetRole == null) { retPkg.Write((sbyte)CSCommon.eRet_InviteToGuild.NoTargetRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.GuildInstance == null) { retPkg.Write((sbyte)CSCommon.eRet_InviteToGuild.RoleNoGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (targetRole.GuildInstance != null) { retPkg.Write((sbyte)CSCommon.eRet_InviteToGuild.TargetRoleHasGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.RoleData.GuildPost <= (byte)CSCommon.eGuildPost.JingYing) { retPkg.Write((sbyte)CSCommon.eRet_InviteToGuild.RoleNoPower); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (targetRole.PlanesConnect == null) { retPkg.Write((sbyte)CSCommon.eRet_InviteToGuild.TargetRoleNotInPlay); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.GuildInstance.GuildData.MemberNum >= CSCommon.GuildCommon.Instance.GuildLvUpList[role.GuildInstance.GuildData.Level - 1].MaxMemberNum) { retPkg.Write((sbyte)CSCommon.eRet_InviteToGuild.OverMaxNum); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } retPkg.Write((sbyte)CSCommon.eRet_InviteToGuild.Succeed); CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Guild, CSCommon.eMessageType.Guild_Invite, role.RoleData.Name, targetRole.RoleData.RoleId); msg.ShowInfo = string.Format("玩家{0}邀请您加入{1}帮会", role.RoleData.Name, role.GuildInstance.GuildData.GuildName); SendMessageToOther(targetRole, msg); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void RPC_OperateAddSocial(ulong roleId, string otherName, byte type, byte operate, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var role = this.GetRole(roleId); if (role == null) { Log.Log.Social.Print("role is null , {0}", roleId); pkg.Write((sbyte)CSCommon.eRet_OperateAddSocial.NoRole); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var other = this.GetRole(otherName); if (other == null) { pkg.Write((sbyte)CSCommon.eRet_OperateAddSocial.NoOther); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (roleId == other.RoleData.RoleId) { pkg.Write((sbyte)CSCommon.eRet_OperateAddSocial.RoleIsOther); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } CSCommon.eSocialType sType = _GetSocialTypeFromMsg((CSCommon.eMessageType)type); if (sType == CSCommon.eSocialType.None) { pkg.Write((sbyte)CSCommon.eRet_OperateAddSocial.TypeError); //类型错误 pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.SocialManager.IsSocial(other.RoleData.RoleId, sType)) { pkg.Write((sbyte)CSCommon.eRet_OperateAddSocial.IsSocial); //已经是这种关系 pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if ((CSCommon.eOperateAsk)operate == CSCommon.eOperateAsk.Accept) { role.SocialManager.AddSocial(other.RoleData.RoleId, (CSCommon.eSocialType)type); role.SocialManager.AddSocial(other.RoleData.RoleId, CSCommon.eSocialType.Friend); other.SocialManager.AddSocial(role.RoleData.RoleId, (CSCommon.eSocialType)type); CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Social, CSCommon.eMessageType.Couple_Accept, role.RoleData.Name, other.RoleData.RoleId); msg.ShowInfo = string.Format("玩家{0}同意与你成为{1}关系", role.RoleData.Name, _GetStrSocial(sType)); SendMessageToOther(other, msg); } else { CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Social, CSCommon.eMessageType.Couple_Refuse, role.RoleData.Name, other.RoleData.RoleId); msg.ShowInfo = string.Format("玩家{0}拒绝与你成为{1}关系", role.RoleData.Name, _GetStrSocial(sType)); SendMessageToOther(other, msg); } pkg.Write((sbyte)CSCommon.eRet_OperateAddSocial.Succeed); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
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); }
public void RPC_SendPlayerMsg(ulong id, CSCommon.Data.Message msg) { var player = Planes.PlanesServerDataManager.Instance.FindPlayerInstance(id); if (player == null) { Log.Log.Guild.Print("RPC_SendPlayerMsg player is null"); return; } Planes.PlayerInstance.SendMsg2Client(player, msg); }
public void SendMessageToOther(UserRole other, CSCommon.Data.Message msg) { if (other.PlanesConnect != null) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_PlanesServer(pkg).RPC_SendPlayerMsg(pkg, other.RoleData.RoleId, msg); pkg.DoCommand(other.PlanesConnect, RPC.CommandTargetType.DefaultType); } else { DB_CreateMessage(msg); } }
public void RPC_RemoveSocial(ulong roleId, ulong otherId, byte type, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); var role = this.GetRole(roleId); if (role == null) { Log.Log.Social.Print("role is null , {0}", roleId); pkg.Write((sbyte)CSCommon.eRet_RemoveSocial.NoRole); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var other = this.GetRole(otherId); if (other == null) { pkg.Write((sbyte)CSCommon.eRet_RemoveSocial.NoOther); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.SocialManager.IsSocial(otherId, (CSCommon.eSocialType)type) == false) { pkg.Write((sbyte)CSCommon.eRet_RemoveSocial.NotSocial); //不是这种关系 pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.SocialManager.RemoveSocial(otherId, (CSCommon.eSocialType)type) == false) { pkg.Write((sbyte)CSCommon.eRet_RemoveSocial.RemoveError); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (type == (byte)CSCommon.eSocialType.Friend && role.SocialManager.IsCouple(otherId)) { //删除双方亲人关系 role.SocialManager.RemoveCouple(otherId); other.SocialManager.RemoveCouple(roleId); CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Social, CSCommon.eMessageType.Couple_Remove, role.RoleData.Name, other.RoleData.RoleId); msg.ShowInfo = string.Format("玩家{0}与你成为解除亲人关系", role.RoleData.Name); SendMessageToOther(other, msg); } pkg.Write((sbyte)CSCommon.eRet_RemoveSocial.Succeed); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void RPC_SendPlayerMsg(RPC.PackageWriter pkg, System.UInt64 id, CSCommon.Data.Message msg) { pkg.Write(id); pkg.Write(msg); pkg.SetMethod(14); }
public void RPC_TransferGuildBangZhu(ulong roleId, ulong targetId, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); var role = GetRole(roleId); if (role == null) { retPkg.Write((sbyte)CSCommon.eRet_TransferGuildBangZhu.NoRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var targetRole = GetRole(targetId); if (targetRole == null) { retPkg.Write((sbyte)CSCommon.eRet_TransferGuildBangZhu.NoTargetRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.GuildInstance == null) { retPkg.Write((sbyte)CSCommon.eRet_TransferGuildBangZhu.RoleNoGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (targetRole.GuildInstance == null) { retPkg.Write((sbyte)CSCommon.eRet_TransferGuildBangZhu.TargetRoleNoGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.RoleData.GuildPost != (byte)CSCommon.eGuildPost.BangZhu) { retPkg.Write((sbyte)CSCommon.eRet_TransferGuildBangZhu.RoleIsNotBangZhu); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.GuildInstance.GuildData.GuildId != targetRole.GuildInstance.GuildData.GuildId) { retPkg.Write((sbyte)CSCommon.eRet_TransferGuildBangZhu.DifferentGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } role.RoleData.GuildPost = (byte)CSCommon.eGuildPost.BangZhong; targetRole.RoleData.GuildPost = (byte)CSCommon.eGuildPost.BangZhu; role.GuildInstance.GuildData.PresidentName = targetRole.RoleData.Name; DB_SaveGuildCom(role.GuildInstance.GuildData); retPkg.Write((sbyte)CSCommon.eRet_TransferGuildBangZhu.Succeed); foreach (var i in role.GuildInstance.Members) { var member = GetRole(i.Key); CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Guild, CSCommon.eMessageType.Guild_TransferBangZhu, role.RoleData.Name, i.Key); msg.ShowInfo = string.Format("{0}已将帮主职位转让给了{1},请大家紧密团结在以{2}为新帮主的周围,共同创建美好明天!", role.RoleData.Name, targetRole.RoleData.Name, targetRole.RoleData.Name); SendMessageToOther(member, msg); } role.GuildInstance.UpdateMember(role); targetRole.GuildInstance.UpdateMember(targetRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void RPC_OperateInvite(ulong roleId, ulong targetId, byte operate, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); var role = GetRole(roleId); if (role == null) { retPkg.Write((sbyte)CSCommon.eRet_OperateInvite.NoRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var targetRole = GetRole(targetId); if (targetRole == null) { retPkg.Write((sbyte)CSCommon.eRet_OperateInvite.NoTargetRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.GuildInstance != null) { retPkg.Write((sbyte)CSCommon.eRet_OperateInvite.RoleHasGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (targetRole.GuildInstance == null) { retPkg.Write((sbyte)CSCommon.eRet_OperateInvite.TargetRoleNoGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (operate == (byte)CSCommon.eOperateAsk.Refuse) { retPkg.Write((sbyte)CSCommon.eRet_OperateInvite.Succeed); CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Guild, CSCommon.eMessageType.Guild_RefuseInvite, role.RoleData.Name, targetId); msg.ShowInfo = string.Format("玩家{0}拒绝了你的邀请", role.RoleData.Name); SendMessageToOther(targetRole, msg); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } else { if (targetRole.GuildInstance.GuildData.MemberNum >= CSCommon.GuildCommon.Instance.GuildLvUpList[targetRole.GuildInstance.GuildData.Level - 1].MaxMemberNum) { retPkg.Write((sbyte)CSCommon.eRet_OperateInvite.OverMaxNum); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } retPkg.Write((sbyte)CSCommon.eRet_OperateInvite.Succeed); role.RoleData.GuildId = targetRole.GuildInstance.GuildData.GuildId; role.RoleData.GuildPost = (byte)CSCommon.eGuildPost.BangZhong; role.GuildInstance = targetRole.GuildInstance; role.GuildInstance.Members.Add(roleId, role); role.GuildInstance.GuildData.MemberNum = role.GuildInstance.Members.Count; CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Guild, CSCommon.eMessageType.Guild_AcceptInvite, role.RoleData.Name, targetId); msg.ShowInfo = string.Format("玩家{0}同意了你的邀请", role.RoleData.Name); SendMessageToOther(targetRole, msg); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); } }
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); }
public void RPC_OperateGuildAsk(ulong roleId, ulong messageId, byte operate, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); var role = GetRole(roleId); if (role == null) { retPkg.Write((sbyte)CSCommon.eRet_OperateGuildAsk.NoRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.GuildInstance == null) { retPkg.Write((sbyte)CSCommon.eRet_OperateGuildAsk.RoleNoGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.RoleData.GuildPost <= (byte)CSCommon.eGuildPost.JingYing) { retPkg.Write((sbyte)CSCommon.eRet_OperateGuildAsk.RoleNoPower); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } CSCommon.Data.Message msg = null; role.GuildInstance.Messages.TryGetValue(messageId, out msg); if (msg == null) { retPkg.Write((sbyte)CSCommon.eRet_OperateGuildAsk.YetOperate);//已审批 retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var targetRole = GetRole(msg.Sender); if (targetRole == null) { retPkg.Write((sbyte)CSCommon.eRet_OperateGuildAsk.NoTargetRole); role.GuildInstance.Messages.Remove(messageId); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (targetRole.GuildInstance != null) { retPkg.Write((sbyte)CSCommon.eRet_OperateGuildAsk.TargetRoleHasGuild);//已加入其他帮会 role.GuildInstance.Messages.Remove(messageId); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.GuildInstance.GuildData.MemberNum >= CSCommon.GuildCommon.Instance.GuildLvUpList[role.GuildInstance.GuildData.Level - 1].MaxMemberNum) { retPkg.Write((sbyte)CSCommon.eRet_OperateGuildAsk.OverMaxNum); role.GuildInstance.Messages.Remove(messageId); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } retPkg.Write((sbyte)CSCommon.eRet_OperateGuildAsk.Succeed); role.GuildInstance.Messages.Remove(messageId); CSCommon.Data.Message operatemsg = null; if (operate == (byte)CSCommon.eOperateAsk.Accept) { role.GuildInstance.Members.Add(targetRole.RoleData.RoleId, targetRole); role.GuildInstance.GuildData.MemberNum = role.GuildInstance.Members.Count; targetRole.RoleData.GuildId = role.GuildInstance.GuildData.GuildId; targetRole.RoleData.GuildPost = (byte)CSCommon.eGuildPost.BangZhong; targetRole.GuildInstance = role.GuildInstance; operatemsg = CreateMessage(CSCommon.eMessageFrom.Guild, CSCommon.eMessageType.Guild_AcceptAsk, role.RoleData.Name, targetRole.RoleData.RoleId); msg.ShowInfo = string.Format("申请被接受"); } else { operatemsg = CreateMessage(CSCommon.eMessageFrom.Guild, CSCommon.eMessageType.Guild_RefuseAsk, role.RoleData.Name, targetRole.RoleData.RoleId); msg.ShowInfo = string.Format("申请被拒绝"); } if (targetRole.PlanesConnect != null) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_PlanesServer(pkg).RPC_SendPlayerMsg(pkg, targetRole.RoleData.RoleId, operatemsg); pkg.DoCommand(targetRole.PlanesConnect, RPC.CommandTargetType.DefaultType); } else { DB_CreateMessage(operatemsg); } retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void RPC_AskToGuild(ulong roleId, ulong guildId, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); var role = GetRole(roleId); if (role == null) { retPkg.Write((sbyte)CSCommon.eRet_AskToGuild.NoRole); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var guild = GuildManager.Instance.GetGuild(guildId); if (guild == null) { retPkg.Write((sbyte)CSCommon.eRet_AskToGuild.NoGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.GuildInstance != null) { retPkg.Write((sbyte)CSCommon.eRet_AskToGuild.RoleHasGuild); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } int count = guild.GuildData.MemberNum; if (CSCommon.GuildCommon.Instance.GuildLvUpList.Count < guild.GuildData.Level) { retPkg.Write((sbyte)CSCommon.eRet_AskToGuild.OverMaxNum); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (count >= (int)CSCommon.GuildCommon.Instance.GuildLvUpList[guild.GuildData.Level - 1].MaxMemberNum) { retPkg.Write((sbyte)CSCommon.eRet_AskToGuild.OverMaxNum); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } //生成消息 CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Guild, CSCommon.eMessageType.Guild_Ask, role.RoleData.Name, guildId); msg.ShowInfo = string.Format("玩家{0}申请加入帮会", role.RoleData.Name); //发送消息 bool isSend = false; foreach (var i in guild.Members) { var member = GetRole(i.Key); if (member.RoleData.GuildPost > (byte)CSCommon.eGuildPost.JingYing) { if (member.PlanesConnect != null) { isSend = true; RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_PlanesServer(pkg).RPC_SendPlayerMsg(pkg, i.Key, msg); pkg.DoCommand(member.PlanesConnect, RPC.CommandTargetType.DefaultType); } } } if (isSend) { guild.Messages.Add(msg.MessageId, msg); } //申请成功 retPkg.Write((sbyte)CSCommon.eRet_AskToGuild.Succeed); retPkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
public void RPC_ReceiveMsg(RPC.PackageWriter pkg, CSCommon.Data.Message msg) { pkg.Write(msg); pkg.SetMethod(15); }
public void RPC_AddSocial(ulong roleId, string otherName, byte type, Iocp.NetConnection connect, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); pkg.SetSinglePkg(); var role = this.GetRole(roleId); if (role == null) { Log.Log.Social.Print("role is null , {0}", roleId); pkg.Write((sbyte)CSCommon.eRet_AddSocial.NoRole); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var other = this.GetRole(otherName); if (other == null) { pkg.Write((sbyte)CSCommon.eRet_AddSocial.NoOther); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (roleId == other.RoleData.RoleId) { pkg.Write((sbyte)CSCommon.eRet_AddSocial.RoleIsOther); pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.SocialManager.IsSocial(other.RoleData.RoleId, (CSCommon.eSocialType)type)) { pkg.Write((sbyte)CSCommon.eRet_AddSocial.IsSocial); //已经是这种关系 pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } if (role.SocialManager.IsCoupleType((CSCommon.eSocialType)type)) { if (false == role.SocialManager.IsSocial(other.RoleData.RoleId, CSCommon.eSocialType.Friend)) { pkg.Write((sbyte)CSCommon.eRet_AddSocial.NotFriend);//不是好友 pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } //发送邀请 CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Social, _GetSocialMsgType((CSCommon.eSocialType)type), role.RoleData.Name, other.RoleData.RoleId); msg.ShowInfo = string.Format("玩家{0}请求与你成为{1}关系", role.RoleData.Name, _GetStrSocial((CSCommon.eSocialType)type)); SendMessageToOther(other, msg); pkg.Write((sbyte)CSCommon.eRet_AddSocial.AskSucceed); } else { CSCommon.Data.SocialData sd = role.SocialManager.AddSocial(other.RoleData.RoleId, (CSCommon.eSocialType)type); if (sd == null) { pkg.Write((sbyte)CSCommon.eRet_AddSocial.IsSocial); //已经是这种关系 pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); return; } var info = CreateSocialRoleInfo(sd, other); pkg.Write((sbyte)CSCommon.eRet_AddSocial.AddSucceed); pkg.Write(info); pkg.Write(sd); if ((CSCommon.eSocialType)type == CSCommon.eSocialType.Friend) { //发送消息 CSCommon.Data.Message msg = CreateMessage(CSCommon.eMessageFrom.Social, _GetSocialMsgType((CSCommon.eSocialType)type), role.RoleData.Name, other.RoleData.RoleId); msg.ShowInfo = string.Format("玩家{0}把你加为好友", role.RoleData.Name); SendMessageToOther(other, msg); } } pkg.DoReturnCommand2(connect, fwd.ReturnSerialId); }
// 生成代码 private void button4_Click(object sender, EventArgs e) { bool bIsClient = this.textBox_Callee.Text == Config.Instance.CurProjectConfig.ClientCallee; if (System.IO.File.Exists(this.textBox_Callee.Text)) { System.IO.StreamWriter sw = new System.IO.StreamWriter(this.textBox_Callee.Text); if (sw != null) { if (bIsClient) { sw.Write(this.textBoxCallee.Text.Replace("SlimDX", "UnityEngine")); } else { sw.Write(this.textBoxCallee.Text); } sw.Close(); } } if (System.IO.File.Exists(this.textBox_Caller.Text)) { System.IO.StreamWriter sw = new System.IO.StreamWriter(this.textBox_Caller.Text); if (sw != null) { if (bIsClient) { sw.Write(this.textBoxCaller.Text.Replace("SlimDX", "UnityEngine")); } else { sw.Write(this.textBoxCaller.Text); } sw.Close(); } } if (bIsClient) { if (System.IO.File.Exists(Config.Instance.CurProjectConfig.ServCppCaller)) { System.IO.StreamWriter sw = new System.IO.StreamWriter(Config.Instance.CurProjectConfig.ServCppCaller); if (sw != null) { sw.Write(this.textBoxCaller.Text.Replace("UnityEngine", "SlimDX")); sw.Close(); } } } else { if (System.IO.File.Exists(Config.Instance.CurProjectConfig.ClientServCaller)) { System.IO.StreamWriter sw = new System.IO.StreamWriter(Config.Instance.CurProjectConfig.ClientServCaller); if (sw != null) { sw.Write(ServCallerToClient.Replace("SlimDX", "UnityEngine")); sw.Close(); } } } //====================== 客户端同步服务器的类结构 ====================== string outStruct = ""; //GetCppStructureDefine只发送基础属性 byte[] x = new byte[3], list<int> y = new list<int>();类似属性都将不发送 outStruct += new CSCommon.Data.RoleInfo().GetCppStructureDefine(); outStruct += new CSCommon.Data.NPCData().GetCppStructureDefine(); outStruct += new CSCommon.Data.RoleDetail().GetCppStructureDefine(); outStruct += new CSCommon.Data.RoleSyncInfo().GetCppStructureDefine(); outStruct += new CSCommon.Data.ItemData().GetCppStructureDefine(); outStruct += new CSCommon.Data.SocialData().GetCppStructureDefine(); outStruct += new CSCommon.Data.SocialRoleInfo().GetCppStructureDefine(); outStruct += new CSCommon.Data.GiftData().GetCppStructureDefine(); outStruct += new CSCommon.Data.TaskData().GetCppStructureDefine(); outStruct += new CSCommon.Data.MailData().GetCppStructureDefine(); outStruct += new CSCommon.Data.GuildCom().GetCppStructureDefine(); outStruct += new CSCommon.Data.RoleCom().GetCppStructureDefine(); outStruct += new CSCommon.Data.Message().GetCppStructureDefine(); outStruct += new CSCommon.Data.SkillData().GetCppStructureDefine(); outStruct += new CSCommon.Data.MartialData().GetCppStructureDefine(); outStruct += new CSCommon.Data.AchieveData().GetCppStructureDefine(); outStruct += new CSCommon.Data.AttrStruct().GetCppStructureDefine(); outStruct += new CSCommon.Data.CityForceData().GetCppStructureDefine(); outStruct += new CSCommon.Data.EfficiencyData().GetCppStructureDefine(); outStruct += new CSCommon.Data.CampForceData().GetCppStructureDefine(); //=================================================================== if (System.IO.File.Exists(Config.Instance.CurProjectConfig.ClientHeader)) { System.IO.StreamWriter sw = new System.IO.StreamWriter(Config.Instance.CurProjectConfig.ClientHeader); if (sw != null) { sw.Write(outStruct); sw.Close(); } } }