#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