new Vehicles[][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; forward Speedometer_Update(playerid); forward RefuelVehicle(playerid); // This function sets up the speedometer for the given player Speedometer_Setup(playerid) { APlayerData[playerid][SpeedometerTimer] = SetTimerEx("Speedometer_Update", 200, true, "i", playerid); return 1; } // This function cleans up the speedometer for the given player Speedometer_Cleanup(playerid) { // Destroy the speedometer textdraw //PlayerTextDrawHide(playerid, SpeedometerText[playerid]); PlayerTextDrawHide(playerid, FuelGauge[playerid]); PlayerTextDrawHide(playerid, Textdraw0z[playerid]); PlayerTextDrawHide(playerid, Textdraw1z[playerid]); PlayerTextDrawHide(playerid, Textdraw2z[playerid]); PlayerTextDrawHide(playerid, Textdraw5z[playerid]); PlayerTextDrawHide(playerid, Textdraw7z[playerid]); PlayerTextDrawHide(playerid, Textdraw8z[playerid]); PlayerTextDrawHide(playerid, Textdraw9z[playerid]); PlayerTextDrawHide(playerid, Textdraw10z[playerid]); PlayerTextDrawHide(playerid, Textdraw11z[playerid]); PlayerTextDrawHide(playerid, Textdraw12z[playerid]); PlayerTextDrawHide(playerid, Textdraw13z[playerid]); PlayerTextDrawHide(playerid, Textdraw14z[playerid]); PlayerTextDrawHide(playerid, Textdraw15z[playerid]); PlayerTextDrawHide(playerid, Textdraw16z[playerid]); PlayerTextDrawHide(playerid, Textdraw17z[playerid]); //PlayerTextDrawHide(playerid, Textdraw18z[playerid]); PlayerTextDrawHide(playerid, Oqvcquiser[playerid]); PlayerTextDrawHide(playerid, Lataria[playerid]); // Kill the speedometer timer KillTimer(APlayerData[playerid][SpeedometerTimer]); // Set player speed to 0 APlayerData[playerid][PlayerSpeed] = 0; return 1; } public Speedometer_Update(playerid) { new vehicleid, Float:speed_x, Float:speed_y, Float:speed_z, Float:final_speed, speed_string[50], final_speed_int; new FuelString[50], Name[24]; vehicleid = GetPlayerVehicleID(playerid); AntiHack(playerid); if (GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) { new OtherPlayer = APlayerData[playerid][SpectateID]; GetPlayerName(OtherPlayer, Name, sizeof(Name)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(OtherPlayer)); SetPlayerInterior(playerid, GetPlayerInterior(OtherPlayer)); if (APlayerData[playerid][SpectateType] == ADMIN_SPEC_TYPE_PLAYER) { // Check if the target player has entered a vehicle if (GetPlayerVehicleSeat(OtherPlayer) != -1) { // Change spectate mode to vehicle PlayerSpectateVehicle(playerid, GetPlayerVehicleID(OtherPlayer)); APlayerData[playerid][SpectateID] = OtherPlayer; APlayerData[playerid][SpectateVehicle] = GetPlayerVehicleID(OtherPlayer); APlayerData[playerid][SpectateType] = ADMIN_SPEC_TYPE_VEHICLE; } } else { if (GetPlayerVehicleSeat(OtherPlayer) == -1) { PlayerSpectatePlayer(playerid, OtherPlayer); SetPlayerInterior(playerid, GetPlayerInterior(OtherPlayer)); APlayerData[playerid][SpectateID] = OtherPlayer; APlayerData[playerid][SpectateType] = ADMIN_SPEC_TYPE_PLAYER; } } } if (APlayerData[playerid][PoliceWarnedMe] == true) { if (GetPlayerWantedLevel(playerid) == 0) { APlayerData[playerid][ExercitoCanJailMe] = false; APlayerData[playerid][PoliceWarnedMe] = false; APlayerData[playerid][Value_ExercitoCanJailMe] = 0; KillTimer(APlayerData[playerid][Timer_ExercitoCanJailMe]); } } // If the player is inside a vehicle if(vehicleid != 0 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { GetVehicleVelocity(vehicleid, speed_x, speed_y, speed_z); final_speed = floatsqroot(((speed_x * speed_x) + (speed_y * speed_y)) + (speed_z * speed_z)) * 158.179; final_speed_int = floatround(final_speed, floatround_round); APlayerData[playerid][PlayerSpeed] = final_speed_int; format(speed_string, 50, "%i KM/H", final_speed_int); PlayerTextDrawSetString(playerid, SpeedometerText[playerid], speed_string); APlayerData[playerid][StatsMetersDriven] = APlayerData[playerid][StatsMetersDriven] + (final_speed / 7.2); //Vehicle Name new VehNamed[32]; format(VehNamed, 32, "%s", GetVehName(vehicleid)); PlayerTextDrawSetString(playerid, Textdraw15z[playerid], VehNamed); if (AVehicleData[vehicleid][Fuel] != 0){ if ((APlayerData[playerid][PlayerSpeed] > 10) && (AVehicleData[vehicleid][Fuel] > 0) && GetPVarInt(playerid, "consumir_combustivel") < GetTickCount()) { AVehicleData[vehicleid][Fuel] = AVehicleData[vehicleid][Fuel] - 1; // Decrease the fuel for this vehicle every time the timer is run SetPVarInt(playerid, "consumir_combustivel", GetTickCount() + 500); } format(FuelString, 64, "%0.0f%", floatdiv(AVehicleData[vehicleid][Fuel], (MaxFuel / 100))); PlayerTextDrawSetString(playerid, FuelGauge[playerid], FuelString); } else PlayerTextDrawSetString(playerid, FuelGauge[playerid], ""); /* if ((final_speed_int > 10) && (AVehicleData[vehicleid][Fuel] > 0)) AVehicleData[vehicleid][Fuel] = AVehicleData[vehicleid][Fuel] - 1; // Decrease the fuel for this vehicle every time the timer is run // Construct the fuelgauge if ((AVehicleData[vehicleid][Fuel] > 0) && (AVehicleData[vehicleid][Fuel] < 100000)) format(FuelStatus, 64, "~r~%s~y~%s", "100%~n~99%~n~98%~n~97%", "~n~96%"); // Fuel is between 0% and 10% full if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 1)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 2))) format(FuelStatus, 64, "~r~%s~g~~h~%s", "l~n~l~n~l~n~l", "~n~l"); // 1 pt if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 2)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 3))) format(FuelStatus, 64, "~r~%s~y~%s~g~~h~%s", "l~n~l~n~l", "~n~l", "~n~l");// 2 pts [-] if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 3)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 4))) format(FuelStatus, 64, "~r~%s~g~~h~%s","l~n~l~n~l", "~n~l~n~l");// 2 pts if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 4)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 5))) format(FuelStatus, 64, "~r~%s~y~%s~g~~h~%s", "l~n~l", "~n~l", "~n~l~n~l");// 3 pts [-] if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 5)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 6))) format(FuelStatus, 64, "~r~%s~g~~h~%s", "l~n~l", "~n~l~n~l~n~l");// 3 pts if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 6)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 7))) format(FuelStatus, 64, "~r~%s~y~%s~g~~h~%s", "l", "~n~l", "~n~l~n~l~n~l");//4 pts [-] if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 7)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 8))) format(FuelStatus, 64, "~r~%s~g~~h~%s", "l", "~n~l~n~l~n~l~n~l");//4 pts if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 8)) && (AVehicleData[vehicleid][Fuel] < ((MaxFuel / 10) * 9))) format(FuelStatus, 64, "~y~%s~g~~h~%s", "99%", "n~98%~n~97%~n~96%");//full [-] if ((AVehicleData[vehicleid][Fuel] >= ((MaxFuel / 10) * 9)) && (AVehicleData[vehicleid][Fuel] <= MaxFuel)) format(FuelStatus, 64, "%s", "100%"); //full if (AVehicleData[vehicleid][Fuel] == 0) format(FuelStatus, 64, "%s", "100%"); format(FuelString, 64, "%s", FuelStatus); PlayerTextDrawSetString(playerid, FuelGauge[playerid], FuelString);*/ new engine, lights, alarm, doors, bonnet, boot, objective; if (AVehicleData[vehicleid][Fuel] == 0) { GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicleid, 0, 0, alarm, doors, bonnet, boot, objective); } GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); if(engine == 1) { PlayerTextDrawColor(playerid, Textdraw12z[playerid], 16711935); } else { PlayerTextDrawColor(playerid, Textdraw12z[playerid], -16776961); } if(lights == 1) { PlayerTextDrawColor(playerid, Textdraw14z[playerid], 16711935); } else { PlayerTextDrawColor(playerid, Textdraw14z[playerid], -16776961); } if(bonnet == 1) { PlayerTextDrawColor(playerid, Textdraw11z[playerid], 16711935); } else { PlayerTextDrawColor(playerid, Textdraw11z[playerid], -16776961); } if(alarm == 1) { PlayerTextDrawColor(playerid, Textdraw13z[playerid], 16711935); } else { PlayerTextDrawColor(playerid, Textdraw13z[playerid], -16776961); } // Enable the TextDraw for this player PlayerTextDrawShow(playerid, FuelGauge[playerid]); PlayerTextDrawShow(playerid, SpeedometerText[playerid]); PlayerTextDrawShow(playerid, Textdraw0z[playerid]); PlayerTextDrawShow(playerid, Textdraw1z[playerid]); PlayerTextDrawShow(playerid, Textdraw2z[playerid]); PlayerTextDrawShow(playerid, Textdraw7z[playerid]); PlayerTextDrawShow(playerid, Textdraw8z[playerid]); PlayerTextDrawShow(playerid, Textdraw9z[playerid]); PlayerTextDrawShow(playerid, Textdraw10z[playerid]); PlayerTextDrawShow(playerid, Textdraw11z[playerid]); PlayerTextDrawShow(playerid, Textdraw12z[playerid]); PlayerTextDrawShow(playerid, Textdraw13z[playerid]); PlayerTextDrawShow(playerid, Textdraw14z[playerid]); PlayerTextDrawShow(playerid, Textdraw15z[playerid]); PlayerTextDrawShow(playerid, Textdraw16z[playerid]); PlayerTextDrawShow(playerid, Textdraw17z[playerid]); //PlayerTextDrawShow(playerid, Textdraw18z[playerid]); if (IsVehicleAirVehicle(vehicleid) == 0 && BarcoVeiculos(vehicleid) == 0) if (APlayerData[playerid][PlayerClass] != ClassPolice && APlayerData[playerid][PlayerClass] != ClassExercito) CheckPlayerSpeeding(playerid); } else { APlayerData[playerid][PlayerSpeed] = 0; PlayerTextDrawHide(playerid,Textdraw0z[playerid]); PlayerTextDrawHide(playerid,Textdraw1z[playerid]); PlayerTextDrawHide(playerid,Textdraw2z[playerid]); //PlayerTextDrawHide(playerid,Textdraw5z[playerid]); PlayerTextDrawHide(playerid,Textdraw7z[playerid]); PlayerTextDrawHide(playerid,Textdraw8z[playerid]); PlayerTextDrawHide(playerid,Textdraw9z[playerid]); PlayerTextDrawHide(playerid,Textdraw10z[playerid]); PlayerTextDrawHide(playerid,Textdraw11z[playerid]); PlayerTextDrawHide(playerid,Textdraw12z[playerid]); PlayerTextDrawHide(playerid,Textdraw13z[playerid]); PlayerTextDrawHide(playerid,Textdraw14z[playerid]); PlayerTextDrawHide(playerid,Textdraw15z[playerid]); PlayerTextDrawHide(playerid,Textdraw16z[playerid]); PlayerTextDrawHide(playerid,Textdraw17z[playerid]); //PlayerTextDrawHide(playerid,Textdraw18z[playerid]); } } // This timer-function is called when a player picks up a refuelpickup public RefuelVehicle(playerid) { new RefuelMsg[128]; // Get the vehicle-id of the player's vehicle new vID = GetPlayerVehicleID(playerid); // Calculate the amount of fuel that needs to be refuelled new Amount = MaxFuel - AVehicleData[vID][Fuel]; // Calculate the price to refuel new RefuelPrice = (Amount * RefuelMaxPrice) / MaxFuel; // Check if the player has enough cash if (APlayerData[playerid][PlayerMoney] >= RefuelPrice) { // Refuel the vehicle AVehicleData[vID][Fuel] = MaxFuel; // Withdraw the money from the player Ganhos(playerid, -RefuelPrice, 0); // Let the player know he refuelled his vehicle format(RefuelMsg, 128, "{FFA500}Você reabasteceu seu veículo por {00FF00}R${FFFFFF}%i", RefuelPrice); SCM(playerid, 0xFFFFFFFF, RefuelMsg); } else SCM(playerid, 0xFFFFFFFF, "{FFA500}Você não tem dinheiro suficiente para abastecer seu veículo."); // Allow the player to move again TogglePlayerControllable(playerid, 1); return 1; } // This function checks if the player is speeding near a speedcamera CheckPlayerSpeeding(playerid) { // Setup local variables new Name[24], str[128], Msg[128]; // Check if the player hasn't been caught speeding recently if (APlayerData[playerid][PlayerCaughtSpeeding] == 0) { // Loop through all speedcameras for (new CamID; CamID < MAX_CAMERAS; CamID++) { // Check if this camera has been created if (ACameras[CamID][CamSpeed] != 0) { // Check if the player is the driver of the vehicle if (GetPlayerVehicleSeat(playerid) == 0) { // Check if the player's speed is greater than the speed allowed by this camera (no need to process a distance-check if not speeding) if (APlayerData[playerid][PlayerSpeed] > ACameras[CamID][CamSpeed] + ACameras[CamID][CamSpeed] * 5 / 100) { // Check if the player is near the camera if (IsPlayerInRangeOfPoint(playerid, 40.0, ACameras[CamID][CamX], ACameras[CamID][CamY], ACameras[CamID][CamZ])) { if(Paused[playerid] == false) { if( GetPVarInt( playerid, "TempoComandoAFK" ) > GetTickCount() ) return 0; SetPVarInt( playerid, "TempoComandoAFK", GetTickCount() + 5000 ); // Prevent the player being caught multiple times by the same speed-camera APlayerData[playerid][PlayerCaughtSpeeding] = 20; // Increase the wanted-level of this player by 1 star SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1); // Let the player know he's been caught speeding format( str, sizeof str,"{FF0000}Você passou à {FFFFFF}%dKm/h {FF0000}(Permitido: {FFFFFF}%dKm/h +5°/.{FF0000}).", APlayerData[playerid][PlayerSpeed], ACameras[CamID][CamSpeed]); SCM( playerid, -1, str ); // Get the name of the player GetPlayerName(playerid, Name, sizeof(Name)); // Also inform all police players that this player is caught speeding format(Msg, 250, "{FF0000}Player {FFFFFF}%s{FF0000} foi pêgo em alta-velocidade. Persiga-o e Multe.", Name); Police_SendMessage(Msg); format(Msg, 128, "{FF0000}Visto pela última vez nas redondezas de: {FFFFFF}%s", ReturnPlayerZone(playerid)); Police_SendMessage(Msg); } } } } } } } else // If the player has been caught before, reduce the value until it's 0 again, then he can be caught again APlayerData[playerid][PlayerCaughtSpeeding]--; return 1; } // This function processes anti-hack stuff stock AntiHack(playerid) { // Setup local variables new Float:Armour; // Skip checking for hacks used by the player if he was reported by the Anti-Hack system already if (APlayerData[playerid][AutoReportTime] > 0) { // Reduce the time so the player can be reported again soon if he doesn't stop using hacks APlayerData[playerid][AutoReportTime]--; // Exit the function, this skips the hack-checks until the AutoReportTime has reached 0 // Otherwise the player is reported every half a second until he stops using hacks return 1; } // Check if a filterscript gave some money (or took it) to the player if (GetPVarInt(playerid, "PVarMoney") != 0) { // Add the money to the players account APlayerData[playerid][PlayerMoney] = APlayerData[playerid][PlayerMoney] + GetPVarInt(playerid, "PVarMoney"); // Clear the PVar SetPVarInt(playerid, "PVarMoney", 0); } if (GetPVarInt(playerid, "PVarScore") != 0) { // Add the money to the players account APlayerData[playerid][PlayerScore] = APlayerData[playerid][PlayerScore] + GetPVarInt(playerid, "PVarScore"); // Clear the PVar SetPVarInt(playerid, "PVarScore", 0); } // Reset the player's money and set it to the stored value in the player's account (do the same for scorepoints) ResetPlayerMoney(playerid); GivePlayerMoney(playerid, APlayerData[playerid][PlayerMoney]); SetPlayerScore(playerid, APlayerData[playerid][PlayerScore]); // Limit the cash that the player can have if (APlayerData[playerid][PlayerMoney] > 1900000000) APlayerData[playerid][PlayerMoney] = 1900000000; // Limit the cash that the player can have below 0 if (APlayerData[playerid][PlayerMoney] < -1000000) APlayerData[playerid][PlayerMoney] = -1000000; // Weapon hacks are also neutralized here, except for police players (if they are allowed to have weapons) if ((PoliceGetsWeapons == true) && (APlayerData[playerid][PlayerClass] == ClassPolice)) { // Do nothing } else GetPlayerArmour(playerid, Armour); if ((Armour > 1.0) && (APlayerData[playerid][PlayerLevel] < 1 && Player[playerid][VIP] == false)) SendReportToAdmins(playerid, "Hack de Vida", true); if (APlayerData[playerid][PlayerSpeed] > 263) { SendReportToAdmins(playerid, "Speed-hack", true); } if (APlayerData[playerid][PlayerLevel] < 1 && Player[playerid][VIP] == false) { if (GetPlayerSpecialAction(playerid) == 2) SendReportToAdmins(playerid, "Jetpack-hack", true); } if(APlayerData[playerid][PlayerLevel] < 1) { if (APlayerData[playerid][WeaponLicense] == 0) { switch (GetPlayerWeapon(playerid)) { case 2, 4, 6..18, 23, 26, 27, 29, 31, 34, 35..42: return ResetPlayerWeapons(playerid); } } } if (GetPlayerInterior(playerid) == 7) { ResetPlayerWeapons(playerid); } if (APlayerData[playerid][PlayerScore] < 50) { switch (GetPlayerWeapon(playerid)) { case 1..5, 6..22, 23..25, 26..42: return ResetPlayerWeapons(playerid); } } if (APlayerData[playerid][PlayerScore] < 400) { // Let the player know he needs 100 scorepoints switch (GetPlayerWeapon(playerid)) { case 28,30: return ResetPlayerWeapons(playerid); } } if (APlayerData[playerid][PlayerScore] < 800) { // Let the player know he needs 100 scorepoints switch (GetPlayerWeapon(playerid)) { case 25,32: return ResetPlayerWeapons(playerid); } } // Detect airbreak hack if (GetPlayerVehicleSeat(playerid) == 0) { // Check if the player is nearly standing still if (APlayerData[playerid][PlayerSpeed] < 10) { // Check if the player switched interior-id's if (GetPlayerInterior(playerid) != APlayerData[playerid][PreviousInt]) { // Check if the new interior is the normal world or any mod-shop switch (GetPlayerInterior(playerid)) { case 0, 1, 2, 3: // Check interiors 0, 1, 2 and 3 (normal world and all mod-shops) { // Store the player's current location and interior-id for the next iteration GetPlayerPos(playerid, APlayerData[playerid][PreviousX], APlayerData[playerid][PreviousY], APlayerData[playerid][PreviousZ]); APlayerData[playerid][PreviousInt] = GetPlayerInterior(playerid); // Exit the function return 1; } } } // Check if the player is still near the same place he was half a second ago if (IsPlayerInRangeOfPoint(playerid, 7.5, APlayerData[playerid][PreviousX], APlayerData[playerid][PreviousY], APlayerData[playerid][PreviousZ])) { } else // Send an automated report to the admins so they're informed about it and can take action SendReportToAdmins(playerid, "Teleporte Hacker", true); } } // Store the player's current location and interior-id for the next iteration GetPlayerPos(playerid, APlayerData[playerid][PreviousX], APlayerData[playerid][PreviousY], APlayerData[playerid][PreviousZ]); APlayerData[playerid][PreviousInt] = GetPlayerInterior(playerid); return 1; }