Jump to content

Desabilitar animação para não interromper outra ação


Recommended Posts

Tenho 2 scripts, um de animação por binds e outro de assaltos, queria saber como faço para não cancelar a animação do roubo e fazer o jogador continuar fazendo o roubo, para ele não sair do freeze do roubo e pegar o dinheiro fora do local já, tentei com flags e getElementData e nada.

Animação

function animcruzabraco ()
	if getElementData ( localPlayer, "cruzabracodt" ) == false then
		setElementData(localPlayer, "cruzabracodt", true)
		setElementFrozen ( localPlayer, true )
		triggerServerEvent("animcruzabraco",localPlayer)
	else
		setElementFrozen ( localPlayer, false )
		setElementData(localPlayer, "cruzabracodt", false)
		triggerServerEvent("paraanim",localPlayer)
	end
end
bindKey("b", "both", animcruzabraco)

Roubo

function sistema1(source)
	if source then
	if isElementWithinMarker(source, loja1) then
						local weaponType = getPedWeapon ( source )
if weaponType == 0 then
    outputChatBox ( "#727272Você está desarmado. #464646Tenha uma arma para assaltar.", source, 255, 255, 255, true )
else
		outputChatBox(" ", source, 255, 255, 255, true)	
		outputChatBox("#cf3f3fINDFO: #e2e2e2Você está começando a roubar o banco Caixa #727272(Aguarde 4 minutos ou será punido). #e41c1cAs autoridades estão vindo.", source, 255, 255, 255, true)
		outputChatBox(" ", source, 255, 255, 255, true)	
		setElementVisibleTo( loja1ass, root, true)
		setElementFrozen( source, true )
		setPedAnimation( source, "bomber", "bom_plant_loop", 240000, true, false, false, false )
		setMarkerSize(loja1, 0)
		outputChatBox(" ", source, 255, 255, 255, true)	
		outputChatBox("#cf3f3fINFO: #e41c1cAtenção todas as autoridades. #e2e2e2O banco Caixa está sendo assaltado, compareçam ao local urgentemente!", root, 255, 255, 255, true)
		outputChatBox(" ", source, 255, 255, 255, true)		
		setTimer(function(source)
			givePlayerMoney(source, GranaBanco)
			setElementFrozen( source, false )
			setPlayerWantedLevel( source, 6 )
			outputChatBox("#cf3f3fINFO: #e41c1cVocê assaltou o banco Caixa e ganhou R$ "..GranaBanco, source, 255, 255, 255, true)
		end,240000,1,source)
		setTimer(function(source)
			setMarkerSize(loja1, 2.5)
			setElementVisibleTo( loja1ass, root, false)
		end,1800000,1,source)
	end
end
end
end
addCommandHandler("roubar", sistema1)

 

Link to comment
42 minutes ago, Nadion said:

Tenho 2 scripts, um de animação por binds e outro de assaltos, queria saber como faço para não cancelar a animação do roubo e fazer o jogador continuar fazendo o roubo, para ele não sair do freeze do roubo e pegar o dinheiro fora do local já, tentei com flags e getElementData e nada.

source é usado pra eventos dai não tenho certeza se pode gerar algum problema

outra coisa são os triggerServerEvent com elemento localPlayer, geralmente se usa resourceRoot, verifique isso tbm pra ver se tem algum warning/erro no debugscript 3

quanto a solução vc pode usar o setElementData com flag no proprio player/assaltante, quando inicia o assalto deixa como true e qnd termina poe false, quando o cara quiser acionar a animação verifica se ele tem a elementdata e se tiver cancela con return, deixei um codigo que nao testei mas deve estar td ok, comentei pra ficar mais facil ver onde editei

--CLIENT
function animcruzabraco ()
    if getElementData(localPlayer,"assaltando") then--checagem se o player tem elementdata assaltando, se tiver é cancelado
        outputChatBox("teste= animação impedida por elementdata")
        return
    end

    if getElementData ( localPlayer, "cruzabracodt" ) == false then
        setElementData(localPlayer, "cruzabracodt", true)
        setElementFrozen ( localPlayer, true )
        triggerServerEvent("animcruzabraco",localPlayer)--verifique
    else
        setElementFrozen ( localPlayer, false )
        setElementData(localPlayer, "cruzabracodt", false)
        triggerServerEvent("paraanim",localPlayer)--verifique
    end
end
bindKey("b", "both", animcruzabraco)

---
 

--SERVER
function sistema1(player)--coloquei player pq nao tenho certezz sobre usar source
    if player then
    if isElementWithinMarker(player, loja1) then
                        local weaponType = getPedWeapon ( player )
if weaponType == 0 then
    outputChatBox ( "#727272Você está desarmado. #464646Tenha uma arma para assaltar.", player, 255, 255, 255, true )
