SetElementFrozen: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Fix example)
mNo edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 32: Line 32:


local connectedPlayers = getElementsByType("player") -- Get all connected players
local connectedPlayers = getElementsByType("player") -- Get all connected players
local playerElement = false -- Store reference to player


for playerID = 1, #connectedPlayers do -- Loop through each player
for playerID = 1, #connectedPlayers do -- Loop through each player
playerElement = connectedPlayers[playerID] -- Get player element by accessing it via playerID
local playerElement = connectedPlayers[playerID] -- Get player element by accessing it via playerID


bindKey(playerElement, "p", "down", toggleFreezeStatus, "Toggle freeze status") -- Bind function for player
bindKey(playerElement, "p", "down", toggleFreezeStatus, "Toggle freeze status") -- Bind function for player
Line 44: Line 43:
==Issues==
==Issues==
{{Issues|
{{Issues|
{{Issue|9522|Freezing a [[ped]] or [[player]] whilst occupying a [[givePedJetPack|jetpack]] will remove their jetpack, but not the jetpack sound}}
{{Issue|1291|Ped rotation is always zero on client side if ped has been frozed after creating it}}
{{Issue|541|Frozen ped rotation goes wrong with latency reduction enabled}}
{{Issue|442|Client-side setElementFrozen should sync vehicle driven by local player}}
}}
}}
[[ar:SetElementFrozen]]
 
[[en:SetElementFrozen]]
 
==See Also==
==See Also==
{{Element_functions}}
{{Element_functions}}

Latest revision as of 14:55, 11 June 2023

This function freezes an element (stops it in its position and disables movement) or unfreezes it.

[[|link=|]] Warning: This function cancels any animation set by setPedAnimation if you freeze the ped.

Syntax

bool setElementFrozen ( element theElement, bool freezeStatus )

OOP Syntax Help! I don't understand this!

Method: element:setFrozen(...)
Variable: .frozen
Counterpart: isElementFrozen


Required Arguments

  • theElement: The element whose freeze status we want to change.
  • freezeStatus: A boolean denoting whether we want to freeze (true) or unfreeze (false) it.

Returns

Returns true if the element was frozen, false if it wasn't or if invalid arguments are passed.

Example

Click to collapse [-]
Serverside example

This example binds the "p" key to a function to freeze/unfreeze the player's current vehicle.

function toggleFreezeStatus(thePlayer) -- This function freezes the specified player's vehicle, if he's in one
	local playerVehicle = getPedOccupiedVehicle(thePlayer) -- Check if player's in vehicle

	if playerVehicle then -- if so
		local isPlayerVehicleFrozen = isElementFrozen(playerVehicle) -- Check if vehicle is frozen

		setElementFrozen(playerVehicle, not isPlayerVehicleFrozen) -- Set opposite state
	end
end

local connectedPlayers = getElementsByType("player") -- Get all connected players

for playerID = 1, #connectedPlayers do -- Loop through each player
	local playerElement = connectedPlayers[playerID] -- Get player element by accessing it via playerID

	bindKey(playerElement, "p", "down", toggleFreezeStatus, "Toggle freeze status") -- Bind function for player
end

Issues

Issue ID Description
#1291 Ped rotation is always zero on client side if ped has been frozed after creating it
#541 Frozen ped rotation goes wrong with latency reduction enabled
#442 Client-side setElementFrozen should sync vehicle driven by local player


See Also