Exemple #1
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0321;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 54;
            header.Write(bw);

            bw.Write(_ci.Level);
            bw.Write(_ci.MaxHP);
            bw.Write(_ci.MaxSP);
            bw.Write(_ci.MaxMP);
            bw.Write(_ci.Power);
            bw.Write(_ci.Vitality);
            bw.Write(_ci.Sympathy);
            bw.Write(_ci.Intelligence);
            bw.Write(_ci.Stamina);
            bw.Write(_ci.Dexterity);
            bw.Write(_ci.AbilityPoints);
            bw.Write(_ci.AvailableSkillPoints);
            bw.Write(_ci.TotalSkillPoints);
            _ci.WriteAbilityBlock(bw);
            bw.Write(_ci.Exp);
        }
Exemple #2
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0416;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 46;
            header.Write(bw);

            bw.Write(_itemID);
            bw.Write(_slot);
            bw.Write((byte)(_success ? 1 : 2));
            bw.Write((uint)10);
            bw.Write((ushort)20);
            bw.Write(_character.PhysicalDef);
            bw.Write(_character.MagicalDef);
            bw.Write((byte)30);
            bw.Write(_character.AbilityPMin);
            bw.Write(_character.AbilityPMax);
            bw.Write((byte)40);
            bw.Write((byte)50);
            bw.Write(_character.Vitality);
            bw.Write(_character.Sympathy);
            bw.Write(_character.Intelligence);
            bw.Write((ushort)60);
            bw.Write(_character.Dexterity);
            bw.Write(_character.MaxHP);
            bw.Write((uint)70);
            bw.Write(_character.MaxMP);
            bw.Write((byte)80);
        }
Exemple #3
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode               = Opcode;
            header.PacketLength         = (ushort)(0);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);
        }
Exemple #4
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x15;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = _ci.DataSize;
            header.Write(bw);

            _ci.WritePacket(bw);
        }
Exemple #5
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0xFF;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 4;
            header.Write(bw);

            bw.Write(_hp);
        }
Exemple #6
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0458;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 2;
            header.Write(bw);

            bw.Write(_slot);
            bw.Write(_err);
        }
Exemple #7
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode               = 0;
            header.PacketLength         = (ushort)(62);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            Utils.WriteByteString(bw, Unknown, 31);
            Utils.WriteByteString(bw, "test", 31);
        }
Exemple #8
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0417;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 5;
            header.Write(bw);

            bw.Write(_characterID);
            bw.Write(_equipmentSlot);
        }
Exemple #9
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0255;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 3;
            header.Write(bw);

            bw.Write((byte)11);     // NPC_Icon
            bw.Write(_icon);        // Icon texture id
        }
Exemple #10
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0252;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 3;
            header.Write(bw);

            bw.Write((byte)1);
            bw.Write(_npcType);
        }
Exemple #11
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0320;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 9;
            header.Write(bw);

            bw.Write(_exp);             // 0xE - Dword - exp gain
            bw.Write((byte)0);          // 0x16 - Byte - gain type?
        }
Exemple #12
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0445;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 17;
            header.Write(bw);

            bw.Write((byte)1);          // Error code: 1 = no error
            _item.Write(bw);
        }
Exemple #13
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x122;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 7;
            header.Write(bw);

            bw.Write(_cellIndex);
            bw.Write(_moveSpeed);
            bw.Write((byte)1);
        }
Exemple #14
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0123;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 10;
            header.Write(bw);

            bw.Write(_moverID);
            bw.Write(_cellIndex);
            bw.Write(_speed);
        }
Exemple #15
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0403;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 9;
            header.Write(bw);

            bw.Write(_gold);
            bw.Write((byte)1);
            bw.Write(_victim);
        }
