From e9fdc86239530ef01a1c1e03c9945e4396f9e8e6 Mon Sep 17 00:00:00 2001 From: gir489 <100792176+gir489returns@users.noreply.github.com> Date: Mon, 18 Dec 2023 08:59:35 -0500 Subject: [PATCH] Fixed unlockveh using the player id instead of ped (#2591) * Fixed unlockveh command using the Player ID for the arguments instead of the Player Ped. * Fixed lock/unlock vehicle door calls to use the eVehicleLockState enum. --- src/backend/commands/player/vehicle/lock_doors.cpp | 9 ++------- .../commands/player/vehicle/unlock_doors.cpp | 14 +++++++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/backend/commands/player/vehicle/lock_doors.cpp b/src/backend/commands/player/vehicle/lock_doors.cpp index 1e25dd89..6d20ae6f 100644 --- a/src/backend/commands/player/vehicle/lock_doors.cpp +++ b/src/backend/commands/player/vehicle/lock_doors.cpp @@ -11,9 +11,7 @@ namespace big virtual void execute(player_ptr player, const command_arguments& _args, const std::shared_ptr ctx) override { - int lockStatus = VEHICLE::GET_VEHICLE_DOOR_LOCK_STATUS(player->id()); - Ped ped = PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(player->id()); - + Ped ped = PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(player->id()); if (!PED::IS_PED_IN_ANY_VEHICLE(ped, true)) { g_notification_service->push_warning("TOXIC"_T.data(), "ERROR_PLAYER_IS_NOT_IN_VEHICLE"_T.data()); @@ -23,10 +21,7 @@ namespace big Vehicle veh = PED::GET_VEHICLE_PED_IS_IN(ped, false); if (entity::take_control_of(veh)) - { - entity::take_control_of(veh); - VEHICLE::SET_VEHICLE_DOORS_LOCKED(veh, 4); - } + VEHICLE::SET_VEHICLE_DOORS_LOCKED(veh, (int)eVehicleLockState::VEHICLELOCK_LOCKOUT_PLAYER_ONLY); } } }; diff --git a/src/backend/commands/player/vehicle/unlock_doors.cpp b/src/backend/commands/player/vehicle/unlock_doors.cpp index 1f1d965e..9dfdacb7 100644 --- a/src/backend/commands/player/vehicle/unlock_doors.cpp +++ b/src/backend/commands/player/vehicle/unlock_doors.cpp @@ -2,6 +2,7 @@ #include "natives.hpp" #include "pointers.hpp" #include "util/teleport.hpp" + namespace big { class unlock_vehicle : player_command @@ -10,10 +11,17 @@ namespace big virtual void execute(player_ptr player, const command_arguments& _args, const std::shared_ptr ctx) override { - if (PED::IS_PED_IN_ANY_VEHICLE(player->id(), false)) + Ped ped = PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(player->id()); + if (!PED::IS_PED_IN_ANY_VEHICLE(ped, true)) { - if (entity::take_control_of(PED::GET_VEHICLE_PED_IS_USING(player->id()))) - VEHICLE::SET_VEHICLE_DOORS_LOCKED(PED::GET_VEHICLE_PED_IS_USING(player->id()), 0); + g_notification_service->push_warning("VEHICLE"_T.data(), "ERROR_PLAYER_IS_NOT_IN_VEHICLE"_T.data()); + } + else + { + Vehicle veh = PED::GET_VEHICLE_PED_IS_IN(ped, false); + + if (entity::take_control_of(veh)) + VEHICLE::SET_VEHICLE_DOORS_LOCKED(veh, (int)eVehicleLockState::VEHICLELOCK_UNLOCKED); } } };