As the title suggests VUmod doesn't work with DarkRPs way of spawning a vehicle.
DarkRP does not use the PlayerSpawnedVehicle hook to create a vehicle.
It does it by using the Entity.Create.
The PlayerSpawnedVehicle hook is what VUmod uses to add seats.
I've circumvented it by defining the vehicle which normally the hook did.
I've almost got VUmod working, but am baffled by something I do not fully understand.
The parented seat freaks out whenever a 2nd vehicle is spawned. It's like it wants to get attached to the 2nd vehicle. But it can't because it's parented with the first vehicle. It causes the server to crash after the two vehicles spazz out on each other.
Here is the code: ( I have left out "unimportant" pieces of code )
[lua]
local function SpawnedVehicle(player)
if player:InVehicle() then
local vehicle = player:GetVehicle() --Defining the vehicle used in further code.
local localpos = vehicle:GetPos()
local localang = vehicle:GetAngles()
if vehicle:GetNWInt("Seats") == 1 then --A Check to see if the seats have already been added.
return --Return if statement is true.
end
if vehicle.VehicleTable then
if vehicle.VehicleTable.Passengers then
-----Grab the data for the extra seats, we want the sitting
vehicle:SetNWInt("Seats", 1)
local SeatName = vehicle.VehicleTable.SeatType
local seatdata = list.Get( "Vehicles" )[ SeatName ]
-----Repeat for each seat.
for a,b in pairs(vehicle.VehicleTable.Passengers) do
local SeatPos = localpos + ( localang:Forward() * b.Pos.x) + ( localang:Right() * b.Pos.y) + ( localang:Up() * b.Pos.z)
local Seat = ents.Create( "prop_vehicle_prisoner_pod" )
Seat:SetModel( seatdata.Model )
Seat:SetKeyValue( "vehiclescript" , "scripts/vehicles/prisoner_pod.txt" )
Seat:SetAngles( localang + b.Ang )
Seat:SetPos( SeatPos )
Seat:Spawn()
Seat:Activate()
Seat:SetParent(vehicle)
if vehicle.VehicleTable.HideSeats then
Seat:SetColor(255,255,255,0)
end
if ( seatdata.Members ) then
table.Merge( Seat, seatdata.Members )
end
if ( seatdata.KeyValues ) then
for k, v in pairs( seatdata.KeyValues ) do
Seat:SetKeyValue( k, v )
end
end
Seat.VehicleName = "Jeep Seat"
Seat.VehicleTable = seatdata
Seat.ClassOverride = "prop_vehicle_prisoner_pod"
Seat:DeleteOnRemove( vehicle )
----------- Replace the position with the ent so we can find it later.
vehicle.VehicleTable.Passengers[a].Ent = Seat
end
end
if vehicle.VehicleTable.HeadLights then
vehicle.HeadLights = {}
local lights = vehicle.VehicleTable.HeadLights
local angles = vehicle:GetAngles()
for a,b in pairs(lights) do
local pos = vehicle:GetPos() + ( angles:Forward() * b.Pos.x ) + ( angles:Right() * b.Pos.y ) + ( angles:Up() * b.Pos.z )
vehicle.HeadLights[a] = ents.Create( "vu_headlight" )
vehicle.HeadLights[a]:SetPos(pos)
vehicle.HeadLights[a]:SetAngles( angles + b.Ang )
vehicle.HeadLights[a]:SetParent(vehicle)
vehicle.HeadLights[a]:Spawn()
vehicle.HeadLights[a]:DeleteOnRemove( vehicle )
end
end
end
end
end
local function Vehicle( player, vehicle, role )
player:ConCommand("VehicleSeats") --Added to run the console command to add seats, when the player enters the vehicle.
end
concommand.Add("VehicleSeats", SpawnedVehicle) --Added to trigger the seats to spawn.
/*hook.Add( "PlayerSpawnedVehicle", "SpawnedVehicle", SpawnedVehicle );*/ --Deactivated as it doesn't work with DarkRPs way of creating a vehicle.
hook.Add( "PlayerEnteredVehicle", "EnteredVehicle", EnteredVehicle );
[/lua]
If you have any suggestions or ideas, please post them. I thank you for your time.
Probbably your doing someting wrong... like paranting the seats to something bad or something, i suggest to modify DarkRP instead of VU, you probbably want to copy VU code into DarkRP
According to the wiki, the player:InVehicle() should be:
[lua]if (player:InVehicle()) then[/lua]
[QUOTE=Tobba;21754910]Probbably your doing someting wrong... like paranting the seats to something bad or something, i suggest to modify DarkRP instead of VU, you probbably want to copy VU code into DarkRP[/QUOTE]
Just tried this, it gives the same problem, the server crashes whenever a second vehicle is spawned.
[editline]05:44PM[/editline]
Fixed
SetCollisionGroup(COLLISION_GROUP_WORLD)
[QUOTE=DDooby;21755446]Just tried this, it gives the same problem, the server crashes whenever a second vehicle is spawned.
[editline]05:44PM[/editline]
Fixed
SetCollisionGroup(COLLISION_GROUP_WORLD)[/QUOTE]
Can you make a fast tut explaining how to make it work? :S i dont understand where to put your code!
He wanted help with his code, not giving his code for people to use
Sorry, you need to Log In to post a reply to this thread.