Jump to content

Congelar jogador após animação


Recommended Posts

Estou querendo fazer com que o player inicie uma animação e ele fique congelado.

Isso foi o que eu fiz:

function anim (player)
  local animation = setPedAnimation (player, "int_house", "wash_up", 10000, true, false, false, false)
  if animation then
    setElementFrozen (player, true)
    setTimer (setElementFrozen, 10000, 1, player, false)
    end
  end
addEventHandler ("onMarkerHit", m1, anim)

 

Link to comment

Eu fiz um teste aqui e por algum motivo a animação só executa depois que digita o comando pela segunda vez, não sei se é uma falha da função, se quiser testar:

addCommandHandler ("teste", function (thePlayer, cmd)
	setPedAnimation (thePlayer, "int_house", "wash_up", 1000, false, false, nil, false)
	setElementFrozen (thePlayer, true)
	outputChatBox ("@TRAVADO", thePlayer, 255, 0, 0)
	setTimer (function ()
		outputChatBox ("@DESTRAVADO", thePlayer, 0, 255, 0)
		setElementFrozen (thePlayer, false)
		setPedAnimation (thePlayer)
	end, 1000, 1)
end)

Sobre o ficar travado esta funcionando, só não entendi realmente o porque da animação não funcionar.

Link to comment

Sim, testei agora e não funciona de qualquer maneira.

local myMarker = createMarker (-2511, -481, 90, "cylinder", 1.5, 255, 255, 0, 170)

addEventHandler ("onMarkerHit", myMarker, function (hitElement, matchingDimension) 
	setPedAnimation (hitElement, "int_house", "wash_up", 1000, false, false, false, false)
	setElementFrozen (hitElement, true)
	outputChatBox ("@TRAVADO", hitElement, 255, 0, 0)
	setTimer (function ()
		outputChatBox ("@DESTRAVADO", hitElement, 0, 255, 0)
		setElementFrozen (hitElement, false)
		setPedAnimation (hitElement)
	end, 1000, 1)
end)

 

Já vi gente falar disso do setPedAnimation mas nunca havia testado e realmente parece que tem uma falha.

Link to comment
  • Other Languages Moderators

Então cara. Eu testei aqui. Solução:

Aparentemente o setElementFrozen é capaz de cancelar animações. Quando vc anima o personagem na linha anterior, ao dar freeze na linha seguinte, cancela a animação. Trocando as linhas de lugar, corrige o problema.

local m1 = createMarker (-2511, -481, 90, "cylinder", 1.5, 255, 255, 0, 170) -- Marker do Jonas^ substitua pelo seu.

addEventHandler ("onMarkerHit", m1, function (hitElement, matchingDimension)
	setElementFrozen (hitElement, true)
	setPedAnimation (hitElement, "int_house", "wash_up", 10000, true, false, false, false)
	setTimer (setElementFrozen, 10000, 1, hitElement, false)
end)

 

Edited by Lord Henry
  • Thanks 1
Link to comment
11 minutes ago, Lord Henry said:

Então cara. Eu testei aqui. Solução:

Aparentemente o setElementFrozen é capaz de cancelar animações. Quando vc anima o personagem na linha anterior, ao dar freeze na linha seguinte, cancela a animação. Trocando as linhas de lugar, corrige o problema.


local m1 = createMarker (-2511, -481, 90, "cylinder", 1.5, 255, 255, 0, 170) -- Marker do Jonas^ substitua pelo seu.

addEventHandler ("onMarkerHit", m1, function (hitElement, matchingDimension)
	setElementFrozen (hitElement, true)
	setPedAnimation (hitElement, "int_house", "wash_up", 10000, true, false, false, false)
	setTimer (setElementFrozen, 10000, 1, hitElement, false)
end)

 

Estranho na wiki deveria informar que o frozen cancelava qualquer tipo de animação.

Link to comment
  • Other Languages Moderators

Sim, acabei de testar colocando o setElementFrozen após 1 segundo de animação, ele realmente cancela a animação ao ser chamado, no caso, a animação durou só aquele 1 segundo antes do freeze.

Link to comment
  • Other Languages Moderators

Se me permitem, eu faria um upgrade nesse script de congelar, ficaria assim:

local m1 = createMarker (-2511, -481, 90, "cylinder", 1.5, 255, 255, 0, 170) -- Marker do Jonas^ Brothers

addEventHandler ("onMarkerHit", m1, function (hitElement, matchingDimension) 
	if hitElement and getElementType (hitElement) == "player" and matchingDimension then
		setElementFrozen (hitElement, true)
		toggleAllControls (hitElement, false)
		setTimer (function ()
			setPedAnimation (hitElement, "int_house", "wash_up", 10000, true, false, false, false)
			setTimer (function ()
				setElementFrozen (hitElement, false)
				toggleAllControls (hitElement, true)
			end, 10000, 1)
		end, 1000, 1)
	end
end)

 

  • Haha 2
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...