Jump to content

Rakashy

Members
  • Posts

    93
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Rakashy

  1. Pode finalizar, já foi resolvido
  2. 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.
  3. 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
  4. 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
  5. Da um likezin ae pra ajudar na minha rep entao kkk, tmj, qlq duvida chama inbox
  6. 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.
  7. 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
  8. Eu vi e tentei seguir a mesma lógica, porém sem sucesso também... Poderia me dar algum exemplo ?
  9. 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
  10. 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
  11. 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
  12. Procure Rakashy no youtube e veja meus trabalhos com shader, hoje postei uma atualização do meu Custom de personagens, também tenho um sistema de skins de veiculos para Viaturas, e estou trabalhando em um custom de armas para adicionar Miras, silenciadores, carregadores, etc
  13. Segue ai meu script, um exemplo do que pode ser feito.
  14. Pode usar ai e testar, vai funcionar certinho, ai é só replicar e alterar a textura pra ir adicionando skins, e não se esqueça de sempre desencadear esses eventos via server-side, pois se chamar o evento direto do client, a skin só irá alterar para você
  15. function SetarSkin(thePlayer) local ShaderM4 = [[ texture tex; technique replace { pass P0 { Texture[0] = tex; } } ]] local thePlayer = source local ShaderM4_RK = dxCreateShader(ShaderM4, 0, 0, false, "ped") local Texture_M4 = dxCreateTexture("Texturas/M4A1/M4A1-1.png") -- LOCAL AONDE ESTÁ O PNG DA TEXTURA engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]", thePlayer) -- "M4A1[057]" é o nome da textura no .dff que vai substituir dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4) end addEvent( "RK:DarM4A1-1", true) addEventHandler("RK:DarM4A1-1", getRootElement(), SetarSkin) -- Se chamar este evento com uma M4 na mão irá mudar a skin para o PNG citado. Está aí.. Prontinho pra você. Este vai do lado do client. Então apenas faça um esquema para dar trigger via serverside para a skin ficar visível à todos do servidor. De nada Da um UP aí se ajudei
  16. setElementData(getRootElement(), "Carga", true) Seu problema está ai.. Como boechat disse, não se usa elementData em "root" a não ser que queira desencadear algo para TODOS do servidor. Use o elemento referente ao player. No caso do lado do servidor, se da referência ao source, más tbm não se utiliza "source" como parâmetro de função, então faça referência ao jogador e chame a variável referente a ele. No seu caso parece ser "thePlayer", apenas substitua estes "getRootElement()" pelo player local e veja se resolve. Provavelmente sim, pode ver que existe MUITA coisa errada no código, coisa típica de quem está começando agora sem saber aonde está se metendo.... é normal errar, o que podemos fazer é aconselhar e guia-lo para o rumo certo, ai cabe a ele aprender ou não... Agora se for mais um daqueles que só vem aqui e esperam receber o código pronto, ai eu sinto muito pois não vai chegar muito longe.
  17. Então gente, nos últimos 4 meses venho desenvolvendo um sistema de customização de personagens, com sistema de fardas/mochilas/mascaras integrados, igual ao FiveM mesmo, e então resolvi ir atrás de meios de codificar meus arquivos de modelagem, foi aí que todo o problema começou... Acabei encontrando esse sistema aqui no forum mesmo : searching for .dff .txd .col compiler - Scripting - Multi Theft Auto: Forums (mtasa.com) e tive sucesso para criptografar tanto dff quanto txd. Então aconteceu merd**. Acabei tendo um problema com meu HD de backup que queimou, até dei uma sumida aqui do forum por conta disso, desanimei bastante porque basicamente perdi MUITO trabalho, e os modelos originais estavam nele, e agora possuo apenas os modelos codificados. Ainda funcionam perfeitamente no meu script pois possuo a senha então apenas uso um "FileUnprotection" seguido da senha e eles carregam normalmente no jogo. A questão é que preciso editar o modelo masculino para corrigir um problema na bermuda e como está codificado não consigo mais acessar pelo 3dsMax. Minha pergunta é, existe alguma forma de decodificar estes arquivos novamente ? Lembrando que eu possuo a senha usada na codificação. Se alguém puder me dar alguma dica, aguardo resposta
  18. É exatamente isso mesmo, a gente que não tem tanta experiência na área as vezes passa uns sufoco besta né? eu igual doido tentando resolver os B.O pra no final ver que era algo tão simples... Consegui resolver todos os problemas tranquilamente quando parei pra ler com calma a wiki.. Obrigado pela ajuda, e pode encerrar o tópico.
  19. Tenho mais um problema e gostaria da ajuda de vocês, eu consigo substituir a textura da M4 tranquilamente, porém não estou conseguindo com outras armas, por exemplo, tentei com a Desert Eagle, e quando aplico a textura, a textura carregam porém não está alterando a skin da arma, tem algo que eu deva fazer no .dff da Desert Eagle para que ela aceite as texturas ? vi algo sobre ter que tirar o UV pra poder conseguir substituir as texturas, mais removendo o UV do .dff fica uma skin totalmente branca...A M4 eu consegui sem problemas pois encontrei o modelo da Arma já pronta para baixar, então não precisei modificar nada no .dff dela.
  20. Obrigado pela ajuda pessoal, mais agora talvez viajando além da conta, é só uma dúvida... Além de alterar a textura para o jogador, também serial possível alterar o .dff da arma ? Se sim, como? Ou eu estou viajando de mais kkk? Se alguém souber e puder me dar um norte de onde começar, eu aceito
  21. function SetarSkin(thePlayer) local ShaderM4 = [[ texture tex; technique replace { pass P0 { Texture[0] = tex; } } ]] local thePlayer = source local ShaderM4_RK = dxCreateShader(ShaderM4, 0, 0, false, "ped") local Texture_M4 = dxCreateTexture("image2.png") -- Textura engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]", thePlayer) dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4) end addEvent( "DarSkin", true) addEventHandler("DarSkin", getRootElement(), SetarSkin) Então mano, fiz desta forma e parece funcionar bem agora, pode dar uma olhada e me dizer se está de fato correto agora ?
  22. No caso seria engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]", localPlayer) ??
  23. Olha eu aqui de novo kkk, então, to trabalhando num projeto de "/Skins". Até ai tudo bem, base feita, script funcionando, a questão é, quando eu aplico a textura com o comando por exemplo /Skin2, a skin carrega pra todos os jogadores presentes, e eu queria saber como faço pra ela carregar apenas para o jogador que utilizou o comando, (Ainda quero que todos consigam ver a skin na mão do jogador, porém a skin só muda pra arma dele). Tentei fazer a checagem via Server side mais não tive mt sucesso, sou bem leigo com shader.. Parte do Client: function SetarSkin() local ShaderM4 = [[ texture tex; technique replace { pass P0 { Texture[0] = tex; } } ]] local ShaderM4_RK = dxCreateShader(ShaderM4, 0, 0, false, "ped") local Texture_M4 = dxCreateTexture("Skin1.png") -- Textura engineApplyShaderToWorldTexture(ShaderM4_RK, "M4A1[057]") dxSetShaderValue(ShaderM4_RK, "tex", Texture_M4) end addEvent( "DarSkin", true) addEventHandler("DarSkin", getRootElement(), SetarSkin) Server side: function Skin(source) if getElementData(source, "PermSkin") == "Sim" then triggerClientEvent("DarSkin", source) else outputChatBox("Você não tem permissão") end end addCommandHandler("Skin22", Skin) Como podem ver, a skin carrega e consigo ver de ambos os lados, porém carrega pra todos os jogadores, então resumindo, como faço pra alterar apenas a textura na arma do jogador que digitou o comando ?
  24. Sim, eu retirei essa parte do getElement, valeu ae mano, ajudou bastante
  25. Consegui resolver mano, na real está perfeito. Tive apenas que alterar a parte do server-side aonde está "player" troquei pra source, e consegui chamar a função de boa no restante do script, agora já aparece pra todos, muito obrigado, dei um like ae já. Adm já pode fechar o tópico.
×
×
  • Create New...