Advertisement
Guest User

Courier Delivery Job

a guest
Oct 2nd, 2015
1,509
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.45 KB | None | 0 0
  1. #define FILTRTSCRIPT
  2.  
  3. #include <a_samp>
  4. #include <zcmd>
  5. #include <foreach>
  6.  
  7. #define PRESSED(%0) \
  8.     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  9.  
  10. new Float: DeliveryCP[][3] =// all near los santos airport
  11. {
  12.     {1894.2181,-2133.8342,15.4663},
  13.     {1872.5140,-2133.4617,15.4820},
  14.     {1851.8079,-2135.4785,15.3882},
  15.     {1804.1733,-2124.5183,13.9424},
  16.     {1802.0742,-2099.5574,14.0210},
  17.     {1782.1294,-2126.1873,14.0679},
  18.     {1781.5271,-2101.9512,14.0566},
  19.     {1761.2472,-2124.9226,14.0566},
  20.     {1762.4678,-2102.3833,13.8570},
  21.     {1734.7061,-2129.8684,14.0210},
  22.     {1711.6321,-2101.7390,14.0210},
  23.     {1715.0366,-2124.7524,14.0566},
  24.     {1684.7278,-2099.4089,13.8343},
  25.     {1695.4994,-2125.3999,13.8101},
  26.     {1673.7737,-2122.4600,14.1460},
  27.     {1667.4948,-2107.5659,14.0723},
  28.     {1851.8402,-2069.7188,15.4812},
  29.     {1873.6151,-2070.1265,15.4971},
  30.     {1895.4196,-2068.2354,15.6689},
  31.     {1937.9296,-1911.5403,15.2568},
  32.     {1928.5251,-1916.0890,15.2568},
  33.     {1913.4252,-1913.0002,15.2568},
  34.     {1891.9386,-1914.6025,15.2568},
  35.     {1872.1877,-1912.6665,15.2568},
  36.     {1854.1146,-1914.9354,15.2568},
  37.     {1897.8868,-2037.9088,13.5469},
  38.     {1898.4463,-2029.1753,13.5469},
  39.     {1916.7900,-2029.1899,13.5469},
  40.     {1916.8823,-2001.3242,13.5469},
  41.     {1908.0764,-1982.5504,13.5469},
  42.     {1877.7290,-1982.6965,13.5469},
  43.     {1878.1976,-2000.8708,13.5469},
  44.     {1868.0209,-2009.5092,13.5469},
  45.     {1849.1951,-2037.8882,13.5469},
  46.     {1849.4895,-2029.3500,13.5469},
  47.     {1835.8282,-2006.0781,13.5469},
  48.     {1817.5377,-2005.6517,13.5544}
  49. };
  50.  
  51. new bool:InJob[MAX_PLAYERS];
  52. new bool:DeliveryMan[MAX_PLAYERS];
  53. new Unload_Timer[MAX_PLAYERS];
  54.  
  55. main(){}
  56.  
  57. public OnFilterScriptInit()
  58. {
  59.     // copuple of objects for lsa entry and where burrito's are parked.
  60.     CreateObject(3630, 2001.76611, -2221.56958, 14.04580,   0.00000, 0.00000, 90.00000);
  61.     CreateObject(19425, 1964.95703, -2176.78857, 12.56570,   0.00000, 0.00000, 0.00000);
  62.     CreateObject(19425, 1961.65063, -2176.78857, 12.56570,   0.00000, 0.00000, 0.00000);
  63.     CreateObject(19425, 1958.34729, -2176.78857, 12.56570,   0.00000, 0.00000, 0.00000);
  64.     CreateObject(3576, 1996.87439, -2218.30664, 14.04240,   0.00000, 0.00000, 0.00000);
  65.     CreateObject(3577, 1997.40527, -2221.84839, 13.30540,   0.00000, 0.00000, -90.00000);
  66.     CreateObject(1685, 1998.73010, -2225.29907, 13.25740,   0.00000, 0.00000, 0.00000);
  67.     CreateObject(1685, 1996.45435, -2225.28662, 13.25740,   0.00000, 0.00000, 0.00000);
  68.    
  69.     AddStaticVehicle(482, 2006.3612, -2223.2078, 13.6652, 0.0071, 3, 3); // Burrito at LSA
  70.     AddStaticVehicle(482, 2010.3445, -2222.7461, 13.6698, 359.8188, 162, 162); // Burrito at LSA
  71.     AddStaticVehicle(482, 2014.2794, -2222.2490, 13.6675, 357.6033, 3, 3); // Burrito at LSA
  72.     AddStaticVehicle(482, 2021.5011, -2221.8401, 13.6709, 359.1634, 162, 162); // Burrito at LSA
  73.     AddStaticVehicle(482, 2026.4165, -2222.1641, 13.6664, 359.2516, 3, 3);  // Burrito at LSA
  74.    
  75.     Create3DTextLabel("Los Santos International Airport\n Courier Depot", 0x33AA33FF, 1998.9209,-2212.8696,13.5469, 30.0, 0, 0);
  76.     return 1;
  77. }
  78.  
  79. public OnFilterScriptExit()
  80. {
  81.     foreach(new i: Player)
  82.     {
  83.         DeliveryMan[i] = false;
  84.         InJob[i] = false;
  85.         DisablePlayerCheckpoint(i);
  86.         KillTimer(Unload_Timer[i]);
  87.     }
  88.    
  89.     return 1;
  90. }
  91.  
  92. public OnPlayerConnect(playerid)
  93. {
  94.     InJob[playerid] = false;
  95.     DeliveryMan[playerid] = false;
  96.    
  97.     SetPlayerMapIcon(playerid, 12, 1998.9209,-2212.8696,13.5469, 51 , 0, MAPICON_LOCAL); // Truck Icon at LSA
  98.     return 1;
  99. }
  100.  
  101. public OnPlayerDisconnect(playerid, reason)
  102. {
  103.     InJob[playerid] = false;
  104.     DeliveryMan[playerid] = false;
  105.     KillTimer(Unload_Timer[playerid]);
  106.     return 1;
  107. }
  108.  
  109. public OnPlayerSpawn(playerid)
  110. {
  111.     InJob[playerid] = false;
  112.     DeliveryMan[playerid] = false;
  113.     return 1;
  114. }
  115.  
  116. public OnPlayerDeath(playerid, killerid, reason)
  117. {
  118.     InJob[playerid] = false;
  119.     DeliveryMan[playerid] = false;
  120.     return 1;
  121. }
  122.  
  123. public OnPlayerEnterCheckpoint(playerid)
  124. {
  125.     new playerState = GetPlayerState(playerid);
  126.  
  127.     if(playerState == PLAYER_STATE_ONFOOT )
  128.     {
  129.         if(DeliveryMan[playerid] == true)
  130.         {
  131.             GameTextForPlayer(playerid, "~r~UNLOADING...", 4000, 3);
  132.             Unload_Timer[playerid] = SetTimerEx("FinishJob", 5000, false, "i", playerid);
  133.             TogglePlayerControllable(playerid,0);
  134.         }
  135.     }
  136.     return 1;
  137. }
  138.  
  139. public OnPlayerStateChange(playerid, newstate, oldstate)
  140. {
  141.     if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
  142.     {
  143.         if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 482)
  144.         {
  145.             GameTextForPlayer(playerid, "~w~COURIER DELIVERY AVALIABLE ~n~PRESS ~y~Y", 5000, 3);
  146.             SendClientMessage(playerid, 0x76EEC6FF, "* It seems that there are undelivered packages in your Burrito.");
  147.         }
  148.         return 1;
  149.     }
  150.     return 1;
  151. }
  152.  
  153. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  154. {
  155.     if(PRESSED(KEY_YES))
  156.     {
  157.         if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 482)
  158.         {
  159.             if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  160.             {
  161.                 new rand = random(sizeof(DeliveryCP));
  162.                 if(InJob[playerid] == true) return SendClientMessage(playerid, 0xFF0000FF, "You're currently in a mission. Please finish it to start another delivery.");
  163.                 if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 482)
  164.                 {
  165.                     InJob[playerid] = true;
  166.                     DeliveryMan[playerid] = true;
  167.                     SetPlayerCheckpoint(playerid, DeliveryCP[rand][0], DeliveryCP[rand][1], DeliveryCP[rand][2], 1.5);
  168.                     GameTextForPlayer(playerid, "~w~COURIER JOB STARTED. DELIVER PACKAGE TO ~n~~r~RED ~w~CHECKPOINT", 5000, 3);
  169.                     SendClientMessage(playerid, 0x76EEC6FF, "* You can stop the delivery mission by typing /stopwork");
  170.                 }
  171.             }
  172.         }
  173.     }
  174.     return 1;
  175. }
  176.  
  177. COMMAND:stopwork(playerid,params[])
  178. {
  179.     if(DeliveryMan[playerid] == true)
  180.     {
  181.         DeliveryMan[playerid] = false;
  182.         InJob[playerid] = false;
  183.         DisablePlayerCheckpoint(playerid);
  184.         SendClientMessage(playerid, 0xFF0000FF, "You've stopped the Courier Delivery Mission.");
  185.     }
  186.     return 1;
  187. }
  188.  
  189. forward FinishJob(playerid);
  190. public FinishJob(playerid)
  191. {
  192.     new str[128], cash = RandomEx(1000, 8000);
  193.     format(str, sizeof str, "~w~PACKAGE DELIVERED, YOU'VE RECEIVED ~g~$%i ~w~AND ~g~1 ~w~SCORE", cash);
  194.     GameTextForPlayer(playerid, str, 6000, 3);
  195.     GivePlayerMoney(playerid, cash);
  196.     TogglePlayerControllable(playerid,1);
  197.     DisablePlayerCheckpoint(playerid);
  198.     SetPlayerScore(playerid, GetPlayerScore(playerid) + 1);
  199.     InJob[playerid] = false;
  200. }
  201.  
  202. RandomEx(min, max)
  203. {
  204.     return random(max - min) + min;
  205. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement