SetGarageOpen: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
Line 50: | Line 50: | ||
end | end | ||
end | end | ||
</syntaxhighlight> | |||
</section> | |||
<section name="Server" class="server" show="true"> | |||
This example opens all garage doors when a player enters a collision shape near them, and closes them when they leave: | |||
<syntaxhighlight lang="lua"> | |||
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 (pos and type(pos) == "table") then | |||
for _, subPos in ipairs(pos) do | |||
createGarageColShape(subPos, ID) | |||
end | |||
else | |||
createGarageColShape(pos, ID) | |||
end | |||
end | |||
end | |||
end) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | </section> |
Revision as of 19:25, 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 all garage doors when a player enters a collision shape near them, and closes them 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 (pos and 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