コード例 #1
0
        public override void OnRead(RiftClient From)
        {
            try
            {
                XmlSerializer xmls = new XmlSerializer(typeof(ClientAuthCertificate));
                ClientAuthCertificate Cert = xmls.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(Certificate))) as ClientAuthCertificate;

                if (Program.Config.UseCertificate)
                    From.Acct = Program.AcctMgr.GetAccount(Cert.Sessionkey);
                else
                    From.Acct = Program.AcctMgr.GetAccount(Cert.Username, Cert.Hash);

            }
            catch
            {
                From.Disconnect();
            }

            if (From.Acct == null)
            {
                Log.Error("Authentication", "Failed !");
                From.Disconnect();
            }
            else
            {
                HandshakeAuthenticationResponse Rp = new HandshakeAuthenticationResponse();
                Rp.SessionTicket = (long)BitConverter.ToUInt64(Guid.NewGuid().ToByteArray(), 0);

                From.Acct.SessionTicket = Rp.SessionTicket;
                From.Acct.Dirty = true;
                AccountMgr.AccountDB.SaveObject(From.Acct);

                From.SendSerialized(Rp);
            }
        }
コード例 #2
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("WorldList", "Request : In Progress");

            Realm[] Realms = Program.AcctMgr.GetRealms();

            LobbyWorldListResponse Rp = new LobbyWorldListResponse();
            foreach(Realm Rm in Realms)
            {
                LobbyWorldEntry Entry = new LobbyWorldEntry();
                Entry.RealmID = Rm.RiftId;
                Entry.PVP = Rm.PVP == 1;
                Entry.Recommended = Rm.Recommended == 1;
                Entry.Population = 0;
                Entry.RP = Rm.RP == 1;
                Entry.Version = Rm.ClientVersion;
                Entry.CharactersCount = Rm.GetObject<CharactersMgr>().GetCharactersCount(From.Acct.Id);
                Entry.Language = Rm.Language;
                if (Rm.Online > 0)
                    Entry.AddField(16, EPacketFieldType.True, (bool)true);

                Rp.Realms.Add(Entry);
            }

            Log.Success("WorldList", "Count = " + Rp.Realms.Count);

            From.SendSerialized(Rp);
        }
コード例 #3
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("CharacterListRequest", "Characters For : " + From.GetIp + " RPC : " + From.Rm.RpcInfo.Description());

            if (From.Acct == null || From.Rm == null)
                return;

            LobbyCharacterListResponse ListRp = new LobbyCharacterListResponse();
            Character[] Chars = From.Rm.GetObject<CharactersMgr>().GetCharacters(From.Acct.Id);
            foreach (Character Char in Chars)
                ListRp.Characters.Add(Char);
            From.SendSerialized(ListRp);

            Log.Success("Characters","Count = " + ListRp.Characters.Count);

            if (From.JustCreatedCharacter >= 0)
            {
                long CharacterId = From.JustCreatedCharacter;
                From.JustCreatedCharacter = -1;

                LobbyCharacterSelectRequest Request = new LobbyCharacterSelectRequest();
                Request.GUID = CharacterId;
                Request.OnRead(From);
            }
        }
コード例 #4
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("SelectRequest", "Enter on World : " + From.GetIp + ",GUID=" + GUID);

            if (From.Acct == null || From.Rm == null)
                return;

            Character Char = From.Rm.GetObject<CharactersMgr>().GetCharacter(GUID);
            if (Char == null || Char.AccountId != From.Acct.Id)
            {
                Log.Error("SelectRequest", "Invalid CharacterId = " + GUID);
                From.Disconnect();
                return;
            }

            MapServerInfo Info = From.Rm.GetObject<WorldMgr>().GetMapInfo();

            if (Info == null)
            {
                Log.Error("SelectRequest", "No map loaded ! Run MapServer");
                return;
            }

            Log.Success("SelectRequest", "Entering on Map : " + Info.MapAdress);

            Info.GetObject<MapMgr>().RegisterConnecting(From.Acct.Username,Char.CharacterId);

            LobbyCharacterSelectResponse Rp = new LobbyCharacterSelectResponse();
            Rp.Ips.Add(Info.MapAdress);
            From.SendSerialized(Rp);
        }
コード例 #5
0
        public override void OnRead(RiftClient From)
        {
            LobbyCharacterCreation_NameResponse Rp = new LobbyCharacterCreation_NameResponse();

            Rp.Name = CharacterMgr.Instance.GenerateName();
            From.SendSerialized(Rp);
        }
コード例 #6
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("SelectRequest", "Enter on World : " + From.GetIp + ",GUID=" + GUID);

            Character Char = CharacterMgr.Instance.GetCharacter((int)GUID);

            if (Char.AccountId != From.Acct.Id)
            {
                From.Disconnect();
                return;
            }

            From.Acct.PendingCharacter = GUID;
            From.Acct.Dirty            = true;
            AccountMgr.AccountDB.SaveObject(From.Acct);

            LobbyCharacterSelectResponse Rp = new LobbyCharacterSelectResponse();

            if (From.Realm != null)
            {
                Log.Success("Entering", "On : " + From.Realm.Address);
                Rp.Ips.Add(From.Realm.Address);
            }

            From.SendSerialized(Rp);
        }
コード例 #7
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("WorldList", "Request : In Progress");

            Realm[] Realms = Program.AcctMgr.GetRealms();

            LobbyWorldListResponse Rp = new LobbyWorldListResponse();

            foreach (Realm Rm in Realms)
            {
                LobbyWorldEntry Entry = new LobbyWorldEntry();
                Entry.RealmID         = Rm.RiftId;
                Entry.PVP             = Rm.PVP == 1;
                Entry.Recommended     = Rm.Recommended == 1;
                Entry.Population      = 0;
                Entry.RP              = Rm.RP == 1;
                Entry.Version         = Rm.ClientVersion;
                Entry.CharactersCount = Rm.GetObject <CharactersMgr>().GetCharactersCount(From.Acct.Id);
                Entry.Language        = Rm.Language;
                if (Rm.Online > 0)
                {
                    Entry.AddField(16, EPacketFieldType.True, (bool)true);
                }

                Rp.Realms.Add(Entry);
            }

            Log.Success("WorldList", "Count = " + Rp.Realms.Count);

            From.SendSerialized(Rp);
        }
コード例 #8
0
        public override void OnRead(RiftClient From)
        {
            ISerializablePacket Packet = new ISerializablePacket();

            Packet.Opcode = (long)Opcodes.LobbyCharacterCreationCacheResponse;
            From.SendSerialized(Packet);
        }
コード例 #9
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("CharacterListRequest", "Characters For : " + From.GetIp + " RPC : " + From.Rm.RpcInfo.Description());

            if (From.Acct == null || From.Rm == null)
            {
                return;
            }

            LobbyCharacterListResponse ListRp = new LobbyCharacterListResponse();

            Character[] Chars = From.Rm.GetObject <CharactersMgr>().GetCharacters(From.Acct.Id);
            foreach (Character Char in Chars)
            {
                ListRp.Characters.Add(Char);
            }
            From.SendSerialized(ListRp);

            Log.Success("Characters", "Count = " + ListRp.Characters.Count);

            if (From.JustCreatedCharacter >= 0)
            {
                long CharacterId = From.JustCreatedCharacter;
                From.JustCreatedCharacter = -1;

                LobbyCharacterSelectRequest Request = new LobbyCharacterSelectRequest();
                Request.GUID = CharacterId;
                Request.OnRead(From);
            }
        }
コード例 #10
0
        public override void OnRead(RiftClient From)
        {
            Log.Dump("ClientKey", ClientKey, 0, ClientKey.Length);

            From.InitCrypto(ClientKey);

            HandshakeCompression Cp = new HandshakeCompression();
            Cp.Enabled = true;
            From.SendSerialized(Cp);
            From.EnableSendCompress();

            #region 1.1 Client

            HandshakeServerKey ServerKey = new HandshakeServerKey();
            ServerKey.Nid = 420;
            ServerKey.ServerKey = From.LocalPublicKey;
            From.SendSerialized(ServerKey);

            #endregion

            #region 1.2 Client

            //HandshakeServerKey ServerKey = new HandshakeServerKey();
            //ServerKey.Nid = 2980549511;
            //ServerKey.Unk = 3061945505;
            //ServerKey.ServerKey = From.LocalPublicKey;
            //From.SendSerialized(ServerKey);

            #endregion
        }