else
        outputChatBox(" ", player, 255, 255, 255, true)    
        outputChatBox("#cf3f3fINDFO: #e2e2e2Você está começando a roubar o banco Caixa #727272(Aguarde 4 minutos ou será punido). #e41c1cAs autoridades estão vindo.", player, 255, 255, 255, true)
        outputChatBox(" ", player, 255, 255, 255, true)    
        setElementVisibleTo( loja1ass, root, true)
        setElementFrozen( player, true )
        
        setElementData(player,"assaltando",true)-- aqui dou elementdata assaltando para o player, proibido de usar animacao b
        
        setPedAnimation( player, "bomber", "bom_plant_loop", 240000, true, false, false, false )
        setMarkerSize(loja1, 0)
        outputChatBox(" ", player, 255, 255, 255, true)    
        outputChatBox("#cf3f3fINFO: #e41c1cAtenção todas as autoridades. #e2e2e2O banco Caixa está sendo assaltado, compareçam ao local urgentemente!", root, 255, 255, 255, true)
        outputChatBox(" ", player, 255, 255, 255, true)        
        setTimer(function(player)
            givePlayerMoney(player, GranaBanco)--GranaBanco nao ta definida na codigo do post verifique se esta no seu codigo inteiro
            setElementFrozen( player, false )
            setPlayerWantedLevel( player, 6 )
            outputChatBox("#cf3f3fINFO: #e41c1cVocê assaltou o banco Caixa e ganhou R$ "..GranaBanco, player, 255, 255, 255, true)
            
            setElementData(player,"assaltando",false)-- aqui tiro elementdata assaltando do player, liberado pra usar animação b
            
        end,240000,1,player)
        setTimer(function(player)
            setMarkerSize(loja1, 2.5)
            setElementVisibleTo( loja1ass, root, false)
        end,1800000,1,player)
    end
end
end
end
addCommandHandler("roubar", sistema1)

 

 

Edited by _Ace
  • Thanks 1
Link to comment
2 hours ago, _Ace said:

source é usado pra eventos dai não tenho certeza se pode gerar algum problema

outra coisa são os triggerServerEvent com elemento localPlayer, geralmente se usa resourceRoot, verifique isso tbm pra ver se tem algum warning/erro no debugscript 3

quanto a solução vc pode usar o setElementData com flag no proprio player/assaltante, quando inicia o assalto deixa como true e qnd termina poe false, quando o cara quiser acionar a animação verifica se ele tem a elementdata e se tiver cancela con return, deixei um codigo que nao testei mas deve estar td ok, comentei pra ficar mais facil ver onde editei


--CLIENT
function animcruzabraco ()
    if getElementData(localPlayer,"assaltando") then--checagem se o player tem elementdata assaltando, se tiver é cancelado
        outputChatBox("teste= animação impedida por elementdata")
        return
    end

    if getElementData ( localPlayer, "cruzabracodt" ) == false then
        setElementData(localPlayer, "cruzabracodt", true)
        setElementFrozen ( localPlayer, true )
        triggerServerEvent("animcruzabraco",localPlayer)--verifique
    else
        setElementFrozen ( localPlayer, false )
        setElementData(localPlayer, "cruzabracodt", false)
        triggerServerEvent("paraanim",localPlayer)--verifique
    end
end
bindKey("b", "both", animcruzabraco)

---
 


--SERVER
function sistema1(player)--coloquei player pq nao tenho certezz sobre usar source
    if player then
    if isElementWithinMarker(player, loja1) then
                        local weaponType = getPedWeapon ( player )
if weaponType == 0 then
    outputChatBox ( "#727272Você está desarmado. #464646Tenha uma arma para assaltar.", player, 255, 255, 255, true )
else
        outputChatBox(" ", player, 255, 255, 255, true)    
        outputChatBox("#cf3f3fINDFO: #e2e2e2Você está começando a roubar o banco Caixa #727272(Aguarde 4 minutos ou será punido). #e41c1cAs autoridades estão vindo.", player, 255, 255, 255, true)
        outputChatBox(" ", player, 255, 255, 255, true)    
        setElementVisibleTo( loja1ass, root, true)
        setElementFrozen( player, true )
        
        setElementData(player,"assaltando",true)-- aqui dou elementdata assaltando para o player, proibido de usar animacao b
        
        setPedAnimation( player, "bomber", "bom_plant_loop", 240000, true, false, false, false )
        setMarkerSize(loja1, 0)
        outputChatBox(" ", player, 255, 255, 255, true)    
        outputChatBox("#cf3f3fINFO: #e41c1cAtenção todas as autoridades. #e2e2e2O banco Caixa está sendo assaltado, compareçam ao local urgentemente!", root, 255, 255, 255, true)
        outputChatBox(" ", player, 255, 255, 255, true)        
        setTimer(function(player)
            givePlayerMoney(player, GranaBanco)--GranaBanco nao ta definida na codigo do post verifique se esta no seu codigo inteiro
            setElementFrozen( player, false )
            setPlayerWantedLevel( player, 6 )
            outputChatBox("#cf3f3fINFO: #e41c1cVocê assaltou o banco Caixa e ganhou R$ "..GranaBanco, player, 255, 255, 255, true)
            
            setElementData(player,"assaltando",false)-- aqui tiro elementdata assaltando do player, liberado pra usar animação b
            
        end,240000,1,player)
        setTimer(function(player)
            setMarkerSize(loja1, 2.5)
            setElementVisibleTo( loja1ass, root, false)
        end,1800000,1,player)
    end
