Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function load_model(iParam0)//Position - 0x1339
- {
- return STREAMING.IS_MODEL_A_VEHICLE(iParam0)
- ? (STREAMING.REQUEST_MODEL(iParam0), STREAMING.HAS_MODEL_LOADED(iParam0))
- : 0
- ;
- }
- function spawn_vehicle(model, options = {}) {
- _.defaults(options, {
- model: _.isString(model) ? joaat(model) : model,
- pedid: pedid(),
- coords: getCoords(options.pedid || pedid()),
- heading: getHeading(options.pedid || pedid()),
- forward: 5,
- up: 0,
- clearArea: false,
- netHandle: true,
- p6: true,
- networkedEntity: true,
- allMachines: true,
- stolen: false,
- openDoors: false,
- iParam5: false,
- });
- if (!model)
- return "Help: [model, options]\n" + JSON.stringify(options, null, 4);
- if (!load_model(options.model)) {
- console.log("couldn't load model " + options.model + "");
- return false;
- }
- if (options.clear)
- GAMEPLAY.CLEAR_AREA_OF_VEHICLES(options.options.coords, 1.0, 0, 0, 1, 1, true);
- var v = VEHICLE.CREATE_VEHICLE(options.model, options.coords.x, options.coords.y, options.coords.z, options.heading, !!options.netHandle, !!options.p6);
- console.info("Laz-e-log: options.model, options.coords, options.heading, options.netHandle, options.p6", options.model, options.coords, options.heading, options.netHandle, options.p6);
- console.log("v(" + options.model + ") = " + v + "");
- window.__veh = v;
- var net_id = NETWORK.VEH_TO_NET(v);
- if (NETWORK.NETWORK_DOES_NETWORK_ID_EXIST(net_id))
- {
- ENTITY._NETWORK_SET_ENTITY_AS_NETWORKED_ENTITY(v, options.networkedEntity); // Hashes: 0x3910051CCECDB00C
- // if (NETWORK.NETWORK_GET_ENTITY_IS_NETWORKED(v)) // NETWORK._0XC7827959479DCC78
- if (NETWORK._0xC7827959479DCC78(v)) // NETWORK._0XC7827959479DCC78
- {
- if (options.allMachines)
- {
- // void SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES(int netId, BOOL toggle)
- NETWORK.SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES(net_id, 1);
- }
- else
- {
- // void SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES(int netId, BOOL toggle)
- NETWORK.SET_NETWORK_ID_EXISTS_ON_ALL_MACHINES(net_id, 0);
- }
- }
- VEHICLE.SET_VEHICLE_IS_STOLEN(v, options.stolen);
- // unk_0xB2E0C0D6922D31F2(v, 1);
- // @invokePerform: (name, hash, resultType, paramTypes, args) ->
- Native.invokePerform(
- "unk_0xB2E0C0D6922D31F2",
- "0xB2E0C0D6922D31F2",
- "void",
- [{
- "type": "int",
- "name": "p1"
- }, {
- "type": "int",
- "name": "p2"
- }],
- [v, 1]
- );
- if (options.openDoors)
- {
- // unk_0xFC40CBF7B90CA77C(v);
- Native.invokePerform(
- "unk_0xFC40CBF7B90CA77C",
- "0xFC40CBF7B90CA77C",
- "void",
- [{
- "type": "int",
- "name": "p1"
- }],
- [v]
- );
- // The trunk?!
- VEHICLE.SET_VEHICLE_DOOR_CONTROL(v, 5, 5, 1.0);
- }
- // might be for mechanic or pegasus
- if (options.iParam5)
- {
- ENTITY.SET_ENTITY_HEADING(NETWORK.NET_TO_VEH(net_id), heading);
- ENTITY.SET_ENTITY_COORDS(NETWORK.NET_TO_VEH(net_id),
- /* Vector3 */
- ENTITY.GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(
- NETWORK.NET_TO_VEH(net_id), x = 2.0, y = 0.0, z = 0.0
- ),
- true, // invert X axis
- false,
- false,
- true // clear area
- );
- }
- VEHICLE.SET_VEHICLE_ON_GROUND_PROPERLY(NETWORK.NET_TO_VEH(net_id)); // , 1084227584);
- DECORATOR.DECOR_SET_INT(v, "MPBitset", 0);
- VEHICLE.SET_VEHICLE_HAS_BEEN_OWNED_BY_PLAYER(NETWORK.NET_TO_VEH(net_id), 1);
- VEHICLE.SET_VEHICLE_AUTOMATICALLY_ATTACHES(NETWORK.NET_TO_VEH(net_id), false, 0);
- // void _0x25367DE49D64CF16(Vehicle vehicle, BOOL p1)
- VEHICLE._0x25367DE49D64CF16(NETWORK.NET_TO_VEH(net_id), 1);
- NETWORK.SET_NETWORK_ID_CAN_MIGRATE(net_id, true);
- (function(v, model) {
- start = Date.now();
- function check() {
- if (VEHICLE.GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(v) || v == veh() || Date.now() > start + 60000) {
- STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(model);
- console.log("removed model " + model + "");
- } else {
- setTimeout(check, 5000);
- }
- }
- setTimeout(check, 2000);
- }(v, options.model));
- return v;
- } else {
- console.error("failed at:\n"
- + "var net_id = NETWORK.VEH_TO_NET(v);\n"
- + "if (NETWORK.NETWORK_DOES_NETWORK_ID_EXIST(net_id))\n;"
- + "net_id: " + net_id + " v: " + v + "");
- if (model)
- STREAMING.SET_MODEL_AS_NO_LONGER_NEEDED(model);
- return false;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement