Advertisement
Guest User

SA-MP GRAND THEFT HELI BY KITTEN

a guest
Jun 3rd, 2011
736
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.72 KB | None | 0 0
  1. #include <a_samp>
  2. //----VARIABLES//
  3. new gTeam[MAX_PLAYERS];
  4. new ObjectiveAttackPlayer=(-1);
  5. new ObjectiveReached=0;
  6.  
  7. //----Useless----//
  8. #pragma unused ObjectiveAttackPlayer
  9.  
  10. //----TEAMS----//
  11. #define TEAM_DEFENDERS 0
  12. #define TEAM_ATTACKERS 1
  13.  
  14. //----COLOR TEAMS----//
  15. #define Attack_Color (0xFF0000AA)
  16. #define Defend_Color (0x0000FFAA)
  17.  
  18. //----FORWARDS----//
  19. forward Finshed();
  20. forward Finshed2(playerid);
  21. forward EnableTDAttack(playerid);
  22. forward EnableTDDefend(playerid);
  23. forward DisableTDS(playerid);
  24.  
  25. //----COLOR DEFINES----//
  26. #define COLOR_SYSTEM 0xEFEFF7AA
  27. #define COLOR_WHITE  0xFFFFFFFF
  28. #define COLOR_RED   0xFF3333AA
  29. #define OBJECTIVE_COLOR 0xAA0000FF
  30.  
  31. //----CAR STOLEN----//
  32. #define OBJECTIVE_VEHICLE 1
  33.  
  34. //----Objectives Textdraw----//
  35. new Text:ObjectiveTD[MAX_PLAYERS];
  36.  
  37.  
  38. main()
  39. {
  40.     print("\n----------------------------------");
  41.     print("Grand Theft Heli");
  42.     print("----------------------------------\n");
  43. }
  44.  
  45. public OnGameModeInit()
  46. {
  47.     SetGameModeText("Grand Theft Heli");
  48.     UsePlayerPedAnims();
  49.     SetTimer("Finshed2",300000,false);
  50.     // Teams Spawn
  51.     AddPlayerClass(200,-1943.3949,562.1638,35.1795,336.0581,0,0,0,0,0,0); // Attackers
  52.     AddPlayerClass(280,-1669.3516,693.7178,30.6016,67.0087,0,0,0,0,0,0); // Defenders
  53.     //Objective Car
  54.     AddStaticVehicleEx(487,-1678.68040000,704.98970000,30.80830000,87.06310000,0,1,10); //Maverick
  55.    
  56.     // Other Cars
  57.     AddStaticVehicleEx(597,-1708.51730000,705.01540000,24.50220000,179.34580000,-1,1,8); //Police Car (SFPD)
  58.     AddStaticVehicleEx(597,-1708.69560000,687.22030000,24.50290000,182.52010000,-1,1,8); //Police Car (SFPD)
  59.     AddStaticVehicleEx(597,-1708.66360000,678.13560000,24.49810000,180.49480000,-1,1,8); //Police Car (SFPD)
  60.     AddStaticVehicleEx(597,-1708.53820000,663.58940000,24.50220000,180.49480000,-1,1,8); //Police Car (SFPD)
  61.     AddStaticVehicleEx(597,-1713.61780000,648.69490000,24.50660000,269.94740000,-1,1,8); //Police Car (SFPD)
  62.     AddStaticVehicleEx(491,-1926.39590000,584.81790000,34.88930000,358.51820000,-1,1,8); //Virgo
  63.     AddStaticVehicleEx(491,-1929.39450000,584.68380000,34.89120000,358.92720000,-1,1,8); //Virgo
  64.     AddStaticVehicleEx(491,-1932.38670000,585.06610000,34.88210000,0.15180000,-1,1,8); //Virgo
  65.     AddStaticVehicleEx(491,-1935.28920000,584.99550000,34.88280000,2.12450000,-1,1,8); //Virgo
  66.     AddStaticVehicleEx(491,-1937.96880000,585.79300000,34.86920000,359.60750000,-1,1,8); //Virgo
  67.     AddStaticVehicleEx(491,-1941.28190000,585.69310000,34.86910000,358.64710000,-1,1,8); //Virgo
  68.     AddStaticVehicleEx(491,-1944.20040000,585.01780000,34.88630000,358.94910000,-1,1,8); //Virgo
  69.     AddStaticVehicleEx(491,-1947.36080000,585.55220000,34.87620000,359.83590000,-1,1,8); //Virgo
  70.     AddStaticVehicleEx(491,-1950.03970000,584.98730000,34.88230000,1.19830000,-1,1,8); //Virgo
  71.     AddStaticVehicleEx(491,-1916.08730000,599.34470000,34.77190000,267.63570000,-1,1,8); //Virgo
  72.     //Objectives
  73.     for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  74.     {
  75.         ObjectiveTD[playerid] = TextDrawCreate(128.000000, 344.000000, " ");
  76.         TextDrawBackgroundColor(ObjectiveTD[playerid], 255);
  77.         TextDrawFont(ObjectiveTD[playerid], 1);
  78.         TextDrawLetterSize(ObjectiveTD[playerid], 0.429999, 1.000000);
  79.         TextDrawColor(ObjectiveTD[playerid], -16776961);
  80.         TextDrawSetOutline(ObjectiveTD[playerid], 0);
  81.         TextDrawSetProportional(ObjectiveTD[playerid], 1);
  82.         TextDrawSetShadow(ObjectiveTD[playerid], 1);
  83.     }
  84.  
  85.     return 1;
  86. }
  87.  
  88. public OnGameModeExit()
  89. {
  90.     for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  91.     {
  92.         TextDrawDestroy(ObjectiveTD[playerid]);
  93.     }
  94.     return 1;
  95. }
  96.  
  97. public OnPlayerRequestClass(playerid, classid)
  98. {
  99.     SetPlayerPos(playerid, 1644.4078,-1133.8214,58.2172);
  100.     SetPlayerCameraPos(playerid, 1647.6301,-1134.5725,58.2489);
  101.     SetPlayerCameraLookAt(playerid, 1644.4078,-1133.8214,58.2172);
  102.     SetPlayerFacingAngle(playerid,258.5584);
  103.     if(classid == 0)
  104.     {
  105.         GameTextForPlayer(playerid,"~r~Attackers",5000,4);
  106.         gTeam[playerid] = TEAM_ATTACKERS;
  107.     }
  108.     else if(classid == 1)
  109.     {
  110.         GameTextForPlayer(playerid,"~b~Defenders",5000,4);
  111.         gTeam[playerid] = TEAM_DEFENDERS;
  112.     }
  113.     return 1;
  114. }
  115.  
  116. public OnPlayerStateChange(playerid, newstate, oldstate)
  117. {
  118.     new vehicleid;
  119.  
  120.     if(newstate == PLAYER_STATE_DRIVER)
  121.     {
  122.         vehicleid = GetPlayerVehicleID(playerid);
  123.  
  124.         if(gTeam[playerid] == TEAM_ATTACKERS && vehicleid == OBJECTIVE_VEHICLE)
  125.         {
  126.             SetPlayerColor(playerid,OBJECTIVE_COLOR);
  127.             GameTextForPlayer(playerid,"~w~Take the ~r~helicopter ~w~back to the spawn!",3000,5);
  128.             ObjectiveAttackPlayer = playerid;
  129.         }
  130.         else if(gTeam[playerid] == TEAM_DEFENDERS && vehicleid == OBJECTIVE_VEHICLE) {
  131.             GameTextForPlayer(playerid,"~r~ HELICOPTER IS BEING STOLEN ~n~~w~ SHOOT IT",3000,5);
  132.         }
  133.  
  134.     }
  135.  
  136.  
  137.     return 1;
  138. }
  139.  
  140. public OnPlayerConnect(playerid)
  141. {
  142.     SetPlayerColor(playerid,0x888888FF);
  143.     SendClientMessage(playerid,COLOR_WHITE,"Mission: Grand Theft Heli 1");
  144.     TextDrawSetString(ObjectiveTD[playerid]," " );
  145.     return 1;
  146. }
  147.  
  148. public OnPlayerDisconnect(playerid, reason)
  149. {
  150.     return 1;
  151. }
  152.  
  153. public OnPlayerSpawn(playerid)
  154. {
  155.     SetPlayerCheckpoint(playerid,-1981.0564,579.5828,35.4741,5.0);
  156.     SetPlayerWorldBounds(playerid, -1579.656, -2004.552, 767.6402, 562.5021);
  157.     SetPlayerWeather(playerid,0);
  158.     SetPlayerTime(playerid,0,0);
  159.     if(gTeam[playerid] == TEAM_ATTACKERS) {
  160.         SetPlayerColor(playerid,Attack_Color);
  161.         SetPlayerTeam(playerid,TEAM_ATTACKERS);
  162.         TextDrawSetString(ObjectiveTD[playerid],"~r~Attacker: ~w~Steal the helicopter");
  163.         SetTimerEx("EnableTDDefend", 2000, false, "i", playerid);
  164.         GivePlayerWeapon(playerid,24,30);
  165.         GivePlayerWeapon(playerid,30,200);
  166.     }
  167.     else if(gTeam[playerid] == TEAM_DEFENDERS) {
  168.         SetPlayerColor(playerid,Defend_Color);
  169.         SetPlayerTeam(playerid,TEAM_DEFENDERS);
  170.         TextDrawSetString(ObjectiveTD[playerid],"~g~Defender: ~w~Dont let the attackers steal the helicopter ~n~~r~Defend it for 5 min to win");
  171.         SetTimerEx("EnableTDDefend", 2000, false, "i", playerid);
  172.         GivePlayerWeapon(playerid,24,30);
  173.         GivePlayerWeapon(playerid,31,1000);
  174.     }
  175.  
  176.     return 1;
  177. }
  178. public OnVehicleStreamIn(vehicleid, forplayerid) {
  179.     if(gTeam[forplayerid] == TEAM_ATTACKERS) {
  180.         SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE,forplayerid,1,0);
  181.     }
  182.     else if(gTeam[forplayerid] == TEAM_DEFENDERS) {
  183.         SetVehicleParamsForPlayer(OBJECTIVE_VEHICLE,forplayerid,1,1);
  184.     }
  185.     return 1;
  186. }
  187.  
  188. public EnableTDDefend(playerid) {
  189.     TextDrawShowForPlayer(playerid,ObjectiveTD[playerid]);
  190.     SetTimer("DisableTDS",6000,false);
  191.     return 1;
  192. }
  193.  
  194. public DisableTDS(playerid) {
  195.     TextDrawHideForPlayer(playerid,ObjectiveTD[playerid]);
  196.     return 1;
  197. }
  198.  
  199. public OnPlayerDeath(playerid, killerid, reason)
  200. {
  201.     SendDeathMessage(killerid,playerid,reason);
  202.     SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  203.     GivePlayerMoney(killerid, 3000);
  204.     return 1;
  205. }
  206.  
  207. public OnPlayerCommandText(playerid, cmdtext[])
  208. {
  209.     if (strcmp("/kill", cmdtext, true, 10) == 0)
  210.     {
  211.         SetPlayerHealth(playerid,0);
  212.         return 1;
  213.     }
  214.     return 0;
  215. }
  216.  
  217. public OnPlayerEnterCheckpoint(playerid)
  218. {
  219.     new playervehicleid = GetPlayerVehicleID(playerid);
  220.  
  221.     if(ObjectiveReached) return;
  222.  
  223.     if(playervehicleid == OBJECTIVE_VEHICLE && gTeam[playerid] == TEAM_ATTACKERS)
  224.     {  
  225.         SendClientMessageToAll(COLOR_WHITE,"Attackers Win!");
  226.         ObjectiveReached = 1;
  227.         for(new i = 0; playerid < MAX_PLAYERS; playerid++)
  228.         {
  229.             if(IsPlayerConnected(playerid))
  230.             {
  231.                 if(gTeam[playerid] == TEAM_ATTACKERS)
  232.                 {
  233.                     GameTextForPlayer(i, "~g~ YOUR TEAM WON ~n~~y~+1000", 6000, 4);
  234.                     GivePlayerMoney(i, 5000);
  235.                 }
  236.                 else if(gTeam[playerid] == TEAM_DEFENDERS)
  237.                 {
  238.                     GameTextForPlayer(i, "~r~ YOUR TEAM LOST ~n~~y~-1000", 6000, 4);
  239.                     GivePlayerMoney(i, -1000);
  240.                 }
  241.             }
  242.         }
  243.         SetPlayerScore(playerid,GetPlayerScore(playerid)+5);
  244.         SetTimer("Finshed", 8000, 0);
  245.         return;
  246.     }
  247. }
  248.  
  249. public Finshed()
  250. {
  251.     SendRconCommand("gmx");
  252.     SendClientMessageToAll(COLOR_WHITE,"Server: Restarting Mode");
  253.     return 1;
  254. }
  255. public Finshed2(playerid)
  256. {
  257.     SendClientMessageToAll(COLOR_WHITE,"Defenders Win!");
  258.     for(new i = 0; playerid < MAX_PLAYERS; playerid++)
  259.     {
  260.         if(IsPlayerConnected(i))
  261.         {
  262.             if(gTeam[playerid] == TEAM_ATTACKERS)
  263.             {
  264.                 GameTextForPlayer(i, "~g~ YOUR TEAM LOST ~n~~y~-1000", 6000, 4);
  265.                 GivePlayerMoney(i, -1000);
  266.             }
  267.             else if(gTeam[playerid] == TEAM_DEFENDERS)
  268.             {
  269.                 GameTextForPlayer(i, "~r~ YOUR TEAM WON ~n~~y~+5000", 6000, 4);
  270.                 GivePlayerMoney(i, 5000);
  271.             }
  272.         }
  273.     }
  274.     SetTimer("Finshed", 8000, 0);
  275.     return 1;
  276. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement