From d1471da813e0e0533c6b848a23852844f3a691a5 Mon Sep 17 00:00:00 2001 From: Nordi98 Date: Wed, 30 Jul 2025 03:38:41 +0200 Subject: [PATCH] Update main.lua --- resources/[tools]/nordi_taxi/client/main.lua | 95 ++++++++++---------- 1 file changed, 45 insertions(+), 50 deletions(-) diff --git a/resources/[tools]/nordi_taxi/client/main.lua b/resources/[tools]/nordi_taxi/client/main.lua index 24df570be..514156481 100644 --- a/resources/[tools]/nordi_taxi/client/main.lua +++ b/resources/[tools]/nordi_taxi/client/main.lua @@ -127,10 +127,38 @@ function GetTaxiSpawnPosition(playerCoords) if foundGround then local spawnCoords = vector4(x, y, z, math.deg(angle)) - -- Prüfen ob Position frei ist - if IsPositionClear(spawnCoords.x, spawnCoords.y, spawnCoords.z, 3.0, true, false, false, false, false) then - print("^2[TAXI DEBUG]^7 Found spawn position at attempt " .. i) - return spawnCoords + -- Prüfen ob Position frei ist (ohne IsPositionClear) + local clearArea = true + local vehicles = GetGamePool('CVehicle') + + -- Prüfen ob andere Fahrzeuge in der Nähe sind + for _, vehicle in ipairs(vehicles) do + local vehCoords = GetEntityCoords(vehicle) + if #(vector3(x, y, z) - vehCoords) < 5.0 then + clearArea = false + break + end + end + + -- Prüfen ob Peds in der Nähe sind + if clearArea then + local peds = GetGamePool('CPed') + for _, ped in ipairs(peds) do + local pedCoords = GetEntityCoords(ped) + if #(vector3(x, y, z) - pedCoords) < 5.0 then + clearArea = false + break + end + end + end + + -- Prüfen ob Position auf einer Straße ist + if clearArea then + local isOnRoad = IsPointOnRoad(x, y, z, 0) + if isOnRoad then + print("^2[TAXI DEBUG]^7 Found spawn position at attempt " .. i) + return spawnCoords + end end end @@ -138,65 +166,32 @@ function GetTaxiSpawnPosition(playerCoords) end print("^1[TAXI DEBUG]^7 No spawn position found after " .. maxAttempts .. " attempts") + + -- Fallback: Verwende eine der vordefinierten Spawn-Positionen + if Config.MobileTaxiSpawns and #Config.MobileTaxiSpawns > 0 then + local randomSpawn = Config.MobileTaxiSpawns[math.random(#Config.MobileTaxiSpawns)] + print("^3[TAXI DEBUG]^7 Using fallback spawn position") + return randomSpawn + end + return nil end -function SpawnTaxi(coords) - print("^2[TAXI DEBUG]^7 Spawning taxi at: " .. tostring(coords)) - - local taxiModel = GetHashKey(Config.TaxiModel) - print("^2[TAXI DEBUG]^7 Taxi model hash: " .. taxiModel) - - RequestModel(taxiModel) - local timeout = GetGameTimer() + 10000 - while not HasModelLoaded(taxiModel) and GetGameTimer() < timeout do - print("^3[TAXI DEBUG]^7 Waiting for taxi model to load...") - Wait(100) - end - - if not HasModelLoaded(taxiModel) then - print("^1[TAXI DEBUG]^7 Failed to load taxi model!") - return nil - end - - local taxi = CreateVehicle(taxiModel, coords.x, coords.y, coords.z, coords.w, true, false) - - if not DoesEntityExist(taxi) then - print("^1[TAXI DEBUG]^7 Failed to create taxi vehicle!") - return nil - end - - print("^2[TAXI DEBUG]^7 Taxi created successfully: " .. taxi) - - SetEntityAsMissionEntity(taxi, true, true) - SetVehicleOnGroundProperly(taxi) - SetVehicleEngineOn(taxi, true, true, false) - SetVehicleDoorsLocked(taxi, 2) -- Locked initially - - -- Taxi-Livery setzen falls verfügbar - local liveryCount = GetVehicleLiveryCount(taxi) - if liveryCount > 0 then - SetVehicleLivery(taxi, 0) -- Erste Livery verwenden - print("^2[TAXI DEBUG]^7 Taxi livery set") - end - - SetModelAsNoLongerNeeded(taxiModel) - return taxi -end function SpawnTaxiDriver(vehicle) print("^2[TAXI DEBUG]^7 Spawning taxi driver...") -- Bessere Fahrer-Models mit Fallbacks local driverModels = { - "mp_m_freemode_01", -- Standard Male (sollte immer verfügbar sein) - "mp_f_freemode_01", -- Standard Female + "A_C_Chimp", -- Standard Male (sollte immer verfügbar sein) + "G_M_M_ArmGoon_01", -- Standard Female "a_m_y_business_01", -- Business Male "a_f_y_business_01", -- Business Female "a_m_m_business_01", -- Business Male 2 "a_m_y_downtown_01", -- Downtown Male - "s_m_m_pilot_01", -- Pilot - "s_m_y_dealer_01" -- Dealer + "A_M_O_GenStreet_01", -- Pilot + "CS_Manuel" -- Dealer + "U_M_M_Jesus_01" -- Jesus } local driver = nil