Exemplo n.º 1
0
 public override void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(32, Field2);
     Field3.Encode(buffer);
     Field4.Encode(buffer);
     buffer.WriteFloat32(Field5);
     buffer.WriteFloat32(Field6);
     buffer.WriteInt(32, Field7);
     Field8.Encode(buffer);
     buffer.WriteCharArray(128, Field9);
 }
Exemplo n.º 2
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, snoWorld);
     buffer.WriteInt(32, Field1);
 }
Exemplo n.º 3
0
 public override void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     buffer.WriteInt(32, Field1);
 }
Exemplo n.º 4
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Power);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(4, Field2);
 }
Exemplo n.º 5
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     for (int i = 0; i < m_snoLoreLearned.Length; i++) buffer.WriteInt(32, m_snoLoreLearned[i]);
 }
Exemplo n.º 6
0
 public void Encode(GameBitBuffer buffer)
 {
     for (int i = 0; i < Field0.Length; i++) { Field0[i].Encode(buffer); }
     for (int i = 0; i < Field1.Length; i++) { Field1[i].Encode(buffer); }
     buffer.WriteInt(32, Field2);
     buffer.WriteInt(32, Field3);
     Field4.Encode(buffer);
     buffer.WriteInt(32, Field5);
     Field6.Encode(buffer);
     for (int i = 0; i < snoActiveSkills.Length; i++) buffer.WriteInt(32, snoActiveSkills[i]);
     for (int i = 0; i < snoTraits.Length; i++) buffer.WriteInt(32, snoTraits[i]);
     Field9.Encode(buffer);
     for (int i = 0; i < m_SeenTutorials.Length; i++) buffer.WriteInt(32, m_SeenTutorials[i]);
 }
Exemplo n.º 7
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(32, Field2);
     Field3.Encode(buffer);
     Field4.Encode(buffer);
     for (int i = 0; i < Field5.Length; i++) buffer.WriteInt(32, Field5[i]);
     buffer.WriteInt(32, Field6);
 }
Exemplo n.º 8
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteBool(Field0.HasValue);
     if (Field0.HasValue)
     {
         buffer.WriteInt(20, Field0.Value);
     }
     buffer.WriteInt(10, Attribute.Id);
 }
Exemplo n.º 9
0
 public void EncodeValue(GameBitBuffer buffer)
 {
     switch (Attribute.EncodingType)
     {
         case GameAttributeEncoding.Int:
             buffer.WriteInt(Attribute.BitCount, Int);
             break;
         case GameAttributeEncoding.IntMinMax:
             buffer.WriteInt(Attribute.BitCount, Int - Attribute.Min);
             break;
         case GameAttributeEncoding.Float16:
             buffer.WriteFloat16(Float);
             break;
         case GameAttributeEncoding.Float16Or32:
             if (Float >= 65536.0f || -65536.0f >= Float)
             {
                 buffer.WriteBool(false);
                 buffer.WriteFloat32(Float);
             }
             else
             {
                 buffer.WriteBool(true);
                 buffer.WriteFloat16(Float);
             }
             break;
         default:
             throw new Exception("bad voodoo");
     }
 }
Exemplo n.º 10
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(6, Field0 - (-2));
     buffer.WriteInt(32, Field1);
 }
Exemplo n.º 11
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteBool(Field0);
     buffer.WriteInt(32, snoAffixStringList);
     buffer.WriteInt(32, Field2);
     buffer.WriteInt(32, Field3);
 }
Exemplo n.º 12
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     buffer.WriteInt(5, Field1 - (-1));
     Field2.Encode(buffer);
 }
Exemplo n.º 13
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     Field1.Encode(buffer);
     for (int i = 0; i < arSnoLevelAreas.Length; i++) buffer.WriteInt(32, arSnoLevelAreas[i]);
     buffer.WriteInt(32, snoPrevWorld);
     buffer.WriteInt(32, Field4);
     buffer.WriteInt(32, snoPrevLevelArea);
     buffer.WriteInt(32, snoNextWorld);
     buffer.WriteInt(32, Field7);
     buffer.WriteInt(32, snoNextLevelArea);
     buffer.WriteInt(32, snoMusic);
     buffer.WriteInt(32, snoCombatMusic);
     buffer.WriteInt(32, snoAmbient);
     buffer.WriteInt(32, snoReverb);
     buffer.WriteInt(32, snoWeather);
     buffer.WriteInt(32, snoPresetWorld);
     buffer.WriteInt(32, Field15);
     buffer.WriteInt(32, Field16);
     buffer.WriteInt(32, Field17);
     buffer.WriteInt(32, Field18);
     tCachedValues.Encode(buffer);
 }
Exemplo n.º 14
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(32, Field2);
     buffer.WriteInt(29, Field3);
     Field4.Encode(buffer);
     buffer.WriteInt(32, Field5);
     buffer.WriteInt(7, tQuestRewardHistory.Length);
     for (int i = 0; i < tQuestRewardHistory.Length; i++) { tQuestRewardHistory[i].Encode(buffer); }
 }
Exemplo n.º 15
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, snoTimedEvent);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(32, Field2);
 }
Exemplo n.º 16
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(32, Field2);
     buffer.WriteFloat32(Field3);
 }
Exemplo n.º 17
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(8, Field0);
     buffer.WriteInt(8, Field1);
     buffer.WriteInt(8, Field2);
     buffer.WriteInt(8, Field3);
 }
Exemplo n.º 18
0
 public void Encode(GameBitBuffer buffer)
 {
     Field0.Encode(buffer);
     buffer.WriteInt(32, Field1);
 }
Exemplo n.º 19
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, snoQuest);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(2, (int)Field2);
 }
Exemplo n.º 20
0
 public override void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, SNOPackHash);
     buffer.WriteInt(32, ProtocolHash);
     buffer.WriteCharArray(32, Version);
 }
Exemplo n.º 21
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     buffer.WriteInt(5, Field1);
     buffer.WriteInt(4, Field2);
     buffer.WriteInt(5, Field3 - (-1));
 }
Exemplo n.º 22
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteBool(Field0);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(32, Field2);
     buffer.WriteInt(32, Field3);
     buffer.WriteInt(32, Field4);
     buffer.WriteInt(32, Field5);
     for (int i = 0; i < Field6.Length; i++) buffer.WriteInt(32, Field6[i]);
     for (int i = 0; i < Field7.Length; i++) buffer.WriteInt(32, Field7[i]);
 }
Exemplo n.º 23
0
 public void Encode(GameBitBuffer buffer)
 {
     for (int i = 0; i < Field0.Length; i++) { Field0[i].Encode(buffer); }
     buffer.WriteInt(2, Field1);
     buffer.WriteInt(32, Field2);
 }
Exemplo n.º 24
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, m_snoPower);
     buffer.WriteInt(32, m_gbidItem);
 }
Exemplo n.º 25
0
 public override void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(3, Field0);
     buffer.WriteCharArray(128, Field1);
     buffer.WriteCharArray(101, Field2);
     buffer.WriteInt(5, Field3 - (-1));
     buffer.WriteInt(3, Field4 - (-1));
     buffer.WriteInt(32, snoActorPortrait);
     buffer.WriteInt(7, Field6);
     Field7.Encode(buffer);
     buffer.WriteBool(Field8);
     buffer.WriteInt(32, Field9);
     buffer.WriteInt(32, Field10);
 }
Exemplo n.º 26
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, snoConversation);
     buffer.WriteInt(32, Field1);
     buffer.WriteBool(Field2);
     buffer.WriteInt(32, Field3);
     buffer.WriteInt(32, Field4);
     buffer.WriteInt(32, Field5);
     buffer.WriteInt(32, Field6);
     buffer.WriteInt(32, Field7);
     buffer.WriteInt(32, Field8);
     buffer.WriteInt(32, snoSpeakerActor);
     buffer.WriteCharArray(49, Field10);
     buffer.WriteInt(32, Field11);
     buffer.WriteInt(32, Field12);
     buffer.WriteInt(32, Field13);
     buffer.WriteInt(32, Field14);
     buffer.WriteInt(32, Field15);
 }
Exemplo n.º 27
0
 public void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(2, Field0);
     buffer.WriteInt(32, Field1);
     buffer.WriteInt(7, Field2);
     buffer.WriteInt(32, Field3);
     buffer.WriteBool(Field4);
     buffer.WriteInt(32, Field5);
     buffer.WriteInt(32, Field6);
     buffer.WriteInt(32, Field7);
     buffer.WriteInt(32, Field8);
 }
Exemplo n.º 28
0
 public override void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(4, Field0 - (-1));
 }
Exemplo n.º 29
0
        public static void Identify(IConnection connection, MemoryStream stream)
        {
            //We Should move this part to a more central position
            if (gameMessages == null)
            {
                gameMessages = new Dictionary<Type, Action<GameMessage, GameBitBuffer, IConnection>>();
                var actionInfos = typeof(GameRouter).GetMethods().Where(o => o.GetParameters().Where(a => a.ParameterType == typeof(GameMessage)).Count() == 1 && 
                        o.GetParameters().Where(a => a.ParameterType == typeof(IConnection)).Count() == 1 &&
                        o.GetParameters().Where(a => a.ParameterType == typeof(GameBitBuffer)).Count() == 1
                    ).ToList();
                foreach (var actionInfo in actionInfos)
                {
                    Action<GameMessage, GameBitBuffer, IConnection> action = (Action<GameMessage, GameBitBuffer, IConnection>)Delegate.CreateDelegate(typeof(Action<GameMessage, GameBitBuffer, IConnection>), actionInfo);
                    Type typ = Type.GetType("D3Sharp.Net.Game.Packets." + actionInfo.Name);
                    gameMessages.Add(typ, action);
                }
            }
            //

            GameBitBuffer _incomingBuffer = new GameBitBuffer(512);
            GameBitBuffer _outgoingBuffer = new GameBitBuffer(ushort.MaxValue);

            _outgoingBuffer.WriteInt(32, 0);

            var header = new GameHeader(stream);
            var payload = new byte[header.Length - 6];

            stream.Read(payload, 0, (int)header.Length - 6);

            _incomingBuffer.AppendData(header.Data);
            _incomingBuffer.AppendData(payload);

            while (_incomingBuffer.IsPacketAvailable())
            {
                int end = _incomingBuffer.Position;
                end += _incomingBuffer.ReadInt(32) * 8;

                while ((end - _incomingBuffer.Position) >= 9)
                {
                    GameMessage msg = _incomingBuffer.ParseMessage();

                    Logger.LogIncoming(msg);
                    try
                    {
                        if (gameMessages.ContainsKey(GetMessageType(msg.Id)))
                            gameMessages[GetMessageType(msg.Id)](msg, _outgoingBuffer, connection);
                        else
                            Logger.Debug("Unhandled game message: 0x{0:X4} {1}", msg.Id, msg.GetType().Name);
                    }
                    catch (NotImplementedException)
                    {
                        Logger.Debug("Unhandled game message: 0x{0:X4} {1}", msg.Id, msg.GetType().Name);
                    }
                }

                _incomingBuffer.Position = end;
            }
        }
Exemplo n.º 30
0
 public override void Encode(GameBitBuffer buffer)
 {
     buffer.WriteInt(32, Field0);
     buffer.WriteBool(Field1);
     buffer.WriteFloat32(Field2);
 }