Code:
doBirdsEye()
{
wait .01;
self setClientUIVisibilityFlag("hud_visible", 0);
self allowADS(false);
self setMoveSpeedScale(1.2);
birdsEyeCamera = spawn("script_model", self.origin + (0, 0, 600));
birdsEyeCamera.angles = (90, 90, 0);
birdsEyeCamera setModel("tag_origin");
self CameraSetLookAt(birdsEyeCamera);
self CameraSetPosition(birdsEyeCamera);
self CameraActivate(true);
self thread disableOnRespawn(birdsEyeCamera);
self endon("death");
self endon("disconnect");
temporaryOffset = 600;
while(1)
{
sightPassed = SightTracePassed(self.origin + (0, 0, 600), self.origin, false, birdsEyeCamera);
if(sightPassed && birdsEyeCamera.origin[2] - self.origin[2] < 600)
{
temporaryOffset = birdsEyeCamera.origin[2] - self.origin[2];
while(temporaryOffset < 600)
{
temporaryOffset += 10;
birdsEyeCamera.origin = self.origin + (0, 0, temporaryOffset);
wait 0.01;
}
}
while(!SightTracePassed(self.origin + (0, 0, temporaryOffset), self.origin, false, birdsEyeCamera))
{
temporaryOffset -= 20;
birdsEyeCamera.origin = self.origin + (0, 0, temporaryOffset);
wait 0.01;
}
birdsEyeCamera.origin = self.origin + (0, 0, temporaryOffset);
wait 0.001;
}
}
disableOnRespawn(bCam)
{
self waittill("spawned_player");
self CameraActivate(false);
bCam delete();
}
Make sure to add:
self thread doBirdsEye();
under onPlayerSpawned and also add these codes under init() or onPlayerConnect():
Code:
setDvar("player_view_pitch_down", "0");
setDvar("player_view_pitch_up", "0");
Thanks to @Yamato for the pitch dvars.