Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,006
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. Acho que o que eu baixei foi esse emerlights
  2. Eu baixaria um resource pronto da comunidade e editaria ele. Pois não muda a lógica de funcionamento. Pelo menos o resource que eu tenho aqui, eu peguei ele do https://community.multitheftauto.com/ e editei algumas sirenes, posições e quais viaturas eles devem aparecer.
  3. MTA não lê arquivos compactados em .RAR somente em .ZIP E isso não irá diferenciar o tamanho de download dos jogadores. O que algumas hosts usam é um tal de compactador de download, que não sei muito bem como funciona, só sei que o fato dos mods estarem zipados não influencia nisso. De acordo com a Heavy Host:
  4. Só conheço o sistema com coronas. Mas vc já disse que ele não lhe atende muito bem.
  5. Arquivo.sql não é um tipo de arquivo nativo do MTA. O que tem dentro dele?
  6. Sua dúvida está bem mal explicada hein colega? Isso seria uma dúvida mais voltada ao OBS Studio. Pelo que observo na sua print, vc está tentando gravar a tela do MTA utilizando aquelas configurações, mas não está funcionando, é isso? Me responda também o seguinte, por gentileza: 1) Qual a resolução que está configurada no seu MTA? 1366x768 ou outra diferente? 2) Qual a resolução nativa do seu monitor?
  7. Se não existir nenhum meio de contatar o responsável pelo servidor ou então ignorarem seu pedido, sugiro que troque de servidor.
  8. Da próxima vez, veja as regras do fórum e poste na seção destinada a divulgação de servidores. Servidores para jogar
  9. @CarLoSmAnnOel poste o seu script errado aqui para verificarmos o que vc está tentando fazer. Use o botão <> para colar o script.
  10. Não entendi a necessidade de uma sub-tabela dentro da tabela NPCs. Pq vc simplesmente não fez 1 tabela de posições? E também pelo que vejo, vc ainda não está tentando fazer nada com setTimer.
  11. Tem que abrir as portas do Modem também, não só do Roteador.
  12. Já passei por isso, colega. Aqui no meu caso a empresa de internet envia um IP compartilhado por região pra minha residência e dai o IP só fica privado quando chega no modem deles aqui de casa. Mesmo que eu abra as portas do roteador (sim, tenho roteador + modem), portas do modem e as portas do firewall, ainda assim não consigo liberar acesso da minha rede pois precisaria liberar as portas desse IP compartilhado lá na central de internet. E eles já falaram que não podem liberar pois afetaria a segurança dos demais clientes que também usam esse "IP regional". Tanto é que quando o Avast manda notificação de "sua localização está exposta" ele mostra minha localização no mapa como sendo lá na central de internet, que nem fica na minha cidade. Isso indica que para a internet, meu IP é aquele fornecido pela operadora e não pelo meu modem. Isso torna nossa navegação mais segura, uma vez que os hackers precisam passar pela rede da central antes de chegar na minha rede, mas é uma pena que torne impossível a liberação da minha rede para conexões externas. Vale lembrar que nem todas as empresas de internet trabalham assim, algumas oferecem conexão direta, sem esses redirecionamentos de IP, a parte boa é que pessoas com esse tipo de internet podem criar seu servidor em casa apenas configurando seu modem e sua rede, a parte ruim é que fica mais exposto a ameaças da rede.
  13. Sim. Eu estava com pressa pois eu tinha compromisso e também era só um exemplo, nem testei fiz tudo de cabeça. Mas agradeço pela correção.
  14. function loadPeriodo (_, currentAcc) if not getAccountData (currentAcc, "periodo.Total") then -- Se o jogador não tem registro de tempo total, então cria uma data na conta e atribui valor 0. setAccountData (currentAcc, "periodo.Total", 0) end local agora = getRealTime().timestamp -- agora = instante que o jogador logou. setAccountData (currentAcc, "periodo.Sessao", agora) -- Inicia o período da sessão do jogador quando ele loga, salvando o instante de login nela. outputChatBox ("Bem Vindo ao servidor. Você já jogou um total de "..getAccountData (currentAcc, "periodo.Total").." segundos de jogo.", source) end addEventHandler ("onPlayerLogin", root, loadPeriodo) function savePeriodo (previousAcc, _) if not getAccountData (previousAcc, "periodo.Total") then setAccountData (previousAcc, "periodo.Total", 0) end local agora = getRealTime().timestamp -- agora = instante que o jogador deslogou. local antes = getAccountData (previousAcc, "periodo.Sessao") or agora -- Se por algum motivo o jogador não tem registro do instante de login, considera como login feito agora. (logou no mesmo instante que deslogou) local tempoSessao = agora - antes -- Calcula quantos segundos se passaram desde o login até o logout do jogador (tempo que ele ficou online nesta Sessão) local tempoTotal = getAccountData (previousAcc, "periodo.Total") -- Recebe quanto tempo o jogador já possui acumulado na conta. setAccountData (previousAcc, "periodo.Total", tempoTotal + tempoSessao) -- Soma o tempo que o jogador já tinha salvo na conta com o tempo que ele ficou online nesta sessão. end addEventHandler ("onPlayerLogout", root, savePeriodo) function loadEverybody () for i, player in ipairs (getElementsByType("player")) do -- Para cada jogador conectado no servidor (incluindo os que estão em download deslogados) faça: local acc = getPlayerAccount(player) if not isGuestAccount (acc) then -- Se o jogador não está deslogado, então: if not getAccountData (acc, "periodo.Sessao") then -- Se o jogador não tem registro do login de sua sessão, então: local agora = getRealTime().timestamp setAccountData (acc, "periodo.Sessao", agora) -- Salva o registro de login como agora. end end end end addEventHandler ("onResourceStart", resourceRoot, loadEverybody) -- Executa isso quando este resource iniciar.
  15. Sim, eu entendi que é isso que vc quer. Como eu disse, usando timestamp. Vc salva na conta do jogador o instante que ele logou com o timestamp. (vai salvar um número bem grande de segundos) Quando o jogador for deslogar ou desconectar do servidor, pega outro timestamp (outro número grande, maior do que o que estava salvo na conta dele) e diminui com o que estava salvo na conta dele. Isso vai marcar quantos segundos ele permaneceu logado nessa sessão de jogo. Esses segundos vc soma em outra accountData do jogador, que vai somar com os segundos de jogo que ele já tinha. Dai pra saber em horas ou minutos, só fazer uma conversão simples de segundos > hora ou segundos > minuto.
  16. Eu usaria o timestamp do GetRealTime. Com ele é possível contar grandes períodos de tempo sem ficar usando setTimer.
  17. Obrigado pelo elogio ao MTA. Também já joguei no SAMP e concordo que no MTA vc tem a sensação de mais liberdade de criação do que no SAMP. Sem contar a falta de segurança que ocorre por lá, diversos hackers e tal. Na verdade o chat do MTA pode ser configurado no cliente de cada jogador. Nele tem opções de fonte, tamanho, posição do chat, escala, efeitos e background do chatbox. Mas se vc quer forçar os jogadores do seu servidor a usarem um chat customizado por você, dai você precisará de um cliente customizado (Necessário saber programar em C++) o que não é recomendável, uma vez que as atualizações do MTA não funcionariam mais pra eles. O máximo que mudei no cliente foi a imagem da tela inicial, o resto nunca mexi. A princípio recomendo que você não siga por esse caminho. Sabemos que o Multi Theft Auto é open source, você pode mexer onde quiser no código-fonte dele. No entanto forçar os jogadores a baixar o seu cliente customizado não é uma boa ideia, considerando que a maioria joga em outros servidores também e seu cliente pode não funcionar neles. Alguns servidores por medidas de segurança (como o meu por exemplo) só liberam acesso aos jogadores que estão com o cliente mais atual do MTA, os que não estão são obrigados a atualizar para poder entrar. O que daria pra fazer é você simplesmente cancelar o chat nativo do MTA, ocultá-lo e criar um novo do 0 com LUA. showChat - Oculta/Mostra o chatbox do MTA. (o jogador ainda pode habilitá-lo novamente com /showchat então vc deve usar cancelEvent nesse comando para desabilitá-lo.) Isso também é feito no MTA, mas eles mantém o chat nativo do MTA, eles apenas mexem nos outputs das mensagens, cancelando seu envio global e enviando somente para quem está próximo. Procure por Chat Local.
  18. Hum, em questão de otimização acho que triggers são mais leves do que manter um elementData ativo. Oq vc acha @DNL291?
  19. Ele estava usando uma variável igual ao nome de função, obviamente que estava dando erro.
  20. Quando o cara logar no servidor, verifica a ACL Group que ele está e seta uma data nele com o nome correspondente. Dai na HUD vc mostra o texto salvo nessa data.
  21. local level = getElementData (thePlayer, "exp") setElementData (thePlayer, "exp", level + 10) Tipo isso.
×
×
  • Create New...