Jump to content



Anúncios Patrocinados








  • Recently Browsing

    No registered users viewing this page.

  • Similar Content

    • By KhayrusS
      Fala, pessoal!
       
      Vim deixar um pequeno guia de como executar o servidor l2j diretamente da IDE. Esse processo é muito útil durante o desenvolvimento.
       
      Ps. O áudio ficou um pouco baixo, porque minha filha estava dormindo ao meu lado então não pude falar mais alto. Então aumenta o áudio 🤷‍♂️
       
       
    • By xk4rm4012
      Salve Pessoal!
      Vim pedir um help to um tempo batendo cabeça e queria uma ajuda. Seguinte:
      Baixei daqui do Fórum os arquivos de posturas e hairs do classic.
      Fiz o Ctrl C, Ctrl V nas Animations das Raças e depois do lineagewarrior.int e .u
      No entando eu fico tomando um p*** critico quando tento visualizar um char Female Fighter.
                Pelo o que eu entendi do erro é algo nesse caminho:
      https://ibb.co/FWrmZHt 
      "this==UObject::StaticClass() [File:.\UnClass.cpp] [Line: 857]
      Core.Class LineageWarrior.FFighter NULL
      MeshAnimation Fighter.FFighter_anim 3908801==3908801/25556781 35513 3873292 "
      Alguém teria como me ajudar? se tiver o arquivo sem erro ou com uma explicação de como resolver. 
      Grato!
       

    • By KhayrusS
      Existem diferentes formas de contribuição em projetos open source, sendo uma das principais a contribuição de implementações através do Pull Request. Nesse guia, vou abordar como criar um Pull Request no projeto L2jOrg, mas que poderá ser usado em qualquer projeto que utilize git.
      Eu trabalho com git há alguns anos, e durante esse tempo experimentei diversas formas de utilização. Um dos melhores fluxos de trabalho pra utilizar git, na minha opinião, é o modelo "short lived branches" ou "topic branches",  nesse link você pode encontrar mais detalhes.
       
      Requisitos para seguir o guia:
      Git; IDE (eu irei utilizar o IntelliJ IDEA, mas pode ser usada  a que preferi); Uma conta no github.  
      Obs.: a IDE é opcional, você pode utilizar apenas o cliente git para realizar os passos desse guia, mas por simplicidade será demonstrado apenas com o uso da IDE.
       
      1º Passo - Criando um fork do projeto no github
      O projeto L2jOrg utiliza submódulos, é necessário realizar o fork de todos os repositórios que pretende fazer contribuições.
      A criação de um fork é bastante simples, apenas é necessário estar logado no github, e utilizar o botão fork na página dos repositórios:
       
      Vamos criar o fork para o primeiro repositório: https://github.com/L2jOrg/L2JOrg
       
      Clique no botão fork no canto superior direito

       
      Caso participe de alguma organização no github, aparecerá uma tela para escolher onde será criado o fork

       
      Agora faça o mesmo processo para o repositório do Datapack: https://github.com/L2jOrg/Datapack.
      Após feito o fork dos dois repositórios,  você terá uma cópia dos repositórios.
       

       
      2º Passo - Clonando  seu repositório
      Antes de seguir esse passo, é necessário ter o git instalado.
      Após a criação do fork,  iremos fazer o clone dos seus repositório. Esse clone nada mais é do que fazer uma cópia do seu repositório remoto, que está no github, para sua máquina. Assim, podemos modificar os arquivos com mais facilidade.
       
      Para realizar o clone, precisamos saber qual o endereço dos nossos repositórios. Podemos encontrar essa informação no github:
      Aqui teremos duas opções de url. Utilizando ssh ou https. Eu particulamente utilizo a com ssh por achar mais simples, já que utilizando https é necessário fornecer o usuário e senha do github para se comunicar com o repositório remoto. Caso queira utilizar ssh, mas não sabe como configurar, segue a documentação.
       
      No botão "code" do github é onde podemos encontrar as urls necessárias para fazer o clone do repositório. Copie a url que iremos utilizar na IDE, no nosso caso no IntelliJ IDEA.

       
      A primeira vez que o IntelliJ é aberto, é apresentada uma tela de "Bem Vindo". Apartir dessa tela já podemos realizar o clone do repositório, utilizando o botão "Get from VCS".

       
      Se no seu caso, ele já abriu algum projeto que você não queira fechar, é só utlizar o menu "File" -> "New" -> "Project from Version Control"

       
      Irá aparecer uma janela para colocar a url do projeto, após adicionar a url e escolher onde seu projeto vai ficar é só clicar em "clone".

       
      Ao finalizar o clone, o IntelliJ abre a janela com o arquivos do projeto:
      Algo que vale à pena mencionar é que mesmo sem ter feito o clone do Datapack, o Intellij realizou o clone automaticamente. Isso ocorre devido ao projeto utlizar submodules. Para mais detalhes veja esse artigo!

       
      Vemos verificar o conteúdo dos repositório, para isso clique no nome da branch "development" no canto inferior direito.  Aqui é mostrado as branches existentes no repositório.
      Nesse caso, o Datapack está em um estado que chamamos de "detached head". Rudemente falando, esse estado indica que fizemos o checkout de um commit específico ao ínves de uma branch. Aqui você encontra mais detalhes!

       
      Vamos "corrigir" esse estado fazendo o checkout da branch development. Clique em origin/development e checkout:

       
      3º Passo - Configurando Remotes
      Agora vamos para uma das mais importantes partes desse guia. Uma das maiores dificuldades que algumas pessoas têm ao se trabalhar com o modelo colaborativo do git, é manter seu repositório atualizado com o repositório oficial.
      Quando realizamos um clone de um repositório fork, para o git aquele repositório é o principal. Mas no modelo colaborativo, é necessário configurar o git para reconhecer o repositório oficial também. Isso nos ajudará a manter o repositório atualizado com o oficial.
      Para isso vamos configurar "os  Remotes" do git.
       
      Vá no menu "Git" -> "Manage Remotes"

       
      Irá aparecer uma janela para configurar os remotes. Note que já temos dois remotes configurados, um para o Core e outro para o Datapack. O remote do core está correto, mas o Datapack está configurado para o repositório oficial. Isso ocorre devido ao arquivo de configuração responsável pelo submodule.

       
      Vamos corrigir o Datapack e adicionar mais dois remotes. Para isso vamos pegar a url dos repositórios oficiais. Após a configuração os remotes ficaram assim:

       
      Após a configuração, vamos atualizar o repositório com o conteúdo dos novos remotes, para isso vá no menu  "Git" -> Fetch.
      Vamos acessar a tab git do IntelliJ, por padrão fica no canto inferior esquerdo, para vermos com mais detalhes o conteúdo do repositório. Aqui podemos ver os conteúdo tanto do repositório fork quanto do oficial.

       
      4º Passo - Realizando mudanças
      Vamos realizar um mudança simples, apenas para demonstrar como o workflow funciona.
      A primeira coisa a fazer antes de realizar a mudança é criar uma nova branch.
      Clique na branch development, canto inferior direito, depois "New Branch".

       
      Der um nome sugestivo para a branch, de forma a dar uma ideia o que aquela branch vai corrigir ou modificar.

       
      Agora podemos realizar a mudança desejada. Após realizar a mudança, vamos abrir a aba "commit" que fica do lado esquerdo. Nessa janela  podemos selecionar quais os arquivos que fazem parte da mudança, para enviar a modificação para o repositório.
      Após selecionar os arquivos necessários, preenchemos a mensagem do commit com uma algo que descreva o que está sendo mudado. O ideal é que se utilize poucas palavras para descrever a mudança.
      Em casos em que é necessário algo mais detalhado, escreva na primeira uma descrição breve, e após uma linha escreva a descrição completa.
      Agora podemos fazer o commit e o push das mudanças.
      Commit -> realiza a mudança no seu repositório local
      Push -> envia a mudança para o respositório remoto ( github)

       
      Abrirar uma tela para alterar alguma opção do push, se necessário. Aqui podemos ver que será criada uma nova branch no repositório remoto, sinalizado pelo label "new" após o nome da branch. Após verificar que está tudo correto, clique no "push".
      *Lembrando que o remote origin é o repositório fork, então a mudança vai para esse repositório e não para o oficial.

       
      Após o push, vamos olhar como ficou o repositório no github. 
      Podemos ver que ao entrar no github ele já nos mostra que foi realizado um push recentemente no repositório. E finalmente fornece um botão para realizarmos o pull request.

       
      Clique no botão "compare & pull request".
      O github abrirá a página de pull request do repositório oficial, automaticamente preencherar algumas informações com a mensagem que colocamos no commit.
      Nessa página, podemos configurar para qual branch o pull request será feito. Por padrão ele fará o pull request na branch "development", caso o pull request seja para outra branch você pode alterá-la.

       
       
      Clique no botão "Create pull request". Ao criar o pull request a mudança vai passar por algumas checagens automáticas, e ficará aberto para alguém da equipe analisar o que foi mudado.
      Essa é fase que chamamos de code review, aqui fazemos uma verificação geral da mudança.
      Algumas das coisas que verificamos aqui:
      A qualidade do código; Se a mudança faz sentido; Se a mudança é necessária; Se o código faz o que supostamente deveria fazer; Se não existe código malicioso; entre outras coisas;
       
      Alguma pessoa do time irá realizar o review do código, podendo aprovar, pedir mudanças ou apenas não aceitar o pull request

       
      5º Passo - Atualizando o repositório com o conteúdo do repositório oficial
      Após o pull request ser aceito, ele é incorporado ao repositório oficial. Então é necessário que o repositório fork e o local seja sempre atualizado também. 
      Para isso, vamos voltar ao IntelliJ. A primeira coisa a fazer é retornar para nossa branch padrão "development". Vamos fazer o checkout dela.

       
      Agora vamos fazer o pull (copiar) das alterações realizados no repositório oficial. Você pode clicar com o botão direito em algum arquivo do projeto -> Git -> Pull...
       

       
      Vamos configurar de onde queremos receber as atualizações, nesse caso queremos atualizar a nossa branch com o repositório oficial e branch development, que foi a que submetemos o pull request.

       
      Podemos ver que nossa branch local está atualizada com a mudança que fizemos no pull request:

       
      Após realizar o pull dessas alterações, você pode fazer push para o seu repositório fork, para mantê-lo sempre atualizado.
       
      Esse processo pode parecer um pouco complicado, ou até mesmo com vários passos. Mas é uma forma de coloboração bastante eficaz que permite a fácil utilização de múltiplos repositórios, sem muitas complicações de merge. Mas isso já é uma outra história.
      O importante é sempre lembrar:
      Antes de fazer qualquer mudança crie uma nova branch sempre a partir da branch padrão, nesse caso "development" Se seu pull request não foi aprovado ainda, e você precisa fazer uma alteração diferente, volte para branch padrão, crie uma nova branch apartir dela e só então comece a realizar a próxima mudança Lembre-se de manter seu repositório sempre atualizado com o oficial De vez em quando faça uma limpeza, delete as branchs que foram criadas e as mudanças já foram aprovadas. Lembre-se o modelo é "short lived branch" então elas tem vida curta mesmo. []'s
       
       
       
    • By Kelvin
      Salve rapaziada, 
      Tenho uma grande novidade para compartilhar com vocês, a parceria oficial entre a L2JBrasil e a Lucera. Portanto, leia toda a postagem para ter informações completas sobre tudo.
       
      O que é Lucera?
      Lucera é a nome da revisão Interlude e Classic russa, que é tão antiga quanta a nossa comunidade e que por longos anos vem sendo trabalhada pelos seus desenvolvedores. Apesar de não ser uma revisão brasileira ela possui toda a sua estruturação em inglês, portanto, pode ser usada facilmente por qualquer.
       
      Porque escolher Lucera?
      Trabalhar com L2J é um trabalho árduo que muitos adotam por paixão e outros por motivos financeiros. Independente do seu interesse você usando uma rev com base Lucera, terá uma opção de revisão que já vem sendo trabalhada a vários anos.
      Muito dos grandes servidores da Europa e América do Norte utilizam a base Lucera para terem sucesso e conseguem muito bem!
      Por aqui a utilização da revisão ainda é um TABU, tanto pela dificuldade na linguagem (apesar do fórum deles ter uma sessão em PT_BR) quanto a ausência de um suporte mais "Friend Frendly", isso por muitas vezes afasta o usuário mais iniciante. Muito dos usuários da L2JBrasil já utilizam ou utilizaram em alguma oportunidade essa pack e uma grande parcela recomenda.
      Eu particularmente dediquei o ano de 2020 para abrir alguns servidores com diversas bases, aCis (excelente para PVP), Sunrise para H5 (falaremos disso posteriormente :P), e Lucera para bases mais MID-LOW rate e foi muito gratificante o retorno.
      Lucera é uma revisão L2J que comparam as suas mecânicas próxima ao L2OFF, isso se deve a cultura que L2OFF são arquivos "oficiais" portanto atestam essa qualidade neste comparativo também.
       
      E a L2JBrasil o que tem com isso?
      Nossa parceria rende a você acesso a um conteúdo semelhante ao do fórum oficial, mas, com uma linguagem mais "amigável" e com conteúdo extra que aprendi ao utilizar a revisão.
      VIA MP: https://www.l2jbrasil.com/messenger/compose/?to=1
      VIA EMAIL: [email protected]
      VIA DISCORD https://discord.gg/sjneErZ3
      Descontos exclusivos postados exclusivamente na área Lucera em VPS, Epic Server e Hospedagem, além de otimização insana na L2JCenter.com.
      Cargo Lucera User

      Acesso a ferramentas de forma mais facilitada através dos anexos no Sub-Forum Lucera na L2JBrasil.


      Guias direcionados a Lineage 2 produzidos por mim para utilização e noções básicas de servidores em Windows e Linux, segurança digital, manutenção e rotinas de backup para banco de dados e muitas outras bizarrices que usuários iniciais cometem, esse recurso será gratuito para o fórum, porém, tópicos relacionados a Lucera serão exclusivos dos nossos membros doadores.
      E de que quebra: a satisfação de contribuir com a manutenção da maior comunidade de Lineage 2 do Mundo que se mantem 100% free até hoje 🙂, já que parte das vendas serão doadas para as despesas do nosso fórum.
       
      O que mais eu ganho com isso?
      Você adquirindo uma licença Lucera através da L2JBrasil terá:
      Participação em uma comunidade internacional criada a vários anos e extremamente ativa.  
      Acesso a 1 Licença Interlude ou Classic por IP sem a necessidade de doações adicionais.
      2.1 Atualizações custam 20 USD mensal e não são obrigatórias. Acesso a SVN do projeto para receber atualizações**, bug report e sugestão de adoções de mods.  
      Uma revisão o mais estável possível com praticamente todos os sistemas e subsistemas funcionais.  
      O que eu não ganho?
      Você não terá um assistente pessoal para criar seu servidor a seu gosto, você recebera uma licença de uma revisão premium, não um desenvolvedor particular 😛 Um java moder particular, todos os mods pertencentes na Lucera são oficialmente colocados na revisão, então, não existe "mods exclusivos", você pode desenvolver se quiser ou sugerir, dependendo da quantidade de interessados o desenvolvedor poderá avaliar a implementação. Tratamento diferencial junto a L2JBrasil ou qualquer extensão da comunidade.  
      Interlude
      A versão Interlude é o projeto principal da Lucera, trabalhado ao longo de diversos anos é bem estável.

      Teste o servidor Interlude baixando o patch pelo link: 
      📦 Tenha o cliente Interlude e use está system para conectar-se.
      Pra quem gosta de procurar coisas na pasta config link abaixo:
      📦 Baixe a pasta config L2 Lucera Interlude.

      Senha para arquivos: l2jbrasil.com
       
      Classic (Interlude Remastered)
      A versão Classic é o novo projeto Lucera, usada todos os principais mecanismos da versão Interlude, essa rev trabalha com o cliente Classic Secret of Empire / Fafurion, portanto a ideia é limitar o conteúdo ao Interlude mas inevitavelmente exisatem coisas de interface e do cliente que podem ser usados caso existam ou forem implementados como: braceletes, agathions, transformações entre outras coisas.
      A Lucera Classic é uma revisão que ainda está em desenvolvimento. As atualizações são periódicas. É uma excelente exclusividade comparada a outros concorrentes com valores bem maiores e com qualidade inferir. Se é um iniciante e precisa de algo sólido talvez a versão interlude seja para você.

      Outra coisa que acho legal nesse cliente é a qualidade gráfica superior, HDR, Surround e mais uma penca de melhorias em relação aos outros clientes.
      Teste o servidor Interlude baixando o patch pelo link: 
      📦 Baixe o cliente completo e inclua este l2.ini dentro da pasta /sytem_en/
      Pra quem gosta de procurar coisas na pasta config link abaixo:
      📦 Baixe a pasta config L2 Lucera Classic.
       
      FAQ
      Kelvin vocês estão vendendo revisões de L2J? Vai ser liberado pra todo mundo então?
      Não, para essas parcerias acontecerem o time ou desenvolvedor precisa provar algumas qualidades tais como tempo de desenvolvimento, pelo menos uma micro comunidade estabelecida com o mínimo do desenvolvedor ativo nela e/ou site organizado e detalhado com informações claras e transparentes sobre o serviço.
      É oferecido a oportunidade de participar de um projeto de qualidade mediante doação para sua subsistência, não venda.
      Qual a melhor rev Interlude ou Classic?
      Ambas são bem idênticas no que diz respeito à mecânicas ingame já que defendem a jogabilidade do interlude.
      Claro a Classic ainda é uma versão em construção já que possuem mais sistemas que a versão canonica.
      Posso ter acesso admin?
      Sim, envie um MP com o nick do seu personagem.
      Posso trocar minha Licença de Interlude para Classic?
      Não, são projetos separados e esforços separados para cada projeto acontecer, portanto, não aventure-se. Escolha bem a versão que deseja trabalhar, conheça, estude-a, veja feedbacks e assim tenha sucesso. 
      Qual nível de rates a Lucera é recomendada?
      Já utilizei em servidores base 3x até 100x portanto é uma excelente escolha em ambos os aspectos. 
      Qual o papel da L2JBrasil nisso?
      A L2JBrasil é um parceiro, uma ponte, facilitamos tanto a aquisição da licença quanto damos facilidades nela sem que você gaste 1 centavo a mais de contribuição nisso.
      Não consigo doar porque os valores são em dólares ou é difícil pagar como faz?
      Nós podemos fazer a ponte entre isso, os valores dependerão da cotação do dólar da operadora do cartão + iof, portanto, esteja certo de sua aquisição.
      Vou usar uma versão crackeada!
      Você não precisa arriscar tempo e dinheiro em algo vazado, sem updates, use uma aCis, Mobius ou Frozen, tem versões open source e grátis, não seja seu pior inimigo.
      Quem já possui uma licença Lucera antiga como fica?
      Não teremos uma politica de acessos a membros que não participem desse programa de parceria a principio, porém, se você tem conhecimento sobre a área e gostaria de ajudar, você recebera um acesso diferenciado e sua permanência decorrera da sua atividade e qualidade desta.
    • By junin00
      Pack 01



      Pack 02

       
      Pack 03

       
      Pack 04

       
      Pack 05

       
      Pack 06

      Use o L2ViewUTX.rar para visualizar o nome dos ícones, pois nem todos estão igual ao da imagem.

      Arquivo com as texturas para download: 
      favero_l2_icons.rar


      Créditos: NCSoft, e eu por Adaptar.

      SE GOSTOU DEIXA O LIKE AI 👍
    • By Kelvin
      Caminho: Gameserver\config\olympiad.properties\
      *Para Classic
      1. Procure por OlympiadNewStadiums = False e troque para True.
      2. Atualize os arquivos do jogo 
      \Maps\17_10_Classic.unr (arquivo em anexo). 
      2.1 Atualize os arquivos do geodata
      Gameserver\geodata\17_10.l2g (arquivo em anexo).
      3. A nova área já estará disponivel:

       
      17_10_Classic.zip 17_10.zip
    • By Kelvin
      Caminho: gameserver/data/multisell/
      Uma multisell com chance é uma lista de compra onde você exige determinados itens para entrega e o NPC dentre uma lista sorteia e entrega no seu inventário. Mantenha o parâmetro is_chanced habilitado.
      <config showall="true" is_chanced="true" notax="true" keepenchanted="false" />
      Exemplo da multisell completa:
      <?xml version='1.0' encoding='utf-8'?> <list> <config showall="true" is_chanced="true" notax="true" keepenchanted="false" /> <item id="1"> <ingredient id="1459" count="1"/> <!-- Item exigido para ser entregue e trocado --> <production id="71" count="1" chance="0"/> <!-- O primeiro item tem que ser posto com a chance de 0 para que o cliente identifique os restantes e mostre. Isso não afeta em nada --> <production id="71" count="1" chance="50"/> <!-- 50% de Chance de ter oo item --> <production id="72" count="1" chance="50"/> <!-- 50% de Chance de ter oo item --> </item> </list> Vai ficar algo semelhante a isso:

    • By Kelvin
      ID do NPC: 40010
      HTML: Gameserver\data\html-en\mods\buffer
      XML: Gameserver\data\buff_templates.xml
      O arquivo XML é o local onde você configura level, valores, condições e assim por diante.
      Vamos considerar a XML e seus buff_templates.xml formato:

      Exemplo:
      <template menuId="200" target="BUFF_PLAYER"> <consume> <item id="57" amount="200000" /> </consume> <produce> <skill id="1068" level="3" /> <skill id="1040" level="3" /> <skill id="1086" level="2" /> <skill id="1204" level="2" /> <skill id="1077" level="3" /> <skill id="1242" level="2" /> <skill id="1268" level="4" /> </produce> </template> Vamos entender estas tags:
      MenuId - É o ID que vamos criar um alvo de buffer, seja para BUFF_PLAYER ou BUFF_PET.
      Consume - ID e quantidade dos itens para dar o buff.
      Produce - São os valores com ID e nível dos buffs que serão entregues ao chamar esse MenuID.
      <consume> <item id="57" amount="200000" /> <item id="4037" amount="0" /> </consume> No exemplo acima coloquei para o item cobrado ser 200000 adenas. 
      Dica: pode criar ou usar uma moeda existente para ser um "coin de buff" ou semelhante. Em amount se o valor for igual a 0 ele não vai consumir ao entregar o buff. Ou você pode colocar um consumo se for uma moeda recorrente. 
      Além disso, você pode usar vários itens na planilha (buff_templates.dtd) a partir dos quais o primeiro dos existentes no inventário será consumido - é conveniente para contas premium com níveis diferentes. Exemplo:
      <consume anyFirst="true"> <item id="6673" amount="0" /> <item id="4037" amount="0" /> </consume> ----
      Recaptulando, a função produce é onde será armazenamento o buff ou o esquema de buffs que você deseja entregar para aquele ID.
      Entrega apenas 1 buff:
      <produce> <skill id="1068" level="1" /> -> Entrega apenas 1 buff </produce> Entrega vários buffs:
      <produce> <skill id="1068" level="3" /> <skill id="1040" level="3" /> <skill id="1086" level="2" /> <skill id="1204" level="2" /> <skill id="1077" level="3" /> <skill id="1242" level="2" /> <skill id="1268" level="4" /> </produce> Se você quiser limitar um buff para ser entregue apenas em um determinado level use a variável from_level, o player precisa ter 200000 e é necessário ter precisamente o level 20 no exemplo abaixo, veja:
      <consume> <item id="57" amount="200000" from_level="20"/> </consume> Para exigir um nível mínimo e ser livre para todos os subsequentes podemos usar a variável minLevel na tag do template:
      <template menuId="126" target="BUFF_PLAYER" minLevel="51"> -> Level minimo necessário para receber o buff. <consume> <item id="57" amount="200000" /> </consume> <produce> <skill id="1068" level="3" /> <skill id="1040" level="3" /> <skill id="1086" level="2" /> </produce> </template>
      Veja um exemplo de como adicionar um esquema de buff a um dialogo html localizado em \Gameserver\data\html-en\mods\buffer\1.html
      O dialogo vamos encontrar a ação assim:
      <a action="bypass -h scripts_services.Buffer:act ask=200&reply=1">Fighter 1 lvl</a>

      Vamos entender:
      ask=200 - É o ID que inserimos no campo MenuID, portanto, esse botão vai char o buff(s) que você colocou nesse template com as condições internas que você aprendeu neste guia. 

      &reply=1 - É a pagina de retorno, o player clica, ganha o buff e retorna. Neste exemplo o replay é 1, voltara para a 1.html. Você pode criar htmls adicionais de sucesso para buff ou qualquer coisa que sua criatividade permita.
       
      GG, você entende o básico de como trabalhar com o buff.
    • By KingDestiny
      Lineage II Cetus is a C5 (Oath of Blood) retail classic x3 Project.
      Golden Chronicle is throwing back some memories to oldschool players
      and gives the chance to new players to live that great expirience
      of the hardcore way to level up & enjoy parties for farming etc.

      L2Server Time: +3 GMT
      L2Server Launch Date: 01/02/2021-22:00

      Expirience: 3x
      Skill points: 3x
      Adena - 3x
      NPC drop - 1x
      NPC Spoil - 1x
      Offline Trading System: Enabled
      Offline Crafting System: Enabled
      Retail rates for Quests & Festivals
      Classic gameplay
      Free Premium Character

      (NO P2W / ONE BOX PER IP / NO CORRUPTIONS / SMOOTH GAMEPLAY )


      How to be FREE PREMIUM Character?
      You can take FREE PREMIUM via Voting for L2Cetus

      FREE PREMIUM BENEFITS

      Expirience 6x
      Skill points: 6x
      Adena - 6x
      Rates increase duration : 12 Hours
      ---- Server starts with Special Event ----

      L2Herbs Event - 01/02/2021 - 15/02/2021

      Herbs time increased from retail (1 minute) to 3 minutes.
      Herbs drop rate is increased by 10%.
      Rare type of Herbs (Superior,Special) Drop rates increased by 5%
       
      Links: Top L2JBrasil de Servidores de Lineage2 - Status - L2Cetus
    • By AikoN~
      Salve. 
      Um colega nosso da L2JDream @ThypS compartilhou recentemente um arquivo Env.int desenvolvido por algum Russo da vida, que deixa a aura Hero do Interlude (que é bem estouradona) igual a do atual Classic. 
      Na minha opinião muito mais linda, leve e "super show de bola" kk
      Não sei se só com o print da para tirar uma conclusão, por favor baixem ela, joguem dentro da system e testem por vocês mesmo e me digam o que acham??? :D 

       
       
      DOWNLOAD
      Senha:
      byAikoN
       
      Créditos:
       
       
      Glow Hero Classic by AikoN.rar
  • Posts

