Jump to content

Recommended Posts

A um tempo atrás, Kelvin falou comigo sobre a possibilidade de termos um projeto classic, visto a escassez desse tipo de servidor,   com mais visibilidade para a comunidade.

A ideia é termos um projeto Classic utilizável e estável, e o melhor de tudo: open source!

 

Sobre o projeto:

No inicio, eu tinha o projeto era apenas para testes de implementações pessoais, basicamente para me manter atualizado com o Java devido a política de atualização semestral adotada.  O projeto está ativo há mais ou menos um ano, com atualizações diárias. Existem 3 colaboradores direto no projeto, e mais alguns indiretos.

Hoje estamos dando suporte ao protocolo 272, a versão atual do servidores NA.

Requisitos:

  • Java 14
  • MySql 8
  • Client protocolo 272

Caracteristícas

  • Projeto open source sob licença GPL 3;
  • Disponível em https://github.com/JoeAlisson/L2jOrg
  • Atualizações diárias, porém depende. Tem dia que são muitas, tem dias que são poucas, às vezes nem tem;😛
  • Pretendo manter o ciclo de atualização da branch master a cada 3 semanas com uma versão um pouco mais estável;
  • Para os mais apressados por atualização, as atualizações diárias ocorrem na branch development (Lembrando que essa branch é de desenvolvimento ativo, então em uma ou outra atualização pode ocorrer algum erro no build ou para iniciar o servidor)

 

A participação da comunidade é essencial para o desenvolvimento de qualquer projeto open source. Eu sei que muitas pessoas, ainda hoje, têm uma visão um pouco deturbada de projetos open source, então vou listar alguns projetos como referência de que um projeto open source pode ser tão bom ou melhor que um projeto privado:

Claro que existem muitos outros relevantes, mas me restringir a listar projetos que são usados como dependência do L2j ORG.

 

Não é necessário ser expert em Java ou conhecer tudo de L2j para ajudar no projeto, você pode contribuir com o que puder. Para os interessados no projeto que querem ter uma participação mais ativa, estamos em busca de alguns talentos.

A participação no projeto vai ser dividida nas categorias:

Desenvolvedor de Core: É necessário ter conhecimento em programação para implementar e corrigir códigos.

Desenvolvedor de Datapack: É necessário ter conhecimento em L2J no geral, HTML e XML para trabalhar com shops, npcs, quests.

Contribuidor: Membro que contribua com os testes do projeto, reporte de bugs, suporte aos usuários e contribuições em geral para o projeto.

É só entrar em contato comigo por MP e fornecer algumas informações básicas:

Nome Real:
Interesse e experiência na área: (Core, Datapack ou Contribuidor)
Quanto tempo possui para se dedicar ao projeto?
Possui algum trabalho disponível que possa enviar como referência ? (se tiver mande junto por  MP.) 

 

Para quem já tiver interesse imediato eu criei um tutorial básico de como compilar o projeto:

 

Sobre o cliente

É necessário utilizar o cliente oficial do servidor americano. Para utilizar localmente sem modificação do cliente baixe o launch e coloque dentro da system:

https://github.com/JoeAlisson/L2jOrg/wiki/files/launchL2.zip

O post ficou mais extenso do que queria, então qualquer dúvida que tiverem é só perguntar.

[]'s

 

Edited by KhayrusS
  • Like 14
  • I love it 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Proteja seu servidor de ataques DDoS massivos!

VPS EPIC

Excelente notícia @KhayrusS!

 

Temos a oportunidade de fazer algo realmente bom aqui, a  versão 272 também inclui o essence, seria interessante se fosse possivel converter entre esses server types (de fato acho que tem até um header no protocolo que vai pro cliente indicando o tipo do servidor).

 

Muito bacana, sucesso,

Vou acompanhar de perto e tentar ajudar no que for possível.

  • Like 2

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".

Share this post


Link to post
Share on other sites

Ai sim hein!!! 
Agora podemos ter algo de qualidade open 😃
Talvez até volte a mexer com L2
Algo como essence tbm é interessante ja q é o mesmo client XD

 

Vou ficar de olho no projeto, mas, se eu voltar a mexer com L2, devo comecar com um Classic mesmo 

  • Like 1

XD

Share this post


Link to post
Share on other sites
9 horas atrás, Grundor disse:

Temos a oportunidade de fazer algo realmente bom aqui, a  versão 272 também inclui o essence, seria interessante se fosse possivel converter entre esses server types (de fato acho que tem até um header no protocolo que vai pro cliente indicando o tipo do servidor).

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:

 

Spoiler


Subject: [PATCH] Add support for Essence server type.

---
 .../org/l2j/gameserver/ServerType.java             | 25 +++++++++++++++++++---
 .../network/serverpackets/KeyPacket.java           |  3 ++-
 .../src/main/resources/config/server.properties    | 10 ++++-----
 3 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/ServerType.java b/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/ServerType.java
index 38eec26..dba040b 100644
--- a/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/ServerType.java
+++ b/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/ServerType.java
@@ -12,14 +12,17 @@ public enum ServerType
 	NORMAL,
 	RELAX,
 	TEST,
-	UNK_3,
+	BROAD,
 	RESTRICTED,
 	EVENT,
 	FREE,
 	UNK_7,
-	UNK_8,
+	WORLD,
 	NEW,
-	CLASSIC;
+	CLASSIC,
+	ARENA,
+	BLOODY,
+	CLASSICADEN(BLOODY.getMask() | CLASSIC.getMask());
 
 	private int mask;
 
@@ -28,6 +31,10 @@ public enum ServerType
 		mask = 1 << ordinal();
 	}
 
+	ServerType(int mask) {
+		this.mask = mask;
+	}
+
 	public int getMask() {
 		return mask;
 	}
@@ -46,4 +53,16 @@ public enum ServerType
 		return type;
 	}
 
+	public static int getClientType(int type) {
+		int clientType = 0;
+		if ((type & ServerType.CLASSICADEN.getMask()) > 0) {
+			clientType = 4;
+		} else if ((type & ServerType.CLASSIC.getMask()) > 0) {
+			clientType = 1;
+		}
+
+		return clientType;
+	}
+
+
 }
\ No newline at end of file
diff --git a/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/network/serverpackets/KeyPacket.java b/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/network/serverpackets/KeyPacket.java
index ee936f6..cb0ac8f 100644
--- a/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/network/serverpackets/KeyPacket.java
+++ b/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/network/serverpackets/KeyPacket.java
@@ -1,5 +1,6 @@
 package org.l2j.gameserver.network.serverpackets;
 
+import org.l2j.gameserver.ServerType;
 import org.l2j.gameserver.network.GameClient;
 import org.l2j.gameserver.network.ServerPacketId;
 import org.l2j.gameserver.settings.ServerSettings;
@@ -29,7 +30,7 @@ public final class KeyPacket extends ServerPacket {
         writeInt(serverSettings.serverId());
         writeByte((byte) 0x00); // merged server
         writeInt(0x00); // obfuscation key
-        writeByte((byte) ((serverSettings.type() & CLASSIC.getMask()) != 0 ? 0x01 : 0x00)); // isClassic
+        writeByte((byte) ServerType.getClientType(serverSettings.type()));
         writeByte((byte) 0x00); // queued ?
     }
 
diff --git a/Gameserver/src/main/resources/config/server.properties b/Gameserver/src/main/resources/config/server.properties
index 221d8bd..05c59b5 100644
--- a/Gameserver/src/main/resources/config/server.properties
+++ b/Gameserver/src/main/resources/config/server.properties
@@ -58,14 +58,14 @@ MaximumOnlineUsers = 20
 # Numbers of protocol revisions that server allows to connect.
 # Delimiter is ;
 # WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>
-# Secret Of Empire: 166
-AllowedProtocolRevisions = 166
+# Essence Kamael: 228
+AllowedProtocolRevisions = 228
 
 # Displays server type next to the server name on character selection.
 # Notes:
-#	Accepted Values: Normal, Relax, Test, Restricted, Event, Free, New, Classic
-# Default: Classic
-ServerListType = Classic
+#	Accepted Values: Normal, Relax, Test, Broad, Restricted, Event, Free, World, New, Classic, ClassicAden
+# Default: ClassicAden
+ServerListType = ClassicAden
 
 # Displays server minimum age to the server name on character selection.
 # Notes:


 

 

1 hora atrás, sucodeuva disse:

alguem mais ta com erro ai iniciar gameserver e loginserver?

pode postar o conteúdo do arquivo authserver.bat, por favor ?

  • Like 1

Share this post


Link to post
Share on other sites
1 hora atrás, KhayrusS disse:

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:

 

  Ocultar conteúdo

 


Subject: [PATCH] Add support for Essence server type.

---
 .../org/l2j/gameserver/ServerType.java             | 25 +++++++++++++++++++---
 .../network/serverpackets/KeyPacket.java           |  3 ++-
 .../src/main/resources/config/server.properties    | 10 ++++-----
 3 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/ServerType.java b/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/ServerType.java
index 38eec26..dba040b 100644
--- a/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/ServerType.java
+++ b/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/ServerType.java
@@ -12,14 +12,17 @@ public enum ServerType
 	NORMAL,
 	RELAX,
 	TEST,
-	UNK_3,
+	BROAD,
 	RESTRICTED,
 	EVENT,
 	FREE,
 	UNK_7,
-	UNK_8,
+	WORLD,
 	NEW,
-	CLASSIC;
+	CLASSIC,
+	ARENA,
+	BLOODY,
+	CLASSICADEN(BLOODY.getMask() | CLASSIC.getMask());
 
 	private int mask;
 
@@ -28,6 +31,10 @@ public enum ServerType
 		mask = 1 << ordinal();
 	}
 
+	ServerType(int mask) {
+		this.mask = mask;
+	}
+
 	public int getMask() {
 		return mask;
 	}
@@ -46,4 +53,16 @@ public enum ServerType
 		return type;
 	}
 
+	public static int getClientType(int type) {
+		int clientType = 0;
+		if ((type & ServerType.CLASSICADEN.getMask()) > 0) {
+			clientType = 4;
+		} else if ((type & ServerType.CLASSIC.getMask()) > 0) {
+			clientType = 1;
+		}
+
+		return clientType;
+	}
+
+
 }
\ No newline at end of file
diff --git a/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/network/serverpackets/KeyPacket.java b/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/network/serverpackets/KeyPacket.java
index ee936f6..cb0ac8f 100644
--- a/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/network/serverpackets/KeyPacket.java
+++ b/Gameserver/src/main/org.l2j.gameserver/org/l2j/gameserver/network/serverpackets/KeyPacket.java
@@ -1,5 +1,6 @@
 package org.l2j.gameserver.network.serverpackets;
 
+import org.l2j.gameserver.ServerType;
 import org.l2j.gameserver.network.GameClient;
 import org.l2j.gameserver.network.ServerPacketId;
 import org.l2j.gameserver.settings.ServerSettings;
@@ -29,7 +30,7 @@ public final class KeyPacket extends ServerPacket {
         writeInt(serverSettings.serverId());
         writeByte((byte) 0x00); // merged server
         writeInt(0x00); // obfuscation key
-        writeByte((byte) ((serverSettings.type() & CLASSIC.getMask()) != 0 ? 0x01 : 0x00)); // isClassic
+        writeByte((byte) ServerType.getClientType(serverSettings.type()));
         writeByte((byte) 0x00); // queued ?
     }
 