Exemple #16
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0xF;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 258;
            header.Write(bw);

            bw.Write(_op.ID);
            Utils.WriteByteString(bw, _op.Name, 17);
            bw.Write(_op.ModelInfo);
            bw.Write(_op.Job);

            bw.Write((byte)0);
            bw.Write((uint)0);

            bw.Write(_op.Level);
            bw.Write(_op.CellIndex);
            bw.Write(_op.CurHP);
            bw.Write(_op.CurMP);
            bw.Write(_op.MaxHP);
            bw.Write(_op.MaxMP);

            bw.Write((byte)0);
            bw.Write((ushort)1);

            for (int i = 0; i < 10; i++)
            {
                int  id       = 0;
                Item equipped = _op.EquippedItem((byte)i);
                if (equipped != null)
                {
                    id = equipped.Model;
                }
                bw.Write(id);
            }

            bw.Write((uint)0);
            bw.Write((uint)0);
            bw.Write((uint)0);
            bw.Write((uint)0);
            for (int i = 0; i < 20; i++)
            {
                bw.Write((ushort)0);
            }
            bw.Write((ushort)0);
            bw.Write((uint)0);
            bw.Write((byte)0);
            Utils.WriteByteString(bw, "", 100);
        }
Exemple #17
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0414;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 9;
            header.Write(bw);

            bw.Write(_characterID);
            bw.Write(_item.Model);
            bw.Write((ushort)0);
            bw.Write(_item.Slot);
        }
Exemple #18
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x5011;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 10;
            header.Write(bw);

            bw.Write(_npc.ID);
            bw.Write(_npc.MoveSpeed);
            bw.Write((byte)1);
            bw.Write(_npc.CellIndex);
        }
Exemple #19
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0255;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 31;
            header.Write(bw);

            bw.Write((byte)21);                     // NPC Quest Dialog Text
            bw.Write((ushort)(_showNext ? 1 : 0));  // Should the dialog have the next button?
            bw.Write(_staticText);
            Utils.WriteByteString(bw, _text, 24);
        }
Exemple #20
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode               = 0x5;
            header.PacketLength         = 32;
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            for (int i = 0; i < 8; i++)
            {
                bw.Write((int)1);
            }
        }
Exemple #21
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0651;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 9;
            header.Write(bw);

            bw.Write(_wordE);           // 0x0E - Word - QuestID?
            bw.Write(_word10);          // 0x10 - Word - Some other ID?
            bw.Write(_byte12);          // 0x12 - Byte - 1 = Give Quest?
            bw.Write(_dword13);         // 0x13 - Dword -
        }
Exemple #22
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0454;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 11;
            header.Write(bw);

            bw.Write(_id);
            bw.Write(_other);
            bw.Write(_slot);
            bw.Write((byte)1);  // Unknown
            bw.Write((byte)(_success ? 1 : 0));
        }
Exemple #23
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            byte[] ascii = Encoding.ASCII.GetBytes(Message);

            PacketHeader header = new PacketHeader();

            header.Opcode               = 0;
            header.PacketLength         = (ushort)(ascii.Length + 5);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            bw.Write((int)0);   // Message Type: Server Provided
            bw.Write(ascii);
            bw.Write((byte)0);
        }
Exemple #24
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode               = 1;
            header.PacketLength         = (ushort)(400);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            bw.Write((uint)2);  // 2 Character slots... Retarded client.  Can do a third but character creation fails...
            for (int i = 0; i < 3; i++)
            {
                Slots[i].Write(bw);
            }
        }
Exemple #25
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0456;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 11;
            header.Write(bw);

            bw.Write(_id);              // 0xE - DWord - Skill ID/ItemID
            bw.Write(_type);            // 0x12 - Byte - Type, 2 = Item, 3 = Skill
            bw.Write((uint)0);          // 0x13 - DWord - Secondary ID
            bw.Write((byte)0);          // 0x17 - Byte - Use secondary id, not sure why this is in there, its the same as the first set
            bw.Write(_err);             // 0x18 - Byte - ItemError
        }
Exemple #26
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode               = 0x7FD9;
            header.PacketLength         = (ushort)(404);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            int error = (ErrorCode == ErrorCodes.AccountDoesntExist) ? 2 : 3;

            bw.Write(error);
            Utils.WriteZeros(bw, 200);
            Utils.WriteByteString(bw, AccountURL, 200);
        }
