Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,965
  • Joined

  • Last visited

  • Days Won

    179

Everything posted by Lord Henry

  1. Prefira usar a palavra "obter". Ninguém usa "getar", só se for "setar". Você pode obter todos os elementos criados via script por um resource e depois verificar quais deles são do tipo "vehicle". Primeiro você usa getResourceDynamicElementRoot para obter o rootElement dinâmico do resource específico. Depois apenas pegue os elementos do tipo "vehicle" que estejam neste rootElement. local dynamicRoot = getResourceDynamicElementRoot (getResourceFromName ("teste")) -- Nome do resource aqui. local resourceVehs = getElementsByType("vehicle", dynamicRoot) -- Obtém todos os elementos do tipo veículo que estão no dynamicRootElement -- Obs: veículos criados por arquivos.map não entram aqui, somente os criados via script como createVehicle. -- Obs2: se quiser somente os veículos criados por arquivos.map do resource, utilize na primeira linha getResourceMapRootElement em vez disso. for _,veh in pairs (resourceVehs) do -- Exemplo q torna todos os veículos deste resource translúcidos (fantasmas). setElementAlpha(veh, 150) end
  2. Nunca use source como parâmetro de função. A variável res não é uma table. Acho que você queria usar getResources para obter uma table com todos os resources.
  3. Coloque alguns outputChatBox entre cada condição pra saber quais partes estão sendo lidas.
  4. De nada. O tonumber é bem comum de se usar, também tem o tostring pra converter um valor em texto.
  5. Ele está reclamando que thePlayer é um veículo e não um pedestre. Isso acontece se você encostar no marker dentro de um veículo, isso faz com que ele ative 2x, um pro veículo e outra pro jogador. Para evitar que ele considere o veículo, apenas adicione isso no começo da sua função: if getElementType(thePlayer) ~= "player" then return end -- Se o tipo de thePlayer for diferente de um jogador, então cancela a função e nada acontece.
  6. Dai é na seção Mapas para MTA:SA, aqui é só sobre programação. Tópico movido.
  7. Faça tipo assim: addEventHandler("onClientKey", root, function(key, press) if not press then return false end if isLoginEnabled then -- Aqui seria a variável responsável por dizer se o painel de login está na tela ou não. cancelEvent() end end) function abrePainel() -- Exemplo da sua função que faz o painel aparecer pro jogador. -- Aqui é onde está o código que mostra o painel. isLoginEnabled = true -- Define essa variável como true, então as binds deixam de funcionar mas ainda dá pra digitar no painel. end function fechaPainel() -- Exemplo da sua função que faz o painel desaparecer pro jogador. -- Aqui é onde está o código que oculta o painel. isLoginEnabled = false -- Define essa variável como false, então as binds voltam funcionar normalmente. end
  8. Que erro? Mande a mensagem do erro.
  9. Sobre a indentação: Indente com 4 espaços no lugar de cada TAB, assim ele aparece certinho aqui pro fórum. Sobre seu problema, já tentou apenas converter o texto em número? Coloque isso na segunda linha: quantia = tonumber(quantia)
  10. Não. Se vc retirar essas permissões do painel, todo mundo vai ficar sem essas permissões. É o mesmo que remover a permissão admin do painel admin.
  11. Não é necessário pois este tópico já foi movido para a seção Português. Ele quis dizer que sempre que você for criar um tópico fora da seção Português, você deve escrever em inglês.
  12. Tem. Vc terá que editar o painel, criar um novo tipo de permissão padrão e depois vincular essa permissão ao botão. É necessário ser avançado em programação para saber o que está fazendo, pois o painel é bem complexo de mexer.
  13. Olá @Ipanema Roleplay utilize o botão <> do fórum para postar scripts. Não cole direto no texto.
  14. O fórum indenta com 8 espaços. Pra não distorcer é só vc usar 4 espaços em vez de TAB.
  15. Não fazemos drop de mods. Tente desenvolver o seu e podemos lhe ajudar com dúvidas. Comece estudando o evento onPlayerQuit.
  16. Utilize isso para remover o pneu do veículo: setVehicleWheelStates
  17. No seu painel de dar TAGs, adicione essa função: function getUsersInACLGroup (group) -- Group é a ACL Group que está sendo verificada. (não é o nome) local users = {} -- Tabela vazia que será preenchida com todas as contas que estão nessa ACL Group. if (group) then for _, object in ipairs(aclGroupListObjects(group) or {}) do -- Para cada objeto da aclGroup, faça: local objType = gettok (object, 1, string.byte('.')) -- Obtém tudo que estiver antes do ponto, que pode ser "user" ou "resource". if (objType == "user") then -- Se for um user, então: local _name = gettok (object, 2, string.byte('.')) -- Obtém tudo que estiver depois do ponto. No caso, o nome da conta de cada usuário. table.insert (users, _name) -- Adiciona o nome da conta na tabela users. end end return users -- Retorna uma tabela com todos os nomes das contas registradas nessa ACL Group. end end E depois quando for adicionar TAG a um novo usuário, você pode verificar quantos usuários já existem naquela ACL Group, se tiver por exemplo 10 usuários ou mais, então evita de dar a TAG. if #getUsersInACLGroup(aclGetGroup("Moderator")) < 10 then -- Se tem menos do que 10 users na ACL Group Moderator, então: -- Adiciona a nova conta normalmente na ACL Group. else -- Manda um outputChatBox dizendo que a ACL Group já atingiu o limite de usuários. end
  18. Primeiro é melhor você separar os tipos de dados em sub-tabelas e usar o comando do teleporte como índice.
  19. Mas é pra isso que estamos aqui. A gente te ajuda a desenvolver seus próprios scripts e a corrigir bugs, mas você precisa ter a iniciativa de tentar e começar por conta própria.
  20. @yToPzz ele está reclamando que a variável name é nil (não existe). O erro está lá no triggerServerEvent do script client onde a variável name foi passada.
  21. A solução é você desenvolver seu próprio sistema de Modo Passivo e colocar um sistema de anti-flood nele.
  22. YouTube Este fórum Wiki do MTA Discord oficial do MTA
×
×
  • Create New...