Jump to content

androksi

Other Languages Moderators
  • Posts

    542
  • Joined

  • Last visited

  • Days Won

    37

Everything posted by androksi

  1. Olá! Seja bem-vindo(a) ao fórum. ? O e-mail do arquivo mtaserver.conf deve ser o mesmo daquele cadastrado na toplist. Infelizmente não estou apto a responder mais que isso, você precisa contatar o ccw.
  2. @chupisco, por favor, não reviva tópicos que são bem antigos. A resposta dada já é suficiente para você entender que o MTA não possui vírus. Apenas reforçando: deve ser alguma outra coisa que você baixou - e provavelmente, o seu PC está infectado. Sugiro que faça um scan e veja o que está causando o problema.
  3. Olá! Seja bem-vindo(a) ao fórum. ? Acredito que você esteja falando deste resource:
  4. Olá! Aqui nestas linhas: local defaultRadio = "http://icecast.funx.nl:8000/funx-dance.m3u" local defaultRadio = "http://64.56.64.82:14596" Você pode trocar para um link de rádio que seja funcional. Esse resource de rádio é bem antigo, provavelmente os links atuais estão fora do ar. Eu tenho um link funcional. Substitua aquelas duas linhas por apenas esta: local defaultRadio = "https://live.hunter.fm/pop_high" Caso você queira alterar o link dentro do servidor, no seu carro, basta usar o comando setradio no F8 (Console). Por exemplo: setradio https://live.hunter.fm/pop_high
  5. Olá! Seja bem-vindo(a) ao fórum! ? Você pode salvar um intervalo de tempo na conta do jogador. Para salvar, use a função setAccountData; para obter o intervalo de tempo (também conhecido como timestamp), você usa a função getRealTime. Há um tutorial no fórum feito há anos atrás, mas que ainda é totalmente válido. Você pode dar uma olhada. O link é este. Se ainda assim estiver com dificuldades, mostre o que você tem tentado.
  6. O código está correto, mas precisa definir o terceiro parâmetro na função setElementData. Acredito que você queira verificar se a conta é admin, então deixe como true. setElementData(player, "conta:admin", true)
  7. Respondi nas mensagens privadas aqui do fórum.
  8. Olá! MySQL, de fato, seria o mais ideal nesse caso, pois você teria já disponível em ambos servidores (no servidor MTA e no site). Da forma que você deseja fazer, usando a internal, acredito que só seria possível usando funções HTTP, como se fosse um BOT do Discord, onde do site você iria fazer uma requisição para o servidor MTA, usando as funções HTTP disponíveis pelo seu resource. De qualquer forma, mesmo que fosse por MySQL, se você quisesse algo direto (dar VIP para algum jogador e já aparecer no servidor), precisaria das funções HTTP.
  9. Olá! Seja bem-vindo(a) ao fórum. Nós aqui do fórum não fornecemos o código pronto, a menos que a pessoa já tenha tentado algo e esteja fielmente pedindo por ajuda. Porém, nós podemos te fornecer as funções e os eventos necessários para fazer o que você deseja. O que você deseja fazer não é algo tão complicado. Um pouco de conhecimento em Lua e com algumas funções do MTA já é suficiente. Vou te dizer quais você deve usar. Para o comando /listplayers: addCommandHandler - para adicionar o comando; getPlayerCount - para obter o total de jogadores online no servidor; outputChatBox - para mostrar a mensagem no chat. Para o comando /listkills: addCommandHandler - para adicionar o comando; getElementsByType - para obter todos os jogadores do servidor; (1) getElementData - para obter o dado de kills; (2) table.sort - para ordenar a tabela, de acordo com os kills; (3) outputChatBox - para mostrar a mensagem no chat. Referências: Lembrando que a função getElementsByType retorna uma tabela. Sendo assim, você deve ter conhecimento com laços de repetição. Dei o exemplo usando getElementData, mas isso depende totalmente do seu sistema. Não sei como está sendo salvo (se é que o script existe). A função table.sort trabalha com tabelas. Sendo assim, isso requer conhecimento sobre, uma vez que informações como o nome do jogador, total de kills serão armazenados em uma tabela. Se você é novo em Lua e está começando a aprender sobre scripting no MTA, vale a pena dar uma olhada nestes links: Como a Wiki do MTA funciona Tutorial Lua e MTA para completos iniciantes Uma playlist para você aprender a escrever os seus próprios scripts (com um mini projeto durante as aulas) Também é super válido você perguntar suas dúvidas, tanto aqui no fórum quanto em nosso servidor oficial do Discord.
  10. Olá! Seja bem-vindo(a) ao fórum. Primeiramente, partindo do princípio de que banco de dados foi feito para salvar dados únicos, e não um objeto, como JSON. Da forma que você está tentando fazer, fica um pouco mais complicado. Pois, você iria precisar: Criar uma função, cuja recebe o objeto JSON do db; Converter para um formato que o MTA entenda, usando fromJSON; Inserir o resultado do fromJSON em uma tabela, com seus respectivos índice e valor. Uma vez com a tabela contendo os índices e valores, você iria alterar o valor de alguma delas e converter novamente para JSON, usando toJSON. Daí você estaria pronto para salvar novamente os itens do jogador no banco de dados. Exemplo: local playerItems = [[ [ { "maconha": [ 1, 1 ], "cocaina": [ 5, 2 ], "factionid": 1, "anfetamina": [ 3, 3 ], "crack": [ 1, 4 ], "heroina": [ 25, 5 ], "alcool": [ 0, 0 ] } ] ]] -- Pegando como exemplo o seu, da forma que retornaria do banco de dados function convertJSONToTable(object) -- Função para converter JSON em uma tabela no qual poderemos modificar local JSON = fromJSON(object) local data = {} for index, value in pairs(JSON) do data[index] = value end return data end local myItems = convertJSONToTable(playerItems) -- Modificando o valor myItems["crack"][1] = 2 -- [edita_este_valor, 4] myItems["crack"][2] = 6 -- [1, edita_este_valor] local modifiedItems = toJSON(myItems) -- Salve o "modifiedItems" no banco de dados
  11. Olá! Movi o seu tópico para a seção correta, uma vez que envolve o Cliente do MTA.
  12. Olá! Por favor, peço para que use a ferramenta Code quando for enviar códigos Lua.
  13. Opa, foi mal a demora @Boechat. Você precisa instalar o Node.js na sua máquina (ou seja lá onde você irá hospedar).
  14. Olá! Seja bem-vindo(a) ao fórum. Peço para que use a formatação Code, quando for enviar códigos Lua. Em relação à sua dúvida, basta alterar o thePlayer para hitElement, ali dentro da função getElementModel. Você definiu na função do marker que seria hitElement o jogador, portanto não existe thePlayer.
  15. Olá! Tópico movido para a seção de Programação em Lua, uma vez que relacionado com códigos Lua.
  16. Olá! Existe uma função implementada não tão recente no MTA, que permite que você obtenha todos os comandos do servidor, com possibilidade de especificar um resource. Você pode consultá-la aqui: getCommandHandlers. A função que o amigo @Santi enviou, iria servir para outros propósitos, embora ela seja bem pesada para ser usada enquanto o servidor está em produção. O recomendado é utilizar num servidor de testes, onde não haveria nenhum empecilho para com os jogadores; como Network Troubles e outros travamentos.
  17. Olá! O erro ocorre pois em nenhum momento você pede para que a cor seja alterada. A cor está sendo salva no elementData cargo->cor. Sendo assim, você também deve obtê-la. Uma vez com ela, basta aplicar naquela função tocolor. Ficaria algo desta forma: local color = getElementData(player, "cargo->cor") dxDrawText(cargo, x - 1 - w / 2, y - -20 - h - 12 - 18, w, h, tocolor(color[1], color[2], color[3], 255), 1.2, font) Como tal elementData armazena uma tabela, nós obtemos o índice de cada um. Digamos que eu possuo o cargo MOD, então a variável color receberia: {255, 140, 140}. Logo, aqueles valores definidos dentro da função tocolor, seriam o mesmo que: color[1] = 255, color[2] = 140 e color[3] = 140.
  18. Olá. Movi o seu tópico para a seção de Programação em Lua, visto que se trata de código. Sobre a sua dúvida, acredito que o erro não esteja nessa função, e sim onde ela tá sendo chamada. Se você puder fornecer um trecho de código de onde a função tá sendo chamada, ficaria mais simples de responder. E por favor, numa próxima vez que for enviar códigos, use o botão Code. Você pode encontrá-lo aqui:
  19. Olá. Seja bem-vindo(a) ao fórum. É bem provável que você tenha removido o resource admin da ACL de Admin. Em caso de dúvidas, faça backup do arquivo acl.xml e substitua por um que não tenha nenhuma modificação. Você pode encontrar o arquivo original do jogo aqui. (Basta apertar CTRL + A e salvar)
  20. Editei aquele seu código: local window = guiCreateWindow(0.22, 0.10, 0.73, 0.75, "DISCORD LOGIN", true) local browser = guiCreateBrowser(0, 0, 990, 610, false, false, false, window) local theBrowser = guiGetBrowser(browser) addEventHandler("onClientResourceStart", resourceRoot, function() requestBrowserDomains({"discord.com", "discordapp.com"}) end) addEventHandler("onClientBrowserCreated", theBrowser, function() loadBrowserURL(source, "https://discord.com/login") end) addEventHandler("onClientBrowserWhitelistChange", root, function() if theBrowser then loadBrowserURL(theBrowser, "https://discord.com/login") end end)
  21. Olá. O Google e o YouTube são sites verificados pelo MTA. Para usar outros sites, você deve permitir o domínio através da função requestBrowserDomains.
  22. Não precisa, foi só um exemplo.
  23. Olá. Seja bem-vindo(a) ao fórum. É totalmente possível. Você deve obter as posições X, Y e Z, dos locais cujo a música será reproduzida. Uma vez com elas, ao criar o som, usando a função playSound3D, você iria fazer um loop for naquelas posições e criar o som para cada ponto. Exemplo: Com o comando /mstart você inicia a música. Vá até a posição 0, 0, 3 (centro de SA), terá vários pontos tocando música. Pode usar o comando /mstop pra encerrar a execução da música.
  24. Olá. Não, não existe nenhum evento para quando é dado ou retirado dinheiro. Entretanto, você pode criar o seu próprio evento.
  25. Ah, got it. My bad. I've edited these functions: function createObjectAndColShape(player) if not playerData[player] then -- If there is no player in the table index, then playerData[player] = {} -- we create a table to store all objects, it will accumulate the objects whenever this function is called end -- I don't now what these "myx", "myy" and "myz" are, I presume that's the player's position or matrix. I will use player's position local myx, myy, myz = getElementPosition(player) local object = createObject(8873, myx, myy, myz) local colshape = createColSphere(myx, myy, myz, 320) setElementData(colshape, "col", object) setElementData(colshape, "colplayer", player) table.insert(playerData[player], {object, colshape}) end function destroyObjectAndColShape(player) if type(playerData[player]) ~= "table" then return false end for player, assets in pairs(playerData[player]) do for index, element in pairs(assets) do if isElement(element) then destroyElement(element) end end end playerData[player] = nil end
×
×
  • Create New...