Multiple InterpolateCamera
#1

Ok SA-MP Geniuses.....

I have multiple positions that I would like shown on our login screen while the player Registers or Logs in....
the camera will move from Point A to Point B, sit there for about 5 seconds, then jump to the next spot.....
and move from point a, to point b again, and then jump to the next spot...

I've seen servers accomplish this, however, I'm not sure how. I've got the positions and camera moves, but it always just jumps to the final one.

How can one achieve this, oh wise ones?

pawn Код:
InterpolateCameraPos(playerid, 1529.670898, -1692.837036, 14.065500, 1288.749511, -2030.166015, 65.041397, 3000, 1);
InterpolateCameraLookAt(playerid, 1529.627685, -1691.839233, 14.015061, 1284.760864, -2030.078613, 64.752624, 3000, 1);
InterpolateCameraPos(playerid, 1288.749511, -2030.166015, 65.041397, 1110.219116, -1980.145996, 85.818496, 10000, 1);
InterpolateCameraLookAt(playerid, 1284.760864, -2030.078613, 64.752624, 1112.319335, -1983.507568, 85.281295, 10000, 1);
InterpolateCameraPos(playerid, 1110.219116, -1980.145996, 85.818496, 762.078735, -1450.432128, 25.058946, 1, 1);
InterpolateCameraLookAt(playerid, 1112.319335, -1983.507568, 85.281295, 758.224487, -1449.813110, 24.186281, 1, 1);
InterpolateCameraPos(playerid, 762.078735, -1450.432128, 25.058946, 679.558715, -1400.052490, 38.277008, 10000, 2);
InterpolateCameraLookAt(playerid, 758.224487, -1449.813110, 24.186281, 682.263732, -1402.620971, 36.832752, 10000, 2);
InterpolateCameraPos(playerid, 679.558715, -1400.052490, 38.277008, 642.506591, -1318.342285, 18.441411, 1, 1);
InterpolateCameraLookAt(playerid, 682.263732, -1402.620971, 36.832752, 645.241455, -1315.520629, 17.693803, 1, 1);
InterpolateCameraPos(playerid, 642.506591, -1318.342285, 18.441411, 661.781555, -1198.915039, 36.526477, 10000, 2);
InterpolateCameraLookAt(playerid, 645.241455, -1315.520629, 17.693803, 663.071899, -1202.495971, 35.296871, 10000, 2);
InterpolateCameraPos(playerid, 661.781555, -1198.915039, 36.526477, 1427.592651, 654.615051, 15.030982, 1, 1);
InterpolateCameraLookAt(playerid, 663.071899, -1202.495971, 35.296871, 1429.275146, 658.230651, 15.341714, 1, 1);
InterpolateCameraPos(playerid, 1427.592651, 654.615051, 15.030982, 1545.404052, 652.314208, 29.581520, 10000, 2);
InterpolateCameraLookAt(playerid, 1429.275146, 658.230651, 15.341714, 1544.078125, 656.049133, 29.040849, 10000, 2);
InterpolateCameraPos(playerid, 1545.404052, 652.314208, 29.581520, 2563.836181, 2234.835449, 18.604879, 1, 1);
InterpolateCameraLookAt(playerid, 1544.078125, 656.049133, 29.040849, 2565.585449, 2238.378417, 17.982484, 1, 1);
InterpolateCameraPos(playerid, 2563.836181, 2234.835449, 18.604879, 2651.413085, 2219.398437, 35.467823, 10000, 2);
InterpolateCameraLookAt(playerid, 2565.585449, 2238.378417, 17.982484, 2650.147705, 2223.104736, 34.654510, 10000, 2);
InterpolateCameraPos(playerid, 2651.413085, 2219.398437, 35.467823, 1507.390014, 2839.629638, 13.318983, 1, 1);
InterpolateCameraLookAt(playerid, 2650.147705, 2223.104736, 34.654510, 1504.343505, 2837.054199, 13.026089, 1, 1);
InterpolateCameraPos(playerid, 1507.390014, 2839.629638, 13.318983, 1517.393798, 2725.913818, 24.917060, 10000, 2);
InterpolateCameraLookAt(playerid, 1504.343505, 2837.054199, 13.026089, 1514.215454, 2728.138183, 23.942197, 10000, 2);
Reply
#2

