sfcnr/gamemodes/irresistible/cnr/features/gangs/gvehicles.pwn

90 lines
3.0 KiB
Plaintext
Raw Normal View History

/*
* Irresistible Gaming (c) 2018
* Developed by Lorenc Pekaj
* Module:
* Purpose:
*/
/* ** Includes ** */
#include < YSI\y_hooks >
/* ** Definitions ** */
2018-11-08 10:34:54 +00:00
#define MAX_GANG_VEHICLES ( 30 )
/* ** Macros ** */
#define IsValidGangVehicle(%0,%1) \
( 0 <= %0 < MAX_GANG_VEHICLES && Iter_Contains( gangvehicles<%0>, %1 ) )
/* ** Variables ** */
2018-11-08 10:34:54 +00:00
enum E_GANG_VEHICLE_DATA
{
E_SQL_ID, E_VEHICLE_ID,
E_COLOR[ 2 ], E_MODEL, E_PAINTJOB
};
new g_gangVehicleData [ MAX_GANGS ] [ MAX_GANG_VEHICLES ] [ E_GANG_VEHICLE_DATA ];
new g_gangVehicleModifications [ MAX_GANGS ] [ MAX_GANG_VEHICLES ] [ MAX_CAR_MODS ];
new Iterator: gangvehicles < MAX_GANGS, MAX_GANG_VEHICLES >;
/* ** Hooks ** */
2018-11-08 10:34:54 +00:00
hook OnGangLoad( gangid )
{
return 1;
}
CMD:car( playerid )
{
new Float: X, Float: Y, Float: Z;
GetPlayerPos( playerid, X, Y, Z );
CreateGangVehicle( GetPlayerGang( playerid ), 560, X, Y, Z );
return 1;
}
/* ** Functions ** */
2018-11-08 10:34:54 +00:00
stock CreateGangVehicle( gangid, modelid, Float: X, Float: Y, Float: Z, color1 = -1, color2 = -1, paintjob = 3 )
{
new
slotid = Iter_Free( gangvehicles< gangid > );
if ( slotid != ITER_NONE )
{
g_gangVehicleData[ gangid ] [ slotid ] [ E_COLOR ] [ 0 ] = color1;
g_gangVehicleData[ gangid ] [ slotid ] [ E_COLOR ] [ 1 ] = color2;
g_gangVehicleData[ gangid ] [ slotid ] [ E_PAINTJOB ] = paintjob;
g_gangVehicleData[ gangid ] [ slotid ] [ E_MODEL ] = modelid;
ResetGangVehicleMods( gangid, slotid );
new vehicleid = CreateVehicle( modelid, X, Y, Z, 0.0, Color1, Color2, 999999999 );
g_adminSpawnedCar{ vehicleid } = false;
SetVehicleNumberPlate( vehicleid, g_gangData[ gangid ] [ E_NAME ] );
g_gangVehicleData[ gangid ] [ slotid ] [ E_VEHICLE_ID ] = vehicleid;
//format( szString, sizeof( szString ), "INSERT INTO `VEHICLES` (`MODEL`,`LOCKED`,`X`,`Y`,`Z`,`ANGLE`,`COLOR1`,`COLOR2`,`PRICE`,`OWNER`,`PLATE`,`PAINTJOB`,`MODS`) VALUES (%d,0,%f,%f,%f,%f,%d,%d,%d,%d,'SF-CNR',3,'0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.')", Model, X, Y, Z, Angle, Color1, Color2, Cost, g_vehicleData[ playerid ] [ vID ] [ E_OWNER_ID ] );
//mysql_function_query( dbHandle, szString, true, "OnPlayerCreateBuyableVehicle", "dd", playerid, vID );
}
return slotid;
}
stock ResetGangVehicleMods( gangid, slotid, fordestroy=1 )
{
if ( IsValidGangVehicle( gangid, slotid ) )
return;
for ( new i = 0; i < MAX_CAR_MODS; i++ )
{
if ( ! fordestroy && IsValidVehicle( g_gangVehicleData[ gangid ] [ slotid ] [ E_VEHICLE_ID ] ) ) {
if ( CarMod_IsLegalCarMod( GetVehicleModel( g_gangVehicleData[ gangid ] [ slotid ] [ E_VEHICLE_ID ] ), g_gangVehicleModifications[ gangid ] [ slotid ] [ i ] ) ) {
RemoveVehicleComponent( g_gangVehicleData[ gangid ] [ slotid ] [ E_VEHICLE_ID ], g_gangVehicleModifications[ gangid ] [ slotid ] [ i ] );
}
}
g_gangVehicleModifications[ gangid ] [ slotid ] [ i ] = 0;
}
format( szNormalString, sizeof( szNormalString ), "UPDATE `GANG_VEHICLES` SET `MODS`='0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.' WHERE `ID`=%d", g_gangVehicleData[ gangid ] [ slotid ] [ E_SQL_ID ] );
mysql_single_query( szNormalString );
}