Beispiel #1
0
 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);
     };
 }
Beispiel #2
0
 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);
     };
 }
Beispiel #3
0
        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);
            };
        }
Beispiel #4
0
        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();
            };
        }
Beispiel #5
0
 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);
     };
 }
Beispiel #6
0
        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);
        }
Beispiel #7
0
 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);
             }
         }
     };
 }
Beispiel #8
0
        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);
            };
        }
Beispiel #9
0
        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;
            };
        }
Beispiel #10
0
        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;
            };
        }
Beispiel #11
0
        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);
                }
            };
        }
Beispiel #12
0
        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);
            };
        }
Beispiel #13
0
 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);
     };
 }
Beispiel #14
0
 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;
         }
     };
 }
Beispiel #15
0
 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);
     };
 }
Beispiel #16
0
        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);
            };
        }
Beispiel #17
0
        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);
            };
        }
Beispiel #18
0
 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);
     };
 }
Beispiel #19
0
        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);
            };
        }
Beispiel #20
0
 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);
     };
 }
Beispiel #21
0
 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);
     };
 }
Beispiel #22
0
 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);
     };
 }
Beispiel #23
0
        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);
            };
        }
Beispiel #24
0
 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);
     };
 }
Beispiel #25
0
 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);
     };
 }
Beispiel #26
0
 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;
     };
 }
Beispiel #27
0
        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);
                };
            }
        }
Beispiel #28
0
        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);
            };
        }
Beispiel #29
0
        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);
            };
        }
Beispiel #30
0
        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;
                }
            };
        }