Perhaps setting a timer using the SetTimerEx function:
https://sampwiki.blast.hk/wiki/SetTimerEx
Isn't the best way but it'll do.
Reply
#3

pawn Код:
new CamCount[MAX_PLAYERS];  // Global, on top of your script.

forward MoveCam(playerid);
public MoveCam(playerid)
{
    switch(CamCount[playerid])
    {
        case 0: InterpolateCameraPos(playerid, 1529.670898, -1692.837036, 14.065500, 1288.749511, -2030.166015, 65.041397, 5000, 1), InterpolateCameraLookAt(playerid, 1529.627685, -1691.839233, 14.015061, 1284.760864, -2030.078613, 64.752624, 5000, 1);
        case 1: InterpolateCameraPos(playerid, 1288.749511, -2030.166015, 65.041397, 1110.219116, -1980.145996, 85.818496, 5000, 1), InterpolateCameraLookAt(playerid, 1284.760864, -2030.078613, 64.752624, 1112.319335, -1983.507568, 85.281295, 5000, 1);
        case 2: InterpolateCameraPos(playerid, 1110.219116, -1980.145996, 85.818496, 762.078735, -1450.432128, 25.058946, 5000, 1), InterpolateCameraLookAt(playerid, 1112.319335, -1983.507568, 85.281295, 758.224487, -1449.813110, 24.186281, 5000, 1);
        case 3: InterpolateCameraPos(playerid, 762.078735, -1450.432128, 25.058946, 679.558715, -1400.052490, 38.277008, 5000, 2), InterpolateCameraLookAt(playerid, 758.224487, -1449.813110, 24.186281, 682.263732, -1402.620971, 36.832752, 5000, 2);
        case 4: InterpolateCameraPos(playerid, 679.558715, -1400.052490, 38.277008, 642.506591, -1318.342285, 18.441411, 5000, 1), InterpolateCameraLookAt(playerid, 682.263732, -1402.620971, 36.832752, 645.241455, -1315.520629, 17.693803, 5000, 1);
        case 5: InterpolateCameraPos(playerid, 642.506591, -1318.342285, 18.441411, 661.781555, -1198.915039, 36.526477, 5000, 2), InterpolateCameraLookAt(playerid, 645.241455, -1315.520629, 17.693803, 663.071899, -1202.495971, 35.296871, 5000, 2);
        case 6: InterpolateCameraPos(playerid, 661.781555, -1198.915039, 36.526477, 1427.592651, 654.615051, 15.030982, 5000, 1), InterpolateCameraLookAt(playerid, 663.071899, -1202.495971, 35.296871, 1429.275146, 658.230651, 15.341714, 5000, 1);
        case 7: InterpolateCameraPos(playerid, 1427.592651, 654.615051, 15.030982, 1545.404052, 652.314208, 29.581520, 5000, 2), InterpolateCameraLookAt(playerid, 1429.275146, 658.230651, 15.341714, 1544.078125, 656.049133, 29.040849, 5000, 2);
        case 8: InterpolateCameraPos(playerid, 1545.404052, 652.314208, 29.581520, 2563.836181, 2234.835449, 18.604879, 5000, 1), InterpolateCameraLookAt(playerid, 1544.078125, 656.049133, 29.040849, 2565.585449, 2238.378417, 17.982484, 5000, 1);
        case 9: InterpolateCameraPos(playerid, 2563.836181, 2234.835449, 18.604879, 2651.413085, 2219.398437, 35.467823, 5000, 2), InterpolateCameraLookAt(playerid, 2565.585449, 2238.378417, 17.982484, 2650.147705, 2223.104736, 34.654510, 5000, 2);
        case 10: InterpolateCameraPos(playerid, 2651.413085, 2219.398437, 35.467823, 1507.390014, 2839.629638, 13.318983, 5000, 1), InterpolateCameraLookAt(playerid, 2650.147705, 2223.104736, 34.654510, 1504.343505, 2837.054199, 13.026089, 5000, 1);
        case 11: InterpolateCameraPos(playerid, 1507.390014, 2839.629638, 13.318983, 1517.393798, 2725.913818, 24.917060, 5000, 2), InterpolateCameraLookAt(playerid, 1504.343505, 2837.054199, 13.026089, 1514.215454, 2728.138183, 23.942197, 5000, 2);
        default: CamCount = 0, return 1;
    }
    CamCount++;
    SetTimerEx("MoveCam", 5000, false, "d", playerid);
}
Usage: MoveCam(playerid); Where ever you want this to happen.
Reply
#4

