//----------------- Magic Carpet ----------------- // // Nothing special Do check IS_CONTROL_PRESSED numbers though // Gets activated through MagicCarpet Bool //-------------------------------------------------- object Create_Object(const char* ObjectName, Vector3 Coordinates) { int ObjectHash = GAMEPLAY::GET_HASH_KEY(ObjectName); if (STREAMING::IS_MODEL_IN_CDIMAGE(ObjectHash)) { if (STREAMING::IS_MODEL_VALID(ObjectHash)) { do { STREAMING::REQUEST_MODEL(ObjectHash); } while (! STREAMING::HAS_MODEL_LOADED(ObjectHash)) if (STREAMING::HAS_MODEL_LOADED(ObjectHash)) { return = OBJECT::CREATE_OBJECT(ObjectHash, Coordinates.x,Coordinates.y,Coordinates.z, 1, 1, 0, 0, 1); } else { // Error model didnt load properly. } } } } MagicCarpetLoop() { char* prop = "p_oil_slick_01" hash ObjHash = GAMEPLAY::GET_HASH_KEY(prop); object MagicCarpetObject = OBJECT::GET_CLOSEST_OBJECT_OF_TYPE(PlayerCoord.x,PlayerCoord.y,PlayerCoord.z,100,ObjHash,1,0,1); vector3 PlayerCoord = ENTITY::GET_ENTITY_COORD(playerPed,1); if ((! ENTITY::DOES_ENTITY_EXIST(MagicCarpetObject)) && (MagicCarpet)) { object MagicCarpetObject = Create_Object(prop,PlayerCoord.x,PlayerCoord.y,PlayerCoord.z) ENTITY::FREEZE_ENTITY_POSITION(MagicCarpetObject,1); ENTITY::SET_ENTITY_VISIBLE(MagicCarpetObject,0); } else if ((ENTITY::DOES_ENTITY_EXIST(MagicCarpetObject)) && (MagicCarpet)) { float Normal = 1.0225; float Down = 1.60; float Up = 0.40; float Vehicular = 50.0; if (PED::IS_PED_IN_ANY_VEHICLE(playerPed,0) //Move below ground when in car { zPlane = PlayerCoord.z - Vehicular; } else if (CONTROLS::IS_CONTROL_PRESSED(2,36)) //Down INPUT_DUCK |G|L3 { zPlane = PlayerCoord.z - Down; } else if (CONTROLS::IS_CONTROL_PRESSED(2,26)) //Up INPUT_LOOK_BEHIND |C|R3 { zPlane = PlayerCoord.z - Up; } else //Normal { zPlane = PlayerCoord.z - Normal; } Vector3 Coord = CombineVector(PlayerCoord.x, PlayerCoord.y, zPlane); ENTITY::SET_ENTITY_COORDS(MagicCarpetObject,Coord.x,Coord.y,Coord.z,1,0,0,1); } }