danielzinh Postado Abril 2, 2021 Denunciar Compartilhar Postado Abril 2, 2021 Aos poucos, vamos quebrar a lenda que o Skript pode lagar. os códigos estarão todos listados no tópico, você mesmo pode testar. Afinal, de onde saiu essa lenda?: Há muito tempo atrás, um youtuber resolveu criar um servidor inteiro usando Skript, até ai tudo bem, o skript não laga se você souber usar, porém, o cidadão usava códigos extremamente mal otimizados, sem nem colocar um "else" (para vocês verem). e dai, o vídeo explodiu com a fama de que o Skript laga. Hardware usado: - Processador: A4-7300 (2c-2t) - 8GB RAM DDR3 Breve explicação: com o tempo que aprendi sendo um criador profissional de códigos, eu sei e posso AFIRMAR que loops não lagam se usado com carinho e cuidado, e vou provar isso nesse código aqui! Além de provar, vou mostrar um jeito ótimo de se otimizar seus loops, e também mostrar cuidados e o que se deve e não se deve fazer. O que você deve usar: Não use: loop all blocks in radius 30 around player: Use: loop blocks within {_loc1} to {_loc2}: Qual a diferença? O primeiro código da um loop em todos os blocos em um raio ESFÉRICO de 30 blocos, isso causa lag se dentro desse loop possuir muitos códigos. O segundo código da um loop só nos blocos entre o bloco {_loc1} e o {_loc2}, assim você pode controlar o loop, fazer com que ele dê loop em uma área quadrada, ou até mesmo de uma só camada, sendo um loop horizontal. ------------------------- Não use: every 1 tick Use: every 1 seconds Qual a diferença? Usar loops abaixo de um segundo (<=19 ticks) pode prejudicar seu server, além do lag absurdo, não há nenhuma necessidade de se usar um every tão baixo. O segundo loop é um every ideal para seu servidor, mas não exagerem, o recomendado é no mínimo um segundo de every para cada 75 linhas de código para evitar lag. ------------------------- Não use: is more than or equal to Use: >= Qual a diferença? Eu percebi que quanto maior o tamanho da linha do código, maior o tempo de recarga do Skript, por isso, evitem o máximo usar linhas grandes de código, encurtem o máximo que puderem! ------------------------- Loops lagam? siga o código a seguir: command /lag-machine: trigger: set {_x} to now loop all blocks in radius 50 around player: broadcast "%difference between {_x} and now%" Apesar de ter um loop grande (50 blocos) ali, ele não possui nada dentro dele, quantos segundos você acha que esse comando demorará para carregar? (o código já contém um temporizador que diz o tempo que ele demorou para carregar) Comando executado: Pois é, amigos. O comando demorou 0.3 segundos para executar, isso já quebra TOTALMENTE o mito de que loops lagam. Ok, eu sei que terá gente que irá reclamar que só um loop não é o suficiente pra um teste... Então vamos aumentar esse loop command /lag-machine: trigger: set {_x} to now loop all blocks in radius 50 around player: loop-block is dirt add 1 to {_xe} broadcast "%difference between {_x} and now% - Terras encontradas: %{_xe}%" esse código conta quantas terras tem no raio do loop Comando executado: Legal, o tempo aumentou razoavelmente, mas para um loop de 50 blocos com um if de comparação e uma adição a uma variável eu acho um tempo super justo. Então não amigos LOOPS NÃO LAGAM (se usados de forma correta e otimizada) ------------------------- Linhas grandes travam? não exatamente, só aumenta (E MUITO) o tempo de recarga do seu código, vamos a um exemplo: command /b: trigger: Apenas um comando simples, não? demorou apenas para carregar. Agora: command /b: trigger: set slot 0 of player's current inventory to white concrete named "&fApenas um concreto" with lore "", "Lore sem graça", "", "Enrolando" if name of player's current inventory contains "Um nome de um menu aleatório" Legal, não? DEMOROU MAIS DE UM SEGUNDO PARA CARREGAR SÓ POR CAUSA DE UMA LINHA!! NÃO ACREDITA? TESTE VOCÊ MESMO. command /b: trigger: set slot 0 of player's current inventory to white concrete named "&fApenas um concreto" with lore "", "Lore sem graça", "", "Enrolando" if name of player's current inventory contains "Um nome de um menu aleatório" on command "sk": if arguments contains "reload": set {x} to now on load: broadcast "%difference between {x} and now%" código completo incluindo o temporizador. ACABEI DE PROVAR AQUI QUE... O SKRIPT EM SI NÃO LAGA, SÓ LAGA SE VOCÊ EXAGERAR E FAZER MERDA! é isso pessoal, vejo vocês no próximo capitulo dessa "série". Confira nossos outros tópicos dessa série: Skript laga #1 - clique-me Skript laga #2 - clique-me 4 Link para o comentário Compartilhar em outros sites More sharing options...
danielzinh Postado Abril 2, 2021 Autor Denunciar Compartilhar Postado Abril 2, 2021 observação: o servidor é na versão 1.16.5 com o meu processador horrível e o servidor + minecraft aberto, em uma host de qualidade os valores podem ser muito menores! Link para o comentário Compartilhar em outros sites More sharing options...
Coeiio Postado Abril 2, 2021 Denunciar Compartilhar Postado Abril 2, 2021 Menino Daniel Prendado Link para o comentário Compartilhar em outros sites More sharing options...
Coeiio Postado Abril 2, 2021 Denunciar Compartilhar Postado Abril 2, 2021 Pode deixar que quando eu for usa-los vou usar com carinho Link para o comentário Compartilhar em outros sites More sharing options...
danielzinh Postado Abril 2, 2021 Autor Denunciar Compartilhar Postado Abril 2, 2021 21 minutos atrás, Coeiio disse: Menino Daniel Prendado Você <3 Link para o comentário Compartilhar em outros sites More sharing options...
t6yhujkf Postado Abril 2, 2021 Denunciar Compartilhar Postado Abril 2, 2021 O tempo que o Skript leva para carregar os arquivos na inicialização não vai mudar absolutamente nada, tem que ser levado o tempo que demora pra executar cada código com o servidor rodando... 1 Link para o comentário Compartilhar em outros sites More sharing options...
danielzinh Postado Abril 2, 2021 Autor Denunciar Compartilhar Postado Abril 2, 2021 8 minutos atrás, gabrielv disse: O tempo que o Skript leva para carregar os arquivos na inicialização não vai mudar absolutamente nada, tem que ser levado o tempo que demora pra executar cada código com o servidor rodando... Olá, durante o teste foi feito o teste ao executar cada código como na print: Você deve estar se referindo ao teste de tamanho de linhas, eu deixei claro que era o tempo de inicialização. E mesmo assim, aumentou 1 segundo de recarga com uma só linha de código mal-otimizada, imagina um skript completamente mal feito? não quero nem pensar. Link para o comentário Compartilhar em outros sites More sharing options...
RektByDead Postado Abril 4, 2021 Denunciar Compartilhar Postado Abril 4, 2021 Em 02/04/2021 em 22:16, gabrielv disse: O tempo que o Skript leva para carregar os arquivos na inicialização não vai mudar absolutamente nada, tem que ser levado o tempo que demora pra executar cada código com o servidor rodando... eu estou tentando explicar isso faz tempo mas kkkkkkk ele não aprende Link para o comentário Compartilhar em outros sites More sharing options...
danielzinh Postado Abril 4, 2021 Autor Denunciar Compartilhar Postado Abril 4, 2021 (editado) 16 minutos atrás, RektByDead disse: eu estou tentando explicar isso faz tempo mas kkkkkkk ele não aprende Em 02/04/2021 em 18:26, danielzinh disse: Olá, durante o teste foi feito o teste ao executar cada código como na print: Você deve estar se referindo ao teste de tamanho de linhas, eu deixei claro que era o tempo de inicialização. E mesmo assim, aumentou 1 segundo de recarga com uma só linha de código mal-otimizada, imagina um skript completamente mal feito? não quero nem pensar. Aprenda a ler o tópico antes de comentar asneira, por favor. Editado Abril 4, 2021 por danielzinh Link para o comentário Compartilhar em outros sites More sharing options...
Sensatez Postado Abril 5, 2021 Denunciar Compartilhar Postado Abril 5, 2021 Duvido você ensinar a usar Metadata KKKKK <3 Link para o comentário Compartilhar em outros sites More sharing options...
zBrunooow Postado Abril 6, 2021 Denunciar Compartilhar Postado Abril 6, 2021 basta ler pra entender, mas ainda vai ter gente que só vai implicar pq é chata, ótimo tópico 👏 🥰 1 Link para o comentário Compartilhar em outros sites More sharing options...
LymeeFairy Postado Setembro 20, 2024 Denunciar Compartilhar Postado Setembro 20, 2024 ANÁLISE DE CONTEÚDO DESATUALIZADO Este tópico foi automaticamente arquivado devido à falta de atualizações recentes ou ao fato de o conteúdo estar desatualizado em relação às práticas ou informações atuais. Para manter a qualidade e relevância das discussões na comunidade, tópicos sem novas atualizações ou com informações obsoletas são periodicamente arquivados. Se houver novos dados ou atualizações pertinentes ao tema, sinta-se à vontade para criar um novo tópico com as informações atualizadas. Equipe de Moderação Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados