Jump to content
KhayrusS

Classic (Seven Signs)

Recommended Posts

Há um tempo venho utilizando uma source antiga L2-Script (26360) para estudo, com o objetivo de utilizar o mmocore assíncrono. Como não vejo projetos Classic open source por aí, resolvi compartilhar.

 

Atualização do código base

 O código base foi alterada para Mobius, visto que a base antiga estava um pouco antiga. Essa mudança foi acompanhada de um update para a versão Seven Signs, assim o protocolo suportado passa a ser o 152.

 

GITHUB

System

Requisitos

  • Java 12
  • 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 12 (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.

 

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

Edited by KhayrusS
  • Like 13
  • I love it 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Precisando de Dedicado ou VPS?

Conheça a L2JCenter

Show de Bola @KhayrusS!
A Mobius liberou open source a fonte deles!
Seria interessante mexer com eles, ja que é algo atualizado constantemente e nao deve faltar tantos arquivos como essa da script vazada a anos =D

  • Like 1

Share this post


Link to post
Share on other sites
Em 04/03/2019 at 00:20, Dwbryel disse:

Show de Bola @KhayrusS!
A Mobius liberou open source a fonte deles!
Seria interessante mexer com eles, ja que é algo atualizado constantemente e nao deve faltar tantos arquivos como essa da script vazada a anos =D

Há alguns dias venho analisando o código da Mobius. Embora ainda não seja de certeza, estou atualizando aos poucos com  base do gameserver com a versão 7 signs

  • Like 1

Share this post


Link to post
Share on other sites
3 horas atrás, KhayrusS disse:

Obrigado mano ! 

Baixando aqui para testes :)

qualquer erro posto aqui 

 

seria possível postar um backup limpo fazendo o favor manin ?

to tentando estalar o Mysql aqui ta osso ! :S

Edited by SaYmOn Cordeiro
ajuste

Share this post


Link to post
Share on other sites
5 horas atrás, SaYmOn Cordeiro disse:

seria possível postar um backup limpo fazendo o favor manin ?

to tentando estalar o Mysql aqui ta osso ! :S

Opa, fala qual o problema que está acontecendo, assim posso te ajudar

  • Confused 1

Share this post


Link to post
Share on other sites
4 horas atrás, lineage2MasterGame disse:

estou com o seguinte erro 

Aparentemente o Driver do Mysql não suporta o Timezone configurado no Windows

no arquivo database.properties adiciona o timezone na url de conexão:

jdbcUrl= jdbc:mysql://localhost:3306/l2jdb?useUnicode=true&characterEncoding=utf-8&systemTimezone=UTC

ou

jdbcUrl= jdbc:mysql://localhost:3306/l2jdb?useUnicode=true&characterEncoding=utf-8&serverTimeZone=UTC

Share this post


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

Opa, fala qual o problema que está acontecendo, assim posso te ajudar

tipo assim manin, essa versão mais nova do mysql precisa baixar um instalador.

contendo nele vários programas, ate ai tudo bem !

so que na hora de configurar ele que nem o 5.0 5.5 e totalmente diferente, acaba eu fazendo merda e o navicat não reconhece ! 😞

Share this post


Link to post
Share on other sites

posta como configurou o Mysql e o Navicat.

Lembrando que o Navicat é apenas um utilitário que serve para facilitar a manipulação do DB, mas existem outras alternativa Grátis como é o caso do Mysql Workbanch

  • I love it 1
  • Thanks 1

Share this post


Link to post
Share on other sites
58 minutos atrás, KhayrusS disse:

posta como configurou o Mysql e o Navicat.

Lembrando que o Navicat é apenas um utilitário que serve para facilitar a manipulação do DB, mas existem outras alternativa Grátis como é o caso do Mysql Workbanch

Blz manin, assim que chegar do trabalho posto para tu ver !

 

Share this post


Link to post
Share on other sites
5 horas atrás, KhayrusS disse:

Aparentemente o Driver do Mysql não suporta o Timezone configurado no Windows

no arquivo database.properties adiciona o timezone na url de conexão:

jdbcUrl= jdbc:mysql://localhost:3306/l2jdb?useUnicode=true&characterEncoding=utf-8&systemTimezone=UTC

ou

jdbcUrl= jdbc:mysql://localhost:3306/l2jdb?useUnicode=true&characterEncoding=utf-8&serverTimeZone=UTC

eu adicionei , os erros diminuiram so que aparece isso aqui

 

wa3FULY.png

Share this post


Link to post
Share on other sites
31 minutos atrás, lineage2MasterGame disse:

eu adicionei , os erros diminuiram so que aparece isso aqui

Você abriu com algum editor de texto que inseriu alguns caracteres estranhos após o "mysql" e após a porta 🙂

Se copiou a linha que coloquei aqui pode ter sido durante a cópia, tenta digitar.

 

20 minutos atrás, JyhaD disse:

Queria saber uma coisa: essa versão é a classic 2.8?

Isso, mas ainda está em progresso 🙂

Share this post


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

Você abriu com algum editor de texto que inseriu alguns caracteres estranhos após o "mysql" e após a porta 🙂

Se copiou a linha que coloquei aqui pode ter sido durante a cópia, tenta digitar.

 

 

eu abri com notepad++ e no arquivo ta normal conforme a linha que voce me mandou , poderia me dar uma ajudinha aqui por favor se não for encomodo!

e as 2 linhas que voce me mandou sao iguais kkk 

6 horas atrás, KhayrusS disse:

Aparentemente o Driver do Mysql não suporta o Timezone configurado no Windows

no arquivo database.properties adiciona o timezone na url de conexão:

jdbcUrl= jdbc:mysql://localhost:3306/l2jdb?useUnicode=true&characterEncoding=utf-8&systemTimezone=UTC

ou

jdbcUrl= jdbc:mysql://localhost:3306/l2jdb?useUnicode=true&characterEncoding=utf-8&serverTimeZone=UTC

Voce falou pra mim tentar uma das 2 linhas , mais as duas sao iguais rsrs

Share this post


Link to post
Share on other sites
4 minutos atrás, KhayrusS disse:

Na mensagem do erro você pode ver que tem alguns caracteres estranhos  Ver se a codificação do notepad++ está em UTF-8

entao ele ja esta em UTF-8 e não tem caracteres a mais no arquivo olha , so da isso no start login server quando ligo

 

Ntv2d4g.png

Share this post


Link to post
Share on other sites




     



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Esse e o danado do erro ! 😞  
    • Já respondi sua mp @are tick
    • Queria adptar para l2jfrozen amigo si puder esta min ajudando agradesso
    • Our Team setup a Unique L2Gold Style x75 Interlude! Grand Opening: Friday 8 May 21:00 GMT +3 (Beta 4 May) L2Gold Community will be here to make this Style Famous and help new players to play this modern style  interlude in 2019 Join us and try to play different in Worldwide Gameserver Website: https://l2thegame.com » OFFICIAL RATES  EXP/SP:    x75 Adena:    x50 Retail Gold style Drop:    x1 Retail Gold style Spoil:    x1 Noblesse    4x Crown Increased movement speed    Yes Subclass    Yes Rebirth    3x Weight limit    No Epic Boss Drop Weapon:    80% » ENCHANT RATE Weapon safe enchant +3 Armor safe enchant    +3 Normal scroll chance    with scale with scale Max weapon enchant    +21 Max armor enchant    +10 » BUFFS Buff time    1 hour Buff slots    26 » BASIC CONFIGURATIONS Server and forum time:    GMT +3 Max. clients per pc:    3 Olympiads max enchant:    +6 Olympiads cycle:    1 Week BOT:    Acc Ban » GENERAL INFORMATION Ingame Menu     Skill Consumables, Crystals     GM shop     Mantra Manager     Materials recipes added to gm shop     Mana potion delay     Epic Area is PvP Zone     Team vs Team:     Mass PVP:     Website: https://l2thegame.com
    • Ja compilei , mais tarde posto aqui na l2jbrasil o L2JMobius 4.0 Grand Crusade Compilado !
×
×
  • Create New...