public void RPC_GetMails(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetMails(pkg, PlayerData.RoleDetail.RoleId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.SetSinglePkg(); List <CSCommon.Data.MailData> mails = new List <CSCommon.Data.MailData>(); int count = 0; _io.Read(out count); retPkg.Write(count); for (int i = 0; i < count; i++) { CSCommon.Data.MailData mail = new CSCommon.Data.MailData(); _io.Read(mail); retPkg.Write(mail); } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_OneKeyGetItems(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_OneKeyGetItems(pkg, PlayerData.RoleDetail.RoleId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); List <CSCommon.Data.MailData> mails = new List <CSCommon.Data.MailData>(); int count = 0; _io.Read(out count); for (int i = 0; i < count; i++) { CSCommon.Data.MailData mail = new CSCommon.Data.MailData(); _io.Read(mail); if (_GetMailItems(mail.StrItems) == false) { retPkg.Write((sbyte)-1); //背包空间不足 retPkg.DoReturnPlanes2Client(fwd); return; } _GetMailCurrencies(mail.StrCurrencies); //删除邮件 RPC.PackageWriter delpkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(delpkg).HGet_UserRoleManager(delpkg).RPC_DelMail(delpkg, mail.MailId); delpkg.DoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType); } retPkg.Write((sbyte)1); retPkg.DoReturnPlanes2Client(fwd); }; }
public static void CreatePlayerImage(CSCommon.MapInfo_Npc nd, MapInstance map, ulong playerId) { PlayerImage ret = new PlayerImage(); ret.mId = ServerFrame.Util.GenerateObjID(ServerFrame.GameObjectType.PlayerImage); RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetOffPlayerData(pkg, playerId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { CSCommon.Data.RoleCom rc = new CSCommon.Data.RoleCom(); _io.Read(rc); OffPlayerData pd = new OffPlayerData(); pd.Deserizle(rc); ret.InitPlayerData(pd, rc); var init = new NpcInit(); init.GameType = eActorGameType.PlayerImage; init.Data = nd; init.OwnerMapData = map.MapInfo; if (!ret.Initialize(init)) { return; } ret.mAttackTarget = playerId; ret.Reborn(); ret.OnEnterMap(map); }; }
void OnRegisterConnected(Iocp.TcpClient pClient, byte[] pData, int nLength) { if (nLength == 0) { return; } RPC.PackageWriter pkg = new RPC.PackageWriter(); //System.String[] ips = Iocp.TcpServer.GetHostIpAddress(); //mParameter.ListenIP = SelectDataServerIP(ips); H_RPCRoot.smInstance.HGet_RegServer(pkg).RegPlanesServer(pkg, mParameter.ServerId); pkg.WaitDoCommand(mRegisterConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { UInt16 port; _io.Read(out port); mParameter.ListenPort = port; System.Diagnostics.Debug.WriteLine("位面服务器({0})启动并且注册成功,可以等待连接服务器接入了", mParameter.ServerId); mLinkState = PlanesServerState.WaitDataServer; //ConnectDataServer(); //ConnectPathFindServer(); }; }
public void RPC_GetRoleGirdByType(byte itemType, byte page, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetRoleGirdByType(pkg, PlayerData.RoleDetail.RoleId, itemType, page); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.SetSinglePkg(); sbyte result; _io.Read(out result); retPkg.Write(result); if (result == (sbyte)1) { int count = 0; _io.Read(out count); retPkg.Write(count); for (int i = 0; i < count; i++) { CSCommon.Data.ConsignGridData data = new CSCommon.Data.ConsignGridData(); _io.Read(data); pkg.Write(data); } } retPkg.DoReturnPlanes2Client(fwd); }; }
public RPC.DataWriter GetPlanesServers() { RPC.DataWriter d = new RPC.DataWriter(); Byte count = (Byte)mPlanesServers.Count; d.Write(count); foreach (var s in mPlanesServers) { if (s.Value.Id == 0) { Log.Log.Server.Print("GetPlanesServers时有的PlanesSever的Id不合法"); RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_PlanesServer(pkg).GetPlanesServerId(pkg); pkg.WaitDoCommand(s.Value.Connect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { _io.Read(out s.Value.Id); }; } d.Write(s.Value.Id); d.Write(s.Value.Ip); d.Write(s.Value.Port); } return(d); }
void ConnectComServer() { Instance = this; RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_RegServer(pkg).GetComServer(pkg); pkg.WaitDoCommand(mRegisterConnect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.DataReader dr; _io.Read(out dr); string gsIpAddress = ""; UInt16 gsPort = 0; if (dr.Length > 0) { dr.Read(out gsIpAddress); dr.Read(out gsPort); } if (gsIpAddress != "" && gsPort != 0) { if (mLinkState == PlanesServerState.WaitRegServer) { mComConnect.Connect(gsIpAddress, gsPort); System.Diagnostics.Debug.WriteLine("PlanesServer成功连接RegServer,尝试连接DataServer:" + gsIpAddress + ":" + gsPort); } else { mComConnect.Connect(gsIpAddress, gsPort); System.Diagnostics.Debug.WriteLine("PlanesServer断线,重新从RegServer获得地址,尝试连接DataServer:" + gsIpAddress + ":" + gsPort); } } }; }
public void RPC_DonateGold(int gold, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); if (_IsMoneyEnough(CSCommon.eCurrenceType.Gold, gold) == false) { retPkg.Write((sbyte)CSCommon.eRet_DonateGold.LessGold); retPkg.DoReturnPlanes2Client(fwd); return; } RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_DonateGold(pkg, PlayerData.RoleDetail.RoleId, gold); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } sbyte success; _io.Read(out success); retPkg.Write(success); if (success == (sbyte)CSCommon.eRet_DonateGold.Succeed) { int todaycontribute; int contribute; _io.Read(out todaycontribute); _io.Read(out contribute); retPkg.Write(todaycontribute); retPkg.Write(contribute); _ChangeMoney(CSCommon.eCurrenceType.Gold, CSCommon.Data.eMoneyChangeType.GuildContribute, gold); } retPkg.DoReturnPlanes2Client(fwd); }; }
void OnRegisterConnected(Iocp.TcpClient pClient, byte[] pData, int nLength) { if (nLength == 0) { return; } RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_RegServer(pkg).RegComServer(pkg, mParameter.ListenIP, mParameter.ServerId); pkg.WaitDoCommand(mRegisterConnect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { System.Diagnostics.Debug.WriteLine("公共信息通讯服务器({0})启动并且注册成功,可以等待位面服务器接入了", mParameter.ServerId); UInt16 listenPort = 0; _io.Read(out listenPort); mParameter.ListenPort = listenPort; if (mLinkState != ComServerState.Working) { if (false == mTcpSrv.Open(Iocp.TcpOption.ForComServer, mParameter.ListenPort)) { return; } } mLinkState = ComServerState.Working; }; }
void OnRegisterConnected(Iocp.TcpClient pClient, byte[] pData, int nLength) { if (nLength == 0) { return; } RPC.PackageWriter pkg = new RPC.PackageWriter(); //System.String[] ips = Iocp.TcpServer.GetHostIpAddress(); //mParameter.ListenIP = SelectLogServerIP(ips); H_RPCRoot.smInstance.HGet_RegServer(pkg).RegLogServer(pkg, mParameter.ListenIP, mParameter.ListenPort, mParameter.ServerId); pkg.WaitDoCommand(mRegisterConnect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { System.Diagnostics.Debug.WriteLine("数据服务器({0})启动并且注册成功,可以等待连接服务器接入了", mParameter.ServerId); if (mLinkState != LogServerState.Working) { if (false == mTcpSrv.Open(Iocp.TcpOption.ForComServer, mParameter.ListenPort)) { return; } } mLinkState = LogServerState.Working; }; }
public void RPC_Whisper(string targetName, string msg, RPC.DataReader hyperlink, RPC.RPCForwardInfo fwd) { sbyte success = 0; RPC.DataWriter data = new RPC.DataWriter(); if (hyperlink != null) { hyperlink.Read(out success); data.Write(success); if (success == (sbyte)1)//物品 { CSCommon.Data.ItemData item = new CSCommon.Data.ItemData(); hyperlink.Read(item, true); data.Write(item, true); } } msg = CheckMaskWord(msg); RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_SayToRole(pkg, this.Id, targetName, msg, data); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { sbyte result = -1; _io.Read(out result); if (result < 0) { SendTalkMsg2Client(this, (sbyte)CSCommon.eSayChannel.WhisperChannel, "", "无效发送对象", new RPC.DataWriter()); } else { SendTalkMsg2Client(this, (sbyte)CSCommon.eSayChannel.WhisperChannel, this.RoleName, msg, data); } }; }
public void RPC_CreateGuild(string GuildName, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); if (!_IsLevelEnough(CSCommon.GuildCommon.Instance.NeedRoleLevel)) { retPkg.Write((sbyte)CSCommon.eRet_CreateGuild.LessLevel); retPkg.DoReturnPlanes2Client(fwd); return; } if (!_IsMoneyEnough(CSCommon.GuildCommon.Instance.NeedCurrenceType, CSCommon.GuildCommon.Instance.NeedMoneyNum)) { retPkg.Write((sbyte)CSCommon.eRet_CreateGuild.LessRmb); retPkg.DoReturnPlanes2Client(fwd); return; } RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_CreateGuild(pkg, PlayerData.RoleDetail.RoleId, GuildName); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } SByte success; _io.Read(out success); retPkg.Write(success); if (success == (sbyte)CSCommon.eRet_CreateGuild.Succeed) { _ChangeMoney(CSCommon.GuildCommon.Instance.NeedCurrenceType, CSCommon.Data.eMoneyChangeType.CreateGuild, -CSCommon.GuildCommon.Instance.NeedMoneyNum); } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_GetTeamPlayers(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetTeamPlayers(pkg, PlayerData.RoleDetail.RoleId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.SetSinglePkg(); sbyte result = _io.ReadSByte(); retPkg.Write(result); if (result == (sbyte)CSCommon.eRet_Team.Succeed) { byte count = _io.ReadByte(); retPkg.Write(count); for (byte i = 0; i < count; i++) { RoleCom data = new RoleCom(); _io.Read(data); retPkg.Write(data); } } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_BuyConsignItem(ulong itemId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetConsignItem(pkg, PlayerData.RoleDetail.RoleId, itemId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); sbyte result; _io.Read(out result); if ((CSCommon.eRet_BuyConsignItem)result == CSCommon.eRet_BuyConsignItem.Succeed) { int price = 0; _io.Read(out price); if (_IsMoneyEnough(CSCommon.eCurrenceType.Rmb, price) == false) { retPkg.Write((sbyte)CSCommon.eRet_BuyConsignItem.LessMoney); retPkg.DoReturnPlanes2Client(fwd); return; } RPC.PackageWriter rpkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(rpkg).HGet_UserRoleManager(rpkg).RPC_BuyConsignItem(rpkg, PlayerData.RoleDetail.RoleId, itemId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io2, bool isTimeOut2) { _io2.Read(out result); if ((CSCommon.eRet_BuyConsignItem)result == CSCommon.eRet_BuyConsignItem.Succeed) { _ChangeMoney(CSCommon.eCurrenceType.Rmb, CSCommon.Data.eMoneyChangeType.BuyConsignItem, -price); } retPkg.Write(result); retPkg.DoReturnPlanes2Client(fwd); return; }; } else { retPkg.Write(result); retPkg.DoReturnPlanes2Client(fwd); return; } }; }
public void RPC_Visit(byte type, ulong otherId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_Visit(pkg, type, this.PlayerData.RoleDetail.RoleId, otherId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); sbyte result = _io.ReadSByte(); retPkg.Write(result); retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_SendGift(ulong roleId, int templateId, int count, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); var itemtemplate = CSTable.ItemUtil.GetItem(templateId) as CSTable.ItemGiftData; if (itemtemplate == null) { Log.Log.Social.Print("itemtemplate is null:{0}", templateId); retPkg.Write((sbyte)CSCommon.sRet_SendGift.NoGftTpl); retPkg.DoReturnPlanes2Client(fwd); return; } if (itemtemplate.ItemType != (int)CSCommon.eItemType.Gift) { retPkg.Write((sbyte)CSCommon.sRet_SendGift.NotGiftType); retPkg.DoReturnPlanes2Client(fwd); return; } if (CSCommon.SocialCommon.Instance.GiftList.Contains(templateId) == false) { retPkg.Write((sbyte)CSCommon.sRet_SendGift.ListNoGift); retPkg.DoReturnPlanes2Client(fwd); return; } if (_IsMoneyEnough((CSCommon.eCurrenceType)itemtemplate.BuyCurrenceType, itemtemplate.PurchasePrice * count) == false) { retPkg.Write((sbyte)CSCommon.sRet_SendGift.LessMoney); retPkg.DoReturnPlanes2Client(fwd); return; } int index = CSCommon.SocialCommon.Instance.GiftList.IndexOf(templateId); int addvalue = itemtemplate.AddIntimacy * count; RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_SendGift(pkg, this.PlayerData.RoleDetail.RoleId, roleId, index, count, addvalue); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.PackageWriter retpkg = new RPC.PackageWriter(); sbyte result = -1; _io.Read(out result); if (result == (sbyte)CSCommon.sRet_SendGift.Succeed) { _ChangeMoney((CSCommon.eCurrenceType)itemtemplate.BuyCurrenceType, CSCommon.Data.eMoneyChangeType.SendGift, -count); } retpkg.Write(result); retpkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_RemoveSocial(ulong roleId, byte type, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_RemoveSocial(pkg, this.PlayerData.RoleDetail.RoleId, roleId, type); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { sbyte result = -1; _io.Read(out result); RPC.PackageWriter retpkg = new RPC.PackageWriter(); retpkg.Write(result); retpkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_OperateTeamAsk(string otherName, byte operate, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_OperateTeamAsk(pkg, PlayerData.RoleDetail.RoleId, otherName, operate); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); sbyte result = _io.ReadSByte(); retPkg.Write(result); retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_OpenVisit(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetTopAndFriend(pkg, this.PlayerData.RoleDetail.RoleId, this.PlayerData.RoleDetail.PlanesId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); sbyte result = _io.ReadSByte(); retPkg.Write(result); if (result == 1) { byte WorldVisitCount = _io.ReadByte(); byte FriendVisitCount = _io.ReadByte(); byte BuyVisitCount = _io.ReadByte(); ushort ByVisitCount = _io.ReadByte(); retPkg.Write(WorldVisitCount); retPkg.Write(FriendVisitCount); retPkg.Write(BuyVisitCount); retPkg.Write(ByVisitCount); byte topcount = _io.ReadByte(); retPkg.Write(topcount); for (byte i = 0; i < topcount; i++) { ulong id = _io.ReadUInt64(); string name = _io.ReadString(); byte state = _io.ReadByte(); retPkg.Write(id); retPkg.Write(name); retPkg.Write(state); } byte friendcount = _io.ReadByte(); retPkg.Write(friendcount); for (byte j = 0; j < friendcount; j++) { ulong id = _io.ReadUInt64(); string name = _io.ReadString(); byte state = _io.ReadByte(); retPkg.Write(id); retPkg.Write(name); retPkg.Write(state); } } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_LeaveGuild(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_LeaveGuild(pkg, PlayerData.RoleDetail.RoleId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); SByte success; _io.Read(out success); retPkg.Write(success); retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_OpenMail(ulong mailId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_OpenMail(pkg, mailId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); sbyte result; _io.Read(out result); retPkg.Write(result); retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_GetGuilds(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetGuilds(pkg, PlayerData.RoleDetail.RoleId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.SetSinglePkg(); sbyte success; _io.Read(out success); retPkg.Write(success); if (success == (sbyte)CSCommon.eRet_GetGuilds.ReturnGuilds) { int guildcount = 0; _io.Read(out guildcount); retPkg.Write(guildcount); for (int i = 0; i < guildcount; i++) { CSCommon.Data.GuildCom guild = new CSCommon.Data.GuildCom(); _io.Read(guild); retPkg.Write(guild); } } else if (success == (sbyte)CSCommon.eRet_GetGuilds.ReturnGuildMembers) { CSCommon.Data.GuildCom ownguild = new CSCommon.Data.GuildCom(); _io.Read(ownguild); retPkg.Write(ownguild); int membercount = 0; _io.Read(out membercount); retPkg.Write(membercount); for (int j = 0; j < membercount; j++) { RoleCom roleData = new RoleCom(); _io.Read(roleData); retPkg.Write(roleData); } } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_ConsignItem(ulong itemId, int stack, int price, RPC.RPCForwardInfo fwd) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); if (CSCommon.ItemCommon.Instance == null) { Log.Log.Item.Print("RPC_ConsignItem,CSCommon.ItemCommon.Instance == null"); retPkg.Write((sbyte)CSCommon.eRet_ConsignItem.LessTemp); retPkg.DoReturnPlanes2Client(fwd); return; } var rent = CSCommon.ItemCommon.Instance.Rent; int needPayRent = stack * rent; if (_IsMoneyEnough(CSCommon.eCurrenceType.Gold, needPayRent) == false) { retPkg.Write((sbyte)CSCommon.eRet_ConsignItem.LessRent); retPkg.DoReturnPlanes2Client(fwd); return; } var item = this.Bag.FindItemById(itemId); if (item.StackNum < stack) { retPkg.Write((sbyte)CSCommon.eRet_ConsignItem.LessStack); retPkg.DoReturnPlanes2Client(fwd); return; } //通知从comserver已寄售背包里面创建寄售的物品 RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_ConsignItem(pkg, PlayerData.RoleDetail.RoleId, item.ItemData.ItemTemlateId, stack, price); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { sbyte result; _io.Read(out result); retPkg.Write(result); if (result == (sbyte)CSCommon.eRet_ConsignItem.Succeed) { _ChangeMoney(CSCommon.eCurrenceType.Gold, CSCommon.Data.eMoneyChangeType.ConsignItem, -needPayRent); this.Bag.RemoveItemCountById(itemId, stack); } retPkg.DoReturnPlanes2Client(fwd); }; }
void ConnectDataServer() { Instance = this; RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_RegServer(pkg).GetDataServer(pkg); pkg.WaitDoCommand(mRegisterConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.DataReader dr; _io.Read(out dr); string gsIpAddress = ""; dr.Read(out gsIpAddress); UInt16 gsPort = 0; dr.Read(out gsPort); if (string.IsNullOrEmpty(gsIpAddress)) { return; } mDataConnect.Connect(gsIpAddress, gsPort); }; }
public void RPC_AddSocialByName(string name, byte type, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_AddSocial(pkg, this.PlayerData.RoleDetail.RoleId, name, type); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.PackageWriter retpkg = new RPC.PackageWriter(); sbyte result = _io.ReadSByte(); retpkg.Write(result); if (result == (sbyte)CSCommon.eRet_AddSocial.AddSucceed) { CSCommon.Data.SocialRoleInfo s = new CSCommon.Data.SocialRoleInfo(); _io.Read(s); _io.Read(s.socialData); retpkg.Write(s); retpkg.Write(s.socialData); } retpkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_GetMyRank(byte type, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetMyRank(pkg, this.Id, type); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); sbyte result = _io.ReadSByte(); retPkg.Write(result); if (result == 1) { int nowrank = _io.ReadInt32(); //今日排名 byte count = _io.ReadByte(); //前10名数据 retPkg.Write(nowrank); retPkg.Write(count); for (int i = 0; i < count; i++) { string name = _io.ReadString(); ushort level = _io.ReadUInt16(); int value = _io.ReadInt32(); retPkg.Write(name); retPkg.Write(level); retPkg.Write(value); } int lastrank = 0; int nowValue = 0; byte rewarddata = 0; _GetRankByType(type, ref lastrank, ref nowValue, ref rewarddata); retPkg.Write(lastrank); //昨日排名 retPkg.Write(nowValue); //今日数据 retPkg.Write(rewarddata); //箱子数量 } retPkg.DoReturnPlanes2Client(fwd); return; }; }
public void EnterPlanes(PlayerInstance player) { if (player.PlanesInstance == this) { return; } lock (this) { mPlayers[player.Id] = player; player.PlanesInstance = this; if (this.PlanesId != 0)//没有在副本里面,副本没有PlanesId { player.PlayerData.RoleDetail.PlanesId = this.PlanesId; } } { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_DataServer(pkg).HGet_PlayerManager(pkg).RoleEnterPlanesSuccessed(pkg, player.Id); pkg.DoCommand(IPlanesServer.Instance.DataConnect, RPC.CommandTargetType.DefaultType); } { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_RoleEnterPlanes(pkg, player.PlayerData.RoleDetail); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } CSCommon.Data.RankData rd = new CSCommon.Data.RankData(); _io.Read(rd); player.PlayerData.RankData = rd; player.PlayerData.RankData._SetHostPlayer(player); }; } }
public void RPC_GetMailItems(ulong mailId, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetMailItems(pkg, mailId); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool isTimeOut) { if (isTimeOut) { return; } RPC.PackageWriter retPkg = new RPC.PackageWriter(); sbyte result; _io.Read(out result); if (result == 1) { CSCommon.Data.MailData mail = new CSCommon.Data.MailData(); _io.Read(mail); if (_GetMailItems(mail.StrItems) == false) { pkg.Write((sbyte)-2); //背包空间不足 pkg.DoReturnPlanes2Client(fwd); return; } _GetMailCurrencies(mail.StrCurrencies); retPkg.Write((sbyte)1); //删除邮件 RPC.PackageWriter delpkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(delpkg).HGet_UserRoleManager(delpkg).RPC_DelMail(delpkg, mailId); delpkg.DoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType); } else { retPkg.Write((sbyte)-1); } retPkg.DoReturnPlanes2Client(fwd); }; }
public void RPC_QueryAllActivePlanesInfo(RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_DataServer(pkg).QueryAllActivePlanesInfo(pkg, fwd.Handle); pkg.WaitDoCommand(mDataServer.Connect, RPC.CommandTargetType.DefaultType, new System.Diagnostics.StackTrace(1, true)).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.DataReader dr; _io.Read(out dr); RPC.PackageWriter retPkg = new RPC.PackageWriter(); UInt16 count = 0; dr.Read(out count); retPkg.Write(count); for (UInt16 i = 0; i < count; i++) { ushort id = dr.ReadUInt16(); string planesName = dr.ReadString(); retPkg.Write(id); retPkg.Write(planesName); } retPkg.DoReturnGate2Client(fwd); }; }
public void RPC_GetSocialList(byte type, RPC.RPCForwardInfo fwd) { RPC.PackageWriter pkg = new RPC.PackageWriter(); H_RPCRoot.smInstance.HGet_ComServer(pkg).HGet_UserRoleManager(pkg).RPC_GetSocialList(pkg, this.PlayerData.RoleDetail.RoleId, type); pkg.WaitDoCommand(IPlanesServer.Instance.ComConnect, RPC.CommandTargetType.DefaultType, null).OnFarCallFinished = delegate(RPC.PackageProxy _io, bool bTimeOut) { RPC.PackageWriter retPkg = new RPC.PackageWriter(); retPkg.SetSinglePkg(); sbyte result = -1; _io.Read(out result); int count; if (result == -1) { count = 0; retPkg.Write(count); retPkg.DoReturnPlanes2Client(fwd); return; } else if (result == 1) { _io.Read(out count); retPkg.Write(count); for (int i = 0; i < count; i++) { CSCommon.Data.SocialRoleInfo s = new CSCommon.Data.SocialRoleInfo(); _io.Read(s); _io.Read(s.socialData); retPkg.Write(s); retPkg.Write(s.socialData); } retPkg.DoReturnPlanes2Client(fwd); return; } }; }