SetPedAnimation: Difference between revisions
Jump to navigation
Jump to search
(Issue fixed, removed from table.) |
|||
(37 intermediate revisions by 21 users not shown) | |||
Line 2: | Line 2: | ||
{{Server client function}} | {{Server client function}} | ||
Sets the current animation of a player or ped. | Sets the current [[Animations|animation]] of a [[player]] or [[ped]]. Not specifying the type of animation will automatically cancel the current one. | ||
{{Warning|It is possible that an animation will be cancelled if you use setElementFrozen on the ped, but this does not happen all the time.}} | |||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
bool setPedAnimation ( ped thePed [, string block=nil, string anim=nil, int time=-1, bool loop=true, bool updatePosition=true, bool interruptable=true] ) | bool setPedAnimation ( ped thePed [, string block = nil, string anim = nil, int time = -1, bool loop = true, bool updatePosition = true, | ||
bool interruptable = true, bool freezeLastFrame = true, int blendTime = 250, bool retainPedState = false ] ) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
{{OOP||[[ped]]:setAnimation||getPedAnimation}} | |||
===Required Arguments=== | ===Required Arguments=== | ||
*'''thePed:''' the player or ped you want to apply an animation to. | *'''thePed:''' the [[player]] or [[ped]] you want to apply an [[Animations|animation]] to. | ||
===Optional Arguments=== | ===Optional Arguments=== | ||
Line 16: | Line 19: | ||
*'''block:''' the [[Animations|animation]] block's name. | *'''block:''' the [[Animations|animation]] block's name. | ||
*'''anim:''' the name of the [[Animations|animation]] within the block. | *'''anim:''' the name of the [[Animations|animation]] within the block. | ||
*'''time:''' how long the animation will run for. | *'''time:''' how long the animation will run for in milliseconds. | ||
*'''loop:''' indicates whether or not the animation will loop. | *'''loop:''' indicates whether or not the animation will loop. | ||
*'''updatePosition:''' will change the actual coordinates of the ped according to the animation. Use this for e.g. walking animations. | *'''updatePosition:''' will change the actual coordinates of the ped according to the animation. Use this for e.g. walking animations. | ||
*'''interruptable:''' if set to 'false' other tasks wont be able to interupt the animation. | *'''interruptable:''' if set to ''false'' other tasks wont be able to interupt the animation. Setting this to 'false' also gives this function more power to override other animations that are running. For example, squatting after a jump can be terminated. | ||
*'''freezeLastFrame:''' if set to ''true'' after animation the last frame will be frozen, otherwise the animation will end and controls will return. | |||
*'''blendTime:''' how long the animation will mixed with the previous one in milliseconds. | |||
{{New items|3.0157|1.5.7| | |||
*'''retainPedState:''' will restore the task which was playing before calling this function. Useful for restoring the crouch task after animation ends. This may be extended in the future to support other states/tasks. | |||
|16632}} | |||
===Returns=== | ===Returns=== | ||
Returns ''true'' if succesful, ''false'' otherwise. | Returns ''true'' if succesful, ''false'' otherwise. | ||
== | ==Examples== | ||
<section name="Server" class="server" show="true"> | <section name="Server" class="server" show="true"> | ||
Line 30: | Line 38: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function makePed() | function makePed() | ||
local thePed = createPed(56, 1, 1, 4, 315) | |||
setPedAnimation(thePed, "ped", "WOMAN_walknorm") | |||
end | end | ||
addCommandHandler("makemyped", makePed) | addCommandHandler("makemyped", makePed) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | </section> | ||
<section name="Server" class="server" show="true"> | |||
This example makes the player sit down and stand up using the command /sit. | |||
<syntaxhighlight lang="lua"> | |||
local playerSitState = {} | |||
function toggleSit(thePlayer) | |||
local playerSitting = playerSitState[thePlayer] | |||
if (not playerSitting) then | |||
setPedAnimation(thePlayer, "ped", "seat_down", -1, false, false, false, false) | |||
playerSitState[thePlayer] = true -- store the player state in the table | |||
return true | |||
end | |||
setPedAnimation(thePlayer) -- if you use again this command then your character stand up | |||
playerSitState[thePlayer] = nil -- remove player sit state from table | |||
end | |||
addCommandHandler("sit", toggleSit) | |||
function onPlayerQuitClearSitState() | |||
playerSitState[source] = nil -- clear state at player quit, to prevent memory leak | |||
end | |||
addEventHandler("onPlayerQuit", root, onPlayerQuitClearSitState) | |||
</syntaxhighlight> | |||
</section> | |||
==Changelog== | |||
{{ChangelogHeader}} | |||
{{ChangelogItem|1.5.7-9.16632|Added retainPedState argument}} | |||
==Issues== | |||
{{Issues| | |||
{{Issue|1110|retainPedState in setPedAnimation() does not work when latency reduction is set to 1}} | |||
{{Issue|953|setPedAnimation() "interrupt" and "time" has no effect in certain situations}} | |||
{{Issue|467|Ped animations don't sync for new players}} | |||
{{Issue|463|setPedAnimation() does not work when a ped is attached and floating in air}} | |||
{{Issue|1173|setPedAnimation() removes player jetpack}} | |||
{{Issue|884|setPedAnimation() messes up collisions of peds inside vehicles}} | |||
}} | |||
==See Also== | ==See Also== | ||
{{Ped_functions}} | {{Ped_functions}} | ||
[[ru:setPedAnimation]] | |||
[[HU:setPedAnimation]] |
Latest revision as of 06:07, 14 July 2024
Sets the current animation of a player or ped. Not specifying the type of animation will automatically cancel the current one.
Syntax
bool setPedAnimation ( ped thePed [, string block = nil, string anim = nil, int time = -1, bool loop = true, bool updatePosition = true, bool interruptable = true, bool freezeLastFrame = true, int blendTime = 250, bool retainPedState = false ] )
OOP Syntax Help! I don't understand this!
- Method: ped:setAnimation(...)
- Counterpart: getPedAnimation
Required Arguments
Optional Arguments
NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.
- block: the animation block's name.
- anim: the name of the animation within the block.
- time: how long the animation will run for in milliseconds.
- loop: indicates whether or not the animation will loop.
- updatePosition: will change the actual coordinates of the ped according to the animation. Use this for e.g. walking animations.
- interruptable: if set to false other tasks wont be able to interupt the animation. Setting this to 'false' also gives this function more power to override other animations that are running. For example, squatting after a jump can be terminated.
- freezeLastFrame: if set to true after animation the last frame will be frozen, otherwise the animation will end and controls will return.
- blendTime: how long the animation will mixed with the previous one in milliseconds.
- retainPedState: will restore the task which was playing before calling this function. Useful for restoring the crouch task after animation ends. This may be extended in the future to support other states/tasks.
Returns
Returns true if succesful, false otherwise.
Examples
Click to collapse [-]
ServerThis example creates a ped, rotates him, and makes him walk:
function makePed() local thePed = createPed(56, 1, 1, 4, 315) setPedAnimation(thePed, "ped", "WOMAN_walknorm") end addCommandHandler("makemyped", makePed)
Click to collapse [-]
ServerThis example makes the player sit down and stand up using the command /sit.
local playerSitState = {} function toggleSit(thePlayer) local playerSitting = playerSitState[thePlayer] if (not playerSitting) then setPedAnimation(thePlayer, "ped", "seat_down", -1, false, false, false, false) playerSitState[thePlayer] = true -- store the player state in the table return true end setPedAnimation(thePlayer) -- if you use again this command then your character stand up playerSitState[thePlayer] = nil -- remove player sit state from table end addCommandHandler("sit", toggleSit) function onPlayerQuitClearSitState() playerSitState[source] = nil -- clear state at player quit, to prevent memory leak end addEventHandler("onPlayerQuit", root, onPlayerQuitClearSitState)
Changelog
Version | Description |
---|
1.5.7-9.16632 | Added retainPedState argument |
Issues
Issue ID | Description |
---|---|
#1110 | retainPedState in setPedAnimation() does not work when latency reduction is set to 1 |
#953 | setPedAnimation() "interrupt" and "time" has no effect in certain situations |
#467 | Ped animations don't sync for new players |
#463 | setPedAnimation() does not work when a ped is attached and floating in air |
#1173 | setPedAnimation() removes player jetpack |
#884 | setPedAnimation() messes up collisions of peds inside vehicles |
See Also
- addPedClothes
- getPedClothes
- removePedClothes
- createPed
- getPedAmmoInClip
- getPedArmor
- getPedFightingStyle
- getPedOccupiedVehicle
- getPedOccupiedVehicleSeat
- getPedStat
- getPedTarget
- getPedTotalAmmo
- getPedWalkingStyle
- getPedWeapon
- getPedWeaponSlot
- getPedContactElement
- getValidPedModels
- isPedChoking
- isPedDead
- isPedDoingGangDriveby
- isPedDucked
- isPedHeadless
- isPedInVehicle
- isPedOnFire
- isPedOnGround
- isPedWearingJetpack
- killPed
- removePedFromVehicle
- setPedAnimation
- setPedAnimationProgress
- setPedAnimationSpeed
- setPedArmor
- setPedDoingGangDriveby
- setPedFightingStyle
- setPedHeadless
- setPedOnFire
- setPedStat
- setPedWalkingStyle
- setPedWeaponSlot
- warpPedIntoVehicle