Projeto L2JORG Community


KhayrusS

Recommended Posts

7 minutos atrás, KhayrusS disse:

Adicionado ao backlog, obrigado!

 

Algum erro no Authserver ? Pode verificar no arquivo connect.ini se o IP configurado está correto ?

o erro e que ele tem que por mais que 6 letras no login e senha se nao toma desconect EXEMPLO

Login : "joao" Nao da certo

Senha : Joao Nao da certo

o correto 

Login Joao2020

Senha Joao2020

 

2 minutos atrás, Garrafinha disse:

ola eu ligo o authserver.bat e da isso Alguem sabe como resolver?

[Starting Auth Server.

Error occurred during initialization of boot layer
java.lang.module.FindException: Module org.l2j.authserver not found

Server terminated abnormaly


server terminated

Pressione qualquer tecla para continuar. . .]

variavel de ambiente ja adicionada normalmente...java 14
 

image.png.b4a7a97b1c54050f2c13f132c7ed5af0.png

use como referencia ali esta o java 1.8 voce tera que fazer as mesma etapa mais mais com o java 14

Link to comment
Share on other sites



19 minutos atrás, Garrafinha disse:

Error occurred during initialization of boot layer
java.lang.module.FindException: Module org.l2j.authserver not found

Esse erro ocorre quando o java não consegue encontrar o módulo. O arquivo AuthServer.jar está dentro da pasta lib ?