Quote:
Originally Posted by Dragonsaurus
Посмотреть сообщение
pawn Код:
new CamCount[MAX_PLAYERS];  // Global, on top of your script.

forward MoveCam(playerid);
public MoveCam(playerid)
{
    switch(CamCount[playerid])
    {
        case 0: InterpolateCameraPos(playerid, 1529.670898, -1692.837036, 14.065500, 1288.749511, -2030.166015, 65.041397, 5000, 1), InterpolateCameraLookAt(playerid, 1529.627685, -1691.839233, 14.015061, 1284.760864, -2030.078613, 64.752624, 5000, 1);
        case 1: InterpolateCameraPos(playerid, 1288.749511, -2030.166015, 65.041397, 1110.219116, -1980.145996, 85.818496, 5000, 1), InterpolateCameraLookAt(playerid, 1284.760864, -2030.078613, 64.752624, 1112.319335, -1983.507568, 85.281295, 5000, 1);
        case 2: InterpolateCameraPos(playerid, 1110.219116, -1980.145996, 85.818496, 762.078735, -1450.432128, 25.058946, 5000, 1), InterpolateCameraLookAt(playerid, 1112.319335, -1983.507568, 85.281295, 758.224487, -1449.813110, 24.186281, 5000, 1);
        case 3: InterpolateCameraPos(playerid, 762.078735, -1450.432128, 25.058946, 679.558715, -1400.052490, 38.277008, 5000, 2), InterpolateCameraLookAt(playerid, 758.224487, -1449.813110, 24.186281, 682.263732, -1402.620971, 36.832752, 5000, 2);
        case 4: InterpolateCameraPos(playerid, 679.558715, -1400.052490, 38.277008, 642.506591, -1318.342285, 18.441411, 5000, 1), InterpolateCameraLookAt(playerid, 682.263732, -1402.620971, 36.832752, 645.241455, -1315.520629, 17.693803, 5000, 1);
        case 5: InterpolateCameraPos(playerid, 642.506591, -1318.342285, 18.441411, 661.781555, -1198.915039, 36.526477, 5000, 2), InterpolateCameraLookAt(playerid, 645.241455, -1315.520629, 17.693803, 663.071899, -1202.495971, 35.296871, 5000, 2);
        case 6: InterpolateCameraPos(playerid, 661.781555, -1198.915039, 36.526477, 1427.592651, 654.615051, 15.030982, 5000, 1), InterpolateCameraLookAt(playerid, 663.071899, -1202.495971, 35.296871, 1429.275146, 658.230651, 15.341714, 5000, 1);
        case 7: InterpolateCameraPos(playerid, 1427.592651, 654.615051, 15.030982, 1545.404052, 652.314208, 29.581520, 5000, 2), InterpolateCameraLookAt(playerid, 1429.275146, 658.230651, 15.341714, 1544.078125, 656.049133, 29.040849, 5000, 2);
        case 8: InterpolateCameraPos(playerid, 1545.404052, 652.314208, 29.581520, 2563.836181, 2234.835449, 18.604879, 5000, 1), InterpolateCameraLookAt(playerid, 1544.078125, 656.049133, 29.040849, 2565.585449, 2238.378417, 17.982484, 5000, 1);
        case 9: InterpolateCameraPos(playerid, 2563.836181, 2234.835449, 18.604879, 2651.413085, 2219.398437, 35.467823, 5000, 2), InterpolateCameraLookAt(playerid, 2565.585449, 2238.378417, 17.982484, 2650.147705, 2223.104736, 34.654510, 5000, 2);
        case 10: InterpolateCameraPos(playerid, 2651.413085, 2219.398437, 35.467823, 1507.390014, 2839.629638, 13.318983, 5000, 1), InterpolateCameraLookAt(playerid, 2650.147705, 2223.104736, 34.654510, 1504.343505, 2837.054199, 13.026089, 5000, 1);
        case 11: InterpolateCameraPos(playerid, 1507.390014, 2839.629638, 13.318983, 1517.393798, 2725.913818, 24.917060, 5000, 2), InterpolateCameraLookAt(playerid, 1504.343505, 2837.054199, 13.026089, 1514.215454, 2728.138183, 23.942197, 5000, 2);
        default: CamCount = 0, return 1;
    }
    CamCount++;
    SetTimerEx("MoveCam", 5000, false, "d", playerid);
}
Usage: MoveCam(playerid); Where ever you want this to happen.
Hmmm..I see what you did there.
I did attempt to use this, and got an error that CamCount needs to be indexed where it says CamCount = 0