Exemple #27
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0302;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 23;
            header.Write(bw);

            int  attackType  = _atr.TargetT == AttackTargetRequest.TargetType.Monster ? 1 : 0;
            int  critical    = _atr.Critical ? 1 : 0;
            int  comboCount  = _atr.ComboCount;
            int  comboStatus = _atr.ComboStatus;
            byte attackData  = (byte)(attackType | (critical << 1) | ((comboCount & 0xF) << 2) | ((comboStatus & 3) << 6));
            byte comboGauge  = (byte)(_victimHP == 0 ? 0xC0 : 0);

            bw.Write(_victimID);        // 0Eh
            bw.Write(_victimHP);        // 12h
            bw.Write(_ci.CellIndex);    // 16h
            bw.Write(_atr.Motion);      // 1Ah
            bw.Write((ushort)0);        // 1Ch
            bw.Write(attackData);       // 1Eh
            bw.Write(_ci.CurSP);        // 1Fh
            bw.Write(comboGauge);       // 23h
            bw.Write(_errorByte);       // 24h

            // 1: No error
            // 3: No Equipments For Using the Skill
            // 5: Insufficient Gauge for Using the Skill
            // 6: Wrong Target
            // 7: Unable to use the skill yet
            // 8: Away from the skill use range
            // 13: Skill wlready in use
            // 14: Unable to find target
            // 15: Already dead target
            // 16: the number to attack is short
            // 20: unable to use durring multiple character status
            // 21: the lasting skill was canceled
            // 26: You can use it after certain time passed after attacking
            // 28: If the necessary continuing skill is not learnt, you will be unable to use it
            // 29: The combo sequence does not exist
            // 31: Exceeded maximum multiple characteristic
            // 32: Targeting failed
            // 33: Protected safe mode after moving map
            // 34: Unable to use with duplication
            // 36: You can must select only one of among attack mode or defense mode
        }
Exemple #28
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0xF;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 258;
            header.Write(bw);

            bw.Write(_op.ID);
            Utils.WriteByteString(bw, _op.Name, 17);
            bw.Write(_op.ModelInfo);
            bw.Write(_op.Job);

            bw.Write((byte)0);
            bw.Write((uint)0);

            bw.Write(_op.Level);
            bw.Write(_op.CellIndex);
            bw.Write(_op.CurHP);
            bw.Write(_op.CurMP);
            bw.Write(_op.MaxHP);
            bw.Write(_op.MaxMP);

            bw.Write((byte)0);
            bw.Write((ushort)1);

            for (int i = 0; i < 10; i++)
            {
                int id = 0;
                Item equipped = _op.EquippedItem((byte)i);
                if( equipped != null )
                    id = equipped.Model;
                bw.Write(id);
            }

            bw.Write((uint)0);
            bw.Write((uint)0);
            bw.Write((uint)0);
            bw.Write((uint)0);
            for( int i = 0; i < 20; i++ )
                bw.Write((ushort)0);
            bw.Write((ushort)0);
            bw.Write((uint)0);
            bw.Write((byte)0);
            Utils.WriteByteString(bw, "", 100);
        }
Exemple #29
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0402;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 22;
            header.Write(bw);

            bw.Write((byte)1);              // 0xE - Error Byte
            _item.Write(bw);
            bw.Write((byte)0);              // Unused spacer byte

            // 0x20 - 112 bytes of some data, starts with npc id?, maybe npc data?
            bw.Write(_monsterID);
            //Utils.WriteZeros(bw, 108);
        }
Exemple #30
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0409;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 6;
            header.Write(bw);

            // 0xE - Dword - Item id
            // 0x12- Byte - Remaining Quantity
            // 0x13 - Byte - Item Error

            bw.Write(_itemID);
            bw.Write(_quantity);
            bw.Write(_err);
        }
Exemple #31
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();

            header.Opcode = 0x0303;
            header.PacketSequenceNumber = sequence;
            header.PacketLength         = 20;
            header.Write(bw);

            bw.Write(_attacker.ID);                     // 0xE
            bw.Write(_attacker.CellIndex);              // 0x12
            bw.Write(_ci.CurHP);                        // 0x16
            bw.Write(_motion);
            bw.Write((ushort)1);
            bw.Write(_attackType);
            bw.Write((byte)(_ci.CurHP > 0 ? 0 : 1));
            bw.Write((byte)1);
        }