11 minutos atrás, Garrafinha disse:

esse servidor nao nescessita de arquivo HEXID?

Não, a autenticação é feita por IP.

11 minutos atrás, Garrafinha disse:

como adiciono na tabela gameservers?

Esse procedimento está automático.

Link to comment
Share on other sites

KhayrusS Todas as quest de todas a classe os scrols de teleporte que voce usa quando termina de mata os mobs nao esta pegando 

3 minutos atrás, Garrafinha disse:

Nao tem pasta lib.

pode ser que tenha faltado arquivos

alguem ja tem o compilado ?

eu tenho Link https://www.mediafire.com/file/mb8nfac8kx5rkhw/L2jOrg-1.4.0.rar/file

DB https://www.mediafire.com/file/i8f6mgvqjgwol8m/20200430200132.nb3/file

 

Edited by sucodeuva
Link to comment
Share on other sites

4 minutos atrás, sucodeuva disse:

KhayrusS Todas as quest de todas a classe os scrols de teleporte que voce usa quando termina de mata os mobs nao esta pegando 

Opa, foi corrigido hoje, estará disponível na próxima release, ou você já pode verificar compilando a branch development 🙂

https://github.com/JoeAlisson/L2jOrg/commit/20f12dadaf8e527b9a99fd4fc0b94ebd58c7a85d

 

 

 