And this will cycle through all the Camera's? Like, when one finishes, it'll automatically move to the next one?
Reply
#5

i think a sow problem..

is it this line?
"default: CamCount = 0, return 1;"
Reply
#6

Quote:
Originally Posted by Akcent_Voltaj
Посмотреть сообщение
i think a sow problem..

is it this line?
"default: CamCount = 0, return 1;"
Yeah it said CamCount needed to be Indexed
Reply
#7

pawn Код:
new CamCount[MAX_PLAYERS];  // Global, on top of your script.

forward MoveCam(playerid);
public MoveCam(playerid)
{
    switch(CamCount[playerid])
    {
        case 0: InterpolateCameraPos(playerid, 1529.670898, -1692.837036, 14.065500, 1288.749511, -2030.166015, 65.041397, 5000, 1), InterpolateCameraLookAt(playerid, 1529.627685, -1691.839233, 14.015061, 1284.760864, -2030.078613, 64.752624, 5000, 1);
        case 1: InterpolateCameraPos(playerid, 1288.749511, -2030.166015, 65.041397, 1110.219116, -1980.145996, 85.818496, 5000, 1), InterpolateCameraLookAt(playerid, 1284.760864, -2030.078613, 64.752624, 1112.319335, -1983.507568, 85.281295, 5000, 1);
        case 2: InterpolateCameraPos(playerid, 1110.219116, -1980.145996, 85.818496, 762.078735, -1450.432128, 25.058946, 5000, 1), InterpolateCameraLookAt(playerid, 1112.319335, -1983.507568, 85.281295, 758.224487, -1449.813110, 24.186281, 5000, 1);
        case 3: InterpolateCameraPos(playerid, 762.078735, -1450.432128, 25.058946, 679.558715, -1400.052490, 38.277008, 5000, 2), InterpolateCameraLookAt(playerid, 758.224487, -1449.813110, 24.186281, 682.263732, -1402.620971, 36.832752, 5000, 2);
        case 4: InterpolateCameraPos(playerid, 679.558715, -1400.052490, 38.277008, 642.506591, -1318.342285, 18.441411, 5000, 1), InterpolateCameraLookAt(playerid, 682.263732, -1402.620971, 36.832752, 645.241455, -1315.520629, 17.693803, 5000, 1);
        case 5: InterpolateCameraPos(playerid, 642.506591, -1318.342285, 18.441411, 661.781555, -1198.915039, 36.526477, 5000, 2), InterpolateCameraLookAt(playerid, 645.241455, -1315.520629, 17.693803, 663.071899, -1202.495971, 35.296871, 5000, 2);
        case 6: InterpolateCameraPos(playerid, 661.781555, -1198.915039, 36.526477, 1427.592651, 654.615051, 15.030982, 5000, 1), InterpolateCameraLookAt(playerid, 663.071899, -1202.495971, 35.296871, 1429.275146, 658.230651, 15.341714, 5000, 1);
        case 7: InterpolateCameraPos(playerid, 1427.592651, 654.615051, 15.030982, 1545.404052, 652.314208, 29.581520, 5000, 2), InterpolateCameraLookAt(playerid, 1429.275146, 658.230651, 15.341714, 1544.078125, 656.049133, 29.040849, 5000, 2);
        case 8: InterpolateCameraPos(playerid, 1545.404052, 652.314208, 29.581520, 2563.836181, 2234.835449, 18.604879, 5000, 1), InterpolateCameraLookAt(playerid, 1544.078125, 656.049133, 29.040849, 2565.585449, 2238.378417, 17.982484, 5000, 1);
        case 9: InterpolateCameraPos(playerid, 2563.836181, 2234.835449, 18.604879, 2651.413085, 2219.398437, 35.467823, 5000, 2), InterpolateCameraLookAt(playerid, 2565.585449, 2238.378417, 17.982484, 2650.147705, 2223.104736, 34.654510, 5000, 2);
        case 10: InterpolateCameraPos(playerid, 2651.413085, 2219.398437, 35.467823, 1507.390014, 2839.629638, 13.318983, 5000, 1), InterpolateCameraLookAt(playerid, 2650.147705, 2223.104736, 34.654510, 1504.343505, 2837.054199, 13.026089, 5000, 1);
        case 11: InterpolateCameraPos(playerid, 1507.390014, 2839.629638, 13.318983, 1517.393798, 2725.913818, 24.917060, 5000, 2), InterpolateCameraLookAt(playerid, 1504.343505, 2837.054199, 13.026089, 1514.215454, 2728.138183, 23.942197, 5000, 2);
        default: CamCount[playerid] = 0, return 1;
    }
    CamCount[playerid]++;
    SetTimerEx("MoveCam", 5000, false, "d", playerid);
}
You needed to add [playerid] as the index..
Reply
#8

