BigETI

Harvestor *FIX*

May 20th, 2011
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.15 KB | None | 0 0
  1. //Includes
  2. #include <a_samp>
  3.  
  4. //Defines
  5.  //Defines (Mission)
  6. #define MISSION_TIME    480
  7. #define TEAM_A          1
  8. #define TEAM_B          2
  9. #define MAX_CLASSES     4
  10.  
  11.  //Defines (Colors)
  12. #define GREY        0x666666FF
  13. #define GREEN       0x00FF00FF
  14. #define LGREEN      0x66FF66FF
  15. #define RED     0xFF0000FF
  16. #define YELLOW      0xFFFF00FF
  17. #define BLANK       0xFFFFFFFF
  18.  
  19.  //Defines (Misc)
  20. #define UseBrackets             if(negative != positive)
  21. #define CreateVarTimer(%0,%1)   %0 = SetTimer(%1)
  22. #define SafeKillTimer(%0);      if(%0 != 0)\
  23.     {\
  24.     KillTimer(%0);\
  25.     %0 = 0;\
  26.     }
  27.  
  28.  //Defines (Formats)
  29. #define TextDrawSetStringF(%0,%1,%2);    UseBrackets\
  30.     {\
  31.     new formatstring[512];\
  32.     format(formatstring,sizeof(formatstring),%1,%2);\
  33.     TextDrawSetString(%0,formatstring);\
  34.     }
  35.  
  36. //Enums
  37. enum Spawns
  38. {
  39.     Float:SPAWN_AX,
  40.     Float:SPAWN_AY,
  41.     Float:SPAWN_AZ,
  42.     Float:SPAWN_AROTZ,
  43.     Float:SPAWN_BX,
  44.     Float:SPAWN_BY,
  45.     Float:SPAWN_BZ,
  46.     Float:SPAWN_BROTZ,
  47. }
  48.  
  49. //News
  50.  //News (Mission)
  51. new bool:negative = false, bool:positive = true, Objective, TeamClass[MAX_CLASSES], tickedtime, ClassWep[MAX_CLASSES][3], ClassAmmo[MAX_CLASSES][3], Text:CountdownTD, Text:Wpn[MAX_PLAYERS], Text:Wpn1[MAX_PLAYERS], Text:Wpn2[MAX_PLAYERS];
  52.  //News (Public Timers)
  53. new countdowntimer;
  54.  //News (Misc Arrays)
  55. new WeapName[][32] = {
  56.     {"N/A"},                // 0
  57.     {"Brass Knuckles"},     // 1
  58.     {"Golf Club"},          // 2
  59.     {"Night Stick"},        // 3
  60.     {"Knife"},              // 4
  61.     {"Baseball Bat"},       // 5
  62.     {"Shovel"},             // 6
  63.     {"Pool Cue"},           // 7
  64.     {"Katana"},             // 8
  65.     {"Chainsaw"},           // 9
  66.     {"Dildo"},              // 10
  67.     {"B-White Vibrator"},   // 11
  68.     {"M-White Vibrator"},   // 12
  69.     {"S-White Vibrator"},   // 13
  70.     {"Flowers"},            // 14
  71.     {"Cane"},               // 15
  72.     {"Grenade"},            // 16
  73.     {"Teargas"},            // 17
  74.     {"Molotov"},            // 18
  75.     {" "},                  // 19
  76.     {" "},                  // 20
  77.     {" "},                  // 21
  78.     {"Pistol"},             // 22
  79.     {"S-Pistol"},           // 23
  80.     {"Deagle"},             // 24
  81.     {"Shotgun"},            // 25
  82.     {"Sawnoff"},            // 26
  83.     {"SPAZ"},               // 27
  84.     {"UZI"},                // 28
  85.     {"MP5"},                // 29
  86.     {"AK47"},               // 30
  87.     {"M4"},                 // 31
  88.     {"Tec9"},               // 32
  89.     {"Country Rifle"},      // 33
  90.     {"Sniper"},             // 34
  91.     {"RPG"},                // 35
  92.     {"HS RPG"},             // 36
  93.     {"Flamethrower"},       // 37
  94.     {"Minigun"},            // 38
  95.     {"Satchel Bombs"},      // 39
  96.     {"Detonator"},          // 40
  97.     {"Spray Can"},          // 41
  98.     {"Fire Extinguisher"}// 42
  99.     {"Camera"},             // 43
  100.     {"NV Goggles"},         // 44
  101.     {"IRV Goggles"},        // 45
  102.     {"Parachute"},          // 46
  103.     {"Fake Pistol"}         // 47
  104. };
  105.  
  106. new Spawn[][Spawns] = {
  107. {-1105.9673, -1637.2704, 76.3672, 275.6392,     -1183.3479, -1139.1335, 129.2188, 21.7289,},
  108. {-1112.3003, -1673.1960, 76.3672, 7.4233,       -1059.5410, -1067.6877, 129.2259, 357.7773,}
  109. };
  110.  
  111. //Forwards
  112. forward ExitTheGameMode();
  113. forward Countdown();
  114.  
  115. //Stocks
  116. stock PlaySoundForAll(soundid, Float:x, Float:y, Float:z) for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) PlayerPlaySound(i, soundid, x, y, z);
  117.  
  118. stock AddPlayerClass2(playerid, Float:x, Float:y, Float:z, Float:rotz, wep1, ammo1, wep2, ammo2, wep3, ammo3)
  119. {
  120.     new classid = AddPlayerClass(playerid, Float:x, Float:y, Float:z, Float:rotz, wep1, ammo1, wep2, ammo2, wep3, ammo3);
  121.     ClassWep[classid][0] = wep1;
  122.     ClassAmmo[classid][0] = ammo1;
  123.     ClassWep[classid][1] = wep2;
  124.     ClassAmmo[classid][1] = ammo2;
  125.     ClassWep[classid][2] = wep3;
  126.     ClassAmmo[classid][2] = ammo3;
  127.     return classid;
  128. }
  129.  
  130. //Misc
  131. main()
  132. {
  133.     print("\n--------------------------------------------------------------------");
  134.     print("- Harvestor is made by [TW]RoXoR. ----------------------------------");
  135.     print("- This script has been modified by BigETIĀ©. ------------------------");
  136.     print("- Do not missuse this script or else you'll get troubles with them -");
  137.     print("--------------------------------------------------------------------\n");
  138. }
  139.  
  140. //Publics
  141. public Countdown()
  142. {
  143.     tickedtime++;
  144.     new ticktime = MISSION_TIME-tickedtime, tempticktime = ticktime, minutes = 0, seconds = 0;
  145.     while(tempticktime > 59)
  146.     {
  147.         tempticktime = tempticktime-60;
  148.         minutes++;
  149.     }
  150.     seconds = tempticktime;
  151.     TextDrawSetStringF(CountdownTD, "%02d:%02d", minutes, seconds);
  152.     if(ticktime == 0)
  153.     {
  154.         SafeKillTimer(countdowntimer);
  155.         for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  156.         {
  157.             switch(GetPVarInt(playerid, "IsInTeam"))
  158.             {
  159.                 case TEAM_A: GameTextForAll("Mission ~y~ Failed", 3000,5);
  160.                 case TEAM_B:
  161.                 {
  162.                     GameTextForAll("~g~Farmers ~w~have successfully saved the ~y~ Harvestor ~w~ from ~b~The Truth Guys", 5000, 5);
  163.                     GivePlayerMoney(playerid, 20000);
  164.                     PlaySoundForAll(1185, 0.0, 0.0, 0.0);
  165.                 }
  166.             }
  167.         }
  168.         SetTimer("ExitTheGameMode", 6000, 0);
  169.     }
  170.     return 1;
  171. }
  172.  
  173. public ExitTheGameMode()
  174. {
  175.     PlaySoundForAll(1186, 0.0, 0.0, 0.0);
  176.     GameModeExit();
  177. }
  178.  
  179. public OnGameModeInit()
  180. {
  181.     //Main
  182.     SetGameModeText("Gang Wars");
  183.     SendRconCommand("mapname Country");
  184.     UsePlayerPedAnims();
  185.     DisableInteriorEnterExits();
  186.     AllowInteriorWeapons(true);
  187.  
  188.     //Classes
  189.     TeamClass[0] = AddPlayerClass2(33,-1105.9673,-1637.2704,76.3672,275.6392,31,500,29,9000,22,100); // TeamTruth spawn1
  190.     TeamClass[1] = AddPlayerClass2(33,-1112.3003,-1673.1960,76.3672,7.4233,30,350,28,5000,25,250); // TeamTruth spawn2
  191.     TeamClass[2] = AddPlayerClass2(200,-1183.3479,-1139.1335,129.2188,21.7289,31,5000,34,100,16,5); // TFspawn
  192.     TeamClass[3] = AddPlayerClass2(200,-1059.5410,-1067.6877,129.2259,357.7773,30,9000,9,1,24,700); // TFspawn2
  193.  
  194.     //Objective
  195.     Objective = AddStaticVehicle(532,-1104.2476,-977.7117,130.1947,183.8765,0,0); // harvestor
  196.  
  197.     //Vehicles
  198.     AddStaticVehicle(424,-1083.4618,-1655.4064,76.1537,273.8077,3,6); // TTcar
  199.     AddStaticVehicle(424,-1088.6721,-1655.7129,76.1545,276.0867,3,6); // TTcar
  200.     AddStaticVehicle(424,-1086.7767,-1651.2168,76.1552,281.6748,3,6); // TTcar
  201.     AddStaticVehicle(424,-1092.2102,-1652.3386,76.1551,281.6733,3,6); // TTcar
  202.     AddStaticVehicle(424,-1084.9082,-1646.1666,76.1474,268.7104,3,6); // TTcar
  203.     AddStaticVehicle(424,-1090.9301,-1646.0222,76.1539,268.6959,3,6); // TTcar
  204.     AddStaticVehicle(424,-1085.4938,-1640.7003,76.1476,270.1216,3,6); // TTcar
  205.     AddStaticVehicle(424,-1092.4248,-1640.7130,76.1538,270.1037,3,6); // TTcar
  206.     AddStaticVehicle(424,-1085.3746,-1635.7444,76.1484,265.1099,3,6); // TTcar
  207.     AddStaticVehicle(424,-1091.7144,-1635.2021,76.1485,265.1093,3,6); // TTcar
  208.     AddStaticVehicle(424,-1003.3716,-1609.4242,76.1481,266.4464,3,6); // TTcar
  209.     AddStaticVehicle(424,-1014.6768,-1608.7222,76.1491,266.4441,3,6); // TTcar
  210.     AddStaticVehicle(424,-1009.4240,-1609.0487,76.1489,266.4432,3,6); // TTcar
  211.     AddStaticVehicle(424,-1003.5905,-1622.0863,76.1481,224.8812,3,6); // TTcar
  212.     AddStaticVehicle(424,-1013.1752,-1620.4647,76.1488,300.7984,3,6); // TTcar
  213.     AddStaticVehicle(424,-990.1639,-1623.6859,76.1462,253.0718,3,6); // TTcar
  214.     AddStaticVehicle(478,-1082.9519,-1182.5693,129.2154,271.2996,39,1); // car1
  215.     AddStaticVehicle(478,-1071.1584,-1181.9585,129.2075,266.8807,39,1); // car2
  216.     AddStaticVehicle(478,-1063.0864,-1181.9574,129.2119,269.8730,39,1); // car3
  217.     AddStaticVehicle(531,-1068.6891,-1154.3542,129.1832,272.5280,51,53); // tractor
  218.     AddStaticVehicle(531,-1028.8585,-1183.8082,129.1866,93.6113,51,53); // tractor
  219.  
  220.     //Textdraw
  221.     CountdownTD = TextDrawCreate(550.000000, 21.000000, "00:00");
  222.     TextDrawBackgroundColor(CountdownTD, 255);
  223.     TextDrawFont(CountdownTD, 1);
  224.     TextDrawLetterSize(CountdownTD, 0.500000, 1.000000);
  225.     TextDrawColor(CountdownTD, -1);
  226.     TextDrawSetOutline(CountdownTD, 0);
  227.     TextDrawSetProportional(CountdownTD, 1);
  228.     TextDrawSetShadow(CountdownTD, 1);
  229.     TextDrawUseBox(CountdownTD, 1);
  230.     TextDrawBoxColor(CountdownTD, 167772240);
  231.     TextDrawTextSize(CountdownTD, 616.000000, 0.000000);
  232.  
  233.     //Timers
  234.     CreateVarTimer(countdowntimer, "Countdown", 1000, true);
  235.     return 1;
  236. }
  237.  
  238. public OnGameModeExit()
  239. {
  240.     return 1;
  241. }
  242.  
  243. public OnPlayerRequestClass(playerid, classid)
  244. {
  245.     SetPlayerPos(playerid,1984.4445,157.9501,55.9384);
  246.     SetPlayerCameraPos(playerid,1984.4445,160.9501,55.9384);
  247.     SetPlayerCameraLookAt(playerid,1984.4445,157.9501,55.9384);
  248.     SetPlayerFacingAngle(playerid,0.0);
  249.     if(classid == TeamClass[0])
  250.     {
  251.         SetPVarInt(playerid, "IsInTeam", TEAM_A);
  252.         GameTextForPlayer(playerid,"~r~Team Truth ~w~Member", 1000, 5);
  253.     }
  254.     else if(classid == TeamClass[1])
  255.     {
  256.         SetPVarInt(playerid, "IsInTeam", TEAM_A);
  257.         GameTextForPlayer(playerid, "~r~Team Truth ~w~Member", 1000, 5);
  258.  
  259.     }
  260.     if(classid == TeamClass[2])
  261.     {
  262.         SetPVarInt(playerid, "IsInTeam", TEAM_B);
  263.         GameTextForPlayer(playerid,"~g~Farmer ~w~Team", 1000, 5);
  264.     }
  265.     if(classid == TeamClass[3])
  266.     {
  267.         SetPVarInt(playerid, "IsInTeam", TEAM_B);
  268.         GameTextForPlayer(playerid,"~g~Farmer ~w~Team", 1000, 5);
  269.     }
  270.     TextDrawSetStringF(Wpn[playerid], "~r~%s : %d", WeapName[ClassWep[classid][0]], ClassAmmo[classid][0]);
  271.     TextDrawSetStringF(Wpn1[playerid], "~r~%s : %d", WeapName[ClassWep[classid][1]], ClassAmmo[classid][1]);
  272.     TextDrawSetStringF(Wpn2[playerid], "~r~%s : %d", WeapName[ClassWep[classid][2]], ClassAmmo[classid][2]);
  273.     TextDrawShowForPlayer(playerid, Wpn[playerid]);
  274.     TextDrawShowForPlayer(playerid, Wpn1[playerid]);
  275.     TextDrawShowForPlayer(playerid, Wpn2[playerid]);
  276.     return 1;
  277. }
  278.  
  279. public OnPlayerConnect(playerid)
  280. {
  281.     SendClientMessage(playerid, LGREEN, "Mission 'Harvestor' made by [TW]RoXoR");
  282.     SendClientMessage(playerid, LGREEN, "This mission has been completly re-scripted by BigETI");
  283.     SetPlayerColor(playerid, GREY);
  284.     TextDrawShowForPlayer(playerid, CountdownTD);
  285.     Wpn[playerid] = TextDrawCreate(400,250," ");
  286.     TextDrawSetShadow(Wpn[playerid], 0);
  287.     TextDrawSetOutline(Wpn[playerid], 2);
  288.     Wpn1[playerid] = TextDrawCreate(400,270," ");
  289.     TextDrawSetShadow(Wpn1[playerid], 0);
  290.     TextDrawSetOutline(Wpn1[playerid], 2);
  291.     Wpn2[playerid] = TextDrawCreate(400,290," ");
  292.     TextDrawSetShadow(Wpn2[playerid], 0);
  293.     TextDrawSetOutline(Wpn2[playerid], 2);
  294.     return 1;
  295. }
  296.  
  297. public OnPlayerDisconnect(playerid, reason)
  298. {
  299.     TextDrawDestroy(Wpn[playerid]);
  300.     TextDrawDestroy(Wpn1[playerid]);
  301.     TextDrawDestroy(Wpn2[playerid]);
  302. }
  303.  
  304. public OnPlayerSpawn(playerid)
  305. {
  306.     new spawnid = random(2);
  307.     switch(GetPVarInt(playerid, "IsInTeam"))
  308.     {
  309.         case TEAM_A:
  310.         {
  311.             SetPlayerPos(playerid, Spawn[spawnid][SPAWN_AX], Spawn[spawnid][SPAWN_AY], Spawn[spawnid][SPAWN_AZ]);
  312.             SetPlayerFacingAngle(playerid, Spawn[spawnid][SPAWN_AROTZ]);
  313.             SetPlayerColor(playerid, RED);
  314.             GameTextForPlayer(playerid, "Capture the ~y~Harvestor ~w~from ~g~ the 'Farmers'", 6000, 5);
  315.         }
  316.         case TEAM_B:
  317.         {
  318.             SetPlayerPos(playerid, Spawn[spawnid][SPAWN_BX], Spawn[spawnid][SPAWN_BY], Spawn[spawnid][SPAWN_BZ]);
  319.             SetPlayerFacingAngle(playerid, Spawn[spawnid][SPAWN_BROTZ]);
  320.             SetPlayerColor(playerid, GREEN);
  321.             GameTextForPlayer(playerid, "Defend the ~y~Harvestor ~w~ from ~r~'The Truth' Members.", 6000, 5);
  322.         }
  323.     }
  324.     TextDrawHideForPlayer(playerid,Wpn[playerid]);
  325.     TextDrawHideForPlayer(playerid,Wpn1[playerid]);
  326.     TextDrawHideForPlayer(playerid,Wpn2[playerid]);
  327.     return 1;
  328. }
  329.  
  330. public OnPlayerDeath(playerid, killerid, reason)
  331. {
  332.     SendDeathMessage(killerid, playerid, reason);
  333.     if(killerid != INVALID_PLAYER_ID)
  334.     {
  335.         if(GetPVarInt(killerid, "IsInTeam") != GetPVarInt(playerid, "IsInTeam"))
  336.         {
  337.             SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  338.             GivePlayerMoney(playerid, -3000);
  339.             GivePlayerMoney(killerid, 5000);
  340.         }
  341.     }
  342.     return 1;
  343. }
  344.  
  345. public OnVehicleSpawn(vehicleid) return 1;
  346. public OnVehicleDeath(vehicleid, killerid) return 1;
  347. public OnPlayerText(playerid, text[]) return 1;
  348. public OnPlayerCommandText(playerid, cmdtext[]) return 0;
  349. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) return 1;
  350. public OnPlayerExitVehicle(playerid, vehicleid) return 1;
  351.  
  352. public OnPlayerStateChange(playerid, newstate, oldstate)
  353. {
  354.     if(newstate == PLAYER_STATE_DRIVER)
  355.     {
  356.  
  357.         if(GetPVarInt(playerid, "IsInTeam") == TEAM_A && GetPlayerVehicleID(playerid) == Objective)
  358.         {
  359.             GameTextForPlayer(playerid,"~w~Take the ~y~car ~w~back to the ~r~spawn!",3000,5);
  360.             SetPlayerCheckpoint(playerid,-1107.3228,-1620.3885,76.3672,7.0);
  361.         }
  362.  
  363.     }
  364.     else if(newstate == PLAYER_STATE_ONFOOT) DisablePlayerCheckpoint(playerid);
  365.     return 1;
  366. }
  367.  
  368. public OnPlayerEnterCheckpoint(playerid)
  369. {
  370.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  371.     {
  372.         if(GetPlayerVehicleID(playerid) == Objective && GetPVarInt(playerid, "IsInTeam") == TEAM_A)
  373.         {
  374.             SafeKillTimer(countdowntimer);
  375.             for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) DisablePlayerCheckpoint(i);
  376.             GameTextForAll("~g~ATTACKERS ~w~have won!",3000,5);
  377.             SetPlayerScore(playerid, GetPlayerScore(playerid)+5);
  378.             GivePlayerMoney(playerid, 20000);
  379.             PlaySoundForAll(1185, 0.0, 0.0, 0.0);
  380.             SetVehicleVelocity(Objective, 0.0, 0.0, 0.0);
  381.             RemovePlayerFromVehicle(playerid);
  382.             SetTimer("ExitTheGameMode", 6000, 0);
  383.         }
  384.     }
  385.     return 1;
  386. }
  387.  
  388. public OnPlayerLeaveCheckpoint(playerid) return 1;
  389. public OnPlayerEnterRaceCheckpoint(playerid) return 1;
  390. public OnPlayerLeaveRaceCheckpoint(playerid) return 1;
  391. public OnRconCommand(cmd[]) return 1;
  392. public OnPlayerRequestSpawn(playerid) return 1;
  393. public OnObjectMoved(objectid) return 1;
  394. public OnPlayerObjectMoved(playerid, objectid) return 1;
  395. public OnPlayerPickUpPickup(playerid, pickupid) return 1;
  396. public OnVehicleMod(playerid, vehicleid, componentid) return 1;
  397. public OnVehiclePaintjob(playerid, vehicleid, paintjobid) return 1;
  398. public OnVehicleRespray(playerid, vehicleid, color1, color2) return 1;
  399. public OnPlayerSelectedMenuRow(playerid, row) return 1;
  400. public OnPlayerExitedMenu(playerid) return 1;
  401. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) return 1;
  402. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) return 1;
  403. public OnRconLoginAttempt(ip[], password[], success) return 1;
  404. public OnPlayerUpdate(playerid) return 1;
  405. public OnPlayerStreamIn(playerid, forplayerid) return 1;
  406. public OnPlayerStreamOut(playerid, forplayerid) return 1;
  407.  
  408. public OnVehicleStreamIn(vehicleid, forplayerid)
  409. {
  410.     if(vehicleid == Objective)
  411.     {
  412.         switch(GetPVarInt(forplayerid, "IsInTeam"))
  413.         {
  414.             case TEAM_A: SetVehicleParamsForPlayer(Objective, forplayerid, 1, 0);
  415.             case TEAM_B: SetVehicleParamsForPlayer(Objective, forplayerid, 1, 1);
  416.         }
  417.     }
  418.     return 1;
  419. }
  420.  
  421. public OnVehicleStreamOut(vehicleid, forplayerid) return 1;
  422. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) return 1;
  423. public OnPlayerClickPlayer(playerid, clickedplayerid, source) return 1;
Advertisement
Add Comment
Please, Sign In to add comment