コード例 #11
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("CreationCache", "Requesting Creation cache request : " + From.Rm.RpcInfo.Description());

            if (From.Acct == null || From.Rm == null)
            {
                return;
            }

            CacheTemplate[] Tmps = From.Rm.GetObject <WorldMgr>().GetTemplates();
            foreach (CacheTemplate Tmp in Tmps)
            {
                From.SendSerialized(WorldMgr.BuildCache(Tmp.CacheID, Tmp.CacheType, Tmp));
            }

            CacheData[] Dts = From.Rm.GetObject <WorldMgr>().GetDatas();
            foreach (CacheData Tmp in Dts)
            {
                From.SendSerialized(WorldMgr.BuildCache(Tmp.CacheID, Tmp.CacheType, Tmp));
            }

            ISerializablePacket Packet = new ISerializablePacket();

            Packet.Opcode = (long)Opcodes.LobbyCharacterCreationCacheResponse;
            From.SendSerialized(Packet);
        }
コード例 #12
0
ファイル: WorldCanConnect.cs プロジェクト: dsstest/SiennaCore
        public override void OnRead(RiftClient From)
        {
            ISerializablePacket Packet = new ISerializablePacket();

            Packet.Opcode = 0x1E9A;
            Packet.AddField(1, EPacketFieldType.True, false);
            From.SendSerialized(Packet);
        }
コード例 #13
0
 public override void OnRead(RiftClient From)
 {
     if (From.Character != null)
     {
         Log.Success("WorldDisconnect", "Character disconnectig : " + From.Character.CharacterName);
         From.Disconnect();
     }
 }
コード例 #14
0
        public override void OnRead(RiftClient From)
        {
            Log.Info("WorldCanConnect", "Connecting...");
            ISerializablePacket Packet = new ISerializablePacket();

            Packet.Opcode = 0x1E9A;
            Packet.AddField(1, EPacketFieldType.True, false);
            From.SendSerialized(Packet);
        }
コード例 #15
0
        public override void OnRead(RiftClient From)
        {
            if (From.Acct == null || From.Character == null)
            {
                return;
            }

            From.Character.Info.Position = Position;
            From.Character.Info.Dirty    = true;
        }
コード例 #16
0
        public override void OnRead(RiftClient From)
        {
            if (CharacterMgr.Instance.GetCharactersCount(From.Acct.Id, From.Realm.RealmId) >= 6)
            {
                Log.Error("CharacterCreate", "Hack From : " + From.GetIp);
                From.Disconnect();
                return;
            }

            LobbyCharacterCreateResponse Rp = new LobbyCharacterCreateResponse();
            Character Exist = CharacterMgr.CharacterDB.SelectObject <Character>("Name='" + CharacterMgr.CharacterDB.Escape(Name) + "' AND RealmID=" + From.Realm.RealmId);

            if (Exist != null)
            {
                Rp.AddField(0, EPacketFieldType.Unsigned7BitEncoded, (long)6);
            }
            else
            {
                Rp.AddField(0, EPacketFieldType.Unsigned7BitEncoded, (long)0);

                PacketOutStream Stream = new PacketOutStream();
                PacketProcessor.WritePacket(ref Stream, Custom, false, true, true);
                CustomData = Stream.ToArray();

                string Data = UTF8ByteArrayToString(CustomData);

                Character Char = new Character();
                Char.Name        = Name;
                Char.AccountId   = From.Acct.Id;
                Char.RealmId     = From.Realm.RealmId;
                Char.Race        = Field1;
                Char.Sex         = Field2;
                Char.Class       = Field13;
                Char.HairModelID = HairID;
                Char.Level       = 1;
                Char.Data        = Data;

                CharacterMgr.Instance.AddObject(Char);
                Character CharEntry = CharacterMgr.Instance.GetCharacter(CharacterMgr.CharacterDB.Escape(Name));

                Character_StartItems[] StartItems = CharacterMgr.Instance.GetStartItems(Field1, Field2, Field13);

                foreach (Character_StartItems Item in StartItems)
                {
                    Character_Item It = new Character_Item();
                    It.ItemID  = Item.ItemID;
                    It.Bag     = 0;
                    It.Equiped = 1;
                    It.GUID    = CharEntry.Id;

                    CharacterMgr.Instance.AddObject(It);
                }
            }
            From.SendSerialized(Rp);
        }
コード例 #17
0
ファイル: ShardTests.cs プロジェクト: kevinbrill/rift.net
        public void SetUp()
        {
            var username = System.Configuration.ConfigurationManager.AppSettings ["username"];
            var password = System.Configuration.ConfigurationManager.AppSettings ["password"];

            var sessionFactory = new SessionFactory();

            var session = sessionFactory.Login(username, password);

            client = new RiftClient(session);
        }
コード例 #18
0
        public override void OnRead(RiftClient From)
        {
            if(From.Acct == null || From.Rm == null)
                return;

            string Name = From.Rm.GetObject<CharactersMgr>().GetRandomName();

            ISerializablePacket Packet = new ISerializablePacket();
            Packet.Opcode = (int)Opcodes.LobbyCharacterRandomNameResponse;
            Packet.AddField(1, EPacketFieldType.ByteArray, Name);
            From.SendSerialized(Packet);
        }
コード例 #19
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("LobbyCharacterDeleteRequest", "Deleting Character : " + GUID);

            if (From.Acct == null || From.Rm == null)
                return;

            CharactersMgr Mgr = From.Rm.GetObject<CharactersMgr>();
            bool Result = Mgr.DeleteCharacter(GUID, From.Acct.Id);

            // TODO : Check in game player
            LobbyCharacterDeleteResponse DeleteResult = new LobbyCharacterDeleteResponse();
            DeleteResult.Result = Convert.ToInt64(!Result); // Result, 15 Error must wait logout, 0 OK
            From.SendSerialized(DeleteResult);
        }
コード例 #20
0
        public override void OnRead(RiftClient From)
        {
            if (From.Acct == null || From.Rm == null)
            {
                return;
            }

            string Name = From.Rm.GetObject <CharactersMgr>().GetRandomName();

            ISerializablePacket Packet = new ISerializablePacket();

            Packet.Opcode = (int)Opcodes.LobbyCharacterRandomNameResponse;
            Packet.AddField(1, EPacketFieldType.ByteArray, Name);
            From.SendSerialized(Packet);
        }
コード例 #21
0
        public override void OnRead(RiftClient From)
        {
            Realm Rm = Program.AcctMgr.GetRealm((int)RealmId);
            if (Rm != null)
                From.Rm = Rm;

            if (From.Rm == null)
            {
                Log.Error("WorldSelectRequest", "Realm null : " + From.GetIp);
                From.Disconnect();
                return;
            }

            LobbyWorldSelectResponse Rp = new LobbyWorldSelectResponse();
            From.SendSerialized(Rp);
        }
コード例 #22
0
        public override void OnRead(RiftClient From)
        {
            if (From.Character == null)
            {
                return;
            }

            PlayerName = From.Character.CharacterName;

            foreach (RiftClient Client in From.Server.Clients)
            {
                if (Client != null)
                {
                    Client.SendSerialized(this);
                }
            }
        }
コード例 #23
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("LobbyCharacterDeleteRequest", "Deleting Character : " + GUID);

            if (From.Acct == null || From.Rm == null)
            {
                return;
            }

            CharactersMgr Mgr    = From.Rm.GetObject <CharactersMgr>();
            bool          Result = Mgr.DeleteCharacter(GUID, From.Acct.Id);

            // TODO : Check in game player
            LobbyCharacterDeleteResponse DeleteResult = new LobbyCharacterDeleteResponse();

            DeleteResult.Result = Convert.ToInt64(!Result); // Result, 15 Error must wait logout, 0 OK
            From.SendSerialized(DeleteResult);
        }
コード例 #24
0
        public void BuildItem(RiftClient From, Character Char)
        {
            GUID = 45875261658941;

            // Cache Ref
            this.AddField(4, EPacketFieldType.Raw4Bytes, (int)456805300);
            this.AddField(6, EPacketFieldType.Raw8Bytes, (long)Char.Id);

            // Unk, Equiped ?
            this.AddField(7, EPacketFieldType.Unsigned7BitEncoded, (long)3);

            Packets = new List <ISerializablePacket>();

            ISerializablePacket DataList = new ISerializablePacket();

            ISerializablePacket NullPck = new ISerializablePacket();

            NullPck.Opcode = 0x026D;

            ISerializablePacket NullPck2 = new ISerializablePacket();

            NullPck2.Opcode = 0x033A;

            Packets.Add(NullPck);
            Packets.Add(NullPck2);

            ISerializablePacket ItemDatas = new ISerializablePacket();

            ItemDatas.Opcode = 0x026C;

            // Unk Slot ?
            ItemDatas.AddField(1, EPacketFieldType.Unsigned7BitEncoded, (long)2);

            CharacterInfoCache Cache = new CharacterInfoCache();

            Cache.CacheIdentifier = 456805300;

            ItemDatas.AddField(10, EPacketFieldType.Packet, Cache);

            From.SendCache(7310, 506516265);
            From.SendCache(623, 456805300);

            Packets.Add(ItemDatas);
        }
コード例 #25
0
        public override void OnRead(RiftClient From)
        {
            Log.Dump("ClientKey", ClientKey, 0, ClientKey.Length);

            From.InitCrypto(ClientKey);

            HandshakeCompression Cp = new HandshakeCompression();

            Cp.Enabled = true;
            From.SendSerialized(Cp);
            From.EnableSendCompress();


            HandshakeServerKey ServerKey = new HandshakeServerKey();

            ServerKey.Nid       = 420;
            ServerKey.ServerKey = From.LocalPublicKey;
            From.SendSerialized(ServerKey);
        }
コード例 #26
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("CreationCache", "Requesting Creation cache request : " + From.Rm.RpcInfo.Description());

            if (From.Acct == null || From.Rm == null)
                return;

            CacheTemplate[] Tmps = From.Rm.GetObject<WorldMgr>().GetTemplates();
            foreach (CacheTemplate Tmp in Tmps)
                From.SendSerialized(WorldMgr.BuildCache(Tmp.CacheID, Tmp.CacheType, Tmp));

            CacheData[] Dts = From.Rm.GetObject<WorldMgr>().GetDatas();
            foreach (CacheData Tmp in Dts)
                From.SendSerialized(WorldMgr.BuildCache(Tmp.CacheID, Tmp.CacheType, Tmp));

            ISerializablePacket Packet = new ISerializablePacket();
            Packet.Opcode = (long)Opcodes.LobbyCharacterCreationCacheResponse;
            From.SendSerialized(Packet);
        }
コード例 #27
0
        public override void OnRead(RiftClient From)
        {
            Realm Rm = Program.AcctMgr.GetRealm((int)RealmId);

            if (Rm != null)
            {
                From.Rm = Rm;
            }

            if (From.Rm == null)
            {
                Log.Error("WorldSelectRequest", "Realm null : " + From.GetIp);
                From.Disconnect();
                return;
            }

            LobbyWorldSelectResponse Rp = new LobbyWorldSelectResponse();

            From.SendSerialized(Rp);
        }
コード例 #28
0
        public override void OnRead(RiftClient From)
        {
            Realm Rm = CharacterMgr.Instance.GetRealm((int)RealmId);

            if (Rm != null)
            {
                From.Realm = Rm;
            }

            if (From.Realm == null)
            {
                Log.Error("LobbyWorldSelectRequest", "Invalid RealmId=" + RealmId);
                From.Disconnect();
            }
            else
            {
                LobbyWorldSelectResponse Rp = new LobbyWorldSelectResponse();
                From.SendSerialized(Rp);
            }
        }
コード例 #29
0
        public void BuildInventory(RiftClient From, Character Char)
        {
            GUID = 45875261658940;

            // Cache Ref
            this.AddField(4, EPacketFieldType.Raw4Bytes, (int)935832306);
            this.AddField(6, EPacketFieldType.Raw8Bytes, (long)Char.Id);

            // Unk, Equiped ?
            this.AddField(7, EPacketFieldType.Unsigned7BitEncoded, (long)3);

            Packets = new List <ISerializablePacket>();

            ISerializablePacket ItemDatas = new ISerializablePacket();

            ItemDatas.Opcode = 0x026C;

            // Unk Slot ?
            ItemDatas.AddField(1, EPacketFieldType.Unsigned7BitEncoded, (long)2);

            CharacterInfoCache Cache = new CharacterInfoCache();

            Cache.CacheIdentifier = 935832306;

            ISerializablePacket IInventory = new ISerializablePacket();

            IInventory.Opcode = 0x0291;
            Dictionary <long, ISerializablePacket> Inventory = new Dictionary <long, ISerializablePacket>();

            SetItemInBagSlot(ref Inventory, 0, 45875261658941);

            IInventory.AddField(1, EPacketFieldType.Dictionary, Inventory);
            Packets.Add(IInventory);

            ItemDatas.AddField(10, EPacketFieldType.Packet, Cache);

            From.SendCache(7310, 2007607340);
            From.SendCache(623, 935832306);

            Packets.Add(ItemDatas);
        }
コード例 #30
0
        public override void OnRead(RiftClient From)
        {
            Character[] Chars = CharacterMgr.Instance.GetCharacters(From.Acct.Id, From.Realm.RealmId);

            long pGUID = ByteOperations.ByteSwap.Swap(GUID);

            foreach (Character charac in Chars)
            {
                if (charac.Id == pGUID)
                {
                    CharacterMgr.Instance.RemoveObject(charac);
                }
            }

            ISerializablePacket DeleteResult = new ISerializablePacket();

            DeleteResult.Opcode = (long)Opcodes.LobbyCharacterDeleteOk;
            DeleteResult.AddField(0, EPacketFieldType.Unsigned7BitEncoded, (long)0); // Result, 15 Error must wait logout, 0 OK

            From.SendSerialized(DeleteResult);
        }
コード例 #31
0
        public override void OnRead(RiftClient From)
        {
            Log.Debug("LobbyCharacterDelete", "GUID = " + GUID);

            Character Char = CharacterMgr.Instance.GetCharacter((int)GUID);

            if (Char != null && Char.AccountId == From.Acct.Id)
            {
                CharacterMgr.Instance.RemoveObject(Char);

                foreach (Character_Item Itm in CharacterMgr.Instance.GetPlayerItems(Char.Id))
                {
                    CharacterMgr.Instance.RemoveObject(Itm);
                }
            }

            ISerializablePacket DeleteResult = new ISerializablePacket();

            DeleteResult.Opcode = (long)Opcodes.LobbyCharacterDeleteResponse;
            DeleteResult.AddField(0, EPacketFieldType.Unsigned7BitEncoded, (long)0); // Result, 15 Error must wait logout, 0 OK
            From.SendSerialized(DeleteResult);
        }
コード例 #32
0
        public override void OnRead(RiftClient From)
        {
            if (From.Acct == null || From.Rm == null)
                return;

            CharactersMgr Mgr = From.Rm.GetObject<CharactersMgr>();
            if (Mgr.GetCharactersCount(From.Acct.Id) >= 6)
            {
                From.Disconnect();
                return;
            }

            ISerializablePacket Response = new ISerializablePacket();
            Response.Opcode = (int)Opcodes.LobbyCharacterCreateResponse;
            if (Mgr.CharacterExist(Name))
                Response.AddField(0, EPacketFieldType.Unsigned7BitEncoded, (long)CharacterCreateResponses.INVALID_NAME);
            else
            {
                Character Char = new Character();
                Char.AccountId = From.Acct.Id;
                Char.CharacterName = Name;
                Char.Email = From.Acct.Email;

                Char.Info = new CharacterInfo();
                Char.Info.Class = Class;
                Char.Info.CustomPacket = this.CharacterCustom;
                Char.Info.Level = Mgr.StartingLevel;
                Char.Info.Race = Race;
                Char.Info.Sex = Sex;

                long CharacterID = Mgr.AddCharacter(Char);

                Response.AddField(0, EPacketFieldType.Unsigned7BitEncoded, (long)CharacterCreateResponses.CREATE_OK);
                From.JustCreatedCharacter = CharacterID;
            }

            From.SendSerialized(Response);
        }
        public override void OnRead(RiftClient From)
        {
            try
            {
                XmlSerializer         xmls = new XmlSerializer(typeof(ClientAuthCertificate));
                ClientAuthCertificate Cert = xmls.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(Certificate))) as ClientAuthCertificate;

                if (Program.Config.UseCertificate)
                {
                    From.Acct = Program.AcctMgr.GetAccount(Cert.Sessionkey);
                }
                else
                {
                    From.Acct = Program.AcctMgr.GetAccount(Cert.Username, Cert.Hash);
                }
            }
            catch (Exception e)
            {
                From.Disconnect();
            }

            if (From.Acct == null)
            {
                Log.Error("Authentication", "Failled !");
                From.Disconnect();
            }
            else
            {
                HandshakeAuthenticationResponse Rp = new HandshakeAuthenticationResponse();
                Rp.SessionTicket = (long)BitConverter.ToUInt64(Guid.NewGuid().ToByteArray(), 0);

                From.Acct.SessionTicket = Rp.SessionTicket;
                From.Acct.Dirty         = true;
                AccountMgr.AccountDB.SaveObject(From.Acct);

                From.SendSerialized(Rp);
            }
        }
コード例 #34
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("SelectRequest", "Enter on World : " + From.GetIp + ",GUID=" + GUID);

            if (From.Acct == null || From.Rm == null)
            {
                Log.Error("LobbyCharacterSelectRequest", "Acct or Rm == null");
                return;
            }

            Character Char = From.Rm.GetObject <CharactersMgr>().GetCharacter(GUID);

            if (Char == null || Char.AccountId != From.Acct.Id)
            {
                Log.Error("SelectRequest", "Invalid CharacterId = " + GUID);
                From.Disconnect();
                return;
            }


            MapServerInfo Info = From.Rm.GetObject <WorldMgr>().GetMapInfo();

            if (Info == null)
            {
                Log.Error("SelectRequest", "No map loaded ! Run MapServer");
                return;
            }

            Log.Success("SelectRequest", "Entering on Map : " + Info.MapAdress);

            Info.GetObject <MapMgr>().RegisterConnecting(From.Acct.Username, Char.CharacterId);

            LobbyCharacterSelectResponse Rp = new LobbyCharacterSelectResponse();

            Rp.Ips.Add(Info.MapAdress);
            From.SendSerialized(Rp);
        }
コード例 #35
0
ファイル: ISerializablePacket.cs プロジェクト: Easun/RiftEMU
 public virtual void OnRead(RiftClient From)
 {
     Log.Error("OnRead", "Unknown ISerialized packet : " + GetType().Name);
 }
コード例 #36
0
 public override void OnRead(RiftClient From)
 {
     Log.Info("WorldCanConnect", "Connecting...");
     ISerializablePacket Packet = new ISerializablePacket();
     Packet.Opcode = 0x1E9A;
     Packet.AddField(1, EPacketFieldType.True, false);
     From.SendSerialized(Packet);
 }
コード例 #37
0
 public override void OnRead(RiftClient From)
 {
 }
コード例 #38
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("Authentification", "Email = " + Email + " SessionTicket = " + SessionTicket);

            long Char = Program.Maps.GetConnecting(Email);

            if (Char == 0)
            {
                Log.Error("Authentification", "Not authentified email : " + Email);
                From.Disconnect();
                return;
            }

            From.Acct = Program.Accounts.GetAccountByUsername(Email);

            if (From.Acct == null)
            {
                Log.Error("Authentification", "Not valid account :" + Email);
                From.Disconnect();
                return;
            }

            From.Character = Program.Characters.GetCharacter(Char);

            if (From.Acct == null)
            {
                Log.Error("Authentification", "Not valid character :" + Char);
                From.Disconnect();
                return;
            }

            WorldAuthenticationResponse Rp = new WorldAuthenticationResponse();
            Rp.AddField(0, EPacketFieldType.True, (bool)true);
            From.SendSerialized(Rp);

            CacheTemplate[] Tmps = Program.World.GetTemplates();
            foreach (CacheTemplate Tmp in Tmps)
                From.SendSerialized(WorldMgr.BuildCache(Tmp.CacheID, Tmp.CacheType, Tmp));

            CacheData[] Dts = Program.World.GetDatas();
            foreach (CacheData Tmp in Dts)
                From.SendSerialized(WorldMgr.BuildCache(Tmp.CacheID, Tmp.CacheType, Tmp));

            WorldCacheUpdated Updated = new WorldCacheUpdated();
            Updated.GUID = Char;
            From.SendSerialized(Updated);

            /////////////////////////////////////////////////////////////////////
            // Send Inventory
            /////////////////////////////////////////////////////////////////////

            WorldEntityUpdate Update = new WorldEntityUpdate();
            Update.AddField(6, EPacketFieldType.Raw8Bytes, (long)Char);
            From.SendSerialized(Update);

            //////////////////////////////////////////////////////////////////////

            ISerializablePacket Packet1 = new ISerializablePacket();
            Packet1.Opcode = 0x03F6;
            Packet1.AddField(0, EPacketFieldType.Raw4Bytes, new byte[4] { 0x20, 0xB1, 0x59, 0x41 });
            Packet1.AddField(1, EPacketFieldType.ByteArray, new byte[] { 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
                                                                             00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
                                                                             00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 });

            byte[] UnkGuid = new byte[8] { 0xCB, 0x34, 0x3D, 0x94, 0x23, 0x04, 0xCC, 0x01 };
            Packet1.AddField(2, EPacketFieldType.Raw8Bytes, UnkGuid);
            From.SendSerialized(Packet1);

            ISerializablePacket Packet2 = new ISerializablePacket();
            Packet2.Opcode = 0x02E9;
            Packet2.AddField(0, EPacketFieldType.List, new List<long>() { 3605869292 });
            From.SendSerialized(Packet2);

            ISerializablePacket Packet3 = new ISerializablePacket();
            Packet3.Opcode = 0x2D7F;
            From.SendSerialized(Packet3);

            /********************************************/

            WorldZoneInfo ZoneInfo = new WorldZoneInfo();
            ZoneInfo.ZoneFileName = "Mathosia1";
            ZoneInfo.Description = Program.World.GetText(290412351);
            ZoneInfo.DisplayName = Program.World.GetText(1647389394);
            From.SendSerialized(ZoneInfo);

            WorldStartingPosition StartPosition = new WorldStartingPosition();
            StartPosition.MapName = "guardian_map";
            From.SendSerialized(StartPosition);

            WorldPositionExtra ExtraPosition = new WorldPositionExtra();
            ExtraPosition.MapName = "guardian_map";

            ISerializablePacket Extra = new ISerializablePacket();
            Extra.Opcode = (long)Opcodes.WorldStartingPositionExtra;
            Extra.AddField(0, EPacketFieldType.Packet, ExtraPosition);
            From.SendSerialized(Extra);
        }
コード例 #39
0
ファイル: PingPong.cs プロジェクト: vangan123/rift-sunrise
 public override void OnRead(RiftClient From)
 {
     PingPong Pong = new PingPong();
     Pong.Timestamp = (UInt32)Timestamp;
     From.SendSerialized(Pong);
 }
コード例 #40
0
        public override void OnRead(RiftClient From)
        {
            Log.Info("WorldMapLoaded", "Map loaded for : " + From.Character.CharacterName);
            long CharacterId = From.Character.CharacterId;

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID   = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB, 0x04, 0x4F, 0x1F, 0x02, 0x5F, 0x17, 0x07, 0x90, 0x01, 0x07, 0xAE, 0x05, 0x9E, 0x02, 0x00, 0x9F,
                    0x12, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 0x12, 0x24,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
                    0x05, 0xD8, 0x05, 0x07, 0xC1, 0x1E, 0x57, 0xF5, 0x05, 0x07, 0x07
                };
                From.SendSerialized(Update);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1973;
                From.SendSerialized(Packet);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1E7F;
                Packet.AddField(0, EPacketFieldType.False, false);
                Packet.AddField(1, EPacketFieldType.False, false);
                Packet.AddField(2, EPacketFieldType.False, false);

                Packet.AddField(3, EPacketFieldType.List, new List <ISerializablePacket>());

                Packet.AddField(4, EPacketFieldType.Unsigned7BitEncoded, (long)3);
                Packet.AddField(5, EPacketFieldType.Unsigned7BitEncoded, (long)30);

                Packet.AddField(6, EPacketFieldType.False, false);

                Packet.AddField(7, EPacketFieldType.List, new List <long>());
                Packet.AddField(8, EPacketFieldType.List, new List <long>());
                From.SendSerialized(Packet);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName   = "Niveau 1-9";
                Channel.CharacterName = From.Character.CharacterName;
                Channel.Field2        = 5;
                From.SendSerialized(Channel);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName   = "Mathosia";
                Channel.CharacterName = From.Character.CharacterName;
                Channel.Field2        = 2;
                From.SendSerialized(Channel);
            }

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID   = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB, 0x04, 0x4F, 0x1F, 0x02, 0x5F, 0x17, 0x07, 0xE7, 0x02, 0xBB, 0x99, 0x01, 0x4E, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x56, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x58, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x5E, 0xA0, 0x1F, 0x19, 0x07, 0x60, 0xA0, 0x1F, 0x19, 0x07, 0x66, 0xA0, 0x1F, 0x19, 0x07, 0x70, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xEA, 0xBA, 0xC9, 0x65, 0xA0, 0x1F, 0x19, 0x07, 0xAC, 0xBA, 0xEE, 0x78, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xA0, 0x8C, 0x88, 0x9C, 0x01, 0xA0, 0x1F, 0x19, 0x07, 0x90, 0xD6, 0xBA, 0x88, 0x02, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD8, 0xD2, 0x84, 0xAA, 0x02, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x9E, 0x83, 0x90, 0x87, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8C, 0xE7, 0xF5, 0x8E, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x86, 0xDE, 0x9D, 0xE9, 0x03, 0xA0, 0x1F, 0x19, 0x07, 0xF6, 0xD4, 0xCE, 0xF4, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE2, 0xA8, 0xF2, 0x8A, 0x04, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD2, 0x92, 0xCB, 0xB3, 0x05, 0xA0, 0x1F, 0x19, 0x07, 0xE0, 0xFD, 0xF3, 0x92, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE6, 0xB7, 0xF4, 0x94, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xAE, 0xBA, 0xFD, 0xC6, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xB6, 0xA5, 0xF2, 0x8C, 0x07, 0xA0, 0x1F, 0x19, 0x07, 0xC2, 0xE4, 0xA7, 0x9A, 0x07, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xDE, 0x9A, 0xE4, 0xCA, 0x07, 0xA0, 0x1F, 0x19, 0x07, 0xEC, 0xF9, 0xF1, 0xDF, 0x07, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xA4, 0xDE, 0xC0, 0xB1, 0x08, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE8, 0xCE, 0xFA, 0x81, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x94, 0xB1, 0xA8, 0xBB, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8A, 0x95, 0x8E, 0xC8, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD8, 0xF7, 0xF3, 0xFD, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xFA, 0xF1, 0xE0, 0xBA, 0x0A, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xCE, 0xDA, 0xE7, 0xEE, 0x0B, 0xA0, 0x1F, 0x19, 0x07, 0xF6, 0xA2, 0x94, 0xC1, 0x0C, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE2, 0xD0, 0xE6, 0xD0, 0x0C, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x88, 0xFD, 0xC2, 0xD6, 0x0D, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8C, 0xA8, 0xAA, 0xF8, 0x0D, 0xA0, 0x1F, 0x19, 0x07, 0x88, 0xBF, 0x82, 0xFE, 0x0E, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xBA, 0xC4, 0xB6, 0x90, 0x0F, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE7, 0x03, 0xBB, 0x05, 0x0A, 0xAF, 0x02, 0x01, 0x07, 0x90, 0x01, 0x07, 0x94, 0x05, 0xE7, 0x05, 0xBB, 0x21, 0x02, 0xBF, 0x1B, 0x24, 0xDF, 0x92, 0xC3, 0x45, 0x2C, 0xC8, 0x23, 0xCF, 0x7D, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x9B, 0xEC, 0x3E, 0x73, 0x07, 0x07, 0x04, 0xBF, 0x1B, 0x24, 0xEB, 0x36, 0xDE, 0x44, 0x2C, 0x33, 0x45, 0x7A, 0x77, 0x32, 0x15, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x5F, 0x2D, 0x02, 0x4F, 0x07, 0x07, 0x0A, 0xBF, 0x1B, 0x24, 0x87, 0xD4, 0x3F, 0x5B, 0x3A, 0x02, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x1E, 0x3B, 0xD5, 0x2D, 0x07, 0x07, 0x0E, 0xBF, 0x1B, 0x24, 0x62, 0x00, 0xDB, 0x11, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x7F, 0xC2, 0xC0, 0x7C, 0x07, 0x07, 0x10, 0xBF, 0x1B, 0x24, 0x9A, 0x41, 0xDC, 0x01, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x5E, 0x8B, 0x6F, 0x26, 0x07, 0x07, 0x12, 0xBF, 0x1B, 0x24, 0x9E, 0xFC, 0x62, 0x77, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0xB7, 0x94, 0xB3, 0x29, 0x07, 0x07, 0x16, 0xBF, 0x1B, 0x24, 0x48, 0xF1, 0xD4, 0x0D, 0x32, 0x14, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x8A, 0x09, 0x42, 0x17, 0x07, 0x07, 0x2E, 0xBF, 0x1B, 0x24, 0xE6, 0x82, 0x84, 0x33, 0x3C, 0xB3, 0xCD, 0x6F, 0x6A, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x53, 0x58, 0x26, 0x30, 0x07, 0x07, 0x9F, 0x06, 0x57, 0xA9, 0x0E, 0x02, 0x03, 0x2A, 0xE8, 0x07, 0x41, 0x07, 0xDF, 0x06, 0x57, 0x94, 0x0E, 0x07, 0xD7, 0x07, 0xC2, 0x05, 0x12, 0x05, 0xDF, 0x05, 0x93, 0x07, 0x06, 0xC6, 0x01, 0x14, 0x14, 0x1A, 0x14, 0x12, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x02, 0x16, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xCC, 0x0B, 0xD0, 0x0F, 0xC8, 0x01, 0x14, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x06, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0xD0, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0xDF, 0x06, 0x93, 0x07, 0x06, 0xC6, 0x01, 0x14, 0x14, 0x1A, 0x14, 0x12, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x02, 0x16, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xCC, 0x0B, 0xD0, 0x0F, 0xC8, 0x01, 0x14, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x06, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0xD0, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x07, 0xDA, 0x01, 0x0F, 0xE4, 0x01, 0x82, 0x86, 0x19, 0x66, 0x07, 0xAE, 0x05, 0x97, 0x04, 0xF4, 0x05, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x07, 0x9F, 0x1E, 0x97, 0x02, 0xB6, 0x0E, 0x01, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0x07, 0xC1, 0x1E, 0x57, 0xF5, 0x05, 0x0F, 0x1F, 0x0A, 0x01, 0x5F, 0x0B, 0x84, 0x9A, 0xCC, 0xE1, 0x0C, 0x07, 0x4F, 0x1F, 0x0A, 0x01, 0x5F, 0x0B, 0x1E, 0x07, 0x07, 0x9F, 0x07, 0x2B, 0x06, 0x08, 0x18, 0x04, 0x02, 0x07
                };
                From.SendSerialized(Update);
            }

            // Character Information
            {
                PacketInStream    Entity = new PacketInStream(Program.BuildPlayer, Program.BuildPlayer.Length);
                WorldEntityUpdate Update = PacketProcessor.ReadPacket(ref Entity) as WorldEntityUpdate;
                if (Update.Build(From.Character))
                {
                    From.SendSerialized(Update);
                }
            }

            WorldServerMOTD Motd = new WorldServerMOTD();

            Motd.Text = "Welcome to APS-Rift";
            From.SendSerialized(Motd);
        }
コード例 #41
0
ファイル: WorldMapLoaded.cs プロジェクト: dsstest/SiennaCore
        public override void OnRead(RiftClient From)
        {
            long CharacterId = From.Char.Id;

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID   = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB, 0x04, 0x4F, 0x1F, 0x02, 0x5F, 0x17, 0x07, 0x90, 0x01, 0x07, 0xAE, 0x05, 0x9E, 0x02, 0x00, 0x9F,
                    0x12, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDF, 0x12, 0x24,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD0,
                    0x05, 0xD8, 0x05, 0x07, 0xC1, 0x1E, 0x57, 0xF5, 0x05, 0x07, 0x07
                };
                From.SendSerialized(Update);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1973;
                From.SendSerialized(Packet);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1E7F;
                Packet.AddField(0, EPacketFieldType.False, false);
                Packet.AddField(1, EPacketFieldType.False, false);
                Packet.AddField(2, EPacketFieldType.False, false);

                Packet.AddField(3, EPacketFieldType.List, new List <ISerializablePacket>());

                Packet.AddField(4, EPacketFieldType.Unsigned7BitEncoded, (long)3);
                Packet.AddField(5, EPacketFieldType.Unsigned7BitEncoded, (long)30);

                Packet.AddField(6, EPacketFieldType.False, false);

                Packet.AddField(7, EPacketFieldType.List, new List <long>());
                Packet.AddField(8, EPacketFieldType.List, new List <long>());
                From.SendSerialized(Packet);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName   = "Niveau 1-9";
                Channel.CharacterName = From.Char.Name;
                Channel.Field2        = 5;
                From.SendSerialized(Channel);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName   = "Mathosia";
                Channel.CharacterName = From.Char.Name;
                Channel.Field2        = 2;
                From.SendSerialized(Channel);
            }

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID   = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB, 0x04, 0x4F, 0x1F, 0x02, 0x5F, 0x17, 0x07, 0xE7, 0x02, 0xBB, 0x99, 0x01, 0x4E, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x56, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x58, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x5E, 0xA0, 0x1F, 0x19, 0x07, 0x60, 0xA0, 0x1F, 0x19, 0x07, 0x66, 0xA0, 0x1F, 0x19, 0x07, 0x70, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xEA, 0xBA, 0xC9, 0x65, 0xA0, 0x1F, 0x19, 0x07, 0xAC, 0xBA, 0xEE, 0x78, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xA0, 0x8C, 0x88, 0x9C, 0x01, 0xA0, 0x1F, 0x19, 0x07, 0x90, 0xD6, 0xBA, 0x88, 0x02, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD8, 0xD2, 0x84, 0xAA, 0x02, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x9E, 0x83, 0x90, 0x87, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8C, 0xE7, 0xF5, 0x8E, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x86, 0xDE, 0x9D, 0xE9, 0x03, 0xA0, 0x1F, 0x19, 0x07, 0xF6, 0xD4, 0xCE, 0xF4, 0x03, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE2, 0xA8, 0xF2, 0x8A, 0x04, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD2, 0x92, 0xCB, 0xB3, 0x05, 0xA0, 0x1F, 0x19, 0x07, 0xE0, 0xFD, 0xF3, 0x92, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE6, 0xB7, 0xF4, 0x94, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xAE, 0xBA, 0xFD, 0xC6, 0x06, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xB6, 0xA5, 0xF2, 0x8C, 0x07, 0xA0, 0x1F, 0x19, 0x07, 0xC2, 0xE4, 0xA7, 0x9A, 0x07, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xDE, 0x9A, 0xE4, 0xCA, 0x07, 0xA0, 0x1F, 0x19, 0x07, 0xEC, 0xF9, 0xF1, 0xDF, 0x07, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xA4, 0xDE, 0xC0, 0xB1, 0x08, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE8, 0xCE, 0xFA, 0x81, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x94, 0xB1, 0xA8, 0xBB, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8A, 0x95, 0x8E, 0xC8, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xD8, 0xF7, 0xF3, 0xFD, 0x09, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xFA, 0xF1, 0xE0, 0xBA, 0x0A, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xCE, 0xDA, 0xE7, 0xEE, 0x0B, 0xA0, 0x1F, 0x19, 0x07, 0xF6, 0xA2, 0x94, 0xC1, 0x0C, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE2, 0xD0, 0xE6, 0xD0, 0x0C, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x88, 0xFD, 0xC2, 0xD6, 0x0D, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0x8C, 0xA8, 0xAA, 0xF8, 0x0D, 0xA0, 0x1F, 0x19, 0x07, 0x88, 0xBF, 0x82, 0xFE, 0x0E, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xBA, 0xC4, 0xB6, 0x90, 0x0F, 0xA0, 0x1F, 0x1A, 0x02, 0x07, 0xE7, 0x03, 0xBB, 0x05, 0x0A, 0xAF, 0x02, 0x01, 0x07, 0x90, 0x01, 0x07, 0x94, 0x05, 0xE7, 0x05, 0xBB, 0x21, 0x02, 0xBF, 0x1B, 0x24, 0xDF, 0x92, 0xC3, 0x45, 0x2C, 0xC8, 0x23, 0xCF, 0x7D, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x9B, 0xEC, 0x3E, 0x73, 0x07, 0x07, 0x04, 0xBF, 0x1B, 0x24, 0xEB, 0x36, 0xDE, 0x44, 0x2C, 0x33, 0x45, 0x7A, 0x77, 0x32, 0x15, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x5F, 0x2D, 0x02, 0x4F, 0x07, 0x07, 0x0A, 0xBF, 0x1B, 0x24, 0x87, 0xD4, 0x3F, 0x5B, 0x3A, 0x02, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x1E, 0x3B, 0xD5, 0x2D, 0x07, 0x07, 0x0E, 0xBF, 0x1B, 0x24, 0x62, 0x00, 0xDB, 0x11, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x7F, 0xC2, 0xC0, 0x7C, 0x07, 0x07, 0x10, 0xBF, 0x1B, 0x24, 0x9A, 0x41, 0xDC, 0x01, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x5E, 0x8B, 0x6F, 0x26, 0x07, 0x07, 0x12, 0xBF, 0x1B, 0x24, 0x9E, 0xFC, 0x62, 0x77, 0x3C, 0x82, 0x9B, 0xBB, 0x22, 0x97, 0x04, 0x90, 0x1C, 0x04, 0xB7, 0x94, 0xB3, 0x29, 0x07, 0x07, 0x16, 0xBF, 0x1B, 0x24, 0x48, 0xF1, 0xD4, 0x0D, 0x32, 0x14, 0x3C, 0x6F, 0x69, 0x28, 0x59, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x8A, 0x09, 0x42, 0x17, 0x07, 0x07, 0x2E, 0xBF, 0x1B, 0x24, 0xE6, 0x82, 0x84, 0x33, 0x3C, 0xB3, 0xCD, 0x6F, 0x6A, 0x97, 0x04, 0x90, 0x1C, 0x04, 0x53, 0x58, 0x26, 0x30, 0x07, 0x07, 0x9F, 0x06, 0x57, 0xA9, 0x0E, 0x02, 0x03, 0x2A, 0xE8, 0x07, 0x41, 0x07, 0xDF, 0x06, 0x57, 0x94, 0x0E, 0x07, 0xD7, 0x07, 0xC2, 0x05, 0x12, 0x05, 0xDF, 0x05, 0x93, 0x07, 0x06, 0xC6, 0x01, 0x14, 0x14, 0x1A, 0x14, 0x12, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x02, 0x16, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xCC, 0x0B, 0xD0, 0x0F, 0xC8, 0x01, 0x14, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x06, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0xD0, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0xDF, 0x06, 0x93, 0x07, 0x06, 0xC6, 0x01, 0x14, 0x14, 0x1A, 0x14, 0x12, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x02, 0x16, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xCC, 0x0B, 0xD0, 0x0F, 0xC8, 0x01, 0x14, 0x04, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x06, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0xD0, 0x0F, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB4, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8, 0x01, 0x00, 0x00, 0x00, 0x07, 0xDA, 0x01, 0x0F, 0xE4, 0x01, 0x82, 0x86, 0x19, 0x66, 0x07, 0xAE, 0x05, 0x97, 0x04, 0xF4, 0x05, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x07, 0x9F, 0x1E, 0x97, 0x02, 0xB6, 0x0E, 0x01, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0xB6, 0x0E, 0xDF, 0x01, 0xD7, 0x01, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x90, 0x1C, 0x07, 0x07, 0x07, 0xC1, 0x1E, 0x57, 0xF5, 0x05, 0x0F, 0x1F, 0x0A, 0x01, 0x5F, 0x0B, 0x84, 0x9A, 0xCC, 0xE1, 0x0C, 0x07, 0x4F, 0x1F, 0x0A, 0x01, 0x5F, 0x0B, 0x1E, 0x07, 0x07, 0x9F, 0x07, 0x2B, 0x06, 0x08, 0x18, 0x04, 0x02, 0x07
                };
                From.SendSerialized(Update);
            }

            {
                byte[]            data   = CharacterMgr.Instance.GetBuild(1);
                PacketInStream    ps     = new PacketInStream(data, data.Length);
                WorldEntityUpdate EntPck = (WorldEntityUpdate)PacketProcessor.ReadPacket(ref ps); //new WorldEntityUpdate();
                EntPck.BuildChar(From.Char);
                From.SendSerialized(EntPck);
            }

            WorldServerMOTD Motd = new WorldServerMOTD();

            Motd.Text = ConfigMgr.GetConfig <WorldConfig>().ServerMOTD;
            From.SendSerialized(Motd);
        }
コード例 #42
0
 public override void OnRead(RiftClient From)
 {
     Log.Success("HanshakeCompression", "Client Compression : " + Enabled);
     From.EnableReceiveCompress();
 }
コード例 #43
0
        public override void OnRead(RiftClient From)
        {
            if (Message.StartsWith(".teleport"))
            {
                string   CmdArgs = Message.Substring(10);
                string[] pos     = CmdArgs.Split(new char[] { ' ' });

                WorldServerPositionUpdate WPos = new WorldServerPositionUpdate();

                WPos.GUID = From.Char.Id;

                WPos.Position = new List <float>();
                WPos.Position.Add(float.Parse(pos[0]));
                WPos.Position.Add(float.Parse(pos[1]));
                WPos.Position.Add(float.Parse(pos[2]));

                WPos.Orientation = new List <float>();
                WPos.Orientation.Add(0.0f);
                WPos.Orientation.Add(0.0f);
                WPos.Orientation.Add(0.0f);

                if (long.Parse(pos[3]) != CurrentMapId)
                {
                    WorldTeleport WorldPort = WorldTeleport.FromPorticulum(long.Parse(pos[3]), 1, 0, "tm_Sanctum_SanctumOfTheVigil");
                    From.SendSerialized(WorldPort);

                    WorldZoneInfo ZoneInfo = CacheMgr.Instance.GetZoneInfoCache("Capital1");
                    From.SendSerialized(ZoneInfo);

                    WorldStartingPosition StartPos = new WorldStartingPosition();
                    StartPos.MapName  = "world";
                    StartPos.Position = new List <float>(WPos.Position.ToArray());

                    From.SendSerialized(StartPos);

                    ISerializablePacket PacketContainer = new ISerializablePacket();
                    WorldPositionExtra  StartPos2       = new WorldPositionExtra();
                    StartPos2.MapName   = "world";
                    StartPos2.MapId     = 2;
                    StartPos2.Position  = new List <float>(WPos.Position.ToArray());
                    StartPos2.Position2 = new List <float>(WPos.Position.ToArray());

                    PacketContainer.Opcode = (long)Opcodes.WorldStartingPositionExtra;
                    PacketContainer.AddField(0, EPacketFieldType.Packet, StartPos2);

                    From.SendSerialized(PacketContainer);

                    CurrentMapId = long.Parse(pos[3]);

                    List <Cache_Info> CacheData = CacheMgr.Instance.GetBinCache(11319, false);

                    foreach (Cache_Info ci in CacheData)
                    {
                        From.SendCache(ci.Type, (uint)ci.CacheId);
                    }

                    //From.SendSerialized(WPos);
                }
                else
                {
                    From.SendSerialized(WPos);
                }
            }
            else
            {
                PlayerName = "Magetest";
                Unk1       = 2551;
                Unk2       = 2551;
                From.SendSerialized(this);
            }
        }
コード例 #44
0
        public override void OnRead(RiftClient From)
        {
            Log.Success("HanshakeVersion", "Version = " + Version);

            From.ClientVersion = Version;
        }
