rendered paste body#Global Hooks$Global:[missionTime = mn.getMissionTime()if missionTime ~= nil and missionTime > 0.5 then--gr.setColor(255,255,0)--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)--gr.drawString(me.Physics.RotationalVelocity[1],100,220)--gr.drawString(me.Physics.RotationalVelocity[2],100,230)--gr.drawString(me.Physics.RotationalVelocity[3],100,240)--gr.drawString(me.Physics.RotationalVelocityDesired[1],100,260)--gr.drawString(me.Physics.RotationalVelocityDesired[2],100,270)--gr.drawString(me.Physics.RotationalVelocityDesired[3],100,280)--directionVec = ba.createVector(0,0,100)--pointerVec = currentOri:rotateVector(directionVec)--gr.drawString(pointerVec[1],100,300)--gr.drawString(pointerVec[2],100,310)--gr.drawString(pointerVec[3],100,320)end]$Simulation:[missionTime = mn.getMissionTime()frameTime = ba.getFrametime(true)if missionTime < 0.5 then --camerainit == nil then blankOri = mn.Ships[1].Orientation blankOri["p"] = 0 blankOri["b"] = 0 blankOri["h"] = 0 cCameraPos = ba.createVector(0,15,-75) cCameraOri = blankOri chaseCamera = ts.createCamera("chaseCamera1",cCameraPos, cCameraOri) ts.setCamera(chaseCamera) --camerainit = 42 directionVec = ba.createVector(0,0,100) nullVec = ba.createVector(0,0,0) aimTexture = gr.loadTexture("ParticleExp01",true) nullorientation = mn.Ships[1].Orientation nullorientation["b"] = 0 nullorientation["p"] = 0 nullorientation["h"] = 0 beginningpos = ba.createVector(10000,10000,10000) mn.createShip("Shootme",tb.ShipClasses["Target MK I"],nullorientation,beginningpos) mn.createShip("ShootmeToo",tb.ShipClasses["Target MK I"],nullorientation,beginningpos) mn.createShip("ShootmeAlso",tb.ShipClasses["Target MK I"],nullorientation,beginningpos)endif missionTime > 0.5 then 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 pointerVec = currentOri:unrotateVector(directionVec) newtargettingpos = currentPos + pointerVec/(1/1.25) mn.Ships["ShootmeAlso"].Position = newtargettingpos newtargettingpos = currentPos + pointerVec/(1/2.5) mn.Ships["Shootme"].Position = newtargettingpos newtargettingpos = currentPos + pointerVec/(1/5) mn.Ships["ShootmeToo"].Position = newtargettingpos --ts.createParticle(currentPos + pointerVec/(1/2),nullVec,frameTime,1,PARTICLE_BITMAP,-1,false,aimTexture) --ts.createParticle(currentPos + pointerVec/(1/4),nullVec,frameTime,1,PARTICLE_BITMAP,-1,false,aimTexture) --ts.createParticle(currentPos + pointerVec/(1/6),nullVec,frameTime,1,PARTICLE_BITMAP,-1,false,aimTexture) --ts.createParticle(currentPos + pointerVec/(1/8),nullVec,frameTime,1,PARTICLE_BITMAP,-1,false,aimTexture) --ts.createParticle(currentPos + pointerVec/(1/10),nullVec,frameTime,1,PARTICLE_BITMAP,-1,false,aimTexture) --Get where the Camera is supposed to be (50m behind the player) cCameraPos["y"] = cCameraPos["y"] - ((cCameraPos["y"] -15) - currentPos["y"]) / 150 cCameraPos["x"] = cCameraPos["x"] - (cCameraPos["x"] - currentPos["x"]) / 150 cCameraPos["z"] = currentPos["z"] - 75 chaseCamera:setPosition(cCameraPos) --Angle Limit shipAngle = math.sqrt(math.pow(currentOri["p"],2) + math.pow(currentOri["h"],2)) realRotVel = me.Physics.RotationalVelocity --if shipAngle > 0.25 then if math.pow(currentOri["h"],2) > math.pow(lastOri["h"],2) then realRotVel[2] = realRotVel[2] - 1*(currentOri["h"])/3 else realRotVel[2] = realRotVel[2] - 1*(currentOri["h"])/5 end if math.pow(currentOri["p"],2) > math.pow(lastOri["p"],2) then realRotVel[1] = realRotVel[1] - 1*(currentOri["p"])/3 else realRotVel[1] = realRotVel[1] - 1*(currentOri["p"])/5 end --end --if shipAngle > 0.524 then --currentOri = lastOri --end currentBank = currentOri["b"] if currentBank ~= 0 then realRotVel[3] = -2*currentBank/2 end me.Physics.RotationalVelocity = realRotVel --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 Checkend]#End