Clientside 3rd person camera

Discuss all aspects related to modding Zandronum here.
Post Reply
Llewellyn
Forum Regular
Posts: 578
Joined: Mon Jul 02, 2012 7:12 am

Clientside 3rd person camera

#1

Post by Llewellyn » Tue Aug 07, 2012 3:27 am

I'm having a bit of trouble trying to make a clientside camera which doesn't lag it's arse off with your ping. I tried like four times to make this clientside and kept ending up not working because I simply don't know which functions will work correctly under a CLIENTSIDE script or not.

I was using the 3rd person camera from the Zdoom wiki:
Spoiler: Code (Open)

Code: Select all

Script 12 (int p_num)
{
	int r = MAX_R;
	
	while (true)
	{	
		int a = GetActorAngle (0);
		int p = GetActorPitch (0);
		int x = GetActorX (0);
		int y = GetActorY (0);
		int z = GetActorZ (0) + VIEW_HEIGHT;
		int xyr = r * cos (p) >> 16;
		
		if (!ThingCountName ("ChaseCam", C_TID+p_num))
		{
			while (!Spawn ("ChaseCam", x-cos(a)*xyr, y-sin(a)*xyr, z+sin(p)*r, C_TID+p_num, a >> 8) && r > 0)
			{
				r -= ADJUST_R;
				xyr = cos (p) * r >> 16;
			}
			
			if (ThingCountName ("ChaseCam", C_TID + p_num))
				//ChangeCamera (C_TID + p_num, 0, 0);
			else
			{
				print (s:"Camera script failed to initialize.");
                                terminate;
			}
		}
		else
		{
			while (!SetActorPosition (C_TID+p_num, x-cos(a)*xyr, y-sin(a)*xyr, z+sin(p)*r, 0) && r > 0)
			{
				r -= ADJUST_R;
				xyr = cos (p) * r >> 16;
			}
			
			SetActorAngle (C_TID + p_num, a);
			SetActorPitch (C_TID + p_num, p);
			
			if (r < MAX_R) 
                                r += ADJUST_R;
		}
		
		delay (1);
	}
}
It seems that ChangeCamera doesn't work in CLIENTSIDE (for no good reason...)

Post Reply