diff --git a/Gameserver/src/main/resources/config/server.properties b/Gameserver/src/main/resources/config/server.properties
index 221d8bd..05c59b5 100644
--- a/Gameserver/src/main/resources/config/server.properties
+++ b/Gameserver/src/main/resources/config/server.properties
@@ -58,14 +58,14 @@ MaximumOnlineUsers = 20
 # Numbers of protocol revisions that server allows to connect.
 # Delimiter is ;
 # WARNING: <u><b><font color="red">Changing the protocol revision may result in incompatible communication and many errors in game!</font></b></u>
-# Secret Of Empire: 166
-AllowedProtocolRevisions = 166
+# Essence Kamael: 228
+AllowedProtocolRevisions = 228
 
 # Displays server type next to the server name on character selection.
 # Notes:
-#	Accepted Values: Normal, Relax, Test, Restricted, Event, Free, New, Classic
-# Default: Classic
-ServerListType = Classic
+#	Accepted Values: Normal, Relax, Test, Broad, Restricted, Event, Free, World, New, Classic, ClassicAden
+# Default: ClassicAden
+ServerListType = ClassicAden
 
 # Displays server minimum age to the server name on character selection.
 # Notes:

 

 

 

 

 

pode postar o conteúdo do arquivo authserver.bat, por favor ?

Obrigado pela sua atençao eu consegui arrumar muito obrigado e add esse diff no pack... vou testa...so tem um problema servidor online....mais quando uso o cliente lineage2.com a system abre normal mais quando eu uso o client L2 Essence abre e fecha nem chega na tela de login e senha mesmo com o arquivo de launcher de vcs

Edited by sucodeuva

Share this post


Link to post
Share on other sites

O erro está ocorrendo porque a tabela "player_variables" não foi criada.

Adiciona ela por favor:

https://github.com/JoeAlisson/L2jOrg/blob/master/Datapack/gameserver/sql/install/player_variables.sql

também vou deixar aqui pra ficar mais fácil

CREATE TABLE IF NOT EXISTS `player_variables` (
    `player_id` INT UNSIGNED NOT NULL,
    `revenge_teleports` SMALLINT NOT NULL DEFAULT 0,
    `revenge_locations` SMALLINT NOT NULL DEFAULT 0,
    PRIMARY KEY (`player_id`),
    FOREIGN KEY (`player_id`) REFERENCES characters(`charId`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;

 

Edited by KhayrusS
  • Like 1

Share this post


Link to post
Share on other sites

WOW! Khayruss mandando muito nesse projeto!


Parabéns aos envolvidos. É ótimo saber que temos bons amigos que sempre trazem coisas legais para o fórum e termos um projeto na comunidade seria de grande valida para nós. 😉

 

 

 

  • Like 1

Possui alguma dúvida em relação à configurações comuns de servidores de Lineage II? Consulte nossa área de Principais Dúvidas Resolvidas.

Você sabia que a L2JBrasil tem uma empresa de Hosting Oficial?
Conheça a L2JCenter.com

L2JBRASIL - 11 anos vendendo SS em Giran! (Trade / Adena)

Share this post


Link to post
Share on other sites

Louvável a iniciativa do @KhayrusS, estou subindo uma estrutura para estimular o desenvolvimento dos projetos mais movimentados do fórum e em breve vamos por um test live on.

Vamos organizar também a área para melhorar o desenvolvimento do projeto! 

  • Like 4

Nunca criou um servidor de Lineage 2?
Acompanhe nosso CURSO L2! Aula 01 e 02

Você sabia que a L2JBrasil tem uma empresa de Hosting Oficial?
Conheça a L2JCenter.com

Serviços de Hospedagem para Sites, VPS Gamer, Dedicados e Proteção Anti-DDoS
A mais de 10 anos no mercado apoiando e ajudando os maiores servidores de Lineage 2 do Mundo!

Share this post


Link to post
Share on other sites
33 minutos atrás, Kelvin disse:

Louvável a iniciativa do @KhayrusS, estou subindo uma estrutura para estimular o desenvolvimento dos projetos mais movimentados do fórum e em breve vamos por um test live on.

Vamos organizar também a área para melhorar o desenvolvimento do projeto! 

É exatamente isso que nós precisamos.
Precisamos de ajuda, valorizar e incentivar bons projetos para que eles evoluam e não parem pela metade e não sejam concluídos.
Achei ótima a ideia da estrutura que você está criando para movimentar os projetos do fórum, parabéns pela iniciativa.

E parabéns também pelo projeto @KhayrusS.
Não tenho mais nada de java e eclipse instalado, se não, me disponibilizaria para ajudar.
Mas qualquer coisa só dar um grito.
Abraço.

  • Like 1

Não trabalho mais com projetos privados, por favor, não insistam!



Agora só trabalharei com projetos free em minhas horas livres, somente por hobby.



Obrigado pela compreenção. :)

Share this post


Link to post
Share on other sites
21 horas atrás, Pastorious disse:

Kamael? Essence? Auto bot?

Sim, ainda não, sim.

21 horas atrás, Pastorious disse:

It is still the Lineage 2? Really?

quem sabe 🤔

21 horas atrás, Pastorious disse:

Who need emulator of crappiest part of L2?

alguém.

 

9 horas atrás, sucodeuva disse:

Um report os scrols de teleporte quando voce termina uma quest voce clica duas vezes e nada acontece

Obrigado, adicionado ao backlog!

 

Obrigado, pessoal ! 🙂

Share this post


Link to post
Share on other sites

Bah cara, que show.

Parabéns pelo projeto !

Assim que eu tiver mais livre, vou começar a contribuir no projeto, curto bastante o Classic.

Só meter ficha e não abandonar o projeto, ele tem um grande futuro.

Curti ainda mais quando li que ele vai utilizar  o async-mmocore.

Isto ai, o core do servidor precisa evoluir assim como as tecnologias 😉


"Seja feliz do jeito que você é, não mude sua rotina pelo o que os outros exigem de você, simplesmente viva de acordo com o seu modo de viver."



(Yato - Noragami)

Share this post


Link to post
Share on other sites
7 horas atrás, sucodeuva disse:

Vou deixa em minha vps o servidor online estarei deixando em breve o IP para que voce entrem 

Relaxa já tou providenciando isso.

  • Like 1

Nunca criou um servidor de Lineage 2?
Acompanhe nosso CURSO L2! Aula 01 e 02

Você sabia que a L2JBrasil tem uma empresa de Hosting Oficial?
Conheça a L2JCenter.com

Serviços de Hospedagem para Sites, VPS Gamer, Dedicados e Proteção Anti-DDoS
A mais de 10 anos no mercado apoiando e ajudando os maiores servidores de Lineage 2 do Mundo!

Share this post


Link to post
Share on other sites
11 horas atrás, Kelvin disse:

Relaxa já tou providenciando isso.

Massa, só aguardando pra iniciar os teste.  😄 


"Tudo o que um sonho precisa para ser realizado é alguém que acredite que ele possa ser realizado"

Share this post


Link to post
Share on other sites
43 minutos atrás, Hl4p3x disse:

Baixei a ultima versão do NA e coloquei o patch dentro da system, mas não sai disso!

 

3le8C6L.jpg

se voce usou a DIFF

que ele postou nao vai entrar voce tem que compilar sem a DIFF que ele postou mais pra cima e ligar o servidor 

Share this post


Link to post
Share on other sites
1 hora atrás, sucodeuva disse:

Report scroll de que deveria te dar buff esta dando somente Shield...

Adicionado ao backlog, obrigado!

 

51 minutos atrás, Hl4p3x disse:

Baixei a ultima versão do NA e coloquei o patch dentro da system, mas não sai disso!

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

Share this post


Link to post
Share on other sites

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
 


www.l2deviane.com, Freya, 15x

img.jpg

Share this post


Link to post
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...


Proteção Oficial L2JBrasil







  • Recently Browsing

    No registered users viewing this page.

  • Similar Content

    • 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
    • By KhayrusS
      Veja o novo tópico do projeto:
       
       
      Código base
      Há um tempo venho utilizando uma source para estudo, com o objetivo de utilizar o mmocore assíncrono. Como não vejo projetos Classic open source por aí, resolvi compartilhar.  O código base utilizado é o  L2jMobius.
      Protocolo utilizado: 228
      GITHUB
      Requisitos
      Java 13 Mysql 8 As últimas versões compiladas podem ser encontradas em Releases
      Atualmente estou em um estágio de melhoria geral do código, otimizações de recursos e atualização de tecnologia.
      Basicamente o que está sendo feito:
      Atualização para Java 13 (Será atualizado assim que novas releases forem saindo); Atualização do mmocore; Utilização de sistema de módulos (JPMS - Disponível a partir do Java 9); Atualização de dependências; Melhoria na camada de acesso a Dados (Tanto no Database como nos arquivos) Um exemplo de melhoria na camada de acesso a dados:
      Antes
      private void globalRemoveItems(){ int itemToDeleteCount = 0; StringBuilder itemsToDelete = new StringBuilder(); Connection con = null; PreparedStatement statement = null; ResultSet rset = null; try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT item_id FROM items_to_delete"); rset = statement.executeQuery(); while(rset.next()) { if(itemsToDelete.length() > 0) itemsToDelete.append(","); itemsToDelete.append(rset.getInt("item_id")); itemToDeleteCount++; } DbUtils.closeQuietly(statement, rset); statement = con.prepareStatement("DELETE FROM items_to_delete"); statement.execute(); } catch(SQLException e) { _log.error("Error while select items for global remove:", e); } finally { DbUtils.closeQuietly(con, statement); } if(itemsToDelete.length() > 0) { try { con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("DELETE FROM items WHERE item_id IN (?)"); statement.setString(1, itemsToDelete.toString()); statement.execute(); DbUtils.closeQuietly(statement); statement = con.prepareStatement("DELETE FROM items_delayed WHERE item_id IN (?)"); statement.setString(1, itemsToDelete.toString()); statement.execute(); } catch(SQLException e) { _log.error("Error while global remove items:", e); } finally { DbUtils.closeQuietly(con, statement); } } } Depois
      public interface IItemsDAO extends DAO { @Query("WITH ids AS (SELECT item_id FROM items_to_delete) DELETE i, id, ide FROM items i JOIN items_delayed id ON i.item_id = id.item_id JOIN items_to_delete ide ON i.item_id = ide.item_id WHERE i.item_id IN (SELECT item_id FROM ids)") int deleteGlobalItemsToRemove(); }  
      Quanto as correções de bugs, poucos bugs foram corrigidos, apenas os que encontrei enquanto implementava alguns dos pontos citados, pois não tenho tanto tempo disponível para testar e corrigir. Então no primeiro momento estou apenas focando nos pontos citados.
       
      VIP Tier System
       
      Bot Report System
       
      Elemental Attribute System
       
      Ficou interessado e quer ajudar ? 
      Fiquei Entra em contato comigo pra gente conversar, ou pode fazer um fork do projeto e fazer pull request Fiquei, mas não tenho conhecimento em Java Toda a ajuda é bem vinda, tem muita coisa pra ser testada/corrigida Existem muitos status de items, skills, htmls, xmls para serem corrigidos É tentando que se aprende ?  
      []'s
    • By Hl4p3x
      Bem vindo ao L2Studio, o seu novo projeto Interlude Open Source do L2JBrasil.
      Aqui você poderá ter um servidor completo para abrir o seu tão sonhado SERVER PRIVADO.
       
      Sobre o L2Studio: Base: L2jMobius (Latest Free Release). Java 14, Liberica JDK; Sistema: Windows ou Linux (CentOS recomendado); Memória necessária para ligar o servidor: 512~1024 Megabytes.  
      Atualização do Projeto: Será atualizado conforme reporte de problemas; Conforme a ajuda dos usuários criando uma .diff e enviando no proprio Github do projeto ou aqui. Conforme a disponibilidade de tempo. Qualquer um está liberado para dar fork no projeto e atualizar conforme a própria vontade.  
      Reporte de Bugs ou problemas: Poderá reportar o bug no forum do L2jBrasil ou usar a plataforma do GITHUB e abrir um pull request nesse LINK.  
      Arquivos necessários para executar o servidor: Client: https://drive.google.com/uc?id=1LcKCQTbRXJvteJcuvc_rnX8i2gT1fcHB&export=download System: https://mega.nz/#!t49wiKgZ!PzVAcxcg2o8gRkAiMjH7CUO6lKrBG27npg2JPL1uEq8 JDK: http://www.mediafire.com/file/xox35mknec8f1q0/bellsoft-jdk14%252B36-windows-amd64.msi Geodata: https://www.mediafire.com/file/0gw6llghfrd6o4q/interlude_l2d_geodata.zip  
      GITHUB DO PROJETO DONWLOAD DA VERSÃO COMPILADA RC1 -> Versão com backup em .psc inclusa. Após instalar o JDK14, criar uma database e atualizar em ..config/main/Server.ini | ..config/main/LoginServer.ini e executar o servidor. Gostou? Deixa seu like, compartilhe, CONTRIBUA!
    • By KhayrusS
      Como muitas pessoas estavam me procurando com dificuldades para compilar o projeto L2jORG, resolvi separar um tempo para fazer um vídeo mostrando passo a passo desde o clone ou download do github até a execução.
       
      O processo de compilação abordado no vídeo tem os seguintes requisitos:
      Java 14 (Link)
      MySQL 8 (Link)
      Git (Link)
       
      Para melhor utilização é necessário configurar todos os requisitos na variáveis de ambiente, para que estejam disponível no terminal/cmd.
      Nesse tutorial, a instalação e configuração desses componentes não serão abordadas visto que há vários tutoriais com esse conteúdo aqui no fórum.
       
      O vídeo foi dividido em duas partes. 
      No primeira, é mostrado todo o processo utilizando o IntelliJ IDEA; Na outra, é mostrado o processo de download e compilação sem uso de IDE.  
       
      Observações
      No vídeo é usado Linux, mas todo o processo é semelhante no Windows, algumas diferenças:
      Banco de Dados
      O banco é criado utilizando linha de comando, mas pode utilizar qualquer ferramenta de gerenciamento de banco de dados como MySql Workbench, Navicat e afins.
      A criação de tabelas é feita através de um script, existe um script para o linux (install.sh) e outro para o windows (install.bat). Quando o Mysql é instalado no Linux o comando mysql fica disponível automaticamente no ambiente, facilitando a execução de scripts. Já no Windows, é necessário configurar path do mysql nas variáveis de ambiente, assim como normalmente é feito com o Java.
      Alternativamente, pode ser incluído, no inicio do arquivo install.bat, o path para o Mysql. Adicione o seguinte comando, alterando o caminho para a instalação do MySql no seu computador:
      PATH="C:\Program Files\Mysql8.0\bin"  
      Java/Gradle
      Caso opte por fazer o build sem IDE, é obrigatoriamente necessário configurar nas variáveis de ambiente o path para a pasta bin do Java e definir a variável de ambiente JAVA_HOME, apontando para a pasta do Java. 
      Alternativamente para executar o authserver.bat e o gameserver.bat pode ser incluído  no inicio dos arquivos o path para o Java, exemplo:
      PATH="C:\Program Files\Java\jdk14\bin"  
       
  • Posts

×
×
  • Create New...