Jump to content

Congelar animação


Recommended Posts

Posted

Salve rapaziada

Entao...eu tenho um script de algemar porem eu n gostei da animação dele, int eu troquei a original pela "gift_give" q é a animaçao do CJ dando flores pra namaorada dele...int essa animaçao começa com o CJ "escondendo" as flores nas costas dele e com isso parece q a mao dele esta algemada...eu queria congelar a animaçao nessa parte, qnd as maos do CJ estao pra tras.......alguem pode me ajudar com isso ?

Posted
setPedAnimation( ped, "kissing", "gift_give", -1, false, false, false )
setPedAnimationProgress( ped, "gift_give", .1 )

@OSKHNAV

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
16 hours ago, DNL291 said:

setPedAnimation( ped, "kissing", "gift_give", -1, false, false, false )
setPedAnimationProgress( ped, "gift_give", .1 )

@OSKHNAV

Mano n consegui...a animaçao n congelou ☹

  • Moderators
Posted

Tentou com 0.1 no lugar de .1?

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
function setPedFreezedAnimation( ... )

	local args = { ... }
	function animRender( ped )
		setPedAnimationProgress( ped, args[3], .1 )
		setTimer( animRender, 50, 1, ped )
	end

	setPedAnimation( ... )
	setTimer ( animRender, 50, 1, args[1] )
end

Apenas substitua os nomes, sePedAnimation com o da função acima.

 

16 minutes ago, Lord Henry said:

Tentou com 0.1 no lugar de .1?

Lua vai interpretar como 0.1, o valor assim também é aceito. Por exemplo, .199 será o mesmo que 0.199

Please do not PM me with scripting related question nor support, use the forums instead.

Posted
54 minutes ago, DNL291 said:

function setPedFreezedAnimation( ... )

	local args = { ... }
	function animRender( ped )
		setPedAnimationProgress( ped, args[3], .1 )
		setTimer( animRender, 50, 1, ped )
	end

	setPedAnimation( ... )
	setTimer ( animRender, 50, 1, args[1] )
end

Apenas substitua os nomes, sePedAnimation com o da função acima.

 

Lua vai interpretar como 0.1, o valor assim também é aceito. Por exemplo, .199 será o mesmo que 0.199

Eu tentei botar o 0 na frente do ponto mas n deu certo ( oq é esse "args" q vc botou no script ? )

  • Moderators
Posted

Testei só com isso e já funcionou. Ele fica parado no primeiro frame da animação.

setPedAnimation (source, "kissing", "gift_give", -1, false, false, false)

 

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted
5 hours ago, Lord Henry said:

Testei só com isso e já funcionou. Ele fica parado no primeiro frame da animação.


setPedAnimation (source, "kissing", "gift_give", -1, false, false, false)

 

Eu ja consegui congelar mas n foi desse jeito

Posted

"args" vai retornar uma tabela com os parâmetros passados. Esse código você só vai colar dentro do seu script, só chame a função setPedFreezedAnimation:

local pedsAnim = {}

function setPedFreezedAnimation( ... )

	local args = { ... }
	function animRender( ped )
		setPedAnimationProgress( ped, args[3], .1 )
	end

	if setPedAnimation( ... ) then
		if #args == 1 then
			
			if pedsAnim[ args[1] ] then
				if isTimer(pedsAnim[ args[1] ]) then
					killTimer(pedsAnim[ args[1] ])
				end
				pedsAnim[ args[1] ] = nil
			end
		elseif #args >= 3 then

			pedsAnim[ args[1] ] = setTimer ( animRender, 20, 0, args[1] )
		end
	end
end

Atualizei o código. Você vai precisar parar chamando novamente, aqui está um código completo com um comando para a anim pra parar a anim:

addCommandHandler( "animstart", function(p)

	setPedFreezedAnimation( p, "kissing", "gift_give", -1, false, false, false )
end)

addCommandHandler( "animstop", function(p)

	setPedFreezedAnimation( p )
end)

local pedsAnim = {}

function setPedFreezedAnimation( ... )

	local args = { ... }
	function animRender( ped )
		setPedAnimationProgress( ped, args[3], .1 )
	end

	if setPedAnimation( ... ) then
		if #args == 1 then

			if pedsAnim[ args[1] ] then
				if isTimer(pedsAnim[ args[1] ]) then
					killTimer(pedsAnim[ args[1] ])
				end
				pedsAnim[ args[1] ] = nil
			end
		elseif #args >= 3 then

			pedsAnim[ args[1] ] = setTimer ( animRender, 20, 0, args[1] )
		end
	end
end

addEventHandler( "onPlayerQuit", root, function()
	if pedsAnim[source] then
		if isTimer(pedsAnim[source]) then
			killTimer(pedsAnim[source])
		end
		pedsAnim[source] = nil
	end
end )

Corrigi pra parar o timer quando para a animação e adicionai isso no "onPlayerQuit".

5 hours ago, Lord Henry said:

Testei só com isso e já funcionou. Ele fica parado no primeiro frame da animação.


setPedAnimation (source, "kissing", "gift_give", -1, false, false, false)

 

Eu tentei fazer alguns esquemas mas não funciona, provavelmente funcionou depois de você ter tentando uma vez e esperar a anim terminar, daí se fizer de novo "funciona". Só vai funcionar de verdade setando o progresso da anim com um timer.

Please do not PM me with scripting related question nor support, use the forums instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...