Jump to content

Congelar animação


Recommended Posts

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 ?

Link to comment
  • Moderators
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

Link to comment
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 ? )

Link to comment
  • Moderators

"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.

Link to comment

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...