Hello,
Is it possible to clean the cars that the PED spans in on vRP.
I have the following code in the basic_garage.lua but it doesn’t work:
GetVehicleDirtLevel(GetVehiclePedIsIn(GetPlayerPed(-1),false))
If not can you disable the dirt on cars both client or server sided?
2 Likes
just use this resource to wash cars
That’s where i got the code from. Doesn’t seem to work:
-- spawn car
if HasModelLoaded(mhash) then
local x,y,z = tvRP.getPosition()
if pos then
x,y,z = table.unpack(pos)
end
local vehicle = GetVehiclePedIsIn(GetPlayerPed(-1), false)
local vehicleClass = GetVehicleClass(vehicle)
local nveh = CreateVehicle(mhash, x,y,z+0.5, 0.0, true, false)
SetVehicleOnGroundProperly(nveh)
SetEntityInvincible(nveh,false)
SetPedIntoVehicle(GetPlayerPed(-1),nveh,-1) -- put player inside
GetVehicleDirtLevel(GetVehiclePedIsIn(GetPlayerPed(-1),false)) -- Clean Car On Spawn
SetVehicleNumberPlateText(nveh, "P "..tvRP.getRegistrationNumber())
Citizen.InvokeNative(0xAD738C3085FE7E11, nveh, true, true) -- set as mission entity
SetVehicleHasBeenOwnedByPlayer(nveh,true)
if not cfg.vehicle_migration then
local nid = NetworkGetNetworkIdFromEntity(nveh)
SetNetworkIdCanMigrate(nid,false)
end
vehicles[vtype] = {vtype,name,nveh} -- set current vehicule
SetModelAsNoLongerNeeded(mhash)
end
else
tvRP.notify("You can only have one "..vtype.." vehicle out.")
end
end
Could this be the better working version do you think?
WashDecalsFromVehicle(GetVehiclePedIsUsing(GetPlayerPed(-1)), 1.0)
SetVehicleDirtLevel(GetVehiclePedIsUsing(GetPlayerPed(-1)))
Replace “GetVehiclePedIsIn(GetPlayerPed(-1), false)” with the variable “nveh”
And in the code snipet you posted you’re getting the dirt level, not setting it
SetVehicleDirtLevel(nveh(GetPlayerPed(-1)))
Is that it then?
@HarryCatraz
no, just like this: “SetVehicleDirtLevel(nveh)”
Why would you set it to some weird variable?
To clean a car use this, it will remove all dirt, dust and blood like decal effects:
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
WashDecalsFromVehicle(vehicle, 1.0)
If you want to be super clean you can also add this below the example above:
This will remove all dirt and dust off your vehicle, it will NOT remove any blood or similar effects.
SetVehicleDirtLevel(vehicle, 0.0)
For some reason that seems to also make your car stay clean slightly longer. However it’s probably random and doesn’t actually improve it. Just seems like it does.
2 Likes
@Vespura sure it is clearly a wierd variable, did you read his code snippet ?
local nveh = CreateVehicle(mhash, x,y,z+0.5, 0.0, true, false)
I thought that snippet was some other script, and that the OP was only interested in finding a way to clean the player’s current vehicle, but in that case it makes sense 
Still, SetVehicleDirtLevel(nveh)
is not the way you should do it, it might work. But you should still use SetVehicleDirtLevel(nveh, 0.0)
or WashDecalsFromVehicle(vehicle, 1.0)
I think if you don’t parse any float it assumes you want it cleaned all the way, at least it’s working on both my carwashes (vrp and essential mode)
That’s not how the natives work, you shouldn’t pass nothing in it just because it doesn’t crash. The natives actually require the right amount of parameters to be passed in. I’m sure it works because it looks like the elements built a check to catch missing values and replace them with some default/generic value.
Ok guys no luck. Heres what i have. As the way to do it is conflicted per person i have put them all together in one mega script.
Citizen.CreateThread(function()
while true do
local ped = GetPlayerPed(-1)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
local nveh = CreateVehicle(mhash, x,y,z+0.5, 0.0, true, false)
if IsPedSittingInAnyVehicle(ped) then
Citizen.Wait(1)
WashDecalsFromVehicle(vehicle, 1.0)
WashDecalsFromVehicle(GetVehiclePedIsUsing(GetPlayerPed(-1)), 1.0)
SetVehicleDirtLevel(GetVehiclePedIsUsing(GetPlayerPed(-1)))
SetVehicleDirtLevel(vehicle, 0.0)
SetVehicleDirtLevel(nveh, 0.0)
end
end
end)
i have tried both server and client side.
Any ideas?
1 Like