Gaimo

Members
  • Content Count

    114
  • Joined

  • Last visited

Community Reputation

10 Decent

1 Follower

About Gaimo

  • Rank
    Sucka

Recent Profile Visitors

408 profile views
  1. Eu preciso remover um evento se não for mais usar ele? Ele consome muito recurso? Exemplo: Um evento que detecta se o player clicou em um determinado botão e executa alguma ação, depois que o player fecha esse GUI teoricamente não precisa mais desse evento a menos que ele abra o GUI novamente, eu preciso remove-lo? Tipo quando o player abrir o GUI criar esse evento e quando fechar remover esse evento. Eu normalmente faço meus eventos assim: addEventHandler ( "onDgsMouseClickDown", acceptButton, function(button) if button == "left" and source == acceptButton then destroyElement(mainWindow) startJob () triggerServerEvent("setSkin", root) score = "up" end end) Como eu faria para colocar um removeEvent Ali ? addEventHandler ( "onDgsMouseClickDown", acceptButton, function(button) if button == "left" and source == acceptButton then destroyElement(mainWindow) startJob () triggerServerEvent("setSkin", root) score = "up" --removeEventHandler("onDgsMouseClickDown", ?????, ?????) end end)
  2. Acho que está retornando false, você usou setElementData em algum lugar? Tente isso: function mySQL() local getPedCamisas = getElementData(source, "getPedCamisas") local getPedCalcas = getElementData(source, "getPedCalcas") local getPedSapatos = getElementData(source, "getPedSapatos") local getPedBones = getElementData(source, "getPedBones") local getPedOculos = getElementData(source, "getPedOculos") exports.DBConnection:execute("insert into roupasID(CAMISA, BERMUDA, SAPATO, BONE, OCULOS) values(?,?,?,?,?)", getPedCamisas, getPedCalcas, getPedSapatos, getPedBones, getPedOculos) outputChatBox(tostring(getPedCamisas)) outputChatBox(tostring(getPedCalcas)) outputChatBox(tostring(getPedSapatos)) outputChatBox(tostring(getPedBones)) outputChatBox(tostring(getPedOculos)) outputDebugString("CORRECT?") end addEventHandler("onPlayerLogout",getRootElement(),mySQL)
  3. Comecei um trabalho de pizzaboy mas estou com algumas dúvidas, a parte inicial está criada. Vamos ao que eu tenho pronto: O jogador consegue entrar e sair da pizzaria e falar com um PED para aceitar o trabalho ou pedir demissão, até aqui tudo funcionando. O que estou pensando em fazer, após aceitar o trabalho o jogador vai poder ver um marker no qual pode trocar de skin (colocar o uniforme), eu sei que no lado do servidor tem como criar um marker com visibleTo mas o que eu realmente queria era criar meio que um marker que pudesse ser visto só por "pizzaboys" mas não sei se tem como fazer isso. Então por enquanto vou testando com visibleTo. Como eu penso que vai ser o resource: O player pega a skin ( uniforme ), faz algumas animações (fazendo as pizzas), pega elas e leva até a moto, e sai entregar. O que eu penso que vou usar: Marker, blip, animações, objetos ( pizza e caixa de pizza) , veiculo (moto), setAccountData ( pagar o jogador ) timer e mais algumas outras A parte prática do trabalho, no caso ele "fazer as pizzas, levar até a moto, aparecer os markers e blips e etc no caso todo o funcionamento do resource é melhor eu deixar em qual lado? Sei que algumas coisas precisam ser server-side e outras client-side mas acho que com o que eu vou usar da pra ser tudo server-side, quais seriam as diferenças em fazer client-side e server-side? O que me recomendam?
  4. Coloquei para salvar em um xml no lado do client. Não sei se foi a melhor opção mas funcionou.
  5. Quero testar meus scripts e estou forever alone, testei com o sandboxie mas sem sucesso. Tem como eu abrir dois clientes?
  6. O que eu posso fazer? Identificar o serial e setar o login e senha nos input?
  7. Descobri que por padrão se não for definido o RespawnPosition, ele é definido onde o veículo foi criado. Logo não precisa setar o respawnPosition.
  8. Assim? function showPanel() if panel == false then showCursor(not isCursorShowing()) addEventHandler("onClientRender", localPlayer, GUI) panel = true return elseif panel == true then removeEventHandler("onClientRender", localPlayer, GUI) panel = false end end
  9. Ta uma bagunça, pra ser sincero nem sem o que está acontecendo, o painel abre pra geral, ou não abre pra mim abre pra outro. Qual a diferença entre root, getElementRoot() e localPlayer ? Server-side sW, sH = guiGetScreenSize() aBoxes = 0 panel = false function GUI() panel = true dxDrawImage(sW/2 - 320, sH/2 - 320, 640, 640, "files/img/painel.png") --dxDrawImage(sW/2 + 170, sH/2 - 150, 30, 30, "files/img/bAccept.png") end function showPanel(source) if panel == false then showCursor(not isCursorShowing(source)) addEventHandler("onClientRender", source, GUI) panel = true return elseif panel == true then removeEventHandler("onClientRender", source, GUI) panel = false end end function isCursorOnElement( posX, posY, width, height ) if isCursorShowing( ) then local mouseX, mouseY = getCursorPosition( ) local clientW, clientH = guiGetScreenSize( ) local mouseX, mouseY = mouseX * clientW, mouseY * clientH if ( mouseX > posX and mouseX < ( posX + width ) and mouseY > posY and mouseY < ( posY + height ) ) then return true end end return false end function click(_,state) if state == "down" and panel then -- Accept if isCursorOnElement(sW/2 - 75, sH/2 + 100, 150, 40) then showCursor(false) showPanel() triggerServerEvent ( "setJob", resourceRoot, localPlayer) -- Close elseif isCursorOnElement(sW/2 + 170, sH/2 - 150, 30, 30) then showCursor(false) showPanel() end end end addEventHandler ( "onClientClick", getRootElement(), click) routes = { --[1] = {1567.93457, -1893.43579, 12.96944}, --[2] = {1405.94702, -1880.95251, 12.95655}, [1] = {1688.91943, -1829.25281, 13.48962}, [2] = {1689.58313, -1797.27710, 13.48806}, } ped = createPed(0, 1683.96326, -1815.92603, 13.54688) setElementFrozen(ped, true) getJob = createMarker(1683.96326, -1815.92603, 13.54688-0.8, "cylinder", 2, 0, 0, 0, 10) -- usefull function function randomDiff (start, finish) if start >= finish or not start or not finish then return false end if (math.floor(start) ~= start) or (math.floor(finish) ~= finish) then return false end local rand = math.random(start, finish) while (rand == lastRand) do rand = math.random(start, finish) end lastRand = rand return rand end -- Gera uma rota para o player function rota() local RR = routes[randomDiff(1, #routes)] target = createMarker(RR[1], RR[2], RR[3], "cylinder", 2, 255, 0, 0, 255) blip = createBlipAttachedTo(target, 41, 1) end function startJob() aBoxes = 0 startMarker = createMarker(1683.57776, -1811.70239, 13.54688 - 0.8, "cylinder", 2, 255, 0, 0, 255) createBlipAttachedTo(startMarker, 41, 1) end addEvent( "startJob", true ) addEventHandler( "startJob", localPlayer, startJob ) function frozen(thePlayer, time) setTimer(function() setElementFrozen(getPedOccupiedVehicle(thePlayer), true) end, 300, 1) setTimer(function() setElementFrozen(getPedOccupiedVehicle(thePlayer), false) end, time, 1) end function del() destroyElement(blip) destroyElement(target) end addEvent( "del", true ) addEventHandler( "del", localPlayer, del) -- Main addEventHandler( "onClientMarkerHit", getRootElement(), function (thePlayer, dim) -- Source = Marker que o player hitou if dim then if source == getJob and not isPedInVehicle(thePlayer) then showPanel(thePlayer) end if source == startMarker then -- Avisar se o jogador já tem as caixas e não pode pegar mais if aBoxes >= 10 then outputChatBox("Aviso, player ja tem as caixas") return end -- Roda alguma animacao frozen(thePlayer, 3000) -- Seta a quantidade de caixas pra 10 aBoxes = 3 -- Gera uma rota aleatoria setTimer(function() rota() end, 3000, 1) end -- Se o marker existe e eh o destino do player if target ~= nil and source == target then del() frozen(thePlayer, 3000) -- Paga o player setElementData(localPlayer, "dinheiro", math.random(100, 200)) -- Faz alguma animacao e para o carro -- Diminui uma caixa aBoxes = aBoxes - 1 -- Informa a quantidade de caixas outputChatBox("Caixas restantes: "..aBoxes) if aBoxes > 0 then -- Gera uma rota aleatoria setTimer(function() rota() end, 3000, 1) elseif aBoxes == 0 then outputChatBox("Retorne ao estoque para pegar mais caixas.") end end end end)
  10. Desculpa reviver o tópico mas preciso de uma ajuda, como eu seto o respawn? veh = {} -- Cria os veiculos e coloca na table veh for i=1,6 do veh[createVehicle(459, 1700.75781 + 3*i, -1806.09680, 13.54688, 0,0,0)] = true end Tentei colocar setVehicleRespawnPosition em todo o lugar mas n foi n
  11. Tive que refazer o mod completamente, passei para o client, eu tenho uma tara por fazer server-side, eh um trabalho, esta funcionando parcialmente, sim teria mais de um marker
  12. addEventHandler( "onVehicleEnter", getRootElement(), function (thePlayer, seat) -- Se o veiculo que o player entrou pertence ao trabalho entao if getAccountData(thePlayer, "job") == "transportador" then if veh[getPedOccupiedVehicle(thePlayer)] then triggerClientEvent ( thePlayer, "startJob", thePlayer) end else cancelEvent() outputChatBox("Você não é um transportador!") end end) O cancelEvent nao esta funcionando. Nao diz nenhum erro.
  13. Uma dúvida, não seria melhor eu passar para o client, no caso quando criar novos marker no client, não vai ser exclusivo para ele? Esse é meu objetivo fazer marker só para um player especifico.
  14. Estou com um problema, não estou conseguindo acessar o valor de uma tabela, Estou tentando comparar se o marker que o player entrou é o marker criado pra ele (markers.thePlayer["startMarker"] = createMarker...) if marker == markers.source["startMarker"] -- Só que é como se eu estivesse tentando indexar um valor e não comparar, como eu faço para fazer essa comparação? Debugscript = attempt to index a field 'source' ( a nil value ) Server-side veh = {} markers = { } -- Cria os veiculos e coloca na table veh for i=1,6 do veh[createVehicle(459, 1700.75781 + 3*i, -1806.09680, 13.54688, 0,0,0)] = true end -- Quando o player entra no vehicle addEventHandler ( "onVehicleEnter", getRootElement(), function(thePlayer, seat) if not markers.thePlayer then markers.thePlayer = {} end -- Se o veiculo que o player entrou pertence ao trabalho entao if veh[getPedOccupiedVehicle(thePlayer)] then -- Cria um marker para o player print(tostring(thePlayer)) markers.thePlayer["StartMarker"] = createMarker(1683.57776, -1811.70239, 13.54688 - 0.8, "cylinder", 3, 255, 0, 0, 255, thePlayer) end end) addEventHandler("onPlayerMarkerHit", getRootElement(), function(marker, dim) if dim then if marker == markers.source["StartMarker"] then print ("entrou") end -- ERRO Eu meio que estou tentando colocar algo no index ao inves de comparar end end) -- Otimização addEventHandler( "onPlayerQuit", root, function() if markers[source] then for k,v in pairs(markers[source]) do if isElement(v) then destroyElement(v) end end markers[source] = nil end end )
  15. Utilize o high save system - https://community.multitheftauto.com/index.php?p=resources&s=details&id=10588 Ele salva roupas.