Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <zcmd>
- #define LAUNCH_CLIFT -3
- #define LAUNCH_NOM -2
- #define LAUNCH_NONE -1
- #define LAUNCH_OPENGATE 0
- #define LAUNCH_LIFTUP 1
- #define LAUNCH_READY 2
- #define LAUNCH_GO 3
- #define COLOR_RED 0xFF0000AA
- #define COLOR_GREEN 0x00FF00AA
- new jetDoor, lift,
- missileBase[19],
- missileObject[4],
- launchStep = LAUNCH_NONE,
- launchTimer = (-1)
- ;
- public OnFilterScriptInit()
- {
- missileBase[0] = CreateObject(7191, 264.07342529297, 1881.6575927734, -6.2552056312561, 270.25024414063, 0, 0);
- missileBase[1] = CreateObject(7191, 264.08120727539, 1885.5596923828, -6.2552056312561, 270.24719238281, 0, 0);
- missileBase[2] = CreateObject(7191, 264.07913208008, 1886.9434814453, -6.2552056312561, 270.24719238281, 0, 0);
- missileBase[3] = CreateObject(7191, 265.77478027344, 1888.6229248047, -6.2552056312561, 270.2470703125, 0, 269.5);
- missileBase[4] = CreateObject(7191, 269.59817504883, 1888.6110839844, -6.2552056312561, 270.24169921875, 0, 269.49462890625);
- missileBase[5] = CreateObject(7191, 272.73175048828, 1888.5932617188, -6.2552056312561, 270.24169921875, 0, 269.49462890625);
- missileBase[6] = CreateObject(7191, 273.43814086914, 1886.9455566406, -6.2552056312561, 270.24145507813, 0, 179.99462890625);
- missileBase[7] = CreateObject(7191, 273.44381713867, 1883.1752929688, -6.2552056312561, 270.23620605469, 0, 179.99450683594);
- missileBase[8] = CreateObject(7191, 273.50357055664, 1879.896484375, -6.2552056312561, 270.23620605469, 0, 179.99450683594);
- missileBase[9] = CreateObject(7191, 271.66961669922, 1879.6162109375, -6.2552056312561, 270.23657226563, 0, 90.494506835938);
- missileBase[10] = CreateObject(7191, 268.20278930664, 1879.5903320313, -6.2552056312561, 270.23657226563, 0, 89.991943359375);
- missileBase[11] = CreateObject(7191, 265.30517578125, 1879.5936279297, -6.2552056312561, 270.23620605469, 0, 89.989013671875);
- missileBase[12] = CreateObject(3530, 273.34002685547, 1884.0528564453, -15.669961929321, 0, 0, 0);
- missileBase[13] = CreateObject(3530, 273.34033203125, 1884.0277099609, -6.1449637413025, 0, 0, 0);
- missileBase[14] = CreateObject(3530, 273.33984375, 1884.02734375, 3.3550362586975, 0, 0, 0);
- missileBase[15] = CreateObject(3530, 273.33984375, 1884.02734375, 13.130035400391, 0, 0, 0);
- missileBase[16] = CreateObject(3530, 273.33984375, 1884.02734375, 22.380035400391, 0, 0, 0);
- missileBase[17] = CreateObject(3530, 273.33984375, 1884.02734375, 32.130035400391, 0, 0, 0);
- missileBase[18] = CreateObject(2951, 268.15289306641, 1875.2196044922, 7.609375, 0, 0, 0.25);
- jetDoor = CreateObject(3095, 268.62051391602, 1884.1695556641, 16.040634155273, 0, 0, 0);
- lift = CreateObject(3115, 264.57867431641, 1888.5306396484, -20.273397445679, 0, 0, 0);
- CreateMissile();
- return 1;
- }
- public OnFilterScriptExit()
- {
- DestroyObject(jetDoor);
- DestroyObject(lift);
- for(new i = 0; i < (sizeof(missileBase)); i++) DestroyObject(missileBase[i]);
- for(new i = 0; i < (sizeof(missileObject)); i++) DestroyObject(missileObject[i]);
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- static Float:objPos[3];
- if(objectid == jetDoor && launchStep == LAUNCH_OPENGATE)
- {
- MoveObject(lift, 264.578125, 1888.5302734375, 15.166597366333, 1.5);
- MoveObject(missileObject[0], 268.8173828125, 1884.0546875, 14.281198501587, 1.5);
- launchStep = LAUNCH_LIFTUP;
- }
- if(objectid == lift && launchStep == LAUNCH_CLIFT)
- {
- MoveObject(jetDoor, 268.62051391602, 1884.1695556641, 16.040634155273, 0.5);
- launchStep = LAUNCH_NONE;
- }
- if(IsMissileObject(objectid))
- {
- if(launchStep == LAUNCH_LIFTUP)
- {
- missileObject[1] = CreateObject(2780, 266.30206298828, 1882.7292480469, 16.03343963623, 0, 0, 29);
- missileObject[2] = CreateObject(2780, 268.78958129883, 1886.9494628906, -19.961563110352, 0, 0, 92.248413085938);
- missileObject[3] = CreateObject(2780, 270.27523803711, 1881.5205078125, 15.873435974121, 0, 0, 119.24664306641);
- launchStep = LAUNCH_READY;
- }
- else if(launchStep == LAUNCH_GO)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 2.3, 0.6);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 1)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 2.3, 1.5);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 2)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 3.5, 2);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 3)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 3.5, 2.5);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 4)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 7.5, 4);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 5)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 7.5, 5.5);
- }
- MoveObject(jetDoor, 268.62051391602, 1884.1695556641, 16.040634155273, 0.5);
- MoveObject(lift, 264.57867431641, 1888.5306396484, -20.273397445679, 1.5);
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 6)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 7.5, 6);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 7)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 8, 8);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 8)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 10, 15);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 9)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 15, 20);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 10)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 35, 22);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 11)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 30, 27);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 12)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 30, 30);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 13)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 500, 30);
- }
- launchStep++;
- }
- else if(launchStep == LAUNCH_GO + 14)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- CreateExplosion(objPos[0], objPos[1], objPos[2], 7, 10);
- DestroyObject(missileObject[i]);
- }
- launchStep = LAUNCH_NOM;
- }
- }
- return 1;
- }
- forward LaunchMissile();
- public LaunchMissile()
- {
- if(launchStep != LAUNCH_READY || launchStep == LAUNCH_GO) return 0;
- new Float:objPos[3];
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- MoveObject(missileObject[i], objPos[0], objPos[1], objPos[2] + 1.5, 0.3);
- }
- launchStep = LAUNCH_GO;
- return 1;
- }
- stock IsMissileObject(objectid)
- {
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- if(objectid == missileObject[i]) return true;
- continue;
- }
- return false;
- }
- stock CreateMissile()
- {
- missileObject[0] = CreateObject(17049, 268.81817626953, 1884.0551757813, -19.948799133301, 0, 0, 201.5);
- launchStep = LAUNCH_NONE;
- return 1;
- }
- stock PrepareMissile()
- {
- if(launchStep != LAUNCH_NONE) return 0;
- MoveObject(jetDoor, 259.92041015625, 1884.1022949219, 16.040634155273, 0.5);
- launchStep = LAUNCH_OPENGATE;
- return 1;
- }
- CMD:loadmissile(playerid, params[])
- {
- if(launchStep != LAUNCH_NOM) return SendClientMessage(playerid, COLOR_RED, "[*] That's a negative. Missile does already exists.");
- CreateMissile();
- SendClientMessage(playerid, COLOR_GREEN, "[*] Copy. Missile is now avaible");
- return 1;
- }
- CMD:preparemissile(playerid, params[])
- {
- if(launchStep != LAUNCH_NONE) return SendClientMessage(playerid, COLOR_RED, "[*] Negative. Missile doesn't exists or is loading/prepar[ing/ed]/launched already.");
- PrepareMissile();
- SendClientMessage(playerid, COLOR_GREEN, "[*] Roger that. Gate is opening, missile is being prepared to launch.");
- return 1;
- }
- CMD:launchmissile(playerid, params[])
- {
- if(launchStep != LAUNCH_READY) return SendClientMessage(playerid, COLOR_RED, "[*] No copy. Missile isn't ready to launch or is launched already.");
- SendClientMessage(playerid, COLOR_GREEN, "[*] Affirmative. Countdown in progress. Stay out of the missile.");
- GameTextForPlayer(playerid, "~w~Missile will launch in ~r~5 ~w~seconds", 5000, 3);
- launchTimer = SetTimer("LaunchMissile", 5000, false);
- return 1;
- }
- CMD:cancelmissile(playerid, params[])
- {
- if(launchStep == LAUNCH_NOM || launchStep == LAUNCH_NONE) return SendClientMessage(playerid, COLOR_RED, "[*] Negative. Nothing to cancel.");
- if(launchStep == LAUNCH_OPENGATE)
- {
- launchStep = LAUNCH_NONE;
- MoveObject(jetDoor, 268.62051391602, 1884.1695556641, 16.040634155273, 0.5);
- SendClientMessage(playerid, COLOR_GREEN, "[*] Roger. Closing gate.");
- }
- else if(launchStep == LAUNCH_LIFTUP || launchStep == LAUNCH_READY)
- {
- launchStep = LAUNCH_CLIFT;
- MoveObject(lift, 264.57867431641, 1888.5306396484, -20.273397445679, 1.5);
- MoveObject(missileObject[0], 268.81817626953, 1884.0551757813, -19.948799133301, 1.5);
- SendClientMessage(playerid, COLOR_GREEN, "[*] 10-4. Missile going down, gates are closing.");
- if(IsValidObject(missileObject[1])) for(new i = 1; i < (sizeof(missileObject)); i++) DestroyObject(missileObject[i]);
- if(launchTimer != -1)
- {
- KillTimer(launchTimer);
- launchTimer = (-1);
- GameTextForPlayer(playerid, "~r~Mission aborted", 3000, 3);
- }
- }
- else if(launchStep >= LAUNCH_GO)
- {
- new Float:objPos[3];
- launchStep = LAUNCH_NOM;
- SendClientMessage(playerid, COLOR_RED, "[*] Affirmative. Missile was launched already, destroying it.");
- MoveObject(lift, 264.57867431641, 1888.5306396484, -20.273397445679, 1.5);
- MoveObject(jetDoor, 268.62051391602, 1884.1695556641, 16.040634155273, 0.5);
- for(new i = 0; i < (sizeof(missileObject)); i++)
- {
- GetObjectPos(missileObject[i], objPos[0], objPos[1], objPos[2]);
- DestroyObject(missileObject[i]);
- CreateExplosion(objPos[0], objPos[1], objPos[2], 7, 15);
- }
- GameTextForPlayer(playerid, "~r~Mission aborted: Self destruction", 3000, 3);
- }
- return 1;
- }
- CMD:gotomissile(playerid, params[])
- return SetPlayerPos(playerid, 266.3893737793, 1877.22265625, 17.648057937622);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement