| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579 |
- // g_mysql_SaveVehicle(int playerid, int slotid)
- // Description: Saves a account's specified vehicle slot.
- stock g_mysql_SaveVehicle(playerid, slotid)
- {
- szMiscArray[0] = 0;
- printf("%s (%i) saving their %s (slot %i) (Model %i)...", GetPlayerNameEx(playerid), playerid, VehicleName[PlayerVehicleInfo[playerid][slotid][pvModelId] - 400], slotid, PlayerVehicleInfo[playerid][slotid][pvModelId]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "UPDATE `vehicles` SET");
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvPosX` = %0.5f,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvPosX]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvPosY` = %0.5f,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvPosY]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvPosZ` = %0.5f,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvPosZ]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvPosAngle` = %0.5f,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvPosAngle]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvLock` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvLock]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvLocked` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvLocked]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvPaintJob` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvPaintJob]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvColor1` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvColor1]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvColor2` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvColor2]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvPrice` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvPrice]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvWeapon0` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvWeapons][0]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvWeapon1` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvWeapons][1]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvWeapon2` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvWeapons][2]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvLock` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvLock]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvWepUpgrade` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvWepUpgrade]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvFuel` = %0.5f,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvFuel]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvImpound` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvImpounded]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvDisabled` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvDisabled]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvPlate` = '%e',", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvPlate]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvTicket` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvTicket]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvRestricted` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvRestricted]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvVW` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvVW]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvInt` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvInt]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvCrashFlag` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvCrashFlag]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvCrashVW` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvCrashVW]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvCrashX` = %0.5f,", szMiscArray, FormatFloat(PlayerVehicleInfo[playerid][slotid][pvCrashX]));
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvCrashY` = %0.5f,", szMiscArray, FormatFloat(PlayerVehicleInfo[playerid][slotid][pvCrashY]));
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvCrashZ` = %0.5f,", szMiscArray, FormatFloat(PlayerVehicleInfo[playerid][slotid][pvCrashZ]));
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvCrashAngle` = %0.5f,", szMiscArray, FormatFloat(PlayerVehicleInfo[playerid][slotid][pvCrashAngle]));
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvAlarm` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvAlarm]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvLastLockPickedBy` = '%e',", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvLastLockPickedBy]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvLocksLeft` = %d,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvLocksLeft]);
- new zyear, zmonth, zday;
- getdate(zyear, zmonth, zday);
- if(zombieevent || (zmonth == 10 && zday == 31) || (zmonth == 11 && zday == 1)) format(szMiscArray, sizeof(szMiscArray), "%s `pvHealth` = %0.5f,", szMiscArray, PlayerVehicleInfo[playerid][slotid][pvHealth]);
-
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s\
- `Pot` = %d,\
- `Crack` = %d,\
- `Meth` = %d,\
- `Ecstasy` = %d,\
- `Heroin` = %d,",
- szMiscArray,
- PlayerVehicleInfo[playerid][slotid][pvDrugs][0],
- PlayerVehicleInfo[playerid][slotid][pvDrugs][1],
- PlayerVehicleInfo[playerid][slotid][pvDrugs][2],
- PlayerVehicleInfo[playerid][slotid][pvDrugs][3],
- PlayerVehicleInfo[playerid][slotid][pvDrugs][4]);
- for(new m = 0; m < MAX_MODS; m++)
- {
- if(m == MAX_MODS-1)
- {
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvMod%d` = %d WHERE `id` = '%d'", szMiscArray, m, PlayerVehicleInfo[playerid][slotid][pvMods][m], PlayerVehicleInfo[playerid][slotid][pvSlotId]);
- }
- else
- {
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "%s `pvMod%d` = %d,", szMiscArray, m, PlayerVehicleInfo[playerid][slotid][pvMods][m]);
- }
- }
- //print(szMiscArray);
- new szLog[128];
- format(szLog, sizeof(szLog), "[VEHICLESAVE] [User: %s(%i)] [Model: %d] [Vehicle ID: %d]", GetPlayerNameEx(playerid), PlayerInfo[playerid][pId], PlayerVehicleInfo[playerid][slotid][pvModelId], PlayerVehicleInfo[playerid][slotid][pvSlotId]);
- Log("logs/vehicledebug.log", szLog);
-
- mysql_tquery(MainPipeline, szMiscArray, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
- }
- stock CreatePlayerVehicle(playerid, playervehicleid, modelid, Float: x, Float: y, Float: z, Float: angle, color1, color2, price, VW, Int)
- {
- szMiscArray[0] = 0;
- if(PlayerVehicleInfo[playerid][playervehicleid][pvId] == INVALID_PLAYER_VEHICLE_ID)
- {
- VehicleSpawned[playerid]++;
- PlayerCars++;
- PlayerVehicleInfo[playerid][playervehicleid][pvModelId] = modelid;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosX] = x;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosY] = y;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosZ] = z;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosAngle] = angle;
- PlayerVehicleInfo[playerid][playervehicleid][pvColor1] = color1;
- PlayerVehicleInfo[playerid][playervehicleid][pvColor2] = color2;
- PlayerVehicleInfo[playerid][playervehicleid][pvPark] = 1;
- PlayerVehicleInfo[playerid][playervehicleid][pvPrice] = price;
- for(new w = 0; w < 3; w++)
- {
- PlayerVehicleInfo[playerid][playervehicleid][pvWeapons][w] = 0;
- }
- PlayerVehicleInfo[playerid][playervehicleid][pvWepUpgrade] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvImpounded] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvVW] = VW;
- PlayerVehicleInfo[playerid][playervehicleid][pvInt] = Int;
- PlayerVehicleInfo[playerid][playervehicleid][pvTicket] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvPlate] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvLock] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvLocksLeft] = 5;
- PlayerVehicleInfo[playerid][playervehicleid][pvLocked] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvAlarm] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvAlarmTriggered] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvBeingPickLocked] = 0;
- for(new m; m < sizeof(Drugs); ++m) PlayerVehicleInfo[playerid][playervehicleid][pvDrugs][m] = 0;
-
- for(new m = 0; m < MAX_MODS; m++)
- {
- PlayerVehicleInfo[playerid][playervehicleid][pvMods][m] = 0;
- }
- new carcreated = CreateVehicle(modelid,x,y,z,angle,color1,color2,-1);
- SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][playervehicleid][pvVW]);
- LinkVehicleToInterior(carcreated, PlayerVehicleInfo[playerid][playervehicleid][pvInt]);
- Vehicle_ResetData(carcreated);
- PlayerVehicleInfo[playerid][playervehicleid][pvId] = carcreated;
- PlayerVehicleInfo[playerid][playervehicleid][pvSpawned] = 1;
- PlayerVehicleInfo[playerid][playervehicleid][pvFuel] = 100.0;
- //SetVehicleNumberPlate(carcreated, PlayerVehicleInfo[playerid][playervehicleid][pvNumberPlate]);
- mysql_format(MainPipeline, szMiscArray, sizeof(szMiscArray), "INSERT INTO `vehicles` (`sqlID`) VALUES ('%d')", GetPlayerSQLId(playerid));
- mysql_tquery(MainPipeline, szMiscArray, "OnQueryCreateVehicle", "ii", playerid, playervehicleid);
- return carcreated;
- }
- return INVALID_PLAYER_VEHICLE_ID;
- }
- stock DestroyPlayerVehicle(playerid, playervehicleid)
- {
- if(PlayerVehicleInfo[playerid][playervehicleid][pvModelId])
- {
- VehicleSpawned[playerid]--;
- PlayerCars--;
-
- switch(PlayerVehicleInfo[playerid][playervehicleid][pvModelId]) {
- case 519, 553, 508: {
- if(IsValidDynamicArea(iVehEnterAreaID[PlayerVehicleInfo[playerid][playervehicleid][pvId]])) DestroyDynamicArea(iVehEnterAreaID[PlayerVehicleInfo[playerid][playervehicleid][pvId]]);
- }
- }
- DestroyVehicle(PlayerVehicleInfo[playerid][playervehicleid][pvId]);
- PlayerVehicleInfo[playerid][playervehicleid][pvModelId] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosX] = 0.0;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosY] = 0.0;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosZ] = 0.0;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosAngle] = 0.0;
- PlayerVehicleInfo[playerid][playervehicleid][pvPaintJob] = -1;
- PlayerVehicleInfo[playerid][playervehicleid][pvColor1] = 126;
- PlayerVehicleInfo[playerid][playervehicleid][pvColor2] = 126;
- PlayerVehicleInfo[playerid][playervehicleid][pvPrice] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvFuel] = 0.0;
- PlayerVehicleInfo[playerid][playervehicleid][pvImpounded] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvSpawned] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvVW] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvInt] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvTicket] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvWeapons][0] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvWeapons][1] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvWeapons][2] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvPlate] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvLock] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvLocksLeft] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvLocked] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvAlarm] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvAlarmTriggered] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvBeingPickLocked] = 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvBeingPickLockedBy] = INVALID_PLAYER_ID;
- PlayerVehicleInfo[playerid][playervehicleid][pvLastLockPickedBy] = 0;
- VehicleFuel[PlayerVehicleInfo[playerid][playervehicleid][pvId]] = 0.0;
- PlayerVehicleInfo[playerid][playervehicleid][pvId] = INVALID_PLAYER_VEHICLE_ID;
- if(PlayerVehicleInfo[playerid][playervehicleid][pvAllowedPlayerId] != INVALID_PLAYER_ID)
- {
- PlayerInfo[PlayerVehicleInfo[playerid][playervehicleid][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
- PlayerInfo[PlayerVehicleInfo[playerid][playervehicleid][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
- PlayerVehicleInfo[playerid][playervehicleid][pvAllowedPlayerId] = INVALID_PLAYER_ID;
- }
- for(new m; m < sizeof(Drugs); ++m) PlayerVehicleInfo[playerid][playervehicleid][pvDrugs][m] = 0;
- new query[60];
- mysql_format(MainPipeline, query, sizeof(query), "DELETE FROM `vehicles` WHERE `id` = '%d'", PlayerVehicleInfo[playerid][playervehicleid][pvSlotId]);
- mysql_tquery(MainPipeline, query, "OnQueryFinish", "ii", SENDDATA_THREAD, playerid);
- PlayerVehicleInfo[playerid][playervehicleid][pvSlotId] = 0;
- //g_mysql_SaveVehicle(playerid, playervehicleid);
- }
- }
- stock LoadPlayerVehicles(playerid, logoff = 0) {
- for(new v = 0; v < MAX_PLAYERVEHICLES; v++) {
- if(PlayerVehicleInfo[playerid][v][pvBeingPickLocked] > 0 && logoff == 0) continue;
- if(vehicleSpawnCountCheck(playerid)) {
- if(PlayerVehicleInfo[playerid][v][pvModelId] >= 400) {
- if(PlayerVehicleInfo[playerid][v][pvSpawned] && !PlayerVehicleInfo[playerid][v][pvDisabled] && !PlayerVehicleInfo[playerid][v][pvImpounded]) {
- PlayerCars++;
- VehicleSpawned[playerid]++;
- new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][v][pvModelId], PlayerVehicleInfo[playerid][v][pvPosX], PlayerVehicleInfo[playerid][v][pvPosY], PlayerVehicleInfo[playerid][v][pvPosZ], PlayerVehicleInfo[playerid][v][pvPosAngle],PlayerVehicleInfo[playerid][v][pvColor1], PlayerVehicleInfo[playerid][v][pvColor2], -1);
- SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][v][pvVW]);
- LinkVehicleToInterior(carcreated, PlayerVehicleInfo[playerid][v][pvInt]);
- switch(GetVehicleModel(carcreated)) {
- case 519, 553, 508: {
- iVehEnterAreaID[carcreated] = CreateDynamicSphere(PlayerVehicleInfo[playerid][v][pvPosX]+2, PlayerVehicleInfo[playerid][v][pvPosY], PlayerVehicleInfo[playerid][v][pvPosZ], 4, GetVehicleVirtualWorld(carcreated));
- AttachDynamicAreaToVehicle(iVehEnterAreaID[carcreated], carcreated);
- Streamer_SetIntData(STREAMER_TYPE_AREA, iVehEnterAreaID[carcreated], E_STREAMER_EXTRA_ID, carcreated);
- }
- }
- Vehicle_ResetData(carcreated);
- PlayerVehicleInfo[playerid][v][pvId] = carcreated;
- VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][v][pvFuel];
- if(PlayerVehicleInfo[playerid][v][pvLocked]) {
- if(PlayerVehicleInfo[playerid][v][pvLocksLeft]) LockPlayerVehicle(playerid, carcreated, PlayerVehicleInfo[playerid][v][pvLock]);
- else PlayerVehicleInfo[playerid][v][pvLocked] = 0;
- }
- LoadPlayerVehicleMods(playerid, v);
- if(PlayerVehicleInfo[playerid][v][pvCrashFlag] == 1 && PlayerVehicleInfo[playerid][v][pvCrashX] != 0.0)
- {
- SetVehiclePos(carcreated, PlayerVehicleInfo[playerid][v][pvCrashX], PlayerVehicleInfo[playerid][v][pvCrashY], PlayerVehicleInfo[playerid][v][pvCrashZ]);
- SetVehicleZAngle(carcreated, PlayerVehicleInfo[playerid][v][pvCrashAngle]);
- SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][v][pvCrashVW]);
- PlayerVehicleInfo[playerid][v][pvCrashFlag] = 0;
- PlayerVehicleInfo[playerid][v][pvCrashVW] = 0;
- PlayerVehicleInfo[playerid][v][pvCrashX] = 0.0;
- PlayerVehicleInfo[playerid][v][pvCrashY] = 0.0;
- PlayerVehicleInfo[playerid][v][pvCrashZ] = 0.0;
- PlayerVehicleInfo[playerid][v][pvCrashAngle] = 0.0;
- SendClientMessageEx(playerid, COLOR_WHITE, "Your vehicles have been restored to their last known location from your previous timeout.");
- }
- }
- else if(PlayerVehicleInfo[playerid][v][pvSpawned] != 0) {
- PlayerVehicleInfo[playerid][v][pvSpawned] = 0;
- }
- }
- else if(PlayerVehicleInfo[playerid][v][pvImpounded] != 0) {
- PlayerVehicleInfo[playerid][v][pvImpounded] = 0;
- }
- else if(PlayerVehicleInfo[playerid][v][pvSpawned] != 0) {
- PlayerVehicleInfo[playerid][v][pvSpawned] = 0;
- }
- }
- else PlayerVehicleInfo[playerid][v][pvSpawned] = 0;
- }
- return 1;
- }
- stock UnloadPlayerVehicles(playerid, logoff = 0, reason = 0) {
- for(new v = 0; v < MAX_PLAYERVEHICLES; v++) if(PlayerVehicleInfo[playerid][v][pvId] != INVALID_PLAYER_VEHICLE_ID && !PlayerVehicleInfo[playerid][v][pvImpounded] && PlayerVehicleInfo[playerid][v][pvSpawned]) {
- if(PlayerVehicleInfo[playerid][v][pvBeingPickLocked] > 0 && logoff == 0) continue;
- if(WheelClamp{PlayerVehicleInfo[playerid][v][pvId]} && logoff == 1) {
- PlayerVehicleInfo[playerid][v][pvImpounded] = 1;
- }
- if(IsVehicleInTow(PlayerVehicleInfo[playerid][v][pvId]) && logoff == 1)
- {
- DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
- PlayerVehicleInfo[playerid][v][pvImpounded] = 1;
- SetVehiclePos(PlayerVehicleInfo[playerid][v][pvId], 0, 0, 0); // Attempted desync fix
- }
- GetVehicleHealth(PlayerVehicleInfo[playerid][v][pvId], PlayerVehicleInfo[playerid][v][pvHealth]);
- if(PlayerVehicleInfo[playerid][v][pvBeingPickLocked] > 0) {
- new extraid = PlayerVehicleInfo[playerid][v][pvBeingPickLockedBy];
- SetPVarInt(extraid, "LockPickVehicleSQLId", PlayerVehicleInfo[playerid][v][pvSlotId]);
- SetPVarInt(extraid, "LockPickPlayerSQLId", GetPlayerSQLId(playerid));
- SetPVarInt(extraid, "VLPLocksLeft", PlayerVehicleInfo[playerid][v][pvLocksLeft]);
- SetPVarInt(extraid, "VLPTickets", PlayerVehicleInfo[playerid][v][pvTicket]);
- SetPVarString(extraid, "LockPickPlayerName", GetPlayerNameEx(playerid));
- new szMessage[150], rsMessage[20];
- switch(reason){
- case 0: rsMessage = "timed out";
- case 1: rsMessage = "logged off";
- case 2: rsMessage = "been kicked/banned";
- }
- format(szMessage, sizeof(szMessage), "The player (%s) that owns this vehicle (%s) has %s.", GetPlayerNameEx(playerid), GetVehicleName(PlayerVehicleInfo[playerid][v][pvId]), rsMessage);
- SendClientMessageEx(extraid, COLOR_YELLOW, szMessage);
- new ip2[MAX_PLAYER_NAME];
- GetPlayerIp(extraid, ip2, sizeof(ip2));
- SendClientMessageEx(extraid, COLOR_YELLOW, "(( The vehicle will de-spawn once you complete or fail the deliver. ))");
- format(szMessage, sizeof(szMessage), "[LOCK PICK] %s(%d) (IP:%s) has %s while his %s(VID:%d Slot %d) was lock picked by %s(IP:%s SQLId: %d)", GetPlayerNameEx(playerid), GetPlayerSQLId(playerid), PlayerInfo[playerid][pIP], rsMessage, GetVehicleName(PlayerVehicleInfo[playerid][v][pvId]), PlayerVehicleInfo[playerid][v][pvId], v, GetPlayerNameEx(extraid), ip2, GetPlayerSQLId(extraid));
- Log("logs/playervehicle.log", szMessage);
- DeletePVar(extraid, "LockPickPlayer");
- PlayerVehicleInfo[playerid][v][pvBeingPickLocked] = 0;
- PlayerVehicleInfo[playerid][v][pvBeingPickLockedBy] = INVALID_PLAYER_ID;
- }
- else {
- if(LockStatus{PlayerVehicleInfo[playerid][v][pvId]} != 0) LockStatus{PlayerVehicleInfo[playerid][v][pvId]} = 0;
- switch(PlayerVehicleInfo[playerid][v][pvModelId]) {
- case 519, 553, 508: {
- if(IsValidDynamicArea(iVehEnterAreaID[PlayerVehicleInfo[playerid][v][pvId]])) DestroyDynamicArea(iVehEnterAreaID[PlayerVehicleInfo[playerid][v][pvId]]);
- }
- }
- DestroyVehicle(PlayerVehicleInfo[playerid][v][pvId]);
- }
- PlayerCars--;
- PlayerVehicleInfo[playerid][v][pvId] = INVALID_PLAYER_VEHICLE_ID;
- PlayerVehicleInfo[playerid][v][pvSpawned] = 0;
- if(PlayerVehicleInfo[playerid][v][pvAllowedPlayerId] != INVALID_PLAYER_ID)
- {
- PlayerInfo[PlayerVehicleInfo[playerid][v][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
- PlayerInfo[PlayerVehicleInfo[playerid][v][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
- PlayerVehicleInfo[playerid][v][pvAllowedPlayerId] = INVALID_PLAYER_ID;
- }
- g_mysql_SaveVehicle(playerid, v);
- }
- VehicleSpawned[playerid] = 0;
- }
- stock UpdatePlayerVehicleParkPosition(playerid, playervehicleid, Float:newx, Float:newy, Float:newz, Float:newangle, Float:health, VW, Int)
- {
- if(PlayerVehicleInfo[playerid][playervehicleid][pvId] != INVALID_PLAYER_VEHICLE_ID && GetVehicleModel(PlayerVehicleInfo[playerid][playervehicleid][pvId]))
- {
- new Float:oldx, Float:oldy, Float:oldz, Float: oldfuel, arrDamage[4];
- oldx = PlayerVehicleInfo[playerid][playervehicleid][pvPosX];
- oldy = PlayerVehicleInfo[playerid][playervehicleid][pvPosY];
- oldz = PlayerVehicleInfo[playerid][playervehicleid][pvPosZ];
- if(oldx == newx && oldy == newy && oldz == newz) return 0;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosX] = newx;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosY] = newy;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosZ] = newz;
- PlayerVehicleInfo[playerid][playervehicleid][pvPosAngle] = newangle;
- PlayerVehicleInfo[playerid][playervehicleid][pvVW] = VW;
- PlayerVehicleInfo[playerid][playervehicleid][pvInt] = Int;
- oldfuel = VehicleFuel[PlayerVehicleInfo[playerid][playervehicleid][pvId]];
- UpdatePlayerVehicleMods(playerid, playervehicleid);
- GetVehicleDamageStatus(PlayerVehicleInfo[playerid][playervehicleid][pvId], arrDamage[0], arrDamage[1], arrDamage[2], arrDamage[3]);
-
- switch(PlayerVehicleInfo[playerid][playervehicleid][pvModelId]) {
- case 519, 553, 508: {
- if(IsValidDynamicArea(iVehEnterAreaID[PlayerVehicleInfo[playerid][playervehicleid][pvId]])) DestroyDynamicArea(iVehEnterAreaID[PlayerVehicleInfo[playerid][playervehicleid][pvId]]);
- }
- }
- DestroyVehicle(PlayerVehicleInfo[playerid][playervehicleid][pvId]);
- new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][playervehicleid][pvModelId], PlayerVehicleInfo[playerid][playervehicleid][pvPosX], PlayerVehicleInfo[playerid][playervehicleid][pvPosY], PlayerVehicleInfo[playerid][playervehicleid][pvPosZ],
- PlayerVehicleInfo[playerid][playervehicleid][pvPosAngle],PlayerVehicleInfo[playerid][playervehicleid][pvColor1], PlayerVehicleInfo[playerid][playervehicleid][pvColor2], -1);
- SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][playervehicleid][pvVW]);
- LinkVehicleToInterior(carcreated, PlayerVehicleInfo[playerid][playervehicleid][pvInt]);
- switch(GetVehicleModel(carcreated)) {
- case 519, 553, 508: {
- iVehEnterAreaID[carcreated] = CreateDynamicSphere(PlayerVehicleInfo[playerid][playervehicleid][pvPosX]+2, PlayerVehicleInfo[playerid][playervehicleid][pvPosY], PlayerVehicleInfo[playerid][playervehicleid][pvPosZ], 2.0, GetVehicleVirtualWorld(carcreated));
- AttachDynamicAreaToVehicle(iVehEnterAreaID[carcreated], carcreated);
- Streamer_SetIntData(STREAMER_TYPE_AREA, iVehEnterAreaID[carcreated], E_STREAMER_EXTRA_ID, carcreated);
- }
- }
- PlayerVehicleInfo[playerid][playervehicleid][pvId] = carcreated;
- Vehicle_ResetData(carcreated);
- VehicleFuel[carcreated] = oldfuel;
- // SetVehicleNumberPlate(carcreated, PlayerVehicleInfo[playerid][playervehicleid][pvNumberPlate]);
- SetVehicleHealth(carcreated, health);
- if(PlayerVehicleInfo[playerid][playervehicleid][pvLocked] == 1) LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][playervehicleid][pvId], PlayerVehicleInfo[playerid][playervehicleid][pvLock]);
- LoadPlayerVehicleMods(playerid, playervehicleid);
- UpdateVehicleDamageStatus(PlayerVehicleInfo[playerid][playervehicleid][pvId], arrDamage[0], arrDamage[1], arrDamage[2], arrDamage[3]);
- g_mysql_SaveVehicle(playerid, playervehicleid);
- return 1;
- }
- return 0;
- }
- stock UpdatePlayerVehicleMods(playerid, playervehicleid)
- {
- if(GetVehicleModel(PlayerVehicleInfo[playerid][playervehicleid][pvId]) && PlayerVehicleInfo[playerid][playervehicleid][pvImpounded] == 0 && PlayerVehicleInfo[playerid][playervehicleid][pvSpawned] == 1 && !PlayerVehicleInfo[playerid][playervehicleid][pvDisabled]) {
- new carid = PlayerVehicleInfo[playerid][playervehicleid][pvId];
- new exhaust, frontbumper, rearbumper, roof, spoilers, sideskirt1,
- sideskirt2, wheels, hydraulics, nitro, hood, lamps, stereo, ventright, ventleft;
- exhaust = GetVehicleComponentInSlot(carid, CARMODTYPE_EXHAUST);
- frontbumper = GetVehicleComponentInSlot(carid, CARMODTYPE_FRONT_BUMPER);
- rearbumper = GetVehicleComponentInSlot(carid, CARMODTYPE_REAR_BUMPER);
- roof = GetVehicleComponentInSlot(carid, CARMODTYPE_ROOF);
- spoilers = GetVehicleComponentInSlot(carid, CARMODTYPE_SPOILER);
- sideskirt1 = GetVehicleComponentInSlot(carid, CARMODTYPE_SIDESKIRT);
- sideskirt2 = GetVehicleComponentInSlot(carid, CARMODTYPE_SIDESKIRT);
- wheels = GetVehicleComponentInSlot(carid, CARMODTYPE_WHEELS);
- hydraulics = GetVehicleComponentInSlot(carid, CARMODTYPE_HYDRAULICS);
- nitro = GetVehicleComponentInSlot(carid, CARMODTYPE_NITRO);
- hood = GetVehicleComponentInSlot(carid, CARMODTYPE_HOOD);
- lamps = GetVehicleComponentInSlot(carid, CARMODTYPE_LAMPS);
- stereo = GetVehicleComponentInSlot(carid, CARMODTYPE_STEREO);
- ventright = GetVehicleComponentInSlot(carid, CARMODTYPE_VENT_RIGHT);
- ventleft = GetVehicleComponentInSlot(carid, CARMODTYPE_VENT_LEFT);
- if(spoilers >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][0] = spoilers;
- if(hood >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][1] = hood;
- if(roof >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][2] = roof;
- if(sideskirt1 >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][3] = sideskirt1;
- if(lamps >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][4] = lamps;
- if(nitro >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][5] = nitro;
- if(exhaust >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][6] = exhaust;
- if(wheels >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][7] = wheels;
- if(stereo >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][8] = stereo;
- if(hydraulics >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][9] = hydraulics;
- if(frontbumper >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][10] = frontbumper;
- if(rearbumper >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][11] = rearbumper;
- if(ventright >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][12] = ventright;
- if(ventleft >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][13] = ventleft;
- if(sideskirt2 >= 1000) PlayerVehicleInfo[playerid][playervehicleid][pvMods][14] = sideskirt2;
- g_mysql_SaveVehicle(playerid, playervehicleid);
- }
- }
- stock LoadPlayerVehicleMods(playerid, playervehicleid)
- {
- if(GetVehicleModel(PlayerVehicleInfo[playerid][playervehicleid][pvId]) && PlayerVehicleInfo[playerid][playervehicleid][pvImpounded] == 0 && PlayerVehicleInfo[playerid][playervehicleid][pvSpawned] == 1) {
- if(strlen(PlayerVehicleInfo[playerid][playervehicleid][pvPlate]) > 0)
- {
- SetVehicleNumberPlate(PlayerVehicleInfo[playerid][playervehicleid][pvId], PlayerVehicleInfo[playerid][playervehicleid][pvPlate]);
- SetVehiclePos(PlayerVehicleInfo[playerid][playervehicleid][pvId], 9999.9, 9999.9, 9999.9);
- SetVehiclePos(PlayerVehicleInfo[playerid][playervehicleid][pvId], PlayerVehicleInfo[playerid][playervehicleid][pvPosX], PlayerVehicleInfo[playerid][playervehicleid][pvPosY], PlayerVehicleInfo[playerid][playervehicleid][pvPosZ]);
- }
- if(PlayerVehicleInfo[playerid][playervehicleid][pvPaintJob] != -1)
- {
- ChangeVehiclePaintjob(PlayerVehicleInfo[playerid][playervehicleid][pvId], PlayerVehicleInfo[playerid][playervehicleid][pvPaintJob]);
- ChangeVehicleColor(PlayerVehicleInfo[playerid][playervehicleid][pvId], PlayerVehicleInfo[playerid][playervehicleid][pvColor1], PlayerVehicleInfo[playerid][playervehicleid][pvColor2]);
- }
- for(new m = 0; m < MAX_MODS; m++)
- {
- if (PlayerVehicleInfo[playerid][playervehicleid][pvMods][m] >= 1000 && PlayerVehicleInfo[playerid][playervehicleid][pvMods][m] <= 1193)
- {
- if (InvalidModCheck(GetVehicleModel(PlayerVehicleInfo[playerid][playervehicleid][pvId]),PlayerVehicleInfo[playerid][playervehicleid][pvMods][m]))
- {
- AddVehicleComponent(PlayerVehicleInfo[playerid][playervehicleid][pvId], PlayerVehicleInfo[playerid][playervehicleid][pvMods][m]);
- }
- else
- {
- PlayerVehicleInfo[playerid][playervehicleid][pvMods][m] = 0;
- }
- }
- }
- }
- }
- LoadPlayerDisabledVehicles(playerid)
- {
- new vehiclecount;
- switch(PlayerInfo[playerid][pDonateRank]) {
- case 0: {
- for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
- {
- vehiclecount++;
- if(PlayerInfo[playerid][pVehicleSlot] + 6 <= vehiclecount) {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 1;
- } else {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 0;
- }
- }
- }
- case 1: {
- for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
- {
- vehiclecount++;
- if(PlayerInfo[playerid][pVehicleSlot] + 7 <= vehiclecount) {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 1;
- } else {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 0;
- }
- }
- }
- case 2: {
- for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
- {
- vehiclecount++;
- if(PlayerInfo[playerid][pVehicleSlot] + 8 <= vehiclecount) {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 1;
- } else {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 0;
- }
- }
- }
- case 3: {
- for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
- {
- vehiclecount++;
- if(PlayerInfo[playerid][pVehicleSlot] + 9 <= vehiclecount) {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 1;
- } else {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 0;
- }
- }
- }
- default: {
- for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
- {
- vehiclecount++;
- if(PlayerInfo[playerid][pVehicleSlot] + 11 <= vehiclecount) {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 1;
- } else {
- PlayerVehicleInfo[playerid][v][pvDisabled] = 0;
- }
- }
- }
- }
- return 1;
- }
- stock GetPlayerFreeVehicleId(playerid) {
- for(new i; i < MAX_PLAYERVEHICLES; ++i) {
- if(PlayerVehicleInfo[playerid][i][pvModelId] == 0) return i;
- }
- return -1;
- }
- stock GetPlayerVehicle(playerid, vehicleid)
- {
- for(new v = 0; v < MAX_PLAYERVEHICLES; v++)
- {
- if(PlayerVehicleInfo[playerid][v][pvId] == vehicleid)
- {
- return v;
- }
- }
- return -1;
- }
- stock FindPlayerVehicleWithSQLId(ownerid, sqlid)
- {
- new
- i = 0;
- while (i < MAX_PLAYERVEHICLES && PlayerVehicleInfo[ownerid][i][pvSlotId] != sqlid)
- {
- i++;
- }
- if (i == MAX_PLAYERVEHICLES) return -1;
- return i;
- }
- forward ParkVehicle(playerid, ownerid, vehicleid, d, Float:X, Float:Y, Float:Z);
- public ParkVehicle(playerid, ownerid, vehicleid, d, Float:X, Float:Y, Float:Z)
- {
- if(IsPlayerInRangeOfPoint(playerid, 1.0, X, Y, Z))
- {
- new Float:x, Float:y, Float:z, Float:angle, Float:health, string[29 + (MAX_PLAYER_NAME * 2)];
- GetVehicleHealth(vehicleid, health);
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessageEx(playerid, COLOR_GREY, "You must be in the driver seat.");
- if(health < 800) return SendClientMessageEx(playerid, COLOR_GREY, " Your vehicle is too damaged to park it.");
- if(ownerid != INVALID_PLAYER_ID)
- {
- GetVehiclePos(vehicleid, x, y, z);
- GetVehicleZAngle(vehicleid, angle);
- SurfingCheck(vehicleid);
- UpdatePlayerVehicleParkPosition(ownerid, d, x, y, z, angle, health, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
- IsPlayerEntering{playerid} = true;
- PutPlayerInVehicle(playerid, vehicleid, 0);
- SetPlayerArmedWeapon(playerid, 0);
- format(string, sizeof(string), "* %s has parked %s's vehicle.", GetPlayerNameEx(playerid), GetPlayerNameEx(ownerid));
- }
- else
- {
- GetVehiclePos(vehicleid, x, y, z);
- GetVehicleZAngle(vehicleid, angle);
- SurfingCheck(vehicleid);
- UpdatePlayerVehicleParkPosition(playerid, d, x, y, z, angle, health, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
- IsPlayerEntering{playerid} = true;
- PutPlayerInVehicle(playerid, vehicleid, 0);
- SetPlayerArmedWeapon(playerid, 0);
- format(string, sizeof(string), "* %s has parked their vehicle.", GetPlayerNameEx(playerid), GetPlayerNameEx(ownerid));
- }
- ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
- }
- else
- {
- SendClientMessage(playerid, COLOR_WHITE, "Vehicle did not park because you moved!");
- }
- return 1;
- }
|