#Global Hooks
$Simulation:
[
me = hv.Player
if me:isValid() then
if lastOri == nil then
lastOri = me.Orientation
end
--Get Position and Orientation
currentOri = me.Orientation
currentPos = me.Position
blankOri = me.Orientation
blankOri["p"] = 0
blankOri["b"] = 0
blankOri["h"] = 0
if camerainit == nil then
cCameraPos = ba.createVector(0,0,-50)
cCameraOri = blankOri
ts.createCamera(chaseCamera,cCameraPos, cCameraOri)
ts.setCamera(chaseCamera)
camerainit = 42
end
--Get where the Camera is supposed to be (50m behind the player)
cCameraPos["z"] = currentPos["z"] - 50
chaseCamera.setPosition(cCameraPos)
--Angle Limit
if math.sqrt(math.pow(currentOri["p"],2) + math.pow(currentOri["h"],2)) > 0.524 then
currentOri = lastOri
end
--Horizontal Position Limit
if currentPos["x"] > 50 then
currentPos["x"] = 50
elseif currentPos["x"] < -50 then
currentPos["x"] = -50
end
--Vertical Position Limit
if currentPos["y"] > 50 then
currentPos["y"] = 50
elseif currentPos["y"] < -50 then
currentPos["y"] = -50
end
--Update Player Position and Orientation
me.Position = currentPos
me.Orientation = currentOri
--Reference Orientation for next frame
lastOri = me.Orientation
end --Player Validity Check
]
$HUD:
[
gr.setColor(255,255,255)
gr.drawString(me.Orientation["h"], 100,100)
gr.drawString(me.Orientation["p"], 100,110)
gr.drawString(me.Orientation["b"], 100,120)
gr.drawString(me.Position["x"],100,140)
gr.drawString(me.Position["y"],100,150)
gr.drawString(cCameraPos["x"],100,170)
gr.drawString(cCameraPos["y"],100,180)
gr.drawString(cCameraPos["z"],100,190)
]
#End