Link to comment
Share on other sites

12 minutos atrás, KhayrusS disse:

Opa, foi corrigido hoje, estará disponível na próxima release, ou você já pode verificar compilando a branch development 🙂

https://github.com/JoeAlisson/L2jOrg/commit/20f12dadaf8e527b9a99fd4fc0b94ebd58c7a85d

 

 

 

Nossa que Burro agora que olhei que Intelig ele me avisou que tinha arquivos modificados kkkkkkk vlw parceiro

Edited by sucodeuva
Link to comment
Share on other sites

28 minutos atrás, Garrafinha disse:

alguem ja tem o compilado ?

Opa amigo você mesmo pode compilar é rápido e fácil. Além do que isso irá facilitar quando sair novas releases você não dependerá de alguém disponibilizar compilado.

Basicamente, depois de configurar o Java path e o JAVA_HOME, você só precisar executar o seguinte comando no CMD, na pasta do projeto:

gradlew.bat distZip

Ou pode executar diretamente da IDE a task distZip do gradle. Mais informações:

 

 

 

Link to comment
Share on other sites

Boa noite, tem um jeito que o IntelliJ IDEA 2020.1 x64 ele verefica se os arquivos estao modificados e modificam conforme as atualizaçao?

 

Tipo estou com a versao do servidor 1 mais saiu a versao 2 com umas correçoes e quando eu abrir o IntelliJ IDEA 2020.1 x64 ele atomaticamente ele  atualiza ?

