Jump to content

Animação somente para o player


Recommended Posts

Tipo a animação é somente o player que faz que consegue ver, eu vejo a minha mais não vejo os outros fazendo.
 

local aberto = false


function abrircelular ()
   if aberto == false then
      aberto = true
      setPedAnimation (localPlayer, "ped","phone_in", 1000, false, false, false, true)
      setPedAnimationProgress(localPlayer, "phone_in", 0.8)	  
      setPedWeaponSlot(localPlayer, 0)
      phone = createObject(330, 0, 0, 0, 0, 0, 0)
      exports.bone_attach:attachElementToBone(phone, localPlayer, 12, 0, 0.01, 0.03, -15, 270, -15)
      setElementDimension(phone, getElementDimension(localPlayer))
      setElementInterior(phone, getElementInterior(localPlayer))
	  
      animTimer = setTimer(function() 
         setPedAnimationProgress(localPlayer, "phone_in", 0.8)
      end, 500, 0)
	  
   else
      removePhone() 
   end
end
bindKey ( "F1", "down", abrircelular) 
addCommandHandler ( "celular", abrircelular)

function removePhone ()
   if aberto == true then
      if isElement(phone) then
         destroyElement(phone)
      end
      if isTimer(animTimer) then
         killTimer(animTimer)
      end
      aberto = false
      setPedAnimation (localPlayer, "ped", "phone_out", 50, false, false, false, false)
   end
end
addEvent("remover_celular", true)
addEventHandler("remover_celular", getRootElement(), removePhone )

Não sei se é por conta da variável.
Agradecimento ao member Angelo Pereira que me ajudou.

Link to comment
1 hour ago, Angelo Pereira said:

A animação só vai sincronizar do lado server, então se você utilizar triggerServerEvent e executa a animação lá, dará certo.

por exemplo assim? 

-- server-side

local aberto = false


function abrircelular ()
   if aberto == false then
      aberto = true
      setPedAnimation (localPlayer, "ped","phone_in", 1000, false, false, false, true)
      setPedAnimationProgress(localPlayer, "phone_in", 0.8)	  
      setPedWeaponSlot(localPlayer, 0)
      phone = createObject(330, 0, 0, 0, 0, 0, 0)
      exports.bone_attach:attachElementToBone(phone, localPlayer, 12, 0, 0.01, 0.03, -15, 270, -15)
      setElementDimension(phone, getElementDimension(localPlayer))
      setElementInterior(phone, getElementInterior(localPlayer))
      triggerClientEvent("openPhone", getRootElement())   
      animTimer = setTimer(function() 
         setPedAnimationProgress(localPlayer, "phone_in", 0.8)
      end, 500, 0)
	  
   else
      removePhone() 
   end
end
bindKey ( "F1", "down", abrircelular) 
addCommandHandler ( "celular", abrircelular)

ai no client no caso eu teria que criar uma função para os:
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), openPhone) por exemplo?

Link to comment
-- Client
triggerServerEvent("openPhone", localPlayer)
-- Server
function animacao_open_phone ()
--
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), animacao_open_phone)
  
---/> Caso não funcionar, tente :

-- Client
triggerServerEvent("openPhone", getLocalPlayer(), localPlayer)
-- Server
function animacao_open_phone (source)
--
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), animacao_open_phone)

 

  • Thanks 1
Link to comment
4 hours ago, Angelo Pereira said:

-- Client
triggerServerEvent("openPhone", localPlayer)
-- Server
function animacao_open_phone ()
--
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), animacao_open_phone)
  
---/> Caso não funcionar, tente :

-- Client
triggerServerEvent("openPhone", getLocalPlayer(), localPlayer)
-- Server
function animacao_open_phone (source)
--
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), animacao_open_phone)

 

no debugscript 3 aparece : trigged serverside event openPhone, but event not added serverside.
mais a animação ainda funciona

 

Edited by Deniel
Link to comment
20 minutes ago, Angelo Pereira said:

Como você esta fazendo?

-- client

local aberto = false


function abrircelular ()
   if aberto == false then
      aberto = true
	  triggerServerEvent("openPhone", getLocalPlayer(), localPlayer)
      setPedAnimation (localPlayer, "ped","phone_in", 1000, false, false, false, true)
      setPedAnimationProgress(localPlayer, "phone_in", 0.8)	  
      setPedWeaponSlot(localPlayer, 0)
      phone = createObject(330, 0, 0, 0, 0, 0, 0)
      exports.bone_attach:attachElementToBone(phone, localPlayer, 12, 0, 0.01, 0.03, -15, 270, -15)
      setElementDimension(phone, getElementDimension(localPlayer))
      setElementInterior(phone, getElementInterior(localPlayer))     
      animTimer = setTimer(function() 
         setPedAnimationProgress(localPlayer, "phone_in", 0.8)
      end, 500, 0)
	  
   else
      removePhone() 
   end
end
bindKey ( "F1", "down", abrircelular) 
addCommandHandler ( "celular", abrircelular)

-- server

function animacao_open_phone ()
   if aberto == false then
      aberto = true
      setPedAnimation (localPlayer, "ped","phone_in", 1000, false, false, false, true)
      setPedAnimationProgress(localPlayer, "phone_in", 0.8)	  
      setPedWeaponSlot(localPlayer, 0)
      phone = createObject(330, 0, 0, 0, 0, 0, 0)
      exports.bone_attach:attachElementToBone(phone, localPlayer, 12, 0, 0.01, 0.03, -15, 270, -15)
      setElementDimension(phone, getElementDimension(localPlayer))
      setElementInterior(phone, getElementInterior(localPlayer))   
      animTimer = setTimer(function() 
         setPedAnimationProgress(localPlayer, "phone_in", 0.8)
      end, 500, 0)
	  
   else
      removePhone() 
   end
end
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), animacao_open_phone)

 

Link to comment
37 minutes ago, Deniel said:

-- EXEMPLO [1]
-- client-side

local aberto = false

function abrircelular ()
   if aberto == false then
      aberto = true
	  triggerServerEvent("openPhone", getLocalPlayer(), localPlayer)
      --setPedAnimation (localPlayer, "ped","phone_in", 1000, false, false, false, true)
      --setPedAnimationProgress(localPlayer, "phone_in", 0.8)	  
      setPedWeaponSlot(localPlayer, 0)
      phone = createObject(330, 0, 0, 0, 0, 0, 0)
      exports.bone_attach:attachElementToBone(phone, localPlayer, 12, 0, 0.01, 0.03, -15, 270, -15)
      setElementDimension(phone, getElementDimension(localPlayer))
      setElementInterior(phone, getElementInterior(localPlayer))     
      --animTimer = setTimer(function() 
      --   setPedAnimationProgress(localPlayer, "phone_in", 0.8)
      --end, 500, 0)
   else
      removePhone() 
   end
end
bindKey ( "F1", "down", abrircelular) 
addCommandHandler ( "celular", abrircelular)

function removePhone ()
   if aberto == true then
      if isElement(phone) then
         destroyElement(phone)
      end
      if isTimer(animTimer) then
         killTimer(animTimer)
      end
      aberto = false
      --setPedAnimation (localPlayer, "ped", "phone_out", 50, false, false, false, false)
	  triggerServerEvent("closePhone", getLocalPlayer(), localPlayer)
   end
end
addEvent("remover_celular", true)
addEventHandler("remover_celular", getRootElement(), removePhone )

-- server-side ( Você preciar criar outra pasta e não adiciona no client ).

local animTimer = {} --/> e disto?

function animacao_open_phone ( source )
   setPedAnimation (source, "ped","phone_in", 1000, false, false, false, true)
   setPedAnimationProgress(source, "phone_in", 0.8)	   
   animTimer[source] = setTimer(function ( )  --/> Realmente precisa desse tempo em 0,5s?...
      setPedAnimationProgress(source, "phone_in", 0.8) --/> Disto?
   end, 500, 0) --/> E disto?
end
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), animacao_open_phone)

function desativar_animacao ( source )
    if isTimer(animTimer[source]) then killTimer(animTimer[source]) end
    setPedAnimation ( source , "ped", "phone_out", 50, false, false, false, false)
end
addEvent("closePhone", true)
addEventHandler("closePhone", getRootElement(), desativar_animacao)

 

1. Você precisa criar outro arquivo server.Lua e então adicionar o server-side e não adicionar isto no client (Obviamente o erro já esta ai).

2. Você esta enviando códigos para o server, não existe mais localPlayer no server-side.

2. Não sou bom com explicações, enfim :

Deixarei um 1 exemplo que te ajudará a entender, e você intendera seus erros.

-- EXEMPLO [1]
-- client-side

local aberto = false

function abrircelular ()
   if aberto == false then
      aberto = true
	  triggerServerEvent("openPhone", getLocalPlayer(), localPlayer)
      --setPedAnimation (localPlayer, "ped","phone_in", 1000, false, false, false, true)
      --setPedAnimationProgress(localPlayer, "phone_in", 0.8)	  
      setPedWeaponSlot(localPlayer, 0)
      phone = createObject(330, 0, 0, 0, 0, 0, 0)
      exports.bone_attach:attachElementToBone(phone, localPlayer, 12, 0, 0.01, 0.03, -15, 270, -15)
      setElementDimension(phone, getElementDimension(localPlayer))
      setElementInterior(phone, getElementInterior(localPlayer))     
      --animTimer = setTimer(function() 
      --   setPedAnimationProgress(localPlayer, "phone_in", 0.8)
      --end, 500, 0)
   else
      removePhone() 
   end
end
bindKey ( "F1", "down", abrircelular) 
addCommandHandler ( "celular", abrircelular)

function removePhone ()
   if aberto == true then
      if isElement(phone) then
         destroyElement(phone)
      end
      if isTimer(animTimer) then
         killTimer(animTimer)
      end
      aberto = false
      --setPedAnimation (localPlayer, "ped", "phone_out", 50, false, false, false, false)
	  triggerServerEvent("closePhone", getLocalPlayer(), localPlayer)
   end
end
addEvent("remover_celular", true)
addEventHandler("remover_celular", getRootElement(), removePhone )

-- server-side ( Você preciar criar outra pasta e não adiciona no client ).

local animTimer = {} --/> e disto?

function animacao_open_phone ( source )
   setPedAnimation (source, "ped","phone_in", 1000, false, false, false, true)
   setPedAnimationProgress(source, "phone_in", 0.8)	   
   animTimer[source] = setTimer(function ( )  --/> Realmente precisa desse tempo em 0,5s?...
      setPedAnimationProgress(source, "phone_in", 0.8) --/> Disto?
   end, 500, 0) --/> E disto?
end
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), animacao_open_phone)

function desativar_animacao ( source )
    if isTimer(animTimer[source]) then killTimer(animTimer[source]) end
    setPedAnimation ( source , "ped", "phone_out", 50, false, false, false, false)
end
addEvent("closePhone", true)
addEventHandler("closePhone", getRootElement(), desativar_animacao)

-- Esse tempo precisa ser verifica em um onPlayerQuit (Se não o joãozinho sai do servidor com o celular aberto, será 0,5s de floods :(

Bom, deixarei explicações, e um melhor jeito de fazer, mais organizado e que não prejudique no desempenho, com os especialista @Lord Henry

Edited by Angelo Pereira
  • Thanks 1
Link to comment
58 minutes ago, Angelo Pereira said:

1. Você precisa criar outro arquivo server.Lua e então adicionar o server-side e não adicionar isto no client (Obviamente o erro já esta ai).

2. Você esta enviando códigos para o server, não existe mais localPlayer no server-side.

2. Não sou bom com explicações, enfim :

Deixarei um 1 exemplo que te ajudará a entender, e você intendera seus erros.


-- EXEMPLO [1]
-- client-side

local aberto = false

function abrircelular ()
   if aberto == false then
      aberto = true
	  triggerServerEvent("openPhone", getLocalPlayer(), localPlayer)
      --setPedAnimation (localPlayer, "ped","phone_in", 1000, false, false, false, true)
      --setPedAnimationProgress(localPlayer, "phone_in", 0.8)	  
      setPedWeaponSlot(localPlayer, 0)
      phone = createObject(330, 0, 0, 0, 0, 0, 0)
      exports.bone_attach:attachElementToBone(phone, localPlayer, 12, 0, 0.01, 0.03, -15, 270, -15)
      setElementDimension(phone, getElementDimension(localPlayer))
      setElementInterior(phone, getElementInterior(localPlayer))     
      --animTimer = setTimer(function() 
      --   setPedAnimationProgress(localPlayer, "phone_in", 0.8)
      --end, 500, 0)
   else
      removePhone() 
   end
end
bindKey ( "F1", "down", abrircelular) 
addCommandHandler ( "celular", abrircelular)

function removePhone ()
   if aberto == true then
      if isElement(phone) then
         destroyElement(phone)
      end
      if isTimer(animTimer) then
         killTimer(animTimer)
      end
      aberto = false
      --setPedAnimation (localPlayer, "ped", "phone_out", 50, false, false, false, false)
	  triggerServerEvent("closePhone", getLocalPlayer(), localPlayer)
   end
end
addEvent("remover_celular", true)
addEventHandler("remover_celular", getRootElement(), removePhone )

-- server-side ( Você preciar criar outra pasta e não adiciona no client ).

local animTimer = {} --/> e disto?

function animacao_open_phone ( source )
   setPedAnimation (source, "ped","phone_in", 1000, false, false, false, true)
   setPedAnimationProgress(source, "phone_in", 0.8)	   
   animTimer[source] = setTimer(function ( )  --/> Realmente precisa desse tempo em 0,5s?...
      setPedAnimationProgress(source, "phone_in", 0.8) --/> Disto?
   end, 500, 0) --/> E disto?
end
addEvent("openPhone", true)
addEventHandler("openPhone", getRootElement(), animacao_open_phone)

function desativar_animacao ( source )
    if isTimer(animTimer[source]) then killTimer(animTimer[source]) end
    setPedAnimation ( source , "ped", "phone_out", 50, false, false, false, false)
end
addEvent("closePhone", true)
addEventHandler("closePhone", getRootElement(), desativar_animacao)

-- Esse tempo precisa ser verifica em um onPlayerQuit (Se não o joãozinho sai do servidor com o celular aberto, será 0,5s de floods :(

Bom, deixarei explicações, e um melhor jeito de fazer, mais organizado e que não prejudique no desempenho, com os especialista @Lord Henry

nossa.. isso por um instante passou por minha cabeça de criar outros 2 scripts separados kkkk, to tentando aprender ainda devagar eu vou.
agora todos conseguem ver a animação, porém o celular não aparece na mão, mais é o de menos isso.
de coração mesmo mano, Muito Obrigado.

Link to comment
17 minutes ago, Deniel said:

nossa.. isso por um instante passou por minha cabeça de criar outros 2 scripts separados kkkk, to tentando aprender ainda devagar eu vou.
agora todos conseguem ver a animação, porém o celular não aparece na mão, mais é o de menos isso.
de coração mesmo mano, Muito Obrigado.

Não dois scripts e sim dois arquivos no mesmo recurso, um para o server, outro para o client.

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