Jump to content

Rakashy

Members
  • Posts

    97
  • Joined

  • Last visited

  • Days Won

    1

Rakashy last won the day on May 22 2021

Rakashy had the most liked content!

1 Follower

Details

  • Gang
    Scripter
  • Location
    Brazil
  • Occupation
    Autônomo
  • Interests
    Conhecimento

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Rakashy's Achievements

Punk-@ss B*tch

Punk-@ss B*tch (12/54)

10

Reputation

  1. Bom, aí está a base do server-side. Agora crie um client-Side com dxDraw para fazer a tela preta com msg e chame ela aonde está indicado local PlayersCaidos = {} addEventHandler("onPlayerWasted", root, function() if getElementData(source, "CAIDO") == true then return end setElementHealth(source,10) setElementData(source, "CAIDO", true) triggerClientEvent("EVENTO QUE INICIA A TELA PRETA COM MSG", source) PlayersCaidos[source] = setTimer(function() setElementData(source, "CAIDO", false) triggerClientEvent("EVENTO QUE FINALIZA A TELA PRETA COM MSG", source) PlayersCaidos[source] = nil end, 2*60000, 1) end)
  2. Você pode utilizar setElementData(), e getElementData() para isso. Para Adições você utiliza setElementData(ElementPlayer, "ELEMENTBANCO", getElementData(ElementPlayer, "ELEMENTBANCO") + VALOR ADICIONADO) Para remoção você utiliza : if getElementData(ElementPlayer, "ELEMENTBANCO") - VALOR REMOVIDO >= 0 then setElementData(ElementPlayer, "ELEMENTBANCO", getElementData(ElementPlayer, "ELEMENTBANCO") - VALOR REMOVIDO) else Mensagem("Você não pode remover esta quantidade de dinheiro") end Te dei os meios, não é algo difícil de se fazer, mas você precisara criar uma base em dx para o banco. Boa sorte!
  3. An "easy" alternative would be to use elementData to set a value and check this value on the client side with getElementData
  4. Bom, gostaria de saber se as animações personalizadas impedem a movimentação do ped ou se existe algo a se fazer para contornar isso. O que acontece é que mesmo utilizando uma animação que permita a movimentação do ped como base, ao inserir no jogo com engineLoadIFP() o personagem simplesmente não se move, ele fica "girando", você aperta as teclas de movimentação mas não sai do lugar. Antes que alguém diga da animação "crry_prtial" eu utilizei justamente ela como base, e para terem uma ideia, se você pegar ela original e carregar por fora com o engineLoadIFP sem alterar NADA, ela tbm fica "bugada" impedindo a movimentação, girando apenas os eixos rotacionais do ped.
  5. local Contas = dbPoll(dbQuery(database, "SELECT * FROM Contas WHERE username = ?", USUARIO), -1) -- Substitua pelos dados da sua DB Connection if type ( Contas ) == 'table' and #Contas == 0 or not Contas then -- se não houver o usuário na tabela então ele execulta as funções abaixo -- o que irá executar caso o usuário não exista else -- o que irá executar caso o usuário já exista. end Se ajudei da um UP aí, o código é funcional, e fácil, utilizo para fazer algumas verificações em scripts meus.
  6. Então, estou desenvolvendo uma scroll bar para meu inventário e estou com um problema para fazer os itens desaparecerem conforme a barra é rodada, já está funcional, pra cima/baixo, só que mesmo colocando o dxSetRenderTarget() os itens continuam subindo/descendo infinitamente, sem desaparecer da tela, alguém pode me dar uma força aí ? Sei que provavelmente é algo besta, más quem puder ajudar, agradeço O que acontece : ao invés de os itens sumirem ao sair do target render, eles continuam aparecendo, mesmo se eu subir ou descer a scroll Código : local x, y = guiGetScreenSize() local renderBox = dxCreateRenderTarget(606, 531, true) local offset = 0 if renderBox then dxSetRenderTarget( renderBox, true ) -- ITENS QUE QUERO QUE RENDERIZEM DENTRO DA BOX dxDrawRectangle(514*sx + Slot_X * (120*sx), 518*sy + Slot_Y * (130*sy)+offset, 116*sx, 28*sy, tocolor(5, 0, 2, 105), true) dxDrawImage(528*sx + Slot_X * (120*sx), 440*sy + Slot_Y * (130*sy)+offset, 75*sx, 70*sy, "gfx/items/"..tostring(value.img)..".png", 0, 0, 0, tocolor(255, 255, 255, 255), true) dxDrawText(tostring(value.nome), 542*sx + Slot_X * (120*sx), 525*sy + Slot_Y * (130*sy)+offset, 502*sx, 308*sy, tocolor(255, 255, 255, 255), 1.00*sy, "default", "left", "top", false, false, true, false, false dxDrawText(tonumber(value.peso), 516*sx + Slot_X * (120*sx), 425*sy + Slot_Y * (130*sy)+offset, 540*sx, 310*sy, tocolor(255, 255, 255, 255), 1.00*sy, "default", "left", "top", false, false, true, false, false) --FIM ITENS QUE RENDERIZAM dxSetRenderTarget() -- DRAW RENDERBOX dxDrawImage(509*sx, 423*sy, 606*sx, 531*sy, myRenderTarget,0,0,0, tocolor(255,255,255,0)) end
  7. Faça uma tabela contendo as cores RGB e puxe a tabela com um math.random no DX, não é uma coisa difícil de se fazer
  8. Da um likezin ae pra ajudar na minha rep entao kkk, tmj, qlq duvida chama inbox
  9. addEventHandler("onResourceStart",resourceRoot, function() local IP = getServerConfigSetting("serverip") -- puxa o IP do servidor local Script = getResourceName(getThisResource()) if isObjectInACLGroup( "resource." .. Script, aclGetGroup ( "Admin" ) ) then -- Verifica se o script está na ACL ADM ProtecaoConnect = dbConnect( "mysql", "dbname=NOME DO BANCO DE DADOS;host=URL OU IP DE CONEXÃO", "USUÁRIO", "SENHA" ) local Dados = dbPoll(dbQuery(ProtecaoConnect, "SELECT * FROM (Tabela que contém os ips) WHERE IP = ?", IP), -1) -- Puxa os dados de IPS if type ( Dados ) == 'table' and #Dados == 0 or not Dados then -- Se não houver resultado para o IP ele da stop no script outputDebugString("#33FF58[PROTEÇÃO] #DA1B1BEndereço IP Não autorizado!") stopResource(getThisResource()) else -- Caso o resultado retorne igual a 1 (O Ip estiver na db) então ele autoriza o script outputDebugString("#33FF58[PROTEÇÃO] #DA1B1BEndereço IP Autorizado com #33FF58sucesso#DA1B1B!") end else outputDebugString("Adicione o resource a ACL ADMIN para utilizar!") cancelEvent(true) end end) -- Necessário colocar o script na acl ADM para iniciar. -- Verificação simples que checa a conexão com o banco de dados function checkConnection() if not ProtecaoConnect then outputDebugString("Não foi possível verificar a conexão MYSQL com a proteção, o script será encerrado!") stopResource(getThisResource()) end end setTimer(checkConnection, 60000, 0) Basta criar o banco de dados e adicionar os endereços IP que deseja, ele verifica se o IP está na tabela, se não estiver cancela o script. Se ajudei, de um agradecimento, tmj.
  10. Opa, to com um probleminha e queria uma opinião de pessoas que entendem melhor do que eu.. Estou desenvolvendo um sistema de inventário baseado no sistema do FiveM, o sistema possui 5 slots rápidos e meu intuito era arrastar os itens do inventário para esses slots rápidos que seriam puxados com bind 1 ao 5, o problema é que não estou conseguindo fazer o sistema de arrastar funcionar como devia, ao invés de arrastar 1 item, ele puxa todos, como na imagem abaixo : Só pra esclarecer, os itens do inventário são puxados de um arquivo config, e no dx são gerados da seguinte forma : dxDrawImage(x + Slot_X * (120*sx), y + Slot_Y * (130*sy), w, h, "gfx/items/"..tostring(value.img)..".png", 0, 0, 0, tocolor(255, 255, 255, 255), true) O valor x, y, w, h são referentes a posição do mouse. Como os itens são gerados no inventário a partir de uma tabela, acho que está dando conflito, e acaba puxando todas as imagens ao invés de apenas 1, abaixo o código de mover que estou utilizando : screenW, screenH = guiGetScreenSize() x,y,w,h = 548,438,75,70 -- Aqui seria a posição do mouse, no caso teria que referenciar essa posição com todos os ícones gerados no inventário, e por estar uma posição fixa, creio que seja o motivo pra estar puxando todos os ícones. slots = { {179, 184, 143, 163, imgx = 200, imgy = 200}, {364, 184, 143, 163, imgx = 385, imgy = 200} } showCursor(true) temp = {} movendo = false addEventHandler("onClientClick", root, function(b, s) if b == "left" then if s == "down" then if isMouseInPosition(x,y,w,h) then movendo = true addEventHandler("onClientRender", root, Mover) end else if movendo then movendo = false --> criando uma variavel local para uso mais a frente local inSlot = false --> loop para verificar se eu soltei o item dentro de algum slot for i,v in ipairs(slots) do --> verificar se o mouse estava dentro de algum slot quando foi solto if isMouseInPosition(v[1], v[2], v[3], v[4]) then --> define a variavel para saber que o item foi para um novo slot inSlot = true --> define a posição da imagem do item para a posição correta dentro do novo slot x,y = v.imgx, v.imgy break end end --> verificar se a imagem não foi solta em um slot e retorna para o local de origem if not inSlot then x,y = temp[1], temp[2] end --> zerar tudo para o proximo item ser movido temp = {} difx, dify = nil,nil removeEventHandler("onClientRender", root, Mover) end end end end) difx, dify = nil,nil function Mover() --> salva a posição inicial do item para caso seja necessario voltar para a origem if #temp == 0 then temp[1], temp[2] = x, y end --> obtem a posição do mouse (isto retorna em relativo) local mx, my = getCursorPosition() --> verifica se não diferença deifinida e define if not difx then difx, dify = (screenW * mx) - x, (screenH * my) - y end --> define a posição com a diferença local cx, cy = (screenW * mx) - difx, (screenH * my) - dify --> define a posição da imagem com os calculos feitos x, y = cx, cy end function isMouseInPosition ( x, y, width, height ) if ( not isCursorShowing( ) ) then return false end local sx, sy = guiGetScreenSize ( ) local cx, cy = getCursorPosition ( ) local cx, cy = ( cx * sx ), ( cy * sy ) return ( ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) ) end
  11. Eu vi e tentei seguir a mesma lógica, porém sem sucesso também... Poderia me dar algum exemplo ?
  12. Então brother, eu tentei desta forma, porém o arquivo decodificado não é gerado, entende ? ele continua codificado, por isso vim pedir ajuda aqui, Eu não quero apenas substituir o modelo dentro do jogo, preciso decodificar o arquivo pra poder conseguir edita-lo novamente pelo 3dsMax. Entendeu ? Colocar ele no jogo eu consigo tranquilo, pq como eu disse tenho a senha, então só dou um "fileUnprotection("arquivo.dff", senha) e consigo carregar no jogo
  13. Isso é o nome que eu dei pro evento... Você pode usar qualquer nome, no caso, você vai usar este nome pra chamar a função
  14. Eu já te dei a faca e o queijo brother. Você pode utilizar o código que te enviei para TODOS, roupas, veículos, objetos, basta trocar, no caso do veículo, ao invés da variável "ped" você utiliza "vehicle" e o restante é jogo de Textura, substitui o nome da textura, para saber qual substituir basta abrir o TXD e ver o nome da textura. Para objetos use a variavel "object". E para roupas a variavel e "ped" também pois o elemento está integrado ao jogador. Um exemplo de como fazer um sistema de armas : Pegue o modelo de uma arma limpa, sem nenhum attach, pegue o modelo de uma arma com mira, remova a mira dela pelo 3dsMax e coloque no modelo da arma "Limpa". Faça isso com outras partes, carregador, silenciador, basicamente você vai montar um modelo de uma arma completa com todos os attachs utilizando partes de outros modelos, depois jogue as texturas em cima de cada parte, mira, silenciador, carregador, etc... Exporte o dff, e pronto, vc já pode brincar com as texturas utilizando este sistema, colocando texturas invisíveis em todos os attachs e dando a arma apenas com a textura padrão, e ai ao comprar uma mira por exemplo, vc adiciona a textura da mira ao modelo, não sou mt bom pra explicar mais espero que tenha entendido o conceito
×
×
  • Create New...