Eder

Members
  • Content Count

    16
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Eder

  • Rank
    Square

Recent Profile Visitors

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

  1. Essa dai eu também quero saber ksks, só vi isso no SAMP. Nunca vi isso no MTA, nem nos server's grandes que eu já joguei o.O Acredito eu que tenha relação com Data's quando o player começar o trabalho no caso pega pizza retira um valor da Data mas é algo bem complicadinho em
  2. Vish o difícil é encontrar um F11 custom xD, mas blz vou tentar procurar na community. Mas é algo parecido com os "arrows" (onde o player esta no momento) dos sistemas de Minimaps né? Vi em alguns radares que eu baixei algo do tipo... Vlw pelo esclarecimento
  3. Rapaziada tava dando uma olhada em uns mods na net, até que eu encontrei um mod q o F11 era em 3D, vendo isso me veio a mente. Será que tem como refazer o F11 porém com novas ruas?? Exemplo tem alguns maps q ficam no meio da água. Será que tem como fazer para quando o player aperta F11 em vez de aparecer o "MAPA" do GTA:SA, aparecer um Custom Map? A outra duvida, tem como bloquear o mapa do F11? Não a tecla F11 mas sim o mapa?
  4. Vlw mano <3, mais uma duvida no caso eu tava pensando aqui com esse sistema de table tem como eu fazer esse sistema só que com cores? Exemplo: 3 cores azul, verde, vermelho. Ao player entrar os retangulos ficam com uma dessas determinadas cores. Um math.random com cores basicamente em um dxDrawRectangle? É possível com essa table? EDiT; Já consegui fazer a função encontrei um tópico parecido --> local r, g, b = math.random(50, 255), math.random(50, 255), math.random(50, 255)
  5. Boa noite rapaziada, bom eu to fazendo um painel login e adicionei 3 musicas que tocam aleatoriamente em uma tabela nomeada (Tab_Musicas), no entanto ao player entrar na tela de login eu gostaria que aparecesse o nome da musica a qual esta tocando! E é ai que entra minha duvida. Como eu poderia estar especificando em um dxDrawText qual musica esta tocando no momento? Linhas de código abaixo: Tabela: local Tab_Musicas = {"musicas/musica1.mp3", "musicas/musica2.mp3", "musicas/musica3.mp3"} Momento em que a musica se inicia: function onClientResourceStart() fadeCamera(true, 5) setCameraMatrix(1468.8785400391, -919.25317382813, 100.153465271, 1468.388671875, -918.42474365234, 99.881813049316) sound = playSound(Tab_Musicas[math.random(1, #Tab_Musicas)], false) ... Print do P/Login, no estado atual (a musica se encontra no canto superior direito):
  6. isElementWithinPickup é uma função util você pegou o código na wiki e definiu um valor a "pickup" ?
  7. Ué, pior que eu tentei desse jeito mas não aparecia o resultado no DX. Bom devo ter errado em outra linha do código, vlw pelo esclarecimento
  8. Iae rapaziada bom estou com uma duvida aqui, estou desenvolvendo um sistema de Porte e estou trabalhando com setELementData e ACL! Para garantir que não ocorra falhas... No sistema tem dois tipos de ACL a ACL DE PORTE LEVE (Armas de pequeno calibre) e a ACL DE PORTE PESADO (Armas de grosso calibre), até ai tudo certo. Porém eu fiz um sistema para os PM's saberem se o player possui porte e qual o tipo de porte, a minha duvida é se tem como verificar duas ACL'S no mesmo IF. O código abaixo eu tenho absoluta certeza que vai dar errado nas linhas de verificação pois, se ele tiver na acl LEVE ele recebe a data SIM, porém se ele Não tiver na PESADO ele irá receber a data NÃO. Penso que para resolver essa questão seja algo envolvendo tabelas porém eu não consigo compreender a estrutura nem a formação de tabelas (mesmo assistindo diversos vídeos). Será que tem como fazer a verificação em duas tabelas ou até mais ao mesmo tempo? codigo: triggerClientEvent(source, "[RDS]Painel_CopomPm", source, infos_jogador) local conta = getAccount(getAccountName(getPlayerAccount(infos_jogador))) local porte = getAccountName( getPlayerAccount(infos_jogador)) local procurado = getPlayerWantedLevel (infos_jogador) setElementData(infos_jogador, "mandatos", procurado) local nome = getPlayerName(infos_jogador) setElementData(infos_jogador, "Nome_Porte", nome) if isObjectInACLGroup ("user."..porte, aclGetGroup(AclPorteLeve)) then triggerClientEvent(source, "[RDS]registroSim", source, infos_jogador) elseif isObjectInACLGroup ("user."..porte, aclGetGroup(AclPortePesado)) then triggerClientEvent(source, "[RDS]registroSim", source, infos_jogador) end if not isObjectInACLGroup ("user."..porte, aclGetGroup(AclPorteLeve)) then triggerClientEvent(source , "[RDS]registroNao", source, infos_jogador) elseif not isObjectInACLGroup ("user."..porte, aclGetGroup(AclPortePesado)) triggerClientEvent(source , "[RDS]registroNao", source, infos_jogador) end Edit: Eu até tentei fazer uma verificação "dupla" no evento onPLayerLogin agora pouco, mas não tenho certeza se irá funcionar! addEventHandler("onPlayerLogin",root, function() local porte = getAccountName( getPlayerAccount(source)) if isObjectInACLGroup ("user."..porte, aclGetGroup(AclPorteLeve)) then setElementData(source,"RdsPorteSim", porte) elseif isObjectInACLGroup ("user."..porte, aclGetGroup(AclPortePesado)) then setElementData(source,"RdsPorteSim", porte) elseif not isObjectInACLGroup ("user."..porte, aclGetGroup(AclPortePesado) or aclGetGroup(AclPorteLeve)) then setElementData(source,"RdsPorteNao", porte) end end) Client-Side: function RegistradoSim() if getElementData(localPlayer, "RdsPorteSim") then dxDrawText("Porte: Porte Registrado!", x*607, y*214, x*742, y*246, tocolor(0, 0, 0, 255), 1.10, "default-bold", "left", "top", false, false, false, false, false) end end addEvent("[RDS]registroSim", true) addEventHandler("[RDS]registroSim", root, RegistradoSim) function RegistradoNao() if getElementData(localPlayer, "RdsPorteNao") then dxDrawText("Porte: Não Encontrado!", x*607, y*214, x*742, y*246, tocolor(0, 0, 0, 255), 1.10, "default-bold", "left", "top", false, false, false, false, false) end end addEvent("[RDS]registroNao", true) addEventHandler("[RDS]registroNao", root, RegistradoNao)
  9. Nossa mano me salvou kk tava quebrando a cabeça. To fznd a parte de quando o player sai do server ^^
  10. Sim tentei, porém ele só fazia a animação. Acabei apagando o script q eu fiz com Data, mas irei tentar novamente. No caso eu deixaria o capacete[1] como local né? Mas tipo para eu destruir do mesmo jeito eu teria q usar destroyElement(capacete[1}) não? Eu usaria o data mais como verificação se o player esta mesmo ou não né?
  11. Iae rapaziada, bom estou com um problema nesse script abaixo capacete = {} function Colocar1(playerSource, cmd) if (playerSource) then -- Anti-Bug Previni que o player fique com dois Capacetes ao mesmo tempo -- if isElement(capacete[1]) then destroyElement(capacete[1]) elseif isElement(capacete[2]) then destroyElement(capacete[2]) elseif isElement(capacete[3]) then destroyElement(capacete[3]) elseif isElement(capacete[4]) then destroyElement(capacete[4]) elseif isElement(capacete[5]) then destroyElement(capacete[5]) end -- Anti-Bug Previni que o player fique com dois Capacetes ao mesmo tempo -- setTimer ( function() --skin = getElementModel(player) -- pega a skin do --setObjectScale(capacete, 0, 0, 0) -- aumenta o tamanho do capacete!! capacete[1] = createObject(capa1, 0, 0, 0, 0, 0, 0) --if skin == 120 then -- verifica a skin setPedAnimation(playerSource,"goggles", "goggles_put_on", -1, false, false, false, false) -- animação -- função objeto jogadr |corpo|lado|frente|altura| Rotação exports.bone_attachCapa:attachElementToBone (capacete[1], playerSource, 1 , 0, 0.04 ,0.07 , 0, 270, 0) --elseif skin == 111 then -- verifica a skin --exports.bone_attachCapa:attachElementToBone (capacete[1], player, 1, 0, 0.04, 0.07, 0, 270, 0) -- função que coloca o capacete no player --elseif skin == 11[3] then -- verifica a skin --exports.bone_attachCapa:attachElementToBone (capacete[1], player, 1, 0, 0.04, 0.07, 0, 270, 0) -- função que coloca o capacete no player --end end, 400, 1) end end addCommandHandler("capa1", Colocar1) -- comando function Tirar(playerSource, cmd) if (playerSource) then setPedAnimation(source,"goggles", "goggles_put_on", -1, false, false, false, false) setTimer ( function() exports.bone_attachCapa:detachElementFromBone(capacete[1]) exports.bone_attachCapa:detachElementFromBone(capacete[2]) exports.bone_attachCapa:detachElementFromBone(capacete[3]) exports.bone_attachCapa:detachElementFromBone(capacete[4]) exports.bone_attachCapa:detachElementFromBone(capacete[5]) if isElement(capacete[1]) then destroyElement(capacete[1]) elseif isElement(capacete[2]) then destroyElement(capacete[2]) elseif isElement(capacete[3]) then destroyElement(capacete[3]) elseif isElement(capacete[4]) then destroyElement(capacete[4]) elseif isElement(capacete[5]) then destroyElement(capacete[5]) end end, 950, 1) end end addCommandHandler("tirar", Tirar) Resumindo eu fiz uma modelagem de um capacete e estava querendo criar um sistema de capacetes. Até ai tudo bem o script esta funcional no meu SERVER LOCAL, porém ao passar ele para uma host onde tinha mais pessoas encontrei um erro que ta me fritando a cabeça. Basicamente o erro é assim, se eu digitar /capa1 pegarei meu capacete normalmente, mas se outra pessoa digitar /capa1 depois de mim, o meu capacete some (por causa da função destroyElement(capacete[1]). Ao perceber isso eu obviamente fui atras para tentar especificar o player ou algo do tipo, basicamente o que eu não consigo fazer é que o script destrua o capacete da pessoa que deu o comando e não de todos que estão online no momento! Se ficou muito complicado a explicação peço desculpas. 😅 ps: Fiz o código no client-side e deu certo o script, porém o capacete só aparecia para o jogador q tinha dado o comando!
  12. Depois de muitas tentativas consegui fazer o script funcionar totalmente kkk. Aprendi como usar o addEvent direito e o set Timer tive exito tudo no server.Lua mesmo! Brigadão mano seu comment foi tipo uma luz no fim do túnel
  13. Iae rapaziada, bom estou com um certo problema em um painel q estou criado basicamente o Painel funciona da seguinte forma: O Player ao passar por uma determinada Marker, abre-se o painel onde ele terá uma quantidade de opções dentre elas "Armamentos, Uniformes e a parte de iniciar/finalizar seu expediente (painel voltado mais para corporações!). O problema esta na parte do Expediente o mesmo funciona da seguinte forma: Tem dois Ícones (print abaixo), o Painel Menor contém dois ícones, sendo o Primeiro ( soldado prestando Continência) o Inicio do Expediente e o Segundo o termino Ao iniciar o trabalho o Player receberá uma mensagem e 1 hora após o Inicio receberá seu salario no valor X (não decidi ainda) --> Esta primeira parte eu consegui fazer porém A segunda parte que seria Terminar o trabalho é onde esta o Problema. Ao Iniciar ele recebe este valor porém ao terminar o intuito é que o valor X pare de ser dado ao Player... tentei diversos jeitos porém não tive exito -->> Script logo Abaixo do Print!! Script Client-Side o Problema se encontra Próximo as linhas 280/310 local screenW,screenH = guiGetScreenSize() local resW, resH = 1360,768 local x, y = (screenW/resW), (screenH/resH) local pPrin = false local pPatru = false local pAcao = false local pPcolete = false local pParmas = false local pJob = false function painelPrincipal() dxDrawRectangle(x*43, y*167, x*235, y*25, tocolor(215, 0, 0, 254), false) dxDrawRectangle(x*43, y*191, x*235, y*314, tocolor(0, 0, 0, 194), false) dxDrawText("EQUIPAMENTOS", x*106, 169, x*243, y*191, tocolor(255, 255, 255, 255), 1.00, "sans", "left", "top", false, false, false, false, false) dxDrawRectangle(x*53, y*216, x*100, y*25, tocolor(0, 0, 0, 217), false) dxDrawText("Patrulhamento", x*63, y*220, x*132, y*237, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawRectangle(x*168, y*216, x*100, y*25, tocolor(0, 0, 0, 217), false) dxDrawText("Ação", x*203, y*220, x*278, y*241, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, false, false, false) dxDrawRectangle(x*252, y*167, x*26, y*25, tocolor(0, 0, 0, 217), false) dxDrawText("X", x*262, y*170, x*269, y*192, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false) end function painelPatrulhamento() -- Painel Patru dxDrawImage(x*69, y*267, x*63, y*59, ":[PainelArmas]/imgs/coleteLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*184, y*267, x*62, y*58, ":[PainelArmas]/imgs/ia2Logo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*74, y*363, x*58, y*56, ":[PainelArmas]/imgs/jobLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*188, y*367, x*48, y*47, ":[PainelArmas]/imgs/uniformLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) end function painelPtColete() -- Patru Colete dxDrawRectangle(x*288, y*167, x*145, y*25, tocolor(215, 0, 0, 254), false) dxDrawRectangle(x*288, y*192, x*145, y*59, tocolor(0, 0, 0, 187), false) dxDrawImage(x*298, y*199, x*54, y*52, ":[PainelArmas]/imgs/coleteLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*375, y*202, x*48, y*46, ":[PainelArmas]/imgs/vidaLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) end function painelPtArmas() -- Patru Armas dxDrawRectangle(x*288, y*167, x*192, y*25, tocolor(215, 0, 0, 254), false) dxDrawRectangle(x*288, y*192, x*192, y*215, tocolor(0, 0, 0, 187), false) dxDrawImage(x*298, y*202, x*62, y*58, ":[PainelArmas]/imgs/ia2Logo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) -- ptarma1 dxDrawImage(x*398, y*201, x*68, y*65, ":[PainelArmas]/imgs/taserLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) -- ptarma2 dxDrawImage(x*304, y*281, x*50, y*48, ":[PainelArmas]/imgs/shotLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) -- ptarma3 dxDrawImage(x*406, y*281, x*50, y*49, ":[PainelArmas]/imgs/sprayLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) -- ptarma4 dxDrawImage(x*304, y*345, x*53, y*52, ":[PainelArmas]/imgs/caceteteLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) -- ptarma5 end function painelJob() dxDrawRectangle(x*288, y*167, x*143, y*25, tocolor(215, 0, 0, 254), false) dxDrawRectangle(288, y*192, x*143, y*65, tocolor(0, 0, 0, 187), false) dxDrawImage(x*298, y*200, x*48, y*47, ":[PainelArmas]/imgs/jobLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawImage(x*370, y*201, x*47, y*47, ":[PainelArmas]/imgs/exitLogo.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) end function painelAcao() end ----- Abrir-Fechar Painel Principal ---------- function abrir (_,state) if pPrin == false then showCursor(true) addEventHandler("onClientRender", root, painelPrincipal) pPrin = true if not fontScale then fontScale = screenW/225 end tick1 = getTickCount() else showCursor(false) removeEventHandler("onClientRender", root, painelPrincipal) pPrin = false end end addEvent("PArmas", true) addEventHandler("PArmas", root , abrir) function fechar (_,state) if pPrin == true then if state == "down" then if isCursorOnElement(x*252, y*167, x*26, y*25 ) then showCursor(false) removeEventHandler("onClientRender", root, painelPrincipal) removeEventHandler("onClientRender", root, painelAcao) -- Painel Ação removeEventHandler("onClientRender", root, painelPatrulhamento) -- Painel Patru removeEventHandler("onClientRender", root, painelPtColete) -- Patru Colete removeEventHandler("onClientRender", root, painelPtArmas) -- Patru Armas removeEventHandler("onClientRender", root, painelJob) -- Patru Job pPrin = false pAcao = false pPatru = false pPcolete = false pParmas = false pJob = false end end end end addEventHandler ("onClientClick", root, fechar) function AbrirPatru(_,state) if pPrin == true then if pPatru == false then if state == "down" then if isCursorOnElement(x*53, y*216, x*100, y*25 ) then addEventHandler("onClientRender", root, painelPatrulhamento) -- Painel Patru removeEventHandler("onClientRender", root, painelAcao) -- Painel Ação pPatru = true pAcao = false end end end end end addEventHandler ("onClientClick", root, AbrirPatru) function AbPtColete(_,state) if pPatru == true then if pPcolete == false then if state == "down" then if isCursorOnElement(x*69, y*267, x*63, y*59 ) then addEventHandler("onClientRender", root, painelPtColete) -- Patru Colete removeEventHandler("onClientRender", root, painelPtArmas) -- Patru Armas removeEventHandler("onClientRender", root, painelJob) -- Patru Job pPcolete = true pParmas = false pJob = false end end end end end addEventHandler ("onClientClick", root, AbPtColete) function PgPtColete(_,state) if pPcolete == true then if state == "down" then if isCursorOnElement(x*298, y*199, x*54, y*52 ) then triggerServerEvent("colete", localPlayer) end end end end addEventHandler ("onClientClick", root, PgPtColete) function PgPtVida(_,state) if pPcolete == true then if state == "down" then if isCursorOnElement(x*375, y*202, x*48, y*46 ) then triggerServerEvent("vida", localPlayer) end end end end addEventHandler ("onClientClick", root, PgPtVida) ------------------------------------------------------------------------------------------------------------ function AbPtArmas(_,state) if pPatru == true then if pParmas == false then if state == "down" then if isCursorOnElement(x*184, y*267, x*62, y*58 ) then addEventHandler("onClientRender", root, painelPtArmas) -- Patru Armas removeEventHandler("onClientRender", root, painelPtColete) -- Patru Colete removeEventHandler("onClientRender", root, painelJob) -- Patru Job pParmas = true pPcolete = false pJob = false end end end end end addEventHandler ("onClientClick", root, AbPtArmas) function PgPtArma1(_,state) -- ptarma1 if pParmas == true then if state == "down" then if isCursorOnElement(x*298, y*202, x*62, y*58 ) then triggerServerEvent("M4", localPlayer) end end end end addEventHandler ("onClientClick", root, PgPtArma1) function PgPtArma2(_,state) -- ptarma2 if pParmas == true then if state == "down" then if isCursorOnElement(x*398, y*201, x*68, y*65 ) then triggerServerEvent("taser", localPlayer) end end end end addEventHandler ("onClientClick", root, PgPtArma2) function PgPtArma3(_,state) -- ptarma3 if pParmas == true then if state == "down" then if isCursorOnElement(x*304, y*281, x*50, y*48 ) then triggerServerEvent("shot", localPlayer) end end end end addEventHandler ("onClientClick", root, PgPtArma3) function PgPtArma4(_,state) -- ptarma4 if pParmas == true then if state == "down" then if isCursorOnElement(x*406, y*281, x*50, y*49 ) then triggerServerEvent("spray", localPlayer) end end end end addEventHandler ("onClientClick", root, PgPtArma4) function PgPtArma5(_,state) -- ptarma5 if pParmas == true then if state == "down" then if isCursorOnElement(x*304, y*345, x*53, y*52 ) then triggerServerEvent("stick", localPlayer) end end end end addEventHandler ("onClientClick", root, PgPtArma5) ------------------------------------------------------------------------------------------------------------ function AbJob(_,state) if pPatru == true then if pJob == false then if state == "down" then if isCursorOnElement(x*74, y*363, x*58, y*56 ) then addEventHandler("onClientRender", root, painelJob) -- Patru Job removeEventHandler("onClientRender", root, painelPtColete) -- Patru Colete removeEventHandler("onClientRender", root, painelPtArmas) -- Patru Armas pJob = true pPcolete = false pParmas = false end end end end end addEventHandler ("onClientClick", root, AbJob) function IniJobCl(_,state) -- IniJob if pJob == true then if state == "down" then if isCursorOnElement(x*298, y*200, x*48, y*47 ) then outputChatBox("Iniciou", 0, 255, 0) local tempo = setTimer ( function() givePlayerMoney(500) outputChatBox("Salario", 255, 0, 0) end, 10000, 5 ) end end end end addEventHandler ("onClientClick", root, IniJobCl) function ExitJob(_,state) -- ExitJob if pJob == true then if state == "down" then if isCursorOnElement(x*370, y*201, x*47, y*47 ) then outputChatBox("Terminou", 0, 255, 0) if isTimer ( tempo ) then killTimer ( tempo ) end end end end end addEventHandler ("onClientClick", root, ExitJob) function AbrirAcao(_,state) if pPrin == true then if pAcao == false then if state == "down" then if isCursorOnElement(x*168, y*216, x*100, y*25 ) then addEventHandler("onClientRender", root, painelAcao) -- Painel Ação removeEventHandler("onClientRender", root, painelPatrulhamento) -- Painel Patru pAcao = true pPatru = false end end end end end addEventHandler ("onClientClick", root, AbrirAcao) function isCursorOnElement(x,y,w,h) local mx,my = getCursorPosition () local fullx,fully = guiGetScreenSize() cursorx,cursory = mx*fullx,my*fully if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then return true else return false end end Decidi fazer no Cliente pelo fato de que no Server-side não estava tendo exito até que percebi que setTimer e GivePlayerMoney são funções Shared's adendo: estou usando setTimer pois ainda não compreendi a função getTickCount (estou tentando aprender )
  14. Iae rapaziada, bom sou bem leigo nessa área de script porém, quero fazer a criação de um local para os donos de gangs guardarem seus materiais de produção de armas(peças). "Enredo do Script" <-- Basicamente o que tenho em mente é que... Um certo membro de determinada GANG faça a compra de peças de armas ilegalmente, para a montagem das mesmas! Após a compra das peças(materiais) ser efetuadas eles teriam duas opções! 1 - guardar o material consigo pondo em risco a sí mesmo pois os matérias podem ser visto pelos policias do servidor (em uma revista obviamente)!! 2- Ele levaria as peças até sua base em uma MARKER em que ele poderia digitar um comando */guardarpecas* e assim aquelas peças ficariam armazenadas naquele local! O Limite de peças que o armazém (MARKER) suportaria seria de no máximo 80.000 peças, para retirar os materiais ele digitaria */pegarpecas quantidade* e assim poderia Montar a sua arma e vender a outro player! Adendo: O Sistema de compra ilegal funciona da seguinte forma --> O mesmo vai até o local compra as peças e as mesma fica em um tipo de "mochila" até ele vender todas. Até ai não é um problema porém se ele for revistado o sistema Mostra ao policial a quantidade de materiais *(Este Sistema de COMPRA JÁ PRONTO & ESTA FUNCIONANDO em meu servidor, até a parte da revista!!)* a unica parte que falta é o "armazém" para o player não ficar andando com os materiais para cima e para baixo, pondo sua conta em risco!! O motivo deste tópico é somente a criação do local para guardar, já vi em outros servidores tentei reproduzir de varias maneiras mas nd até agora! Simplesmente não sei por onde começar!! Se puderem ajudar agradeço Perdão pelo textão porém gosto de deixar tudo esclarecido!! Agradeço desde já a atenção ^^ Data setada ao jogador ao fazer a compra das peças == "roleplay.mats"
  15. Po mano vlw, já baixei aqui to dando uma estudada pra ver se pego o jeito de modelagem x), mas agradeço quebrou um galho do caramba.