#Global Hooks $Simulation: [ if camerainit == nil then blankOri = mn.Ships[1].Orientation blankOri["p"] = 0 blankOri["b"] = 0 blankOri["h"] = 0 cCameraPos = ba.createVector(0,0,-20) cCameraOri = blankOri chaseCamera = ts.createCamera("chaseCamera1",cCameraPos, cCameraOri) ts.setCamera(chaseCamera) camerainit = 42 end 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 currentSpeed = me.Physics.Velocity["z"] --Get where the Camera is supposed to be cCameraPos["x"] = (0.1*currentPos["x"]) cCameraPos["y"] = (0.1*currentPos["y"]) cCameraPos["z"] = ((currentPos["z"] - 20) - (0.33 * currentSpeed)) 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"] > 30 then currentPos["x"] = 30 elseif currentPos["x"] < -30 then currentPos["x"] = -30 end --Vertical Position Limit if currentPos["y"] > 22.5 then currentPos["y"] = 22.5 elseif currentPos["y"] < -22.5 then currentPos["y"] = -22.5 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(currentOri["h"], 100,100) gr.drawString(currentOri["p"], 100,110) gr.drawString(currentOri["b"], 100,120) gr.drawString(currentPos["x"],100,140) gr.drawString(currentPos["y"],100,150) gr.drawString(currentPos["z"],100,160) gr.drawString(cCameraPos["x"],100,180) gr.drawString(cCameraPos["y"],100,190) gr.drawString(cCameraPos["z"],100,200) ] #End