Advertisement
Guest User

Rollercoaster FS by NaS

a guest
Oct 22nd, 2011
944
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.77 KB | None | 0 0
  1. // Rollercoaster FS by NaS. Just a test, nothing special
  2. // Type /start to start the rollercoaster
  3.  
  4.  
  5. #include <a_samp>
  6.  
  7. #define COASTER_MAX_SPEED 46
  8. #define COASTER_MIN_SPEED 6
  9.  
  10. enum E_MAP
  11. {
  12.     mID,
  13.     Float:X,
  14.     Float:Y,
  15.     Float:Z,
  16.     Float:Xr,
  17.     Float:Yr,
  18.     Float:Zr,
  19.     Float:DDis,
  20.     oID
  21. };
  22.  
  23. new Map[][E_MAP] =
  24. {
  25.     {1307, 836.3645, -2062.6858, 17.5441, 0.0000, 90.0689, 0.0000, 500.0},
  26.     {1307, 855.5804, -2062.7720, 17.5590, 0.0000, 78.2087, 337.5000, 500.0},
  27.     {1307, 872.9343, -2070.0596, 21.5191, 0.0000, 70.4738, 315.0000, 500.0},
  28.     {1307, 885.6850, -2082.8008, 27.9108, 0.0000, 70.4738, 315.0000, 500.0},
  29.     {1307, 898.3865, -2095.4927, 34.2466, 0.0000, 70.4738, 315.0000, 500.0},
  30.     {1307, 911.0762, -2108.1052, 40.5846, 0.0000, 70.4738, 281.2500, 500.0},
  31.     {1307, 914.4913, -2125.3447, 46.7929, 0.0000, 58.4416, 258.7500, 500.0},
  32.     {1307, 911.4092, -2140.8354, 56.4435, 0.0000, 58.4416, 236.2501, 500.0},
  33.     {1307, 902.5678, -2154.0691, 66.2063, 0.0000, 58.4416, 236.2500, 500.0},
  34.     {1307, 893.5728, -2167.2632, 75.8510, 280.0724, 80.7870, 168.7500, 500.0},
  35.     {1307, 875.0304, -2166.6340, 76.3903, 355.7028, 91.1002, 172.8927, 500.0},
  36.     {1307, 856.4930, -2164.2939, 76.0348, 1.7189, 86.8030, 172.8927, 500.0},
  37.     {1307, 838.3586, -2162.0542, 77.1086, 355.7028, 109.1483, 172.8927, 500.0},
  38.     {1307, 820.6629, -2159.3831, 70.7675, 355.7028, 130.6344, 172.8927, 500.0},
  39.     {1307, 806.5506, -2156.6953, 58.4420, 355.7028, 137.5099, 195.3928, 500.0},
  40.     {1307, 793.8942, -2159.1570, 44.5164, 355.7028, 109.1483, 229.1428, 500.0},
  41.     {1307, 782.0253, -2172.4026, 38.2655, 355.7028, 109.1483, 296.6427, 500.0},
  42.     {1307, 789.5348, -2188.4758, 32.1224, 355.7028, 109.1483, 341.6428, 500.0},
  43.     {1307, 806.5006, -2194.4883, 25.9317, 0.0000, 102.2729, 22.5000, 500.0},
  44.     {1307, 823.5551, -2187.2407, 21.8592, 0.0000, 105.7106, 67.5000, 500.0},
  45.     {1307, 830.7902, -2170.3823, 16.5401, 0.0000, 108.2889, 11.2500, 500.0},
  46.     {1307, 848.5286, -2166.8496, 10.5824, 0.0000, 82.5058, 11.2500, 500.0},
  47.     {1307, 866.2659, -2163.3970, 12.9176, 0.0000, 82.5058, 11.2500, 500.0},
  48.     {1307, 884.3649, -2159.8181, 15.3238, 0.0000, 82.5058, 11.2500, 500.0},
  49.     {1307, 902.7695, -2156.1626, 17.7830, 0.0000, 82.5058, 11.2500, 500.0},
  50.     {1307, 921.4432, -2152.4321, 20.4332, 0.0000, 55.8633, 11.2500, 500.0},
  51.     {1307, 936.8687, -2149.2583, 31.2114, 0.0000, 55.8633, 56.2500, 500.0},
  52.     {1307, 945.5743, -2136.0176, 41.9631, 0.0000, 55.8633, 90.0000, 500.0},
  53.     {1307, 945.3987, -2120.4009, 52.5658, 0.0000, 55.8633, 123.7499, 500.0},
  54.     {1307, 936.5450, -2107.2891, 63.1030, 0.0000, 55.8633, 157.5000, 500.0},
  55.     {1307, 922.3080, -2101.3647, 73.4521, 0.0000, 77.3492, 157.5000, 500.0},
  56.     {1307, 905.4503, -2094.4023, 77.5481, 0.0000, 77.3492, 157.5000, 500.0},
  57.     {1307, 888.5720, -2087.4058, 81.5829, 0.0000, 97.1162, 157.5000, 500.0},
  58.     {1307, 871.0295, -2080.1194, 79.1455, 0.0000, 111.7267, 157.5000, 500.0},
  59.     {1307, 854.6481, -2073.2871, 72.0496, 359.1406, 125.4777, 157.5000, 500.0},
  60.     {1307, 840.4221, -2067.1741, 60.9146, 359.1406, 147.8232, 157.5000, 500.0},
  61.     {1307, 831.2380, -2063.1216, 45.0612, 359.1406, 116.0238, 157.5000, 500.0},
  62.     {1307, 815.4641, -2056.4226, 36.7410, 359.1406, 95.3974, 157.5000, 500.0},
  63.     {1307, 797.9647, -2049.1086, 35.0883, 359.1406, 60.1605, 157.5000, 500.0},
  64.     {1307, 782.7484, -2042.9595, 44.5987, 359.1406, 31.7991, 157.5000, 500.0},
  65.     {1307, 773.2509, -2039.2358, 60.8103, 359.1406, 69.6143, 157.5000, 500.0},
  66.     {1307, 756.5907, -2032.6459, 67.4443, 359.1406, 87.6624, 202.5000, 500.0},
  67.     {1307, 738.9100, -2040.1178, 68.2271, 359.1406, 87.6624, 236.2500, 500.0},
  68.     {1307, 728.4451, -2055.9736, 69.0215, 359.1406, 87.6624, 281.2500, 500.0},
  69.     {1307, 732.2672, -2074.6289, 69.7162, 359.1406, 104.8512, 0.0001, 500.0},
  70.     {1307, 750.7485, -2074.7141, 64.7285, 359.1406, 126.3371, 0.0001, 500.0},
  71.     {1307, 766.2249, -2074.8943, 53.2683, 359.1406, 138.3694, 11.2501, 500.0},
  72.     {1307, 778.5483, -2072.6057, 39.0934, 359.1406, 138.3694, 56.2501, 500.0},
  73.     {1307, 785.9787, -2062.1348, 24.9348, 359.1406, 112.5861, 354.3752, 500.0},
  74.     {1307, 803.6379, -2063.9277, 17.6409, 0.0000, 90.0689, 0.0000, 500.0},
  75.     {1307, 822.4084, -2063.7566, 17.5943, 0.0000, 90.0689, 4.2187, 500.0}
  76. };
  77.  
  78. new Coaster;
  79. new CoasterPos=0;
  80. new speed;
  81.  
  82. public OnFilterScriptInit()
  83. {
  84.     print("\n--------------------------------------");
  85.     print(" Rollercoaster v1 [Testversion] by NaS3 loaded.");
  86.     print("--------------------------------------\n");
  87.    
  88.    
  89.     for(new i; i < sizeof(Map); i++)
  90.     {
  91.         Map[i][Z] -= 2.0;
  92.         Map[i][oID] = CreateObject(Map[i][mID],Map[i][X],Map[i][Y],Map[i][Z],Map[i][Xr],Map[i][Yr],Map[i][Zr],Map[i][DDis]);
  93.     }
  94.    
  95.     Coaster=CreateObject(18879,Map[0][X],Map[0][Y],Map[0][Z]-0.5,0,0,0,50000);
  96.     return 1;
  97. }
  98.  
  99. public OnFilterScriptExit()
  100. {
  101.     DestroyObject(Coaster);
  102.    
  103.     for(new i; i < sizeof(Map); i++)
  104.     {
  105.         DestroyObject(Map[i][oID]);
  106.     }
  107.     return 1;
  108. }
  109.  
  110. public OnPlayerCommandText(playerid, cmdtext[])
  111. {
  112.     if (strcmp("/start", cmdtext, true) == 0)
  113.     {
  114.         CoasterPos=0;
  115.         speed = COASTER_MIN_SPEED;
  116.         SetObjectPos(Coaster,Map[0][X],Map[0][Y],Map[0][Z]-0.5);
  117.         MoveObject(Coaster,Map[1][X],Map[1][Y],Map[1][Z]-0.5,speed);
  118.         return 1;
  119.     }
  120.     return 0;
  121. }
  122.  
  123. public OnObjectMoved(objectid)
  124. {
  125.     if(objectid == Coaster)
  126.     {
  127.         if(CoasterPos == -1) return 1;
  128.         StopObject(Coaster);
  129.         CoasterPos++;
  130.         if(CoasterPos == sizeof(Map))
  131.         {
  132.             CoasterPos = -1;
  133.             MoveObject(Coaster,Map[0][X],Map[0][Y],Map[0][Z]-0.5,COASTER_MIN_SPEED);
  134.             return 1;
  135.         }
  136.        
  137.         new Float:Difference;
  138.        
  139.         Difference = Map[CoasterPos-1][Z] - Map[CoasterPos][Z];
  140.        
  141.         if(Difference < 0.0) speed-=5;
  142.         else speed +=5;
  143.        
  144.         if(speed > COASTER_MAX_SPEED) speed = COASTER_MAX_SPEED;
  145.         if(speed < COASTER_MIN_SPEED) speed = COASTER_MIN_SPEED;
  146.        
  147.         MoveObject(Coaster,Map[CoasterPos][X],Map[CoasterPos][Y],Map[CoasterPos][Z]-0.5,speed);
  148.     }
  149.     return 1;
  150. }
  151.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement