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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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 }
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); }
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? }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); } }
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 - }
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)); }
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); }
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); } }
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 }
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); }
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 }
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); }
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); }
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); }
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); }
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); }
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 } }
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); }
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); }