Quote:
Originally Posted by InfiniTy.
Посмотреть сообщение
pawn Код:
new CamCount[MAX_PLAYERS];  // Global, on top of your script.

forward MoveCam(playerid);
public MoveCam(playerid)
{
    switch(CamCount[playerid])
    {
        case 0: InterpolateCameraPos(playerid, 1529.670898, -1692.837036, 14.065500, 1288.749511, -2030.166015, 65.041397, 5000, 1), InterpolateCameraLookAt(playerid, 1529.627685, -1691.839233, 14.015061, 1284.760864, -2030.078613, 64.752624, 5000, 1);
        case 1: InterpolateCameraPos(playerid, 1288.749511, -2030.166015, 65.041397, 1110.219116, -1980.145996, 85.818496, 5000, 1), InterpolateCameraLookAt(playerid, 1284.760864, -2030.078613, 64.752624, 1112.319335, -1983.507568, 85.281295, 5000, 1);
        case 2: InterpolateCameraPos(playerid, 1110.219116, -1980.145996, 85.818496, 762.078735, -1450.432128, 25.058946, 5000, 1), InterpolateCameraLookAt(playerid, 1112.319335, -1983.507568, 85.281295, 758.224487, -1449.813110, 24.186281, 5000, 1);
        case 3: InterpolateCameraPos(playerid, 762.078735, -1450.432128, 25.058946, 679.558715, -1400.052490, 38.277008, 5000, 2), InterpolateCameraLookAt(playerid, 758.224487, -1449.813110, 24.186281, 682.263732, -1402.620971, 36.832752, 5000, 2);
        case 4: InterpolateCameraPos(playerid, 679.558715, -1400.052490, 38.277008, 642.506591, -1318.342285, 18.441411, 5000, 1), InterpolateCameraLookAt(playerid, 682.263732, -1402.620971, 36.832752, 645.241455, -1315.520629, 17.693803, 5000, 1);
        case 5: InterpolateCameraPos(playerid, 642.506591, -1318.342285, 18.441411, 661.781555, -1198.915039, 36.526477, 5000, 2), InterpolateCameraLookAt(playerid, 645.241455, -1315.520629, 17.693803, 663.071899, -1202.495971, 35.296871, 5000, 2);
        case 6: InterpolateCameraPos(playerid, 661.781555, -1198.915039, 36.526477, 1427.592651, 654.615051, 15.030982, 5000, 1), InterpolateCameraLookAt(playerid, 663.071899, -1202.495971, 35.296871, 1429.275146, 658.230651, 15.341714, 5000, 1);
        case 7: InterpolateCameraPos(playerid, 1427.592651, 654.615051, 15.030982, 1545.404052, 652.314208, 29.581520, 5000, 2), InterpolateCameraLookAt(playerid, 1429.275146, 658.230651, 15.341714, 1544.078125, 656.049133, 29.040849, 5000, 2);
        case 8: InterpolateCameraPos(playerid, 1545.404052, 652.314208, 29.581520, 2563.836181, 2234.835449, 18.604879, 5000, 1), InterpolateCameraLookAt(playerid, 1544.078125, 656.049133, 29.040849, 2565.585449, 2238.378417, 17.982484, 5000, 1);
        case 9: InterpolateCameraPos(playerid, 2563.836181, 2234.835449, 18.604879, 2651.413085, 2219.398437, 35.467823, 5000, 2), InterpolateCameraLookAt(playerid, 2565.585449, 2238.378417, 17.982484, 2650.147705, 2223.104736, 34.654510, 5000, 2);
        case 10: InterpolateCameraPos(playerid, 2651.413085, 2219.398437, 35.467823, 1507.390014, 2839.629638, 13.318983, 5000, 1), InterpolateCameraLookAt(playerid, 2650.147705, 2223.104736, 34.654510, 1504.343505, 2837.054199, 13.026089, 5000, 1);
        case 11: InterpolateCameraPos(playerid, 1507.390014, 2839.629638, 13.318983, 1517.393798, 2725.913818, 24.917060, 5000, 2), InterpolateCameraLookAt(playerid, 1504.343505, 2837.054199, 13.026089, 1514.215454, 2728.138183, 23.942197, 5000, 2);
        default: CamCount[playerid] = 0, return 1;
    }
    CamCount[playerid]++;
    SetTimerEx("MoveCam", 5000, false, "d", playerid);
}
You needed to add [playerid] as the index..
Yeah i figured that out. I'm having a dumb day I guess, lol took me a bit. 2 hours of sleep in 2 days will do that >.>
Thanks Everyone! +Rep(as soon as my 24 Hour Limit is lifted!)
Reply
#9

and you get no errors??..u get 2 errors here
Reply
#10

Strange thing is:
(946) : error 029: invalid expression, assumed zero
(946) : error 036: empty statement
pawn Код:
case 11: InterpolateCameraPos(playerid, 1507.390014, 2839.629638, 13.318983, 1517.393798, 2725.913818, 24.917060, 5000, 2), InterpolateCameraLookAt(playerid, 1504.343505, 2837.054199, 13.026089, 1514.215454, 2728.138183, 23.942197, 5000, 2);
        default: CamCount[playerid] = 0, return 1;//LINE 946
    }
    CamCount[playerid] ++;
    SetTimerEx("MoveCam", 5000, false, "d", playerid);
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)