Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Código tá tudo mal feito. Mas se for só aviso e não esteja impedindo o funcionamento, você pode corrigir adicionando isElement(theVehicle) nas linhas: 76, 96 e 119
  2. Try this: function CriarPed (thePlayer, command, id, model, dimensao) local sX, sY, sZ = getElementPosition(thePlayer) local ped = createPed(tonumber(model), sX, sY, sZ) local pedID = setElementID (ped, id) local dimensaoP = setElementDimension(ped, dimensao) if pedID and dimensaoP then local qDimensao = getElementDimension(ped) local nomePed = getElementID (ped) outputChatBox (horaJ.. "Criaste um ped chamado " ..corPed.. nomePed.. corMJ.. " com o modelo " ..corPed.. model.. corMJ.." na dimensão " ..corEspaco.. qDimensao.. corMJ.. ".", thePlayer, isR, isG, isB, true) addEventHandler("onPedWasted", ped, pedMorreu) else if isElement(ped) then destroyElement(ped) end outputChatBox(horaE.. "Uso: /criarped [" ..corPed.. "Nome do Ped" ..corErro.. "] [" ..corPed.. "0" ..corErro.. "-" ..corPed.. "312" ..corErro.. "] [" ..corEspaco.. "0" ..corErro.. "-" ..corEspaco.. "65535" ..corErro.. "].", source, isR, isG, isB, true) end end addCommandHandler("criarped", CriarPed) addCommandHandler("cp", CriarPed) function matarPed(player, command, pedID) if pedID and getElementByID(pedID) then killPed( getElementByID(pedID) ) outputChatBox("Mataste") elseif not (getElementByID(pedID)) then outputChatBox("No ped with this id") else outputChatBox("Erro") end end addCommandHandler("matarped", matarPed)
  3. Já foi respondido em outro tópico seu: https://forum.multitheftauto.com/topic/114204-pf-galera-pf-mesmo-to-quebrando-a-cabeça-co-isso/?do=findComment&comment=942264
  4. Já te ajudaram dando o link do resource, e também já estamos aqui pra ajudar, não precisa ficar escrevendo a mesma coisa. Diga o que está dando errado, mostre o código.
  5. Isto vai corrigir o problema de aparecer só a primeira palavra: local chat_range=100 addEventHandler("onPlayerJoin",getRootElement(), function () bindKey(source,"t","down","chatbox","Say") end) addEventHandler("onResourceStart",getResourceRootElement(getThisResource()), function () for index, player in pairs(getElementsByType("player")) do bindKey(player,"t","down","chatbox","Say") end end) function isPlayerInRangeOfPoint(player,x,y,z,range) local px,py,pz=getElementPosition(player) return ((x-px)^2+(y-py)^2+(z-pz)^2)^0.5<=range end function onChat(player,_, ...) local msg = table.concat({...}," ") local px,py,pz=getElementPosition(player) local nick=getPlayerName(player) for _,v in ipairs(getElementsByType("player")) do if isPlayerInRangeOfPoint(v,px,py,pz,chat_range) then outputChatBox("#BEBEBELocal* #FFFAFA"..nick..": #DCDCDC"..msg,v,30,30,200,true) end end end addCommandHandler("Say",onChat) Só que os espaços, se tiver mais que 1, os outros serão ignorados e será aplicado só uma vez. E sobre os comandos, eu vou testar depois, acho que dá pra fazer executar com "/" no começo.
  6. "onClientMarkerHit" addEventHandler -- evento: "onClientRender" "onClientMarkerLeave" removeEventHandler -- evento: "onClientRender" - E showCursor
  7. Por isso que eu ignoro post assim. Usa todo corpo da mensagem no título, larga um Caps lock e o mais simples não explica que é um script de colshape e quando o jogador morre dentro não perde o dinheiro. Sem falar do famoso "Ajuda" no título. Pelo amor de Deus me ajudem; Pf galera me ajuda nisso; Ajuda aqui por favor; Alguém pode me ajudar?; Olha no que deu! Alguém pode Ajudar?; PRECISO DE AJUDA!!!!!!!!!!!!!; Podem me ajudar nisso?; Pedindo ajuda de novo!; Ajuda?; Olá, me ajuda?; SOCORRO LOJA DE CARRO (tem um tópico com esse título, não tem o "ajuda" mas também mostra outro nível de "criatividade") É tanto "ajuda" que chega a ser bizarro, se usar Ctrl F na página é a palavra que mais mostra, em todas páginas aqui. Parece até que aqui não é uma seção de ajuda e a pessoa precisa colocar isso no título do tópico.
  8. The link that @TheMOG posted has the shader you'll need.
  9. That's because setElementDimension returns a boolean value, just use the function parameter: dimension. Also, check if the parameter provided is a valid dimension (0 - 65535).
  10. Use setElementModel na função 'donegobeach'. Você quer volte a última skin ou apenas setar outra? Se quiser setar a skin que o jogador estava, é só armazenar ela, com setElementData por exemplo. Também troque a função setPedSkin por setElementModel no evento "SkinDriver". Salvando a skin do jogador: addEvent("SkinDiver",true) addEventHandler("SkinDiver",root, function (skin) setElementData( source, "playerOriginalSkin", getElementModel(source), false ) setElementModel ( source, 45 ) end ) Setando na função 'donegobeach': function donegobeach ( thePlayer ) local TotalDiverjob = getElementData(thePlayer, "TotalpointDiverjob") or 0 local playerSkin = getElementData( thePlayer, "playerOriginalSkin" ) or 0 setElementData(thePlayer, "TotalpointDiverjob", TotalDiverjob + 1) setElementModel( thePlayer, playerSkin ) removeElementData( thePlayer, "playerOriginalSkin" ) givePlayerMoney ( thePlayer, 750 ) startJobDiver ( thePlayer ) outputChatBox("A sacola de dinheiro molhado foi aberta e você conseguiu recuperar $750,00.", thePlayer, 0, 255, 0) if ( isElement ( markergobeach ) ) then destroyElement ( markergobeach ) end if ( isElement ( BlipDiver ) ) then destroyElement ( BlipDiver ) end end
  11. Se movimentar enquanto está numa animação que eu saiba não dá. Mas acho que é possível forçar o cancelamento da anim - não tenho certeza.
  12. I just edited my post, talking about the possible error at line 17: #value returns the length of a table or a string, example: local myTable = { "one", 2, "three" } print( #myTable ) -- output: 3 By the way, I think I understand what you want to do, here is a small code that creates sequentially routes defined in a table: local locations = { { X, Y, Z }, { X, Y, Z }, { X, Y, Z }, } local index = 1 -- test -- addCommandHandler( "createloc", function ( player ) crearPuntoEntrega( locations, player ) end ) -- function crearPuntoEntrega(tabla, thePlayer) local tabla = tabla local RADIO_ENTREGA = 1 local X,Y,Z = unpack( tabla[index] ) local zonaEntrega = createMarker(X, Y, Z, 'checkpoint', RADIO_ENTREGA, 255, 0, 0, 255, thePlayer) local zonaEntregaIcono = createBlip( X, Y, Z, 0, 2, 255, 0, 0, 255, 0, 16383, thePlayer ) addEventHandler('onMarkerHit', zonaEntrega, function( hitElement, md ) if getElementType(hitElement) == "player" and md then if isElement(zonaEntrega) then destroyElement(zonaEntrega) end -- isElement: to avoid annoying error messages if isElement(zonaEntrega) then destroyElement(zonaEntregaIcono) end onMarkerHitFunc( tabla, hitElement ) end end) end function onMarkerHitFunc( t, p ) if p and t and #t <= (index + 1) then index = index + 1 crearPuntoEntrega( t, p ) elseif p and #t > (index + 1) then index = 1 crearPuntoEntrega( t, p ) else -- invalid table or player element end end The table 'locations' represents the table with all coordinates, just pass the table you want for the function along with the player element. Don't call the function inside a loop, from what I saw above, you did it here: dbQuery(function(queryHandle) local resultados = dbPoll(queryHandle, 0) for indice, puntoEntrega in pairs(resultados) do table.insert(tablaRecorrido, resultados[indice]) crearPuntoEntrega(tablaRecorrido) end end, db, seleccionarSitio) Firstly, get the query result, and then use the table 'tableRecorded' for that (this table must be structured in the same way as the table 'locations' from my code). It will look like this: local tablaRecorrido = { } function cargarRecorrido( thePlayer ) if not (isElement(thePlayer)) then return end -- dbQuery(function(queryHandle) local resultados = dbPoll(queryHandle, 0) for indice, puntoEntrega in pairs(resultados) do table.insert(tablaRecorrido, resultados[indice]) end end, db, seleccionarSitio) crearPuntoEntrega( tablaRecorrido, thePlayer ) end
  13. Try by checking the 'hitElement' parameter, also, you need to pass the player to the function. Edit: Another thing you need to debug is the table.remove and the condition at the line 17. Probably the 'destroyElement' message is due the function "createPuntoDelivery" being always called, causing this error. Try this: function crearPuntoEntrega(tabla) local RADIO_ENTREGA = 1 local X = tabla[1].x local Y = tabla[1].y local Z = tabla[1].z local zonaEntrega = createMarker(X, Y, Z, 'checkpoint', RADIO_ENTREGA, 255, 0, 0, 255, player) -- local zonaEntregaIcono = createBlip(X, Y, 0, player) 4th argument is the blip id local zonaEntregaIcono = createBlip( X, Y, Z, 0, 2, 255, 0, 0, 255, 0, 16383, player ) addEventHandler('onMarkerHit', zonaEntrega, function( hitElement, md ) if getElementType(hitElement) == "player" then if isElement(zonaEntrega) then destroyElement(zonaEntrega) end -- isElement: to avoid annoying error messages if isElement(zonaEntrega) then destroyElement(zonaEntregaIcono) end table.remove(tabla, 1) local next = next if next(tabla) == nil then recargarPizzas() else crearPuntoEntrega(tabla) end end end) end
  14. Entendi, os números são texturas que serão aplicadas. Sobre os resultados, não tá mostrando as imagens. Também dá pra usar shader pra fazer isso, com DX só fazendo uma gambiarra com um DX-3D.
  15. E vi a outra parte do post do @brunob22 depois que ele editou. Bem interessante a ideia, me pergunto de qual forma vai ser setada a velocidade nessa lombada eletrônica. Enfim, qualquer coisa só postar aqui em relação ao projeto.
  16. Where are you calling the function 'recargarPizzas'?
  17. A quantidade de linha você pode pegar obtendo o comprimento da string (converta o valor pra string). Deve até ter funções de string melhores pra fazer isso, mas eu faria desta forma: local valor = "500" for i=1, #valor do print( valor:sub(i,i) ) end --[[ output: 5 0 0 ]]
  18. Nope, actually in that code the table "data" isn't being passed to the function. What I mean is, where are you calling the function 'loadPlayerItems'? You should first fix what is causing this error message. After that, follow this step I said above:
  19. if getElementData(player, "Job", "CIA") then It's not that way you'll check if the element-data is "CIA". Correct way: if getElementData(player, "Job") == "CIA" then
  20. Só pra esclarecer sobre as markers, elas são criadas quando o resource é ligado, no comando é chamada a função setElementVisibleTo que vai deixar blip e marker visíveis (bliptrab2 e entregartrab2). Sobre o problema, tem duas soluções: Permitir que o jogador possa passar na marker só depois que ele pegar os passageiros, por meio de uma um setElementData ou uma variável na tabela Ou Criar a marker só depois que ele pegar os passageiros
  21. Verifique se o elemento que atingiu a marker é mesmo um jogador Não vejo o trecho que é definida a skin, mas para muda-lá use a função setElementModel
  22. Resumindo, o blip do local não mostra, é isso? A marker "entregartrab2" é a primeira rota e quando atingir ela será criada a segunda rota na marker "entregarparte2"? Sobre o seu código, em createBlipAttachedTo - linhas 10 e 13 no último argumento tem source, que não está definido, logo, retornará nil. Tem também esse monte de funções setElementVisibleTo que eu acho bom evitar em muitos casos, criando os elementos no lado cliente. Outra coisa, otimize o código definindo resourceRoot no fim das funções createMarker e createBlipAttachedTo, assim você também irá evitar essas linhas chatas no começo do código: setElementVisibleTo ( entregarparte2, root, false ) Corrigindo: entregartrab2 = createMarker ( 113.229, -1900.505, 0.162, "corona", 3, 255, 140, 0, 255, resourceRoot) --setElementVisibleTo ( entregartrab2, root, false ) irá dispensar o uso disso +: As variáveis em createPed não funcionarão com mais de 1 jogador, quando outra pessoa também digitar o comando irá reescrever a mesma variável do(s) jogador(es). Passe o jogador no setTimer dentro do evento "onMarkerHit" - linha 68, e use o jogador no parâmetro da função definindo na linha 60 em "function()".
  23. It looks like you've installed the GTA: SA on a different HD/partition than your MTA version, please reinstall it in a correct directory, preferably, a clean version and from a trusted source.
  24. Tem isso no painel do freeroam, e esse resource já vem no MTA. Só ligar o resource e pra abrir é F1.
×
×
  • Create New...