SA-MP Forums Archive
Multiple InterpolateCamera - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Multiple InterpolateCamera (/showthread.php?tid=469752)



Multiple InterpolateCamera - DJ_Shocker - 14.10.2013

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);



Re: Multiple InterpolateCamera - bensmart469 - 14.10.2013

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


Re: Multiple InterpolateCamera - Dragonsaurus - 14.10.2013

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.


Re: Multiple InterpolateCamera - DJ_Shocker - 14.10.2013

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?


Re: Multiple InterpolateCamera - Akcent_Voltaj - 14.10.2013

i think a sow problem..

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


Re: Multiple InterpolateCamera - DJ_Shocker - 14.10.2013

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


Re: Multiple InterpolateCamera - InfiniTy. - 14.10.2013

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..


Re: Multiple InterpolateCamera - DJ_Shocker - 14.10.2013

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!)


Re: Multiple InterpolateCamera - Akcent_Voltaj - 14.10.2013

and you get no errors??..u get 2 errors here


Re: Multiple InterpolateCamera - DJ_Shocker - 14.10.2013

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);
}