Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Pela lógica na verdade tudo vai travar então, já que o server travou, então o setTimer seria o de menos.
  2. Pode ser um problema com os scripts do servidor com bugs e problemas que compromete a performance do servidor. Se o problema for somente nesse server, recomendo procurar algum meio de contatar o dono.
  3. @Jonas^ Desnecessária a postagem, ainda mais pra alguém com certo tempo de fórum e que já entende as regras. Resolvam as questões pessoais em outro local, o fórum não é lugar pra isso e nem será tolerado. @brunob22 Envie isso por privado que será bem mais útil pra nossa comunidade, em vez de fazer off-tópic com posts de briguinhas poderia ter gastado esse tempo tentando ajudar, mas se você achar que já ajudou escrevendo menos de 1 linha beleza, mas aqui não é lugar de discussões e intrigas, se não vai ajudar é simples, não posta.
  4. The issue seems to be with your GTA: SA version, try installing a different and compatible version with MTA.
  5. Tentei entender qual a ideia exatamente em gerar os IPs que acessarem mas não sei se entendi, a questão também pode nem ser obter os IP permitidos, aqui no próprio tópico já falamos sobre sobrescrever funções, então nada adianta uma proteção avançada mas vacilar com um simples cancelEvent. No entanto, sobre o php, também é uma forma de criar um sistema de proteção, vale também para outros métodos externos. Sobre o "mais seguro impossível" preciso que me prove Voltando ao antigo assunto do tópico, sobre sobrescrever funções por outro arquivo de script, eu fiz aqui uma proteção utilizando a função debug.getinfo, verificando a procedência da função pra determinar se é fake ou não, e, fazendo comparações verificando as linhas que a função está sendo chamada, etc. Não irei postar o código pois iria ajudar mal-intencionados.
  6. Tente isto (não testei) : local onlineStaff_minutes = 10 addEventHandler ("onResourceStart", resourceRoot, function () setTimer (function () local admins = {} for _, v in ipairs (getElementsByType ("player")) do if isPlayerStaff(v) then table.insert( admins, getPlayerName(v):gsub("#%x%x%x%x%x%x", "") ) end end outputChatBox ("Admins Online: #FFFFFF"..tostring(table.concat(admins, ", ")), root, 0, 233, 0, true) end, 60000 * onlineStaff_minutes, 0) end) -- https://wiki.multitheftauto.com/wiki/IsPlayerStaff local staffACLs = { aclGetGroup("Admin"), aclGetGroup("Moderator"), aclGetGroup("SuperModerator"), } function isPlayerStaff(p) local acc = getPlayerAccount(p) if not acc then return false end if isGuestAccount(acc) then return false end local object = getAccountName(acc) for _,group in ipairs(staffACLs) do if isObjectInACLGroup("user."..object,group) then return true end end return false end
  7. O normal creio que seria funcionar, quando fiz um script de tunning os spoilers mesmo não sendo do modelo eram aplicados. Pode ser um problema no seu script.
  8. Não acho que tenha uma função que faça isso. Seria possível com a função setCameraFieldOfView mas ela não funciona quando o jogador está mirando. A alternativa seria refazer a mira com setCameraMatrix e setar o fov no último argumento. Esta função também poderia ser usada pra aumentar a rendering distance quando o jogador estiver mirando: setFarClipDistance @SchmidtNeO
  9. name / host is not returning the expected value. The problem seems to be with XML functions.
  10. DNL291

    Ajuda

    @Kahinan O campo de edição de pesquisa do fórum é um grande aliado: https://forum.multitheftauto.com/search/?q=algemar https://forum.multitheftauto.com/topic/115950-comando-por-id/ https://forum.multitheftauto.com/topic/115779-algemar/ Lembre-se sempre de utilizá-lo
  11. Não se esqueça que a função getPlayerFromPartialName não é uma função do próprio MTA, você deve incluí-la no seu código: function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end O comando de depuração /debugscript 3 também é necessário para você encontrar os erros de execução no código. E também o element-data da cnh não vai existir no seu servidor de uma forma mágica, você deve ter esse script da habilitação no seu servidor e tenha certeza que o element-data esteja funcionando como esperado. @Luccas
  12. Aqui está um exemplo com as funções que mostrei (Leia os comentários no código e tente entender ) Server-side addEventHandler( "onPlayerLogin", root, -- Este evento é chamado quando o jogador loga na conta function ( _, acc ) -- verifica se o nome da conta consta no grupo ACL "Admin" if isObjectInACLGroup( "user."..getAccountName(acc), aclGetGroup ( "Admin" ) ) then -- Chama o evento do cliente: "onServerSendPlayerACLGroup", passando o parâmetro "Admin" triggerClientEvent( source, "onServerSendPlayerACLGroup", source, "Admin" ) end end ) Client-side local aclGroup -- variável do grupo ACL enviado pelo server addEvent( "onServerSendPlayerACLGroup", true ) addEventHandler( "onServerSendPlayerACLGroup", root, function( group ) -- parâmetro; nesse exemplo seria a string: "Admin" if group then aclGroup = group -- armazena o parâmetro na variável do cliente end end ) addEventHandler( "onClientRender", root, function() dxDrawText( aclGroup or "N/A", x,y,w,h ) -- mostra o texto dx com do grupo da acl ou "N/A" se o valor for nil/false end ) Talvez não seja exatamente o que você quer fazer, mas tenho certeza que só irá mudar a parte da isObjectInACLGroup. Se você quer listar as ACL's que a conta está, esta função irá fazer isso: https://wiki.multitheftauto.com/wiki/GetPlayerAcls Daí só programá-la para ignorar grupos específicos tipo "everyone", "moderador", "Admin" caso for necessário. Quanto ao emprego você pode obter diretamente no client caso esteja setado com setElementData: addEventHandler( "onClientRender", root, function() dxDrawText( getElementData( localPlayer, "Emprego" ) or "N/A", x,y,w,h ) end )
  13. Por que você quer interpolateBetween sincronizando entre os dois lados? Se você quer fazer uma barra de progresso o lugar é o cliente como já foi dito. Mas nada te impede de utilizá-la no lado server, funciona em ambos e é possível fazer a interpolação com um timer, mas a questão é pra quê fazer no lado server. Se for algo necessário faça, mas o ideal é no cliente, no lado server também é recomendado evitar qualquer coisa desnecessária pois a execução do código afetará diretamente no servidor enquanto que no cliente será uma execução só para o PC do próprio jogador.
  14. Exatamente, por isso se fosse um código meu eu optaria pelo trigger. Em versões futuras element-data será otimizada, mas por enquanto acho trigger mais viável.
  15. As funções/evento que você irá precisar são estas: addEventHandler "onPlayerLogin" getAccountName isObjectInACLGroup aclGetGroup triggerClientEvent ou setElementData -- client getElementData --ou addEvent + addEventHandler -- para obter o cargo da acl no cliente Veja os códigos nos exemplo e tente fazer; mostre aqui seu código se precisar de ajuda.
  16. Eu não não tenho as permissões de mover tópicos pelo fórum, isso é uma permissão de Staff's com cargo mais alto. O que você deve fazer nesses casos é reportar o tópico com o devido motivo, exemplo: portuguese language (que se aplica a este tópico), então um staff moverá para a seção correta. É recomendada a utilização do botão Report para esses casos, e evitar responder o tópico com tais mensagens - deixe isso para o moderador, obrigado.
  17. Na wiki do mta tem uma página com essas funções, são funções úteis, segue o link: https://wiki.multitheftauto.com/wiki/Useful_Functions
  18. Esse trigger no getRootElement num timer aí que é o problema. De preferência faça o script no lado cliente, como disse o Jonas.
  19. Digita no Console o comando /info nome_do_resource Se o status tiver ok, tente isto e veja no jogo se mostra alguma mensagem no chat ao ligar: local message = "Seja bem-vindo ao servidor MrShadows Race."; addEventHandler( "onResourceStart", root, function( res ) local res_type = getResourceInfo( res, "type" ); outputChatBox("Resource Iniciado!") if ( res_type and res_type == "map" ) then outputChatBox( message, root, 255, 255, 255, true ); end end );
  20. Você tem permissão de admin no server? Digite o comando /debugscript 3 no jogo e dê start no resource. Pode ser também que o resource não foi incluído na lista pois não foi atualizado com o comando refresh ou algum erro no código.
  21. Trancando o tópico já que o Autor do post não respondeu nada apesar de estar ativo depois das respostas, deixar aberto só tende ocorrer outras postagens fora do assunto. Qualquer coisa só me contatar via MP @Luccas caso ainda queira destrancar o tópico.
  22. Nunca seja inimigo da lógica Trancado.
  23. Cria um arquivo .lua e cola esse código, faz o meta.xml (clique no link e leia) dele e deixa os 2 arquivos numa pasta; a pasta você deixa no diretório [...]server\mods\deathmatch\resources Aqui um link útil pra você ler: https://wiki.multitheftauto.com/wiki/PT-BR/Introdução_ao_Scripting
  24. @King_Of_Guns Este erro é o mesmo que o que você está tendo, tente resolver seguindo os passos deste tópico: https://forum.multitheftauto.com/topic/100919-cd16-disconnected-error/
  25. Ajudou sim, abra o link, de addCommandHandle e IsObjectInACLGroup, desça a página até os exemplo e você verá várias funções com comandos. E na página da funções de ACL você verá um comando /jetpack com a verificação na ACL. De resto vai ser só o tradicional Ctrl+C - Ctrl+V e adaptar pra forma que você quer.
×
×
  • Create New...