Jump to content

Gustavo Freire

Members
  • Posts

    22
  • Joined

  • Last visited

Everything posted by Gustavo Freire

  1. -- tabela com a posição dos markers local markers = { { pos = { 505.2783203125, -1340.4423828125, 15.9609375 }, -- XYZ int = 0, -- Interior -> padrão 0 dim = 0 -- Dimensão -> padrão 0 }, } -- aqui criamos um element pai, isso servirá para que não precisemos adicionar um evento pra cara marker local markerStorage = { ['parentElement'] = createElement( 'marker.parent' ), ['markerData'] = { } } -- armazena as bikes alugadas local rentStorage = { } -- desconta o dinheiro do jogador local getPay = function( value, thePlayer ) local validValue = value and tonumber( value ) and value > 0 if not validValue then return false end local playerMoney = getPlayerMoney( thePlayer ) or 0 if playerMoney < value then return false end return takePlayerMoney( thePlayer, tonumber( value ) ) end local isElementWithinRentMarker = function( thePlayer ) for i, _ in pairs( markerStorage['markerData'] ) do if isElementWithinMarker( thePlayer, i ) then return true end end return false end -- verifica se o player tem uma bike, se tiver ele destroi a bike e retorna true local verifyAndDestroyRentVehicle = function( thePlayer ) -- verifica se a pessoa tem uma bike alugada if rentStorage[ thePlayer ] then -- verifica se a bike existe if isElement( rentStorage[ thePlayer ] ) then -- destrói a bike destroyElement( rentStorage[ thePlayer ] ) end -- zera a tabela rentStorage[ thePlayer ] = nil return true end return false end -- mensagem para quando alguém entrar no marker local markerOutputMessage = function( hit, dim ) local isValidElement = isElement( hit ) and getElementType( hit ) == 'player' if not isValidElement then return end local isElementInVehicle = getPedOccupiedVehicle( hit ) if isElementInVehicle then outputChatBox( 'Você precisa estar fora de um veículo para alugar uma bicicleta.', hit, 255, 255, 255 ) return end outputChatBox( 'Digite /alugarbike para alugar a bike', hit, 0, 255, 0 ) end -- comando de alugar a bike addCommandHandler( 'alugarbike', function( thePlayer ) -- verifica se o jogador está em um dos markeres de aluguel local isElementInMarker = isElementWithinRentMarker( thePlayer ) -- verifica se o jogador está em um veículo local isElementInVehicle = getPedOccupiedVehicle( thePlayer ) -- caso alguma das verificações seja verdadeira ele cancela a execução if not isElementInMarker or isElementInVehicle then return end -- destrói a bike caso o jogador já tenha uma if verifyAndDestroyRentVehicle( thePlayer ) then return end -- cobra o dinheiro do jogador local payment = getPay( 50, thePlayer ) or false -- verifica se o jogador tem dinheiro suficiente/se o pagamento foi feito if not payment then outputChatBox( '#FFFFFFAlgo deu errado com seu pagamento, verifique se você tem a quantia necessária para alugar uma bike', thePlayer, 255, 255, 255, true ) return end -- pega posição do jogador local playerPosX, playerPosY, playerZ = getElementPosition( thePlayer ) -- pega dimensão e o interior do marker local dim, int = markerStorage['markerData']['dim'] or 0, markerStorage['markerData']['int'] or 0 -- cria a bike e armazena na tabela rentStorage[ thePlayer ] = createVehicle( 510, playerPosX, playerPosY, playerZ ) -- seta o interior e a dimensão da bike setElementDimension( rentStorage[ thePlayer ], dim ) setElementInterior( rentStorage[ thePlayer ], int ) -- teleporta o jogador pra dentro da bike warpPedIntoVehicle( thePlayer, rentStorage[ thePlayer ] ) end) -- esse evento será chamado sempre que o resource ligar addEventHandler( 'onResourceStart', resourceRoot, function( ) -- fazemos um loop na tabela com as posições dos markers for i, v in ipairs( markers ) do -- cria o marker local marker = createMarker( v.pos[1], v.pos[2], v.pos[3], 'cylinder', 1, 255, 0, 0, 150 ) -- criamos o marker -- setamos o interior e a dimensão do marker setElementInterior( marker, v.int ) setElementDimension( marker, v.dim ) -- setamos o marker como elemento filho do elemento pai que criamos acima setElementParent( marker, markerStorage['parentElement'] ) -- armazenamos alguns dados do marker markerStorage['markerData'][ marker ] = { ['markerElement'] = marker, ['int'] = v.int, ['dim'] = v.dim } end addEventHandler('onMarkerHit', markerStorage['parentElement'], markerOutputMessage) end) -- esse evento será chamado sempre que alguém sair de um veículo addEventHandler( 'onVehicleExit', root, function( thePlayer ) verifyAndDestroyRentVehicle( thePlayer ) end) -- esse evento é chamado sempre que alguém sair do servidor addEventHandler( 'onPlayerQuit', root, function( ) verifyAndDestroyRentVehicle( source ) end) Não sei o que foi que eu fiz que mandei a versão com erro pra vc ao invés da corrigida, mas agora sim, aqui está a correta.
  2. Erro meu, coloca uma vírgula na frente do 'parentElement'. local markerStorage = { ['parentElement'] = createElement( 'marker.parent' ), ['markerData'] = { } }
  3. local markers = { { pos = { 0, 0, 0 }, -- XYZ int = 0, -- Interior -> padrão 0 dim = 0 -- Dimensão -> padrão 0 }, { pos = { 0, 0, 0 }, -- XYZ int = 0, -- Interior -> padrão 0 dim = 0 -- Dimensão -> padrão 0 }, { pos = { 0, 0, 0 }, -- XYZ int = 0, -- Interior -> padrão 0 dim = 0 -- Dimensão -> padrão 0 }, { pos = { 0, 0, 0 }, -- XYZ int = 0, -- Interior -> padrão 0 dim = 0 -- Dimensão -> padrão 0 }, } Pra adicionar novos locais faça desse jeito.
  4. -- tabela com a posição dos markers local markers = { { pos = { 0, 0, 0 }, -- XYZ int = 0, -- Interior -> padrão 0 dim = 0 -- Dimensão -> padrão 0 }, } -- aqui criamos um element pai, isso servirá para que não precisemos adicionar um evento pra cara marker local markerStorage = { ['parentElement'] = createElement( 'marker.parent' ) ['markerData'] = { } } -- armazena as bikes alugadas local rentStorage = { } -- desconta o dinheiro do jogador local getPay = function( value, thePlayer ) local validValue = value and tonumber( value ) and value > 0 if not validValue then return false end local playerMoney = getPlayerMoney( thePlayer ) or 0 if playerMoney < value then return false end return takePlayerMoney( thePlayer, tonumber( value ) ) end -- verifica se o player tem uma bike, se tiver ele destroi a bike e retorna true local verifyAndDestroyRentVehicle = function( thePlayer ) -- verifica se a pessoa tem uma bike alugada if rentStorage[ thePlayer ] then -- verifica se a bike existe if isElement( rentStorage[ thePlayer ] ) then -- destrói a bike destroyElement( rentStorage[ thePlayer ] ) end -- zera a tabela rentStorage[ thePlayer ] = nil return true end return false end -- mensagem para quando alguém entrar no marker local markerOutputMessage = function( hit, dim ) local isValidElement = isElement( hit ) and getElementType( hit ) == 'player' local isElementInVehicle = getPedOccupiedVehicle( thePlayer ) if not isValidElement or not isElementInVehicle then return end outputChatBox( 'Digite /alugarbike para alugar a bike', hit, 0, 255, 0 ) end -- comando de alugar a bike addCommandHandler( 'alugarbike', function( thePlayer ) -- verifica se o jogador está em um dos markeres de aluguel local isElementInMarker = isElementWithinMarker( thePlayer, markerStorage['parentElement'] ) -- verifica se o jogador está em um veículo local isElementInVehicle = getPedOccupiedVehicle( thePlayer ) -- caso alguma das verificações seja verdadeira ele cancela a execução if not isElementInMarker or not isElementInVehicle then return end -- destrói a bike caso o jogador já tenha uma if verifyAndDestroyRentVehicle( thePlayer ) then return end -- cobra o dinheiro do jogador local payment = getPay( 50, thePlayer ) or false -- verifica se o jogador tem dinheiro suficiente/se o pagamento foi feito if not payment then outputChatBox( '#FFFFFFAlgo deu errado com seu pagamento, verifique se você tem a quantia necessária para alugar uma bike', thePlayer, 255, 255, 255, true ) return end -- pega posição do jogador local playerPosX, playerPosY, playerZ = getElementPosition( thePlayer ) -- pega dimensão e o interior do marker local dim, int = markerStorage['markerData']['dim'] or 0, markerStorage['markerData']['int'] or 0 -- cria a bike e armazena na tabela rentStorage[ thePlayer ] = createVehicle( 510, playerPosX, playerPosY, playerZ ) -- seta o interior e a dimensão da bike setElementDimension( rentStorage[ thePlayer ], dim ) setElementInterior( rentStorage[ thePlayer ], int ) -- teleporta o jogador pra dentro da bike warpPedIntoVehicle( thePlayer, rentStorage[ thePlayer ] ) end) -- esse evento será chamado sempre que o resource ligar addEventHandler( 'onResourceStart', resourceRoot, function( ) -- fazemos um loop na tabela com as posições dos markers for i, v in ipairs( markers ) do -- cria o marker local marker = createMarker( v.pos[1], v.pos[2], v.pos[3], 'cylinder', 1, 255, 0, 0, 150 ) -- criamos o marker -- setamos o interior e a dimensão do marker setElementInterior( marker, v.int ) setElementDimension( marker, v.dim ) -- setamos o marker como elemento filho do elemento pai que criamos acima setElementParent( marker, markerStorage['parentElement'] ) -- armazenamos alguns dados do marker markerStorage['markerData'][ marker ] = { ['markerElement'] = marker, ['int'] = v.int, ['dim'] = v.dim } end addEventHandler('onMarkerHit', markerStorage['parentElement'], markerOutputMessage) end) -- esse evento será chamado sempre que alguém sair de um veículo addEventHandler( 'onVehicleExit', root, function( thePlayer ) verifyAndDestroyRentVehicle( thePlayer ) end) -- esse evento é chamado sempre que alguém sair do servidor addEventHandler( 'onPlayerQuit', root, function( ) verifyAndDestroyRentVehicle( source ) end) Corrigi o erro.
  5. -- tabela com a posição dos markers local markers = { { pos = { 0, 0, 0 }, -- XYZ int = 0, -- Interior -> padrão 0 dim = 0 -- Dimensão -> padrão 0 } } -- aqui criamos um element pai, isso servirá para que não precisemos adicionar um evento pra cara marker local markerStorage = { ['parentElement'] = createElement( 'marker.parent' ) ['markerData'] = { } } -- armazena as bikes alugadas local rentStorage = { } -- desconta o dinheiro do jogador local getPay = function( value, thePlayer ) local validValue = value and tonumber( value ) and value > 0 if not validValue then return false end local playerMoney = getPlayerMoney( thePlayer ) or 0 if playerMoney < value then return false end return takePlayerMoney( thePlayer, tonumber( value ) ) end -- verifica se o player tem uma bike, se tiver ele destroi a bike e retorna true local verifyAndDestroyRentVehicle = function( thePlayer ) -- verifica se a pessoa tem uma bike alugada if rentStorage[ thePlayer ] then -- verifica se a bike existe if isElement( rentStorage[ thePlayer ] ) then -- destrói a bike destroyElement( rentStorage[ thePlayer ] ) end -- zera a tabela rentStorage[ thePlayer ] = nil return true end return false end -- mensagem para quando alguém entrar no marker local markerOutputMessage = function( hit, dim ) local isValidElement = isElement( hit ) and getElementType( hit ) == 'player' local isElementInVehicle = getPedOccupiedVehicle( thePlayer ) if not isValidElement or not isElementInVehicle then return end outputChatBox( 'Digite /alugarbike para alugar a bike', hit, 0, 255, 0 ) end -- comando de alugar a bike addCommandHandler( 'alugarbike', function( thePlayer ) -- verifica se o jogador está em um dos markeres de aluguel local isElementInMarker = isElementWithinMarker( thePlayer, markerStorage['parentElement'] ) -- verifica se o jogador está em um veículo local isElementInVehicle = getPedOccupiedVehicle( thePlayer ) -- caso alguma das verificações seja verdadeira ele cancela a execução if not isElementInMarker or not isElementInVehicle then return end -- destrói a bike caso o jogador já tenha uma if verifyAndDestroyRentVehicle( thePlayer ) then return end -- cobra o dinheiro do jogador local payment = getPay( 50, thePlayer ) or false -- verifica se o jogador tem dinheiro suficiente/se o pagamento foi feito if not payment then outputChatBox( '#FFFFFFAlgo deu errado com seu pagamento, verifique se você tem a quantia necessária para alugar uma bike', thePlayer, 255, 255, 255, true ) return end -- pega posição do jogador local playerPosX, playerPosY, playerZ = getElementPosition( thePlayer ) -- pega dimensão e o interior do marker local dim, int = markerStorage['markerData']['dim'] or 0, markerStorage['markerData']['int'] or 0 -- cria a bike e armazena na tabela rentStorage[ thePlayer ] = createVehicle( 510, playerPosX, playerPosY, playerZ ) -- seta o interior e a dimensão da bike setElementDimension( rentStorage[ thePlayer ], dim ) setElementInterior( rentStorage[ thePlayer ], int ) -- teleporta o jogador pra dentro da bike warpPedIntoVehicle( thePlayer, rentStorage[ thePlayer ] ) end) -- esse evento será chamado sempre que o resource ligar addEventHandler( 'onResourceStart', resourceRoot, function( ) -- fazemos um loop na tabela com as posições dos markers for i, v in ipairs( markers ) do -- cria o marker local marker = createMarker( v.pos[1], v.pos[2], v.pos[3], 'cylinder', 1, 255, 0, 0, 150 ) -- criamos o marker -- setamos o interior e a dimensão do marker setElementInterior( marker, v.int ) setElementDimension( marker, v.dim ) -- setamos o marker como elemento filho do elemento pai que criamos acima setElementParent( marker, markerStorage['parentElement'] ) -- armazenamos alguns dados do marker markerStorage['markerData'][ marker ] = { ['markerElement'] = marker, ['int'] = v.int, ['dim'] = v.dim } end addEventHandler('onMarkerHit', markerStorage['parentElement'], markerOutputMessage) end) -- esse evento será chamado sempre que alguém sair de um veículo addEventHandler( 'onVehicleExit', root, function( thePlayer ) verifyAndDestroyRentVehicle( thePlayer ) end) -- esse evento é chamado sempre que alguém sair do servidor addEventHandler( 'onPlayerQuit', root, function( ) verifyAndDestroyRentVehicle( source ) end) Fiz este código aqui, não testei, por isso pode ser que tenha algo errado. Recomendo que estude como funciona, tentei deixar o mais comentado possível pra facilitar sua compreensão.
  6. Olá, o evento onClientVehicleExit só está disponível no client-side, como este script é server-side você terá que usar o evento onVehicleExit.
  7. Olá, você precisa usar algum recurso para repetir este código. Ali no exemplo do Androksi ele utilizou o onClientPreRender. Segue abaixo um exemplo de como esse seu código deveria ser para funcionar da maneira que você quer. local object = false -- variável que armazenará o objeto ou o valor `false` para a verificação do comando local objectRotation = 0 -- rotação inicial do objeto local object_id = 1337 -- id do objeto que será criado local rotObject = function( ) -- função de rotação do objeto local pX, pY, pZ = getElementPosition( localPlayer ) setElementPosition( object, pX, pY, pZ + 1 ) -- seta a posição do objeto para cima do player setElementRotation( object, 0, 0, objectRotation ) -- seta a rotação do objeto objectRotation = objectRotation + 1 -- aumenta a rotação do objeto if objectRotation >= 360 then -- verifica se a rotação chegou ao fim e reinicia objectRotation = 0 end end local cdObject = function( ) -- cria e destroy o objeto if not object then local pX, pY, pZ = getElementPosition( localPlayer ) -- pega posição do jogador object = createObject( object_id, pX, pY, pZ ) -- cria o objeto na posição do jogador if object then addEventHandler( 'onClientPreRender', root, rotObject ) -- adiciona o evento de render end else if isElement( object ) then removeEventHandler( 'onClientPreRender', root, rotObject ) -- remove o evento de render destroyElement( object ) -- destroi o objeto object = false -- define a variável que armazena o objeto para false end end end addCommandHandler( 'objeto', cdObject ) -- adiciona o comando
  8. local mrk = createMarker(-2420.59448, -608.15979, 131.56250, "cylinder", 1.6, 255,0,0, 40) addEventHandler("onClientKey", getRootElement(), function(button, press) if isElementWithinMarker( source, mrk ) then if button == "F1" or "F3" then cancelEvent() end end end) Não testei mas veja se funciona
  9. Muito obrigado pela ajuda, realmente foi erro meu. Problema resolvido!
  10. Estou desenvolvendo um resource de assalto a lojinha que utiliza tabelas para criar os markers que vão dentro das lojinhas, porém me deparei com um problema no desenvolvimento, ao usar o isElementWithinMarker ele só me permite assaltar no último marker criado, tentei resolver isso de diversas formas mas todas obtive o mesmo problema --< server-side > function startAssaltoGF(source) if isElement(source) then if estaNoMarkerGF(source) == true then if isGuestAccount(getPlayerAccount(source)) then outputChatBox("#cd4747[ERRO]:#ffffffVocê deve estar logado para assaltar uma loja", source, 255, 255, 255, true) else outputChatBox("#cd4747[INFO]:#ffffffIniciando assalto.", source, 255, 255, 255, true) setPedAnimation(source, "bomber", "bom_plant", -1, true, false, true) toggleAllControls(source, false) setTimer( function() givePlayerMoney(source, 1000) outputChatBox("Você recebeu o dinheiro", source, 255, 255, 255, true) toggleAllControls(source, true) setPedAnimation(source, nil) end, 10000, 1) end end end end local marker = {} for i, v in ipairs(configLojinhaGF.pos) do marker[i] = createMarker(v[1], v[2], v[3]-1, "cylinder", 1.5, 255, 0, 0, 50) addEventHandler("onMarkerHit", marker[i], mostrarAssaltoGF) addEventHandler("onMarkerLeave", marker[i], tirarAssaltoGF) function estaNoMarkerGF(element) if isElement(element) then if isElementWithinMarker(element, marker[i]) then return true else return false end end end end --< shared-side/config> configLojinhaGF = { pos = { {-2499.488, -617.549, 132.563}, {-2499.318, -612.605, 132.563}, }, } obs: já tentei colocar a function do assalto dentro do for com: isElementWithinMarker(source, marker[i]) porém obtive o mesmo resultado. Desde já obrigado pela atenção!
  11. local gate = createObject (16775, 2532, -1514.5999755859, 27.10000038147, 0, 0, 0) local marker = createMarker (2532, -1514.5999755859, 27.10000038147, "cylinder", 8, 0, 0, 0, 0) function moveGate (thePlayer) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "CV" ) ) then moveObject(gate, 1900, 2532, -1.514,5999755859, 18,89999961853) end end addEventHandler ( "onMarkerHit", root, moveGate ) function move_back_gate () moveObject(gate, 1900, 2532, -1514.5999755859, 27.10000038147, 0, 0, 0) end addEventHandler ("onMarkerLeave", root, move_back_gate) tenta isso, lembrando que você deve estar na acl CV
  12. O código que você postou foi traduzido para português dificultando a te ajudar mas tenta isso: local gate = createObject (16775, 2532, -1514.5999755859, 27.10000038147, 0, 0, 0) local marker = createMarker (2532, -1514.5999755859, 27.10000038147, "cylinder", 8, 0, 0, 0, 0) function moveGate (thePlayer) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ("user."..accName, aclGetGroup ( "CV" ) ) then Moveobject (gate, 1900, 2532, -1.514,5999755859, 18,89999961853) end end addEventHandler ( "onMarkerHit", root, moveGate ) function move_back_gate () moveObject (gate, 1900, 2532, -1514.5999755859, 27.10000038147, 0, 0, 0) end addEventHandler ("onMarkerLeave", root, move_back_gate)
  13. A um tempo atrás experimentei fazer um script de copom para policiais, porém como não tinha funcionado deixei a idéia de lado e hoje resolvi tentar pedir ajuda aqui. Ele até funciona mas não da maneira correta, gostaria que quando apertasse o 'capslock' e falasse mandasse a voz ao copom e ao soltar ele fosse desativado, mas da maneira que fiz é necessário pressionar para ativar/desativar. Desde já muito obrigado! Edit: não sei se este script que mandei está funcionando, pois estava testando e deixei a idéia de lado -- CLIENT-SIDE addEventHandler("onClientKey",getRootElement(), function(btn, press) if btn == "capslock" then if (press) and exports.Admin:isPlayerDuty(localPlayer) then if getElementData(localPlayer,"inCall") == false then triggerServerEvent("Enable->radinho",localPlayer,localPlayer) setElementData(localPlayer,"inCall",true) outputChatBox("#cd4747[BCO- COPOM]:#ffffff COPOM ATIVADO!",255,255,255,true) else outputChatBox("#cd4747[BCO- COPOM]:#ffffff COPOM DESATIVADO",255,255,255,true) setElementData(localPlayer,"inCall",false) end end end end) --SERVER-SIDE addEvent("Enable->radinho", true) addEventHandler("Enable->radinho", root, function(thePlayer) if getElementData(thePlayer,"inCall") == true then local empty = exports.bco_voice:getNextEmptyChannel() exports.bco_voice:setPlayerChannel(thePlayer, empty) setPlayerVoiceBroadcastTo( thePlayer, root ) else exports.bco_voice:setPlayerChannel ( thePlayer, 100 ) end end)
  14. No seu vídeo dá pra ver que quando ele salva o item ele deixa a parte 'item_owner' como NULL, ou seja, ele está salvando um item mas não está atribuindo um dono, por favor mande o código do inventário para facilitar a ajuda.
  15. Este mod foi removido de um backup que não usa o dinheiro nativo do mta, como por exemplo o: givePlayerMoney(player, 1000) O que você deve fazer é adaptar esse script para o dinheiro nativo do mta. Tente usar isto: function buyItem(player, item, value, amount, count, db) local money = getPlayerMoney(player) if (money >= amount) then exports.inventario:giveItem(player, item, value, db, 0) takePlayerMoney(player, amount) exports["info"]:showBoxS(player,"Compra efetuada com sucesso","info") else exports["info"]:showBoxS(player,"Dinheiro insuficiente","error") end end addEvent("addItem", true) addEventHandler("addItem", getRootElement(), buyItem) desculpa se não estiver funcionando, ainda tenho muito o que aprender <:)
  16. Estou com um erro horrível em meu servidor, toda vez que dou start em qualquer resource aparece o seguinte no debugscript: Resource_exemplo destroyed a resource Resource_exemplo destroyed a map porém quando retiro o resource informado no debugscript ele começa a apresentar o mesmo erro só que dessa vez acusa outro resource e por aí vai, espero que possa me ajudar desde já obrigado pela atenção
  17. Olá a pouco tempo me surgiu uma dúvida de como eu poderia remover os sons de armas que acontecem em los santos, procurei um pouco e acabei não achando e resolvi perguntar aqui. Espero que possa me ajuda :)
  18. Acabei enviando o erro errado esse aí era o erro do nome que aparece em cima do ped, uma vez que ele não foi criado pois o script não estava encontrando o ID da skin o erro correto seria: Bad argument @'createPed[Expected number at argument 1, got nil] este erro eu acredito que seja por que o comando createPed não está encontrando o id da skin, ou seja está nulo isto acontece quando eu insiro a variável no lugar do id da skin do ped.
  19. A um tempo atrás vi um script que foi postado no MTA brasil que tinha o client e o server compilado além deles havia também a parte de config, fiquei curioso e resolvi testar porém encontrei algumas "barreiras" que vão além do meu conhecimento em .Lua se puder me ajudar fico grato O que está me atrapalhando é o seguinte: Estou criando um script para corporações que utiliza um ped para abrir um painel dx, ao abrir o painel terá as funções de pegar e guardar os equipamentos, eu gostaria que este ped fosse configurado através de variáveis como no exemplo a seguir: --==--==client-side==--== policePed = createPed(280, 2033.4772949219, 1504.4064941406, 10.8203125) --(não está configurado a variável) --==--==Config-side==--== SKIN = 280 Só que ao inserir a variável na criação do ped acontece o seguinte erro: attempt to compare boolean with number também tentei usar a criação de tabela: config = { pedSkin = 280; } E novamente deu erro, acredito que isso seja fácil de ser resolvido e o problema minha falta de conhecimento na linguagem
  20. Estava querendo criar um painel dx que aparecesse quando algum player entrasse no marker até aí tudo bem, porém quando fui colocar a função pra quando o player saísse do marker o painel fechasse começou a dar o seguinte erro no debugscript: ERROR:Server triggered clientside Event:Fechar_Painel, but event is not added clientside segue o script: --<><><><><CLIENT-SIDE><><><><> local screenW,screenH = guiGetScreenSize() local resW, resH = 1280, 960 local x, y = (screenW/resW), (screenH/resH) local painel = false function dx_Painel () if painel == true then dxDrawText("TESTE", screenW * 0.3265, screenH * 0.3581, screenW * 0.6837, screenH * 0.6211, tocolor(255, 255, 255, 255), 3.00, "default", "center", "center", false, false, false, false, false) end end function abrir_painel () if painel == false then addEventHandler("onClientRender", getRootElement(), dx_Painel) painel = true end end addEvent("Event:Abrir_Painel", true) addEventHandler("Event:Abrir_Painel", getRootElement(), abrir_painel) function fechar_painel () if painel == true then painel = false removeEventHandler("onClientRender", getRootElement(), dx_Painel) addEvent("Event:Fechar_Painel", true) addEventHandler("Event:Fechar_Painel", getRootElement(), fechar_painel) end end --<><><><><SERVER-SIDE><><><><> local marker = createMarker (2035.43018, 1499.35742, 10.82031 -1, "cylinder", 1.5 ,50,100,100) function abrir_painel (hitElement) if getElementType(hitElement) == "player" then triggerClientEvent(hitElement, "Event:Abrir_Painel", hitElement) end end addEventHandler("onMarkerHit", marker, abrir_painel) function fechar_painel (leaveElement) if getElementType(leaveElement) == "player" then triggerClientEvent(leaveElement, "Event:Fechar_Painel", leaveElement) outputChatBox("Teste", source, 0, 154, 255) end end addEventHandler("onMarkerLeave", marker, fechar_painel) Me perdoe se utilizei algum recurso de forma errada
  21. Olá, gostaria de saber se há alguma forma de substituir o MySQL por outro recurso. Quase sempre vejo alguns ''scripters'' que pegam algum script com MySQL removem e postam dizendo que foram eles quem fizeram, sempre fiquei me perguntando como eles faziam, por isso a pergunta, espero que possa me ajudar desculpe se fiz algo de errado ou utilizei algum recurso de maneira inadequada nesta publicação
  22. Estou tentando criar um painel para uma corporação e estou com uma problema, bom a ideia do painel seria pra quando o policial entrasse num determinado marker aparecesse um painel com as funções de pegar os equipamentos, guardar os equipamentos e pegar a viatura. Eu até consegui fazer o painel aparecer com a ajuda de alguns tópicos criados aqui mas ele aparece por um milésimo e desaparece se alguém poder me ajudar ficarei grato. o 1° seria o client.Lua e o 2° o server.Lua me desculpa se usei algum recurso errado é que sou novo aqui no fórum :/
×
×
  • Create New...