SetGarageOpen: Difference between revisions
Jump to navigation
Jump to search
Line 133: | Line 133: | ||
addEventHandler("onResourceStart", getResourceRootElement(), function(res) | addEventHandler("onResourceStart", getResourceRootElement(), function(res) | ||
for ID, pos in pairs(garages) do | for ID, pos in pairs(garages) do | ||
if ( | if pos then | ||
if (type(pos) == "table") then | |||
createGarageColShape( | for _, subPos in ipairs(pos) do | ||
createGarageColShape(subPos, ID) | |||
end | |||
else | |||
createGarageColShape(pos, ID) | |||
end | end | ||
end | end | ||
end | end |
Revision as of 19:35, 22 July 2024
This function opens or closes the specified garage door in the world.
Syntax
bool setGarageOpen ( int garageID, bool open )
Required Arguments
- garageID: The garage ID that represents the garage door being opened or closed.
- isOpen: A boolean indicating whether or not to open the door.
Returns
Returns true if successful, false if an invalid garage id was given.
Example
Click to collapse [-]
ServerThis example opens a garage door when a player enters a collision shape near it, and closes it when they leave:
GARAGE_ID = 25 -- create a collision shape and attach event handlers to it when the resource starts addEventHandler("onResourceStart", getResourceRootElement(), function (resource) local garageCube = createColCuboid(1337, 194, 28, 6, 10, 4) addEventHandler("onColShapeHit", garageCube, onGarageCubeHit) addEventHandler("onColShapeLeave", garageCube, onGarageCubeLeave) end) -- open the door when someone enters the garage's collision shape function onGarageCubeHit(hitElement, matchingDimension) if (getElementType(hitElement) == "player") then -- check to make sure the door is closed if (not isGarageOpen(GARAGE_ID)) then -- open the door setGarageOpen(GARAGE_ID, true) end end end -- close the door when someone leaves the garage's collision shape function onGarageCubeLeave(leaveElement, matchingDimension) if (getElementType(leaveElement) == "player") then -- check to make sure the door is open if (isGarageOpen(GARAGE_ID)) then -- close the door setGarageOpen(GARAGE_ID, false) end end end
Click to collapse [-]
ServerThis example opens each garage door when a player enters a collision shape near it, and closes it when they leave:
local garages = { [0] = Vector3(1643.43, -1520.3, 14.3438), [1] = nil, -- LSPD Police Impound Garage (not working) [2] = Vector3(1877.41, -2096.51, 14.0391), [3] = Vector3(1843.37, -1856.32, 13.875), [4] = Vector3(1798.69, -2146.73, 14), [5] = Vector3(1698.91, -2088.74, 14.1406), [6] = Vector3(2741.07, -2004.78, 14.875), [7] = Vector3(2644.86, -2039.23, 14.0391), [8] = Vector3(2071.48, -1831.42, 14.5625), [9] = Vector3(2505.52, -1690.99, 14.3281), [10] = Vector3(1041.35, -1025.93, 32.6719), [11] = Vector3(1024.98, -1029.35, 33.1953), [12] = Vector3(488.28, -1734.7, 12.3906), [13] = Vector3(322.4141, -1769.0312, 5.25), [14] = Vector3(1353.48, -626.63, 109.82), [15] = Vector3(-2716.35, 217.48, 5.3828), [16] = Vector3(-2730.47, 72.32, 5.3516), [17] = Vector3(-2454.12, -123.06, 26.9844), [18] = Vector3(-1935.86, 239.53, 35.3516), [19] = Vector3(-1904.53, 277.9, 42.9531), [20] = Vector3(-2102.93, -16.05, 36.4844), [21] = Vector3(-2026.91, 129.41, 30.4531), [22] = Vector3(-2038.93, 178.81, 29.9375), [23] = Vector3(-2162.03, 654.66, 53.375), [24] = Vector3(-1786.81, 1209.42, 25.8359), [25] = Vector3(-2105.2, 896.93, 77.4453), [26] = nil, -- SFPD Police Impound Garage (not working) [27] = Vector3(-2425.73, 1027.99, 52.2812), [28] = Vector3(-2696.01, 821.45, 50.8516), [29] = nil, -- LVPD Police Impound Garage (not working) [30] = Vector3(1586.26, 1222.7, 19.75), [31] = Vector3(2609.52, 1438.37, 11.5938), [32] = nil, -- Pay 'n' Spray (Royal Casino) (not working) [33] = Vector3(2386.66, 1043.6, 11.5938), [34] = Vector3(2449.55, 698.08, 11.6797), [36] = Vector3(1968.74, 2162.49, 12.0938), [37] = Vector3(1408.64, 1902.69, 11.6797), [38] = Vector3(1278.7, 2529.81, 11.3203), [39] = Vector3(929.55, 2012.06, 11.6797), [40] = Vector3(-1420.55, 2591.16, 57.7422), [41] = Vector3(-100, 1111.41, 21.6406), [42] = Vector3(-360.77, 1194.26, 20.5938), [43] = Vector3(429.98, 2546.52, 17.3516), [44] = Vector3(-389.59, 2227.91, 42.9219), [45] = { Vector3(397.48, 2476.63, 19.5156), Vector3(412.12, 2476.63, 19.5156) }, [46] = Vector3(-2113.04, -2460.62, 30.9141), [47] = Vector3(720.02, -462.52, 16.8594), [48] = Vector3(2231.24, 168.73, 27.7734), [49] = Vector3(786.01, -492.87, 17.6328) } local function createGarageColShape(pos, ID) local col = createColSphere(pos.x, pos.y, pos.z, 7) addEventHandler("onColShapeHit", col, function(hitElement, matchingDimension) if getElementType(hitElement) == "player" then if not isGarageOpen(ID) then setGarageOpen(ID, true) end end end) addEventHandler("onColShapeLeave", col, function(leaveElement, matchingDimension) if getElementType(leaveElement) == "player" then if isGarageOpen(ID) then setGarageOpen(ID, false) end end end) end addEventHandler("onResourceStart", getResourceRootElement(), function(res) for ID, pos in pairs(garages) do if pos then if (type(pos) == "table") then for _, subPos in ipairs(pos) do createGarageColShape(subPos, ID) end else createGarageColShape(pos, ID) end end end end)
See Also
- areTrafficLightsLocked
- getAircraftMaxHeight
- getAircraftMaxVelocity
- getCloudsEnabled
- getFarClipDistance
- getFogDistance
- getGameSpeed
- getGravity
- getHeatHaze
- getInteriorSoundsEnabled
- getJetpackMaxHeight
- getMinuteDuration
- getMoonSize
- getOcclusionsEnabled
- getRainLevel
- getSunColor
- getSunSize
- getTime
- getTrafficLightState
- getWeather
- getWindVelocity
- getSkyGradient
- getPlayerBlurLevel
- getZoneName
- isGarageOpen
- removeWorldModel
- resetFarClipDistance
- resetFogDistance
- resetHeatHaze
- resetMoonSize
- resetRainLevel
- resetSkyGradient
- resetSunColor
- resetSunSize
- resetWindVelocity
- restoreAllWorldModels
- restoreWorldModel
- setAircraftMaxHeight
- setAircraftMaxVelocity
- setCloudsEnabled
- setFarClipDistance
- setFogDistance
- setGameSpeed
- setGarageOpen
- setGravity
- setHeatHaze
- setInteriorSoundsEnabled
- setMinuteDuration
- setMoonSize
- setOcclusionsEnabled
- setRainLevel
- setSkyGradient
- setSunColor
- setSunSize
- setTime
- setTrafficLightState
- setTrafficLightsLocked
- setWeather
- setWeatherBlended
- setWindVelocity
- setJetpackMaxHeight
- setPlayerBlurLevel