Advertisement
Kwarde

Missile blabla

Jul 3rd, 2011
858
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.35 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3.  
  4. #define LAUNCH_CLIFT    -3
  5. #define LAUNCH_NOM      -2
  6. #define LAUNCH_NONE     -1
  7. #define LAUNCH_OPENGATE 0
  8. #define LAUNCH_LIFTUP   1
  9. #define LAUNCH_READY    2
  10. #define LAUNCH_GO       3
  11.  
  12. #define COLOR_RED       0xFF0000AA
  13. #define COLOR_GREEN     0x00FF00AA
  14.  
  15. new jetDoor, lift,
  16.     missileBase[19],
  17.     missileObject[4],
  18.     launchStep = LAUNCH_NONE,
  19.     launchTimer = (-1)
  20. ;
  21.  
  22. public OnFilterScriptInit()
  23. {
  24.     missileBase[0] = CreateObject(7191, 264.07342529297, 1881.6575927734, -6.2552056312561, 270.25024414063, 0, 0);
  25.     missileBase[1] = CreateObject(7191, 264.08120727539, 1885.5596923828, -6.2552056312561, 270.24719238281, 0, 0);
  26.     missileBase[2] = CreateObject(7191, 264.07913208008, 1886.9434814453, -6.2552056312561, 270.24719238281, 0, 0);
  27.     missileBase[3] = CreateObject(7191, 265.77478027344, 1888.6229248047, -6.2552056312561, 270.2470703125, 0, 269.5);
  28.     missileBase[4] = CreateObject(7191, 269.59817504883, 1888.6110839844, -6.2552056312561, 270.24169921875, 0, 269.49462890625);
  29.     missileBase[5] = CreateObject(7191, 272.73175048828, 1888.5932617188, -6.2552056312561, 270.24169921875, 0, 269.49462890625);
  30.     missileBase[6] = CreateObject(7191, 273.43814086914, 1886.9455566406, -6.2552056312561, 270.24145507813, 0, 179.99462890625);
  31.     missileBase[7] = CreateObject(7191, 273.44381713867, 1883.1752929688, -6.2552056312561, 270.23620605469, 0, 179.99450683594);
  32.     missileBase[8] = CreateObject(7191, 273.50357055664, 1879.896484375, -6.2552056312561, 270.23620605469, 0, 179.99450683594);
  33.     missileBase[9] = CreateObject(7191, 271.66961669922, 1879.6162109375, -6.2552056312561, 270.23657226563, 0, 90.494506835938);
  34.     missileBase[10] = CreateObject(7191, 268.20278930664, 1879.5903320313, -6.2552056312561, 270.23657226563, 0, 89.991943359375);
  35.     missileBase[11] = CreateObject(7191, 265.30517578125, 1879.5936279297, -6.2552056312561, 270.23620605469, 0, 89.989013671875);
  36.     missileBase[12] = CreateObject(3530, 273.34002685547, 1884.0528564453, -15.669961929321, 0, 0, 0);
  37.     missileBase[13] = CreateObject(3530, 273.34033203125, 1884.0277099609, -6.1449637413025, 0, 0, 0);
  38.     missileBase[14] = CreateObject(3530, 273.33984375, 1884.02734375, 3.3550362586975, 0, 0, 0);
  39.     missileBase[15] = CreateObject(3530, 273.33984375, 1884.02734375, 13.130035400391, 0, 0, 0);
  40.     missileBase[16] = CreateObject(3530, 273.33984375, 1884.02734375, 22.380035400391, 0, 0, 0);
  41.     missileBase[17] = CreateObject(3530, 273.33984375, 1884.02734375, 32.130035400391, 0, 0, 0);
  42.     missileBase[18] = CreateObject(2951, 268.15289306641, 1875.2196044922, 7.609375, 0, 0, 0.25);
  43.    
  44.     jetDoor = CreateObject(3095, 268.62051391602, 1884.1695556641, 16.040634155273, 0, 0, 0);
  45.     lift = CreateObject(3115, 264.57867431641, 1888.5306396484, -20.273397445679, 0, 0, 0);
  46.    
  47.     CreateMissile();
  48.     return 1;
  49. }
  50.  
  51. public OnFilterScriptExit()
  52. {
  53.     DestroyObject(jetDoor);
  54.     DestroyObject(lift);
  55.     for(new i = 0; i < (sizeof(missileBase)); i++) DestroyObject(missileBase[i]);
  56.     for(new i = 0; i < (sizeof(missileObject)); i++) DestroyObject(missileObject[i]);
  57.     return 1;
  58. }
  59.  
  60. public OnObjectMoved(objectid)
  61. {
  62.     static Float:objPos[3];
  63.     if(objectid == jetDoor && launchStep == LAUNCH_OPENGATE)
  64.     {
  65.         MoveObject(lift, 264.578125, 1888.5302734375, 15.166597366333, 1.5);
  66.         MoveObject(missileObject[0], 268.8173828125, 1884.0546875, 14.281198501587, 1.5);
  67.         launchStep = LAUNCH_LIFTUP;
  68.     }
  69.     if(objectid == lift && launchStep == LAUNCH_CLIFT)
  70.     {
  71.         MoveObject(jetDoor, 268.62051391602, 1884.1695556641, 16.040634155273, 0.5);
  72.         launchStep = LAUNCH_NONE;
  73.     }
  74.     if(IsMissileObject(objectid))
  75.     {
  76.         if(launchStep == LAUNCH_LIFTUP)
  77.         {
  78.             missileObject[1] = CreateObject(2780, 266.30206298828, 1882.7292480469, 16.03343963623, 0, 0, 29);
  79.             missileObject[2] = CreateObject(2780, 268.78958129883, 1886.9494628906, -19.961563110352, 0, 0, 92.248413085938);
  80.             missileObject[3] = CreateObject(2780, 270.27523803711, 1881.5205078125, 15.873435974121, 0, 0, 119.24664306641);
  81.             launchStep = LAUNCH_READY;
  82.         }
  83.         else if(launchStep == LAUNCH_GO)
  84.         {
  85.             for(new i = 0; i < (sizeof(missileObject)); i++)
  86.             {
  87.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  88.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 2.3, 0.6);
  89.             }
  90.             launchStep++;
  91.         }
  92.         else if(launchStep == LAUNCH_GO + 1)
  93.         {
  94.             for(new i = 0; i < (sizeof(missileObject)); i++)
  95.             {
  96.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  97.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 2.3, 1.5);
  98.             }
  99.             launchStep++;
  100.         }
  101.         else if(launchStep == LAUNCH_GO + 2)
  102.         {
  103.             for(new i = 0; i < (sizeof(missileObject)); i++)
  104.             {
  105.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  106.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 3.5, 2);
  107.             }
  108.             launchStep++;
  109.         }
  110.         else if(launchStep == LAUNCH_GO + 3)
  111.         {
  112.             for(new i = 0; i < (sizeof(missileObject)); i++)
  113.             {
  114.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  115.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 3.5, 2.5);
  116.             }
  117.             launchStep++;
  118.         }
  119.         else if(launchStep == LAUNCH_GO + 4)
  120.         {
  121.             for(new i = 0; i < (sizeof(missileObject)); i++)
  122.             {
  123.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  124.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 7.5, 4);
  125.             }
  126.             launchStep++;
  127.         }
  128.         else if(launchStep == LAUNCH_GO + 5)
  129.         {
  130.             for(new i = 0; i < (sizeof(missileObject)); i++)
  131.             {
  132.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  133.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 7.5, 5.5);
  134.             }
  135.             MoveObject(jetDoor, 268.62051391602, 1884.1695556641, 16.040634155273, 0.5);
  136.             MoveObject(lift, 264.57867431641, 1888.5306396484, -20.273397445679, 1.5);
  137.             launchStep++;
  138.         }
  139.         else if(launchStep == LAUNCH_GO + 6)
  140.         {
  141.             for(new i = 0; i < (sizeof(missileObject)); i++)
  142.             {
  143.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  144.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 7.5, 6);
  145.             }
  146.             launchStep++;
  147.         }
  148.         else if(launchStep == LAUNCH_GO + 7)
  149.         {
  150.             for(new i = 0; i < (sizeof(missileObject)); i++)
  151.             {
  152.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  153.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 8, 8);
  154.             }
  155.             launchStep++;
  156.         }
  157.         else if(launchStep == LAUNCH_GO + 8)
  158.         {
  159.             for(new i = 0; i < (sizeof(missileObject)); i++)
  160.             {
  161.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  162.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 10, 15);
  163.             }
  164.             launchStep++;
  165.         }
  166.         else if(launchStep == LAUNCH_GO + 9)
  167.         {
  168.             for(new i = 0; i < (sizeof(missileObject)); i++)
  169.             {
  170.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  171.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 15, 20);
  172.             }
  173.             launchStep++;
  174.         }
  175.         else if(launchStep == LAUNCH_GO + 10)
  176.         {
  177.             for(new i = 0; i < (sizeof(missileObject)); i++)
  178.             {
  179.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  180.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 35, 22);
  181.             }
  182.             launchStep++;
  183.         }
  184.         else if(launchStep == LAUNCH_GO + 11)
  185.         {
  186.             for(new i = 0; i < (sizeof(missileObject)); i++)
  187.             {
  188.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  189.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 30, 27);
  190.             }
  191.             launchStep++;
  192.         }
  193.         else if(launchStep == LAUNCH_GO + 12)
  194.         {
  195.             for(new i = 0; i < (sizeof(missileObject)); i++)
  196.             {
  197.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  198.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 30, 30);
  199.             }
  200.             launchStep++;
  201.         }
  202.         else if(launchStep == LAUNCH_GO + 13)
  203.         {
  204.             for(new i = 0; i < (sizeof(missileObject)); i++)
  205.             {
  206.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  207.                 MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 500, 30);
  208.             }
  209.             launchStep++;
  210.         }
  211.         else if(launchStep == LAUNCH_GO + 14)
  212.         {
  213.             for(new i = 0; i < (sizeof(missileObject)); i++)
  214.             {
  215.                 GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  216.                 CreateExplosion(objPos[0], objPos[1], objPos[2], 7, 10);
  217.                 DestroyObject(missileObject[i]);
  218.             }
  219.             launchStep = LAUNCH_NOM;
  220.         }
  221.     }
  222.     return 1;
  223. }
  224.  
  225. forward LaunchMissile();
  226. public LaunchMissile()
  227. {
  228.     if(launchStep != LAUNCH_READY || launchStep == LAUNCH_GO) return 0;
  229.     new Float:objPos[3];
  230.     for(new i = 0; i < (sizeof(missileObject)); i++)
  231.     {
  232.         GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  233.         MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 1.5, 0.3);
  234.     }
  235.     launchStep = LAUNCH_GO;
  236.     return 1;
  237. }
  238.  
  239. stock IsMissileObject(objectid)
  240. {
  241.     for(new i = 0; i < (sizeof(missileObject)); i++)
  242.     {
  243.         if(objectid == missileObject[i]) return true;
  244.         continue;
  245.     }
  246.     return false;
  247. }
  248.  
  249. stock CreateMissile()
  250. {
  251.     missileObject[0] = CreateObject(17049, 268.81817626953, 1884.0551757813, -19.948799133301, 0, 0, 201.5);
  252.     launchStep = LAUNCH_NONE;
  253.     return 1;
  254. }
  255.  
  256. stock PrepareMissile()
  257. {
  258.     if(launchStep != LAUNCH_NONE) return 0;
  259.     MoveObject(jetDoor, 259.92041015625, 1884.1022949219, 16.040634155273, 0.5);
  260.     launchStep = LAUNCH_OPENGATE;
  261.     return 1;
  262. }
  263.  
  264. CMD:loadmissile(playerid, params[])
  265. {
  266.     if(launchStep != LAUNCH_NOM) return SendClientMessage(playerid, COLOR_RED, "[*] That's a negative. Missile does already exists.");
  267.     CreateMissile();
  268.     SendClientMessage(playerid, COLOR_GREEN, "[*] Copy. Missile is now avaible");
  269.     return 1;
  270. }
  271.  
  272. CMD:preparemissile(playerid, params[])
  273. {
  274.     if(launchStep != LAUNCH_NONE) return SendClientMessage(playerid, COLOR_RED, "[*] Negative. Missile doesn't exists or is loading/prepar[ing/ed]/launched already.");
  275.     PrepareMissile();
  276.     SendClientMessage(playerid, COLOR_GREEN, "[*] Roger that. Gate is opening, missile is being prepared to launch.");
  277.     return 1;
  278. }
  279.  
  280. CMD:launchmissile(playerid, params[])
  281. {
  282.     if(launchStep != LAUNCH_READY) return SendClientMessage(playerid, COLOR_RED, "[*] No copy. Missile isn't ready to launch or is launched already.");
  283.     SendClientMessage(playerid, COLOR_GREEN, "[*] Affirmative. Countdown in progress. Stay out of the missile.");
  284.     GameTextForPlayer(playerid, "~w~Missile will launch in ~r~5 ~w~seconds", 5000, 3);
  285.     launchTimer = SetTimer("LaunchMissile", 5000, false);
  286.     return 1;
  287. }
  288.  
  289. CMD:cancelmissile(playerid, params[])
  290. {
  291.     if(launchStep == LAUNCH_NOM || launchStep == LAUNCH_NONE) return SendClientMessage(playerid, COLOR_RED, "[*] Negative. Nothing to cancel.");
  292.     if(launchStep == LAUNCH_OPENGATE)
  293.     {
  294.         launchStep = LAUNCH_NONE;
  295.         MoveObject(jetDoor, 268.62051391602, 1884.1695556641, 16.040634155273, 0.5);
  296.         SendClientMessage(playerid, COLOR_GREEN, "[*] Roger. Closing gate.");
  297.     }
  298.     else if(launchStep == LAUNCH_LIFTUP || launchStep == LAUNCH_READY)
  299.     {
  300.         launchStep = LAUNCH_CLIFT;
  301.         MoveObject(lift, 264.57867431641, 1888.5306396484, -20.273397445679, 1.5);
  302.         MoveObject(missileObject[0], 268.81817626953, 1884.0551757813, -19.948799133301, 1.5);
  303.         SendClientMessage(playerid, COLOR_GREEN, "[*] 10-4. Missile going down, gates are closing.");
  304.         if(IsValidObject(missileObject[1])) for(new i = 1; i < (sizeof(missileObject)); i++) DestroyObject(missileObject[i]);
  305.         if(launchTimer != -1)
  306.         {
  307.             KillTimer(launchTimer);
  308.             launchTimer = (-1);
  309.             GameTextForPlayer(playerid, "~r~Mission aborted", 3000, 3);
  310.         }
  311.     }
  312.     else if(launchStep >= LAUNCH_GO)
  313.     {
  314.         new Float:objPos[3];
  315.         launchStep = LAUNCH_NOM;
  316.         SendClientMessage(playerid, COLOR_RED, "[*] Affirmative. Missile was launched already, destroying it.");
  317.         MoveObject(lift, 264.57867431641, 1888.5306396484, -20.273397445679, 1.5);
  318.         MoveObject(jetDoor, 268.62051391602, 1884.1695556641, 16.040634155273, 0.5);
  319.         for(new i = 0; i < (sizeof(missileObject)); i++)
  320.         {
  321.             GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
  322.             DestroyObject(missileObject[i]);
  323.             CreateExplosion(objPos[0], objPos[1], objPos[2], 7, 15);
  324.         }
  325.         GameTextForPlayer(playerid, "~r~Mission aborted: Self destruction", 3000, 3);
  326.     }
  327.     return 1;
  328. }
  329.  
  330. CMD:gotomissile(playerid, params[])
  331.     return SetPlayerPos(playerid, 266.3893737793, 1877.22265625, 17.648057937622);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement