This article's documentation is for anything that uses the Source engine. Click here for more information.

Prop vehicle driveable: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(FGD not included in any of these games except HL2.)
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 15: Line 15:


==Keyvalues==
==Keyvalues==
* {{KV BaseDriveableVehicle}}
{{KV BaseDriveableVehicle}}


==Inputs==
==Inputs==
* {{I BaseDriveableVehicle}}
{{I BaseDriveableVehicle}}


==Outputs==
==Outputs==
* {{O BaseDriveableVehicle}}
{{O BaseDriveableVehicle}}


== FGD Code ==
== FGD Code ==
Line 81: Line 81:
]
]
</nowiki>}}
</nowiki>}}
{{Note|Alternatively you can also add {{code|[[halflife2.fgd]]}} into Game Data Files.}}


==See also==
==See also==

Latest revision as of 22:05, 23 September 2024

prop_vehicle_driveable Jeep with passengers in CS:S
Icon-NotInFGD.png
This entity is not in the Counter-Strike: SourceDay of Defeat: SourceTeam Fortress 2Left 4 DeadLeft 4 Dead 2 FGD by default, except in Half-Life 2.
See below for instructions on making it available.

prop_vehicle_driveable is a point entity available in all Source Source games.

Icon-Bug.pngBug:In Team Fortress 2 Team Fortress 2, this entity does not function at all. This can be fixed by using a VScript supplement script: https://github.com/ficool2/vscript_vehicle, or the plugin listed below.  [todo tested in ?]
Note.pngNote:This entity may not function properly in multiplayer. Community-made server plugins are available to make vehicles function properly, listed below.

Counter-Strike: Global Offensive : https://github.com/Heyter/SM-MyPlugins/tree/master/fixed_vehicle_csgo
Team Fortress 2Counter-Strike: SourceBlack Mesa : https://github.com/Mikusch/source-vehicles


Entity description

Generic vehicle. (Player driveable model.)

Keyvalues

BaseDriveableVehicle:

Starts locked (VehicleLocked) <boolean>
Players cannot enter vehicle until it is unlocked.

BaseVehicle:

Vehicle Script File (vehiclescript) <string>
The vehicle script files contained in scripts\vehicles\ define the behaviour and handling of a vehicle. It is important to match the right script to the right entity/model:
Scale of action input / framerate (actionScale) <float>
Todo: How fast the vehicle turns/accelerates?


Inputs

BaseDriveableVehicle:
HandBrakeOn
HandBrakeOff
Turns the handbrake on/off, preventing the vehicle from driving but not disabling motion from external forces.
BaseVehicle:
Action <floatRedirectInput/float>
Set the speed of the action animation.
Todo: What does this mean?
TurnOn
Start engine and enable throttle.
TurnOff
Stop engine, disable throttle, engage brakes.
Lock
Unlock
Prevent/allow the player from entering or exiting the vehicle.

Outputs

BaseDriveableVehicle:

PlayerOn <void>
PlayerOff <void>
!activator = the player
!caller = this entity
Player entered/exited the vehicle.
PressedAttack <void>
PressedAttack2 <void>
!activator = !caller = this entity
Player pressed the +attack/+attack2 key.
AttackAxis <floatRedirectOutput/float>
Attack2Axis <floatRedirectOutput/float>
!activator = the player when exitting the vehicle other-wise it's this entity
!caller = this entity
State of the attack/attack2 buttons (can only be 0 or 1). Also called when the player exits the vehicle.


FGD Code

Simply open any FGD file (cstrike.fgd for example), and paste this:

@BaseClass base(Targetname, Origin, Global, prop_static_base) = BaseVehicle [ vehiclescript(string) : "Vehicle Script File" : "scripts/vehicles/jeep_test.txt" actionScale(float) : "Scale of action input / framerate" : "1" // Inputs input Action(float) : "Set the speed of the action animation" input TurnOn(void) : "Turn on: Start engine & enable throttle" input TurnOff(void) : "Turn off: Stop engine, disable throttle, engage brakes." input Lock(void) : "Prevent the player from entering or exiting the vehicle." input Unlock(void) : "Re-allow the player to enter or exit the vehicle." ] @BaseClass base(BaseVehicle) = BaseDriveableVehicle [ VehicleLocked(choices) : "Start locked" : 0 = [ 0 : "No" 1 : "Yes" ] // Outputs output PlayerOn(void) : "Player entered the vehicle" output PlayerOff(void) : "Player exited the vehicle" output PressedAttack(void) : "Player Pressed attack key" output PressedAttack2(void) : "Player Pressed attack2 key" output AttackAxis(string) : "State of attack button [0,1]" output Attack2Axis(string) : "State of attack2 button [0,1]" // Inputs input HandBrakeOn(void) : "Turns the handbrake on" input HandBrakeOff(void): "Releases the handbrake" ] @PointClass base(BaseVehicle) studioprop() = prop_vehicle : "Studiomodel vehicle that can be driven via inputs." [ // Inputs input Steer(float) : "Steer the vehicle +/-1" input Throttle(float) : "Throttle +/-1" spawnflags(flags) = [ 1 : "Always Think (Run physics every frame)" : 0 ] ] @PointClass base(BaseDriveableVehicle) studioprop() = prop_vehicle_driveable : "Generic driveable studiomodel vehicle." [ ]
Note.pngNote:Alternatively you can also add halflife2.fgd into Game Data Files.

See also