end
end
end
addCommandHandler("roubar", sistema1)

Hmm beleza, assim que der entro e testo o código e vejo se está dando certo. Sobre os triggerServerEvent's, se não me engano estavam corretos pois não lembro de receber warnings no debugscript porém posso estar errado. Mas obrigado pela resposta, já já retorno o que aconteceu

Edit¹: Creio que quando eu usava o setElementData e getElementData eu estava passando apenas a variável e o estado dela, estava esquecendo do jogador.

 

 

Edited by Nadion
Link to comment
4 hours ago, _Ace said:

source é usado pra eventos dai não tenho certeza se pode gerar algum problema

outra coisa são os triggerServerEvent com elemento localPlayer, geralmente se usa resourceRoot, verifique isso tbm pra ver se tem algum warning/erro no debugscript 3

quanto a solução vc pode usar o setElementData com flag no proprio player/assaltante, quando inicia o assalto deixa como true e qnd termina poe false, quando o cara quiser acionar a animação verifica se ele tem a elementdata e se tiver cancela con return, deixei um codigo que nao testei mas deve estar td ok, comentei pra ficar mais facil ver onde editei


--CLIENT
function animcruzabraco ()
    if getElementData(localPlayer,"assaltando") then--checagem se o player tem elementdata assaltando, se tiver é cancelado
        outputChatBox("teste= animação impedida por elementdata")
        return
    end

    if getElementData ( localPlayer, "cruzabracodt" ) == false then
        setElementData(localPlayer, "cruzabracodt", true)
        setElementFrozen ( localPlayer, true )
        triggerServerEvent("animcruzabraco",localPlayer)--verifique
    else
        setElementFrozen ( localPlayer, false )
        setElementData(localPlayer, "cruzabracodt", false)
        triggerServerEvent("paraanim",localPlayer)--verifique
    end
end
bindKey("b", "both", animcruzabraco)

---
 


--SERVER
function sistema1(player)--coloquei player pq nao tenho certezz sobre usar source
    if player then
    if isElementWithinMarker(player, loja1) then
                        local weaponType = getPedWeapon ( player )
if weaponType == 0 then
    outputChatBox ( "#727272Você está desarmado. #464646Tenha uma arma para assaltar.", player, 255, 255, 255, true )
else
        outputChatBox(" ", player, 255, 255, 255, true)    
        outputChatBox("#cf3f3fINDFO: #e2e2e2Você está começando a roubar o banco Caixa #727272(Aguarde 4 minutos ou será punido). #e41c1cAs autoridades estão vindo.", player, 255, 255, 255, true)
        outputChatBox(" ", player, 255, 255, 255, true)    
        setElementVisibleTo( loja1ass, root, true)
        setElementFrozen( player, true )
        
        setElementData(player,"assaltando",true)-- aqui dou elementdata assaltando para o player, proibido de usar animacao b
        
        setPedAnimation( player, "bomber", "bom_plant_loop", 240000, true, false, false, false )
        setMarkerSize(loja1, 0)
        outputChatBox(" ", player, 255, 255, 255, true)    
        outputChatBox("#cf3f3fINFO: #e41c1cAtenção todas as autoridades. #e2e2e2O banco Caixa está sendo assaltado, compareçam ao local urgentemente!", root, 255, 255, 255, true)
        outputChatBox(" ", player, 255, 255, 255, true)        
        setTimer(function(player)
            givePlayerMoney(player, GranaBanco)--GranaBanco nao ta definida na codigo do post verifique se esta no seu codigo inteiro
            setElementFrozen( player, false )
            setPlayerWantedLevel( player, 6 )
            outputChatBox("#cf3f3fINFO: #e41c1cVocê assaltou o banco Caixa e ganhou R$ "..GranaBanco, player, 255, 255, 255, true)
            
            setElementData(player,"assaltando",false)-- aqui tiro elementdata assaltando do player, liberado pra usar animação b
            
        end,240000,1,player)
        setTimer(function(player)
            setMarkerSize(loja1, 2.5)
            setElementVisibleTo( loja1ass, root, false)
        end,1800000,1,player)
    end
end
end
end
addCommandHandler("roubar", sistema1)

 

 

Funcionou certinho cara, creio que era o fato de eu estar esquecendo de passar o usuário como parâmetro mesmo, muito obrigado!!

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