Discuss all aspects related to modding Zandronum here.
-
Llewellyn
- Forum Regular
- Posts: 578
- Joined: Mon Jul 02, 2012 7:12 am
#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...)