
czarsight
Members-
Posts
29 -
Joined
-
Last visited
Everything posted by czarsight
-
Utilize a seguinte função para arredondar o número. math.floor()
-
Você vai precisar de: addEventHandler('OnPlayerWasted') spawnPlayer
-
Sim. addEventHandler('onPlayerWasted', root, function() local x,y,z = getElementPosition(source) local skin = getElementModel(source) corpo = createPed(skin, x,y,z) setTimer(function() setPedAnimation(corpo, 'ped', 'ko_shot_front', -1, false, false, false, true) end, 100, 1) end)
-
Com isso percebi que a animação só se aplica normalmente quando o ped já está criado. Eu estava tentando criar e ao mesmo tempo já setar a anim. Usei um setTimer para executar somente depois de alguns milissegundos e funcionou. Porém acabo tendo mais um problema, quando relogo no servidor ele volta a ficar em pé, ou até mesmo quando eu tomo distância e volto ao local.
-
Não. Ele fica em pé. Se eu altero o parâmetro loop para true, até funciona porém ele fica caindo e levantando. Eu gostaria que ele ficasse deitado no chão.
-
Sua suposição não falhou. . Valeu!
-
Então, eu tentei colocar a animação em mim mesmo e deu certo. No entanto gostaria de colocar em um NPC.
-
Estranho. Você tentou com o código acima? Vou tentar novamente.
-
setPedAnimation(corpo, 'ped', 'ko_shot_front', -1, false, false, false, true) Tentei isso mas não funcionou, ele fica de pé.
-
Como posso usar essas animações sem loop? Gostaria que o ped ficasse deitado no chão. Já tentei algo, mas tenho que ficar atualizando a todo instante com setPedAnimationProgress e setTimer. Acredito que essa não é a melhor forma de fazer isso.
-
Alguém sabe o "ID" da animação para deitar no chão? Aquela quando você morre.
-
local x,y,z = guiGetScreenSize() local largura, altura = 300, 30 --local time = getRealTime() function notificao() local msg = "Você ficou inconsciente..." local larguratexto = dxGetTextWidth(msg) local alturatexto = dxGetFontHeight() dxDrawRectangle(0, y/2-altura/2, largura, altura, tocolor(0,0,0,200)) dxDrawText(msg, largura/2-larguratexto/2, y/2-alturatexto/2, larguratexto, alturatexto, tocolor(255, 255, 255, 200)) end function notificao2() local msg = "Gravemente ferido" local larguratexto = dxGetTextWidth(msg) local alturatexto = dxGetFontHeight() dxDrawRectangle(0, y/2-altura/2, largura, altura, tocolor(0,0,0,200)) dxDrawText(msg, largura/2-larguratexto/2, y/2-alturatexto/2, larguratexto, alturatexto, tocolor(255, 100,100,255)) end function damaged(inimigo, inimigo_arma, corpo_parte, dano) local thePlayer = source local vidaPlayer = getElementHealth(thePlayer) if getElementData(thePlayer, "Inconsciente") ~= "true" and vidaPlayer <= 15 or dano >= 50 then cancelEvent() setElementData(thePlayer, "Inconsciente", "true") setElementFrozen(thePlayer, true) setElementHealth(thePlayer, 10) triggerServerEvent('animacao:Inconsciente', thePlayer) addEventHandler("onClientRender", root, notificao) playSoundFrontEnd (4) fadeCamera(false, 0) setTimer(function() fadeCamera(true, 10) removeEventHandler("onClientRender", root, notificao) end, 10000, 1) local random = math.random(0, 100) if random >= 0 and random <= 50 then setTimer(function() addEventHandler("onClientRender", root, notificao2) end, 15000, 1) setTimer(function() if getElementData(thePlayer, "Inconsciente") and getElementHealth(thePlayer) <= 15 then setElementData(thePlayer, "Inconsciente", "false") setElementHealth(thePlayer, 0) removeEventHandler("onClientRender", root, notificao2) end end, 50000, 1) else setTimer(function() removeEventHandler("onClientRender", root, notificao2) triggerServerEvent('animacao:Levantar', thePlayer) setElementData(thePlayer, "Inconsciente", "false") setElementFrozen(thePlayer, false) end, 15000, 1) end end end addEventHandler ("onClientPlayerDamage", getLocalPlayer(), damaged) Meu código funciona, porém estou tendo problemas com um Bug. Trata-se de um sistema de inconsciência que quando o player toma um dano considerável, ele não morre, perde a consciência e há uma probabilidade dele ficar no chão até a morte ou se levantar. No entanto, às vezes o player simplesmente quebra o fluxo e acaba levantando e morrendo ao mesmo tempo, como se estivesse entrado no IF e ELSE ao mesmo tempo e a "notificao2" não desaparece da tela. Me refiro a linha 43 por diante. Quem puder ajudar, ficarei grato.
-
[AJUDA] Verificar se o player está com a SKIN
czarsight replied to peu's topic in Programação em Lua
if getElementModel(jogador) == ID_SKIN then FicarInvisivel() end -
local spots = { createMarker(-1592.7145996094, 669.0302734375, 6.1875, "cylinder", 2, 255,255,255,50 ), createMarker(2487.6398925781, -1666.7453613281, 13.34375, "cylinder", 2, 255,255,255,50), } function FreezePlayer (player) local x,y,z = getElementPosition(source) setElementPosition(player, x,y,z+1) --setElementFrozen(player, true) -- Se quiser congelar o player no marker. outputChatBox("#FF0000✘ #ffffffINFO #FF0000✘➺ #ffffffTeste chat!", player, 255, 255, 255, true) end for i=1, #spots do addEventHandler("onMarkerHit", spots[i], FreezePlayer) end Dei uma limpada no código. Os markers já são criados na própria tabela.
-
Eu não entendi direito. Seja um pouco mais claro e talvez eu consiga te ajudar.
-
local spots = { { -1592.7145996094,669.0302734375,6.1875+1 }, { 2487.6398925781, -1666.7453613281, 13.34375 } } local spotsElements = {} for k,v in ipairs(spots) do marker = createMarker (v[1],v[2],v[3], "cylinder", 2, 255,255,255,50) table.insert(spotsElements, marker) end function FreezePlayer (source) outputChatBox("#FF0000✘ #ffffffINFO #FF0000✘➺ #ffffffTeste chat!", source , 255, 255, 255, true) end for i=1, #spotsElements do addEventHandler("onMarkerHit", spotsElements[i], FreezePlayer) end
-
Acho que cometi um equívoco, vou consertar e já mando o código novo.
-
for k,v in ipairs( spots ) do createMarker ( v[k][1],v[k][2],v[k][3], "cylinder", 2, 255,255,255,50 ) end "k" representa o índice, no caso temos dois. Ele irá passar pelo "índice 1" (primeira tabela com as coordenadas), vai pegar os valores 1,2,3 e depois com a mesma coisa com a segunda tabela.
-
Perfeito. Fiz aqui e tudo correu como o esperado. Obrigado!
-
Com setAccountData, posso guardar quantos dados eu quiser?
-
Gostaria de saber como posso "guardar" players, visto que eles já estão registrados no banco de dados. Parece que eu devo usar setElementData, mas não sei por onde começar. A ideia é tornar o player único, e um banco de dados para guardar se ele tem veículo, quantia de dinheiro... Alguém poderia me explicar sobre Elementos? Já li e reli o tópico que fala sobre, mas não consegui compreender quando devo usar ou como usar.
-
Tens de colocar um evento. Assim: addEventHandler("onPlayerJoin", root, spawnOnJoin)