Nyft_

Sistema de Faggio & Destruction Time ~Nyft

Dec 21st, 2020 (edited)
401
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.94 KB | None | 0 0
  1. #include a_samp
  2. #include streamer
  3.  
  4. #define function%0(%1) \
  5.     forward%0(%1); public%0(%1)
  6.    
  7. #define PRESSED(%0) \
  8.     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  9.  
  10.  
  11. #define PICKUP_FAGGIO_X         125.0640
  12. #define PICKUP_FAGGIO_Y         -83.8021
  13. #define PICKUP_FAGGIO_Z         1.5781
  14.  
  15. #define SPAWN_FAGGIO_X          125.2240
  16. #define SPAWN_FAGGIO_Y          -88.8164
  17. #define SPAWN_FAGGIO_Z          1.5781
  18. #define SPAWN_FAGGIO_A          270.0000
  19.  
  20.  
  21. static
  22.     gVehicleFaggioID[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...},
  23.     gVehicleFaggioTimer[MAX_PLAYERS] = {-1, ...},
  24.     gVehicleFaggioCount[MAX_PLAYERS];
  25.  
  26. main(){}
  27.  
  28. public OnGameModeInit()
  29. {
  30.     CreateDynamicPickup(1318, 1, PICKUP_FAGGIO_X, PICKUP_FAGGIO_Y, PICKUP_FAGGIO_Z, .streamdistance = 50.0);
  31.     CreateDynamic3DTextLabel("{1E90FF}Faggio\n{FFFFFF}Aperte F ou Enter para pegar", -1, PICKUP_FAGGIO_X, PICKUP_FAGGIO_Y, PICKUP_FAGGIO_Z+0.75, 50.0, .testlos = 1);
  32.     return 1;
  33. }
  34.  
  35. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  36. {
  37.     if(PRESSED(KEY_SECONDARY_ATTACK))
  38.     {
  39.         if(IsPlayerInAnyVehicle(playerid))
  40.             return 1;
  41.  
  42.         if(IsPlayerInRangeOfPoint(playerid, 1.0, PICKUP_FAGGIO_X, PICKUP_FAGGIO_Y, PICKUP_FAGGIO_Z))
  43.         {
  44.             if(gVehicleFaggioID[playerid] != INVALID_VEHICLE_ID)
  45.                 return SendClientMessage(playerid, -1, "* Você não pode pegar uma Faggio com outra criada.");
  46.  
  47.             gVehicleFaggioID[playerid] = CreateVehicle(462, SPAWN_FAGGIO_X, SPAWN_FAGGIO_Y, SPAWN_FAGGIO_Z, SPAWN_FAGGIO_A, -1, -1, -1);
  48.             PutPlayerInVehicle(playerid, gVehicleFaggioID[playerid], 0);
  49.         }
  50.     }
  51.     return 1;
  52. }
  53.  
  54. public OnPlayerStateChange(playerid, newstate, oldstate)
  55. {
  56.     if(newstate == PLAYER_STATE_DRIVER)
  57.     {
  58.         if(gVehicleFaggioID[playerid] != INVALID_VEHICLE_ID)
  59.         {
  60.             if(gVehicleFaggioCount[playerid] != 0 && gVehicleFaggioTimer[playerid] != -1)
  61.             {
  62.                 KillTimer(gVehicleFaggioTimer[playerid]);
  63.                 gVehicleFaggioTimer[playerid] = -1;
  64.                 gVehicleFaggioCount[playerid] = 0;
  65.             }
  66.         }
  67.     }
  68.     if(oldstate == PLAYER_STATE_DRIVER)
  69.     {
  70.         if(gVehicleFaggioID[playerid] != INVALID_VEHICLE_ID)
  71.         {
  72.             if(!gVehicleFaggioCount[playerid] && gVehicleFaggioTimer[playerid] == -1)
  73.             {
  74.                 gVehicleFaggioCount[playerid] = 30;
  75.                 gVehicleFaggioTimer[playerid] = SetTimerEx("OnDestroyFaggioUpdate", 1000, true, "i", playerid);
  76.             }
  77.         }
  78.     }
  79.     return 1;
  80. }
  81.  
  82. function OnDestroyFaggioUpdate(playerid)
  83. {
  84.     if(gVehicleFaggioTimer[playerid] != -1)
  85.     {
  86.         if(!(--gVehicleFaggioCount[playerid]))
  87.         {
  88.             KillTimer(gVehicleFaggioTimer[playerid]);
  89.             gVehicleFaggioTimer[playerid] = -1;
  90.             gVehicleFaggioCount[playerid] = 0;
  91.             DestroyVehicle(gVehicleFaggioID[playerid]);
  92.             gVehicleFaggioID[playerid] = INVALID_VEHICLE_ID;
  93.         }
  94.         else
  95.         {
  96.             new string[32];
  97.             format(string, sizeof(string), "~r~FAGGIO DESTRUIDA EM ~w~%d", gVehicleFaggioCount[playerid]);
  98.             GameTextForPlayer(playerid, string, 1000, 5);
  99.         }
  100.     }
  101.     return 1;
  102. }
Add Comment
Please, Sign In to add comment