コード例 #1
0
ファイル: V3.cs プロジェクト: ouguochong/Lord-Of-Ranger
        internal static Mass Load(string filename)
        {
            var mass = new Mass();

            mass.Init();
            mass.name = filename;

            var fs    = new FileStream(Mass.SETTING_PATH + mass.name + Mass.EXTENSION, FileMode.Open, FileAccess.Read);
            var array = new byte[fs.Length];

            fs.Read(array, 0, (int)fs.Length);
            fs.Close();

            var offset  = 0;
            var version = BitConverter.ToInt32(array, offset);

            offset += 4;

            if (version != VERSION)
            {
                throw new InvalidDataException();
            }

            var hotKeySize = BitConverter.ToInt32(array, offset);

            offset += 4;
            var headerSize = BitConverter.ToInt32(array, offset);

            offset       += 4;
            mass.Sequence = BitConverter.ToInt32(array, offset);
            offset       += 4;
            mass.hotKey   = array.Skip(offset).Take(hotKeySize).ToArray()[0];
            offset       += hotKeySize;
            var headerCount = headerSize / 28;
            var headers     = new List <ArdHeader>();

            for (var i = 0; i < headerCount; i++)
            {
                var ardHeader = new ArdHeader();
                ardHeader.id                   = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.instanceType         = (Act.InstanceType)BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.priority             = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.skillIconSize        = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.disableSkillIconSize = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.pushDataSize         = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.sendDataSize         = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                headers.Add(ardHeader);
            }

            foreach (var ardHeader in headers)
            {
                switch (ardHeader.instanceType)
                {
                case Act.InstanceType.COMMAND:
                    var c = new Command();
                    c.Id               = ardHeader.id;
                    c.Priority         = ardHeader.priority;
                    c.SkillIcon        = BinaryToBitmap(array.Skip(offset).Take(ardHeader.skillIconSize).ToArray());
                    offset            += ardHeader.skillIconSize;
                    c.DisableSkillIcon = BinaryToBitmap(array.Skip(offset).Take(ardHeader.disableSkillIconSize).ToArray());
                    offset            += ardHeader.disableSkillIconSize;
                    c.Push             = array.Skip(offset).Take(ardHeader.pushDataSize).ToArray();
                    offset            += ardHeader.pushDataSize;
                    c.sendList         = array.Skip(offset).Take(ardHeader.sendDataSize).ToArray();
                    offset            += ardHeader.sendDataSize;
                    mass.Add(c);
                    break;

                case Act.InstanceType.BARRAGE:
                    var b = new Barrage();
                    b.Id               = ardHeader.id;
                    b.Priority         = ardHeader.priority;
                    b.SkillIcon        = BinaryToBitmap(array.Skip(offset).Take(ardHeader.skillIconSize).ToArray());
                    offset            += ardHeader.skillIconSize;
                    b.DisableSkillIcon = BinaryToBitmap(array.Skip(offset).Take(ardHeader.disableSkillIconSize).ToArray());
                    offset            += ardHeader.disableSkillIconSize;
                    b.Push             = array.Skip(offset).Take(ardHeader.pushDataSize).ToArray();
                    offset            += ardHeader.pushDataSize;
                    b.send             = array.Skip(offset).Take(ardHeader.sendDataSize).ToArray()[0];
                    offset            += ardHeader.sendDataSize;
                    mass.Add(b);
                    break;

                case Act.InstanceType.TOGGLE:
                    var t = new Toggle();
                    t.Id               = ardHeader.id;
                    t.Priority         = ardHeader.priority;
                    t.SkillIcon        = BinaryToBitmap(array.Skip(offset).Take(ardHeader.skillIconSize).ToArray());
                    offset            += ardHeader.skillIconSize;
                    t.DisableSkillIcon = BinaryToBitmap(array.Skip(offset).Take(ardHeader.disableSkillIconSize).ToArray());
                    offset            += ardHeader.disableSkillIconSize;
                    t.Push             = array.Skip(offset).Take(ardHeader.pushDataSize).ToArray();
                    offset            += ardHeader.pushDataSize;
                    t.send             = array.Skip(offset).Take(ardHeader.sendDataSize).ToArray()[0];
                    offset            += ardHeader.sendDataSize;
                    mass.Add(t);
                    break;

                case Act.InstanceType.MOUSE:
                    var m = new Action.Mouse();
                    m.Id               = ardHeader.id;
                    m.Priority         = ardHeader.priority;
                    m.SkillIcon        = BinaryToBitmap(array.Skip(offset).Take(ardHeader.skillIconSize).ToArray());
                    offset            += ardHeader.skillIconSize;
                    m.DisableSkillIcon = BinaryToBitmap(array.Skip(offset).Take(ardHeader.disableSkillIconSize).ToArray());
                    offset            += ardHeader.disableSkillIconSize;
                    m.Push             = array.Skip(offset).Take(ardHeader.pushDataSize).ToArray();
                    offset            += ardHeader.pushDataSize;
                    var msList    = new List <Mouse.ActionPattern>();
                    var tmpOffset = offset;
                    while (tmpOffset < offset + ardHeader.sendDataSize)
                    {
                        var op = (Mouse.Operation)BitConverter.ToInt32(array, tmpOffset);
                        tmpOffset += 4;
                        var x = BitConverter.ToInt32(array, tmpOffset);
                        tmpOffset += 4;
                        var y = BitConverter.ToInt32(array, tmpOffset);
                        tmpOffset += 4;
                        var sleepBetween = BitConverter.ToInt32(array, tmpOffset);
                        tmpOffset += 4;
                        var sleepAfter = BitConverter.ToInt32(array, tmpOffset);
                        tmpOffset += 4;
                        msList.Add(new Mouse.ActionPattern(op, x, y, sleepBetween, sleepAfter));
                    }
                    offset            = tmpOffset;
                    m.mouseData.Value = msList;
                    mass.Add(m);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            return(mass);
        }
コード例 #2
0
ファイル: V3.cs プロジェクト: southernwind/Lord-Of-Ranger
        internal static Mass Load( string filename )
        {
            var mass = new Mass();
            mass.Init();
            mass.name = filename;

            var fs = new FileStream( Mass.SETTING_PATH + mass.name + Mass.EXTENSION, FileMode.Open, FileAccess.Read );
            var array = new byte[fs.Length];

            fs.Read( array, 0, (int)fs.Length );
            fs.Close();

            var offset = 0;
            var version = BitConverter.ToInt32( array, offset );
            offset += 4;

            if( version != VERSION ) {
                throw new InvalidDataException();
            }

            var hotKeySize = BitConverter.ToInt32( array, offset );
            offset += 4;
            var headerSize = BitConverter.ToInt32( array, offset );
            offset += 4;
            mass.Sequence = BitConverter.ToInt32( array, offset );
            offset += 4;
            mass.hotKey = array.Skip( offset ).Take( hotKeySize ).ToArray()[0];
            offset += hotKeySize;
            var headerCount = headerSize / 28;
            var headers = new List<ArdHeader>();
            for( var i = 0; i < headerCount; i++ ) {
                var ardHeader = new ArdHeader();
                ardHeader.id = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.instanceType = (Act.InstanceType)BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.priority = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.skillIconSize = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.disableSkillIconSize = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.pushDataSize = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.sendDataSize = BitConverter.ToInt32( array, offset );
                offset += 4;
                headers.Add( ardHeader );
            }

            foreach( var ardHeader in headers ) {
                switch( ardHeader.instanceType ) {
                    case Act.InstanceType.COMMAND:
                        var c = new Command();
                        c.Id = ardHeader.id;
                        c.Priority = ardHeader.priority;
                        c.SkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.skillIconSize ).ToArray() );
                        offset += ardHeader.skillIconSize;
                        c.DisableSkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.disableSkillIconSize ).ToArray() );
                        offset += ardHeader.disableSkillIconSize;
                        c.Push = array.Skip( offset ).Take( ardHeader.pushDataSize ).ToArray();
                        offset += ardHeader.pushDataSize;
                        c.sendList = array.Skip( offset ).Take( ardHeader.sendDataSize ).ToArray();
                        offset += ardHeader.sendDataSize;
                        mass.Add( c );
                        break;
                    case Act.InstanceType.BARRAGE:
                        var b = new Barrage();
                        b.Id = ardHeader.id;
                        b.Priority = ardHeader.priority;
                        b.SkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.skillIconSize ).ToArray() );
                        offset += ardHeader.skillIconSize;
                        b.DisableSkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.disableSkillIconSize ).ToArray() );
                        offset += ardHeader.disableSkillIconSize;
                        b.Push = array.Skip( offset ).Take( ardHeader.pushDataSize ).ToArray();
                        offset += ardHeader.pushDataSize;
                        b.send = array.Skip( offset ).Take( ardHeader.sendDataSize ).ToArray()[0];
                        offset += ardHeader.sendDataSize;
                        mass.Add( b );
                        break;
                    case Act.InstanceType.TOGGLE:
                        var t = new Toggle();
                        t.Id = ardHeader.id;
                        t.Priority = ardHeader.priority;
                        t.SkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.skillIconSize ).ToArray() );
                        offset += ardHeader.skillIconSize;
                        t.DisableSkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.disableSkillIconSize ).ToArray() );
                        offset += ardHeader.disableSkillIconSize;
                        t.Push = array.Skip( offset ).Take( ardHeader.pushDataSize ).ToArray();
                        offset += ardHeader.pushDataSize;
                        t.send = array.Skip( offset ).Take( ardHeader.sendDataSize ).ToArray()[0];
                        offset += ardHeader.sendDataSize;
                        mass.Add( t );
                        break;
                    case Act.InstanceType.MOUSE:
                        var m = new Action.Mouse();
                        m.Id = ardHeader.id;
                        m.Priority = ardHeader.priority;
                        m.SkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.skillIconSize ).ToArray() );
                        offset += ardHeader.skillIconSize;
                        m.DisableSkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.disableSkillIconSize ).ToArray() );
                        offset += ardHeader.disableSkillIconSize;
                        m.Push = array.Skip( offset ).Take( ardHeader.pushDataSize ).ToArray();
                        offset += ardHeader.pushDataSize;
                        var msList = new List<Mouse.ActionPattern>();
                        var tmpOffset = offset;
                        while( tmpOffset < offset + ardHeader.sendDataSize ) {

                            var op = (Mouse.Operation)BitConverter.ToInt32( array, tmpOffset );
                            tmpOffset += 4;
                            var x = BitConverter.ToInt32( array, tmpOffset );
                            tmpOffset += 4;
                            var y = BitConverter.ToInt32( array, tmpOffset );
                            tmpOffset += 4;
                            var sleepBetween = BitConverter.ToInt32( array, tmpOffset );
                            tmpOffset += 4;
                            var sleepAfter = BitConverter.ToInt32( array, tmpOffset );
                            tmpOffset += 4;
                            msList.Add( new Mouse.ActionPattern( op, x, y, sleepBetween, sleepAfter ) );

                        }
                        offset = tmpOffset;
                        m.mouseData.Value = msList;
                        mass.Add( m );
                        break;
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }
            return mass;
        }
コード例 #3
0
ファイル: V2.cs プロジェクト: ouguochong/Lord-Of-Ranger
        internal static Mass Load(string filename)
        {
            var mass = new Mass();

            mass.Init();
            mass.name = filename;

            var fs    = new FileStream(Mass.SETTING_PATH + mass.name + Mass.EXTENSION, FileMode.Open, FileAccess.Read);
            var array = new byte[fs.Length];

            fs.Read(array, 0, (int)fs.Length);
            fs.Close();

            var offset  = 0;
            var version = BitConverter.ToInt32(array, offset);

            offset += 4;

            if (version != VERSION)
            {
                throw new InvalidDataException();
            }

            var hotKeySize = BitConverter.ToInt32(array, offset);

            offset += 4;
            var headerSize = BitConverter.ToInt32(array, offset);

            offset       += 4;
            mass.Sequence = BitConverter.ToInt32(array, offset);
            offset       += 4;
            mass.hotKey   = array.Skip(offset).Take(hotKeySize).ToArray()[0];
            offset       += hotKeySize;
            var headerCount = headerSize / 28;
            var headers     = new List <ArdHeader>();

            for (var i = 0; i < headerCount; i++)
            {
                var ardHeader = new ArdHeader();
                ardHeader.id                   = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.instanceType         = (Act.InstanceType)BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.priority             = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.skillIconSize        = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.disableSkillIconSize = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.pushDataSize         = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                ardHeader.sendDataSize         = BitConverter.ToInt32(array, offset);
                offset                        += 4;
                headers.Add(ardHeader);
            }


            foreach (var ardHeader in headers)
            {
                // ReSharper disable once SwitchStatementMissingSomeCases
                switch (ardHeader.instanceType)
                {
                case Act.InstanceType.COMMAND:
                    var c = new Command();
                    c.Id               = ardHeader.id;
                    c.Priority         = ardHeader.priority;
                    c.SkillIcon        = BinaryToBitmap(array.Skip(offset).Take(ardHeader.skillIconSize).ToArray());
                    offset            += ardHeader.skillIconSize;
                    c.DisableSkillIcon = BinaryToBitmap(array.Skip(offset).Take(ardHeader.disableSkillIconSize).ToArray());
                    offset            += ardHeader.disableSkillIconSize;
                    c.Push             = array.Skip(offset).Take(ardHeader.pushDataSize).ToArray();
                    offset            += ardHeader.pushDataSize;
                    c.sendList         = array.Skip(offset).Take(ardHeader.sendDataSize).ToArray();
                    offset            += ardHeader.sendDataSize;
                    mass.Add(c);
                    break;

                case Act.InstanceType.BARRAGE:
                    var b = new Barrage();
                    b.Id               = ardHeader.id;
                    b.Priority         = ardHeader.priority;
                    b.SkillIcon        = BinaryToBitmap(array.Skip(offset).Take(ardHeader.skillIconSize).ToArray());
                    offset            += ardHeader.skillIconSize;
                    b.DisableSkillIcon = BinaryToBitmap(array.Skip(offset).Take(ardHeader.disableSkillIconSize).ToArray());
                    offset            += ardHeader.disableSkillIconSize;
                    b.Push             = array.Skip(offset).Take(ardHeader.pushDataSize).ToArray();
                    offset            += ardHeader.pushDataSize;
                    b.send             = array.Skip(offset).Take(ardHeader.sendDataSize).ToArray()[0];
                    offset            += ardHeader.sendDataSize;
                    mass.Add(b);
                    break;

                case Act.InstanceType.TOGGLE:
                    var t = new Toggle();
                    t.Id               = ardHeader.id;
                    t.Priority         = ardHeader.priority;
                    t.SkillIcon        = BinaryToBitmap(array.Skip(offset).Take(ardHeader.skillIconSize).ToArray());
                    offset            += ardHeader.skillIconSize;
                    t.DisableSkillIcon = BinaryToBitmap(array.Skip(offset).Take(ardHeader.disableSkillIconSize).ToArray());
                    offset            += ardHeader.disableSkillIconSize;
                    t.Push             = array.Skip(offset).Take(ardHeader.pushDataSize).ToArray();
                    offset            += ardHeader.pushDataSize;
                    t.send             = array.Skip(offset).Take(ardHeader.sendDataSize).ToArray()[0];
                    offset            += ardHeader.sendDataSize;
                    mass.Add(t);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            return(mass);
        }
コード例 #4
0
ファイル: V1.cs プロジェクト: southernwind/Lord-Of-Ranger
        internal static Mass Load( string filename )
        {
            var mass = new Mass();
            mass.Init();
            mass.name = filename;

            var fs = new FileStream( Mass.SETTING_PATH + mass.name + Mass.EXTENSION, FileMode.Open, FileAccess.Read );
            var array = new byte[fs.Length];

            fs.Read( array, 0, (int)fs.Length );
            fs.Close();

            var offset = 0;
            var version = BitConverter.ToInt32( array, offset );
            offset += 4;

            if( version != VERSION ) {
                throw new InvalidDataException();
            }

            var titleSize = BitConverter.ToInt32( array, offset );
            offset += 4;
            var hotKeySize = BitConverter.ToInt32( array, offset );
            offset += 4;
            var headerSize = BitConverter.ToInt32( array, offset );
            offset += 4;
            mass.Sequence = BitConverter.ToInt32( array, offset );
            offset += 4;
            //	var title = Encoding.UTF8.GetString( array, offset, titleSize );
            offset += titleSize;
            mass.hotKey = array.Skip( offset ).Take( hotKeySize ).ToArray()[0];
            offset += hotKeySize;
            var headerCount = headerSize / 28;
            var headers = new List<ArdHeader>();
            for( var i = 0; i < headerCount; i++ ) {
                var ardHeader = new ArdHeader();
                ardHeader.id = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.instanceType = (Act.InstanceType)BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.priority = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.skillIconSize = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.disableSkillIconSize = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.pushDataSize = BitConverter.ToInt32( array, offset );
                offset += 4;
                ardHeader.sendDataSize = BitConverter.ToInt32( array, offset );
                offset += 4;
                headers.Add( ardHeader );
            }

            foreach( var ardHeader in headers ) {
                // ReSharper disable once SwitchStatementMissingSomeCases
                switch( ardHeader.instanceType ) {
                    case Act.InstanceType.COMMAND:
                        var c = new Command();
                        c.Id = ardHeader.id;
                        c.Priority = ardHeader.priority;
                        c.SkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.skillIconSize ).ToArray() );
                        offset += ardHeader.skillIconSize;
                        c.DisableSkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.disableSkillIconSize ).ToArray() );
                        offset += ardHeader.disableSkillIconSize;
                        c.Push = array.Skip( offset ).Take( ardHeader.pushDataSize ).ToArray();
                        offset += ardHeader.pushDataSize;
                        c.sendList = array.Skip( offset ).Take( ardHeader.sendDataSize ).ToArray();
                        offset += ardHeader.sendDataSize;
                        mass.Add( c );
                        break;
                    case Act.InstanceType.BARRAGE:
                        var b = new Barrage();
                        b.Id = ardHeader.id;
                        b.Priority = ardHeader.priority;
                        b.SkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.skillIconSize ).ToArray() );
                        offset += ardHeader.skillIconSize;
                        b.DisableSkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.disableSkillIconSize ).ToArray() );
                        offset += ardHeader.disableSkillIconSize;
                        b.Push = array.Skip( offset ).Take( ardHeader.pushDataSize ).ToArray();
                        offset += ardHeader.pushDataSize;
                        b.send = array.Skip( offset ).Take( ardHeader.sendDataSize ).ToArray()[0];
                        offset += ardHeader.sendDataSize;
                        mass.Add( b );
                        break;
                    case Act.InstanceType.TOGGLE:
                        var t = new Toggle();
                        t.Id = ardHeader.id;
                        t.Priority = ardHeader.priority;
                        t.SkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.skillIconSize ).ToArray() );
                        offset += ardHeader.skillIconSize;
                        t.DisableSkillIcon = BinaryToBitmap( array.Skip( offset ).Take( ardHeader.disableSkillIconSize ).ToArray() );
                        offset += ardHeader.disableSkillIconSize;
                        t.Push = array.Skip( offset ).Take( ardHeader.pushDataSize ).ToArray();
                        offset += ardHeader.pushDataSize;
                        t.send = array.Skip( offset ).Take( ardHeader.sendDataSize ).ToArray()[0];
                        offset += ardHeader.sendDataSize;
                        mass.Add( t );
                        break;
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }

            return mass;
        }