The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall
Difference between revisions of "UE3:UTVehicle Leviathan (UT3)"
(Talk) |
m (added native code snippet posted by Steve Polge) |
||
Line 11: | Line 11: | ||
| abstract = yes | | abstract = yes | ||
}} | }} | ||
− | + | Implementation for the [[liandri:Leviathan#Unreal Tournament 3|Leviathan]]. | |
− | + | ||
==Properties== | ==Properties== | ||
Line 475: | Line 474: | ||
'''Returns:''' | '''Returns:''' | ||
:Figure out who we are targetting. | :Figure out who we are targetting. | ||
+ | |||
+ | '''Native implementation:''' | ||
+ | <source lang="cpp"> | ||
+ | FVector AUTVehicle_Leviathan::GetTargetLocation(AActor* RequestedBy, UBOOL bRequestAlternateLoc) const | ||
+ | { | ||
+ | if ( !RequestedBy ) | ||
+ | return Super::GetTargetLocation(); | ||
+ | |||
+ | const INT NearestTurret = CheckActiveTurret(RequestedBy->Location, 0.f); | ||
+ | |||
+ | if ( NearestTurret >= 0 ) | ||
+ | { | ||
+ | return TurretCollision[NearestTurret]->LocalToWorld.GetOrigin() + FVector(0.f, 0.f, 45.f); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | return Super::GetTargetLocation(); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
====TurretAlive==== | ====TurretAlive==== |
Revision as of 10:30, 22 July 2008
Object >> Actor >> Pawn >> Vehicle >> SVehicle >> UTVehicleBase >> UTVehicle >> UTVehicle_Deployable >> UTVehicle_Leviathan |
- Package:
- UTGame
- Direct subclass:
- UTVehicle_Leviathan_Content
Implementation for the Leviathan.
Properties
Property group 'Collision'
TurretCollision
Type: CylinderComponent
Array size: 4
Property group 'test'
StingerTurretTurnRate
Type: int
Default value: 8192
Property group 'UTVehicle_Leviathan'
MaxHitCheckDist
Type: float
Default value: 140.0
Internal variables
See UTVehicle_Leviathan internal variables.
Default values
Subobjects
CollisionCylinder
Class: Engine.CylinderComponent
Inherits from: UTVehicle_Deployable.CollisionCylinder
No new values.
MyLightEnvironment
Class: Engine.DynamicLightEnvironmentComponent
Inherits from: UTVehicle_Deployable.MyLightEnvironment
Property | Value |
---|---|
NumVolumeVisibilitySamples | 4 |
MyStayUprightConstraintInstance_8
Class: Engine.RB_ConstraintInstance
No new values.
MyStayUprightSetup_8
Class: Engine.RB_StayUprightSetup
No new values.
SimObject
Class: UTGame.UTVehicleSimCar
Property | Value | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ChassisTorqueScale | 0.2 | ||||||||||||||||||||||||||||||||||||||||||||
EngineBrakeFactor | 0.02 | ||||||||||||||||||||||||||||||||||||||||||||
EngineRPMCurve |
|
||||||||||||||||||||||||||||||||||||||||||||
FrontalCollisionGripFactor | 0.18 | ||||||||||||||||||||||||||||||||||||||||||||
HardTurnMotorTorque | 1.0 | ||||||||||||||||||||||||||||||||||||||||||||
LSDFactor | 1.0 | ||||||||||||||||||||||||||||||||||||||||||||
MaxBrakeTorque | 8.0 | ||||||||||||||||||||||||||||||||||||||||||||
MaxSteerAngleCurve |
|
||||||||||||||||||||||||||||||||||||||||||||
SteerSpeed | 50.0 | ||||||||||||||||||||||||||||||||||||||||||||
StopThreshold | 500.0 | ||||||||||||||||||||||||||||||||||||||||||||
TorqueVSpeedCurve |
|
||||||||||||||||||||||||||||||||||||||||||||
WheelSuspensionBias | 0.7 | ||||||||||||||||||||||||||||||||||||||||||||
WheelSuspensionDamping | 75.0 | ||||||||||||||||||||||||||||||||||||||||||||
WheelSuspensionStiffness | 50.0 |
SVehicleMesh
Class: Engine.SkeletalMeshComponent
Inherits from: UTVehicle_Deployable.SVehicleMesh
Property | Value | ||||||||
---|---|---|---|---|---|---|---|---|---|
LightEnvironment | DynamicLightEnvironmentComponent'UTGame.Default__UTVehicle_Leviathan:MyLightEnvironment' | ||||||||
RBCollideWithChannels |
|
Functions
Native functions
CheckActiveTurret
GetTargetLocation
Overrides: Vehicle.GetTargetLocation
(Description copied from Vehicle.GetTargetLocation)
Returns:
- Figure out who we are targetting.
Native implementation:
FVector AUTVehicle_Leviathan::GetTargetLocation(AActor* RequestedBy, UBOOL bRequestAlternateLoc) const { if ( !RequestedBy ) return Super::GetTargetLocation(); const INT NearestTurret = CheckActiveTurret(RequestedBy->Location, 0.f); if ( NearestTurret >= 0 ) { return TurretCollision[NearestTurret]->LocalToWorld.GetOrigin() + FVector(0.f, 0.f, 45.f); } else { return Super::GetTargetLocation(); } }
TurretAlive
Events
CanDeploy
Overrides: UTVehicle_Deployable.CanDeploy
(Description copied from UTVehicle_Deployable.CanDeploy)
Returns:
- true if this vehicle can deploy
ContinueOnFoot
Overrides: UTVehicle.ContinueOnFoot
(Description copied from UTVehicle.ContinueOnFoot)
ContinueOnFoot() - used by AI Called from route finding if route can only be continued on foot.
Returns:
- true if driver left vehicle
PostBeginPlay
Overrides: UTVehicle_Deployable.PostBeginPlay
Initialization
ReplicatedEvent
Overrides: UTVehicle_Deployable.ReplicatedEvent
(Description copied from UTVehicle.ReplicatedEvent)
This event is triggered when a repnotify variable is received
Parameters:
- VarName - The name of the variable replicated
RigidBodyCollision
Overrides: UTVehicle.RigidBodyCollision
(Description copied from Actor.RigidBodyCollision)
Called when a PrimitiveComponent this Actor owns has:
-bNotifyRigidBodyCollision set to true -ScriptRigidBodyCollisionThreshold > 0 -it is involved in a physics collision where the relative velocity exceeds ScriptRigidBodyCollisionThreshold
Parameters:
- HitComponent - the component of this Actor that collided
- OtherComponent - the other component that collided
- RigidCollisionData - information on the collision itslef, including contact points
- ContactIndex - the element in each ContactInfos' ContactVelocity and PhysMaterial arrays that corresponds to this Actor/HitComponent
TakeDamage
Overrides: UTVehicle.TakeDamage
(Description copied from UTVehicle.TakeDamage)
See: Actor.TakeDamage()
Other instance functions
See UTVehicle_Leviathan instance functions.
States
Deployed
Deployed.CheckStability
Overrides: UTVehicle_Deployable.Deployed.CheckStability
traces down to the ground from the wheels and undeploys the vehicle if wheels are too far off the ground