mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2026-10-10 11:53:07 +08:00
Update for b3717 (#169)
This commit is contained in:
@@ -3,7 +3,7 @@ include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
gtav_classes
|
||||
GIT_REPOSITORY https://github.com/Mr-X-GTA/GTAV-Classes-1.git
|
||||
GIT_TAG 98d4999a7f893d1ebbed7a4852599895afeadef1
|
||||
GIT_TAG b74e688860b0df47d7ec87c1eb6227ee853fc90a
|
||||
GIT_PROGRESS TRUE
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
|
||||
@@ -32,11 +32,11 @@ namespace big
|
||||
}
|
||||
else if (scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[id].SimpleInteriorData.Index != eSimpleInteriorIndex::SIMPLE_INTERIOR_INVALID)
|
||||
{
|
||||
*scr_globals::interiors.at(3824).as<Player*>() =
|
||||
*scr_globals::interiors.at(3891).as<Player*>() =
|
||||
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[id].SimpleInteriorData.Owner;
|
||||
*scr_globals::interiors.at(4178).as<eSimpleInteriorIndex*>() =
|
||||
*scr_globals::interiors.at(4248).as<eSimpleInteriorIndex*>() =
|
||||
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[id].SimpleInteriorData.Index;
|
||||
*scr_globals::interiors.at(4177).as<bool*>() = true;
|
||||
*scr_globals::interiors.at(4247).as<bool*>() = true;
|
||||
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[self::id].SimpleInteriorData.InteriorSubtype =
|
||||
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[id].SimpleInteriorData.InteriorSubtype;
|
||||
}
|
||||
|
||||
@@ -14,14 +14,14 @@ namespace big
|
||||
*scr_globals::disable_wasted_sound.as<bool*>() = true;
|
||||
|
||||
// triggers respawn instantly upon death, has no effect if not respawning so no need to check if the player's dead
|
||||
misc::set_bit(&(*scr_globals::freemode_properties.at(1761).at(756).as<int*>()), 1); // Update: freemode -> KILL_STRIP_H -> Above that = "!IS_BIT_SET(global, 2)"
|
||||
misc::set_bit(&(*scr_globals::freemode_properties.at(1762).at(756).as<int*>()), 1); // Update: freemode -> KILL_STRIP_H -> Above that = "!IS_BIT_SET(global, 2)"
|
||||
}
|
||||
|
||||
virtual void on_disable() override
|
||||
{
|
||||
*scr_globals::disable_wasted_sound.as<bool*>() = false;
|
||||
|
||||
misc::clear_bit(&(*scr_globals::freemode_properties.at(1761).at(756).as<int*>()), 1);
|
||||
misc::clear_bit(&(*scr_globals::freemode_properties.at(1762).at(756).as<int*>()), 1);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace big
|
||||
virtual void on_tick() override
|
||||
{
|
||||
if (g.self.ghost_org)
|
||||
MISC::SET_BIT(scr_globals::freemode_global.at(4704).as<int*>(), 2);
|
||||
MISC::SET_BIT(scr_globals::freemode_global.at(3758).as<int*>(), 2);
|
||||
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[self::id].OffRadarActive = true;
|
||||
*scr_globals::freemode_properties.at(58).as<int*>() = NETWORK::GET_NETWORK_TIME() + 1;
|
||||
}
|
||||
@@ -22,7 +22,7 @@ namespace big
|
||||
virtual void on_disable() override
|
||||
{
|
||||
if (!g.self.ghost_org)
|
||||
MISC::CLEAR_BIT(scr_globals::freemode_global.at(4704).as<int*>(), 2);
|
||||
MISC::CLEAR_BIT(scr_globals::freemode_global.at(3758).as<int*>(), 2);
|
||||
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[self::id].OffRadarActive = false;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace big
|
||||
g_script_patcher_service->add_patch({"freemode"_J, "load island even if stranded animal IPL choice is not set", "71 2E ? ? 55 ? ? 61 ? ? ? 47 ? ? 63", 0, {0x72}, nullptr}); // load island even if stranded animal IPL choice is not set
|
||||
g_script_patcher_service->add_patch({"freemode"_J, "disable population load balancing", "2D 00 07 00 00 7B", 5, {0x2E, 0x00, 0x00}, nullptr}); // disable population load balancing
|
||||
g_script_patcher_service->add_patch({"freemode"_J, "freemode7", "2D 02 08 00 00 38 01 56", 5, {0x2E, 0x02, 0x00}, &g.session.block_muggers});
|
||||
g_script_patcher_service->add_patch({"freemode"_J, "freemode8", "2D 00 CF 00 00", 5, {0x2E, 0x00, 0x00}, &g.session.block_ceo_raids});
|
||||
g_script_patcher_service->add_patch({"freemode"_J, "freemode8", "2D 00 D0 00 00 5D", 5, {0x2E, 0x00, 0x00}, &g.session.block_ceo_raids});
|
||||
g_script_patcher_service->add_patch({"freemode"_J, "prevent normal blip update", "06 56 ? ? 38 02 2C ? ? ? 71 71", 0, {0x2B, 0x55}, &g.spoofing.spoof_blip}); // prevent normal blip update
|
||||
g_script_patcher_service->add_patch({"freemode"_J, "prevent normal blip update 2", "2C ? ? ? 55 ? ? 71 2C ? ? ? 61", 7, std::vector<uint8_t>(16, 0x0), &g.spoofing.spoof_blip}); // prevent normal blip update 2
|
||||
g_script_patcher_service->add_patch({"freemode"_J, "stop relinquishing invalid CEO slots", "2D 01 05 00 00 38 00 2C ? ? ? 39 03 38 03 2C ? ? ? 56", 5, {0x2E, 0x01, 0x00}, &g.session.block_ceo_creation}); // stop relinquishing invalid CEO slots
|
||||
|
||||
+37
-37
@@ -4,16 +4,16 @@
|
||||
|
||||
namespace big::scr_globals
|
||||
{
|
||||
static inline const script_global gsbd(2648929);
|
||||
static inline const script_global gsbd_kicking(1876908);
|
||||
static inline const script_global gsbd_fm_events(1918241);
|
||||
static inline const script_global gsbd(2649159);
|
||||
static inline const script_global gsbd_kicking(1877125);
|
||||
static inline const script_global gsbd_fm_events(1922477);
|
||||
|
||||
static inline const script_global globalplayer_bd(2658016);
|
||||
static inline const script_global gpbd_fm_3(1888737);
|
||||
static inline const script_global gpbd_fm_1(1845225);
|
||||
static inline const script_global interiors(1945923);
|
||||
static inline const script_global globalplayer_bd(2658291);
|
||||
static inline const script_global gpbd_fm_3(1892653);
|
||||
static inline const script_global gpbd_fm_1(1845250);
|
||||
static inline const script_global interiors(1950198);
|
||||
|
||||
static inline const script_global launcher_global(2699544);
|
||||
static inline const script_global launcher_global(2699984);
|
||||
|
||||
// creator globals usually remain the same after updates
|
||||
static inline const script_global terminate_creator(1574607); // NETWORK::NETWORK_BAIL(1, 0, 0); fm_*_creator
|
||||
@@ -21,84 +21,84 @@ namespace big::scr_globals
|
||||
static inline const script_global mission_creator_radar_follows_camera(2621443);
|
||||
static inline const script_global mission_creator_exited(1574530);
|
||||
|
||||
static inline const script_global transition_state(1575014);
|
||||
static inline const script_global sctv_spectator(2698102); // pausemenu_multiplayer function 0xE49C42EC
|
||||
static inline const script_global transition_state(1575018);
|
||||
static inline const script_global sctv_spectator(2698539); // pausemenu_multiplayer function 0xE49C42EC
|
||||
|
||||
static inline const script_global vehicle_global(1586540);
|
||||
static inline const script_global vehicle_global(1583765);
|
||||
|
||||
static inline const script_global freemode_properties(2672964);
|
||||
static inline const script_global freemode_global(2740054);
|
||||
static inline const script_global freemode_properties(2673271);
|
||||
static inline const script_global freemode_global(2733002);
|
||||
|
||||
static inline const script_global spawn_global(2696579);
|
||||
static inline const script_global spawn_global(2697006);
|
||||
|
||||
static inline const script_global transaction_overlimit(4538671);
|
||||
static inline const script_global transaction_overlimit(4516902);
|
||||
|
||||
static inline const script_global stats(2359296);
|
||||
|
||||
static inline const script_global session(1574589);
|
||||
static inline const script_global session2(1575038);
|
||||
static inline const script_global session3(33282);
|
||||
static inline const script_global session2(1575042);
|
||||
static inline const script_global session3(33776);
|
||||
static inline const script_global session4(1574943);
|
||||
static inline const script_global session5(1575013);
|
||||
static inline const script_global session6(2696496); // freemode -> if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() && !NETWORK::NETWORK_IS_ACTIVITY_SESSION())
|
||||
static inline const script_global session5(1575017);
|
||||
static inline const script_global session6(2696922); // freemode -> if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() && !NETWORK::NETWORK_IS_ACTIVITY_SESSION())
|
||||
|
||||
static inline const script_global interaction_menu_access(2711261); // am_pi_menu -> if (NETWORK::NETWORK_IS_SIGNED_ONLINE()) first global after that
|
||||
static inline const script_global interaction_menu_access(2712075); // am_pi_menu -> if (NETWORK::NETWORK_IS_SIGNED_ONLINE()) first global after that
|
||||
|
||||
static inline const script_global disable_wasted_sound(2708261); // freemode -> AUDIO::PLAY_SOUND_FRONTEND(-1, "Wasted", "POWER_PLAY_General_Soundset", true);
|
||||
static inline const script_global disable_wasted_sound(2708893); // freemode -> AUDIO::PLAY_SOUND_FRONTEND(-1, "Wasted", "POWER_PLAY_General_Soundset", true);
|
||||
|
||||
static inline const script_global passive(1574582); // if (((!PED::IS_PED_IN_ANY_VEHICLE(PLAYER::GET_PLAYER_PED(bVar1), false) || Global_
|
||||
|
||||
static inline const script_global property_garage(1940049);
|
||||
static inline const script_global property_names(1312335);
|
||||
static inline const script_global property_garage(1944263);
|
||||
static inline const script_global property_names(1312440);
|
||||
|
||||
static inline const script_global reset_clothing(104448); // freemode 75, &iLocal_.*, 2\);
|
||||
static inline const script_global reset_clothing(105008); // freemode 75, &iLocal_.*, 2\);
|
||||
|
||||
static inline const script_global gun_van(1952452); // return -29.532f, 6435.136f, 31.162f;
|
||||
static inline const script_global gun_van(1956819); // return -29.532f, 6435.136f, 31.162f;
|
||||
|
||||
static inline const script_global disable_phone(21205);
|
||||
static inline const script_global disable_phone(21593);
|
||||
|
||||
static inline const script_global should_reset_fm_weapons(1578044);
|
||||
static inline const script_global should_reset_fm_weapons(1576473);
|
||||
}
|
||||
|
||||
namespace big::scr_locals
|
||||
{
|
||||
namespace am_hunt_the_beast
|
||||
{
|
||||
constexpr static auto broadcast_idx = 624; // (bParam0) != 0;
|
||||
constexpr static auto player_broadcast_idx = 2608; // if (NETWORK::PARTICIPANT_ID_TO_INT() != -1)
|
||||
constexpr static auto broadcast_idx = 626; // (bParam0) != 0;
|
||||
constexpr static auto player_broadcast_idx = 2610; // if (NETWORK::PARTICIPANT_ID_TO_INT() != -1)
|
||||
}
|
||||
|
||||
namespace am_criminal_damage
|
||||
{
|
||||
constexpr static auto broadcast_idx = 119; // /* Tunable: CRIMINAL_DAMAGE_DISABLE_SHARE_CASH */)
|
||||
constexpr static auto score_idx = 114; // AUDIO::PLAY_SOUND_FRONTEND(-1, "Criminal_Damage_High_Value", "GTAO_FM_Events_Soundset", false);
|
||||
constexpr static auto broadcast_idx = 121; // /* Tunable: CRIMINAL_DAMAGE_DISABLE_SHARE_CASH */)
|
||||
constexpr static auto score_idx = 116; // AUDIO::PLAY_SOUND_FRONTEND(-1, "Criminal_Damage_High_Value", "GTAO_FM_Events_Soundset", false);
|
||||
}
|
||||
|
||||
namespace am_cp_collection
|
||||
{
|
||||
constexpr static auto broadcast_idx = 824; // bVar1 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::INT_TO_PARTICIPANTINDEX(iVar0));
|
||||
constexpr static auto player_broadcast_idx = 3465; // bVar1 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::INT_TO_PARTICIPANTINDEX(iVar0));
|
||||
constexpr static auto broadcast_idx = 826; // bVar1 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::INT_TO_PARTICIPANTINDEX(iVar0));
|
||||
constexpr static auto player_broadcast_idx = 3467; // bVar1 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::INT_TO_PARTICIPANTINDEX(iVar0));
|
||||
}
|
||||
|
||||
namespace am_king_of_the_castle
|
||||
{
|
||||
constexpr static auto broadcast_idx = 102; // KING_OF_THE_CASTLE_EVENT_TIME_LIMIT
|
||||
constexpr static auto broadcast_idx = 104; // KING_OF_THE_CASTLE_EVENT_TIME_LIMIT
|
||||
}
|
||||
|
||||
namespace fmmc_launcher
|
||||
{
|
||||
constexpr static auto broadcast_idx = 12827; // if (NETWORK::NETWORK_IS_PLAYER_ACTIVE(PLAYER::INT_TO_PLAYERINDEX(Global_
|
||||
constexpr static auto broadcast_idx = 12888; // if (NETWORK::NETWORK_IS_PLAYER_ACTIVE(PLAYER::INT_TO_PLAYERINDEX(Global_
|
||||
}
|
||||
|
||||
namespace fm_mission_controller
|
||||
{
|
||||
constexpr static auto mission_controller_wanted_state_flags = 60892; // if (PLAYER::GET_PLAYER_WANTED_LEVEL(bLocal_
|
||||
constexpr static auto mission_controller_wanted_state_flags = 60898; // if (PLAYER::GET_PLAYER_WANTED_LEVEL(bLocal_
|
||||
}
|
||||
|
||||
namespace freemode
|
||||
{
|
||||
// first uLocal_ in this function call
|
||||
// func_\d+\((&.Local_\d+(, )?){9}\);
|
||||
inline static script_local mobile(19361);
|
||||
inline static script_local mobile(19547);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -405,13 +405,14 @@ namespace big
|
||||
LOG_FIELD_B(CTrainGameStateDataNode, m_direction);
|
||||
LOG_FIELD_B(CTrainGameStateDataNode, m_has_passenger_carriages);
|
||||
LOG_FIELD_B(CTrainGameStateDataNode, m_render_derailed);
|
||||
LOG_FIELD_B(CTrainGameStateDataNode, unk_00C6);
|
||||
LOG_FIELD_B(CTrainGameStateDataNode, unk_00C7);
|
||||
LOG_FIELD_B(CTrainGameStateDataNode, new_00C8);
|
||||
LOG_FIELD_NI(CTrainGameStateDataNode, m_engine_id);
|
||||
LOG_FIELD_C(CTrainGameStateDataNode, m_train_config_index);
|
||||
LOG_FIELD_C(CTrainGameStateDataNode, m_carriage_config_index);
|
||||
LOG_FIELD_C(CTrainGameStateDataNode, m_track_id);
|
||||
LOG_FIELD(CTrainGameStateDataNode, m_distance_from_engine);
|
||||
LOG_FIELD(CTrainGameStateDataNode, new_00D4);
|
||||
LOG_FIELD(CTrainGameStateDataNode, m_cruise_speed);
|
||||
LOG_FIELD_NI(CTrainGameStateDataNode, m_linked_to_backward_id);
|
||||
LOG_FIELD_NI(CTrainGameStateDataNode, m_linked_to_forward_id);
|
||||
|
||||
+6
-6
@@ -3,7 +3,7 @@
|
||||
#include "gta_pointers_layout_info.hpp"
|
||||
#include "sc_pointers_layout_info.hpp"
|
||||
|
||||
#define GTA_VERSION_TARGET "1.71-3586.0"
|
||||
#define GTA_VERSION_TARGET "1.72-3717.0"
|
||||
|
||||
namespace big
|
||||
{
|
||||
@@ -636,19 +636,19 @@ namespace big
|
||||
g_pointers->m_gta.m_script_vm = ptr.add(1).rip().as<functions::script_vm>();
|
||||
}
|
||||
},
|
||||
// Handle Join Request (partially obfuscated now, crutches deployed)
|
||||
// Handle Join Request
|
||||
{
|
||||
"HJR",
|
||||
"4C 8B F1 45 33 ED 48 8D 4D",
|
||||
"48 81 EC E8 03 00 00 4C 8B F1",
|
||||
[](memory::handle ptr)
|
||||
{
|
||||
g_pointers->m_gta.m_handle_join_request = ptr.sub(0x2D).as<PVOID>();
|
||||
g_pointers->m_gta.m_handle_join_request = ptr.sub(0x26).as<PVOID>();
|
||||
}
|
||||
},
|
||||
// Write Join Response Data
|
||||
{
|
||||
"WJRD",
|
||||
"E8 ? ? ? ? 41 8B DF 84 C0 74 06",
|
||||
"E8 ? ? ? ? 84 C0 75 0A 44 89 23",
|
||||
[](memory::handle ptr)
|
||||
{
|
||||
g_pointers->m_gta.m_write_join_response_data = ptr.add(1).rip().as<functions::write_join_response_data>();
|
||||
@@ -1762,7 +1762,7 @@ namespace big
|
||||
// Session Request Patch
|
||||
{
|
||||
"SRP",
|
||||
"45 38 8E 48 B7 00 00 0F 85 43 FE FF FF",
|
||||
"41 38 9E 98 B7 00 00 0F 85 6A FE FF FF",
|
||||
[](memory::handle ptr)
|
||||
{
|
||||
g_pointers->m_gta.m_session_request_patch = ptr.add(0x14).as<PVOID>();
|
||||
|
||||
@@ -157,7 +157,7 @@ namespace big
|
||||
{
|
||||
case 12: //Hangar
|
||||
{
|
||||
auto hangar_id = *scr_globals::gpbd_fm_1.at(self::id, 874).at(260).at(298).as<PINT>();
|
||||
auto hangar_id = *scr_globals::gpbd_fm_1.at(self::id, 880).at(260).at(304).as<PINT>();
|
||||
switch (hangar_id)
|
||||
{
|
||||
case 1: return HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION("MP_HANGAR_1"); //LSIA Hangar 1
|
||||
@@ -170,7 +170,7 @@ namespace big
|
||||
}
|
||||
case 13: //Facility
|
||||
{
|
||||
auto facility_id = *scr_globals::gpbd_fm_1.at(self::id, 874).at(260).at(305).as<PINT>();
|
||||
auto facility_id = *scr_globals::gpbd_fm_1.at(self::id, 880).at(260).at(311).as<PINT>();
|
||||
switch (facility_id)
|
||||
{
|
||||
case 1: return HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION("MP_DBASE_1"); //Grand Senora Desert Facility
|
||||
|
||||
+21
-21
@@ -23,7 +23,7 @@ namespace big::mobile
|
||||
|
||||
inline int get_current_personal_vehicle()
|
||||
{
|
||||
return *scr_globals::stats.at(0, 5571).at(681).at(2).as<int*>();
|
||||
return *scr_globals::stats.at(0, 5574).at(681).at(2).as<int*>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,27 +31,27 @@ namespace big::mobile
|
||||
{
|
||||
inline void request_ammo_drop()
|
||||
{
|
||||
*scr_globals::freemode_global.at(918).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(538).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_boat_pickup()
|
||||
{
|
||||
*scr_globals::freemode_global.at(919).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(539).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_helicopter_pickup()
|
||||
{
|
||||
*scr_globals::freemode_global.at(920).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(540).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_backup_helicopter()
|
||||
{
|
||||
*scr_globals::freemode_global.at(4524).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(3578).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_airstrike()
|
||||
{
|
||||
*scr_globals::freemode_global.at(4525).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(3579).as<int*>() = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,12 +90,12 @@ namespace big::mobile
|
||||
{
|
||||
inline void request_bullshark_testosterone()
|
||||
{
|
||||
*scr_globals::freemode_global.at(926).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(546).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_ballistic_armor() //i think this is a ceo ability atleast?
|
||||
{
|
||||
*scr_globals::freemode_global.at(928).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(548).as<int*>() = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,32 +103,32 @@ namespace big::mobile
|
||||
{
|
||||
inline void request_avenger()
|
||||
{
|
||||
*scr_globals::freemode_global.at(965).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(585).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_kosatka()
|
||||
{
|
||||
*scr_globals::freemode_global.at(992).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(613).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_mobile_operations_center()
|
||||
{
|
||||
*scr_globals::freemode_global.at(957).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(577).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_terrorbyte()
|
||||
{
|
||||
*scr_globals::freemode_global.at(970).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(591).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_acidlab()
|
||||
{
|
||||
*scr_globals::freemode_global.at(971).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(592).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_acidlab_bike()
|
||||
{
|
||||
*scr_globals::freemode_global.at(1026).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(647).as<int*>() = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ namespace big::mobile
|
||||
|
||||
inline void summon_vehicle_by_index(int veh_idx)
|
||||
{
|
||||
if (*scr_globals::freemode_global.at(1017).as<int*>() != -1)
|
||||
if (*scr_globals::freemode_global.at(638).as<int*>() != -1)
|
||||
return g_notification_service.push_warning("VEHICLE"_T.data(), "VEHICLE_MECHANIC_BUSY"_T.data());
|
||||
|
||||
if (g.clone_pv.spawn_inside && self::veh)
|
||||
@@ -167,11 +167,11 @@ namespace big::mobile
|
||||
// only do this when spawn inside is enabled otherwise the vehicle will spawn relatively far away from players
|
||||
if (g.clone_pv.spawn_inside)
|
||||
{
|
||||
*scr_globals::freemode_global.at(969).as<int*>() = 1; // disable vehicle node distance check
|
||||
*scr_globals::freemode_global.at(590).as<int*>() = 1; // disable vehicle node distance check
|
||||
}
|
||||
*scr_globals::freemode_global.at(955).as<int*>() = 1; // tell freemode to spawn our vehicle
|
||||
*scr_globals::freemode_global.at(1020).as<int*>() = 0; // required
|
||||
*scr_globals::freemode_global.at(1017).as<int*>() = veh_idx;
|
||||
*scr_globals::freemode_global.at(575).as<int*>() = 1; // tell freemode to spawn our vehicle
|
||||
*scr_globals::freemode_global.at(641).as<int*>() = 0; // required
|
||||
*scr_globals::freemode_global.at(638).as<int*>() = veh_idx;
|
||||
|
||||
script::get_current()->yield(100ms);
|
||||
|
||||
@@ -186,7 +186,7 @@ namespace big::mobile
|
||||
}
|
||||
|
||||
// blocking call till vehicle is delivered
|
||||
notify::busy_spinner("Delivering vehicle...", scr_globals::freemode_global.at(1017).as<int*>(), -1);
|
||||
notify::busy_spinner("Delivering vehicle...", scr_globals::freemode_global.at(638).as<int*>(), -1);
|
||||
|
||||
if (g.clone_pv.spawn_inside)
|
||||
{
|
||||
@@ -199,7 +199,7 @@ namespace big::mobile
|
||||
{
|
||||
inline void request_taxi()
|
||||
{
|
||||
*scr_globals::freemode_global.at(880).as<int*>() = 1;
|
||||
*scr_globals::freemode_global.at(509).as<int*>() = 1;
|
||||
}
|
||||
|
||||
inline void request_gun_van()
|
||||
|
||||
+5
-5
@@ -57,26 +57,26 @@ namespace big::outfit
|
||||
// usually each update increases 1//
|
||||
inline char* get_slot_name_address(int slot)
|
||||
{
|
||||
return scr_globals::stats.at(0, 5571).at(681).at(2463).at(slot, 8).as<char*>();
|
||||
return scr_globals::stats.at(0, 5574).at(681).at(2466).at(slot, 8).as<char*>();
|
||||
}
|
||||
|
||||
inline int* get_component_drawable_id_address(int slot, int id)
|
||||
{
|
||||
return scr_globals::stats.at(0, 5571).at(681).at(1339).at(slot, 13).at(id, 1).as<int*>();
|
||||
return scr_globals::stats.at(0, 5574).at(681).at(1342).at(slot, 13).at(id, 1).as<int*>();
|
||||
}
|
||||
|
||||
inline int* get_component_texture_id_address(int slot, int id)
|
||||
{
|
||||
return scr_globals::stats.at(0, 5571).at(681).at(1613).at(slot, 13).at(id, 1).as<int*>();
|
||||
return scr_globals::stats.at(0, 5574).at(681).at(1616).at(slot, 13).at(id, 1).as<int*>();
|
||||
}
|
||||
|
||||
inline int* get_prop_drawable_id_address(int slot, int id)
|
||||
{
|
||||
return scr_globals::stats.at(0, 5571).at(681).at(1887).at(slot, 10).at(id, 1).as<int*>();
|
||||
return scr_globals::stats.at(0, 5574).at(681).at(1890).at(slot, 10).at(id, 1).as<int*>();
|
||||
}
|
||||
|
||||
inline int* get_prop_texture_id_address(int slot, int id)
|
||||
{
|
||||
return scr_globals::stats.at(0, 5571).at(681).at(2098).at(slot, 10).at(id, 1).as<int*>();
|
||||
return scr_globals::stats.at(0, 5574).at(681).at(2101).at(slot, 10).at(id, 1).as<int*>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,8 +66,8 @@ namespace big::session
|
||||
{
|
||||
int idx = index / 32;
|
||||
int bit = index % 32;
|
||||
misc::set_bit(scr_globals::gsbd_fm_events.at(11).at(397).at(idx, 1).as<int*>(), bit);
|
||||
misc::set_bit(scr_globals::gsbd_fm_events.at(11).at(387).at(idx, 1).as<int*>(), bit);
|
||||
misc::set_bit(scr_globals::gsbd_fm_events.at(11).at(402).at(idx, 1).as<int*>(), bit);
|
||||
misc::set_bit(scr_globals::gsbd_fm_events.at(11).at(392).at(idx, 1).as<int*>(), bit);
|
||||
misc::set_bit((int*)&scr_globals::gpbd_fm_3.as<GPBD_FM_3*>()->Entries[self::id].BossGoon.ActiveFreemodeEvents[idx], bit);
|
||||
}
|
||||
|
||||
@@ -75,8 +75,8 @@ namespace big::session
|
||||
{
|
||||
int idx = index / 32;
|
||||
int bit = index % 32;
|
||||
misc::clear_bit(scr_globals::gsbd_fm_events.at(11).at(397).at(idx, 1).as<int*>(), bit);
|
||||
misc::clear_bit(scr_globals::gsbd_fm_events.at(11).at(387).at(idx, 1).as<int*>(), bit);
|
||||
misc::clear_bit(scr_globals::gsbd_fm_events.at(11).at(402).at(idx, 1).as<int*>(), bit);
|
||||
misc::clear_bit(scr_globals::gsbd_fm_events.at(11).at(392).at(idx, 1).as<int*>(), bit);
|
||||
misc::clear_bit((int*)&scr_globals::gpbd_fm_3.as<GPBD_FM_3*>()->Entries[self::id].BossGoon.ActiveFreemodeEvents[idx], bit);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user