Guest User

PPC_Speedometer

a guest
Sep 11th, 2012
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 10.66 KB | None | 0 0
  1. forward Speedometer_Update(playerid);
  2. forward RefuelVehicle(playerid);
  3. Speedometer_Setup(playerid)
  4. {
  5.     APlayerData[playerid][SpeedometerText] = TextDrawCreate(473.0, 395.0, " ");
  6.     APlayerData[playerid][FuelGauge] = TextDrawCreate(473.0, 410.0, " ");
  7.     TextDrawShowForPlayer(playerid, APlayerData[playerid][SpeedometerText]);
  8.     TextDrawShowForPlayer(playerid, APlayerData[playerid][FuelGauge]);
  9.     APlayerData[playerid][SpeedometerTimer] = SetTimerEx("Speedometer_Update", 500, true, "i", playerid);
  10.     return 1;
  11. }
  12. Speedometer_Cleanup(playerid)
  13. {
  14.     TextDrawDestroy(APlayerData[playerid][SpeedometerText]);
  15.     TextDrawDestroy(APlayerData[playerid][FuelGauge]);
  16.     KillTimer(APlayerData[playerid][SpeedometerTimer]);
  17.     APlayerData[playerid][PlayerSpeed] = 0;
  18.     return 1;
  19. }
  20. public Speedometer_Update(playerid)
  21. {
  22.     new vehicleid, Float:speed_x, Float:speed_y, Float:speed_z, Float:final_speed, speed_string[50], final_speed_int, Float:vehiclehealth;
  23.     new FuelString[50], FuelStatus[20];
  24.     new Msg[128], Name[24];
  25.     vehicleid = GetPlayerVehicleID(playerid);
  26.     AntiHack(playerid);
  27.     if (GetPlayerState(playerid) == PLAYER_STATE_SPECTATING)
  28.     {
  29.         new OtherPlayer = APlayerData[playerid][SpectateID];
  30.         GetPlayerName(OtherPlayer, Name, sizeof(Name));
  31.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(OtherPlayer));
  32.         SetPlayerInterior(playerid, GetPlayerInterior(OtherPlayer));
  33.         if (APlayerData[playerid][SpectateType] == ADMIN_SPEC_TYPE_PLAYER)
  34.         {
  35.             if (GetPlayerVehicleSeat(OtherPlayer) != -1)
  36.             {
  37.                 PlayerSpectateVehicle(playerid, GetPlayerVehicleID(OtherPlayer));
  38.                 APlayerData[playerid][SpectateID] = OtherPlayer;
  39.                 APlayerData[playerid][SpectateVehicle] = GetPlayerVehicleID(OtherPlayer);
  40.                 APlayerData[playerid][SpectateType] = ADMIN_SPEC_TYPE_VEHICLE;
  41.                 format(Msg, 128, "{FFFFFF}[ESPIAR]: {FF0000}%s{FFFFFF} entrou num veiculo, modo de espiar alterado.", Name);
  42.                 SendClientMessage(playerid, 0x00FF00, Msg);
  43.             }
  44.         }
  45.         else
  46.         {
  47.             if (GetPlayerVehicleSeat(OtherPlayer) == -1)
  48.             {
  49.                 PlayerSpectatePlayer(playerid, OtherPlayer);
  50.                 SetPlayerInterior(playerid, GetPlayerInterior(OtherPlayer));
  51.                 APlayerData[playerid][SpectateID] = OtherPlayer;
  52.                 APlayerData[playerid][SpectateType] = ADMIN_SPEC_TYPE_PLAYER;
  53.                 format(Msg, 128, "{FFFFFF}[ESPIAR]: {FF0000}%s{FFFFFF} saiu do veiculo, modo de espiar alterado.", Name);
  54.                 SendClientMessage(playerid, 0xFFFFFFFF, Msg);
  55.             }
  56.         }
  57.     }
  58.     if (APlayerData[playerid][PoliceWarnedMe] == true)
  59.     {
  60.         if (GetPlayerWantedLevel(playerid) == 0)
  61.         {
  62.             APlayerData[playerid][PoliceCanJailMe] = false;
  63.             APlayerData[playerid][PoliceWarnedMe] = false;
  64.             APlayerData[playerid][Value_PoliceCanJailMe] = 0;
  65.             KillTimer(APlayerData[playerid][Timer_PoliceCanJailMe]);
  66.         }
  67.     }
  68.     if(vehicleid != 0)
  69.     {
  70.         GetVehicleVelocity(vehicleid, speed_x, speed_y, speed_z);
  71.         final_speed = floatsqroot(((speed_x * speed_x) + (speed_y * speed_y)) + (speed_z * speed_z)) * 158.179;
  72.         final_speed_int = floatround(final_speed, floatround_round);
  73.         APlayerData[playerid][PlayerSpeed] = final_speed_int;
  74.         format(speed_string, 50, TXT_SpeedometerSpeed, final_speed_int);
  75.         TextDrawSetString(APlayerData[playerid][SpeedometerText], speed_string);
  76.         APlayerData[playerid][StatsMetersDriven] = APlayerData[playerid][StatsMetersDriven] + (final_speed / 7.2);
  77.         GetVehicleHealth(vehicleid, vehiclehealth);
  78.         SetPlayerHealth(playerid, vehiclehealth / 10.0);
  79.         if ((final_speed_int > 10) && (AVehicleData[vehicleid][Fuel] > 0))
  80.             AVehicleData[vehicleid][Fuel] = AVehicleData[vehicleid][Fuel] - 1;
  81.  
  82.         if ((AVehicleData[vehicleid][Fuel] > 0) && (AVehicleData[vehicleid][Fuel] < 100000))
  83.             format(FuelStatus, 20, "~g~%s~r~%s", "I", "IIIIIIIII"); // Fuel is between 0% and 10% full
  84.  
  85.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 1)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 2)))
  86.             format(FuelStatus, 20, "~g~%s~r~%s", "II", "IIIIIIII"); // Fuel is between 10% and 20% full
  87.  
  88.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 2)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 3)))
  89.             format(FuelStatus, 20, "~g~%s~r~%s", "III", "IIIIIII"); // Fuel is between 20% and 30% full
  90.  
  91.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 3)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 4)))
  92.             format(FuelStatus, 20, "~g~%s~y~%s", "IIII", "IIIIII"); // Fuel is between 30% and 40% full
  93.  
  94.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 4)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 5)))
  95.             format(FuelStatus, 20, "~g~%s~y~%s", "IIIII", "IIIII"); // Fuel is between 40% and 50% full
  96.  
  97.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 5)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 6)))
  98.             format(FuelStatus, 20, "~g~%s~y~%s", "IIIIII", "IIII"); // Fuel is between 50% and 60% full
  99.  
  100.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 6)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 7)))
  101.             format(FuelStatus, 20, "~g~%s~y~%s", "IIIIIII", "III"); // Fuel is between 60% and 70% full
  102.  
  103.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 7)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 8)))
  104.             format(FuelStatus, 20, "~g~%s~y~%s", "IIIIIIII", "II"); // Fuel is between 70% and 80% full
  105.  
  106.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 8)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 9)))
  107.             format(FuelStatus, 20, "~g~%s~y~%s", "IIIIIIIII", "I"); // Fuel is between 80% and 90% full
  108.  
  109.         if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 9)) && (AVehicleData[vehicleid][Fuel] <= MaxFuel))
  110.             format(FuelStatus, 20, "~g~%s", "IIIIIIIIII"); // Fuel is between 90% and 100% full (all bars are green)
  111.  
  112.         if (AVehicleData[vehicleid][Fuel] == 0)
  113.             format(FuelStatus, 20, "~r~%s", "acabou");
  114.  
  115.         format(FuelString, 50, TXT_SpeedometerFuel, FuelStatus);
  116.         TextDrawSetString(APlayerData[playerid][FuelGauge], FuelString);
  117.         if (AVehicleData[vehicleid][Fuel] == 0)
  118.         {
  119.             new engine,lights,alarm,doors,bonnet,boot,objective;
  120.             GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  121.             SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective);
  122.         }
  123.         if (IsVehicleAirVehicle(vehicleid) == 0)
  124.             if (APlayerData[playerid][PlayerClass] != ClassPolice)
  125.                 CheckPlayerSpeeding(playerid);
  126.     }
  127.     else
  128.     {
  129.         TextDrawSetString(APlayerData[playerid][SpeedometerText], " ");
  130.         TextDrawSetString(APlayerData[playerid][FuelGauge], " ");
  131.         APlayerData[playerid][PlayerSpeed] = 0;
  132.     }
  133. }
  134. public RefuelVehicle(playerid)
  135. {
  136.     new RefuelMsg[128];
  137.     new vID = GetPlayerVehicleID(playerid);
  138.     new Amount = MaxFuel - AVehicleData[vID][Fuel];
  139.     new RefuelPrice = (Amount * RefuelMaxPrice) / MaxFuel;
  140.     if (APlayerData[playerid][PlayerMoney] >= RefuelPrice)
  141.     {
  142.         AVehicleData[vID][Fuel] = MaxFuel;
  143.         RewardPlayer(playerid, -RefuelPrice, 0);
  144.         format(RefuelMsg, 128, TXT_RefuelledVehicle, RefuelPrice);
  145.         SendClientMessage(playerid, 0xFFFFFFFF, RefuelMsg);
  146.     }
  147.     else
  148.         SendClientMessage(playerid, 0xFFFFFFFF, TXT_CannotRefuelVehicle);
  149.     TogglePlayerControllable(playerid, 1);
  150.  
  151.     return 1;
  152. }
  153. CheckPlayerSpeeding(playerid)
  154. {
  155.     new Name[24], Msg[128];
  156.     if (APlayerData[playerid][PlayerCaughtSpeeding] == 0)
  157.     {
  158.         for (new CamID; CamID < MAX_CAMERAS; CamID++)
  159.         {
  160.             if (ACameras[CamID][CamSpeed] != 0)
  161.             {
  162.                 if (GetPlayerVehicleSeat(playerid) == 0)
  163.                 {
  164.                     if (APlayerData[playerid][PlayerSpeed] > ACameras[CamID][CamSpeed])
  165.                     {
  166.                         if (IsPlayerInRangeOfPoint(playerid, 50.0, ACameras[CamID][CamX], ACameras[CamID][CamY], ACameras[CamID][CamZ]))
  167.                         {
  168.                             APlayerData[playerid][PlayerCaughtSpeeding] = 20;
  169.                             SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1);    
  170.                             PlayerPlaySound(playerid, 1132, 0.0, 0.0, 0.0);
  171.                             GameTextForPlayer(playerid, "~r~Flagrado pelo radar", 6000, 1);                              
  172.                             SendClientMessage(playerid, 0xFFFFFFFF, TXT_PlayerCaughtSpeeding);
  173.                             GetPlayerName(playerid, Name, sizeof(Name));
  174.                             format(Msg, 128, "{0000FF}[Departamento de Polícia] O suspeito {FFFFFF}%s {0000FF}foi pêgo em alta velocidade!", Name);
  175.                             Police_SendMessage(Msg);
  176.                             Police_SendMessage("{0000FF}[Objetivo]: {FFFFFF}Perseguir e multar{0000FF}.");                              
  177.                         }
  178.                     }
  179.                 }
  180.             }
  181.         }
  182.     }
  183.     else
  184.         APlayerData[playerid][PlayerCaughtSpeeding]--;
  185. }
  186. stock AntiHack(playerid)
  187. {
  188.     new Float:Armour;
  189.     if (APlayerData[playerid][AutoReportTime] > 0)
  190.     {
  191.         APlayerData[playerid][AutoReportTime]--;
  192.         return 1;
  193.     }
  194.     if (GetPVarInt(playerid, "PVarMoney") != 0)
  195.     {
  196.         APlayerData[playerid][PlayerMoney] = APlayerData[playerid][PlayerMoney] + GetPVarInt(playerid, "PVarMoney");
  197.         SetPVarInt(playerid, "PVarMoney", 0);
  198.     }
  199.     if (GetPVarInt(playerid, "PVarScore") != 0)
  200.     {
  201.         APlayerData[playerid][PlayerScore] = APlayerData[playerid][PlayerScore] + GetPVarInt(playerid, "PVarScore");
  202.         SetPVarInt(playerid, "PVarScore", 0);
  203.     }
  204.     ResetPlayerMoney(playerid);
  205.     GivePlayerMoney(playerid, APlayerData[playerid][PlayerMoney]);
  206.     SetPlayerScore(playerid, APlayerData[playerid][PlayerScore]);
  207.     Player_PortOutAdminZone(playerid, 106.0, 1805.0, -50.0, 285.0, 1940.0, 40.0, 15.0, 1732.0, 25.0);
  208.  
  209.     if (APlayerData[playerid][PlayerLevel] <= 1)
  210.     {
  211.         if (Armour > 1.0)
  212.         SendReportToAdmins(playerid, "Health-hack", true);        
  213.  
  214.         if (APlayerData[playerid][PlayerSpeed] > 300)
  215.         SendReportToAdmins(playerid, "Speed-hack", true);
  216.  
  217.         if (APlayerData[playerid][PlayerLevel] < 3)
  218.         {
  219.             if (GetPlayerSpecialAction(playerid) == 2)
  220.             SendReportToAdmins(playerid, "Jetpack-hack", true);
  221.         }    
  222.      }
  223.     if (GetPlayerVehicleSeat(playerid) == 0)
  224.     {
  225.         if (APlayerData[playerid][PlayerSpeed] < 10)
  226.         {
  227.             if (GetPlayerInterior(playerid) != APlayerData[playerid][PreviousInt])
  228.             {
  229.                 switch (GetPlayerInterior(playerid))
  230.                 {
  231.                     case 0, 1, 2, 3:
  232.                     {
  233.                         GetPlayerPos(playerid, APlayerData[playerid][PreviousX], APlayerData[playerid][PreviousY], APlayerData[playerid][PreviousZ]);
  234.                         APlayerData[playerid][PreviousInt] = GetPlayerInterior(playerid);
  235.                         return 1;
  236.                     }
  237.                 }
  238.             }
  239.             if (IsPlayerInRangeOfPoint(playerid, 7.5, APlayerData[playerid][PreviousX], APlayerData[playerid][PreviousY], APlayerData[playerid][PreviousZ]))
  240.             {
  241.             }
  242.             else
  243.                 if (APlayerData[playerid][PlayerLevel] <= 1)
  244.                 SendReportToAdmins(playerid, "Airbreak-hack", true);
  245.         }
  246.     }
  247.     GetPlayerPos(playerid, APlayerData[playerid][PreviousX], APlayerData[playerid][PreviousY], APlayerData[playerid][PreviousZ]);
  248.     APlayerData[playerid][PreviousInt] = GetPlayerInterior(playerid);
  249.     return 1;
  250. }
Advertisement
Add Comment
Please, Sign In to add comment