Exemple #32
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0458;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 2;
            header.Write(bw);

            bw.Write(_slot);
            bw.Write(_err);
        }
Exemple #33
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0255;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 3;
            header.Write(bw);

            bw.Write((byte)11);     // NPC_Icon
            bw.Write(_icon);        // Icon texture id
        }
Exemple #34
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0255;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 31;
            header.Write(bw);

            bw.Write((byte)21);                     // NPC Quest Dialog Text
            bw.Write((ushort)(_showNext ? 1 : 0));    // Should the dialog have the next button?
            bw.Write(_staticText);
            Utils.WriteByteString(bw, _text, 24);
        }
Exemple #35
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0409;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 6;
            header.Write(bw);

            // 0xE - Dword - Item id
            // 0x12- Byte - Remaining Quantity
            // 0x13 - Byte - Item Error

            bw.Write(_itemID);
            bw.Write(_quantity);
            bw.Write(_err);
        }
Exemple #36
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0445;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 17;
            header.Write(bw);

            bw.Write((byte)1);          // Error code: 1 = no error
            _item.Write(bw);
        }
Exemple #37
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0403;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 9;
            header.Write(bw);

            bw.Write(_gold);
            bw.Write((byte)1);
            bw.Write(_victim);
        }
Exemple #38
0
 public override void Write(uint sequence, BinaryWriter bw)
 {
     PacketHeader header = new PacketHeader();
     header.Opcode = Opcode;
     header.PacketLength = (ushort)(0);
     header.PacketSequenceNumber = sequence;
     header.Write(bw);
 }
Exemple #39
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0417;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 5;
            header.Write(bw);

            bw.Write(_characterID);
            bw.Write(_equipmentSlot);
        }
Exemple #40
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0302;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 23;
            header.Write(bw);

            int attackType = _atr.TargetT == AttackTargetRequest.TargetType.Monster ? 1 : 0;
            int critical = _atr.Critical ? 1 : 0;
            int comboCount = _atr.ComboCount;
            int comboStatus = _atr.ComboStatus;
            byte attackData = (byte)(attackType | (critical << 1) | ((comboCount & 0xF) << 2) | ((comboStatus & 3) << 6));
            byte comboGauge = (byte)(_victimHP == 0 ? 0xC0 : 0);

            bw.Write(_victimID);        // 0Eh
            bw.Write(_victimHP);        // 12h
            bw.Write(_ci.CellIndex);    // 16h
            bw.Write(_atr.Motion);      // 1Ah
            bw.Write((ushort)0);        // 1Ch
            bw.Write(attackData);       // 1Eh
            bw.Write(_ci.CurSP);        // 1Fh
            bw.Write(comboGauge);       // 23h
            bw.Write(_errorByte);       // 24h

            // 1: No error
            // 3: No Equipments For Using the Skill
            // 5: Insufficient Gauge for Using the Skill
            // 6: Wrong Target
            // 7: Unable to use the skill yet
            // 8: Away from the skill use range
            // 13: Skill wlready in use
            // 14: Unable to find target
            // 15: Already dead target
            // 16: the number to attack is short
            // 20: unable to use durring multiple character status
            // 21: the lasting skill was canceled
            // 26: You can use it after certain time passed after attacking
            // 28: If the necessary continuing skill is not learnt, you will be unable to use it
            // 29: The combo sequence does not exist
            // 31: Exceeded maximum multiple characteristic
            // 32: Targeting failed
            // 33: Protected safe mode after moving map
            // 34: Unable to use with duplication
            // 36: You can must select only one of among attack mode or defense mode
        }
Exemple #41
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x7FD9;
            header.PacketLength = (ushort)(404);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            int error = (ErrorCode == ErrorCodes.AccountDoesntExist) ? 2 : 3;
            bw.Write(error);
            Utils.WriteZeros(bw, 200);
            Utils.WriteByteString(bw, AccountURL, 200);
        }
Exemple #42
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0402;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 22;
            header.Write(bw);

            bw.Write((byte)1);              // 0xE - Error Byte
            _item.Write(bw);
            bw.Write((byte)0);              // Unused spacer byte

            // 0x20 - 112 bytes of some data, starts with npc id?, maybe npc data?
            bw.Write(_monsterID);
            //Utils.WriteZeros(bw, 108);
        }
Exemple #43
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x5;
            header.PacketLength = 32;
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            for (int i = 0; i < 8; i++)
                bw.Write((int)1);
        }
Exemple #44
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            byte[] ascii = Encoding.ASCII.GetBytes(Message);

            PacketHeader header = new PacketHeader();
            header.Opcode = 0;
            header.PacketLength = (ushort)(ascii.Length + 5);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            bw.Write((int)0);   // Message Type: Server Provided
            bw.Write(ascii);
            bw.Write((byte)0);
        }
Exemple #45
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            const int serverSize = 74;
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x7FDA;
            header.PacketLength =(ushort)(35 + (_servers.Length * serverSize));
            header.PacketSequenceNumber = sequence;

            header.Write(bw);
            Utils.WriteByteString(bw, _authKey, 31);
            bw.Write((uint)_servers.Length);
            foreach (PlayServerInfo psi in _servers)
            {
                Utils.WriteZeros(bw, 11);       // Unknown data, this might not belong in the loop

                bw.Write((ushort)1);            // Unknown
                Utils.WriteByteString(bw, psi.Name, 40);
                Utils.WriteByteString(bw, psi.IPAddress, 16);
                bw.Write(psi.Port);
                bw.Write((ushort)0);            // Unknown
                bw.Write((byte)1);              // Server Population
            }
        }
Exemple #46
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x15;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = _ci.DataSize;
            header.Write(bw);

            _ci.WritePacket(bw);
        }
Exemple #47
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = (ushort)(_oldItem == null ? 0x0412 : 0x0413);
            header.PacketSequenceNumber = sequence;
            header.PacketLength = (ushort)(_oldItem == null ? 46 : 51);
            header.Write(bw);

            if( _oldItem != null )
                bw.Write(_oldItem.ID);
            bw.Write(_newItem.ID);
            if( _oldItem != null )
                bw.Write(_oldItem.Slot);
            bw.Write(_newItem.Slot);
            bw.Write((byte)(_success ? 1 : 0));
            bw.Write((uint)0);
            bw.Write((ushort)0);
            bw.Write(_character.PhysicalDef);
            bw.Write(_character.MagicalDef);
            bw.Write((byte)0);
            bw.Write(_character.AbilityPMin);
            bw.Write(_character.AbilityPMax);
            bw.Write((byte)0);
            bw.Write((byte)0);
            bw.Write(_character.Vitality);
            bw.Write(_character.Sympathy);
            bw.Write(_character.Intelligence);
            bw.Write((ushort)0);
            bw.Write(_character.Dexterity);
            bw.Write(_character.MaxHP);
            bw.Write((uint)0);
            bw.Write(_character.MaxMP);
            bw.Write((byte)0);
        }
Exemple #48
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 1;
            header.PacketLength = (ushort)(400);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            bw.Write((uint)2);  // 2 Character slots... Retarded client.  Can do a third but character creation fails...
            for (int i = 0; i < 3; i++)
                Slots[i].Write(bw);
        }
Exemple #49
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0320;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 9;
            header.Write(bw);

            bw.Write(_exp);             // 0xE - Dword - exp gain
            bw.Write((byte)0);          // 0x16 - Byte - gain type?
        }
Exemple #50
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0456;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 11;
            header.Write(bw);

            bw.Write(_id);              // 0xE - DWord - Skill ID/ItemID
            bw.Write(_type);            // 0x12 - Byte - Type, 2 = Item, 3 = Skill
            bw.Write((uint)0);          // 0x13 - DWord - Secondary ID
            bw.Write((byte)0);          // 0x17 - Byte - Use secondary id, not sure why this is in there, its the same as the first set
            bw.Write(_err);             // 0x18 - Byte - ItemError
        }
Exemple #51
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0651;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 9;
            header.Write(bw);

            bw.Write(_wordE);           // 0x0E - Word - QuestID?
            bw.Write(_word10);          // 0x10 - Word - Some other ID?
            bw.Write(_byte12);          // 0x12 - Byte - 1 = Give Quest?
            bw.Write(_dword13);         // 0x13 - Dword -
        }
Exemple #52
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0416;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 46;
            header.Write(bw);

            bw.Write(_itemID);
            bw.Write(_slot);
            bw.Write((byte)(_success ? 1 : 2));
            bw.Write((uint)10);
            bw.Write((ushort)20);
            bw.Write(_character.PhysicalDef);
            bw.Write(_character.MagicalDef);
            bw.Write((byte)30);
            bw.Write(_character.AbilityPMin);
            bw.Write(_character.AbilityPMax);
            bw.Write((byte)40);
            bw.Write((byte)50);
            bw.Write(_character.Vitality);
            bw.Write(_character.Sympathy);
            bw.Write(_character.Intelligence);
            bw.Write((ushort)60);
            bw.Write(_character.Dexterity);
            bw.Write(_character.MaxHP);
            bw.Write((uint)70);
            bw.Write(_character.MaxMP);
            bw.Write((byte)80);
        }
Exemple #53
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0xFF;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 4;
            header.Write(bw);

            bw.Write(_hp);
        }
Exemple #54
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0303;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 20;
            header.Write(bw);

            bw.Write(_attacker.ID);                     // 0xE
            bw.Write(_attacker.CellIndex);              // 0x12
            bw.Write(_ci.CurHP);                        // 0x16
            bw.Write(_motion);
            bw.Write((ushort)1);
            bw.Write(_attackType);
            bw.Write((byte)(_ci.CurHP > 0 ? 0 : 1));
            bw.Write((byte)1);
        }
Exemple #55
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0321;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 54;
            header.Write(bw);

            bw.Write(_ci.Level);
            bw.Write(_ci.MaxHP);
            bw.Write(_ci.MaxSP);
            bw.Write(_ci.MaxMP);
            bw.Write(_ci.Power);
            bw.Write(_ci.Vitality);
            bw.Write(_ci.Sympathy);
            bw.Write(_ci.Intelligence);
            bw.Write(_ci.Stamina);
            bw.Write(_ci.Dexterity);
            bw.Write(_ci.AbilityPoints);
            bw.Write(_ci.AvailableSkillPoints);
            bw.Write(_ci.TotalSkillPoints);
            _ci.WriteAbilityBlock(bw);
            bw.Write(_ci.Exp);
        }
Exemple #56
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x122;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 7;
            header.Write(bw);

            bw.Write(_cellIndex);
            bw.Write(_moveSpeed);
            bw.Write((byte)1);
        }
Exemple #57
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0;
            header.PacketLength = (ushort)(62);
            header.PacketSequenceNumber = sequence;
            header.Write(bw);

            Utils.WriteByteString(bw, Unknown, 31);
            Utils.WriteByteString(bw, "test", 31);
        }
Exemple #58
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0414;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 9;
            header.Write(bw);

            bw.Write(_characterID);
            bw.Write(_item.Model);
            bw.Write((ushort)0);
            bw.Write(_item.Slot);
        }
Exemple #59
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0454;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 11;
            header.Write(bw);

            bw.Write(_id);
            bw.Write(_other);
            bw.Write(_slot);
            bw.Write((byte)1);  // Unknown
            bw.Write((byte)(_success ? 1 : 0));
        }
Exemple #60
0
        public override void Write(uint sequence, BinaryWriter bw)
        {
            PacketHeader header = new PacketHeader();
            header.Opcode = 0x0123;
            header.PacketSequenceNumber = sequence;
            header.PacketLength = 10;
            header.Write(bw);

            bw.Write(_moverID);
            bw.Write(_cellIndex);
            bw.Write(_speed);
        }