Jump to content

[M]ister

Members
  • Posts

    444
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by [M]ister

  1. Eu também optaria por utilizar o formato JSON como mencionado pelo @DNL291 Mas segue um modo que talvez funcione da maneira que deseja: local vecPos = Vector3(unpack(split(datas[1]["Coordenadas"],", "))) spawnPlayer(player, vecPos:getX(), vecPos:getY(), vecPos:getZ())
  2. https://community.multitheftauto.com/index.php?p=resources&s=details&id=3479
  3. isElementVisibleTo function finalizar (source) if veh[source] and isElement(veh[source]) then if isElementVisibleTo(entregarparte2,source) then setElementVisibleTo ( bliptparte2, source, false ) setElementVisibleTo ( entregarparte2, source, false ) givePlayerMoney (source, 10000) destroyElement (veh[source]) outputChatBox ('#C09F96[SERVER]: #ffffffTrabalho finalizado, você recebeu #7AB5DF$10.000 #ffffffpelo serviço.', source, 255, 255, 255, true) end end end addEventHandler( "onMarkerHit", entregarparte2, finalizar )
  4. Próxima poste na seção correta: Programação em Lua Você deve utilizar: setPlayerHudComponentVisible
  5. Só uma observação, o código que ele postou não deveria funcionar nem mesmo corrigindo a altura/tamanho, pois o onPlayerMarkerHit é um evento relacionado ao ‘player’, e para que o evento seja acionado devemos anexá-lo à tal. A variável pré-definida ‘root’ engloba todos os elementos, inclusive os players (fonte), então no caso o correto seria assim: marker = createMarker(2101.368, -1801.239, 12.5, "cylinder", 1, 0, 255, 0, 200 ) function startJob(markerHit) if (markerHit == marker) then carro = createVehicle(448, 2097.831, -1801.282, 13.383) end end addEventHandler("onPlayerMarkerHit", root, startJob) (claro, ai ajusta novamente a altura/tamanho para que consiga a colisão) Usando o onMarkerHit como mostrado pelo @asrzk, ai sim podemos declarar o marker criado no 2º parâmetro do addEventHandler, pois esse evento relaciona-se com elementos do tipo “marker”.
  6. Sem contar que pela wiki setPlayerVoiceBroadcastTo não retorna um elemento som (para que possa alterar seu volume), e sim um booleano.
  7. Não encontrei nada sobre esse erro na wiki. Tente algum desses vídeos: https://www.youtube.com/watch?v=OdZq0YkQNYo https://www.youtube.com/watch?v=WEnd7WnjV6o
  8. Cade o elemento "marker" ? Crie e então depois anexe o evento. Ex: element["desçer"] = createMarker(1502.61, -1130.202, 35.855 -1,"cylinder",1.1,16, 102, 231, 50,getRootElement()) ----- local do marker function teleport (hitElement) setElementPosition(hitElement,1509.906, -1132.619, 24.102) ------ local onde vai o jogador end addEventHandler("onMarkerHit",element["desçer"],teleport)
  9. Isso é normal, aparece quando o MTA não detecta um antivírus no seu PC. Só clicar ali em: "Eu não instalarei um antivírus." e jogar normalmente.
  10. Torta ? colCuboid não tem nem como rotacionar. Dependendo da localidade que queira colocar realmente irá ficar "torta" em relação ao lugar do mapa.
  11. Até iria mostrar como fazer para corrigir seu script no outro tópico mas como você "não precisa aprender" e já "tem 3 scripts profissionais" seria perda de tempo de minha parte.
  12. Até tem: getElementData ( element theElement, string key [, inherit = true] ) @danblemes1 tem certeza que o setElementData realmente foi usado pelo outro resource ? O único erro que vi foi os "source" que não existem nos outputDxBox.
  13. O seu script já está com setTimer (linha 78), só que para ser a cada 15min troque os 5000 por 900000. E o funcionamento seria que após alguém entregar o veículo irá passar 15min e então outro veículo será gerado. -- troque: setTimer(createBag,5000,1) -- por: setTimer(createBag,900000,1)
  14. Só uma dica também, antes de querer criar essa limitação, seria adequado utilizar métodos eficazes de recuperação de senha, pois constantemente o pessoal acaba se esquecendo de suas senhas (usam o “salvar senha” e em algum tempo limpa o cache e se esquece) e caso não consigam jogar criando uma outra conta, a perda de players seria considerável. Exemplos recuperação de senha: Por e-mail (usando API, ex: https://www.mailgun.com, https://sendgrid.com, ou então um Servidor Web + Gmail) Por informações pessoais (data nascimento / nome do cachorro / da escola / da mãe ….)
  15. Tem alguns espertinhos que tentam burlar essa única verificação utilizando códigos do tipo ##000000000000 com isso aconselharia a utilização de algo similar a isto: while(msg:find("#%x%x%x%x%x%x")) do msg = msg:gsub("#%x%x%x%x%x%x","") end Outro jeito simples seria alterar o 6º parâmetro da função outputChatBox para false, que então os códigos de cores não funcionarão (mas também não irá oculta-los). outputChatBox("texto",root,255,255,255,false)
  16. A indentação é os recuos no código que servem para deixar o código mais fácil de entender, com ela fica muito mais perceptível identificar as estruturas, saber a qual função/condição/instrução um bloco de código pertence, saber facilmente seu inicio e fim…. -- Exemplo código sem indentação: if (a) then if (d) then f() end elseif (e) then while(k) do g() end elseif (b) then for (0;10) do if (l) then u() end end end -- Código com indentação: if (a) then if (d) then f() end elseif (e) then while(k) do g() end elseif (b) then for (0,10) do if (l) then u() end end end
  17. Use onClientVehicleDamage pois com ele você consegue facilmente identificar se o dano sofrido veio de uma arma.
  18. Você está tentando inserir itens em uma gridlist que não possui coluna. Tente trocar "gridJogadores" por "tete" na linha 5.
  19. Sim, mas infelizmente não é possível setar o alpha das armas dos jogadores. O comentado pelo @asrzk realmente se faz necessário para esse caso.
  20. Na linguagem Lua você consegue facilmente retornar diversos valores de uma função. Basta usar vírgula entre os dados. Exemplo: function teste() return 10, 20, 30 end n1, n2, n3 = teste() print(n1.. " "..n2.." "..n3)
  21. Se você setar no lado servidor, ocupará também no lado cliente, se setar no lado cliente, ocupará também no servidor. Na Wiki é claro que seu uso deve ser avaliado, pois é algo que consome uso de banda e processamento (já que ocorre toda essa sincronização entre os clientes com o servidor), e dependendo da necessidade sua utilização pode e deve ser substituída por outros métodos.
  22. Você tá manipulando os peds como se estivessem em tabelas, sendo que quando criou os peds armazenou em variáveis comuns. Verificar o player no setTimer seria um simples: if not isElement(thePlayer) then return end pois assim evita o código continuar caso o player saia do servidor, e nesse caso thePlayer seria igual a nil. Instruções do tipo: if isElement(Bfim7[source]) then destroyElement (Bfim7[source]) end Bfim7[source] = nil Seriam adequadas assim: if isElement(Bfim7[source]) then destroyElement (Bfim7[source]) Bfim7[source] = nil end
  23. Olhando rapidamente, tirei essas conclusões: destroyElement nos peds sem qualquer verificação; Se alguém quitar, der logout, sair do veículo, irá deletar os peds de outro que esteja pegando os passageiros; Os set nil da tabela seria adequado após uma verificação de sua existência; setTimer seria adequado verificar a existência do player, caso contrário, deletaria os elementos, desocuparia espaço de tabelas/memória, etc.
×
×
  • Create New...