protected void NpcStoppedMoving(byte type, List <byte> data) { byte[] packet = data.ToArray(); UInt32 id = BitConverter.ToUInt32(packet, 1); UInt16 x = BitConverter.ToUInt16(packet, 5); UInt16 y = BitConverter.ToUInt16(packet, 7); byte life = packet[9]; UpdateNpcMovement?.Invoke(id, new Coordinate(x, y), false, false); UpdateNpcLife?.Invoke(id, life); }
protected void NpcMovement(byte type, List <byte> data) { byte[] packet = data.ToArray(); UInt32 id = BitConverter.ToUInt32(packet, 1); byte movementType = packet[5]; UInt16 x = BitConverter.ToUInt16(packet, 6); UInt16 y = BitConverter.ToUInt16(packet, 8); bool running; if (movementType == 0x17) { running = true; } else if (movementType == 0x01) { running = false; } else { return; } UpdateNpcMovement?.Invoke(id, new Coordinate(x, y), true, running); }