Advertisement
Guest User

Hiddos

a guest
Jun 12th, 2010
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.82 KB | None | 0 0
  1. //---------------------------------------------------------
  2.  
  3. //
  4.  
  5. // AREA51 Break-in. Break into the depths of Area 51.
  6.  
  7. //
  8.  
  9. //---------------------------------------------------------
  10.  
  11.  
  12.  
  13. #include <a_samp>
  14.  
  15.  
  16.  
  17. #define TEAM_ATTACK 1
  18.  
  19. #define TEAM_DEFENCE 2
  20.  
  21.  
  22.  
  23. #define CHECKPOINT_NONE 0
  24.  
  25. #define CHECKPOINT_PLANE 1
  26.  
  27. #define CHECKPOINT_AREA51 2
  28.  
  29.  
  30.  
  31. #define DEFENCE_WIN 0
  32.  
  33. #define ATTACK_WIN 1
  34.  
  35.  
  36.  
  37. #define COLOR_GREY 0xAFAFAFAA
  38.  
  39. #define COLOR_GREEN 0x33AA33AA
  40.  
  41. #define COLOR_RED 0xAA3333AA
  42.  
  43. #define COLOR_YELLOW 0xFFFF00AA
  44.  
  45.  
  46.  
  47. forward DefenceWin();
  48.  
  49. forward GameModeExitFunc();
  50.  
  51.  
  52.  
  53. new gTeam[MAX_PLAYERS];
  54.  
  55. new gPlayerClass[MAX_PLAYERS];
  56.  
  57. new gPlayerCheckpointStatus[MAX_PLAYERS];
  58.  
  59. new gRoundTimer;
  60.  
  61.  
  62.  
  63. // If the army defend the lab for this amount of time, they win.
  64.  
  65. //new gRoundTime = 1200000;                 // Round time - 20 mins
  66.  
  67. //new gRoundTime = 900000;                  // Round time - 15 mins
  68.  
  69. new gRoundTime = 600000;                    // Round time - 10 mins
  70.  
  71. //new gRoundTime = 300000;                  // Round time - 5 mins
  72.  
  73. //new gRoundTime = 120000;                  // Round time - 2 mins
  74.  
  75. //new gRoundTime = 60000;                   // Round time - 1 min
  76.  
  77.  
  78.  
  79. //---------------------------------------------------------
  80.  
  81.  
  82.  
  83. main()
  84.  
  85. {
  86.  
  87.     print("\n----------------------------------");
  88.  
  89.     print("  Area 51 break-in\n   by Mike (2006)");
  90.  
  91.     print("----------------------------------\n");
  92.  
  93. }
  94.  
  95.  
  96.  
  97. //---------------------------------------------------------
  98.  
  99.  
  100.  
  101. public OnGameModeInit()
  102.  
  103. {
  104.  
  105.  
  106.  
  107.     SetGameModeText("Area 51 Break-in");
  108.  
  109.     ShowNameTags(1);
  110.  
  111.     ShowPlayerMarkers(0);
  112.  
  113.     SetWorldTime(0);
  114.  
  115.  
  116.  
  117.     // Attack team
  118.  
  119.     AddPlayerClass(111,315.4792,984.1290,1959.1129,353.5, 3, 0, 23, 1000, 25, 100); // Mafia dude, andromeda
  120.  
  121.  
  122.  
  123.     // Defence team
  124.  
  125.     AddPlayerClass(287,245.1233,1859.1162,14.0840,358.717, 4, 0, 32, 1000, 31, 5000); // Army
  126.  
  127.     AddPlayerClass(70,271.6828,1873.8666,8.7578,229.4508, 4, 0, 24, 1000, 32, 1000); // Lab
  128.  
  129.  
  130.  
  131.     /// Parachutes in plane
  132.  
  133.     AddStaticPickup(371, 15, 319.3416, 1020.7169,1950.6696);
  134.  
  135.     AddStaticPickup(371, 15, 312.6138, 1020.7346,1950.6655);
  136.  
  137.    
  138.  
  139.     //AddStaticPickup(370, 15, 268.5821, 1883.8224, -30.0938); // jetpack
  140.  
  141.  
  142.  
  143.     gRoundTimer = SetTimer("DefenceWin", gRoundTime, 0);
  144.  
  145.    
  146.  
  147.     return 1;
  148.  
  149. }
  150.  
  151.  
  152.  
  153. //---------------------------------------------------------
  154.  
  155.  
  156.  
  157. public DefenceWin() {
  158.  
  159.     EndTheRound(DEFENCE_WIN);
  160.  
  161. }
  162.  
  163.  
  164.  
  165. //---------------------------------------------------------
  166.  
  167.  
  168.  
  169. public OnPlayerConnect(playerid)
  170.  
  171. {
  172.  
  173.     GameTextForPlayer(playerid,"~w~SA:MP Area51 Break-in!",4000,3);
  174.  
  175.     SetPlayerColor(playerid,COLOR_GREY);
  176.  
  177.     return 1;
  178.  
  179. }
  180.  
  181.  
  182.  
  183. //---------------------------------------------------------
  184.  
  185.  
  186.  
  187. SetupPlayerForClassSelection(playerid)
  188.  
  189. {
  190.  
  191.     SetPlayerInterior(playerid,9);
  192.  
  193.     SetPlayerFacingAngle(playerid,0.0);
  194.  
  195.     SetPlayerPos(playerid,315.7802,972.0253,1961.8705);
  196.  
  197.     SetPlayerCameraPos(playerid,315.7802,975.0253,1961.8705);
  198.  
  199.     SetPlayerCameraLookAt(playerid,315.7802,972.0253,1961.8705);
  200.  
  201.     return;
  202.  
  203. }
  204.  
  205.  
  206.  
  207. //---------------------------------------------------------
  208.  
  209.  
  210.  
  211. SetPlayerTeamFromClass(playerid, classid) {
  212.  
  213.     if(classid == 0) {
  214.  
  215.         gTeam[playerid] = TEAM_ATTACK;
  216.  
  217.     } else if(classid == 1 || classid == 2) {
  218.  
  219.         gTeam[playerid] = TEAM_DEFENCE;
  220.  
  221.     }
  222.  
  223. }
  224.  
  225.  
  226.  
  227. //---------------------------------------------------------
  228.  
  229.  
  230.  
  231. public OnPlayerRequestClass(playerid, classid)
  232.  
  233. {
  234.  
  235.     SetPlayerTeamFromClass(playerid, classid);
  236.  
  237.     SetupPlayerForClassSelection(playerid);
  238.  
  239.    
  240.  
  241.     gPlayerClass[playerid] = classid;
  242.  
  243.     switch (classid) {
  244.  
  245.         case 0:
  246.  
  247.             {
  248.  
  249.                 GameTextForPlayer(playerid, "~r~Attack", 1000, 3);
  250.  
  251.             }
  252.  
  253.         case 1, 2:
  254.  
  255.             {
  256.  
  257.                 GameTextForPlayer(playerid, "~g~Defence", 1000, 3);
  258.  
  259.             }
  260.  
  261.     }
  262.  
  263.     return 1;
  264.  
  265. }
  266.  
  267.  
  268.  
  269. //---------------------------------------------------------
  270.  
  271.  
  272.  
  273. public OnPlayerSpawn(playerid)
  274.  
  275. {
  276.  
  277.     SetPlayerToTeamColour(playerid);
  278.  
  279.     SetPlayerWorldBounds(playerid, 388.6190, -7.9993, 2147.0618, 1655.8849);
  280.  
  281.     switch (gPlayerClass[playerid]) {
  282.  
  283.         case 0:
  284.  
  285.             {
  286.  
  287.                 gPlayerCheckpointStatus[playerid] = CHECKPOINT_PLANE;
  288.  
  289.                 SetPlayerCheckpoint(playerid,315.7353,1035.6589,1945.1191,5.0);
  290.  
  291.                 SetPlayerInterior(playerid,9);
  292.  
  293.                 GameTextForPlayer(playerid, "Grab a parachute~n~Then exit the plane via the ~r~ramp", 2000, 5);
  294.  
  295.             }
  296.  
  297.         case 1, 2:
  298.  
  299.             {
  300.  
  301.                 gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
  302.  
  303.                 GameTextForPlayer(playerid, "Defend Area 51", 2000, 5);
  304.  
  305.                 SetPlayerInterior(playerid,0);
  306.  
  307.             }
  308.  
  309.     }
  310.  
  311.     return 1;
  312.  
  313. }
  314.  
  315.  
  316.  
  317. //---------------------------------------------------------
  318.  
  319.  
  320.  
  321. SetPlayerToTeamColour(playerid) {
  322.  
  323.     if(gTeam[playerid] == TEAM_ATTACK) {
  324.  
  325.         SetPlayerColor(playerid,COLOR_RED); // Red
  326.  
  327.     } else if(gTeam[playerid] == TEAM_DEFENCE) {
  328.  
  329.         SetPlayerColor(playerid,COLOR_GREEN); // Green
  330.  
  331.     }
  332.  
  333. }
  334.  
  335.  
  336.  
  337. //---------------------------------------------------------
  338.  
  339.  
  340.  
  341. public OnPlayerEnterCheckpoint(playerid) {
  342.  
  343.     switch (gPlayerCheckpointStatus[playerid]) {
  344.  
  345.         case CHECKPOINT_PLANE:
  346.  
  347.             {
  348.  
  349.                 GameTextForPlayer(playerid, "Now parachute to ~r~Area 51", 2000, 5);
  350.  
  351.                 SetPlayerInterior(playerid,0);
  352.  
  353.                 SetPlayerPos(playerid, 239.5148, 1813.7039, 500.6836);
  354.  
  355.                 SetPlayerCheckpoint(playerid,268.5821,1883.8224,-30.0938, 5.0);
  356.  
  357.                 gPlayerCheckpointStatus[playerid] = CHECKPOINT_AREA51;
  358.  
  359.             }
  360.  
  361.         case CHECKPOINT_AREA51:
  362.  
  363.             {
  364.  
  365.                 DisablePlayerCheckpoint(playerid);
  366.  
  367.                 gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
  368.  
  369.                 EndTheRound(ATTACK_WIN);
  370.  
  371.             }
  372.  
  373.         default:
  374.  
  375.             {
  376.  
  377.                 DisablePlayerCheckpoint(playerid);
  378.  
  379.             }
  380.  
  381.     }
  382.  
  383.     return 1;
  384.  
  385. }
  386.  
  387.  
  388.  
  389. //---------------------------------------------------------
  390.  
  391.  
  392.  
  393. public OnPlayerDeath(playerid, killerid, reason)
  394.  
  395. {
  396.  
  397.     if (killerid != INVALID_PLAYER_ID) {
  398.  
  399.        
  400.  
  401.         if (gTeam[playerid] == gTeam[killerid]) {
  402.  
  403.             SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
  404.  
  405.         }
  406.  
  407.         else {
  408.  
  409.             SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
  410.  
  411.         }
  412.  
  413.     }
  414.  
  415.     SendDeathMessage(killerid, playerid, reason);
  416.  
  417.  
  418.  
  419.     DisablePlayerCheckpoint(playerid);
  420.  
  421.     gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
  422.  
  423.    
  424.  
  425.     SetPlayerColor(playerid,COLOR_GREY);
  426.  
  427.     return 1;
  428.  
  429. }
  430.  
  431.  
  432.  
  433. //---------------------------------------------------------
  434.  
  435.  
  436.  
  437. EndTheRound(winner) {
  438.  
  439.     switch (winner) {
  440.  
  441.         case ATTACK_WIN:
  442.  
  443.         {
  444.  
  445.             GameTextForAll("The attackers broke into Area 51.", 2000, 5);
  446.  
  447.             KillTimer(gRoundTimer);
  448.  
  449.         }
  450.  
  451.         case DEFENCE_WIN:
  452.  
  453.         {
  454.  
  455.             GameTextForAll("Area 51 was successfully defended.", 2000, 5);
  456.  
  457.         }
  458.  
  459.     }
  460.  
  461.     SetTimer("GameModeExitFunc", 5000, 0);
  462.  
  463. }
  464.  
  465.  
  466.  
  467. //---------------------------------------------------------
  468.  
  469.  
  470.  
  471. public GameModeExitFunc()
  472.  
  473. {
  474.  
  475.     GameModeExit();
  476.  
  477. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement