[Include] Extended Vehicle Information
#1

Extended Vehicle Information (EVI)
Version 1.0.1
This script allows you to retrieve all vehicle related information. All information that is present in the handling.cfg data file has been converted - with the necessary difficulty - into an SQLite database. You are now able to retrieve a vehicle's top speed, its mass, its cost, its gears, its acceleration and much, much more.

Even more interesting is that you can also read a vehicle's model and handling flags. Apart from being able to tell its type, you can also tell if a vehicle is a low rider or a street racer, you can tell if the vehicle has a normal exhaust, double exhausts or no exhausts at all. There are 60 flags that you can check!

Please note: all values use the metric system. This is how they appear in the data file. It is not my choice (although I prefer metric over imperial any time).
Note 2: No input escaping is done whatsoever! I tried to implement it, but crashdetect went mad and everything broke. Then again, these functions aren't meant to be used with end user input.


Example Usage
pawn Код:
new vehicle_cost = GetVehicleModelInfoAsInt(411, "nMonetaryValue"); // infernus
printf("model 411 costs $%d", vehicle_cost);

new Float:vehicle_weight = GetVehicleModelInfoAsFloat(402, "fMass"); // buffalo
printf("model 402 weighs %f kilograms", vehicle_weight);

if(GetVehicleModelFlag(425, MFLAG_IS_HELI)) // hunter
{
    printf("model 425 is a helicopter");
}
else
{
    printf("model 425 is not a helicopter");
}

if(GetVehicleHandlingFlag(567, HFLAG_LOW_RIDER)) // savanna
{
    printf("model 567 is a lowrider");
}
else
{
    printf("model 567 is not a lowrider");
}
Installation Instructions

Download the zip file from the GitHub repository. Extract the contents in your server directory. All files should automatically go to their respective directories. If that doesn't work: manually place handling.db into the /scriptfiles folder and evi.inc into the /pawno/include folder.

Use this in any script in which you'd like to use these functions:
pawn Код:
#include <evi>

Technical Information

To be used with GetVehicleModelInfoAsInt and GetVehicleModelInfoAsFloat. DriveType and EngineType should also be retrieved with the integer function. However, they return characters. These can be validated as follows:
pawn Код:
if(GetVehicleModelInfoAsInt(400, "TransmissionData_nEngineType") == 'P') { /* ... */ }
Код:
	> UNITS <
	---------
	Vehicle identifier 14 characters max
	Dimensions in metres
	Mass in Kg
	Velocity in Km/h
	Acceleration/deceleration in ms-2
	Multipliers x1.0 is default
	Angles in degrees
	Levels :- (L)ow, (M)edium, (H)igh
	Buoyancy = percent submerged (> 100% vehicle sinks)
	Engine type :- (P)etrol, (D)iesel, (E)lectric
	Engine drive :- (F)ront, ®ear, (4)-wheel drive
	
	> FIELD DESCRIPTIONS <
	----------------------
	[id] int  NOT NULL,
	[name] VARCHAR(14)  NOT NULL,
	[fMass] float  NOT NULL,
	[fTurnMass] float  NOT NULL,
	[fDragMult] float  NOT NULL,
	[fCentreOfMass_x] float  NOT NULL,
	[fCentreOfMass_y] float  NOT NULL,
	[fCentreOfMass_z] float  NOT NULL,
	[nPercentSubmerged] int  NOT NULL,
	[fTractionMultiplier] float  NOT NULL,
	[fTractionLoss] float  NOT NULL,
	[fTractionBias] float  NOT NULL,
	[TransmissionData_nNumberOfGears] int  NOT NULL,
	[TransmissionData_fMaxVelocity] float  NOT NULL,
	[TransmissionData_fEngineAcceleration] float  NOT NULL,
	[TransmissionData_fEngineInertia] float  NOT NULL,
	[TransmissionData_nDriveType] VARCHAR(2)  NOT NULL,
	[TransmissionData_nEngineType] VARCHAR(2)  NOT NULL,
	[fBrakeDeceleration] float  NOT NULL,
	[fBrakeBias] float  NOT NULL,
	[bABS] boolean  NOT NULL,
	[fSteeringLock] float  NOT NULL,
	[fSuspensionForceLevel] float  NOT NULL,
	[fSuspensionDampingLevel] float  NOT NULL,
	[fSuspensionHighSpdComDamp] float  NOT NULL,
	[fSuspensionUpperLimit] float  NOT NULL,
	[fSuspensionLowerLimit] float  NOT NULL,
	[fSuspensionBias] float  NOT NULL,
	[fSuspensionMult] float  NOT NULL,
	[fSeatOffsetDistance] float  NOT NULL,
	[fCollisionDamageMultiplier] float  NOT NULL,
	[nMonetaryValue] int  NOT NULL,
	[nModelFlags] int  NOT NULL,
	[nHandlingFlags] int  NOT NULL,
	[nFrontLights] int  NOT NULL,
	[nRearLights] int  NOT NULL,
	[nVehicleAnimGroup] int  NOT NULL
To be used with GetVehicleModelFlag.
pawn Код:
enum modelFlags (<<= 1)
{
    MFLAG_IS_VAN = 1,
    MFLAG_IS_BUS,
    MFLAG_IS_LOW,
    MFLAG_IS_BIG,
    MFLAG_REVERSE_BONNET,
    MFLAG_HANGING_BOOT,
    MFLAG_TAILGATE_BOOT,
    MFLAG_NOSWING_BOOT,
    MFLAG_NO_DOORS,
    MFLAG_TANDEM_SEATS,
    MFLAG_SIT_IN_BOAT,
    MFLAG_CONVERTIBLE,
    MFLAG_NO_EXHAUST,
    MFLAG_DOUBLE_EXHAUST,
    MFLAG_NO1FPS_LOOK_BEHIND,
    MFLAG_FORCE_DOOR_CHECK,
    MFLAG_AXLE_F_NOTILT,
    MFLAG_AXLE_F_SOLID,
    MFLAG_AXLE_F_MCPHERSON,
    MFLAG_AXLE_F_REVERSE,
    MFLAG_AXLE_R_NOTILT,
    MFLAG_AXLE_R_SOLID,
    MFLAG_AXLE_R_MCPHERSON,
    MFLAG_AXLE_R_REVERSE,
    MFLAG_IS_BIKE,
    MFLAG_IS_HELI,
    MFLAG_IS_PLANE,
    MFLAG_IS_BOAT,
    MFLAG_BOUNCE_PANELS,
    MFLAG_DOUBLE_RWHEELS,
    MFLAG_FORCE_GROUND_CLEARANCE,
    MFLAG_IS_HATCHBACK
};
To be used with GetVehicleHandlingFlag.
pawn Код:
enum handlingFlags (<<= 1)
{
    HFLAG_1G_BOOST = 1,
    HFLAG_2G_BOOST,
    HFLAG_NPC_ANTI_ROLL,
    HFLAG_NPC_NEUTRAL_HANDL,
    HFLAG_NO_HANDBRAKE,
    HFLAG_STEER_REARWHEELS,
    HFLAG_HB_REARWHEEL_STEER,
    HFLAG_ALT_STEER_OPT,
    HFLAG_WHEEL_F_NARROW2,
    HFLAG_WHEEL_F_NARROW,
    HFLAG_WHEEL_F_WIDE,
    HFLAG_WHEEL_F_WIDE2,
    HFLAG_WHEEL_R_NARROW2,
    HFLAG_WHEEL_R_NARROW,
    HFLAG_WHEEL_R_WIDE,
    HFLAG_WHEEL_R_WIDE2,
    HFLAG_HYDRAULIC_GEOM,
    HFLAG_HYDRAULIC_INST,
    HFLAG_HYDRAULIC_NONE,
    HFLAG_NOS_INST,
    HFLAG_OFFROAD_ABILITY,
    HFLAG_OFFROAD_ABILITY2,
    HFLAG_HALOGEN_LIGHTS,
    HFLAG_PROC_REARWHEEL_1ST,
    HFLAG_USE_MAXSP_LIMIT,
    HFLAG_LOW_RIDER,
    HFLAG_STREET_RACER,
    HFLAG_UNUSED_FLAG, // Unused in data files. Required for continuity. Do not remove.
    HFLAG_SWINGING_CHASSIS
}
Reply


Messages In This Thread
Extended Vehicle Information - by Vince - 21.05.2013, 14:13
Re: Extended Vehicle Information - by Kyle - 21.05.2013, 14:15
Re: Extended Vehicle Information - by RajatPawar - 21.05.2013, 15:41
Re: Extended Vehicle Information - by Littlehelper - 21.05.2013, 15:47
Re: Extended Vehicle Information - by DaRk_RaiN - 21.05.2013, 15:52
Re: Extended Vehicle Information - by Vince - 21.05.2013, 15:56
Re: Extended Vehicle Information - by Kreatyve - 21.05.2013, 19:27
Re: Extended Vehicle Information - by MP2 - 21.05.2013, 19:53
Re: Extended Vehicle Information - by Maxips2 - 22.05.2013, 10:26
Re: Extended Vehicle Information - by Alex Magaсa - 22.05.2013, 11:18
Re: Extended Vehicle Information - by Jay_ - 22.05.2013, 12:36
Re: Extended Vehicle Information - by Kar - 23.05.2013, 03:21
Re: Extended Vehicle Information - by Yiin - 23.05.2013, 08:09
Re: Extended Vehicle Information - by MP2 - 23.05.2013, 17:24
Re: Extended Vehicle Information - by TheArcher - 23.05.2013, 17:35
Re: Extended Vehicle Information - by Kar - 23.05.2013, 22:13
Re: Extended Vehicle Information - by startserv - 01.10.2014, 07:33
Re: Extended Vehicle Information - by Pottus - 01.10.2014, 08:35
Re: Extended Vehicle Information - by Luis- - 04.05.2015, 20:01
Re: Extended Vehicle Information - by Luis- - 19.05.2015, 18:00
Re: Extended Vehicle Information - by BiosMarcel - 31.01.2016, 19:39
Re: Extended Vehicle Information - by Tamer - 31.01.2016, 19:47
Re: Extended Vehicle Information - by Crayder - 01.02.2016, 16:18
Re: Extended Vehicle Information - by RotX - 24.09.2017, 17:06
Re: Extended Vehicle Information - by BiosMarcel - 24.09.2017, 19:03

Forum Jump:


Users browsing this thread: 1 Guest(s)