Here's my Third Person Mouselook function, works similar to Max Payne:
Function MouseLook(iObject, vDist#, hDist#, vSpeed#, hSpeed#)
`Get Target position
xTarget# = Object Position X(iObject)
yTarget# = Object Position Y(iObject)
zTarget# = Object Position Z(iObject)
`Continue from where we last were
hAngle# = hAngle# - hSpeed#
vAngle# = vAngle# + vSpeed#
`Place restrictions on how high/low camera can go
If vAngle# > 100.0 Then vAngle# = 100.0
If vAngle# < -130.0 Then vAngle# = -130.0
`Tricky part: Make a 'circular' camera movement
xPos# = xTarget# + cos(hAngle#) * hDist#
yPos# = yTarget# + vAngle#
zPos# = zTarget# + sin(hAngle#) * hDist#
`Position Camera in it's new place and point it at our main character
Position Camera xPos#, yPos#, zPos#
Point Camera xTarget#, yTarget#, zTarget#
`Usually you'll want the camera just a tad higher then the char, so do that now
Position Camera xPos#, yPos# + vDist#, zPos#
`Point our Main Character in the same direction as our camera
Rotate Object iObject, Object Angle X(iObject), Camera Angle Y(), Object Angle Z(iObject)
Text 0,0, str$(vAngle#)
Text 0,10, str$(vDist#)
Text 0,20, str$(yTarget#)
EndFunction
Usually you'd call it with something like this:
MouseLook(1, 0.0, 100.0, MouseMoveY(), MouseMoveX())
It also requires 2 global variables:
Global hAngle# As Integer
Global vAngle# As Integer
Just fiddle with the values until it loosk right with your character. The function parameters are: "Object Number, how high camera is above object, how far away from object camera is, how fast it pitches, how fast it rotates"
Btw, that's DBP code so I'm not sure if it will work in classic although logically it should.

"Computers are useless they can only give you answers."