wesssley Posted May 27, 2023 Share Posted May 27, 2023 bem, tenho o seguinte código: function givePrize(player, source) local randomprize = math.random(prizeMin, prizeMax) local Sujo = getElementData(player, "DSujo") or 0 setElementData(player, "DSujo", Sujo + randomprize) setPedAnimation(player, "ROB_BANK", "CAT_Safe_Rob", true, false, false, false) outputChatBox("Você coletou #00ff00R$" ..randomprize.. "", player, 255, 255, 255, true) end a função é no server, porém, é chamada no Client sempre que o jogador passa por um marker, queria fazer com que o jogador ficasse dois minutos fazendo a animação e só após o termino desses dois minutos ele recebesse a recompensa e a mensagem aparecesse no chat. Tentei: setTimer(function() local Sujo = getElementData(player, "DSujo") or 0 setElementData(player, "DSujo", Sujo + randomprize) end, 10000, 1) end mas não consegui, poderiam me ajudar nisso, por gentileza?! Link to comment
Other Languages Moderators Lord Henry Posted May 28, 2023 Other Languages Moderators Share Posted May 28, 2023 Tipo isso? local prizeMin, prizeMax = 5000, 10000 -- Prêmio mínimo e máximo. local segundos = 120 -- Duração da animação de roubo até o prêmio. function givePrize(thePlayer) local randomprize = math.random(prizeMin, prizeMax) -- Gera um valor aleatório entre o valor mínimo e máximo de prêmio. local sujo = getElementData(thePlayer, "DSujo") or 0 -- Obtém a quantidade atual de dinheiro sujo do jogador. setElementData(thePlayer, "DSujo", sujo + randomprize) -- Aumenta a quantidade de dinheiro sujo no jogador. -- givePlayerMoney(thePlayer, randomprize) -- Usado para testes sem o dinheiro sujo. Dá dinheiro normal ao jogador. setPedAnimation(thePlayer) -- Remove a animação do jogador. outputChatBox("Você coletou #00ff00R$ "..randomprize.."#ffffff de dinheiro sujo.", thePlayer, 255, 255, 255, true) theTimer = nil -- Anula a variável do timer para liberar espaço na memória. end theMarker = createMarker(2487, -1667, 12.4, "cylinder", 1.5) -- Cria um marker na Grove Street. addEventHandler("onMarkerHit", theMarker, function (hitElement, dimension) -- Ativa essa função quando algum elemento colidir no theMarker. if getElementType(hitElement) == "player" and dimension then -- Se o elemento que colidiu no marker for um player e estiver na mesma dimensão que o marker, então: if isTimer(theTimer) then return end -- Se já tem alguém roubando, cancela a função e nada acontece. setPedAnimation(hitElement, "ROB_BANK", "CAT_Safe_Rob", true, false, false, false) -- Seta essa animação de roubo em loop no jogador que colidiu no marker. theTimer = setTimer(givePrize, 1000 * segundos, 1, hitElement) -- Inicia o timer para dar o prêmio ao jogador após X segundos. Após esse tempo, a função givePrize será chamada. end end) 1 1 Link to comment
wesssley Posted May 30, 2023 Author Share Posted May 30, 2023 Não era exatamente desse jeito, mas peguei oque você mandou e usei como base e deu certo aqui, valeu, Henry !!! Link to comment
Recommended Posts