Link to comment
Share on other sites

O IntelliJ ainda não tem essa funcionalidade de atualizar automaticamente:

https://youtrack.jetbrains.com/issue/IDEA-24057?_ga=2.215726739.541170341.1588543803-1503697790.1546973914&_gac=1.24171848.1586271002.Cj0KCQjwybD0BRDyARIsACyS8ms2m39CYQhUIA4d-FjQ9aXJIiJqkYMWTbIvE_OaovL9H3vfXVcvDOUaAif-EALw_wcB

https://youtrack.jetbrains.com/issue/IDEA-100846?_ga=2.215726739.541170341.1588543803-1503697790.1546973914&_gac=1.24171848.1586271002.Cj0KCQjwybD0BRDyARIsACyS8ms2m39CYQhUIA4d-FjQ9aXJIiJqkYMWTbIvE_OaovL9H3vfXVcvDOUaAif-EALw_wcB

Mas você pode instalar esse plugin:

https://plugins.jetbrains.com/plugin/7499-gittoolbox

Não sei se é bem o que você está procurando, mas ele faz o auto fetch que já é metade do caminho 🙂

Outra coisa que você pode usar é o "Atualzar projeto" (ctrl+t) e escolher a opção de merge, essa seta azul depois do nome Git.

209028403_Screenshotfrom2020-05-0320-31-51.png.f1726b0d2ecb7263b96b9e6f3496aace.png

Link to comment
Share on other sites

3 horas atrás, KhayrusS disse:

O IntelliJ ainda não tem essa funcionalidade de atualizar automaticamente:

https://youtrack.jetbrains.com/issue/IDEA-24057?_ga=2.215726739.541170341.1588543803-1503697790.1546973914&_gac=1.24171848.1586271002.Cj0KCQjwybD0BRDyARIsACyS8ms2m39CYQhUIA4d-FjQ9aXJIiJqkYMWTbIvE_OaovL9H3vfXVcvDOUaAif-EALw_wcB

https://youtrack.jetbrains.com/issue/IDEA-100846?_ga=2.215726739.541170341.1588543803-1503697790.1546973914&_gac=1.24171848.1586271002.Cj0KCQjwybD0BRDyARIsACyS8ms2m39CYQhUIA4d-FjQ9aXJIiJqkYMWTbIvE_OaovL9H3vfXVcvDOUaAif-EALw_wcB

Mas você pode instalar esse plugin:

https://plugins.jetbrains.com/plugin/7499-gittoolbox

Não sei se é bem o que você está procurando, mas ele faz o auto fetch que já é metade do caminho 🙂

Outra coisa que você pode usar é o "Atualzar projeto" (ctrl+t) e escolher a opção de merge, essa seta azul depois do nome Git.

209028403_Screenshotfrom2020-05-0320-31-51.png.f1726b0d2ecb7263b96b9e6f3496aace.png

Obrigado

 

Link to comment
Share on other sites

52 minutos atrás, Hl4p3x disse:

Sem erro algum!

Por favor, poderia colocar esse Logger no arquivo log4j.xml do Authserver e postar o resultado do console após tentativa de login?

<Logger name="io.github.joealisson.mmocore" level="DEBUG">
  <AppenderRef ref="auth"/>
  <AppenderRef ref="debug"/>
</Logger>

 

A intenção é para que o console mostre algumas informações mais detalhadas da comunicação:

[INFO ][2020-05-04 12:43:51][AuthServer:<init>:44]: Listening for GameServers on 0.0.0.0/0.0.0.0:9014
[DEBUG][2020-05-04 12:43:51][ConnectionHandler:createChannelGroup:46]: Channel group is using FixedThreadPool
[INFO ][2020-05-04 12:43:51][AuthServer:<init>:52]: Login Server ready on /127.0.0.1:2106
[DEBUG][2020-05-04 12:44:02][ConnectionHandler:acceptConnection:105]: Accepting connection from sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected local=/127.0.0.1:2106 remote=/127.0.0.1:37606]
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:69]: no packet found
[DEBUG][2020-05-04 12:44:02][Client:encryptAndWrite:114]: Sending packet Init to [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][ReadHandler:completed:34]: Reading 42 from [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][ReadHandler:parseAndExecutePacket:97]: Trying to parse data
[DEBUG][2020-05-04 12:44:02][ReadHandler:parseAndExecutePacket:107]: Data parsed to packet org.l2j.authserver.network.client.packet.client2auth.[email protected]
[DEBUG][2020-05-04 12:44:02][ReadHandler:execute:117]: packet org.l2j.authserver.network.client.packet.client2auth.[email protected] was read from client [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:encryptAndWrite:114]: Sending packet GGAuth to [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:69]: no packet found
[DEBUG][2020-05-04 12:44:02][ReadHandler:completed:34]: Reading 322 from [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][ReadHandler:parseAndExecutePacket:97]: Trying to parse data
[DEBUG][2020-05-04 12:44:02][ReadHandler:parseAndExecutePacket:107]: Data parsed to packet org.l2j.authserver.network.client.packet.client2auth.[email protected]
[DEBUG][2020-05-04 12:44:02][ReadHandler:execute:117]: packet org.l2j.authserver.network.client.packet.client2auth.[email protected] was read from client [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:69]: no packet found
[DEBUG][2020-05-04 12:44:02][Client:encryptAndWrite:114]: Sending packet LoginOk to [admin (127.0.0.1)]
[INFO ][2020-05-04 12:44:02][loginHistory:processAuth:188]: Account Logged admin
[DEBUG][2020-05-04 12:44:05][ReadHandler:completed:34]: Reading 34 from [admin (127.0.0.1)]
[DEBUG][2020-05-04 12:44:05][ReadHandler:parseAndExecutePacket:97]: Trying to parse data
[DEBUG][2020-05-04 12:44:05][ReadHandler:parseAndExecutePacket:107]: Data parsed to packet org.l2j.authserver.network.client.packet.client2auth.[email protected]
[DEBUG][2020-05-04 12:44:05][ReadHandler:execute:117]: packet org.l2j.authserver.network.client.packet.client2auth.[email protected] was read from client [admin (127.0.0.1)]
[DEBUG][2020-05-04 12:44:05][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:05][Client:encryptAndWrite:114]: Sending packet ServerList to [admin (127.0.0.1)]

 

1 hora atrás, MateusPereira disse:

obrigado amigo atualizei o mysql e ja ta funcionando normal, para deixar online no DC tem que usar uma system diferente né ? você teria disponivel ?

Você só precisa editar o aquivo connect.ini colocando o IP do DC

Link to comment
Share on other sites

41 minutos atrás, KhayrusS disse:

Por favor, poderia colocar esse Logger no arquivo log4j.xml do Authserver e postar o resultado do console após tentativa de login?

<Logger name="io.github.joealisson.mmocore" level="DEBUG">
  <AppenderRef ref="auth"/>
  <AppenderRef ref="debug"/>
</Logger>

 

A intenção é para que o console mostre algumas informações mais detalhadas da comunicação:

[INFO ][2020-05-04 12:43:51][AuthServer:<init>:44]: Listening for GameServers on 0.0.0.0/0.0.0.0:9014
[DEBUG][2020-05-04 12:43:51][ConnectionHandler:createChannelGroup:46]: Channel group is using FixedThreadPool
[INFO ][2020-05-04 12:43:51][AuthServer:<init>:52]: Login Server ready on /127.0.0.1:2106
[DEBUG][2020-05-04 12:44:02][ConnectionHandler:acceptConnection:105]: Accepting connection from sun.nio.ch.UnixAsynchronousSocketChannelImpl[connected local=/127.0.0.1:2106 remote=/127.0.0.1:37606]
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:69]: no packet found
[DEBUG][2020-05-04 12:44:02][Client:encryptAndWrite:114]: Sending packet Init to [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][ReadHandler:completed:34]: Reading 42 from [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][ReadHandler:parseAndExecutePacket:97]: Trying to parse data
[DEBUG][2020-05-04 12:44:02][ReadHandler:parseAndExecutePacket:107]: Data parsed to packet org.l2j.authserver.network.client.packet.client2auth.[email protected]
[DEBUG][2020-05-04 12:44:02][ReadHandler:execute:117]: packet org.l2j.authserver.network.client.packet.client2auth.[email protected] was read from client [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:encryptAndWrite:114]: Sending packet GGAuth to [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:69]: no packet found
[DEBUG][2020-05-04 12:44:02][ReadHandler:completed:34]: Reading 322 from [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][ReadHandler:parseAndExecutePacket:97]: Trying to parse data
[DEBUG][2020-05-04 12:44:02][ReadHandler:parseAndExecutePacket:107]: Data parsed to packet org.l2j.authserver.network.client.packet.client2auth.[email protected]
[DEBUG][2020-05-04 12:44:02][ReadHandler:execute:117]: packet org.l2j.authserver.network.client.packet.client2auth.[email protected] was read from client [127.0.0.1]
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:02][Client:tryWriteNextPacket:69]: no packet found
[DEBUG][2020-05-04 12:44:02][Client:encryptAndWrite:114]: Sending packet LoginOk to [admin (127.0.0.1)]
[INFO ][2020-05-04 12:44:02][loginHistory:processAuth:188]: Account Logged admin
[DEBUG][2020-05-04 12:44:05][ReadHandler:completed:34]: Reading 34 from [admin (127.0.0.1)]
[DEBUG][2020-05-04 12:44:05][ReadHandler:parseAndExecutePacket:97]: Trying to parse data
[DEBUG][2020-05-04 12:44:05][ReadHandler:parseAndExecutePacket:107]: Data parsed to packet org.l2j.authserver.network.client.packet.client2auth.[email protected]
[DEBUG][2020-05-04 12:44:05][ReadHandler:execute:117]: packet org.l2j.authserver.network.client.packet.client2auth.[email protected] was read from client [admin (127.0.0.1)]
[DEBUG][2020-05-04 12:44:05][Client:tryWriteNextPacket:64]: Trying to send next packet
[DEBUG][2020-05-04 12:44:05][Client:encryptAndWrite:114]: Sending packet ServerList to [admin (127.0.0.1)]

 

Você só precisa editar o aquivo connect.ini colocando o IP do DC

image.thumb.png.40c5c81547537fc99a692f83c7109dd1.png

PYKlyRG.jpg&key=822e505460230a53f5b13227467836b3217127e6dec74c5c3b3701e6d02541d8

Lineage 2 Interlude & High Five
L2STUDIO, seu servidor está aqui!

Link to comment
Share on other sites

Obrigado pelo log.

Dada as informações do log duas coisas que eu penso estar acontecendo:

em authserver.properties existem uma propriedade onde você pode configurar os valores permitidos para o nome do usuário, atualmente por padrão está configurado para alfanumeríco de 5 a 32 caracteres:

# Defines a template to Usernames
UsernameTemplate=[A-Za-z0-9_]{5,32}

Outra coisa para verificar é se a configuração de auto create accounts está ativada:

AutoCreateAccounts=true

Poderia confirmar essas configurações e que o nome do usuário está de acordo com template? Caso esteja precisarei analisar um pouco mais a fundo.

 

Agora sobre o motivo do cliente não mostrar o motivo de estar sendo desconectado:

Devido a natureza assíncrona da conexão, antes do cliente processar o packet com a informação do motivo ele é desconectado. Vale a observação que só vi esse comportamento ocorrer no Windows. Na próxima release esse comportamento será corrigido.

Link to comment
Share on other sites

2 horas atrás, KhayrusS disse:

Obrigado pelo log.

Dada as informações do log duas coisas que eu penso estar acontecendo:

em authserver.properties existem uma propriedade onde você pode configurar os valores permitidos para o nome do usuário, atualmente por padrão está configurado para alfanumeríco de 5 a 32 caracteres:

# Defines a template to Usernames
UsernameTemplate=[A-Za-z0-9_]{5,32}

Outra coisa para verificar é se a configuração de auto create accounts está ativada:

AutoCreateAccounts=true

Poderia confirmar essas configurações e que o nome do usuário está de acordo com template? Caso esteja precisarei analisar um pouco mais a fundo.

 

Agora sobre o motivo do cliente não mostrar o motivo de estar sendo desconectado:

Devido a natureza assíncrona da conexão, antes do cliente processar o packet com a informação do motivo ele é desconectado. Vale a observação que só vi esse comportamento ocorrer no Windows. Na próxima release esse comportamento será corrigido.

Resolvido aqui.

# Defines a template to Usernames
UsernameTemplate= .*

 

PYKlyRG.jpg&key=822e505460230a53f5b13227467836b3217127e6dec74c5c3b3701e6d02541d8

Lineage 2 Interlude & High Five
L2STUDIO, seu servidor está aqui!

Link to comment
Share on other sites

  • L2JBr ADM
On 4/29/2020 at 8:07 PM, KhayrusS said:

Isso mesmo! Inclusive temos o interesse de implementar as features  pro essence também, mas depende um pouco do andamento do desenvolvimento. Hoje não tenho tempo para manter os dois, inclusive meu tempo é curto até pra manter o classic, então faço alguma coisa quando tenho 20/30 minutos livre.
Um dos colaboradores do projeto tem mais interesse no Essence do que no próprio classic, ano passado ele começou um fork para implementar o Essence, mas acabou ficando sem tempo e o projeto ficou parado. Basicamente o que necessita de mudança para utilizar o Essence é esse diff:
 

 

Para implementar um servidor como multi-suporte é preciso fazer um sistema de interfaceamento no datapack, porque isso, cada servidor possui caracteristicas distintas, e o datapack muda completamente, quem já lidou com os arquivos dat do lineage2 atual sabe o que to falando.

Da mesma forma que o próprio jogo possui "Branchs" de seus arquivos  o server também deveria ter essa separação, por exemplo o Essence (BLOODY) é extremamente reduzido  com menos spawn, menos drops, systema de random craft.

NORMAL, RELAX, TEST, BROAD, RESTRICTED, EVENT, FREE, UNK_7, WORLD, NEW, CLASSIC, ARENA, BLOODY, CLASSICADEN(BLOODY.getMask() | CLASSIC.getMask());

 

a estrutura da pasta data começaria com uma pasta default/

então haveria subpastas classic e blood

O classicaden é o tipo do servidor do Classic NA (Ncwest) que tem sistema de skins o NCshop Vip Tier System e transformação, que o instinto Classic Europeu Skelth não tinham.

O tipo relax, não existe faz tempo, ele era um servidor sem pvp, era um sistema full pve.

O tipo arena é um servidor sem mobs, npc e quests usado em eventos de torneio contendo itens e skills dos players apenas.

Os demais eu desconheço ou  tem pouca relevância.

O tipo desse servidor define em qual agrupamento do cliente ele irá aparecer, se é no Live ou no Classic.

 

Não queria tirar o foco, mas se quiser fazer um servidor multi-versão no futuro seria interessante pensar nessa estrutura de load de datapack.

 

 

 

 

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link to comment
Share on other sites

@Grundor Talvez eu tenha me expressado mal.  Sim, o que você falou está completamente certo. O sentido de utilizar que mencionei foi puramente client side, do contrário não seria tanto trabalho para implementar como falei. Toda a estrutura e funcionamento teria que ser feito ainda no servidor.

A intenção é utilizar o JPMS para fazer o load de todos os componentes, mas ainda existe muita coisa para desacoplar do core antes de ter algo funcional nesse sentido.

Hoje algumas informações já são carregadas utilizando o JPMS, como quests, efeitos, condições, Instâncias, handlers. Mas ainda não é o suficiente, muita coisa ainda precisa ser feita e melhorada.

O suporte a multi-versão, como falei antes, vai depender do avanço do desenvolvimento. Antes de manter uma outra versão, ainda é necessário resolver vários problemas. O mais importante no momento é relacionado aos spawns, que além de ter vários errados/faltando, não temos ferramentas adequadas para pegar essas informações. A pessoa que estava me ajudando com isso acabou ficando sem tempo, e essa parte, infelizmente, hoje está parada.

 

Link to comment
Share on other sites

Em 02/05/2020 at 21:08, KhayrusS disse:

Opa amigo você mesmo pode compilar é rápido e fácil. Além do que isso irá facilitar quando sair novas releases você não dependerá de alguém disponibilizar compilado.

Basicamente, depois de configurar o Java path e o JAVA_HOME, você só precisar executar o seguinte comando no CMD, na pasta do projeto:

gradlew.bat distZip

Ou pode executar diretamente da IDE a task distZip do gradle. Mais informações:

 

 

 

VALEW AMIGAO

Edited by Garrafinha
oBRIGADO AMIGAO

www.l2deviane.com, Freya, 15x

img.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.