コード例 #45
0
ファイル: WorldMapLoaded.cs プロジェクト: Easun/RiftEMU
        public override void OnRead(RiftClient From)
        {
            Log.Info("WorldMapLoaded", "Map loaded for : " + From.Character.CharacterName);
            long CharacterId = From.Character.CharacterId;

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB,0x04,0x4F,0x1F,0x02,0x5F,0x17,0x07,0x90,0x01,0x07,0xAE,0x05,0x9E,0x02,0x00,0x9F,
                    0x12,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDF,0x12,0x24,
                    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD0,
                    0x05,0xD8,0x05,0x07,0xC1,0x1E,0x57,0xF5,0x05,0x07,0x07
                };
                From.SendSerialized(Update);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1973;
                From.SendSerialized(Packet);
            }

            {
                ISerializablePacket Packet = new ISerializablePacket();
                Packet.Opcode = 0x1E7F;
                Packet.AddField(0, EPacketFieldType.False, false);
                Packet.AddField(1, EPacketFieldType.False, false);
                Packet.AddField(2, EPacketFieldType.False, false);

                Packet.AddField(3, EPacketFieldType.List, new List<ISerializablePacket>());

                Packet.AddField(4, EPacketFieldType.Unsigned7BitEncoded, (long)3);
                Packet.AddField(5, EPacketFieldType.Unsigned7BitEncoded, (long)30);

                Packet.AddField(6, EPacketFieldType.False, false);

                Packet.AddField(7, EPacketFieldType.List, new List<long>());
                Packet.AddField(8, EPacketFieldType.List, new List<long>());
                From.SendSerialized(Packet);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName = "Niveau 1-9";
                Channel.CharacterName = From.Character.CharacterName;
                Channel.Field2 = 5;
                From.SendSerialized(Channel);
            }

            {
                WorldChannelJoinned Channel = new WorldChannelJoinned();
                Channel.ChannelName = "Mathosia";
                Channel.CharacterName = From.Character.CharacterName;
                Channel.Field2 = 2;
                From.SendSerialized(Channel);
            }

            {
                WorldTemplateUpdate Update = new WorldTemplateUpdate();
                Update.GUID = CharacterId;
                Update.Field1 = new byte[]
                {
                    0xEB,0x04,0x4F,0x1F,0x02,0x5F,0x17,0x07,0xE7,0x02,0xBB,0x99,0x01,0x4E,0xA0,0x1F,0x1A,0x02,0x07,0x56,0xA0,0x1F,0x1A,0x02,0x07,0x58,0xA0,0x1F,0x1A,0x02,0x07,0x5E,0xA0,0x1F,0x19,0x07,0x60,0xA0,0x1F,0x19,0x07,0x66,0xA0,0x1F,0x19,0x07,0x70,0xA0,0x1F,0x1A,0x02,0x07,0xEA,0xBA,0xC9,0x65,0xA0,0x1F,0x19,0x07,0xAC,0xBA,0xEE,0x78,0xA0,0x1F,0x1A,0x02,0x07,0xA0,0x8C,0x88,0x9C,0x01,0xA0,0x1F,0x19,0x07,0x90,0xD6,0xBA,0x88,0x02,0xA0,0x1F,0x1A,0x02,0x07,0xD8,0xD2,0x84,0xAA,0x02,0xA0,0x1F,0x1A,0x02,0x07,0x9E,0x83,0x90,0x87,0x03,0xA0,0x1F,0x1A,0x02,0x07,0x8C,0xE7,0xF5,0x8E,0x03,0xA0,0x1F,0x1A,0x02,0x07,0x86,0xDE,0x9D,0xE9,0x03,0xA0,0x1F,0x19,0x07,0xF6,0xD4,0xCE,0xF4,0x03,0xA0,0x1F,0x1A,0x02,0x07,0xE2,0xA8,0xF2,0x8A,0x04,0xA0,0x1F,0x1A,0x02,0x07,0xD2,0x92,0xCB,0xB3,0x05,0xA0,0x1F,0x19,0x07,0xE0,0xFD,0xF3,0x92,0x06,0xA0,0x1F,0x1A,0x02,0x07,0xE6,0xB7,0xF4,0x94,0x06,0xA0,0x1F,0x1A,0x02,0x07,0xAE,0xBA,0xFD,0xC6,0x06,0xA0,0x1F,0x1A,0x02,0x07,0xB6,0xA5,0xF2,0x8C,0x07,0xA0,0x1F,0x19,0x07,0xC2,0xE4,0xA7,0x9A,0x07,0xA0,0x1F,0x1A,0x02,0x07,0xDE,0x9A,0xE4,0xCA,0x07,0xA0,0x1F,0x19,0x07,0xEC,0xF9,0xF1,0xDF,0x07,0xA0,0x1F,0x1A,0x02,0x07,0xA4,0xDE,0xC0,0xB1,0x08,0xA0,0x1F,0x1A,0x02,0x07,0xE8,0xCE,0xFA,0x81,0x09,0xA0,0x1F,0x1A,0x02,0x07,0x94,0xB1,0xA8,0xBB,0x09,0xA0,0x1F,0x1A,0x02,0x07,0x8A,0x95,0x8E,0xC8,0x09,0xA0,0x1F,0x1A,0x02,0x07,0xD8,0xF7,0xF3,0xFD,0x09,0xA0,0x1F,0x1A,0x02,0x07,0xFA,0xF1,0xE0,0xBA,0x0A,0xA0,0x1F,0x1A,0x02,0x07,0xCE,0xDA,0xE7,0xEE,0x0B,0xA0,0x1F,0x19,0x07,0xF6,0xA2,0x94,0xC1,0x0C,0xA0,0x1F,0x1A,0x02,0x07,0xE2,0xD0,0xE6,0xD0,0x0C,0xA0,0x1F,0x1A,0x02,0x07,0x88,0xFD,0xC2,0xD6,0x0D,0xA0,0x1F,0x1A,0x02,0x07,0x8C,0xA8,0xAA,0xF8,0x0D,0xA0,0x1F,0x19,0x07,0x88,0xBF,0x82,0xFE,0x0E,0xA0,0x1F,0x1A,0x02,0x07,0xBA,0xC4,0xB6,0x90,0x0F,0xA0,0x1F,0x1A,0x02,0x07,0xE7,0x03,0xBB,0x05,0x0A,0xAF,0x02,0x01,0x07,0x90,0x01,0x07,0x94,0x05,0xE7,0x05,0xBB,0x21,0x02,0xBF,0x1B,0x24,0xDF,0x92,0xC3,0x45,0x2C,0xC8,0x23,0xCF,0x7D,0x3C,0x82,0x9B,0xBB,0x22,0x97,0x04,0x90,0x1C,0x04,0x9B,0xEC,0x3E,0x73,0x07,0x07,0x04,0xBF,0x1B,0x24,0xEB,0x36,0xDE,0x44,0x2C,0x33,0x45,0x7A,0x77,0x32,0x15,0x3C,0x82,0x9B,0xBB,0x22,0x97,0x04,0x90,0x1C,0x04,0x5F,0x2D,0x02,0x4F,0x07,0x07,0x0A,0xBF,0x1B,0x24,0x87,0xD4,0x3F,0x5B,0x3A,0x02,0x97,0x04,0x90,0x1C,0x04,0x1E,0x3B,0xD5,0x2D,0x07,0x07,0x0E,0xBF,0x1B,0x24,0x62,0x00,0xDB,0x11,0x3C,0x6F,0x69,0x28,0x59,0x97,0x04,0x90,0x1C,0x04,0x7F,0xC2,0xC0,0x7C,0x07,0x07,0x10,0xBF,0x1B,0x24,0x9A,0x41,0xDC,0x01,0x3C,0x6F,0x69,0x28,0x59,0x97,0x04,0x90,0x1C,0x04,0x5E,0x8B,0x6F,0x26,0x07,0x07,0x12,0xBF,0x1B,0x24,0x9E,0xFC,0x62,0x77,0x3C,0x82,0x9B,0xBB,0x22,0x97,0x04,0x90,0x1C,0x04,0xB7,0x94,0xB3,0x29,0x07,0x07,0x16,0xBF,0x1B,0x24,0x48,0xF1,0xD4,0x0D,0x32,0x14,0x3C,0x6F,0x69,0x28,0x59,0x97,0x04,0x90,0x1C,0x04,0x8A,0x09,0x42,0x17,0x07,0x07,0x2E,0xBF,0x1B,0x24,0xE6,0x82,0x84,0x33,0x3C,0xB3,0xCD,0x6F,0x6A,0x97,0x04,0x90,0x1C,0x04,0x53,0x58,0x26,0x30,0x07,0x07,0x9F,0x06,0x57,0xA9,0x0E,0x02,0x03,0x2A,0xE8,0x07,0x41,0x07,0xDF,0x06,0x57,0x94,0x0E,0x07,0xD7,0x07,0xC2,0x05,0x12,0x05,0xDF,0x05,0x93,0x07,0x06,0xC6,0x01,0x14,0x14,0x1A,0x14,0x12,0x00,0x14,0x14,0x14,0x14,0x14,0x02,0x16,0x1A,0x00,0x00,0x00,0x00,0x8C,0x02,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xCC,0x0B,0xD0,0x0F,0xC8,0x01,0x14,0x04,0x00,0x00,0x14,0x00,0x00,0x00,0xC8,0x01,0xC8,0x01,0x00,0x00,0x06,0x00,0xC8,0x01,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0x14,0x00,0x14,0x00,0x00,0xD0,0x0F,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB4,0x01,0x00,0x00,0x00,0xC8,0x01,0xC8,0x01,0xC8,0x01,0xC8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0xDF,0x06,0x93,0x07,0x06,0xC6,0x01,0x14,0x14,0x1A,0x14,0x12,0x00,0x14,0x14,0x14,0x14,0x14,0x02,0x16,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xCC,0x0B,0xD0,0x0F,0xC8,0x01,0x14,0x04,0x00,0x00,0x14,0x00,0x00,0x00,0xC8,0x01,0xC8,0x01,0x00,0x00,0x06,0x00,0xC8,0x01,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0x14,0x00,0x14,0x00,0x00,0xD0,0x0F,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB4,0x01,0x00,0x00,0x00,0xC8,0x01,0xC8,0x01,0xC8,0x01,0xC8,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x01,0x00,0x00,0x00,0x07,0xDA,0x01,0x0F,0xE4,0x01,0x82,0x86,0x19,0x66,0x07,0xAE,0x05,0x97,0x04,0xF4,0x05,0x0C,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x07,0x9F,0x1E,0x97,0x02,0xB6,0x0E,0x01,0xDF,0x01,0xD7,0x01,0x90,0x1C,0x07,0x90,0x1C,0x07,0x90,0x1C,0x07,0x07,0xB6,0x0E,0xDF,0x01,0xD7,0x01,0x90,0x1C,0x07,0x90,0x1C,0x07,0x90,0x1C,0x07,0x07,0xB6,0x0E,0xDF,0x01,0xD7,0x01,0x90,0x1C,0x07,0x90,0x1C,0x07,0x90,0x1C,0x07,0x07,0xB6,0x0E,0xDF,0x01,0xD7,0x01,0x90,0x1C,0x07,0x90,0x1C,0x07,0x90,0x1C,0x07,0x07,0x07,0xC1,0x1E,0x57,0xF5,0x05,0x0F,0x1F,0x0A,0x01,0x5F,0x0B,0x84,0x9A,0xCC,0xE1,0x0C,0x07,0x4F,0x1F,0x0A,0x01,0x5F,0x0B,0x1E,0x07,0x07,0x9F,0x07,0x2B,0x06,0x08,0x18,0x04,0x02,0x07
                };
                From.SendSerialized(Update);
            }

            // Character Information
            {
                PacketInStream Entity = new PacketInStream(Program.BuildPlayer, Program.BuildPlayer.Length);
                WorldEntityUpdate Update = PacketProcessor.ReadPacket(ref Entity) as WorldEntityUpdate;
                if(Update.Build(From.Character))
                    From.SendSerialized(Update);
            }

            WorldServerMOTD Motd = new WorldServerMOTD();
            Motd.Text = "Welcome to Strawberry-Pr0jcts RiftEMU for patch 1.2";
            From.SendSerialized(Motd);
        }
コード例 #46
0
 public override void OnRead(RiftClient From)
 {
 }
コード例 #47
0
 public override void OnRead(RiftClient From)
 {
     Log.Success("HanshakeCompression", "Client Compression : " + Enabled);
     From.EnableReceiveCompress();
 }
コード例 #48
0
ファイル: HandshakeVersion.cs プロジェクト: Easun/RiftEMU
        public override void OnRead(RiftClient From)
        {
            Log.Success("HanshakeVersion", "Version = " + Version);

            From.ClientVersion = Version;
        }