aCis Pack Setup: como compilar e rodar um servidor Interlude C6

Um setup do pack aCis é o caminho mais direto para um servidor Interlude C6 parecido com o retail e totalmente sob seu controle. O aCis ("another Crappy interlude server") é um emulador Java construído sobre o trabalho do L2J e travado em uma única crônica, e é exatamente por isso que os donos de servidores privados voltam a ele sempre. Seu GeoData é reaproveitado em outros packs, o comportamento acompanha de perto o retail, e o projeto é ajustado para Interlude em vez de se dividir entre uma dúzia de crônicas. Este guia leva um dono de servidor pelos pré-requisitos, o build com Ant, o instalador de banco de dados, a configuração, o handshake do hexid e o patch do lado do cliente, incluindo a armadilha do build com JDK 21 que trava a maioria das primeiras configurações.
O que é o aCis e por que os admins de Interlude o escolhem
aCis significa "another Crappy interlude server". É um emulador de servidor de Lineage 2 em Java derivado do trabalho do L2J e, ao contrário de projetos de propósito geral, mira uma única crônica: Interlude (C6). Esse foco estreito é o ponto. Como o código nunca precisa atender Kamael, Gracia ou sistemas posteriores, o comportamento se mantém próximo do Interlude retail, as quests e skills são ajustadas para essa era, e o GeoData que acompanha o aCis é bom o suficiente para que outros packs o reutilizem.
O projeto segue um modelo freemium. As fontes públicas são gratuitas, enquanto as revisões mais novas e refinadas são reservadas para apoiadores que contribuem com dinheiro ou código. Se você quer as correções mais recentes, ou doa ou envia merge requests. O fórum da comunidade em acis.i-live.eu é onde ficam as revisões, os changelogs e as threads de suporte, e o repositório público está em gitlab.com/Tryskell/acis_public.
Como contexto, o L2JMobius suporta muitas crônicas e é muito ativo, o que o torna uma escolha geral forte. O aCis é a aposta oposta: só Interlude, valorizado pela fidelidade ao retail. Se o seu servidor é um projeto Interlude C6, essa troca geralmente vale a pena.

Pré-requisitos: JDK, MariaDB, Eclipse e Ant
Quatro coisas precisam estar prontas antes do primeiro build: um JDK, o MariaDB, o Eclipse (o pacote IDE for Java Developers) e o Ant. No Windows, o pacote do MariaDB vem com o HeidiSQL, uma forma prática de inspecionar os dois bancos de dados depois. O MariaDB em si é uma instalação padrão de mariadb.org.
A versão do JDK não é opcional, porque depende da revisão do aCis que você vai compilar:
| Revisão do aCis | JDK necessário |
|---|---|
| Abaixo de 381 | JDK 8 |
| 381 a 406 | JDK 11 |
| Acima de 406 | JDK 21 |
As revisões públicas atuais estão na faixa 4xx, então o JDK 21 é a escolha moderna. Tanto o Liberica JDK 21 quanto o OpenJDK 21 funcionam. O detalhe importante é apontar o Eclipse e o Ant para o mesmo JDK 21 que as fontes exigem. Misturar um JDK mais novo ou mais antigo do que a revisão espera é uma causa comum de saídas de build confusas.
Obtendo o código-fonte: revisões públicas vs builds de apoiadores
Comece pelo repositório público. Clone-o em uma pasta de trabalho e confira o número da revisão no readme ou no changelog para saber com qual JDK e qual conjunto de recursos você está trabalhando. Como as revisões mais novas ficam atrás do suporte, a árvore pública pode ficar atrás do bleeding edge, e isso é esperado, não sinal de um download quebrado.
Se você mantém um servidor ativo e depende de correções recentes, as revisões de apoiadores são o caminho de atualização honesto. Revise os changelogs do fórum antes de decidir, porque algumas revisões mudam chaves de configuração ou expectativas de banco de dados, e você vai querer planejar uma janela de manutenção em vez de aplicar patch às cegas.

Importe e compile com Ant (e a armadilha do JDK 21)
O projeto inclui um script Ant build.xml. No Eclipse, importe o projeto aCis_gameserver, deixe-o resolver os jars em lib/ e então execute o build do Ant. A saída é o l2jserver.jar, que fica na pasta libs/ do gameserver. No Ubuntu 22 ou 24 também existe um instalador da comunidade que instala JDK 21, MariaDB, Apache com PHP e Adminer, e Ant, cria o usuário do banco de dados e os dois bancos, preenche o instalador e os arquivos de configuração, compila o pack e organiza tudo. Essa automação economiza muito tempo, embora você ainda deva ler o que ela altera.
A pegadinha do build que vale conhecer em JDKs modernos: no JDK 18 e posteriores, o uso do Security Manager pelo Apache Ant gera um erro que diz UnsupportedOperationException: Setting a Security Manager is not supported. Não é um problema do código do aCis. A correção limpa é usar uma versão recente do Eclipse e do Ant cujo build não dependa mais do Security Manager obsoleto. Se você estiver preso a um toolchain antigo, pode passar a propriedade do Ant -Dant.securitymanager.usage.warn=true para contornar, mas atualizar o Eclipse é a solução mais organizada.
Se o build tiver sucesso mas o servidor não iniciar, a primeira coisa a verificar é o JRE do Eclipse. Ele precisa ser o JDK 21, igual às fontes, e não um JDK mais novo que sua máquina prefira por acaso.
Instale os bancos de dados e configure o pack
O instalador de banco de dados é o database_installer.sh no Linux ou o .bat correspondente no Windows. Ele cria e popula o banco de dados de login e o banco de dados do jogo, que são dois esquemas separados. Certifique-se de que as credenciais que você inserir correspondam ao usuário que o MariaDB está configurado para aceitar, e rode o instalador de novo após uma atualização do pack se uma revisão mudar o esquema.
Toda a configuração fica na pasta config/:
server.propertiespara o game server: rates, portas e opções de jogabilidade.loginserver.propertiespara o login server: gestão de contas e a checagem do hexid.hexid.txt, o arquivo que vincula um game server registrado ao login server.geoengine.propertiespara GeoData, pathfinding e ajustes de desempenho relacionados.npcs.properties,players.properties,siege.properties,clans.propertieseevents.propertiespara o resto do mundo.
Leia cada arquivo antes de alterá-lo. A maioria das falhas de inicialização em um primeiro build é uma credencial de banco de dados errada, uma porta errada ou uma chave de configuração que uma revisão mais nova renomeou.
Registre o hexid, ordem de inicialização e patch do cliente
O hexid é gerado quando você registra o game server, e depois é copiado para que o login server o aceite. Se o login server rejeitar o game server, o hexid quase sempre é o culpado: regenere-o, coloque-o onde hexid.txt é esperado e confirme que os dois lados concordam.
A ordem de inicialização importa. Suba o login server primeiro e depois o game server. Iniciar o game server antes do login server é uma forma garantida de ver erros de conexão que não têm nada a ver com a sua configuração real.
No lado do cliente, você precisa de um cliente Interlude C6 mais uma pasta system com patch. O cliente Interlude clássico usa o protocolo 746, então o patch precisa corresponder a esse protocolo, ou o cliente não vai conseguir conectar mesmo com o servidor perfeitamente saudável.
Com o servidor rodando, o próximo passo prático é colocá-lo na frente dos jogadores. Você pode listá-lo em /addnews, comparar seu posicionamento com o diretório mais amplo em /all-servers e garantir uma colocação mais forte com /addnews_vip. Um pack aCis funcionando é só metade do trabalho; uma listagem clara é o que o transforma num servidor populoso.
