O fórum teve que ser recriado do zero, usuários do fórum antigo precisam se cadastrar novamente e caso você seja usuário vip se identifique perante a um administrador que o status vip será reatribuído..

Welcome to L2JDream Project

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

All Activity

This stream auto-updates   

  1. Last week
  2. Earlier
  3. Todo mundo tem o mesmo problema com geodata: Com esta solução, o personagem retorna ao ponto anterior. Pack: com.dream.game.network.clientpackets.ValidatePosition; Change for this: package com.dream.game.network.clientpackets; import org.apache.log4j.Logger; import com.dream.Config; import com.dream.game.geodata.GeoEngine; import com.dream.game.model.actor.instance.L2PcInstance; import com.dream.game.network.serverpackets.MoveToLocation; import com.dream.game.network.serverpackets.PartyMemberPosition; import com.dream.game.network.serverpackets.ValidateLocation; import com.dream.game.network.serverpackets.ValidateLocationInVehicle; import com.dream.game.util.Broadcast; public class ValidatePosition extends L2GameClientPacket { private static Logger LOGGER = Logger.getLogger(ValidatePosition.class); private int _x, _y, _z, _heading; @SuppressWarnings("unused") private int _data; @Override protected void readImpl() { _x = readD(); _y = readD(); _z = readD(); _heading = readD(); _data = readD(); } @Override protected void runImpl() { L2PcInstance activeChar = getClient().getActiveChar(); if (activeChar == null || activeChar.isTeleporting()) return; activeChar.checkSummon(); int realX = activeChar.getX(); int realY = activeChar.getY(); int realZ = activeChar.getZ(); if (_x == 0 && _y == 0) if (realX != 0) return; activeChar.setHeading(_heading); double dx = _x - realX; double dy = _y - realY; double dz = _z - realZ; int finalZ = _z; if (Math.abs(dz) <= 200) { finalZ = realZ; } double diffSq = dx * dx + dy * dy; double speedsq = activeChar.getStat().getMoveSpeed() * activeChar.getStat().getMoveSpeed(); if (diffSq <= speedsq * 1.5 && dz < 1500) { activeChar.setLastServerPosition(realX, realY, realZ); activeChar.getPosition().setXYZ(_x, _y, _z); if (activeChar.getParty() != null) { activeChar.setLastPartyPosition(_x, _y, _z); activeChar.getParty().broadcastToPartyMembers(activeChar, new PartyMemberPosition(activeChar)); } if (activeChar.isInBoat()) { Broadcast.toKnownPlayers(activeChar, new ValidateLocationInVehicle(activeChar)); } else { Broadcast.toKnownPlayers(activeChar, new ValidateLocation(activeChar)); } } // COORD Client<-->Server synchronization switch (Config.COORD_SYNCHRONIZE) { case 1: { // full synchronization Client --> Server // only * using this option it is difficult // for players to bypass obstacles if (!activeChar.isMoving() || !activeChar.validateMovementHeading(_heading)) // Heading changed on client = possible obstacle { // character is not moving, take coordinates from client if (diffSq < 2500) { // 50*50 - attack won't work fluently if even small differences are corrected activeChar.getPosition().setXYZ(realX, realY, finalZ); } else { activeChar.getPosition().setXYZ(_x, _y, finalZ); } } else { activeChar.getPosition().setXYZ(realX, realY, finalZ); } activeChar.setHeading(_heading); } break; case 2: { // full synchronization Server --> Client (bounces for validation) if (Config.GEODATAS > 0 && (diffSq > 250000 || Math.abs(dz) > 200)) { if (Math.abs(dz) > 200) { if (Math.abs(finalZ - activeChar.getClientZ()) < 800) { activeChar.getPosition().setXYZ(realX, realY, finalZ); } } else { if (!activeChar.isMoving()) { if (activeChar.isInBoat()) sendPacket(new ValidateLocationInVehicle(activeChar)); else sendPacket(new ValidateLocation(activeChar)); } else if (diffSq > activeChar.getStat().getMoveSpeed()) activeChar.broadcastPacket(new MoveToLocation(activeChar)); finalZ = activeChar.getPosition().getZ(); } } } break; case -1: { // just (client-->server) Z coordination if (Math.abs(dz) > 200) { if (Math.abs(_z - activeChar.getClientZ()) < 800) activeChar.getPosition().setXYZ(realX, realY, finalZ); } else finalZ = realZ; } break; default: case 0: { // no synchronization at all // the server has the correct information finalZ = realZ; } break; } // EXPERIMENTAL fix when players cross the floor adapted By Zeit int deltaZ = activeChar.getZ() - _z; if(deltaZ > 1024) { int zLocation = GeoEngine.getInstance().getHeight(activeChar.getX(), activeChar.getY(), activeChar.getZ()); activeChar.teleToLocation(activeChar.getX(), activeChar.getY(), zLocation); LOGGER.info("Player " + activeChar.getName() + " has fallen more than 1024 units, returned to last position (" + activeChar.getX() + ", " + activeChar.getY() + ", " + zLocation + ")"); return; } // check water if (Config.ALLOW_WATER) activeChar.checkWaterState(); } } Config.java public static String IGNORE_LOG; public static boolean FALLDOWNONDEATH; +public static int COORD_SYNCHRONIZE; public static int DELETE_DAYS; LAZY_ITEMS_UPDATE = Boolean.parseBoolean(p.getProperty("LazyItemsUpdate", "false")); +COORD_SYNCHRONIZE = Integer.parseInt(p.getProperty("CoordSynchronize", "-1")); SERVER_GMONLY = Boolean.parseBoolean(p.getProperty("ServerGMOnly", "false")); game\config\main.options: # A type of synchronization between the client and the server location # -1 - Will synchronize only Z from Client --> Server. Default when no geodata. # 1 - Synchronization Client --> Server only. Using this option (without geodata) it is more difficult for players to bypass obstacles # 2 - Intended for geodata (at least when cell-level pathfinding, otherwise can try -1 also)! # It is advisable not to change CoordSynchronize = -1 PcInstance: private int clientZ; /** * Gets the client z. * @return the client z */ public final int getClientZ() { return clientZ; }
  4. File Name: "classDamages.properties" Location: game\config\main #Damages to Fighters Duelist__ToFighter=0.8 DreadNought__ToFighter=1.0 Phoenix_Knight__ToFighter=1.0 Hell_Knight__ToFighter=1.0 Sagittarius__ToFighter=1.0 Adventurer__ToFighter=0.8 Archmage__ToFighter=1.0 Soultaker__ToFighter=1.0 Arcana_Lord__ToFighter=1.0 Cardinal__ToFighter=1.0 Hierophant__ToFighter=1.0 Eva_Templar__ToFighter=1.0 Sword_Muse__ToFighter=1.0 Wind_Rider__ToFighter=0.8 Moonlight_Sentinel__ToFighter=1.0 Mystic_Muse__ToFighter=1.0 Elemental_Master__ToFighter=1.0 Eva_s_Saint__ToFighter=1.0 Shillien_Templar__ToFighter=1.0 Spectral_Dancer__ToFighter=1.0 Ghost_Hunter__ToFighter=0.8 Ghost_Sentinel__ToFighter=1.0 Storm_Screamer__ToFighter=1.0 Spectral_Master__ToFighter=1.0 Shillien_Saint__ToFighter=1.0 Titan__ToFighter=1.0 Grand_Khauatari__ToFighter=0.9 Dominator__ToFighter=1.0 Doomcryer__ToFighter=1.0 Fortune_Seeker__ToFighter=1.0 Maestro__ToFighter=1.0 #Damages to Mage Duelist__ToMage=0.6 DreadNought__ToMage=1.0 Phoenix_Knight__ToMage=1.0 Hell_Knight__ToMage=1.0 Sagittarius__ToMage=1.0 Adventurer__ToMage=0.8 Archmage__ToMage=1.0 Soultaker__ToMage=1.0 Arcana_Lord__ToMage=1.0 Cardinal__ToMage=1.0 Hierophant__ToMage=1.0 Eva_Templar__ToMage=1.0 Sword_Muse__ToMage=1.0 Wind_Rider__ToMage=0.8 Moonlight_Sentinel__ToMage=1.0 Mystic_Muse__ToMage=1.0 Elemental_Master__ToMage=1.0 Eva_s_Saint__ToMage=1.0 Shillien_Templar__ToMage=1.0 Spectral_Dancer__ToMage=1.0 Ghost_Hunter__ToMage=0.8 Ghost_Sentinel__ToMage=1.0 Storm_Screamer__ToMage=1.0 Spectral_Master__ToMage=1.0 Shillien_Saint__ToMage=1.0 Titan__ToMage=1.0 Grand_Khauatari__ToMage=0.8 Dominator__ToMage=1.0 Doomcryer__ToMage=1.0 Fortune_Seeker__ToMage=1.0 Maestro__ToMage=1.0 #Damages By Fighters Duelist__ByFighter=0.7 DreadNought__ByFighter=1.0 Phoenix_Knight__ByFighter=1.0 Hell_Knight__ByFighter=1.0 Sagittarius__ByFighter=1.0 Adventurer__ByFighter=0.8 Archmage__ByFighter=1.0 Soultaker__ByFighter=1.0 Arcana_Lord__ByFighter=1.0 Cardinal__ByFighter=1.0 Hierophant__ByFighter=1.0 Eva_Templar__ByFighter=1.0 Sword_Muse__ByFighter=1.0 Wind_Rider__ByFighter=0.8 Moonlight_Sentinel__ByFighter=1.0 Mystic_Muse__ByFighter=1.0 Elemental_Master__ByFighter=1.0 Eva_s_Saint__ByFighter=1.0 Shillien_Templar__ByFighter=1.0 Spectral_Dancer__ByFighter=1.0 Ghost_Hunter__ByFighter=0.8 Ghost_Sentinel__ByFighter=1.0 Storm_Screamer__ByFighter=1.0 Spectral_Master__ByFighter=1.0 Shillien_Saint__ByFighter=1.0 Titan__ByFighter=1.0 Grand_Khauatari__ByFighter=0.9 Dominator__ByFighter=1.0 Doomcryer__ByFighter=1.0 Fortune_Seeker__ByFighter=1.0 Maestro__ByFighter=1.0 #Damages By Mages Duelist__ByMage=0.8 DreadNought__ByMage=1.0 Phoenix_Knight__ByMage=1.0 Hell_Knight__ByMage=1.0 Sagittarius__ByMage=1.0 Adventurer__ByMage=0.9 Archmage__ByMage=1.0 Soultaker__ByMage=1.0 Arcana_Lord__ByMage=1.0 Cardinal__ByMage=1.0 Hierophant__ByMage=1.0 Eva_Templar__ByMage=1.0 Sword_Muse__ByMage=1.0 Wind_Rider__ByMage=1.0 Moonlight_Sentinel__ByMage=1.0 Mystic_Muse__ByMage=1.0 Elemental_Master__ByMage=1.0 Eva_s_Saint__ByMage=1.0 Shillien_Templar__ByMage=1.0 Spectral_Dancer__ByMage=1.0 Ghost_Hunter__ByMage=1.0 Ghost_Sentinel__ByMage=1.0 Storm_Screamer__ByMage=1.0 Spectral_Master__ByMage=1.0 Shillien_Saint__ByMage=1.0 Titan__ByMage=1.0 Grand_Khauatari__ByMage=0.9 Dominator__ByMage=1.0 Doomcryer__ByMage=1.0 Fortune_Seeker__ByMage=1.0 Maestro__ByMage=1.0 New Class in package com.dream.game.manager; package com.dream.game.manager; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Hashtable; import java.util.Properties; import java.util.Set; import java.util.logging.Logger; import com.dream.ConfigFiles; import com.dream.game.datatables.xml.CharTemplateTable; import com.dream.game.model.actor.instance.L2PcInstance; /** * @author Shyla * Adapted By Zeit */ public class ClassDamageManager { protected static final Logger _log = Logger.getLogger(ClassDamageManager.class.getName()); private static Hashtable<Integer, Double> damage_to_mage = new Hashtable<>(); private static Hashtable<Integer, Double> damage_to_fighter = new Hashtable<>(); private static Hashtable<Integer, Double> damage_by_mage = new Hashtable<>(); private static Hashtable<Integer, Double> damage_by_fighter = new Hashtable<>(); private static Hashtable<Integer, String> id_to_name = new Hashtable<>(); private static Hashtable<String, Integer> name_to_id = new Hashtable<>(); public static void loadConfig() { final String SCRIPT = ConfigFiles.CLASS_DAMAGES_FILE; InputStream is = null; File file = null; try { final Properties scriptSetting = new Properties(); file = new File(SCRIPT); is = new FileInputStream(file); scriptSetting.load(is); final Set<Object> key_set = scriptSetting.keySet(); for (final Object key : key_set) { final String key_string = (String) key; final String[] class_and_type = key_string.split("__"); String class_name = class_and_type[0].replace("_", " "); if (class_name.equals("Eva s Saint")) class_name = "Eva's Saint"; final String type = class_and_type[1]; final Integer class_id = CharTemplateTable.getClassIdByName(class_name) - 1; id_to_name.put(class_id, class_name); name_to_id.put(class_name, class_id); if (type.equals("ToFighter")) { damage_to_fighter.put(class_id, Double.parseDouble(scriptSetting.getProperty(key_string))); } else if (type.equals("ToMage")) { damage_to_mage.put(class_id, Double.parseDouble(scriptSetting.getProperty(key_string))); } else if (type.equals("ByFighter")) { damage_by_fighter.put(class_id, Double.parseDouble(scriptSetting.getProperty(key_string))); } else if (type.equals("ByMage")) { damage_by_mage.put(class_id, Double.parseDouble(scriptSetting.getProperty(key_string))); } } _log.info("ClassDamageManager: Loaded " + id_to_name.size() + " class damage configurations"); } catch (final Exception e) { e.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (final IOException e) { e.printStackTrace(); } } } } public static double getClassDamageToMage(final int id) { final Double multiplier = damage_to_mage.get(id); if (multiplier != null) return multiplier; return 1; } public static double getClassDamageToFighter(final int id) { final Double multiplier = damage_to_fighter.get(id); if (multiplier != null) return multiplier; return 1; } public static double getClassDamageByMage(final int id) { final Double multiplier = damage_by_mage.get(id); if (multiplier != null) return multiplier; return 1; } public static double getClassDamageByFighter(final int id) { final Double multiplier = damage_by_fighter.get(id); if (multiplier != null) return multiplier; return 1; } public static int getIdByName(final String name) { final Integer id = name_to_id.get(name); if (id != null) return id; return 0; } public static String getNameById(final int id) { final String name = id_to_name.get(id); if (name != null) return name; return ""; } /** * return the product between the attackerMultiplier and attackedMultiplier configured into the classDamages.properties * @param attacker * @param attacked * @return output = attackerMulti*attackedMulti */ public static double getDamageMultiplier(final L2PcInstance attacker, final L2PcInstance attacked) { if (attacker == null || attacked == null) return 1; double attackerMulti = 1; if (attacked.isMageClass()) attackerMulti = getClassDamageToMage(attacker.getClassId().getId()); else attackerMulti = getClassDamageToFighter(attacker.getClassId().getId()); double attackedMulti = 1; if (attacker.isMageClass()) attackedMulti = getClassDamageByMage(attacked.getClassId().getId()); else attackedMulti = getClassDamageByFighter(attacked.getClassId().getId()); final double output = attackerMulti * attackedMulti; return output; } } package com.dream.ConfigFiles; public class ConfigFiles { public static final String NPC_FILE = "./config/main/npc.properties"; public static final String PLAYER_FILE = "./config/main/player.properties"; public static final String ALT_FILE = "./config/main/altgame.properties"; +public static final String CLASS_DAMAGES_FILE = "./config/main/classDamages.properties"; public static final String RATES_FILE = "./config/main/rates.properties";
  5. Então cara, a SOURCE da V2 foi disponibilizada a venda após nós migrarmos para outra base, agora nossa pack tá equivalente a Lucera, porém com proteção antihack inclusa. As modificações pagas $$ são o que mantém o projeto ativo e online até os dias de hoje, infelizmente não dá pra fazer tudo grátis.
  6. você é o cara <3 muito TOP
  7. Bom, o título diz tudo, e além de ter os sets tem também a xml dos sets com: Defesa, correta. Quantidade de cristal ao quebrar, correto. Valor em adena correto. O armorgrp também possui os valores corretos de pDef, Weight e também o adicional de MP dos sets ROBE. Está muito, muito completo, além também de ter o armor_sets Abaixo as prints e o arquivo para download Os créditos são todos meus, usem e abusem. DOWNLOAD
  8. muito top mano, ja vou add <3 Obrigado por compartilhar
  9. Bom, depois de uns 2 dias trabalhando firme em cima, venho fazer meu share com esse Dynasty que sempre foi um ícone do Interlude, porém com as ombreiras, novos icones, todo feito e adaptado pro projeto. Conforme o título do tópico o que temos é: Recipes de todas as partes seladas do set. Icons totalmente refeitos tanto do set normal quanto do selado e também do shield. Todas as skills de acordo com o oficial porém sem a restrição para as classes (é mais viável quem quiser fazer) e também as skills de enchantment acima de +6 e a do bônus quando equipado o shield, e note que não são todos os sets Heavy que aplicam esse bônus, é apenas o NORMAL e o SHIELD MASTER. Set completo com as ombreiras sendo 5 peitos Heavy, 3 peitos Light e 5 peitos Robe. ABAIXO ALGUMAS SCREENSHOTS DO SET ABAIXO ALGUMAS SCREENSHOTS DO SET E aqui uma print de como ficaram as skills do set. MEGA DOWNLOAD MEDIAFIRE DOWNLOAD Senha: SmithSchuldiner Créditos do conteúdo: SHEV PELA ADAPTAÇÃO DO SET EU PELA ADAPTAÇÃO PRA PACK E ICONS OBS: Abaixo um pequeno tutorial para quem tiver dificuldade de adicionar:
  10. Valeu bro, deu um trabalhinho, mais de 11k de icons, mas consegui
  11. Por favor, tem como me explicar como coloca no meu server, não estou conseguindo ficarei bastante grato
  12. Me chama Wilson, meus amigos me conhecem por Júnior Simpatia, tenho pouca experiência com servidores, mais sonho em deixar um bom server online, me indicaram vcs, é aqui Estou 😄
  13. 1. Como você conheceu a L2JDream Project? (ex: Google ou outro site) Algumas pesquisas no google. 2. Qual seu nível de conhecimento? (Amador, Estudante, Técnico, Engenheiro..) Comecei em programação em 2001, com as velhas paginas em html e php4. administrando pequenas paginas de noticias da região. Em 2006 conheci o Lineage 2, joguei no Horyu, cr, Revenge...(lista extensa). Tentei abri um pequeno servidor de Lineage em 2007, ficou pouco tempo on. a galera se estressava demais nas LanHouse. naquele tempo as revisões tinhas muitos bug. Trabalhei de 2008 a 2014 em um provedor de internet. mudei meu foco para softwares de gestão e integração de sistema. Hj tenho uma construtora no ramos de construção civil e estudante nas novas linguagem de programação (node, react, vue, react native, graphql, docker, kubernetes ....) nas horas vagas 3. Quais habilidades você pretende desenvolver? Procuro um pack que me atenda a novas ideias do mundo atual. ainda não sei como vou adaptar essas ideias. 4. Conte um pouco de você. Qualquer coisa. Sou do interior da Bahia, tenho 36 anos, empresario, programador, pai, tenho filhos com 10 e 7 anos e ainda sou ativo no mundo L2 (Vovo como dizem os amigos).
  14. eu tenho esse arquivo no computador, vou procurar e reupá-lo em breve (assim q eu encontrar)
  15. link offline teria como colocar em um diretorio confiavel de download ??
  16. Deixa eu ver se entendi... VOU ter que pagar pra uma besteira dessas ??? nossa ... ao menos disponibilizem esse arquivo pra editarmos ao nosso gosto... e algo tão bobo
  17. cara ficou lindo... talvez use no meu server sao coisas que fico vendo a falta de criatividade nos desenvolvedores na epoca ne ... isso ai deu mais ambientação ao vilarejo
  18. Link de download offline amigo
  19. ele substitui o mapa de papel pelo mapa 3d que seria a planta do plano de jogo ne.. Tipo uma visao 3D la de cima do mapa
  20. Olha eu sou contra mexer na originalidade de tudo ... de tudo mesmo ... talvez por isso meu civic esta igual ao civic na loja ate hoje kkkk Mas tenho que falar que seu trabalho além de bem feito realmente se mostrou útil e vou colocar =D ficou show da uma sensação de que da pra tocar ou pegar na tela kkkk ficaram lindos
  21. Desculpas primeiramente em por ate hoje não ter feito esse post 1. Como você conheceu a L2JDream Project? (ex: Google ou outro site) Ha 2 anos ou mais atravez do forum L2JBrasil (acho que todos aqui tbm) em busca de comprar um servidor sem bugs sem erros com qualidade excelente igual o da equipe L2Jnet KKKKKKK entao encontrei a dream e realmente merece o nome de SONHO o trabalho do do projeto Dream e melhor ate que a Lucera ao meu ver.. pois temos hoje a mesma qualidade equiparada em arquivos, porem com os adicionais. 2. Qual seu nível de conhecimento? (Amador, Estudante, Técnico, Engenheiro..) Não tenho muias habilidades que serveriam em um desenvolvimento de servidor (java mysql scripts etc... mal sei dar uns comandos de dos no pc pra ligar ou limpar o HD Mas me considero nivel de estudante a tecnico no assunto colocar servidor ON editar in game testar bugs e funcionalidades etc... 3. Quais habilidades você pretende desenvolver? Administração de server e o meu forte, pode parecer algo ridiculo a muitos aqui que olham isso e falam... "HA isso e facil de mais" mas nao e... e isso se prova com seus servidores fechados ou servers falidos que vemos hoje... mal adiministrado... E ai vc pergunta... "E pq vc nao tem um server aberto entao" os motivos sao apenas tempo que nao tinha, e recurso financeiro que nao tinha e conhecimentos de designer pra editar site imagens videos... fazer divulgação ... eu nao manjo nada de corel ou photoshop e queria muito uma ajuda nessa area 4. Conte um pouco de você. Qualquer coisa. Moro no RJ sou trader, consultor de investimentos em cryptomoedas e mentor de investimentos [sim sou aquele cara que vira seu pai na hora de ganhar uns trocados] piloto de parapente e muito mais. Estou bolando um projeto de servidor e busco pessoas que queiram me ajudar
  22. Show de bola, trabalho que isso deve ter dado, só agradecer mesmo show.
  23. Bom , eu vi uns icons super bem feitos no Classic, e não consegui encontrar vagando na net por ai, então resolvi me dar ao trabalho de fazer. O resultado foi extremamente satisfatório e aqui lhes trago a UTX para deixar seu server com uma cara nova nas skills, weapons, armors, items e outros. Basta fazer o download e SUBSTITUIR seu icon.utx pelo baixado. OBS IMPORTANTE: Salve o seu atual icon.utx caso não goste das novas mudanças que eu fiz. DOWNLOAD Alguns prints
  24. DreamGuard 3.0 - Sistema de Proteções L2JDream System travada na revisão. Protege contra L2Adrenaline, L2Net, L2phx, L2Tower, L2Walker e outros. Não é possí­vel logar em seu servidor sem a nossa system. Necessário ter uma licença ativa para o funcionamento da proteção. OBS: Caso você teste algum bot e consiga utilizar o mesmo, basta entrar em contato comigo enviando o programa que ele será bloqueado e você receberá a correção para implementar na sua system. Valor : R$ 300,00. Prazos - A partir da confirmação do pagamento entregamos o pacote completo em algumas horas. Formas de pagamento: PicPay, MercadoPago, PIX OU Boleto.
  25. Após fazer o download do executável, dê dois cliques nele para começar a instalação. 1) Na tela de "License Agreement" ("Contrato de Licença"), leia a licença do software e selecione a opção "I accept the license terms" ("Eu aceito os termos da licença") e pressione o botão "Next". 2) Na tela "Choosing a Setup Type" ("Escolha um tipo de configuração"), irá aparecer 5 (cinco) tipos de configurações a serem instaladas: a) Developer Default - escolha esta opção se o computador for usado para desenvolvimento de aplicativos com banco de dados MySQL. Será instalados o MySQL Server (SGBD), MySQL Shell, MySQL Router, MySQL WorkBench, MySQL for Excel, JDBC e ODBC para MySQL, componentes para Visual Studio, entre outros itens de desenvolvimento. b) Server only - escolha esta opção se o computador for um servidor dedicado para Banco de Dados MySQL. Esta opção instala somente o SGBD e os aplicativos servidores. c) Client only - escolha esta opção se o computador for uma máquina cliente de desenvolvimento, ou seja, deseja acessar um servidor MySQL remotamente. Itens como MySQL Shell, MySQL Router, MySQL Workbench, JDBC e ODBC para MySQL e componentes para Visual Studio serão instalados. d) Full - escolha esta opção se deseja instalar todos os itens do catálogo do MySQL: MySQL Server, MySQL Shell, MySQL Router, MySQL Workbench, todos os componentes de conexão e desenvolvimento, além de toda a documentação. e) Custom - escolha esta opção se deseja personalizar a instalação, escolhendo somente os itens necessários. Se o seu computador for Windows 64 bits e deseja instalar algum item de 32 bits, selecione esta opção. 3) Para a maioria dos desenvolvedores, escolher a opção "Developer Default" parece ser a melhor opção. Porém, esta opção instalará vários itens que são desnecessários e que vão ocupar muito espaço no disco. Neste exemplo, iremos escolher a opção "Custom" e selecionar somente os itens necessários: serão instalados somente o MySQL Server, MySQL Workbench e o MySQL Shell. Após isso, pressione o botão "Next". 4) Na tela "Select Products and Features" ("Selecione produtos e recursos"), irá aparecer algumas categorias de produtos disponíveis: MySQL Servers Applications MySQL Connectors Documentation 5) Escolher o MySQL Server. Selecione a categoria "MySQL Servers" e clique no sinal + para expandir as subopções. Escolha as opções MySQL Servers > MySQL Server > MySQL Server 5.7 Se for instalar em um ambiente de 64 bits, escolha o subitem MySQL Server 5.7.19 - X64. Se for instalar em um ambiente de 32 bits, escolha o subitem MySQL Server 5.7.19 - X86. Clique com o ponteiro do mouse na seta para a direita para selecionar o item para instalação. 6) Escolher o MySQL Workbench. Selecione a categoria "Applications" e clique no sinal + para expandir as subopções. Escolha as opções Applications > MySQL Workbench > MySQL Workbench 6.3 > MySQL Workbench 6.3.9 - X64. Clique com o ponteiro do mouse na seta para a direita para selecionar o item para instalação. 7) Escolher o MySQL Shell. Selecione a categoria "Applications" e clique no sinal + para expandir as subopções. Escolha as opções Applications > MySQL Shell > MySQL Shell 1.0 > MySQL Shell 1.0.9 - X64. Clique com o ponteiro do mouse na seta para a direita para selecionar o item para instalação. Após isso, pressione o botão "Next". 8) Na tela "Installation" ("Instalação"), pressione o botão "Execute" ("Executar") para que instalação se inicie. 9) A instalação poderá levar algum tempo dependendo da configuração do seu computador. 10) Após a instalação estar completa, pressione o botão "Next". 11) Na tela "Product Configuration" ("Configuração do Produto"), pressione o botão "Next". 12) Na tela "Type and Networking" ("Tipo e Rede"), escolha a opção "Standalone MySQL Server / Classic MySQL Replication". Em seguida, pressione o botão "Next". 13) Na próxima tela, no item "Server Configuration Type" ("Tipo de Configuração do Servidor"), escolha o "Config Type" ("Tipo de Configuração") como "Development Machine" ("Máquina de desenvolvimento"). Em "Connectivity", ative a opção "TCP/IP" e verifique se o "Port Number" ("Número da Porta") está como 3306. Caso necessite, libere a porta no firewall do Windows escolhendo a opção "Open Firewall port for network access". Desta forma, outros computadores da sua rede e da Internet poderão acessar o MySQL Server da sua máquina. Em seguida, pressione o botão "Next". 14) Na tela "Accounts and Roles" ("Contas e papéis/funções"), digite a senha do usuário "root" que é o administrador do banco de dados MySQL. Tente criar uma senha forte ("strong") que tenha letras maiúsculas, minúsculas, números e sinais de pontuação. Caso queira, pode-se criar uma outra conta no banco de dados pressionando o botão "Add User" ("Adicionar Usuário"). Em seguida, pressione o botão "Next". 15) Na tela "Windows Service", selecione a opção "Configure MySQL Server as a Windows Service" ("Configure o MySQL Server como um serviço Windows") para que o MySQL seja executado em background (segundo plano) como um serviço do Windows. Na opção "Windows Service Name", escolha o nome que o serviço do MySQL Server terá no Windows. Por padrão, o nome será "MySQL57". A opção "Start the MySQL Server at System Startup" fará que o serviço do MySQL seja iniciado todas as vezes que o Windows iniciar. Para usuários que possuem computadores lentos ou que não desejam ocupar a memória com o MySQL todas as vezes que o Windows iniciar, desativem esta opção. No item "Run Windows Service as..." ("Execute o serviço do Windows como..."), mantenha selecionada a opção "Standard System Account" (usar o "System Account" do Windows). Em seguida, pressione o botão "Next". 16) Na tela "Plugins and Extensions" ("Plugins e extensões"), não selecione nada e pressione o botão "Next". 17) Na tela "Apply Configuration" ("Aplicar configurações"), pressione o botão "Execute". 18) Após o instalador configurar o computador com o MySQL, pressione o botão "Finish". 19) Na tela "Product Configuration", pressione o botão "Next". 20) Na tela "Installation Complete" ("Instalação Completa"), selecione os itens que deseja iniciar após a instalação: Start MySQL Workbench after Setup ("Iniciar MySQL Workbench") Start MySQL Shell after Setup ("Iniciar MySQL Shell") Para encerrar a instalação, pressione o botão "Finish".
  26. Bom, a revisão VIP contém os mods e uma system exclusiva que só funcionarão com o seu servidor, caso sua licença seja desativada a system também será desativada evitando assim que outras pessoas possam fazer uso da sua system em outros servidores.. Tutorial para configuração da revisão VIP: Você deverá digitar o seu nome de usuário nas configs localizadas em: game/config/ no arquivo DreamGuard.properties na linha 5 conforme mostra a print abaixo:
  27. Basta substituir os arquivos no seu cliente Lineage II Interlude...
  1. Load more activity