Nyft_

Profissão Base de Caminhoneiro ~Nyft

Jul 7th, 2021 (edited)
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.13 KB | None | 0 0
  1. #include a_samp
  2. #include streamer
  3. #include pawn.cmd
  4.  
  5. #define function%0(%1) \
  6.     forward%0(%1); public%0(%1)
  7.  
  8. static const TRUCKER_DELIVERIES = 5;        // Número de entregas
  9. static const MONEY_PER_DELIVERY = 250;      // Dinheiro por entrega
  10.  
  11. static TruckerCP[MAX_PLAYERS];
  12. static TruckerDeliveriesCount[MAX_PLAYERS];
  13. static TruckerTruckID[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...};
  14. static TruckerTrailerID[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...};
  15. static bool:TruckerLoaded[MAX_PLAYERS];
  16.  
  17. static const Float:TruckSpawns[][] =
  18. {
  19.     {-495.2845, -485.3680, 26.5557, 180.0000},
  20.     {-500.3450, -485.3680, 26.5557, 180.0000},
  21.     {-505.1847, -485.3680, 26.5557, 180.0000}
  22. };
  23.  
  24. static const Float:TrailerSpawns[][] =
  25. {
  26.     {-495.2845, -475.5900, 26.9940, 180.0000},
  27.     {-500.3450, -475.5900, 26.9940, 180.0000},
  28.     {-505.1847, -475.5900, 26.9940, 180.0000}
  29. };
  30.  
  31. static const Float:TruckerDeliveries[][] =
  32. {
  33.     {-470.80325, -522.95642, 24.56000},
  34.     {-488.50168, -536.69739, 24.56000},
  35.     {-501.66617, -517.13409, 24.56000}
  36. };
  37.  
  38. main(){}
  39.  
  40. public OnPlayerDisconnect(playerid, reason)
  41. {
  42.     if(TruckerLoaded[playerid])
  43.     {
  44.         DestroyVehicle(TruckerTruckID[playerid]);
  45.         TruckerTruckID[playerid] = INVALID_VEHICLE_ID;
  46.  
  47.         DestroyVehicle(TruckerTrailerID[playerid]);
  48.         TruckerTrailerID[playerid] = INVALID_VEHICLE_ID;
  49.        
  50.         DestroyDynamicRaceCP(TruckerCP[playerid]);
  51.         TruckerDeliveriesCount[playerid] = 0;
  52.         TruckerLoaded[playerid] = false;
  53.     }
  54.     return 1;
  55. }
  56.  
  57. public OnPlayerDeath(playerid, killerid, reason)
  58. {
  59.     if(TruckerLoaded[playerid])
  60.     {
  61.         DestroyVehicle(TruckerTruckID[playerid]);
  62.         TruckerTruckID[playerid] = INVALID_VEHICLE_ID;
  63.  
  64.         DestroyVehicle(TruckerTrailerID[playerid]);
  65.         TruckerTrailerID[playerid] = INVALID_VEHICLE_ID;
  66.  
  67.         TruckerLoaded[playerid] = false;
  68.         TruckerDeliveriesCount[playerid] = 0;
  69.         DestroyDynamicRaceCP(TruckerCP[playerid]);
  70.         SendClientMessage(playerid, -1, "* Você não conseguiu entregar todas as cargas e foi cancelado o serviço.");
  71.     }
  72.     return 1;
  73. }
  74.  
  75. public OnPlayerEnterDynamicRaceCP(playerid, checkpointid)
  76. {
  77.     if(checkpointid == TruckerCP[playerid])
  78.     {
  79.         if(TruckerLoaded[playerid])
  80.         {
  81.             DestroyDynamicRaceCP(TruckerCP[playerid]);
  82.             TogglePlayerControllable(playerid, false);
  83.             GameTextForPlayer(playerid, "~w~DESCARREGANDO...", 3000, 3);
  84.             SetTimerEx("OnUnloadTruck", 3000, false, "i", playerid);
  85.         }
  86.     }
  87.     return 1;
  88. }
  89.  
  90. function OnLoadTruck(playerid)
  91. {
  92.     if(!TruckerLoaded[playerid])
  93.     {
  94.         new rand = random(sizeof(TruckerDeliveries));
  95.         TruckerCP[playerid] = CreateDynamicRaceCP(1, TruckerDeliveries[rand][0], TruckerDeliveries[rand][1], TruckerDeliveries[rand][2], 0.0, 0.0, 0.0, 5.0, .playerid = playerid);
  96.         GameTextForPlayer(playerid, "~g~CARREGADO!", 3000, 3);
  97.         TogglePlayerControllable(playerid, true);
  98.         TruckerLoaded[playerid] = true;
  99.     }
  100.     return 1;
  101. }
  102.  
  103. function OnUnloadTruck(playerid)
  104. {
  105.     if(TruckerLoaded[playerid])
  106.     {
  107.         if(++TruckerDeliveriesCount[playerid] >= TRUCKER_DELIVERIES)
  108.         {
  109.             new string[80];
  110.             format(string, sizeof(string), "* Você entregou todas as cargas com sucesso ({008000}$%i{FFFFFF}).", TruckerDeliveriesCount[playerid] * MONEY_PER_DELIVERY);
  111.             SendClientMessage(playerid, -1, string);
  112.            
  113.             format(string, sizeof(string), "~w~DESCARREGADO!~n~~g~+$%i", TruckerDeliveriesCount[playerid] * MONEY_PER_DELIVERY);
  114.             GameTextForPlayer(playerid, string, 5000, 3);
  115.  
  116.             TogglePlayerControllable(playerid, true);
  117.             DestroyVehicle(TruckerTrailerID[playerid]);
  118.             TruckerTrailerID[playerid] = INVALID_VEHICLE_ID;
  119.             TruckerDeliveriesCount[playerid] = 0;
  120.             TruckerLoaded[playerid] = false;
  121.         }
  122.         else
  123.         {
  124.             new string[80];
  125.             format(string, sizeof(string), "* Foi marcado outro local para você descarregar (Entregas: %i/%i).", TruckerDeliveriesCount[playerid], TRUCKER_DELIVERIES);
  126.             SendClientMessage(playerid, -1, string);
  127.  
  128.             format(string, sizeof(string), "~w~DESCARREGADO!~n~~g~+$%i ~r~- ~y~%i/%i", MONEY_PER_DELIVERY, TruckerDeliveriesCount[playerid], TRUCKER_DELIVERIES);
  129.             GameTextForPlayer(playerid, string, 3000, 3);
  130.  
  131.             new rand = random(sizeof(TruckerDeliveries));
  132.             TruckerCP[playerid] = CreateDynamicRaceCP(1, TruckerDeliveries[rand][0], TruckerDeliveries[rand][1], TruckerDeliveries[rand][2], 0.0, 0.0, 0.0, 5.0, .playerid = playerid);
  133.             TogglePlayerControllable(playerid, true);
  134.         }
  135.     }
  136.     return 1;
  137. }
  138.  
  139. CMD:carregar(playerid)
  140. {
  141.     if(TruckerLoaded[playerid])
  142.         return SendClientMessage(playerid, -1, "* Você já está carregado.");
  143.  
  144.     new rand = random(sizeof(TruckSpawns));
  145.     TruckerTruckID[playerid] = CreateVehicle(515, TruckSpawns[rand][0], TruckSpawns[rand][1], TruckSpawns[rand][2], TruckSpawns[rand][3], -1, -1, -1);
  146.     TruckerTrailerID[playerid] = CreateVehicle(435, TrailerSpawns[rand][0], TrailerSpawns[rand][1], TrailerSpawns[rand][2], TrailerSpawns[rand][3], -1, -1, -1);
  147.     AttachTrailerToVehicle(TruckerTruckID[playerid], TruckerTruckID[playerid]);
  148.     PutPlayerInVehicle(playerid, TruckerTruckID[playerid], 0);
  149.     GameTextForPlayer(playerid, "~g~CARREGANDO...", 5000, 3);
  150.     SetTimerEx("OnLoadTruck", 5000, false, "i", playerid);
  151.     TogglePlayerControllable(playerid, false);
  152.     return 1;
  153. }
Add Comment
Please, Sign In to add comment