feat(Functions): Added spawn vehicle func

This commit is contained in:
Yimura 2021-01-14 21:32:24 +01:00
parent 38d19c8fb6
commit 3123ffb76f
2 changed files with 45 additions and 0 deletions

View File

@ -184,4 +184,47 @@ namespace big::features::functions
{
return sqrt(pow((a.x - b.x), 2) + pow((a.y - b.y), 2) + pow((a.z - b.z), 2));
}
Entity spawn_vehicle(const char* model, Vector3 location, float heading)
{
Hash hash = MISC::GET_HASH_KEY(model);
if (hash)
{
for (uint8_t i = 0; !STREAMING::HAS_MODEL_LOADED(hash) && i < 100; i++)
{
STREAMING::REQUEST_MODEL(hash);
script::get_current()->yield();
}
if (!STREAMING::HAS_MODEL_LOADED(hash))
{
notify::above_map("~r~Failed to spawn model, did you give an incorrect model?");
return -1;
}
*(unsigned short*)g_pointers->m_model_spawn_bypass = 0x9090;
Vehicle veh = VEHICLE::CREATE_VEHICLE(hash, location.x, location.y, location.z, heading, true, false, false);
*(unsigned short*)g_pointers->m_model_spawn_bypass = 0x0574;
script::get_current()->yield();
STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(hash);
if (*g_pointers->m_is_session_started)
{
DECORATOR::DECOR_SET_INT(veh, "MPBitset", 0);
ENTITY::_SET_ENTITY_SOMETHING(veh, true);
int networkId = NETWORK::VEH_TO_NET(veh);
if (NETWORK::NETWORK_GET_ENTITY_IS_NETWORKED(veh))
NETWORK::SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES(networkId, true);
VEHICLE::SET_VEHICLE_IS_STOLEN(veh, false);
}
return veh;
}
return -1;
}
}

View File

@ -13,6 +13,8 @@ namespace big::features::functions
void spoof_rank(int rank);
void toggle_protections(bool toggle);
Entity spawn_vehicle(const char* model, Vector3 location, float heading);
bool take_control_of_entity(Entity ent);
BOOL raycast_entity(Entity* ent);