Exemplo n.º 1
0
        public static string GetOpcodeName(uint opcode, Direction direction, ClientBuild clientbuild)
        {
            var name = Enum.GetName(Type.GetType(string.Format("MaximusParserX.Parsing.Version.{0}.Enums.Opcodes", clientbuild)), opcode);

            if (name == null)
                name = string.Format("U{0}_UNWKNOWN_{1}", direction == Direction.ServerToClient ? "SMSG" : "CMSG", opcode);

            return name;
        }
Exemplo n.º 2
0
 public static uint GetGameObjectUpdateFieldMax(ClientBuild clientbuild)
 {
     var type = GetGameObjectUpdateFieldType(clientbuild);
     if (type != null)
     {
         return Enum.GetValues(type).Cast<uint>().Max();
     }
     else
     {
         return 0;
     }
 }
Exemplo n.º 3
0
 public Packet(int id, DateTime timestamp, Direction direction, uint opcode, byte[] data, int size, ClientBuild clientbuild)
 {
     Id = id;
     TimeStamp = timestamp;
     Direction = direction;
     Opcode = opcode;
     Data = data;
     Size = size;
     ClientBuild = clientbuild;
     OpcodeName = MaximusParserX.Parsing.ParsingHandler.GetOpcodeName(Opcode, Direction, ClientBuild);
     Result = new Frame.Result();
     FieldLog = new Dictionary<string, object>();
 }
Exemplo n.º 4
0
        public static string ValidateMaxUpdateFieldCount(int currentcount, TypeID typeid, ClientBuild clientbuild)
        {
            var max = 0u;
            var msg = string.Empty;
            const string msgformat = "{0} was exceeded with {1} > {2}  for build {3}";

            switch (typeid)
            {
                case TypeID.TYPEID_OBJECT:
                case TypeID.TYPEID_AIGROUP:
                case TypeID.TYPEID_AREATRIGGER:
                    {
                        max = 7;
                    } break;
                case TypeID.TYPEID_CONTAINER:
                case TypeID.TYPEID_ITEM:
                    {
                        max = GetItemUpdateFieldMax(clientbuild);
                        msg = string.Format(msgformat, "ItemUpdateFieldMax", currentcount, max, clientbuild);

                    } break;
                case TypeID.TYPEID_CORPSE:
                    {
                        max = GetCorpseUpdateFieldMax(clientbuild);
                        msg = string.Format(msgformat, "CorpseUpdateFieldMax", currentcount, max, clientbuild);

                    } break;
                case TypeID.TYPEID_DYNAMICOBJECT:
                    {
                        max = GetDynamicObjectUpdateFieldMax(clientbuild);
                        msg = string.Format(msgformat, "DynamicObjectUpdateFieldMax", currentcount, max, clientbuild);

                    } break;
                case TypeID.TYPEID_GAMEOBJECT:
                    {
                        max = GetGameObjectUpdateFieldMax(clientbuild);
                        msg = string.Format(msgformat, "GameObjectUpdateFieldMax", currentcount, max, clientbuild);
                    } break;
                case TypeID.TYPEID_UNIT:
                case TypeID.TYPEID_PLAYER:
                    {
                        max = GetUnitUpdateFieldMax(clientbuild);
                        msg = string.Format(msgformat, "UnitUpdateFieldMax", currentcount, max, clientbuild);
                    } break;
            }

            return msg;
        }
Exemplo n.º 5
0
        public static uint GetUpdateFieldMax(TypeID typeid, ClientBuild clientbuild)
        {
            uint max = 7;

            switch (typeid)
            {
                //case TypeID.TYPEID_OBJECT:
                //case TypeID.TYPEID_AIGROUP:
                //case TypeID.TYPEID_AREATRIGGER:
                //    {
                //        max = 7;
                //    } break;
                case TypeID.TYPEID_CONTAINER:
                case TypeID.TYPEID_ITEM:
                    {
                        max = GetItemUpdateFieldMax(clientbuild);


                    } break;
                case TypeID.TYPEID_CORPSE:
                    {
                        max = GetCorpseUpdateFieldMax(clientbuild);


                    } break;
                case TypeID.TYPEID_DYNAMICOBJECT:
                    {
                        max = GetDynamicObjectUpdateFieldMax(clientbuild);


                    } break;
                case TypeID.TYPEID_GAMEOBJECT:
                    {
                        max = GetGameObjectUpdateFieldMax(clientbuild);

                    } break;
                case TypeID.TYPEID_UNIT:
                case TypeID.TYPEID_PLAYER:
                    {
                        max = GetUnitUpdateFieldMax(clientbuild);

                    } break;
            }
            return max;
        }
Exemplo n.º 6
0
        public static MaximusParserX.Reading.DefinitionBase GetDefinition(DefinitionContext context, ClientBuild clientbuild, string opcodename, uint opcode)
        {
            var obj = Type.GetType(string.Format("MaximusParserX.Parsing.Parsers.{0}_DEF", opcodename));

            if (obj == null)
            {
                obj = Type.GetType("MaximusParserX.Parsing.Parsing.UnknownDef");
            }

            if (obj != null)
            {
                var def = (DefinitionBase)Activator.CreateInstance(obj);
                def.Initialize(context);
                return def;
            }
            else
            {
                return null;
            }
        }
Exemplo n.º 7
0
 public static Type GetUnitUpdateFieldType(ClientBuild clientbuild)
 {
     return Type.GetType(string.Format("MaximusParserX.Parsing.Version.{0}.Enums.UnitUpdateFields", clientbuild));
 }
Exemplo n.º 8
0
 public static string GetUnitUpdateFieldName(int index, ClientBuild clientbuild)
 {
     var name = Enum.GetName(GetUnitUpdateFieldType(clientbuild), index);
     return name;
 }
Exemplo n.º 9
0
 public static string GetItemUpdateFieldName(int index, ClientBuild clientbuild)
 {
     var name = Enum.GetName(Type.GetType(string.Format("MaximusParserX.Parsing.Version.{0}.Enums.ItemUpdateFields", clientbuild)), index);
     return name;
 }