This commit is contained in:
Nordi98 2025-07-30 03:21:38 +02:00
parent 9b1bab8e9c
commit 19fea951a1
2 changed files with 565 additions and 295 deletions

View file

@ -190,22 +190,25 @@ RegisterNetEvent('taxi:enterStationVehicle', function(data)
-- Verschiedene Fahrer-Models versuchen
local driverModels = {
"a_m_m_taxi_01",
"s_m_y_taxi_01",
"a_m_y_business_01",
"a_m_m_business_01",
"a_m_y_downtown_01"
"mp_m_freemode_01", -- Standard Male (sollte immer verfügbar sein)
"mp_f_freemode_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
}
local driver = nil
local driverHash = nil
for _, modelName in pairs(driverModels) do
print("^2[TAXI STATIONS DEBUG]^7 Trying driver model: " .. modelName)
for i, modelName in pairs(driverModels) do
print("^2[TAXI STATIONS DEBUG]^7 Trying driver model " .. i .. ": " .. modelName)
driverHash = GetHashKey(modelName)
-- Text während Model-Loading aktualisieren
lib.showTextUI('🚕 Lade Fahrer-Model: ' .. modelName .. '...', {
lib.showTextUI('🚕 Lade Fahrer-Model (' .. i .. '/' .. #driverModels .. '): ' .. modelName .. '...', {
position = "top-center",
icon = 'taxi',
style = {
@ -216,9 +219,14 @@ RegisterNetEvent('taxi:enterStationVehicle', function(data)
})
RequestModel(driverHash)
local timeout = GetGameTimer() + 5000
local timeout = GetGameTimer() + 8000 -- Längere Wartezeit
local attempts = 0
while not HasModelLoaded(driverHash) and GetGameTimer() < timeout do
print("^3[TAXI STATIONS DEBUG]^7 Waiting for driver model " .. modelName .. " to load...")
attempts = attempts + 1
if attempts % 10 == 0 then
print("^3[TAXI STATIONS DEBUG]^7 Still waiting for model " .. modelName .. " (attempt " .. attempts .. ")")
end
Wait(100)
end
@ -247,16 +255,17 @@ RegisterNetEvent('taxi:enterStationVehicle', function(data)
end
else
print("^1[TAXI STATIONS DEBUG]^7 Failed to load driver model: " .. modelName)
SetModelAsNoLongerNeeded(driverHash)
end
Wait(500) -- Kurze Pause zwischen Versuchen
end
-- Fallback: Fahrer ohne Model erstellen
-- Fallback: Notfall-Fahrer erstellen
if not driver or not DoesEntityExist(driver) then
print("^3[TAXI STATIONS DEBUG]^7 Using fallback driver creation...")
print("^3[TAXI STATIONS DEBUG]^7 Using emergency fallback driver creation...")
lib.showTextUI('🚕 Lade Standard-Fahrer...', {
lib.showTextUI('🚕 Erstelle Notfall-Fahrer...', {
position = "top-center",
icon = 'taxi',
style = {
@ -266,20 +275,33 @@ RegisterNetEvent('taxi:enterStationVehicle', function(data)
}
})
-- Standard Male Model verwenden
driverHash = GetHashKey("mp_m_freemode_01")
RequestModel(driverHash)
local timeout = GetGameTimer() + 5000
while not HasModelLoaded(driverHash) and GetGameTimer() < timeout do
Wait(100)
-- Notfall-Fallback mit Hash-Werten
local emergencyModels = {
`mp_m_freemode_01`,
`a_m_y_hipster_01`,
`a_m_m_farmer_01`,
`a_m_y_beach_01`
}
for _, hash in pairs(emergencyModels) do
RequestModel(hash)
local timeout = GetGameTimer() + 5000
while not HasModelLoaded(hash) and GetGameTimer() < timeout do
Wait(50)
end
if HasModelLoaded(hash) then
driver = CreatePedInsideVehicle(vehicle, 26, hash, -1, true, false)
if DoesEntityExist(driver) then
print("^2[TAXI STATIONS DEBUG]^7 Emergency driver created")
driverHash = hash
break
end
SetModelAsNoLongerNeeded(hash)
end
end
if HasModelLoaded(driverHash) then
driver = CreatePedInsideVehicle(vehicle, 26, driverHash, -1, true, false)
print("^2[TAXI STATIONS DEBUG]^7 Fallback driver created: " .. (driver or "nil"))
end
Wait(1000) -- Länger warten für Fallback
Wait(1000)
end
-- Wenn immer noch kein Fahrer, ohne Fahrer fortfahren
@ -328,12 +350,27 @@ RegisterNetEvent('taxi:enterStationVehicle', function(data)
SetPedHearingRange(driver, 0.0)
SetPedAlertness(driver, 0)
SetPedKeepTask(driver, true)
SetBlockingOfNonTemporaryEvents(driver, true)
-- Fahrer-Outfit für Taxi
SetPedComponentVariation(driver, 8, 0, 0, 0) -- Shirt
SetPedComponentVariation(driver, 11, 0, 0, 0) -- Jacket
SetPedComponentVariation(driver, 4, 0, 0, 0) -- Pants
SetPedComponentVariation(driver, 6, 0, 0, 0) -- Shoes
-- Fahrer-Outfit (nur wenn es ein anpassbarer Ped ist)
if driverHash == GetHashKey("mp_m_freemode_01") or driverHash == GetHashKey("mp_f_freemode_01") then
print("^2[TAXI STATIONS DEBUG]^7 Setting driver outfit...")
-- Basis-Outfit für Taxi-Fahrer
SetPedComponentVariation(driver, 8, 15, 0, 0) -- Undershirt
SetPedComponentVariation(driver, 11, 28, 0, 0) -- Jacket
SetPedComponentVariation(driver, 4, 10, 0, 0) -- Pants
SetPedComponentVariation(driver, 6, 10, 0, 0) -- Shoes
SetPedComponentVariation(driver, 1, 0, 0, 0) -- Mask
SetPedComponentVariation(driver, 3, 0, 0, 0) -- Arms
SetPedComponentVariation(driver, 5, 0, 0, 0) -- Bag
SetPedComponentVariation(driver, 7, 0, 0, 0) -- Tie
SetPedComponentVariation(driver, 9, 0, 0, 0) -- Body Armor
SetPedComponentVariation(driver, 10, 0, 0, 0) -- Decals
-- Zufällige Gesichtsmerkmale
SetPedHeadBlendData(driver, math.random(0, 20), math.random(0, 20), 0, math.random(0, 20), math.random(0, 20), 0, 0.5, 0.5, 0.0, false)
end
lib.notify({
title = 'Taxi Service',
@ -444,7 +481,6 @@ RegisterNetEvent('taxi:enterStationVehicle', function(data)
end)
end)


function OpenStationTaxiMenu(stationId, vehicleId, vehicle, driver, pricePerKm)
print("^2[TAXI STATIONS DEBUG]^7 Opening station taxi menu")
@ -805,8 +841,9 @@ RegisterNetEvent('taxi:respawnAllStations', function()
InitializeTaxiStations()
lib.notify({
title =
title = 'Taxi Service',
description = 'Alle Taxi-Stationen wurden neu geladen',
description = 'Alle Taxi-Stationen wurden neu gespawnt',
type = 'success'
})
end)
@ -840,4 +877,3 @@ AddEventHandler('onResourceStop', function(resourceName)
print("^2[TAXI STATIONS DEBUG]^7 Cleanup completed")
end
end)