Jump to content

Leaderboard

The search index is currently processing. Leaderboard results may not be complete.

Popular Content

Showing content with the highest reputation since 07/20/2018 in all areas

  1. 30 points
    Hey Guys, Welcome to L2JBlueHeart Desenvolvedores: @vert | @TurtleLess | @Azazyel | @Reign | @Yanush Npcs ------------------------------------------------------------------------------------------------------------- Sinto falta de jogar um servidor no tempo livre, comecei a jogar a uns 10 anos atrás, joguei por 8 anos, agora trabalho e estudo então sobra pouco tempo, nas minhas ultimas tentativas de jogar L2, eu entrava em um servidor e ele fechava em menos de 1 semana, então cheguei a conclusão de que só estava perdendo meu tempo. Decidi montar um servidor para os players que se sentem como eu se divertirem, algo bem old school; eu joguei vários PvPs e o BrThunder por 8 anos (ele mudou de nome e de crônica várias vezes) mas manteve a essencia do comércio e da jogabilidade (até nos seus ultimos anos, apesar de que acabou perdendo essa essencia infelizmente). A minha ideia de mexer nessa revisão é montar um 20x o mais próximo de como o BrThunder era, focado no comércio, sem customs, com suporte ativo, etc... Vou postar aqui as correções que já fiz nessa pack da JSunrise postada pelo Hl4p3x. L2JBlueHeart 💙 Changes & Fixes & Details XP em Party - No trecho do código onde é calculado o xp em party, antes o xp em party era a quantia definida no Rates.ini dividida pelos membros na pt, então se a pt tivesse 7 membros e o xp em pt fosse 20x(vezes o xp do mob) (enquando o xp normal é 10x), seria 20 / 7 = 2,85x(vezes o xp do mob), e para contornar esse desfalque, se a rate do xp em party fosse aumentada, uma pt de 2 players receberia bem mais e seria injusto, tornando inviável um servidor low/mid rate ser balanceado. Agora o xp em pt é multiplicado pela quantidade de pessoas na PT; exemplo: servidor é 20x normal, 1.1x xp em party (upar em pt irá render 10% a mais de xp, se fosse 1.6, seria 60%, etc...), pois o calculo ficou assim: (xp mob) * (rate xp * rate xp party * quantidade de players na party). Item-mall (Shop Prime) - Ele estava duplicando items: se a pessoa já tivesse 1 item do que seria comprado, aí o sistema agia como o esperado e só adicionava, caso não tivesse nenhum item, os items eram comprados em várias quantidades, exemplo: não tenho enchant armor S e pretendo comprar 10 no shop prime, ele iria me entregar 10 enchant armor S (10) 10 vezes, ficaria com 100 enchants no total. Era uma verificação escrita sem atenção e acabou gerando o "bug". Transformação AIO - Transformação aio criada, 7 dias e 30 dias (fotos). Voice Command EXP (.exp|.expoff|.expon) - O que veio na revisão só funcionava se a configuração do .ccp estivesse ativa, então criei um voice command separado, o .exp funciona como um switch (se estiver on, destiva, se estiver off, ativa). Nevit System - O buff do vitality estava ativando com muita frequencia, agora ele ativa de 20 em 20 leveis (apróximadamente), o que é ótimo para os players novos e não se torna uma bola de neve para os players avançados. Beginner's Pack - Ao criar um personagem, o mesmo recebe um auxilio do sistema, alguns itens: soulshot, spiritshot, cocktail buff, revita pop, armors shadow até a grade A. Infos & Configs Buffs = 20 min RateXp = 20 RateQuestDrop = 3 // Preciso verificar essa rate, pensei em quests básicas como a de monstone mas não chequei as que dão s84 lá de antharas. RateDropItemsById = 57,7.5 // (adena 7.5x) RateCommonHerbs = 0.5 RateHpHerbs = 0.5 RateMpHerbs = 0.5 RateSpecialHerbs = 0.5 RateVitalityHerbs = 0.3 DecreaseSkillOnDelevel = False // Importante para chars de farm, como upar um titan pra 81, add forgotten nele, delevar pra 76 e farmar elemental stone. MaxLvlDiffCanKeepSkillLvl = 9 AltWeightLimit = 6 AutoLearnSkills = True // Focar no que importa: se divertir AutoLearnForgottenScrollSkills = False // Um mundo precisa ter comércio, até o L2 MaxBuffAmount = 24 MaxTriggeredBuffAmount = 12 MaxDanceAmount = 12 DanceCancelBuff = True // Allow players to cancel dances/songs via Alt+click on buff icon AutoLearnDivineInspiration = False // ;) MagicFailures = True // Está bem tranquilo upar de mago ou de fighter... AltSubClassWithoutQuests = False // Hello boss de sub AltTransformationWithoutQuest = False // Hello quest chata de transformação RestoreServitorOnReconnect = True // Restaura os summons ao reconectar RestorePetOnReconnect = True // Restaura os pets ao reconectar EnableVitality = True MaxSubclass = 3 MaxSubclassLevel = 80 EnchantChanceElementStone = 50 EnchantChanceElementCrystal = 30 EnchantChanceElementJewel = 15 EnchantChanceElementEnergy = 10 AugmentationNGSkillChance = 15 AugmentationMidSkillChance = 30 AugmentationHighSkillChance = 45 AugmentationTopSkillChance = 60 AugmentationNGGlowChance = 0 AugmentationMidGlowChance = 40 AugmentationHighGlowChance = 70 AugmentationTopGlowChance = 100 CraftMasterwork = True AltMaxNumOfClansInAlly = 3 AltClanMembersForWar = 15 AltLeavePartyLeader = True // Quando o lider da party sai, o próximo membro de torna o lider ao invés de desfazer a pt UnstuckInterval = 30 AllowDiscardItem = True AutoDestroyDroppedItemAfter = 600 // 10 min AutoDestroyHerbTime = 15 // 15 secs EnableCommunity = False // Por enquanto o community board está desabilitado HellboundWithoutQuest = False // Hello hellbound Fotos do Projeto Há mais fotos do projeto, todas estão aqui: https://imgur.com/a/jTjinyw Caso encontrem algo que precise de correção ou mudança, é só postar aqui no tópico, vou tentar manter o tópico atualizado com as informações pra vocês. Suportes ativos, tudo balanceado (o máximo possível), ter um server pra sempre se divertir com os amigos, etc... Andei pesquisando e testando, consigo por o servidor online no linux entre 80 a 60 reais ou até menos dependendo da estrutura que eu montar (login, game, banco de dados), a forma do servidor se pagar seria com mana potions, enfeites, etc... Nada que atrapalhasse a jogabilidade, são 200 mana potions por 3 reais, cp potion, etc... Para ganhar dinheiro eu trabalho, o servidor seria pra matar a saudade dos velhos tempos (tanto pra mim quanto pros outros jogadores), gostaria de relembrar a infância em um servidor que não reabrisse todo mês... Para a galera que quer contribuir, testar e se divertir, o servidor de testes está online: download system Para os que vão contribuir e testar, podem utilizar esse tópico pra reportar bugs e melhorias. Para os que vão apenas se divertir, pretendo tratar o servidor como um servidor pronto e real (não irei ficar derrubando a máquina toda hora para atualizar), esse é o Alpha Test, então os que jogarem não estarão perdendo tempo pois as participações no Alpha Test e no Beta Test ficarão registradas e receberão alguns brindes no servidor após os períodos de teste. Como não é um servidor real, não possui site, a criação de conta é in game e estou disponibilizando um Account Panel Manager pra vocês se divertirem. Instruções sobre o ACP: ao deslogar, é preciso vir aqui e clicar no link novamente pra dizer ao painel em qual servidor se conectar, caso queiram deixar o link salvo na barra de favoritos, eis aqui o link completo: http://panel.lineage2.store/login/4EA3-AEB2-F32A-F7A123 Se for feita alguma doação para o servidor através do ACP, uma parte será destinada a pagar a manutenção das máquinas em que o servidor de teste está online e outra parte será convertida em doação aqui para a JBr para auxiliar nos custos de manter o fórum. As moedas serão registradas no banco de dados, e poderão ser transferidas para o game além de serem usadas no shop do ACP. Como teremos os registros delas, elas serão reembolsadas (enviadas sem precisar doar novamente) após o período de testes. Os períodos do Teste Beta e do Teste Alpha não estão definidos, podendo durar várias semanas ou meses... O intuito desse projeto não é ganhar dinheiro, mas sim disponibilizar um servidor legal para todos se divertirem, auxiliar na manutenção da JBr como agradecimento pelo conhecimento que adquirimos aqui e trocar informações sobre bug fixes dos que já foram fixados e os que ainda serão; Qualquer dúvida ou feedback é só postar ;D PS: Irei manter os créditos da JSunrise no core do projeto, não da pra ver na foto que coloquei no tópico, mas mantive todos os créditos, somente adicionei os meus já que estou usando a Sunrise como base. Os releases serão postados no github e aqui no tópico, então fiquem de olho no tópico. PS 2: As correções só serão feitas com base no que vocês reportarem, se não reportarem nada, não haverá novos releases; É um projeto que deve ser mantido pela comunidade, então conto com todos; Vocês terão o que contribuírem, caso não contribuam, não terão nada. Tópico na área de desenvolvimento: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Custom html dressme by @alexfabiano: Em agradecimento pelo dressme estou postando uma html opcional do painel .dressme editado por mim! Substituir a pasta: \game\data\html\sunrise\dressme Também adicionei o botão de back to menu nas abas de cada dressme. Espero que gostem! DOWNLOAD ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Custom shift+click by @Azazyel Ai, ao testar o Shift+Click nos monstros me deparei com uma html horrivel e toda fora do lugar, fui la e fiz umas modificações. Retirei os status do monstro, pois acho que só o que importa mesmo são as informações sobre o drop, spoil e quest. Link para download: http://www.mediafire.com/file/iyr4zn7d6e5087n/Drop+Info.rar Basta substituir o arquivo que se encontra ja no seu caminho! Quem tiver algum receio faça um back apenas compactando o arquivo original "L2NpcActionShift.java". É o unico arquivo modificado! Print: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Cálculo do XP e XP em party; | vert Cálculo dos pontos Nevit's recebidos a cada level | vert Shop Prime (item mall) | vert DressMe | TurtleLess, alexfabiano, Reign Siege | Reign TW | Reign Grácia Área | Reign Hellbound | Reign Flag Zone | Reign Chaotic Zone | Reign Manor Manager | Reign Level Up | Onã Game Play | Onã Skills Transformation AIO ++ | Reign Premium Admin | alexfabiano Queen e Orfen | xRodox Quest Valakas, Baium, Antharas | Reign ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Download Revisão: https://github.com/danielbarion/L2JBlueHeart Source da Revisão: https://github.com/danielbarion/JBlueHeart-Source
  2. 23 points
    Boa noite comunidade. Primeiramente feliz ano novo a todos, muita paz saúde e muitos anos de vida! Hoje venho da um presentão para a nossa comunidade (principalmente aos clans) que é a minha interface toda refeita, desde as janelas do jogo até algumas mudanças que fiz para ter uma melhor/rapidez de resposta sobre a interface. Vou deixar fotos e o link do que fiz na interface e claro use e abuse dela, tem muitas coisas que não postei aqui. Dano na tela igual do classic: HP do inimigo: CC: Mapa: Shop: Opções: General Manufacture: Siege info: Private Store Sell: Private Store Buy: Private Store: Recipe Creation: Party Match: Interface Utility: Hero list: Auto Buff: Skill Enchant: Skills: Trade: Dyes: Map: Inventory: Chat Filter: Macro: Quest: Key Settings: Clan: Status: Actions: Grocer: Warehouse: Vou postar alguns videos da interface para vocês entenderem e verem algumas coisas. Aqui um video de demonstração (antigo): Esse aqui voces vao gostar, o que ele faz? Bom vou tentar explicar, todos sabem do auto assist que ja tem nas interfaces, porem elas sao automaticas, se voce apertar para ficar no assist seu personagem fica querendo atacar o alvo automaticamente, isso na treta fica muito ruim na hora de "QUITAR" ou etc. No video eu mostro que tem 2 opcoes de assist, o automatico e o auto target ao SEU COMANDO. Voce marcará o seu "MA" e usara o ESPACO do seu teclado para trocar o assist sempre que seu "MA" falar: ASSIST ASSIST.. e ele nao sairá seguindo o assist do seu MA, ele apenas trocará. Bom, espero que gostem, usem abusem, muitas pessoas e lideres de clan me pediram e estou postando agora. O por que estou postando isso? Sinto que tudo o que sabemos hoje foi por ajuda de terceiros e por que alguem te ensinou, só te falta dedicação. Obs: para os experts a interface está limpa e sem nenhuma proteção em seus códigos, talves irei atualiza-la quando eu tiver um tempão sobrando =D Claro o download: https://www.4shared.com/rar/OTuM_QFlda/Interface_On.html Créditos: Onã
  3. 21 points
    Projeto no github Github Wiki Maven Central Releases Há um tempo estive me perguntando o porquê do mmocore, um dos principais componentes dos servidores L2J, não estar sendo evoluído. O máximo de melhoria que vi, pelos diversos projetos que tive acesso ao código, foi o uso de mais de um SelectorThread. Depois de um tempo de pesquisa, procurando por alguma modificação significante no mmocore, cheguei a conclusão que essa falta de melhorias só podia ter 3 explicações: A alteração no mmocore é custosa e devido ao tempo de maturidade seria um grande risco; Utilizar outra abordagem não iria apresentar um melhor desempenho, talvez até piorasse. Então quem tentou, provavelmente desistiu; Quem evoluiu o mmocore simplesmente não quis compartilhar. Na minha percepção era improvável que uma tecnologia com mais de 15 anos, ainda continue sendo a melhor opção para esse cenário. Visto que a biblioteca NIO, atualmente utilizada pelo mmocore, foi lançada com o Java 1.4 e uma atualização dessa mesma biblioteca chamada de NIO2 foi lançada com o Java 7, então há uma chance de melhorar o mmocore utilizando a API introduzida pelo Java 7. Uns dias atrás, fiquei um pouco ocioso e resolvi tirar a prova eu mesmo. Resolvi desenvolver um novo mmocore, tentando manter o máximo possível de compatibilidade com o atual, utilizando sockets assíncronos que em teoria iria melhorar o tempo de resposta cliente - servidor, o que acarretaria na diminuição de lag. Mas nem tudo é perfeito, há um preço a se pagar por essa melhoria: utilização de mais recursos (Memória e CPU). Inicialmente estimei que haveria um aumento de 25 a 40 KB no consumo de memória para cada player logado, o que daria 4 MB a cada 100 player, se você fizer a façanha de colocar 10000 players no servidor, esse número subiria para 400 MB, o que não é lá muita coisa, levando em consideração os recursos disponíveis atualmente. Após o desenvolvimento de uma versão utilizável, fiz alguns testes de carga utilizando o jmeter, que são apresentados nas tabelas abaixo: O teste realizado foi bem simples, projetado apenas para saber o tempo de resposta de cada solução. Para não sofrer interferência por causa da latência de rede foi realizado em uma única máquina, o que não é recomendado por causa do compartilhamento de recursos, principalmente CPU, entre o jmeter e o servidor. Mas acredito que para uma versão inicial já é o bastante. O teste consiste em uma variedade de players (conexões) enviarem um pacote de 8 Kb, que é maior que a maioria dos pacotes utilizados pelo cliente do Lineage 2, e esperar uma resposta de também 8 Kb. Assim foi calculado o tempo de conexão mais o Round Trip do envio de pacotes. Segue uma breve explicação sobre os dados que estão nas tabelas: Players - Quantidade de conexões concorrentes fazendo requisições (enviado pacote) para o servidor. Média - O tempo médio de conexão mais o tempo de envio do pacote mais o tempo de recebimento e leitura (Round Trip Time) em milissegundos. Min - O tempo mínimo de conexão mais o tempo de envio do pacote mais o tempo de recebimento e leitura (Round Trip Time) em milissegundos. Max - O tempo máximo de conexão mais o tempo de envio do pacote mais o tempo de recebimento e leitura (Round Trip Time) em milissegundos. D. Padrão - medida de dispersão em torno da média, no geral quanto menor quer dizer que os tempos estão mais próximos uns dos outros. Throughput - Quantidade de requisições por segundo. Erro - Porcentagem de requisições que retornaram com erro. MMOCore utilizando Selector: _________________________________________________________________ |Players | Média | Min | Max | D. Padrão | Throughput |Erro | |----------------------------------------------------------------| |998 | 60ms | 43ms | 101ms | 8.68 | 487.3/s |0.0 | |1999 | 62ms | 44ms | 115ms | 9.01 | 769.73/s |0.0 | |3993 | 100ms | 42ms | 1261ms | 190.44 | 733.60/s |0.0 | |7988 | 411ms | 43ms | 7285ms | 889.66 | 807.27/s |0.0 | |31976 | 804ms | 6ms | 8792ms | 1628.33 | 769.96/s |11,3%| ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ MMOCore Assíncrono (2.0) _________________________________________________________________ |Players | Média | Min | Max | D. Padrão | Throughput |Erro | |-----------------------------------------------------------------| |1000 |1ms |0ms |45ms |4.94 |539.08 |0.0 | |2000 |1ms |0ms |55ms |4.34 |764.81 |0.0 | |4000 |2ms |0ms |64ms |4.62 |804.50 |0.0 | |8000 |1ms |0ms |152ms |6.13 |1106.19 |0.0 | |32000 |726ms |0ms |45,159s |2060.37 |696.06 |11,7% | ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ ͞ ͞ ͞ ͞͞ ͞ ͞ No geral, utilizando sockets assíncronos apresentou um melhor desempenho, como pode ser visto. Os arquivos com o resultado dos testes estão disponíveis no github [ ]'s
  4. 20 points
    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: 166 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. 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
  5. 19 points
    Fala, galera, beleza? Seguinte, peguei o Sass do Bootstrap 4.3 e o modifiquei para ficar com visual igual ao cliente do L2 Moderno. O objetivo é deixar os componentes o mais parecido possível com L2, mas sem alterar nada o HTML da utilização original do Bootstrap. Demo: https://l2brasil.bitbucket.io/bootstrap-modern/ Projeto open-source: https://bitbucket.org/l2brasil/bootstrap
  6. 16 points
    Hello everyone L2kt is a project based on 379 aCis currently migrating from Java to Kotlin Project goals Migrate from Java to 100% Kotlin. Refactor a lot of the terrible code in aCis (most of it). Create an advanced plugin based API for people to write their customs in without messing up with the source. Migrate from Ant to Gradle. Dockerise the project. Keep it open source. The main engine itself will never be private. Current stage The project has been migrated to 20% Kotlin. It is already 20 thousand lines less code, just by migrating. There is not major refactoring that has taken place yet. Sources If you can do any of those things then feel free to give me a hand. https://github.com/Elfocrash/L2kt It's licensed under GLP-3.0 mainly because that is the L2j license and I don't have any right to sublicense. The project is fully managed on Discord for now: https://discord.gg/K7kyNpv (To be updated soon)
  7. 14 points
    Não sei dizer o quão jogável está, mas sei que está sendo atualizado diariamente, dentro do possível estarei atualizando! O Patch Notes dele completo (Oficial) https://eu.4game.com/patchnotes/lineage2classic/133/ Basicamente chegou o "Interlude" no Classic! Vou compartilhar a primeiro momento apenas o compilado. Talvez mais pra frente poste junto a source. Downloads Atualização 16-07 [DS] - [MEGA] Source 16-07 [DS] - [MEGA] Adicionais Client: https://drive.google.com/uc?id=1pukdKmUvpSxdeCcBDmWKW3wXLY-fy4Y4&export=download Geodata: http://www.mediafire.com/file/urs2uvjnwltk7ub/L2J_Mobius_Classic_2.2_Antharas_Geodata.zip JDK: http://www.mediafire.com/file/514ah8a77dk5j7a/jdk-10.0.2_windows-x64_bin.exe System https://drive.google.com/file/d/169xWWShZ-Ti1Nmg51FdQI7X2qyMIIXqv/view?usp=sharing by Warring
  8. 14 points
    Boa tarde galera. Estou mexendo com interfaces ja faz um tempo, entao algumas coisas/conhecimento eu ja tenho. Entao estou vindo aqui compartilhar com voces algumas coisas que ja editei e tambem saber se alguem que esteja nessa "vibe" querer editar toda a interface do interlude. Bom vou deixar algumas prints do que ja editei. Store do GMSHOP: Warehouse: Symbol Maker: Grocer Store: Mapa: Inventory: Chat Filter: Macro: Quest: Key Bind: Clan: Options: CharInfo: AutoBuff: Actions: Skills: Trade: Skill Enchant: Hero List: Augment: Créditos Interface: Iordanov (versão 3.9) Janelas: Neophron Edições: Onã Interface usada: http://rgho.st/8pBLYW7PW Qualquer coisa Pm Me!
  9. 13 points
    Finalmente! Como alguns já perceberam estamos testando um sistema novo de selos. Esse é um projeto que nasceu em 2011 mas que só se concretizou agora com os novos recursos que a versão mais atualizada do software do fórum. Adiquirimos uma aplicação componente que permite a premiação automática e manual dos usuários do fórum de acordo com alguns critérios. Então teremos 2 tipos de selos: Troféus - Troféus são automaticamente concedidos com base em critérios definidos pelo administrador no ACP. Medalhas - Medalhas são concedidas manualmente por moderadores, administradores. Ainda estamos em fase de construção e testes, pode ser que seus selos sejam removidos sem aviso prévio durante esse período, mas já podem comemorar: Em breve postaremos a lista completa de todas as medalhas e troféus que são possíveis serem conquistados 🙂
  10. 12 points
    https://www.mediafire.com/file/duv1zz5japdvev1/SAINTSEIYA.rar/file credit model and textures: l2sacrifice.fr adapt for me to IL REPORT POSSIBLE BUGS
  11. 11 points
    Bom pessoal, encontrei a source da lucera2 decompilada, funcional em outro fórum, no caso o cara que fez isso decompilou ela, e deu uma trabalhada em cima para os arquivos serem "funcionais" (é bom testar antes de planejar algo grande em cima disso já que se trata de uma decompilação.) Tradução do post original: Atenção pessoal, utilizem isso para estudos e testes antes de colocar online, pessoas inexperientes, evitem transformar esse tópico em um tópico de dúvidas. Há bastante tutoriais para ajudar. Donwload Source Mediafire - by Penacho Download Source Mega - by Vampir Download Geodata Agradecimentos ao Vampir por ter postado o trabalho dele.
  12. 11 points
    __________________________________________________ Boa noite a todos! Alguns me conhecem como Juninho outros como MrFreedomFights, eu vim trazer minha ultima contribuição ao "L2J", mas não por querer e sim pelo fato de não ter mais tempo para trabalhar com Lineage 2. A muito tempo postei no fórum um projeto que veio a chamar muita atenção por se tratar de algo que só se via pagando, trouxe esse conteúdo para o fórum e fui bombardeado de mensagens pedindo a source que até então era privada somente para desenvolvimentos pessoais, mas só até hoje.. apresento-lhes "L2jGuardian versão GIFT" façam um grande proveito! tirem o máximo de aprendizado! usem com sabedoria! mantenha os créditos! um grande abraço a todos!! 😘 ⭐ L2-Guardian Version GIFT ⭐ ⭐ Comando .menu Personalizado ⭐ ⭐ Download & Créditos ⭐ L2-Guardian by MrFreedomFights!!
  13. 11 points
    Yo o/ Olá pessoal Bom, eu tenho observado há muito tempo um defeito horrível que eu acho no L2 IL, que é causador de muito LAG! vou trabalhar na correção das mechas e posição do brilho/cor das armas NG, D, C, B, A e S do Interlude. foram feitas algumas correções que observei no FREYA/H5 para frente'' pela NCsoft. não criei o tópico na área de desenvolvimento, justamente para passar cada update por download para vocês. Estou aberto a sugestões! Finalizado: I I I I I I I I - 85% ----------------------------------------------------------------------------------------------------//------------------------////---------------------- Download Fotos
  14. 11 points
    Iae Galera venho aqui postar provavelmente minha ultima contribuição no fórum bem vamos lá: Meu projeto foi baseado na ultima versão da Frozen 1132 pré configurado e copilado por min, Servidor perfeito para no custom já que corrigir todas as falhas da até para enganar chamar de L2OFF, Passei mais de 2 anos configurando L2JFrozen então já sabia todos os bugs que tinha e como resolver, Se botar max enchante +10 ou +16 garanto que vai ver até classe de summoner matando, Passei trez meses Balanceando Classes e skills e resolvendo bug de armas e armaduras, não foi por que configurei mais servidor está beirando a perfeição nesse sentido eu garanto, estou postando a rev por que não pretendo mais mexer nela nem botar online. Demonstração de uma das arenas Olympiadas: Informações Basicas: Rates: XP: 100x SP: 100x Adena: 200x Drop: 200x Economia do Servidor: Equipamentos "C", "B", "A" comercializado por adena, Equipamentos "S" vendidos em shop por drop medal Free Buffs: NPC Basic Buffer Grátis 5 Horas 32 Slots + 7 Debuff Vip Buffs: Heroic Valor, Rhematism, Cholera, Flu, Malaria, Active: Might, Active: Empower Scrolls Enchant's Chance: Normal: 75%. Blessed: 85% Golden 100% Scroll Enchant's Rates: Safe +5 / Maxcimo Weapon, Armor, Jewellerys +20 Golden Scroll Enchant's: 100% até +20, +21:80%, 22:60%, 23:40%, 24:20%, 25:10%. Break Enchant: Blessed Retorna +5 Golden Retorna +20 Novatos: Inicio top No-Grad com SS e Vip Coin 3 dias Party Farm: Dino Sland: Tyrannosaurus Áreas de Drop Medal: Pagan Temple: "Andreas' Royal Guards" Drop: Imperial Warlod Zombie 5% chance, "Ritual Offering" Drop: Dusk Shield 10% Chance Boss Drop Silver Coin: Ketras Hero Hekaton, Ketras Commander Tayr, Ketras Chief Brakki, Varkas Hero Shadith, Varkas Commander Mos, Varkas Chief Horus, Queen Shyeed, Ember, Uruka. Itens customs: Enfeites, TitaniumArmor, IcarusWeapons, Shirts Tattos, Abyssal Armor e Weapons Oly Período: 30 dias Castle Siege Período: 14 dias Max Sub Classe: 9 Bugs Resolvidos: Bug de adena drop dos mobs que dropava muito pouco S.A das armas corrigidos Skills efeitos, hitdamage e delay corrigidos Classes rebalanceadas e corrigidas Atacar players em giran Efeito SS Java Mods Adicionados: .menu Admin startup super haste Restarte Automático Game Server and Login Server Show tutorial Nobless kill barakiel Clan iten: clan full skill, level 8, 10k reputação Vip Itens: vip newbie 3 days, vip Iten 30 days Vip Rates: XP, SP AIo Iten Adicionar Aio dual e remover dual Bloqueios Aio Fora da city e eventos LSstackable / BOGstackable / ENCHANTEstackable ShowNpcCrest ShortCuts Actions Advanced PvP, PK Color System Disable nobless and clan change title Anti-Bot Chaotic Zone Core Buff + Vip Buff Contador de kill no título TVT Sub Class em todos os NPC's Bloquear Trade Modo de Combate PvP e PK Anuncio no Topo Fixes Correções V2 Anti Duplicate Itens Custom Cancel Seconds 20 segundos Modificações: Adicional CP, HP, MP: Wings of Destiny Circlet Bloqueada nas oly Annouce de outra cor sem o nome do ADM Limite de letras no nick ao criar personagem: permitido uma letra ou numero Olympiadas arenas unerground Coliseum Shield Imperial Walord Zombie é Dusk Shield: Renomeados e modificados Para Grade "S" Todos os itens Armor Weapons e Jewellerys já vem enchantados no safe do servidor Crystal Enchante Modificado para Golden Enchante Removido todos os lixos drop dos mob por exemplo: "Suede" Anuncios TVT e CTF modificados para annoucements comun Modificado Status de joias Boss para skills funcionarem e um pouco de status a mais Drop de Adena 100% de chance de dropar Removido Drop Dos EPIC boss se quiser botar como low rates tem que readicionar Removido drop dos Grand Boss listados e adicionado Silver Coin Custom Comandos: /oly: Para ver pontuação e lutas nas olympiadas /escape: inicia unstuck para a cidade mais procima Demostração NPC's Com Efeitos: Gatekeeper Global: Gm Shop: Core Buff Vip: ScreeShot's: Algumas Cores do Pvp Color: https://imgur.com/NlZGzV0 Mesagens ao Logar no Servidor: https://imgur.com/9ib9Hiu Fotos Infeites Customs: https://imgur.com/NBUgJ7g Observação: não renomear system nem trocar l2.exe pois ela tem uma proteção e pode dar erro, o mais comum e não passar da tela de login. Recomendações: programas para rodar servidor sem erros: Java - JDK - 7 ou 8 Mysql - 5.5.28 Navicat Premium Enterprise v11.2.6 Download Servidor Custom: Recomendado Servidor + Backup: 4shared Zippyshare Full Patch L2Brazil: Mediafire 4shared Fix HTML Auction: Mediafire 4shared Zippyshare Download Servidor NO Custom: Não Recomendado Servidor + Backup: Mediafire 4shared Full Patch L2Brazil: 4shared Zippyshare Modificado servidor recomendando e não recomendado , o custom está mais completo e o patch está sem falhas ! Quando tiver com tempo posto mais pré configurados, Feliz natal e prospero ano novo a todos.
  15. 11 points
    Bom Galera Como Eu Estava Um Poco Inativo Aqui No Forum Pra Voces, Ai Eu Lenbrei Que Era Menbro Ainda Aqui OPASKdpokASPODKpaksd Entao Como Nao Tinha Nada Para Fazer Resolvi Fazer 1 Server Packs Pré Configurado Em Modo pvp-Rate Algumas Info: Siege Semanal Olly semanal Tatto Custom Weapons valakas - dynasty - icarus Armor titanium , dark kignt , dynasty , vesper Custom Donate Shop VIP - Hero - Class, Name e Sex Change 99 Acessórios 2018 Blessed Scroll: 90% +18 - Crystal Scroll 100% até +22 - Golden Scroll 100% até +25 Buff Clan Manager Raid Info Augment NPC Skills Enchant NPC Tournament Event - TvT - Party farm events Chaotic Zone Aiox System Vip System Mod Phantom - Fake Player System Anti-bot com Captcha Alguns Comandos: .menu .info .donate .status .skills .inventory .ranking //fakes tudo configurado manualmente pelo fakesplayer.properties Start new char configurado manualmente pelo startupmanager.properties Algumas Imagens:
  16. 11 points
    Algumas Info: Siege Semanal Olly semanal Tatto Custom Weapons Lindvior Custom Armor Transcedent Custom Donate Shop VIP - Hero - Class, Name e Sex Change 99 Acessórios 2018 Blessed Scroll: 90% +18 - Crystal Scroll 100% até +22 - Golden Scroll 100% até +25 Buff Clan Manager Raid Info Augment NPC Skills Enchant NPC Tournament Event - TvT - Party farm events Chaotic Zone Aiox System Vip System Mod Phantom - Fake Player System Anti-bot com Captcha Alguns Comandos: .menu .info .donate .status .skills .inventory .ranking Algumas Imagens: Vídeo : Downloads Source PROGRAMAS Necessários: Java: 8 JDK : https://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html MySQL: 5.5 : https://mega.nz/#!0Y0XhI7Z!N512DQLzY7EWORx7kaYcXXgW4xnDHjaxf2j-NOrKAsw Navicat: 10 : https://mega.nz/#!4Vt3BIwC!B_t2Is_lSDqj3iE8TL1dBUAJUljO9QXlFrgj6eeS7hA - Utilitário: L2FileEdit : https://mega.nz/#!ZNhDWaqQ!oTkScr_pR_lJBWrjgga6HJ7BYPLrKUfAFIvcjrS6TyY Créditos da Rev base : @MeGaPacKl Créditos customização : @Kallisto Baixou e curtiu? da o teu gostei na publicação mulek!
  17. 11 points
    Fala galera, venho aqui compartilhar com vcs meu pre-configurado, que fiz com base na l2jnetwork postada aqui. irei citar somente os mods que eu adicionei. o resto dos mods que nao citei, sao os padrao da l2jnetwork (OBS) Nao balanceei as classes e nao coloquei online. Mods News Source postada porque provavelmente irei da um tempo de mexer com l2! E por motivos financeiros irei ficar sem PC! Link da Source Link do Server Link do Patch Link de algumas imagens
  18. 11 points
    GroundSpeed=120.00 DrawScale=0.38 CollisionRadius=10.00 CollisionHeight=23.00 https://www.mediafire.com/file/fsnm6pfg7r26jz4/L2NPCs_Hera.rar
  19. 11 points
    Tópico Refeito e Repostado. • Todos os acessórios estão dando (+100 P.Def and +100 M.Def) • Refined Wizard Hat • Refined Jester Hat • Refined Romantic Chapeau • Refined Dapper Cap • Assassin's Bamboo Hat • Laborer Hat • Noblesse Oblige • Goddess Hair Style 1 • Goddess Hair Style 2 MadebySmallz2013 Tamanho: 1,6 MB Créditos: Systextures e Animations: Criação do Pack, SQL, Stats, Armorgrp, Itemname_e: • Smallz'
  20. 10 points
    V Interface Full Functions Cracked Features: Auto Augment Auto Enchant Auto Skill Enchant Auto Macros Usage Fast Items Deletion trought Inventory Auto Farm = Bot Debuffs & Timer Olympiad Damage Calculator e muito mais. Download: MEGA Download V2: MEGA Craqueado por: Iordanov | Nao dou Suporte pro mesmo, então use por conta e risco e boa sorte!
  21. 10 points
    Tava sem o que fazer fiz esse Shield ai pra vocês Efeito no Crystal do centro dele de Cósmico fico legal. Por estar sem programa pra gravar Hoje venho só com as fotos Se gostou deixa o Like que Posto mais.. copyright V A N P E R & NCsoft
  22. 9 points
    A pedido do membro @Kallisto por uma Source L2jFrozen com alguns Mods da preferencia dele iniciarei aqui um desenvolvimento. Peguei a Source limpa da jFrozen deste link: SVN PROGRAMAS USADOS: Java: JDK 7 Update 2 MySQL: 5.7 Navicat: 8.0 Eclipse: SDK 3.7.1 Slik Subversion: 1.7.2 Winrar O QUE JÁ FOI FEITO: Proteções: No Trade in Combate Aio no use gatekeeper Aio no use class master Aio no participe events aio no use vip status item vip no use aio status item Modificações: Days to Siege Config Server Credits Config replaces for welcome.htm Banking System full edit config Enchant System full edit config New Propertie Status system New Propertie Items handler New Propertie Npcs core Announce Obtained Status: Noble, Aio, Vip, Hero Announce Login Status: Staff, Noble, Aio, Vip, Hero, Lord Last Login in welcome.htm Skills for Aio & Vip Effects for Aio & Vip Name / Title Color for Aio & Vip Items Reward for Aio & Vip Firework effect + ExScreenMsg use items handler Zonas: Newbie Zone Hero Zone Donator Zone Multifuncional Zone PvP Flag Zone Clan War Zone Npcs: NPC Smart Shop NPC Skill Seller NPC Bug Report NPC Item Marketer NPC Fast Augment NPC Macro Buffer Items: Universal Enchant Golden Enchant Clan Full Item Clan Skill Item Clan Level Item Clan Reputation Item Change Sex Item Change Name Item Change Base Class Item Aio Status Item Vip Status Item Noble Status Item Hero Status Item PvP Reward Item Pk Reward Item Comandos: .menu .info .ctfjoin, leave, info .tvtjoin, leave, info .dmjoin, leave, info .deposit .withdraw .aioinfo .vipinfo //mashero //masrecal //send donate //setvip char days //setaio char days Sistemas: Aio System Vip System Hero System Noble System Donator System Auto Restart System Bot Protection System PvP / Pk Color System Eventos: Achievements Trivia Hitman Arena 2x2 CTF TVT DM TW Pc Bang Points Wedding Champion Mobs DOWNLOADS: Patch: ==================================================== itemname-e.dat ==================================================== 10000 Donator Scroll: Enchant Weapon A scroll of enchantment that empowers a weapon. -1 0 0 0 10001 Donator Scroll: Enchant Armor A scroll of enchantment that empowers a armor -1 0 0 0 10002 Donator Coin Currency used to purchase valuable items. -1 0 0 0 10003 Gold Coin Currency used to purchase valuable items. -1 0 0 0 10004 Gold Bar Currency used to purchase valuable items. -1 0 0 0 10005 Noble Status Item -1 0 0 0 10006 Aio Status Item -1 0 0 0 10007 Vip Status Item -1 0 0 0 10008 Hero Status Item -1 0 0 0 10009 PvP Point -1 0 0 0 10010 Pk Point -1 0 0 0 10011 Clan Full -1 0 0 0 10012 Clan Skill -1 0 0 0 10013 Clan Level -1 0 0 0 10014 Clan Reputation -1 0 0 0 ==================================================== etcitemgrp.dat ==================================================== 2 10000 0 3 6 3 0 dropitems.drop_scroll_m00 dropitemstex.drop_scroll_t00 icon.Item_CanUse31 0 120 18 0 0 1 1 ItemSound.itemdrop_scroll 0 0 0 2 10001 0 3 6 3 0 dropitems.drop_scroll_m00 dropitemstex.drop_scroll_t00 icon.Item_CanUse30 0 120 18 0 0 1 1 ItemSound.itemdrop_scroll 0 0 0 2 10002 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_coin_of_fair_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10003 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_coins_gold_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10004 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_lump_yellow_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10005 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_l2_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10006 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_l2_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10007 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_l2_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10008 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_l2_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10009 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.skill1502 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10010 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.skill1501 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10011 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_l2_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10012 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_l2_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10013 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_l2_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 2 10014 0 3 2 5 0 dropitems.drop_sack_m00 dropitemstex.drop_sack_t00 icon.etc_l2_i00 0 0 18 0 0 1 1 ItemSound.itemdrop_sack 2 0 0 ==================================================== PRINTS: Aqui o primeiro álbum de fotos = https://imgur.com/a/tNg05Qb ANDAMENTO: 65% Créditos: @Gabrieljdb @L2JBRASIL FORUM OBS: Se for para adicionar mais mods cole abaixo o link Se souber de algum Erro ou má configuração relate tambem. O QUE ESTIVER AO ALCANCE DO MEU HUMILDE CONHECIMENTO ,FAREI. Previsão para termino? DOM, 27/01/2019
  23. 9 points
    Olá a todos venho compartilhar um conteúdo meu que estava trabalhando em cima a alguns messes dias e horas! bom ate onde eu testei estava tudo fluindo bem, eu usei a Base da jNeTWorK-32 para realizar esse projeto, venho trabalhando com muito carrinho e respeito para uso próprio, mais Hoje em dia e muito complicado Ligar um Server, sem ter paciência com Os Jogadores Brasileiro, muitos aprendem alguma coisa com o Fórum e se acha Configuradores Proficionesi que vendem ate Revisão de Outras Pessoas, bom isso não ira acontecer aqui Projeto Foi feito para o Fórum ultimamente testei grande coisas sem Problemas! peço a Ajuda de vocês que Ultilizem o Projeto e Sim a Source E Privada so mente para meu uso retirei todos os créditos possível que eu tinha adicionado, mais aproveitem o projeto esta bem Legal. Bom todos que aprendem alguma coisa aqui, ou para de postar ou ficam arrogantes por saber mais que o amiguinho, bom todos que teve o prazer de conversar comigo sabe que não só esse tipo de pessoa e já que os Pro-em-JAVA Não tem cortagem de postar alguma coisa boa pros Zé Droguinhas Do Fórum eu tenho. Só não Podem vender o Projeto se foi disponibilizado em tão e GRATUITO! Usem é não Abusem ;) Até onde eu peguei ela estava com esse ultimo UpDate Feito pelo Baggos Alguém dos Moderadores podem editar o Tópico e Arrumar os Link e colocar na Imagen Aqui não esta dando pra editar o Tópico dentro da Spoiler! DOWNLOAD PROJETO/PATCHFULL PROJETO L2-jBAN DOWNLOAD GEODATA SERVIDOR PRECISA DE 4GB MINIMO PRA RODAR! GEODATA Projeto e um 70x XP/SP Adena 75x Inspirado em um Servidor C4 muito bem balanceado sem Custom e logico! As tatto ja estão prontas pro servidor no-Custom olha no painel Admin. Contribuições Eu não afirmo ser um desenvolvedor especialista java, nem mesmo perto disto. Vou atualizar isso com mais informações em breve.
  24. 9 points
    PT-Br Hey jovens! Estou tendo Java na faculdade e como eu sou apaixonado por L2, estou desenvolvendo uma engine inspirado pelo projeto do @Elfocrash L2JRoboto e por uns videos que ele disponibilizou na descrição do repositório; o projeto em si vai um pouco mais além de apenas um fake players, a ideia é trabalhar com funções pequenas e o mais genérico possível para poder usa-las nos personagens e eles farmarem sozinhos (tipo um bot, mas "legalizado" pelo servidor, por assim dizer...); Vale mencionar que esse trabalho também valerá nota em 2 disciplinas que tenho na faculdade esse semestre hahaha; A Autopilot Engine é para HighFive; comecei a desenvolver ela estudando o código do @Elfocrash. Atualmente estou terminando a classe Sagittarius e logo logo começo as outras, eu sou bem rigoroso em questão de perfeccionismo e os fake players precisam fazer as escolhas de target, skills e movimentações o mais parecido possível com players; Google Translator: Hey guys! I'm having Java in college and as I'm in love with L2, I'm developing an engine inspired by the project @Elfocrash L2JRoboto and some videos that he made available in the description of the repository; the project itself goes a little further than just a fake players, the idea is to work with small functions and as generic as possible to be able to use them in the characters and they do it alone (like a bot but "legalized" by the server, so to speak ...); It is worth mentioning that this work will also count in 2 subjects that I have in college this semester hahaha; The Autopilot Engine is for HighFive; I started to develop it by studying the @Elfocrash code. I am currently finishing the Sagittarius class and soon I start the others, I am very strict about perfectionism and players need to make the target, skills and movements choices as close as possible to players; Below is a ScreenShot of the test and things noted to be made sequentially. https://youtu.be/UEoT2T9Z5pI
  25. 9 points
    Corrigido, prontinho pra usar, sql configurada para jfrozen. incluso XML.
  26. 9 points
    Olá Jadson, Baixe o projeto, ligue ele e tire suas dúvidas pesquisando por si próprio; se não estiver bom ou não for o que você imaginou... É só não utilizar. Caso a explicação dele no tópico não esteja boa para vossa excelência; você é extremamente bem vindo a postar uma explicação da revisão segundo as coisas que testar nela. Falar que o Juninho ou qualquer outro membro não explica nada direito é fácil, perguntar "o que tem de bom nesse projeto" também. Você não fez nenhuma pergunta interessante, por acaso baixou o projeto e ligou ele ?
  27. 9 points
    Alexandre, se a gente "só dizer não", vão dizer que somos intolerantes, blablabla, mimimi. Se a gente tenta explicar, temos argumentos "sei lá". Cara, é complicado, viu?!! Vocês não tem noção da gravidade disso e parece que não conhecem o país no qual vivem. Vamos aos fatos, mais uma vez... https://projudi.tjgo.jus.br/BuscaProcessoPublica Número do processo: 5229297.46 Réu: BOM NEGÓCIO ATIVIDADES DE INTERNET LTDA (OLX) Prejuízo: R$ 83.000,00 FATO: A OLX, mesmo com uma carambaiada de documentos e termos onde declaram que NÃO SÃO RESPONSÁVEIS PELOS ANÚNCIOS NO SITE, foi condenada a pagar 83 mil simplesmente por que veiculou um anúncio de um meliante que caloteou um usuário. PREVISÃO: A L2JBRASIL, mesmo com uma carambaiada de documentos e termos onde declaram que NÃO SÃO RESPONSÁVEIS PELOS ANÚNCIOS NO SITE, foi condenada a pagar 5 mil ali, 10 ali, 20 ali, simplesmente por que permitiu usuários usarem seu site para vender de pack l2j bugada para servidor que mal durou 1 semana e depois o admin "honesto" quis reaver seu dinheiro, já que teve preju. Aí o cara pede 10 mil de danos morais + a micharia que pagou e um excelentíssimo juiz dá causa ganha! Brasil sil sil... Vocês tem dinheiro pra arcar com isso? Eu não tenho. Se tiver, senta aqui, vamos conversar. Obrigado galera! Tópico fechado.
  28. 9 points
    Tópico Refeito e Repostado. NewErabySmallz Tamanho: 2,9 MB Créditos: Systextures e Animations: • WilliamFS Server e System: • Smallz'
  29. 8 points
    Iae galera da L2jBrasil , estou de volta com um novo projeto , com basicamente com os mesmos requisitos do meu primeiro projeto L2Brazil estou iniciando um novo projeto com base na L2JFrozen 1.5. Diferente da primeira REV estou refazendo o novo projeto mais focado em low e mid rates e não mais em pvp, estou corrigindo alguns bugs, assim como também algumas coisas que foram adicionadas na primeira rev vão ser aprimoradas, em breve mais novidades, atualizações neste tópico! Implementações: Verificações e Correções Bugs: Melhorias:
  30. 8 points
    Olá, tudo bem? Então... Faz uns dias comecei um projeto (Web L2Fenix) e acabei ele hoje. Por esse motivo e por estar sem tempo sobrando resolvi postar sem testar a fundo, então me desculpem qualquer falha encontrada no site. Um pouco simples, nada muito chamativo na minha opinião. Porem, eu gostei então venho compartilhar esse trabalho com vocês! 😍 (Críticas serão bem vindas!!) * Não tive tempo de colocar scripts, isso fica por conta de vocês se forem usar * Imagens, download e créditos:
  31. 8 points
    Fala pessoal, tudo bem com vocês? algumas pessoas tem me pedido para fazer um tutorial de como fazer um logo , eu não sou bom para explicar mas o vídeo que fiz creio que seja o suficiente para que vocês aprendam espero que gostem, este é meu primeiro tutorial na L2JBrasil @[email protected] apesar que já estou aqui a mais de 4 anos kk Qualquer dúvida basta perguntar, se eu souber irei ajuda-los, forte abraço a todos. Vídeo tutorial Programas Download Linha do NPC <img src=l2jbrasil.l2jbrasil width=256 height=128> Créditos: Meus Agradecimento especial ao WariinG por ter me instruído com o Unreal ^~^' Obrigado tio <3
  32. 8 points
    https://www.mediafire.com/file/8rwa5ftho5g4pio/SGERfjs_KingofBeasts.rar/file
  33. 8 points
    http://lineage2.power.plaync.com/wiki/R110+방어구 https://www.mediafire.com/file/2bieoe56hdh75f0/SGERfjs_R110.rar/file
  34. 8 points
    Esse guia tem como objetivo apresentar de maneira sucinta os passos necessários para utilizar o mmocore assíncrono. Não sabe o que é? dê uma olhada nesse tópico. Estarei utilizando L2jServer Interlude para realizar a migração. Outras versões podem ter algumas diferenças, mas nada muito específico que este guia não possa cobrir. Remover o mmocore da pasta lib. Nesse momento vários erros aparecerão na IDE, caso esteja usando Adicionar o mmocore-2.0 no projeto A versão compilada está disponível aqui Caso prefira compilar: github Realizar as alterações em L2GameServerPacket Index: L2J_Server/java/net/sf/l2j/gameserver/serverpackets/L2GameServerPacket.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/serverpackets/L2GameServerPacket.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/serverpackets/L2GameServerPacket.java (date 1538483553000) @@ -21,12 +21,12 @@ import net.sf.l2j.gameserver.network.L2GameClient; -import org.mmocore.network.SendablePacket; +import org.l2j.mmocore.WritablePacket; /** * @author KenM */ -public abstract class L2GameServerPacket extends SendablePacket<L2GameClient> +public abstract class L2GameServerPacket extends WritablePacket<L2GameClient> { private static final Logger _log = Logger.getLogger(L2GameServerPacket.class.getName()); Realizar as alterações em L2GameClientPacket Index: L2J_Server/java/net/sf/l2j/gameserver/clientpackets/L2GameClientPacket.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/clientpackets/L2GameClientPacket.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/clientpackets/L2GameClientPacket.java (date 1538485300000) @@ -24,13 +24,13 @@ import net.sf.l2j.gameserver.serverpackets.ActionFailed; import net.sf.l2j.gameserver.serverpackets.L2GameServerPacket; -import org.mmocore.network.ReceivablePacket; +import org.l2j.mmocore.ReadablePacket; /** * Packets received by the game server from clients * @author KenM */ -public abstract class L2GameClientPacket extends ReceivablePacket<L2GameClient> +public abstract class L2GameClientPacket extends ReadablePacket<L2GameClient> { private static final Logger _log = Logger.getLogger(L2GameClientPacket.class.getName()); Realizar as alterações no L2GameClient Index: L2J_Server/java/net/sf/l2j/gameserver/network/L2GameClient.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/network/L2GameClient.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/network/L2GameClient.java (date 1538486040000) @@ -45,14 +45,14 @@ import net.sf.l2j.gameserver.serverpackets.UserInfo; import net.sf.l2j.util.EventData; -import org.mmocore.network.MMOClient; -import org.mmocore.network.MMOConnection; +import org.l2j.mmocore.Client; +import org.l2j.mmocore.Connection; /** * Represents a client connected on Game Server * @author KenM */ -public final class L2GameClient extends MMOClient<MMOConnection<L2GameClient>> +public final class L2GameClient extends Client<Connection<L2GameClient>> { protected static final Logger _log = Logger.getLogger(L2GameClient.class.getName()); @@ -89,7 +89,7 @@ public byte packetsSentInSec = 0; public int packetsSentStartTick = 0; - public L2GameClient(MMOConnection<L2GameClient> con) + public L2GameClient(Connection<L2GameClient> con) { super(con); state = GameClientState.CONNECTED; @@ -121,18 +121,17 @@ } @Override - public boolean decrypt(ByteBuffer buf, int size) + public boolean decrypt(byte[] buf, int offset, int size) { - crypt.decrypt(buf.array(), buf.position(), size); + crypt.decrypt(buf, offset, size); return true; } @Override - public boolean encrypt(final ByteBuffer buf, final int size) + public int encrypt(final byte[] buf, final int offset, final int size) { - crypt.encrypt(buf.array(), buf.position(), size); - buf.position(buf.position() + size); - return true; + crypt.encrypt(buf, offset, size); + return size; } public L2PcInstance getActiveChar() @@ -180,7 +179,7 @@ public void sendPacket(L2GameServerPacket gsp) { - getConnection().sendPacket(gsp); + writePacket(gsp); gsp.runImpl(); } @@ -467,11 +466,6 @@ } } - public void close(L2GameServerPacket gsp) - { - getConnection().close(gsp); - } - /** * @param charslot * @return @@ -486,15 +480,15 @@ Integer objectId = _charSlotMapping.get(charslot); return objectId.intValue(); } - + + @Override - protected void onForcedDisconnection() - { - _log.info("Client " + toString() + " disconnected abnormally."); + public void onConnected() { + } - + /** - * @see org.mmocore.network.MMOClient#onDisconnection() + * @see Client#onDisconnection() */ @Override protected void onDisconnection() @@ -582,15 +576,15 @@ { try { - InetAddress address = getConnection().getInetAddress(); + String address = getHostAddress(); switch (getState()) { case CONNECTED: - return "[IP: " + (address == null ? "disconnected" : address.getHostAddress()) + "]"; + return "[IP: " + (address.isEmpty() ? "disconnected" : address) + "]"; case AUTHED: - return "[Account: " + getAccountName() + " - IP: " + (address == null ? "disconnected" : address.getHostAddress()) + "]"; + return "[Account: " + getAccountName() + " - IP: " + (address.isEmpty() ? "disconnected" : address) + "]"; case IN_GAME: - return "[Character: " + (getActiveChar() == null ? "disconnected" : getActiveChar().getName()) + " - Account: " + getAccountName() + " - IP: " + (address == null ? "disconnected" : address.getHostAddress()) + "]"; + return "[Character: " + (getActiveChar() == null ? "disconnected" : getActiveChar().getName()) + " - Account: " + getAccountName() + " - IP: " + (address.isEmpty() ? "disconnected" : address) + "]"; default: throw new IllegalStateException("Missing state on switch"); } Realizar as alterações em L2LoginServerPacket Index: L2J_Server/java/net/sf/l2j/loginserver/serverpackets/L2LoginServerPacket.java =================================================================== --- L2J_Server/java/net/sf/l2j/loginserver/serverpackets/L2LoginServerPacket.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/loginserver/serverpackets/L2LoginServerPacket.java (date 1538486372000) @@ -19,12 +19,12 @@ import net.sf.l2j.loginserver.L2LoginClient; -import org.mmocore.network.SendablePacket; +import org.l2j.mmocore.WritablePacket; /** * @author KenM */ -public abstract class L2LoginServerPacket extends SendablePacket<L2LoginClient> +public abstract class L2LoginServerPacket extends WritablePacket<L2LoginClient> { } Realizar as alterações em L2LoginClientPacket Index: L2J_Server/java/net/sf/l2j/loginserver/clientpackets/L2LoginClientPacket.java =================================================================== --- L2J_Server/java/net/sf/l2j/loginserver/clientpackets/L2LoginClientPacket.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/loginserver/clientpackets/L2LoginClientPacket.java (date 1538486503000) @@ -21,12 +21,12 @@ import net.sf.l2j.loginserver.L2LoginClient; -import org.mmocore.network.ReceivablePacket; +import org.l2j.mmocore.ReadablePacket; /** * @author KenM */ -public abstract class L2LoginClientPacket extends ReceivablePacket<L2LoginClient> +public abstract class L2LoginClientPacket extends ReadablePacket<L2LoginClient> { private static Logger _log = Logger.getLogger(L2LoginClientPacket.class.getName()); Realizar as alterações no L2LoginClient Index: L2J_Server/java/net/sf/l2j/loginserver/L2LoginClient.java =================================================================== --- L2J_Server/java/net/sf/l2j/loginserver/L2LoginClient.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/loginserver/L2LoginClient.java (date 1538486988000) @@ -18,14 +18,13 @@ package net.sf.l2j.loginserver; import java.io.IOException; -import java.net.InetAddress; -import java.nio.ByteBuffer; import java.security.interfaces.RSAPrivateKey; import java.util.logging.Logger; import net.sf.l2j.Config; import net.sf.l2j.loginserver.crypt.LoginCrypt; import net.sf.l2j.loginserver.crypt.ScrambledKeyPair; +import net.sf.l2j.loginserver.serverpackets.Init; import net.sf.l2j.loginserver.serverpackets.L2LoginServerPacket; import net.sf.l2j.loginserver.serverpackets.LoginFail; import net.sf.l2j.loginserver.serverpackets.LoginFail.LoginFailReason; @@ -33,15 +32,15 @@ import net.sf.l2j.loginserver.serverpackets.PlayFail.PlayFailReason; import net.sf.l2j.util.Rnd; -import org.mmocore.network.MMOClient; -import org.mmocore.network.MMOConnection; -import org.mmocore.network.SendablePacket; +import org.l2j.mmocore.Client; +import org.l2j.mmocore.Connection; +import org.l2j.mmocore.WritablePacket; /** * Represents a client connected into the LoginServer * @author KenM */ -public final class L2LoginClient extends MMOClient<MMOConnection<L2LoginClient>> +public final class L2LoginClient extends Client<Connection<L2LoginClient>> { private static Logger _log = Logger.getLogger(L2LoginClient.class.getName()); @@ -72,11 +71,11 @@ /** * @param con */ - public L2LoginClient(MMOConnection<L2LoginClient> con) + public L2LoginClient(Connection<L2LoginClient> con) { super(con); _state = LoginClientState.CONNECTED; - String ip = getConnection().getInetAddress().getHostAddress(); + String ip = getHostAddress(); // TODO unhardcode this if (ip.startsWith("192.168") || ip.startsWith("10.0") || ip.equals("127.0.0.1")) @@ -98,53 +97,48 @@ } /** - * @see #decrypt(java.nio.ByteBuffer, int) + * @see Client#decrypt(byte[], int, int) */ @Override - public boolean decrypt(ByteBuffer buf, int size) + public boolean decrypt(byte[] buf, int offset, int size) { boolean ret = false; try { - ret = _loginCrypt.decrypt(buf.array(), buf.position(), size); + ret = _loginCrypt.decrypt(buf, offset, size); } catch (IOException e) { e.printStackTrace(); - super.getConnection().close((SendablePacket<L2LoginClient>) null); + close((WritablePacket<L2LoginClient>) null); return false; } if (!ret) { - byte[] dump = new byte[size]; - System.arraycopy(buf.array(), buf.position(), dump, 0, size); - _log.warning("Wrong checksum from client: " + toString()); - super.getConnection().close((SendablePacket<L2LoginClient>) null); + close((WritablePacket<L2LoginClient>) null); } return ret; } /** - * @see #encrypt(java.nio.ByteBuffer, int) + * @see Client#encrypt(byte[], int, int) */ @Override - public boolean encrypt(ByteBuffer buf, int size) + public int encrypt(byte[] buf, int offset, int size) { - final int offset = buf.position(); + int encryptedSize = -1; try { - size = _loginCrypt.encrypt(buf.array(), offset, size); + encryptedSize = _loginCrypt.encrypt(buf, offset, size); } catch (IOException e) { e.printStackTrace(); - return false; } - - buf.position(offset + size); - return true; + + return encryptedSize; } public LoginClientState getState() @@ -234,26 +228,26 @@ public void sendPacket(L2LoginServerPacket lsp) { - getConnection().sendPacket(lsp); + writePacket(lsp); } public void close(LoginFailReason reason) { - getConnection().close(new LoginFail(reason)); + super.close(new LoginFail(reason)); } public void close(PlayFailReason reason) { - getConnection().close(new PlayFail(reason)); - } - - public void close(L2LoginServerPacket lsp) - { - getConnection().close(lsp); + super.close(new PlayFail(reason)); } - - /** - * @see org.mmocore.network.MMOClient#onDisconnection() + + @Override + public void onConnected() { + sendPacket(new Init(this)); + } + + /** + * @see Client#onDisconnection() */ @Override protected void onDisconnection() @@ -272,25 +266,16 @@ LoginController.getInstance().removeAuthedLoginClient(getAccount()); } } - - /** - * @see org.mmocore.network.MMOClient#onForcedDisconnection() - */ - @Override - protected void onForcedDisconnection() - { - // TODO Auto-generated method stub - - } + @Override public String toString() { - InetAddress address = getConnection().getInetAddress(); + String address = getHostAddress(); if (getState() == LoginClientState.AUTHED_LOGIN) { - return "[" + getAccount() + " (" + (address == null ? "disconnected" : address.getHostAddress()) + ")]"; + return "[" + getAccount() + " (" + (address.isEmpty() ? "disconnected" : address) + ")]"; } - return "[" + (address == null ? "disconnected" : address.getHostAddress()) + "]"; + return "[" + (address.isEmpty() ? "disconnected" : address) + "]"; } } Realizar as alterações em SelectorHelper Index: L2J_Server/java/net/sf/l2j/loginserver/SelectorHelper.java =================================================================== --- L2J_Server/java/net/sf/l2j/loginserver/SelectorHelper.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/loginserver/SelectorHelper.java (date 1538498336000) @@ -17,23 +17,20 @@ */ package net.sf.l2j.loginserver; -import java.nio.channels.SocketChannel; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.nio.channels.AsynchronousSocketChannel; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import net.sf.l2j.loginserver.serverpackets.Init; -import org.mmocore.network.IAcceptFilter; -import org.mmocore.network.IClientFactory; -import org.mmocore.network.IMMOExecutor; -import org.mmocore.network.MMOConnection; -import org.mmocore.network.ReceivablePacket; +import org.l2j.mmocore.*; /** * @author KenM */ -public class SelectorHelper implements IMMOExecutor<L2LoginClient>, IClientFactory<L2LoginClient>, IAcceptFilter +public class SelectorHelper implements PacketExecutor<L2LoginClient>, ClientFactory<L2LoginClient>, ConnectionFilter { private final ThreadPoolExecutor _generalPacketsThreadPool; @@ -43,22 +40,27 @@ } @Override - public void execute(ReceivablePacket<L2LoginClient> packet) + public void execute(ReadablePacket<L2LoginClient> packet) { _generalPacketsThreadPool.execute(packet); } @Override - public L2LoginClient create(MMOConnection<L2LoginClient> con) + public L2LoginClient create(Connection<L2LoginClient> con) { L2LoginClient client = new L2LoginClient(con); - client.sendPacket(new Init(client)); return client; } @Override - public boolean accept(SocketChannel sc) + public boolean accept(AsynchronousSocketChannel sc) { - return !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); + try { + InetSocketAddress socketAddress = (InetSocketAddress) sc.getRemoteAddress(); + return !LoginController.getInstance().isBannedAddress(socketAddress.getAddress()); + } catch (IOException e) { + return false; + } + } } Realizar as alterações no LoginController Index: L2J_Server/java/net/sf/l2j/loginserver/LoginController.java =================================================================== --- L2J_Server/java/net/sf/l2j/loginserver/LoginController.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/loginserver/LoginController.java (date 1538498717000) @@ -68,7 +68,7 @@ private final Map<InetAddress, BanInfo> _bannedIps = new FastMap<InetAddress, BanInfo>().shared(); - private final Map<InetAddress, FailedLoginAttempt> _hackProtection; + private final Map<String, FailedLoginAttempt> _hackProtection; protected ScrambledKeyPair[] _keyPairs; @@ -476,12 +476,12 @@ public boolean loginValid(String user, String password, L2LoginClient client) { boolean ok = false; - InetAddress address = client.getConnection().getInetAddress(); + String address = client.getHostAddress(); // log it anyway - Log.add("'" + (user == null ? "null" : user) + "' " + (address == null ? "null" : address.getHostAddress()), "logins_ip"); + Log.add("'" + (user == null ? "null" : user) + "' " + (address.isEmpty() ? "null" : address), "logins_ip"); // player disconnected meanwhile - if (address == null) + if (address.isEmpty()) { return false; } @@ -529,7 +529,7 @@ ps2.setString(2, Base64.encodeBytes(hash)); ps2.setLong(3, System.currentTimeMillis()); ps2.setInt(4, 0); - ps2.setString(5, address.getHostAddress()); + ps2.setString(5, address); ps2.execute(); } @@ -569,7 +569,7 @@ try (PreparedStatement ps3 = con.prepareStatement("UPDATE accounts SET lastactive=?, lastIP=? WHERE login=?")) { ps3.setLong(1, System.currentTimeMillis()); - ps3.setString(2, address.getHostAddress()); + ps3.setString(2, address); ps3.setString(3, user); ps3.execute(); } @@ -583,13 +583,13 @@ if (!ok) { - Log.add("'" + user + "' " + address.getHostAddress(), "logins_ip_fails"); + Log.add("'" + user + "' " + address, "logins_ip_fails"); FailedLoginAttempt failedAttempt = _hackProtection.get(address); int failedCount; if (failedAttempt == null) { - _hackProtection.put(address, new FailedLoginAttempt(address, password)); + _hackProtection.put(address, new FailedLoginAttempt(password)); failedCount = 1; } else @@ -600,14 +600,18 @@ if (failedCount >= Config.LOGIN_TRY_BEFORE_BAN) { - _log.info("Banning '" + address.getHostAddress() + "' for " + Config.LOGIN_BLOCK_AFTER_BAN + " seconds due to " + failedCount + " invalid user/pass attempts"); - this.addBanForAddress(address, Config.LOGIN_BLOCK_AFTER_BAN * 1000); + _log.info("Banning '" + address + "' for " + Config.LOGIN_BLOCK_AFTER_BAN + " seconds due to " + failedCount + " invalid user/pass attempts"); + try { + this.addBanForAddress(address, Config.LOGIN_BLOCK_AFTER_BAN * 1000); + } catch (UnknownHostException e) { + e.printStackTrace(); + } } } else { _hackProtection.remove(address); - Log.add("'" + user + "' " + address.getHostAddress(), "logins_ip"); + Log.add("'" + user + "' " + address, "logins_ip"); } return ok; @@ -649,7 +653,7 @@ private long _lastAttempTime; private String _lastPassword; - public FailedLoginAttempt(InetAddress address, String lastPassword) + public FailedLoginAttempt(String lastPassword) { // _ipAddress = address; _count = 1; Realizar as alterações no ThreadPoolManager Index: L2J_Server/java/net/sf/l2j/gameserver/ThreadPoolManager.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/ThreadPoolManager.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/ThreadPoolManager.java (date 1538498840000) @@ -31,7 +31,7 @@ import net.sf.l2j.Config; import net.sf.l2j.gameserver.network.L2GameClient; -import org.mmocore.network.ReceivablePacket; +import org.l2j.mmocore.ReadablePacket; /** * <p> @@ -219,12 +219,12 @@ } } - public void executePacket(ReceivablePacket<L2GameClient> pkt) + public void executePacket(ReadablePacket<L2GameClient> pkt) { _generalPacketsThreadPool.execute(pkt); } - public void executeIOPacket(ReceivablePacket<L2GameClient> pkt) + public void executeIOPacket(ReadablePacket<L2GameClient> pkt) { _ioPacketsThreadPool.execute(pkt); } Realizar as alterações no Ipv4Filter Index: L2J_Server/java/net/sf/l2j/gameserver/util/IPv4Filter.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/util/IPv4Filter.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/util/IPv4Filter.java (date 1538499075000) @@ -14,19 +14,20 @@ */ package net.sf.l2j.gameserver.util; -import java.net.InetAddress; -import java.nio.channels.SocketChannel; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.nio.channels.AsynchronousSocketChannel; import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; -import org.mmocore.network.IAcceptFilter; +import org.l2j.mmocore.ConnectionFilter; /** * Formatted Forsaiken's IPv4 filter [DrHouse] * @author Forsaiken */ -public class IPv4Filter implements IAcceptFilter, Runnable +public class IPv4Filter implements ConnectionFilter, Runnable { private final HashMap<Integer, Flood> _ipFloodMap; private static final long SLEEP_TIME = 5000; @@ -62,54 +63,47 @@ } @Override - public boolean accept(SocketChannel sc) - { - InetAddress addr = sc.socket().getInetAddress(); - int h = hash(addr.getAddress()); - - long current = System.currentTimeMillis(); - Flood f; - synchronized (_ipFloodMap) - { - f = _ipFloodMap.get(h); - } - if (f != null) - { - if (f.trys == -1) - { - f.lastAccess = current; - return false; - } - - if ((f.lastAccess + 1000) > current) - { - f.lastAccess = current; - - if (f.trys >= 3) - { - f.trys = -1; - return false; - } - - f.trys++; - } - else - { - f.lastAccess = current; - } - } - else - { - synchronized (_ipFloodMap) - { - _ipFloodMap.put(h, new Flood()); + public boolean accept(AsynchronousSocketChannel sc) { + try { + InetSocketAddress socketAddress = (InetSocketAddress) sc.getRemoteAddress(); + int h = hash(socketAddress.getAddress().getAddress()); + + long current = System.currentTimeMillis(); + Flood f; + synchronized (_ipFloodMap) { + f = _ipFloodMap.get(h); + } + if (f != null) { + if (f.trys == -1) { + f.lastAccess = current; + return false; + } + + if ((f.lastAccess + 1000) > current) { + f.lastAccess = current; + + if (f.trys >= 3) { + f.trys = -1; + return false; + } + + f.trys++; + } else { + f.lastAccess = current; + } + } else { + synchronized (_ipFloodMap) { + _ipFloodMap.put(h, new Flood()); + } } + } catch (IOException e) { + e.printStackTrace(); } - + return true; } Realizar as alterações no L2LoginPacketHandler Index: L2J_Server/java/net/sf/l2j/loginserver/L2LoginPacketHandler.java =================================================================== --- L2J_Server/java/net/sf/l2j/loginserver/L2LoginPacketHandler.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/loginserver/L2LoginPacketHandler.java (date 1538499673000) @@ -17,7 +17,6 @@ */ package net.sf.l2j.loginserver; -import java.nio.ByteBuffer; import net.sf.l2j.loginserver.L2LoginClient.LoginClientState; import net.sf.l2j.loginserver.clientpackets.AuthGameGuard; @@ -25,21 +24,22 @@ import net.sf.l2j.loginserver.clientpackets.RequestServerList; import net.sf.l2j.loginserver.clientpackets.RequestServerLogin; -import org.mmocore.network.IPacketHandler; -import org.mmocore.network.ReceivablePacket; +import org.l2j.mmocore.DataWrapper; +import org.l2j.mmocore.PacketHandler; +import org.l2j.mmocore.ReadablePacket; /** * Handler for packets received by Login Server * @author KenM */ -public final class L2LoginPacketHandler implements IPacketHandler<L2LoginClient> +public final class L2LoginPacketHandler implements PacketHandler<L2LoginClient> { @Override - public ReceivablePacket<L2LoginClient> handlePacket(ByteBuffer buf, L2LoginClient client) + public ReadablePacket<L2LoginClient> handlePacket(DataWrapper buf, L2LoginClient client) { int opcode = buf.get() & 0xFF; - ReceivablePacket<L2LoginClient> packet = null; + ReadablePacket<L2LoginClient> packet = null; LoginClientState state = client.getState(); switch (state) Realizar as alterações no L2GamePacketHandler Index: L2J_Server/java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java (date 1538499928000) @@ -17,7 +17,6 @@ */ package net.sf.l2j.gameserver.network; -import java.nio.ByteBuffer; import java.util.concurrent.RejectedExecutionException; import java.util.logging.Logger; @@ -27,11 +26,8 @@ import net.sf.l2j.gameserver.network.L2GameClient.GameClientState; import net.sf.l2j.util.Util; -import org.mmocore.network.IClientFactory; -import org.mmocore.network.IMMOExecutor; -import org.mmocore.network.IPacketHandler; -import org.mmocore.network.MMOConnection; -import org.mmocore.network.ReceivablePacket; +import org.l2j.mmocore.*; + /** * Stateful Packet Handler<BR> @@ -41,17 +37,17 @@ * Note: If for a given exception a packet needs to be handled on more then one state, then it should be added to all these states. * @author KenM */ -public final class L2GamePacketHandler implements IPacketHandler<L2GameClient>, IClientFactory<L2GameClient>, IMMOExecutor<L2GameClient> +public final class L2GamePacketHandler implements PacketHandler<L2GameClient>, ClientFactory<L2GameClient>, PacketExecutor<L2GameClient> { private static final Logger _log = Logger.getLogger(L2GamePacketHandler.class.getName()); // implementation @Override - public ReceivablePacket<L2GameClient> handlePacket(ByteBuffer buf, L2GameClient client) + public ReadablePacket<L2GameClient> handlePacket(DataWrapper buf, L2GameClient client) { int opcode = buf.get() & 0xFF; - ReceivablePacket<L2GameClient> msg = null; + ReadablePacket<L2GameClient> msg = null; GameClientState state = client.getState(); switch (state) @@ -644,7 +640,7 @@ case 0xd0: int id2 = -1; - if (buf.remaining() >= 2) + if (buf.available() >= 2) { id2 = buf.getShort() & 0xffff; } @@ -813,33 +809,27 @@ return msg; } - private void printDebug(int opcode, ByteBuffer buf, GameClientState state, L2GameClient client) + private void printDebug(int opcode, DataWrapper buf, GameClientState state, L2GameClient client) { - int size = buf.remaining(); _log.warning("Unknown Packet: " + Integer.toHexString(opcode) + " on State: " + state.name() + " Client: " + client.toString()); - byte[] array = new byte[size]; - buf.get(array); - _log.warning(Util.printData(array, size)); + _log.warning(Util.printData(buf.expose())); } - private void printDebugDoubleOpcode(int opcode, int id2, ByteBuffer buf, GameClientState state, L2GameClient client) + private void printDebugDoubleOpcode(int opcode, int id2, DataWrapper buf, GameClientState state, L2GameClient client) { - int size = buf.remaining(); _log.warning("Unknown Packet: " + Integer.toHexString(opcode) + ":" + Integer.toHexString(id2) + " on State: " + state.name() + " Client: " + client.toString()); - byte[] array = new byte[size]; - buf.get(array); - _log.warning(Util.printData(array, size)); + _log.warning(Util.printData(buf.expose())); } // impl @Override - public L2GameClient create(MMOConnection<L2GameClient> con) + public L2GameClient create(Connection<L2GameClient> con) { return new L2GameClient(con); } @Override - public void execute(ReceivablePacket<L2GameClient> rp) + public void execute(ReadablePacket<L2GameClient> rp) { try { Realizar as alterações no GeoEditorThread Index: L2J_Server/java/net/sf/l2j/gameserver/geoeditorcon/GeoEditorThread.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/geoeditorcon/GeoEditorThread.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/geoeditorcon/GeoEditorThread.java (date 1538566418000) @@ -87,13 +87,14 @@ { for (L2PcInstance gm : _gms) { - if (!gm.getClient().getConnection().isClosed()) - { - sendGmPosition(gm); - } - else + if (!gm.getClient().isConnected()) { _gms.remove(gm); + } + else + { + sendGmPosition(gm); + } } timer = 0; Realizar as alterações no Gameserver Index: L2J_Server/java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/GameServer.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/GameServer.java (date 1538566997000) @@ -23,6 +23,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.UnknownHostException; import java.util.Calendar; import java.util.logging.Level; @@ -233,8 +234,8 @@ import net.sf.l2j.gameserver.util.IPv4Filter; import net.sf.l2j.status.Status; -import org.mmocore.network.SelectorConfig; -import org.mmocore.network.SelectorThread; +import org.l2j.mmocore.ConnectionBuilder; +import org.l2j.mmocore.ConnectionHandler; /** * This class ... @@ -243,7 +244,7 @@ public class GameServer { private static final Logger _log = Logger.getLogger(GameServer.class.getName()); - private final SelectorThread<L2GameClient> _selectorThread; + private final ConnectionHandler<L2GameClient> connectionHandler; private final SkillTable _skillTable; private final ItemTable _itemTable; private final NpcTable _npcTable; @@ -269,15 +270,17 @@ private final ThreadPoolManager _threadpools; public static final Calendar dateTimeServerStarted = Calendar.getInstance(); - + public long getUsedMemoryMB() { return (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1048576; // 1024 * 1024 = 1048576; } - - public SelectorThread<L2GameClient> getSelectorThread() - { - return _selectorThread; + + public static void shutdown() { + if(gameServer != null) { + gameServer.connectionHandler.shutdown(); + gameServer.connectionHandler.setDaemon(true); + } } public ClanHallManager getCHManager() @@ -665,41 +668,20 @@ _loginThread = LoginServerThread.getInstance(); _loginThread.start(); - - // TODO: Unhardcode this configuration options - final SelectorConfig sc = new SelectorConfig(); - sc.MAX_READ_PER_PASS = 12; // Config.MMO_MAX_READ_PER_PASS; - sc.MAX_SEND_PER_PASS = 12; // Config.MMO_MAX_SEND_PER_PASS; - sc.SLEEP_TIME = 20; // Config.MMO_SELECTOR_SLEEP_TIME; - sc.HELPER_BUFFER_COUNT = 20; // Config.MMO_HELPER_BUFFER_COUNT; - sc.TCP_NODELAY = false; // Config.MMO_TCP_NODELAY; - + L2GamePacketHandler gph = new L2GamePacketHandler(); - _selectorThread = new SelectorThread<>(sc, gph, gph, gph, new IPv4Filter()); - InetAddress bindAddress = null; - if (!Config.GAMESERVER_HOSTNAME.equals("*")) - { - try - { - bindAddress = InetAddress.getByName(Config.GAMESERVER_HOSTNAME); - } - catch (UnknownHostException e1) - { - _log.log(Level.SEVERE, "WARNING: The GameServer bind address is invalid, using all avaliable IPs. Reason: " + e1.getMessage(), e1); - } - } - - try - { - _selectorThread.openServerSocket(bindAddress, Config.PORT_GAME); + + InetSocketAddress bindAddress; + if (!Config.GAMESERVER_HOSTNAME.equals("*")) { + bindAddress = new InetSocketAddress(Config.GAMESERVER_HOSTNAME, Config.PORT_GAME); + } else { + bindAddress = new InetSocketAddress(Config.PORT_GAME); } - catch (IOException e) - { - _log.log(Level.SEVERE, "FATAL: Failed to open server socket. Reason: " + e.getMessage(), e); - System.exit(1); - } + + connectionHandler = ConnectionBuilder.create(bindAddress, gph,gph,gph).filter(new IPv4Filter()).build(); + connectionHandler.start(); - _selectorThread.start(); + _log.config("Maximum Numbers of Connected Players: " + Config.MAXIMUM_ONLINE_USERS); } Realizar as alterações no Shutdown Index: L2J_Server/java/net/sf/l2j/gameserver/Shutdown.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/Shutdown.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/Shutdown.java (date 1538567074000) @@ -216,8 +216,7 @@ // saveData sends messages to exit players, so sgutdown selector after it try { - GameServer.gameServer.getSelectorThread().shutdown(); - GameServer.gameServer.getSelectorThread().setDaemon(true); + GameServer.shutdown(); } catch (Throwable t) { Realizar as alterações em L2LoginServer Index: L2J_Server/java/net/sf/l2j/loginserver/L2LoginServer.java =================================================================== --- L2J_Server/java/net/sf/l2j/loginserver/L2LoginServer.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/loginserver/L2LoginServer.java (date 1538567848000) @@ -24,11 +24,10 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.LineNumberReader; -import java.net.InetAddress; +import java.net.InetSocketAddress; import java.net.UnknownHostException; import java.security.GeneralSecurityException; import java.sql.SQLException; -import java.util.logging.Level; import java.util.logging.LogManager; import java.util.logging.Logger; @@ -36,9 +35,9 @@ import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.Server; import net.sf.l2j.status.Status; +import org.l2j.mmocore.ConnectionBuilder; +import org.l2j.mmocore.ConnectionHandler; -import org.mmocore.network.SelectorConfig; -import org.mmocore.network.SelectorThread; /** * @author KenM @@ -50,11 +49,10 @@ private static L2LoginServer _instance; private final Logger _log = Logger.getLogger(L2LoginServer.class.getName()); private GameServerListener _gameServerListener; - private SelectorThread<L2LoginClient> _selectorThread; + private ConnectionHandler<L2LoginClient> connectionHandler; private Status _statusServer; - public static void main(String[] args) - { + public static void main(String[] args) throws IOException { _instance = new L2LoginServer(); } @@ -63,8 +61,7 @@ return _instance; } - public L2LoginServer() - { + public L2LoginServer() throws IOException { Server.serverMode = Server.MODE_LOGINSERVER; // Local Constants final String LOG_FOLDER = "log"; // Name of folder for log file @@ -159,44 +156,8 @@ } loadBanFile(); - - InetAddress bindAddress = null; - if (!Config.LOGIN_BIND_ADDRESS.equals("*")) - { - try - { - bindAddress = InetAddress.getByName(Config.LOGIN_BIND_ADDRESS); - } - catch (UnknownHostException e1) - { - _log.severe("WARNING: The LoginServer bind address is invalid, using all avaliable IPs. Reason: " + e1.getMessage()); - if (Config.DEVELOPER) - { - e1.printStackTrace(); - } - } - } + - // TODO: Unhardcode this configuration options - final SelectorConfig sc = new SelectorConfig(); - sc.MAX_READ_PER_PASS = 12; // Config.MMO_MAX_READ_PER_PASS; - sc.MAX_SEND_PER_PASS = 12; // Config.MMO_MAX_SEND_PER_PASS; - sc.SLEEP_TIME = 20; // Config.MMO_SELECTOR_SLEEP_TIME; - sc.HELPER_BUFFER_COUNT = 20; // Config.MMO_HELPER_BUFFER_COUNT; - sc.TCP_NODELAY = false; // Config.MMO_TCP_NODELAY; - - final L2LoginPacketHandler lph = new L2LoginPacketHandler(); - final SelectorHelper sh = new SelectorHelper(); - try - { - _selectorThread = new SelectorThread<>(sc, sh, lph, sh, sh); - } - catch (IOException e) - { - _log.log(Level.SEVERE, "FATAL: Failed to open Selector. Reason: " + e.getMessage(), e); - System.exit(1); - } - try { _gameServerListener = new GameServerListener(); @@ -233,18 +194,22 @@ { System.out.println("Telnet server is currently disabled."); } - - try - { - _selectorThread.openServerSocket(bindAddress, Config.PORT_LOGIN); + + InetSocketAddress bindAddress; + if (!Config.LOGIN_BIND_ADDRESS.equals("*")) { + bindAddress = new InetSocketAddress(Config.LOGIN_BIND_ADDRESS, Config.PORT_LOGIN); + } else { + bindAddress = new InetSocketAddress(Config.PORT_LOGIN); } - catch (IOException e) - { - _log.log(Level.SEVERE, "FATAL: Failed to open server socket. Reason: " + e.getMessage(), e); - System.exit(1); - } - _selectorThread.start(); - _log.info("Login Server ready on " + (bindAddress == null ? "*" : bindAddress.getHostAddress()) + ":" + Config.PORT_LOGIN); + + final L2LoginPacketHandler lph = new L2LoginPacketHandler(); + final SelectorHelper sh = new SelectorHelper(); + + + connectionHandler = ConnectionBuilder.create(bindAddress, sh,lph,sh).filter(sh).build(); + connectionHandler.start(); + + _log.info("Login Server ready on " + (bindAddress == null ? "*" : bindAddress.getHostString()) + ":" + Config.PORT_LOGIN); } public Status getStatusServer() Realizar as alterações em AdminEditChar Index: L2J_Server/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEditChar.java =================================================================== --- L2J_Server/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEditChar.java (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEditChar.java (date 1538568122000) @@ -749,7 +749,7 @@ adminReply.setFile("data/html/admin/ipfind.htm"); for (L2PcInstance player : players) { - ip = player.getClient().getConnection().getInetAddress().getHostAddress(); + ip = player.getClient().getHostAddress(); if (ip.equals(IpAdress)) { name = player.getName(); As seguintes substituições nas chamadas de método devem ser realizadas. Essa substituição pode ser feita em lote em algum editor de texto ou IDE readC() -> readUnsignedByte() readH() -> readShort() readD() -> readInt() readF() -> readDouble() readQ() -> readLong() readS() -> readString() readB() -> readBytes() buf.remaining() -> availableData() .getConnection().sendPacket -> .sendPacket writeC( -> writeByte( writeH( -> writeShort( writeD( -> writeInt( writeF( -> writeDouble( writeQ( -> writeLong( writeS( -> writeString( writeB( -> writeBytes( Realizar as alterações no build.xml Index: L2J_Server/build.xml =================================================================== --- L2J_Server/build.xml (revision 21608dd4679422d6037c9683767493221807a2e7) +++ L2J_Server/build.xml (date 1538567213000) @@ -37,7 +37,7 @@ <include name="javolution-5.5.1.jar" /> <include name="mchange-commons-0.2.jar" /> <include name="mysql-connector-java-5.1.18-bin.jar" /> - <include name="mmocore.jar" /> + <include name="mmocore-2.0.jar" /> </fileset> </path> <target name="init" depends="clean" description="Create the output directories."> Depois desses passos você deverá ser capaz de compilar o source. Dependendo do projeto/revisão/versão que esteja usando, pode ser que precise editar outros arquivos além desses. Mas as alterações básicas são essas. [ ]'s
  35. 7 points
    Eleição para Moderador 2019 Na L2jBrasil, acreditamos que os moderadores devem vir da própria comunidade, sendo eleitos através de voto popular. Eleições ocorrem regularmente para determinar quem serão os moderadores da comunidade. Os moderadores da comunidade têm privilégios de moderar conteúdo e por isso devem ser exemplos de comportamento positivo e atuar como líderes dentro da comunidade. Estes são nossos critérios gerais para moderadores: paciente e justo lidera pelo exemplo suas palavras e ações sempre demonstram respeito aos membros da comunidade disposto a moderar de maneira aberta, mas firme quando necessário, ajudando a comunidade a encontrar seu caminho e resolvendo as desavenças e situações de exceção Cada eleição tem três ou quatro fases: Candidatura (Abre dia 11 de Julho às 9 horas da manhã e fecha dia 19 de julho as 18horas) Votação Preliminar (se houve mais de 5 candidatos) Votação de Eleição (5 melhores colocados ou os 5 registrados) Resultado Participe das eleições para moderador votando e talvez até mesmo se candidatando para ser um moderador da comunidade! Se quiser saber mais sobre as motivações, aspectos e o que esperamos dessa eleição acesse:
  36. 7 points
    hahahaha Cadê a galera da velha guarda ?
  37. 7 points
    Papangus, venho ao off-topic deixar um assunto que quero falar a comunidade do lineage a algum tempo já. Embora eu seja profissional de TI, o marketing está presente na minha vida a bastante tempo, seja administrando os anúncios do https://top.l2jbrasil.com seja gerenciando propagandas dos negócios da família no facebook/instagram. Antigamente, antes da internet ser tão usada, principalmente na televisão, os anúncios eram colocados no meio de um programa com alta audiência, forçando os telespectadores a conhecerem um produto ou um serviço. As empresas investiam em técnicas invasivas, nas quais o consumidor era interrompido em sua atividade para visualizar uma propaganda. De fato, esse tipo de marketing ainda existe e traz resultados, mas é preciso acompanhar as tendências e investir em inbound marketing. O inbound marketing se trata de uma estratégia que coloca a necessidade do cliente como foco, e não mais o produto ou o serviço. É necessário entender a necessidade do consumidor e oferecer soluções, atraindo-o de forma voluntária e fornecendo todas as informações para que ele tome a decisão de compra. Mas, até que ele chegue a isso, é preciso passar por várias etapas. Qual é a necessidade de um jogador de lineage 2 ou algum outro game? Passar o tempo? Fazer amigos? é algo muito importante a ser identificado. Porque mensagens enviadas para o mesmo público podem ter uma performance melhor que outras? Veja a imagem abaixo: Imagem retirada do analytics do sistema de push notification do top.l2jbrasil.com A qualidade da arte é notavelmente importante, mas a mensagem passada pela mensagem também é importante, focando na necessidade e não no servidor em sí. Pensando em um funil real, o topo tem área maior e vai se estreitando, até que um volume menor chega ao final. O funil de marketing segue essa ideia: começa com alto número de possíveis clientes e, no final, consegue extrair os mais qualificados. Imagem: Reprodução : https://www.legions.biz/blog/marketing-digital-conhecendo-funil/ Topo do funil No topo do funil está o grande público, é a fase de atração, Hoje são milhões de pessoas usando a Internet, como atrair a atenção destes usuários para sua empresa (produto/serviço). Existem as principais ferramentas publicitárias como: Google Adwords, Facebook Ads, Bing Ads, Linkedin ads, Twitter Ads, Native Ads entre outras, todas chamamos de forma resumida de Links Patrocinados. Além do trabalho de SEO (Otimização para site de Busca) onde sua página precisa ser bem escrita para que os buscadores como Google, Bing, Yahoo entre outros encontre-a. Os usuários são agrupados pelos seus interesses , games, comida, lifestyle, etc, e o conteúdo direcionado para as coisas que eles gostam será mais atrativo. Para conquistar esse objetivo, é necessário investir em estratégias com alto alcance, como sites direcionados (ex. Top L2jBrasil) e campanhas nas redes sociais. É nesse estágio que possíveis "clientes" chegam até você, descobrem que você existem e ao acessar isso pode ou não se tornar uma conversão, que é um estágio do Meio do funil. Meio do funil Como falamos, no topo do funil há um grande número de possíveis consumidores da sua marca, mas nem todos eles vão se interessar pelo conteúdo, os usuários que chegam a se cadastrar, efetuar um download . Este momento é quando o visitante da Internet teve um interesse por você, chamamos isso de conversão. A quantidade de conversões está relacionado com o engajamento desse público que veio pelo topo do funil. Por exemplo vamos supor, você obteve 100 cliques na publicidade que você impulsionou no Facebook e apenas 40 cliques no seu banner do Top L2jBrasil, acontece que o Facebook gerou 2 registros e o Top L2jBrasil, 4, isso indica que a taxa de conversão do Facebook foi de 2% e o do top de 10%. Isso acontece pois a probabilidade do Facebook gerar uma conversão é bem menor que a do top pois o link impulsionado pelo Facebook leva em consideração usuários que possuem engajamento com o conteúdo que você está divulgando, porém não estão propensos a consumirem seu produto/serviço, que nesse caso é o servidor de lineage2. O usuários que estão navegando pelo top já foram convertidos e agora eles são Leads, ou seja, eles além de terem sido convertidos pela peneira da conversão do funil, eles já possuem um relacionamento com potencial para consumir "Lineage2" e estão muito mais propensos à consumir o seu serviço, nesse caso jogarem no seu servidor. Nesse caso a quantidade de cliques não é importante e sim a qualidade do público do site, compare a divulgação no facebook como pescar em um enorme lago, aonde você não faz ideia se vai pegar um peixe ou uma bota, e divulgar em um site de conteúdo direcionado como pescar em um aquário usando uma redinha. Fundo do funil Nesse estágio o usuário já está navegando no seu site, é muito importante que o site esteja bem apresentável, consiga passar a informação que o usuário busca (um servidor estável, com potencial de ter comércio e jogabilidade, etc). Invista em técnicas que incentivem o lead a conhecer o que você tem à oferecer. Sabemos que servidores de lineage 2 são temporário, pela minha experiência posso dizer que servidores pvp tem vida útil de 2 meses quanto low tem de 1 a 2 anos , porém mostre para aqueles que buscam a melhor oferta o que os seus jogadores fidelizados alcançaram jogando no seu servidor. Divulgue os resultados obtidos através de fotos e vídeos e, se possível, peça aos seus players para mostrar, de forma natural e sincera, como foi a experiência com o servidor(avaliações). Nesse ponto você pode analisar melhor a taxa de conversão (navegou por mais tempo e/ou clicou em outros links no seu site, como o registre-se) e também a taxa de rejeição. Para exemplificar vou postar aqui a taxa de conversão que eu criei no google analytics chamado "click at banner" que monitora o usuário que entrou no site e clicou em algum banner Se quiser saber mais sobre como configurar "Goals" e monitoramento de conversão clique aqui: https://support.google.com/analytics/answer/1032415?hl=en No relatório "Goal Flow" vc pode ver o funil trabalhando, mostrando pra mim como a conversão de "click at banner" acontece e quem são as fontes de tráfego mais rentáveis: A categoria "Organic Search" (Google, bing, yahoo, etc) é a que mais gera tráfego e que mais gera clicks , e a social a que menos gera click, isso não significa que eu devo deixar de investir em tráfego social, mas que eu deva intensificar o marketing lá pois não estou atingindo os Leads do Facebook/instagram. Se você falhar nesse ponto o lead não irá consumir seu serviço e todo dinheiro que você investiu para afunilar usuários até chegarem no seu site foi jogado às traças. Se sua estratégia tiver adequada ao seu público com certeza obterá sucesso. Se você quer mais conteúdo como esse deixe o seu joinha 👍
  38. 7 points
    Olá, Pessoal da L2jBrasil!!! Quero apresentar a todos vocês o nosso projeto que está em desenvolvimento. A alguns anos tenho notado a ausência de um bom projeto de lineage 2 e visto que os que estão em desenvolvimento a maioria dos desenvolvedores tem vendido seus pacotes por preços exorbitantes e sem suporte digno fazendo assim com que lineage 2 cada vez ficasse mais esquecido pelos players. Desenvolvemos o projeto com compromissos e soluções semanais. Nosso objetivo é fazer o melhor emulador H5 da internet. Não basta aceitar a nossa palavra, você pode testar tudo e descobrir o verdadeiro potencial que está por trás do nosso projeto. Nós fornecemos acesso aos arquivos de origem que permitem aos nossos usuários implementar seus próprios mecanismos e modificar o emulador sem restrições. Quero convocar a todos os fãs de lineage 2 HighFive a participarem desse desafio, e se juntarem a nossa equipe de desenvolvimento reportando os erros e bugs assim teremos um emulador de alto nível sem ter que pagar uma fortuna e mostrar que podemos ter um emulador de muita qualidade sem ter que pagar um alto preço por um emulador cheio de erros. Estamos muito confiantes e contamos com sua ajuda assim poderemos mostrar o nosso potencial como brasileiros e fãs de lineage 2. Fórum : Link para o Fórum: Changelog : Time Line: Link para Clone : Git Clone: Revision Compilada 34 : Download: (Informações) 1. Todas as quests e instâncias funcionando 2. Todo código é feito em java, nada de python 3. Habilidades usando fórmulas oficiais 4. Estamos usando uma fonte que segue todos os métodos oficiais. 5. Simulação do conteúdo oficial 6. Mecanismo de Geodata Melhorado 8. Todos os dados foram optimizados para uma melhor performance do servidor. (Implementações) Serviços personalizados - todos os serviços são configuráveis: 1. Mudança de nick name para pet / char 2. Troca de animais de estimação 3. Mudança de sex 4. Alterar a classe base 5. Separe a subclasse (crie um novo char da sua subclasse) 6. Cor do título 7. Nobless Sell 8. Clean PK's 9. Expandir Inventário 10. Expandir Warehouse 11. Expandir Clan Warehouse 12. Mude o Nome do Clã 13. Level up 14. Delevel Parte de configurações personalizadas: * Observe que todas essas configurações podem ser ativadas e desativadas em suas proprias configurações do servidor. 1. Auto Loot Configurável para Raid, Adena, PK, contas Premium e Normal 2. Mostra mensagem de tempo de reutilização de habilidades 3. Aprendizagem automática de habilidades 4. Título de personagem personalizado 5. Você pode desativar o consumo de Spiritshot e Soulshot 6. Permite curar mais se o jogador estiver usando o Spirit 7. Possibilidade de obter itens do Masterwork é configurável 8. Buff Limits são configuráveis por: Buffs, Song / Dance, Triggers e Debuffs. 9. Tempo de Duração da Habilidade 10. Tempo de configuração Dance / Song 11. Permitir a habilidade de transformação de aprendizado sem quests 12. Você pode reutilizar ações sociais 13. Modificador do tempo do buff ClanHall 14. Kamaloka nightmare apenas para premium 15. Sell tickets para reentrada em instâncias 16. Configurações de subclasse 17. As restrições de entrada de instância são configuráveis 18. Schemebuffer configurável a partir do jogo, você pode desabilitar / habilitar buffs 19. Olimpíada configurável por período, nível de encantamento e outras coisas mais 20. Configurável a quantidade de FAMA de castelo / fortaleza 21. Reinício do servidor automático configurável por hora diária minuto dia do mês etc. 22. Custom Community Board: Scheme Buffer, Full GM Shop, Teleporter, Class Changer, Enchant System. 23. Servidor tem todos os eventos de varejo + Bounty Hunter, item Global Custom Drop, Random boss event 24. Comandos personalizados: .control - abrir o menu do jogador, .away/ .back - modo ausente (AFK) .getreward - use-o a cada 12 horas para reivindicar a recompensa da votação .repair - Reparação de personagem localizado na mesma conta .buffstore - Configurar loja de buffer off-line .buffshield - Protege você de buffs indesejados .siege - Informações completas da siege .combine - Combina todos os talismãs do mesmo tipo, em 1 com duração Maior! .dressme - Mude sua aparência de textura visual de Armor/Weapon/Cloak! .npcspawn - Spawn npcs em ClanHalls! .party (Message) - Sistema find party .report - Encontre um jogador que você acha que está trapaciando e puni-lo! .online - mostra jogadores online .offline - mostra loja privada off-line .password - change password .whereis - Defina o radar para a sua party ou membro do clã (comando.whereis + Nome) .engage - Proposta de casamento .divorce - Romper o relacionamento e tornar-se livre .gotolove - Teleporte para sua esposa ou marido 25. Unstuck Skill 26. Anuncie Raid Boss Spawn - não épico 27. Custom Spawn para jogadores iniciais 28. Sistema Premium Dê aleatória aos jogadores na criação da conta (configurável) Classificar itens de bônus Avaliar preços de bônus Rate bônus Aumentar exp adena sp ... taxas para usuários premium AutoLoot para usuários Premium Taxas de enchant diferentes para usuários premium 29. Sistema de Votação: Global, Individual 30. Sistema de casamento 31. Offline Shop configurável 32. Permitir que o jogador faça compras apenas se pagar uma taxa 33. zonas de selfbuffs configuráveis Nova Community Board: 34.Donations CB 35.Auction CB 36.Clan CB 37. EVENTOS AUTOMÁTICOS 38.NPC Spawn para líderes de clãs 39.Recompensa diária com comando 40.Sistema FindParty 41.Moeda personalizada para leilão CB e loja privada 42.Buffer CB 43.Eventos automáticos 44.Recursos CB Nosso projeto utiliza JAVA 8 portanto baixe e instale o JRE 8 antes de começar O pacote não é limitado Para contribuir, teste e reporte bugs/problemas no nosso FÓRUM. Premium + OpenSource
  39. 7 points
    Agora sim a negada vai falar que tem o interlude final 😆
  40. 7 points
    ♔ ♥ Lineage 2 Lords ♥ ♔ ◑ Bom, esse é um projeto que eu estou mexendo a alguns meses, espero que possam testar, retirar, ajudar, etc, para que fique melhor ainda. Tem Muitas coisas nessa pack, que só quem baixar e der uma fuçada vai saber ate onde mexi, todas as informações e duvidas voce vai encontrar na propria revisao, como id de itens e etc, vai estar tudo na pack. * Qualquer mais informação que eu lembrar edito o Tópico. * Essa Pack esta totalmente voltada para o PvP & Custom! ◑ Base: Frozen 1132 =D ✔ Informações da Pack ✔ ☛ # Normal Rates - ☛ # ------------------------ ☛ RateXp = 500.00 ☛ RateSp = 500.00 ☛ RatePartyXp = 2.00 ☛ RatePartySp = 2.00 ☛ RateDropAdena = 1200.00 ☛ Bosses da Revisao não uso, estou usando Bosses Customs como Raid Bosses e Drops especiais para a jogatina. ☛ Sub Class Free ☛ Custom areas Drops ☛ Set Dark Kinight ☛ Set Tauti Armor ☛ Set Dynasty ☛ Set Titanium ☛ Escudos Custom's ☛ Joias Boss (iniciantes) ☛ Joias Epics (Top) ☛ Tattos GM Powers ☛ TvTs 1 em 1 hora ☛ Acessorios Custom's ☛ Varios Icones com Bordas PvPs (inclusive SS's) ☛ Safe Enchant +20 ☛ Max Enchant +35 ☛ Normal Scrolls ate +20 100% ☛ Blessed Scrolls ate +25 85% ☛ Crystals Scrolls ate +30 100% ☛ Gold Enchant Scroll ate +35 60% ☛ Donator +40 (o comando //setdonator eu usava para dar aos donators, para eles terem acesso a area vip e droparem adenas para terem sempre gbs) ☛ Muitas, mais muitas skills foram editadas por mim (passivas/ativas) para ter um balanceamento aparentemente bom (Ninguem reclamou até entao), assim como correções nas mesmas e etc, muita coisa, por que tambem é um trabalho de quase 2 anos. (se voce for deixar totalmente do seu jeito voce tera que editar MUITAs coisas) ● Mods adicionados ● ● Arena 2x2 ● Evento Lost Boss ● Siege Reward ● RaidBossNobles = Barakiel ● ShowNpc Crest ● CustomItemHtml (Abre um Html ao clicar no Item configurado) ● OlympiadGrade A ● Mod Crazy War ( Coloca um Delay entre um Hit e outro, ajuda contra o bug de atk speed da frozen) ● Auto Reward ● Hitman Event (NAO TESTEI) ● Disable Weapons for Class ● Disable Armor for Class ● Announce ALL KILL ● Announce Lords, aiox, donator Enter ● NoUseScapeInPvP ● ShowHPPvP ● Camera Effect on Die ● Clan Full ● Unstuck Animation ● Atk Raid Boss Flag ● Gold Enchants (Com Break Enchant etc) ● Normal Enchant Max ● Olly Skill Protect (NAO TESTEI) ● Announce Item Pickup ● Siege Rewards ● Days To Siege ● Show Npc Crest ● Vip System ● Announce Vip Login ● Announce Noble Login ● Quake System Boss (Treme o chao quando boss e morto) ● Last Login ● Load Tutorial ● Enable Class info ao logar ● Vote Manager Npc ● Char Name Restriction ● Clan Full Item ● Wyvern Protection ● Vip Item ● Sell Buff System ● Change Sex Item ● Block Skills in Events ● Disable Healer in Events ● Announce Aio Login ● Restricao para aio nao se buffar fora da system ● Trade Not In Combat Mais Mods em other.properties etc ✔ Correções ✔ ✔ HPs dos portoes e muros das sieges ✔ Bot Protection por Captcha ✔ Não pode enchantar correndo/andando/sentado/etc ✔ CTRL+ALT+DEL nas olympiads ✔ Correção dos aiox em eventos ✔ Correção dos aiox fora da cidade ✔ Não pode ser atacado Npcs de: Siege e o Artefact da Siege! +++ ✪ Comandos ✪ ✫ .menu ✫ .server ✫ .gkaio ✫ .doacao ✫ .areavip ✫ .survey ✫ .deposit / .withdraw ✫ .pmoff ✫ .castlemanager ✫ .setmes ✫ .clanmes ✫ .raids ✫ .donatorinfo (com html) ✫ .vip (voce precisa ter um determinado item para se tornar vip) ✫ .vipinfo (com html) ▶ Sistemas ▶ ▸ //setvip (com itens reward ao ganhar o status vip e drop/spoil/adena que podem ser alterados) ▸ //setdonator (eterno com acesso ao comando .areavip) ▸ //setaio (ganha a dual aio quando receber o status aio) ▸ //senddonate ▸ //show_inventory ▸ //addolypoints //removeolypoints //setolypoints //getolypoints Download: Server Pack: http://www.mediafire.com/file/b4nnxi11pv37a4b/server.rar (Mudem o IP Para 127.0.0.1) Backup.psc: http://www.mediafire.com/file/x5r244v574sntd1/171027194830.rar Patch Completo 1.0: http://www.mediafire.com/file/qb66lu5q95cqwol/Patch+L2Lords+1.0.rar (Mudem o IP Para 127.0.0.1, com a Interface Classic!) Qualquer erro por favor reportar! Atualização 27/10/2017: + Adicionado comandos: .vip e .vipinfo (com htmls) + Correções: Html do .vipinfo Java: http://www.mediafire.com/file/1g5b2bds5tpd9s5/l2jfrozen-core.jar (l2jfrozen-core.jar (substituir pela original da pack) Htmls: http://www.mediafire.com/file/eu1lunyxamtepzf/html.rar (vip.htm / vipinfo.htm (extrair em server\gameserver\data\html) Configs: http://www.mediafire.com/file/ugbb8j3a7zrlgav/other.rar (other.properties (substituir pela original da pack) Atualização 29/10/2017: + Adicionado/Correção do anuncio de pvp/pk que nao estava funcionando corretamente, que agora é editavel nas Configs em Frozen.properties. Créditos pelo Código: Bian - Removido o anuncio original da Pack Java: http://www.mediafire.com/file/ivl8918zgvwazv6/l2jfrozen-core.rar (l2jfrozen-core.jar (substituir pela original da pack) Configs: http://www.mediafire.com/file/b19fm3522ff8nbh/frozen.rar (frozen.properties (substituir pela original da pack) Configs: http://www.mediafire.com/file/srvfxt61kxu6u0e/pvp.rar (pvp.properties (substituir pela original da pack) Atualização 05/11/2017: - Removido os eventos DM e VIP que ninguem usa (não é o sistema VIP) - Removido o nome "Lords" do Npc Donate Java: https://www.mediafire.com/file/6me3b4a957pt5iw/l2jfrozen1.1.rar (l2jfrozen-core.jar (substituir pela original da pack) Configs: Remova o arquivo DM.PROPERTIES de gameserver/config/frozen Remova a configuração do evento automatico (DM) em gameserver/config/frozen/eventmanager.properties, ficando assim: #============================================================# # Event Manager # #============================================================# # Enable auto events and start time. # TvT auto start # Example TVTStartTime=20:00;21:00;22:00; TVTEventEnabled = True TVTStartTime = 01:00;02:00;03:00;04:00;05:00;06:00;07:00;08:00;09:00;10:00;11:00;12:00;13:00;14:00;15:00;16:00;17:00;18:00;19:00;20:00;21:00;22:00;23:00;00:00 # CTF auto start # Example CTFStartTime=20:00;21:00;22:00; CTFEventEnabled = False CTFStartTime = 8:00;12:00;15:00;18:00;20:00;23:00;02:00 Atualização 02/06/2018: ✔ Arrumado o TITLE dos novos char's quando eram criados, que antes nao apareciam mesmo configurando nas configs. http://www.mediafire.com/file/8e7286fwyi8wr7g/l2jfrozen1.2.rar (l2jfrozen-core.jar (substituir pela original da pack) + Adicionado um novo stat xml "AbsorbDamMp". O que é: Ao hitar mob regenera MANA, igual ao H5. Para adicionar, é a mesma coisa nas xml's exemplo: <add order="0x40" stat="absorbDamMp" val="10"/> + Adicionado uma config para os Summon's/Pet's nao perderem buffs. gameserver\config\functions\physics.properties # Leave buffs on die, if false the effects will be not stopped on die LeaveBuffsOnDie = False + # Leave buffs on die (SUMMONS), if false the effects will be not stopped on die + LeaveBuffsOnDieSummons = False + Adicionado novas Html's do VIP/VIPINFO. https://www.4shared.com/rar/-q8v6y8Vei/Patchhtml_v01_Teste__1_.html? Substitua pelas originais. Créditos pelas Html's: @Gabrieljdb + Adicionados efeitos ao se transformar AIO, ao jogar no npc casino, mensagens na tela etc Créditos: Onã SOURCE: https://www.mediafire.com/file/5uq78t83bb3638i/sourcelords.rar/file Prints:
  41. 7 points
    Release 1.1.0 disponível https://github.com/JoeAlisson/L2jOrg/releases Principais atualizações da versão: Vip Tier System sincronização do código base com a Mobius Mais detalhes: https://github.com/JoeAlisson/L2jOrg/milestone/1?closed=1 O foco dessa release foi o Sistema VIP Informações do VIP Tier Prime Shop com presente VIP diário:
  42. 7 points
    Então pessoal a solução é o seguinte para se criar uma FlagZone/ChaoticZone/Arena/PvPZone. Recomendo a vocês que criem suas (Flag/PvP/Chaotic/Arena ) Zone Sempre como: NPoly ( Destacado de vermelho na linha abaixo ) <zone name="Flagzone" type="FlagZone" shape="NPoly" minZ="-15000" maxZ="15000"> Aqui você coloca o nome da sua FlagZone/PvPZone/ChaoticZone/Arena. No meu caso é FlagZone. (Destacado de Laranja na linha abaixo) <zone name="Flagzone" type="FlagZone" shape="NPoly" minZ="-15000" maxZ="15000"> E sempre com o: minZ=" -15000" maxZ="15000"> (esses comandos são a altitude, pode ser negativa minZ="-15000" ou positiva maxZ="15000" dependendo da área que você está no L2). <zone name="Flagzone" type="FlagZone" shape="NPoly" minZ="-15000" maxZ="15000"> _____________________________________________________________________________________________________ Esse é o nome da minha zona : <!-- Noblesse's Zone --> . Essa é a parte da FlagZone: (<zone name="Flagzone" type="FlagZone" com Altitude minZ="-15000" maxZ="15000"> e o NPoly shape="NPoly" que é recomendável : <zone name="Flagzone" type="FlagZone" shape="NPoly" minZ="-15000" maxZ="15000"> ) Agora vamos para o mais importante! O famoso: <node X="11582" Y="-122011" /> Aqui vocês podem ver as localizações X e Y sem a Z . Por que? Porquê a "Z" é a Altitude minZ="-15000" maxZ="15000">, então não precisamos colocar novamente. Então nós vamos alterar somente as localizações ( X="11582" Y="-122011" ). Vá no seu Lineage II na área que você quer que fique Flag/Chaotic/PvP/Arena Zone, decida o local inicial da sua Zone, vá no local inicial que você quer que comece a sua Zone use o comando /loc e pegue o X: 11582 Y: -122011 e coloque no node assim: <node X="11582" Y="-122011" /> Você pode fazer várias formas diferentes como: Só ira depender de quantos locais você vai parar. ATENÇÃO: Não cruze as linhas, forme somente figuras geométricas e uma linha se unira a outra. Use sua criatividade! EXEMPLO: (X e Y abaixo são números aleatórios use o do seu /loc) No número 1 nós temos a nossa posição inicial, usamos /loc e pegamos o X: 11582 Y: -122011. OK No número 2 nós temos a nossa segunda posição, usamos /loc e pegamos o X: 11921 Y: -124158. OK No número 3 nós temos a nossa terceira posição, usamos /loc e pegamos o X: 11505 Y: -123148. OK No número 4 nós temos a nossa quarta posição, usamos /loc e pegamos o X: 13583 Y: -122513. OK No número 5 nós temos a nossa quinta posição, usamos /loc e pegamos o X: 13982 Y: -102511. OK No número 6 nós temos a nossa sexta posição, usamos /loc e pegamos o X: 10882 Y: -114911. OK No número 7 nós temos a nossa sétima posição, usamos /loc e pegamos o X: 10982 Y: -122011. OK No número 8 nós temos a nossa oitava posição, usamos /loc e pegamos o X: 13582 Y: -122451. OK <!-- Noblesse's Zone --> (Nome da minha zona, escolha a de vocês ) <zone name="Flagzone" type="FlagZone" shape="NPoly" minZ="-15000" maxZ="15000"> <node X="11582" Y="-122011" /> (Primeira/inicial localização) <node X="11921" Y="-124158" />(Segunda localização) <node X="11505" Y="-123148" />(Terceira localização) <node X="13583" Y="-122513" />(Quarta localização) <node X="13982" Y="-102511" />(Quinta localização) <node X="10882" Y="-114911" />(Sexta localização) <node X="10982" Y="-122011" />(Sétima localização) <node X="13582" Y="-122451" />(Oitava localização) </zone> Após ter adicionado o X e Y é só copiar sua Zone exemplo: E Adiciona-la em gameserve/data/zones/zones.xml da um espaço na ultima linha e cola, assim:
  43. 7 points
    Olá venho compartilhar com vocês um projeto que venho trabalhando em cima dele. Bom meu projeto usa aCis 375 ainda não tem mods custom ( já estão todos prontos), mais eu e meus amigos só vamos adicionar depois que testamos o funcionamento geral da aCis 375 assim investindo nela. O Projeto conta com uma proteção de system, só loga no projeto com a system dela. Irei deixar o projeto online em um VPS 24 horas para testes. Preciso da colaboração de todos para testar , Sieges, RaidBoss, Quests e Olimpiadas. Projeto L2jDevs Limpo : https://mega.nz/#!4Ft13ADY!-_ie3UtITUBXi9rsLXz85Ioaig3tZuk0lCUycdvgI7E Para quem quiser logar no projeto só colocar o IP do dedicado na system disponivel no Pack do projeto . Assim que nossos testes forem finalizados colocaremos todos mods, como os eventos, TVT,CTF,DM tudo 100% funcional todos testados entre outras customização.
  44. 7 points
    http://lineage2.power.plaync.com/wiki/R110+무기 https://www.mediafire.com/file/xnzyaiiwflozy87/SGERfjs_WR110.rar/file
  45. 7 points
    Olá papangus, Um aviso breve, atualizamos a plataforma do fórum com as úiltimas atualizações de segurança e foi implimentado uma customização para exibir botões de interação com usuários logo abaixo do avatar. Os mesmos já estavam disponíveis porém era preciso ficar por 2 segundos com o mouse em cima do avatar do membro para que os botões fossem revelados. PS: Botão de warn e flag de spamer também ficará visível para os moderadores. Para a lista completa de atualizações acesse: https://invisioncommunity.com/news/product-updates/welcome-to-invision-community-44-r1124/ Algumas funcionalidades não estão habilitadas, assim que elas forem habilitadas iremos postar as informações.
  46. 7 points
    System Atualizada Notas de Atualização: Version 1.3 Update: Faenor testado - All Coin adicionado. Staff AIO adicionada no Shop Prime. Considerações: #1 -> All Coin: Evento de drop global da Lord Adena para auxiliar o farm, o teste e a progressão dos personagens no servidor de teste. Quantidade de drop: 1 a 3 LA por mob morto. Chance de drop: 75%. OBS: para quem vai somente atualizar lista dos arquivos que mudaram segue abaixo: LISTA
  47. 7 points
    Beleza, caso o TurtleLess não consiga ver antes de segunda, na segunda dou uma olhada; Obrigado campeão, seria algo bem legal, mas não pra adicionar na revisão agora, beleza ? Como o pessoal já mencionou, o nosso foco é resolver os bugs e deixar ela o mais próxima do retail possível; Ter mods é bem legais, mas se começarmos a abrir pra por mods, o pessoal não vai testar e vai só ficar querendo mods pra abrir servidor PvP; por isso o foco do projeto é low rate e resolução de bugs, pois para configurar um servidor PvP a partir de um low, é bem rápido; OBS: adicionamos alguns mods simples que não demandaram tanto tempo; já a Zeus engine, é algo mais complexo, já vi uma revisão implementada com ela e a revisão com ela também consome bem mais memória (quase que o dobro), por isso vamos deixar para mais para frente; Queremos sempre manter um projeto free com a qualidade de um pago aqui para os membros 😉 Mas muito obrigado e seja bem vindo ao tópico do projeto fera!
  48. 7 points
    @Todos Galera, seria bem legal se vocês começassem a desenvolver algumas coisas pra revisão e postassem no forum (customs, etc...);
  49. 7 points
    O @TurtleLess tinha o código do .dressme para sunrise, estamos implementando, quando estiver pronto e testado, posto o release;
  50. 7 points
    https://github.com/danielbarion/L2JBlueHeart https://github.com/danielbarion/L2JBlueHeart/commit/1240c33c1195970a00c7c7ecd2025de7e4b11f84 Corrigido 😉 Depois você poderia postar as skills encantadas do aio por gentileza ?



     



  • Newsletter

    Want to keep up to date with all our latest news and information?

    Sign Up
×
×
  • Create New...