diff --git a/[esx]/es_extended/client/main.lua b/[esx]/es_extended/client/main.lua index 4d7c8f24..992e704a 100644 --- a/[esx]/es_extended/client/main.lua +++ b/[esx]/es_extended/client/main.lua @@ -512,158 +512,147 @@ AddEventHandler("esx:tpm", function() local GetVehiclePedIsIn = GetVehiclePedIsIn ESX.TriggerServerCallback("esx:isUserAdmin", function(admin) - if admin then - local blipMarker = GetFirstBlipInfoId(8) - if not DoesBlipExist(blipMarker) then - ESX.ShowNotification('No Waypoint Set.', true, false, 140) - return 'marker' - end - - -- Fade screen to hide how clients get teleported. - DoScreenFadeOut(650) - while not IsScreenFadedOut() do - Wait(0) - end - - local ped, coords = ESX.PlayerData.ped, GetBlipInfoIdCoord(blipMarker) - local vehicle = GetVehiclePedIsIn(ped, false) - local oldCoords = GetEntityCoords(ped) - - -- Unpack coords instead of having to unpack them while iterating. - -- 825.0 seems to be the max a player can reach while 0.0 being the lowest. - local x, y, groundZ, Z_START = coords['x'], coords['y'], 850.0, 950.0 - local found = false - if vehicle > 0 then - FreezeEntityPosition(vehicle, true) - else - FreezeEntityPosition(ped, true) - end - - for i = Z_START, 0, -25.0 do - local z = i - if (i % 2) ~= 0 then - z = Z_START - i - end - - NewLoadSceneStart(x, y, z, x, y, z, 50.0, 0) - local curTime = GetGameTimer() - while IsNetworkLoadingScene() do - if GetGameTimer() - curTime > 1000 then - break - end - Wait(0) - end - NewLoadSceneStop() - SetPedCoordsKeepVehicle(ped, x, y, z) - - while not HasCollisionLoadedAroundEntity(ped) do - RequestCollisionAtCoord(x, y, z) - if GetGameTimer() - curTime > 1000 then - break - end - Wait(0) - end - - -- Get ground coord. As mentioned in the natives, this only works if the client is in render distance. - found, groundZ = GetGroundZFor_3dCoord(x, y, z, false) - if found then - Wait(0) - SetPedCoordsKeepVehicle(ped, x, y, groundZ) - break - end - Wait(0) - end - - -- Remove black screen once the loop has ended. - DoScreenFadeIn(650) - if vehicle > 0 then - FreezeEntityPosition(vehicle, false) - else - FreezeEntityPosition(ped, false) - end - - if not found then - -- If we can't find the coords, set the coords to the old ones. - -- We don't unpack them before since they aren't in a loop and only called once. - SetPedCoordsKeepVehicle(ped, oldCoords['x'], oldCoords['y'], oldCoords['z'] - 1.0) - ESX.ShowNotification('Successfully Teleported', true, false, 140) - end - - -- If Z coord was found, set coords in found coords. - SetPedCoordsKeepVehicle(ped, x, y, groundZ) - ESX.ShowNotification('Successfully Teleported', true, false, 140) + if not admin then + return end + local blipMarker = GetFirstBlipInfoId(8) + if not DoesBlipExist(blipMarker) then + ESX.ShowNotification(TranslateCap('tpm_nowaypoint'), true, false, 140) + return 'marker' + end + + -- Fade screen to hide how clients get teleported. + DoScreenFadeOut(650) + while not IsScreenFadedOut() do + Wait(0) + end + + local ped, coords = ESX.PlayerData.ped, GetBlipInfoIdCoord(blipMarker) + local vehicle = GetVehiclePedIsIn(ped, false) + local oldCoords = GetEntityCoords(ped) + + -- Unpack coords instead of having to unpack them while iterating. + -- 825.0 seems to be the max a player can reach while 0.0 being the lowest. + local x, y, groundZ, Z_START = coords['x'], coords['y'], 850.0, 950.0 + local found = false + FreezeEntityPosition(vehicle > 0 and vehicle or ped, true) + + for i = Z_START, 0, -25.0 do + local z = i + if (i % 2) ~= 0 then + z = Z_START - i + end + + NewLoadSceneStart(x, y, z, x, y, z, 50.0, 0) + local curTime = GetGameTimer() + while IsNetworkLoadingScene() do + if GetGameTimer() - curTime > 1000 then + break + end + Wait(0) + end + NewLoadSceneStop() + SetPedCoordsKeepVehicle(ped, x, y, z) + + while not HasCollisionLoadedAroundEntity(ped) do + RequestCollisionAtCoord(x, y, z) + if GetGameTimer() - curTime > 1000 then + break + end + Wait(0) + end + + -- Get ground coord. As mentioned in the natives, this only works if the client is in render distance. + found, groundZ = GetGroundZFor_3dCoord(x, y, z, false) + if found then + Wait(0) + SetPedCoordsKeepVehicle(ped, x, y, groundZ) + break + end + Wait(0) + end + + -- Remove black screen once the loop has ended. + DoScreenFadeIn(650) + FreezeEntityPosition(vehicle > 0 and vehicle or ped, false) + + if not found then + -- If we can't find the coords, set the coords to the old ones. + -- We don't unpack them before since they aren't in a loop and only called once. + SetPedCoordsKeepVehicle(ped, oldCoords['x'], oldCoords['y'], oldCoords['z'] - 1.0) + ESX.ShowNotification(TranslateCap('tpm_success'), true, false, 140) + end + + -- If Z coord was found, set coords in found coords. + SetPedCoordsKeepVehicle(ped, x, y, groundZ) + ESX.ShowNotification(TranslateCap('tpm_success'), true, false, 140) end) end) local noclip = false +local noclip_pos = vector3(0, 0, 70) +local heading = 0 + +local function noclipThread() + while noclip do + SetEntityCoordsNoOffset(ESX.PlayerData.ped, noclip_pos.x, noclip_pos.y, noclip_pos.z, 0, 0, 0) + + if IsControlPressed(1, 34) then + heading = heading + 1.5 + if heading > 360 then + heading = 0 + end + + SetEntityHeading(ESX.PlayerData.ped, heading) + end + + if IsControlPressed(1, 9) then + heading = heading - 1.5 + if heading < 0 then + heading = 360 + end + + SetEntityHeading(ESX.PlayerData.ped, heading) + end + + if IsControlPressed(1, 8) then + noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 1.0, 0.0) + end + + if IsControlPressed(1, 32) then + noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, -1.0, 0.0) + end + + if IsControlPressed(1, 27) then + noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 0.0, 1.0) + end + + if IsControlPressed(1, 173) then + noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 0.0, -1.0) + end + Wait(0) + end +end + RegisterNetEvent("esx:noclip") AddEventHandler("esx:noclip", function(input) ESX.TriggerServerCallback("esx:isUserAdmin", function(admin) - if admin then - local player = PlayerId() - - local msg = "disabled" - if(noclip == false)then - noclip_pos = GetEntityCoords(ESX.PlayerData.ped, false) - end - - noclip = not noclip - - if(noclip)then - msg = "enabled" - end - - TriggerEvent("chatMessage", "Noclip has been ^2^*" .. msg) - end - end) -end) - - local heading = 0 - CreateThread(function() - while true do - local Sleep = 1500 - - if(noclip)then - Sleep = 0 - SetEntityCoordsNoOffset(ESX.PlayerData.ped, noclip_pos.x, noclip_pos.y, noclip_pos.z, 0, 0, 0) - - if(IsControlPressed(1, 34))then - heading = heading + 1.5 - if(heading > 360)then - heading = 0 - end - - SetEntityHeading(ESX.PlayerData.ped, heading) - end - - if(IsControlPressed(1, 9))then - heading = heading - 1.5 - if(heading < 0)then - heading = 360 - end - - SetEntityHeading(ESX.PlayerData.ped, heading) - end - - if(IsControlPressed(1, 8))then - noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 1.0, 0.0) - end - - if(IsControlPressed(1, 32))then - noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, -1.0, 0.0) - end - - if(IsControlPressed(1, 27))then - noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 0.0, 1.0) - end - - if(IsControlPressed(1, 173))then - noclip_pos = GetOffsetFromEntityInWorldCoords(ESX.PlayerData.ped, 0.0, 0.0, -1.0) - end + if not admin then + return end - Wait(Sleep) - end + + if not noclip then + noclip_pos = GetEntityCoords(ESX.PlayerData.ped, false) + heading = GetEntityHeading(ESX.PlayerData.ped) + end + + noclip = not noclip + if noclip then + CreateThread(noclipThread) + end + + ESX.ShowNotification(TranslateCap('noclip_message', noclip and "enabled" or "disabled"), true, false, 140) + end) end) RegisterNetEvent("esx:killPlayer") @@ -680,38 +669,32 @@ AddEventHandler("esx:freezePlayer", function(input) SetPlayerInvincible(player, true) elseif input == 'unfreeze' then SetEntityCollision(ESX.PlayerData.ped, true) - FreezeEntityPosition(ESX.PlayerData.ped, false) + FreezeEntityPosition(ESX.PlayerData.ped, false) SetPlayerInvincible(player, false) end end) RegisterNetEvent("esx:GetVehicleType", function(Model, Request) - local ReturnedType = "automobile" - local Model = Model - local IsValidModel = IsModelInCdimage(Model) - if IsValidModel == true or IsValidModel == 1 then - local VehicleType = GetVehicleClassFromName(Model) + if not IsModelInCdimage(Model) then + return TriggerServerEvent("esx:ReturnVehicleType", false, Request) + end - if VehicleType == 15 then - ReturnedType = "heli" - elseif VehicleType == 16 then - ReturnedType = "plane" - elseif VehicleType == 14 then - ReturnedType = "boat" - elseif VehicleType == 11 then - ReturnedType = "trailer" - elseif VehicleType == 21 then - ReturnedType = "train" - elseif VehicleType == 13 or VehicleType == 8 then - ReturnedType = "bike" - end - if Model == `submersible` or Model == `submersible2` then - ReturnedType = "submarine" - end - else - ReturnedType = false + if Model == `submersible` or Model == `submersible2` then + return TriggerServerEvent("esx:ReturnVehicleType", "submarine", Request) end - TriggerServerEvent("esx:ReturnVehicleType", ReturnedType, Request) + + local VehicleType = GetVehicleClassFromName(Model) + local types = { + [8] = "bike", + [11] = "trailer", + [13] = "bike", + [14] = "boat", + [15] = "heli", + [16] = "plane", + [21] = "train", + } + + TriggerServerEvent("esx:ReturnVehicleType", types[VehicleType] or "automobile", Request) end) local DoNotUse = { diff --git a/[esx]/es_extended/locales/en.lua b/[esx]/es_extended/locales/en.lua index 30fa36c7..e480153f 100644 --- a/[esx]/es_extended/locales/en.lua +++ b/[esx]/es_extended/locales/en.lua @@ -108,6 +108,12 @@ Locales['en'] = { ['command_giveammo_noweapon_found'] = '%s does not have that weapon', ['command_giveammo_weapon'] = 'Weapon name', ['command_giveammo_ammo'] = 'Ammo Quantity', + ['tpm_nowaypoint'] = 'No Waypoint Set.', + ['tpm_success'] = 'Successfully Teleported', + + ['noclip_message'] = 'Noclip has been %s', + ['enabled'] = '~g~enabled~s~', + ['disabled'] = '~r~disabled~s~', -- Locale settings ['locale_digit_grouping_symbol'] = ',', diff --git a/[esx]/es_extended/locales/hu.lua b/[esx]/es_extended/locales/hu.lua index abd4ffa6..f909601a 100644 --- a/[esx]/es_extended/locales/hu.lua +++ b/[esx]/es_extended/locales/hu.lua @@ -105,9 +105,15 @@ Locales["hu"] = { ["commanderror_invalidcommand"] = "Érvénytelen parancs - /%s", ["commanderror_invalidplayerid"] = "Megadott játékos nem online.", ["commandgeneric_playerid"] = "Játékos Szerver Id", - ['command_giveammo_noweapon_found'] = '%s does not have that weapon', - ['command_giveammo_weapon'] = 'Weapon name', - ['command_giveammo_ammo'] = 'Ammo Quantity', + ['command_giveammo_noweapon_found'] = 'Nincs ilyen fegyvered: %s', + ['command_giveammo_weapon'] = 'Fegyver név', + ['command_giveammo_ammo'] = 'Lőszer mennyiség', + ['tpm_nowaypoint'] = 'Nincs kijelölve pozíció!', + ['tpm_success'] = 'Sikeres teleportálás', + + ['noclip_message'] = 'Noclip %s', + ['enabled'] = '~g~engedélyezve~s~', + ['disabled'] = '~r~letiltva~s~', -- Locale settings ["locale_digit_grouping_symbol"] = ",", diff --git a/[esx_addons]/esx_garage/locales/hu.lua b/[esx_addons]/esx_garage/locales/hu.lua index 0e5d3d3f..727b4a19 100644 --- a/[esx_addons]/esx_garage/locales/hu.lua +++ b/[esx_addons]/esx_garage/locales/hu.lua @@ -1,15 +1,15 @@ Locales["hu"] = { ["parking_blip_name"] = 'Garázs', ["Impound_blip_name"] = 'Lefoglaltak', - ["access_parking"] = 'Nyomd meg az [E] gombot a parkoló eléréshez.', + ["access_parking"] = 'Nyomd meg az [E] gombot a parkoló megtekintéséhez.', ["access_Impound"] = 'Nyomd meg az [E] gombot a lefoglaltak megtekintéséhez.', ["park_veh"] = 'Nyomd meg az [E] gombot a jármű parkolásához.', ["not_owning_veh"] = 'Ez a jármű nem a te tulajdonod!', - ['veh_released'] = 'Jármű sikeresen kivéve.', + ['veh_released'] = 'Sikeresen kivetted a járművet.', ['veh_Impound_released'] = 'Jármű sikeresen kiváltva a legfolalásból.', ['veh_stored'] = 'Jármű sikeresen tárolva', - ['veh_impounded'] = 'Lefoglalt jármű', - ['no_veh_parking'] = 'Nincsenek itt tárolt járművek-', + ['veh_impounded'] = 'Lefoglalt jármű megjelölve a térképen', + ['no_veh_parking'] = 'Nincsenek itt tárolt járművek.', ['no_veh_impounded'] = 'Nincs lefoglalt jármű.', ['no_veh_Impound'] = 'nincs lefoglalt járműved.', ['veh_model'] = 'Model', diff --git a/[esx_addons]/esx_garage/server/main.lua b/[esx_addons]/esx_garage/server/main.lua index f22dcf3e..5c5683cb 100644 --- a/[esx_addons]/esx_garage/server/main.lua +++ b/[esx_addons]/esx_garage/server/main.lua @@ -38,7 +38,6 @@ AddEventHandler('esx_garage:setImpound', function(Impound, vehicleProps) }) xPlayer.showNotification(TranslateCap('veh_impounded')) - end)