Jump to content

lipiTanKEr

Membro
  • Content Count

    664
  • Joined

  • Last visited

  • Days Won

    4

lipiTanKEr last won the day on August 14 2018

lipiTanKEr had the most liked content!

Community Reputation

145 Bom

About lipiTanKEr

  • Rank
    LoL Br
  • Birthday 03/21/1994

Profile Information

  • Gênero:
    Masculino

Recent Profile Visitors

3,047 profile views
  1. Qualquer uma, basta modificar os status dos itens ao seu gosto.
  2. Mas rapaz, agente aprende a manipular o núcleo do servidor mas se esquece de aprender o basico do cliente. Obrigado!
  3. Uma coisa que eu fico imaginando, na minha revisão que eu vivo retocando desde 2014, percebi que aquelas mensagens quando se entra em uma zona não aparecem mais. São assuntos do cliente e da versão do windows, ou eu posso corrigir? Veja a mensagem ao entrar em Varka:
  4. Se preocupa com isso não, é alguem tentando entrar no seu servidor com uma system com o protocolo não permitido. Os caras tem que testar os programas hackers para ver se funciona, não é mesmo? 😄
  5. Compra nada não, usa aCis.
  6. MySQL é um só, mas tem suas versões. Tem que ver qual versão é compativel com o pacote que vai fazer conexão com o núcleo java.
  7. Estudos confirmam que o novo coronavírus também circula no ar — e tempo relativamente longo. Ele pode ficar suspenso no ambiente por até três horas, depois de expelido por uma pessoa contaminada, de acordo com o New England Journal of Medicine. O Massachussets Institute of Technology publicou na revista da Associação Médica Americana, a Jama, que o novo coronavírus também pode cobrir distâncias de 7 a 8 metros, ao ser transmitido por meio do espirro de alguém infectado. https://www.nejm.org/doi/10.1056/NEJMc2004973
  8. lipiTanKEr

    java

    Deve ser algum pacote escrito com códigos de uma JDK de versão superior a aquela que está instalada no seu desktop. Atualiza o Java. Mete o 13 ai!
  9. Eu fiz uma correção básica do movimento de ataque, mas será que esse projeto do jeito que está tem muitos problemas? De instabilidade por exemplo.
  10. DELETE FROM `spawnlist` WHERE npc_templateid = 'COLOQUE O ID AQUI'; Coloque o id do mob e salva como SQL.
  11. package net.sf.l2j.gameserver.model.actor.instance; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.StringTokenizer; import net.sf.l2j.commons.lang.StringUtil; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.Config; import net.sf.l2j.gameserver.data.BufferTable; import net.sf.l2j.gameserver.data.SkillTable; import net.sf.l2j.gameserver.model.L2Skill; import net.sf.l2j.gameserver.model.actor.Creature; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.Summon; import net.sf.l2j.gameserver.model.actor.ai.CtrlIntention; import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; import net.sf.l2j.gameserver.network.serverpackets.ItemList; import net.sf.l2j.gameserver.network.serverpackets.MoveToPawn; import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation; public final class SchemeBuffer extends Npc { public SchemeBuffer(int objectId, NpcTemplate template) { super(objectId, template); } @Override public void onAction(Player player) { if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), 0)); player.sendPacket(new ValidateLocation(this)); } else { if (!canInteract(player)) player.getAI().setIntention(CtrlIntention.INTERACT, this); else { // Rotate the player to face the instance player.sendPacket(new MoveToPawn(player, this, Npc.INTERACTION_DISTANCE)); if (hasRandomAnimation()) onRandomAnimation(Rnd.get(8)); showMainWindow(player); // Send ActionFailed to the player in order to avoid he stucks player.sendPacket(ActionFailed.STATIC_PACKET); } } } private void showMainWindow(Player activeChar) { /* * if(Config.community_board_in_npcs) { CommunityBoard.getInstance().handleCommands(activeChar.getClient(), "_bbsnpcs;openfile;buffer;index"); return; } */ NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/mods/buffer/index.htm"); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%name%", activeChar.getName()); html.replace("%buffcount%", "You have " + activeChar.getBuffCount() + "/" + activeChar.getMaxBuffCount() + " buffs."); // html.replace("%intro%", ServerSideImage.getInstance().getRankNameImageHtmlTag(activeChar, 2, 256, 64)); activeChar.sendPacket(html); } @Override public void onBypassFeedback(Player player, String command) { if (player.getPvpFlag() > 0 && Config.RESTRICT_USE_BUFFER_ON_PVPFLAG) { player.sendMessage("You can't use buffer when you are pvp flagged."); return; } if (player.isInCombat() && Config.RESTRICT_USE_BUFFER_IN_COMBAT) { player.sendMessage("You can't use buffer when you are in combat."); return; } if (player.isDead()) return; StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); if (actualCommand.equalsIgnoreCase("bufflist")) { autoBuffFunction(player, st.nextToken()); } else if (actualCommand.equalsIgnoreCase("restore")) { String noble = st.nextToken(); player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); if (noble.equals("true")) { SkillTable.getInstance().getInfo(1323, 1).getEffects(player, player); } final Summon summon = player.getPet(); if (summon != null) summon.setCurrentHpMp(summon.getMaxHp(), summon.getMaxMp()); showMainWindow(player); } else if (actualCommand.equalsIgnoreCase("cancellation")) { L2Skill buff; buff = SkillTable.getInstance().getInfo(1056, 1); buff.getEffects(this, player); player.stopAllEffectsExceptThoseThatLastThroughDeath(); player.stopAllEffects(); final Summon summon = player.getPet(); if (summon != null) summon.stopAllEffects(); showMainWindow(player); } else if (actualCommand.equalsIgnoreCase("openlist")) { String category = st.nextToken(); String htmfile = st.nextToken(); NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); if (category.equalsIgnoreCase("null")) { html.setFile("data/html/mods/buffer/" + htmfile + ".htm"); // First Page if (htmfile.equals("index")) { html.replace("%name%", player.getName()); html.replace("%buffcount%", "You have " + player.getBuffCount() + "/" + player.getMaxBuffCount() + " buffs."); } } else html.setFile("data/html/mods/buffer/" + category + "/" + htmfile + ".htm"); html.replace("%objectId%", String.valueOf(getObjectId())); player.sendPacket(html); } else if (actualCommand.equalsIgnoreCase("dobuff")) { int buffid = Integer.valueOf(st.nextToken()); int bufflevel = Integer.valueOf(st.nextToken()); String category = st.nextToken(); String windowhtml = st.nextToken(); String votebuff = null; if (st.hasMoreTokens()) votebuff = st.nextToken(); if (windowhtml.equals("malaria")) { if (player.getInventory().getInventoryItemCount(Config.VOTE_BUFF_ITEM_ID, 0) >= 1) { player.getInventory().destroyItemByItemId("VoteCoins", Config.VOTE_BUFF_ITEM_ID, 1, player, null); player.getInventory().updateDatabase(); player.sendPacket(new ItemList(player, true)); player.sendMessage(1 + " Champion Coin disappeared."); } else { player.sendMessage("You need the " + Config.VOTE_BUFF_ITEM_COUNT + " Champion Coin to get buff."); return; } } if (votebuff != null) { if (player.getInventory().getInventoryItemCount(Config.VOTE_BUFF_ITEM_ID, 0) >= Config.VOTE_BUFF_ITEM_COUNT) { player.getInventory().destroyItemByItemId("VoteCoins", Config.VOTE_BUFF_ITEM_ID, Config.VOTE_BUFF_ITEM_COUNT, player, null); player.getInventory().updateDatabase(); player.sendPacket(new ItemList(player, true)); player.sendMessage(Config.VOTE_BUFF_ITEM_COUNT + " Champion Coin disappeared."); } else { player.sendMessage("You need the " + Config.VOTE_BUFF_ITEM_COUNT + " Champion Coin to get buff."); return; } } Creature target = player; if (category.equalsIgnoreCase("pet")) { if (player.getPet() == null) { player.sendMessage("Incorrect Pet"); showMainWindow(player); return; } target = player.getPet(); } SkillTable.getInstance().getInfo(buffid, bufflevel).getEffects(this, target); NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/mods/buffer/" + category + "/" + windowhtml + ".htm"); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%name%", player.getName()); player.sendPacket(html); } else if (actualCommand.equalsIgnoreCase("getbuff")) { int buffid = Integer.valueOf(st.nextToken()); int bufflevel = Integer.valueOf(st.nextToken()); if (buffid != 0) { SkillTable.getInstance().getInfo(buffid, bufflevel).getEffects(this, player); showMainWindow(player); } } else if (actualCommand.startsWith("support")) { showGiveBuffsWindow(player, st.nextToken()); } else if (actualCommand.startsWith("givebuffs")) { final String targetType = st.nextToken(); final String schemeName = st.nextToken(); final int cost = Integer.parseInt(st.nextToken()); final Creature target = (targetType.equalsIgnoreCase("pet")) ? player.getPet() : player; if (target == null) player.sendMessage("You don't have a pet."); else if (cost == 0 || player.reduceAdena("NPC Buffer", cost, this, true)) { for (int skillId : BufferTable.getInstance().getScheme(player.getObjectId(), schemeName)) SkillTable.getInstance().getInfo(skillId, SkillTable.getInstance().getMaxLevel(skillId)).getEffects(this, target); } showGiveBuffsWindow(player, targetType); } else if (actualCommand.startsWith("editschemes")) { if (st.countTokens() == 2) showEditSchemeWindow(player, st.nextToken(), st.nextToken()); else player.sendMessage("Something wrong with your scheme. Please contact with Admin"); } else if (actualCommand.startsWith("skill")) { final String groupType = st.nextToken(); final String schemeName = st.nextToken(); final int skillId = Integer.parseInt(st.nextToken()); final List<Integer> skills = BufferTable.getInstance().getScheme(player.getObjectId(), schemeName); if (actualCommand.startsWith("skillselect") && !schemeName.equalsIgnoreCase("none")) { if (skills.size() < Config.BUFFER_MAX_SKILLS) skills.add(skillId); else player.sendMessage("This scheme has reached the maximum amount of buffs."); } else if (actualCommand.startsWith("skillunselect")) skills.remove(Integer.valueOf(skillId)); showEditSchemeWindow(player, groupType, schemeName); } else if (actualCommand.startsWith("manageschemes")) { showManageSchemeWindow(player); } else if (actualCommand.startsWith("createscheme")) { try { final String schemeName = st.nextToken(); if (schemeName.length() > 14) { player.sendMessage("Scheme's name must contain up to 14 chars. Spaces are trimmed."); showManageSchemeWindow(player); return; } final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes != null) { if (schemes.size() == Config.BUFFER_MAX_SCHEMES) { player.sendMessage("Maximum schemes amount is already reached."); showManageSchemeWindow(player); return; } if (schemes.containsKey(schemeName)) { player.sendMessage("The scheme name already exists."); showManageSchemeWindow(player); return; } } BufferTable.getInstance().setScheme(player.getObjectId(), schemeName.trim(), new ArrayList<Integer>()); showManageSchemeWindow(player); } catch (Exception e) { player.sendMessage("Scheme's name must contain up to 14 chars. Spaces are trimmed."); showManageSchemeWindow(player); } } else if (actualCommand.startsWith("deletescheme")) { try { final String schemeName = st.nextToken(); final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes != null && schemes.containsKey(schemeName)) schemes.remove(schemeName); } catch (Exception e) { player.sendMessage("This scheme name is invalid."); } showManageSchemeWindow(player); } else if (actualCommand.startsWith("clearscheme")) { try { final String schemeName = st.nextToken(); final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes != null && schemes.containsKey(schemeName)) schemes.get(schemeName).clear(); } catch (Exception e) { player.sendMessage("This scheme name is invalid."); } showManageSchemeWindow(player); } else super.onBypassFeedback(player, command); } /** * Sends an html packet to player with Give Buffs menu info for player and pet, depending on targetType parameter {player, pet} * @param player : The player to make checks on. * @param targetType : a String used to define if the player or his pet must be used as target. */ private void showGiveBuffsWindow(Player player, String targetType) { final StringBuilder sb = new StringBuilder(200); final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes == null || schemes.isEmpty()) sb.append("<font color=\"LEVEL\">You haven't defined any scheme, please go to 'Manage my schemes' and create at least one valid scheme.</font>"); else { for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) { final int cost = getFee(scheme.getValue()); StringUtil.append(sb, "<font color=\"LEVEL\"><a action=\"bypass -h npc_%objectId%_givebuffs ", targetType, " ", scheme.getKey(), " ", cost, "\">", scheme.getKey(), " (", scheme.getValue().size(), " skill(s))</a>", ((cost > 0) ? " - Adena cost: " + cost : ""), "</font><br1>"); } } final NpcHtmlMessage html = new NpcHtmlMessage(0); html.setFile("data/html/mods/buffer/schememanager/index-1.htm"); html.replace("%schemes%", sb.toString()); html.replace("%targettype%", (targetType.equalsIgnoreCase("pet") ? "&nbsp;<a action=\"bypass -h npc_%objectId%_support player\">yourself</a>&nbsp;|&nbsp;your pet" : "yourself&nbsp;|&nbsp;<a action=\"bypass -h npc_%objectId%_support pet\">your pet</a>")); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } /** * Sends an html packet to player with Manage scheme menu info. This allows player to create/delete/clear schemes * @param player : The player to make checks on. */ private void showManageSchemeWindow(Player player) { final StringBuilder sb = new StringBuilder(200); final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes == null || schemes.isEmpty()) sb.append("<font color=\"LEVEL\">You haven't created any scheme.</font>"); else { sb.append("<table>"); for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) StringUtil.append(sb, "<tr><td width=140>", scheme.getKey(), " (", scheme.getValue().size(), " skill(s))</td><td width=60><button value=\"Clear\" action=\"bypass -h npc_%objectId%_clearscheme ", scheme.getKey(), "\" width=55 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td><td width=60><button value=\"Drop\" action=\"bypass -h npc_%objectId%_deletescheme ", scheme.getKey(), "\" width=55 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td></tr>"); sb.append("</table>"); } final NpcHtmlMessage html = new NpcHtmlMessage(0); html.setFile("data/html/mods/buffer/schememanager/index-2.htm"); html.replace("%schemes%", sb.toString()); html.replace("%max_schemes%", Config.BUFFER_MAX_SCHEMES); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } /** * This sends an html packet to player with Edit Scheme Menu info. This allows player to edit each created scheme (add/delete skills) * @param player : The player to make checks on. * @param groupType : The group of skills to select. * @param schemeName : The scheme to make check. */ private void showEditSchemeWindow(Player player, String groupType, String schemeName) { final NpcHtmlMessage html = new NpcHtmlMessage(0); if (schemeName.equalsIgnoreCase("none")) html.setFile("data/html/mods/buffer/schememanager/index-3.htm"); else { if (groupType.equalsIgnoreCase("none")) html.setFile("data/html/mods/buffer/schememanager/index-4.htm"); else { html.setFile("data/html/mods/buffer/schememanager/index-5.htm"); html.replace("%skilllistframe%", getGroupSkillList(player, groupType, schemeName)); } html.replace("%schemename%", schemeName); html.replace("%myschemeframe%", getPlayerSchemeSkillList(player, groupType, schemeName)); html.replace("%typesframe%", getTypesFrame(groupType, schemeName)); } html.replace("%schemes%", getPlayerSchemes(player, schemeName)); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } /** * @param player : The player to make checks on. * @param schemeName : The name to don't link (previously clicked). * @return a String listing player's schemes. The scheme currently on selection isn't linkable. */ private static String getPlayerSchemes(Player player, String schemeName) { final Map<String, ArrayList<Integer>> schemes = BufferTable.getInstance().getPlayerSchemes(player.getObjectId()); if (schemes == null || schemes.isEmpty()) return "Please create at least one scheme."; final StringBuilder sb = new StringBuilder(200); sb.append("<table>"); for (Map.Entry<String, ArrayList<Integer>> scheme : schemes.entrySet()) { if (schemeName.equalsIgnoreCase(scheme.getKey())) StringUtil.append(sb, "<tr><td width=200>", scheme.getKey(), " (<font color=\"LEVEL\">", scheme.getValue().size(), "</font> / ", Config.BUFFER_MAX_SKILLS, " skill(s))</td></tr>"); else StringUtil.append(sb, "<tr><td width=200><a action=\"bypass -h npc_%objectId%_editschemes none ", scheme.getKey(), "\">", scheme.getKey(), " (", scheme.getValue().size(), " / ", Config.BUFFER_MAX_SKILLS, " skill(s))</a></td></tr>"); } sb.append("</table>"); return sb.toString(); } /** * @param player : The player to make checks on. * @param groupType : The group of skills to select. * @param schemeName : The scheme to make check. * @return a String representing skills available to selection for a given groupType. */ private static String getGroupSkillList(Player player, String groupType, String schemeName) { final List<Integer> skills = new ArrayList<>(); for (int skillId : BufferTable.getSkillsIdsByType(groupType)) { if (BufferTable.getInstance().getSchemeContainsSkill(player.getObjectId(), schemeName, skillId)) continue; skills.add(skillId); } if (skills.isEmpty()) return "That group doesn't contain any skills."; final StringBuilder sb = new StringBuilder(500); sb.append("<table>"); int count = 0; for (int skillId : skills) { if (BufferTable.getInstance().getSchemeContainsSkill(player.getObjectId(), schemeName, skillId)) continue; if (count == 0) sb.append("<tr>"); if (skillId < 100) sb.append("<td width=180><font color=\"949490\"><a action=\"bypass -h npc_%objectId%_skillselect " + groupType + " " + schemeName + " " + skillId + "\">" + SkillTable.getInstance().getInfo(skillId, 1).getName() + "</a></font></td>"); else if (skillId < 1000) sb.append("<td width=180><font color=\"949490\"><a action=\"bypass -h npc_%objectId%_skillselect " + groupType + " " + schemeName + " " + skillId + "\">" + SkillTable.getInstance().getInfo(skillId, 1).getName() + "</a></font></td>"); else sb.append("<td width=180><font color=\"949490\"><a action=\"bypass -h npc_%objectId%_skillselect " + groupType + " " + schemeName + " " + skillId + "\">" + SkillTable.getInstance().getInfo(skillId, 1).getName() + "</a></font></td>"); count++; if (count == 2) { sb.append("</tr><tr><td></td></tr>"); count = 0; } } if (!sb.toString().endsWith("</tr>")) sb.append("</tr>"); sb.append("</table>"); return sb.toString(); } /** * @param player : The player to make checks on. * @param groupType : The group of skills to select. * @param schemeName : The scheme to make check. * @return a String representing a given scheme's content. */ private static String getPlayerSchemeSkillList(Player player, String groupType, String schemeName) { final List<Integer> skills = BufferTable.getInstance().getScheme(player.getObjectId(), schemeName); if (skills.isEmpty()) return "That scheme is empty."; final StringBuilder sb = new StringBuilder(500); sb.append("<table>"); int count = 0; for (int sk : skills) { if (count == 0) sb.append("<tr>"); if (sk < 100) sb.append("<td width=180><font color=\"6e6e6a\"><a action=\"bypass -h npc_%objectId%_skillunselect " + groupType + " " + schemeName + " " + sk + "\">" + SkillTable.getInstance().getInfo(sk, 1).getName() + "</a></font></td>"); else if (sk < 1000) sb.append("<td width=180><font color=\"6e6e6a\"><a action=\"bypass -h npc_%objectId%_skillunselect " + groupType + " " + schemeName + " " + sk + "\">" + SkillTable.getInstance().getInfo(sk, 1).getName() + "</a></font></td>"); else sb.append("<td width=180><font color=\"6e6e6a\"><a action=\"bypass -h npc_%objectId%_skillunselect " + groupType + " " + schemeName + " " + sk + "\">" + SkillTable.getInstance().getInfo(sk, 1).getName() + "</a></font></td>"); count++; if (count == 2) { sb.append("</tr><tr><td></td></tr>"); count = 0; } } if (!sb.toString().endsWith("<tr>")) sb.append("<tr>"); sb.append("</table>"); return sb.toString(); } /** * @param groupType : The group of skills to select. * @param schemeName : The scheme to make check. * @return a string representing all groupTypes availables. The group currently on selection isn't linkable. */ private static String getTypesFrame(String groupType, String schemeName) { final StringBuilder sb = new StringBuilder(500); sb.append("<table>"); int count = 0; for (String s : BufferTable.getSkillTypes()) { if (count == 0) sb.append("<tr>"); if (groupType.equalsIgnoreCase(s)) StringUtil.append(sb, "<td width=65>", s, "</td>"); else StringUtil.append(sb, "<td width=65><a action=\"bypass -h npc_%objectId%_editschemes ", s, " ", schemeName, "\">", s, "</a></td>"); count++; if (count == 4) { sb.append("</tr>"); count = 0; } } if (!sb.toString().endsWith("</tr>")) sb.append("</tr>"); sb.append("</table>"); return sb.toString(); } /** * @param list : A list of skill ids. * @return a global fee for all skills contained in list. */ private static int getFee(ArrayList<Integer> list) { if (Config.BUFFER_STATIC_BUFF_COST >= 0) return (list.size() * Config.BUFFER_STATIC_BUFF_COST); int fee = 0; for (int sk : list) { if (Config.BUFFER_BUFFLIST.get(sk) == null) continue; fee += Config.BUFFER_BUFFLIST.get(sk).getValue(); } return fee; } private void autoBuffFunction(Player player, String bufflist) { ArrayList<L2Skill> skills_to_buff = new ArrayList<>(); List<Integer> list = null; if (bufflist.equalsIgnoreCase("fighter")) list = Config.FIGHTER_SKILL_LIST; else if (bufflist.equalsIgnoreCase("mage")) list = Config.MAGE_SKILL_LIST; if (list != null) { for (int skillId : list) { L2Skill skill = SkillTable.getInstance().getInfo(skillId, SkillTable.getInstance().getMaxLevel(skillId)); if (skill != null) skills_to_buff.add(skill); } for (L2Skill sk : skills_to_buff) sk.getEffects(player, player); player.updateEffectIcons(); list = null; } skills_to_buff.clear(); showMainWindow(player); } }
  12. Dê uma olhada para ver o IP indicado na propriedade responsável pelo login e server está de acordo com o endereço local ou veja se o protocolo da system é compatível com aquele que está fixado nas propriedades.
  13. Exclua esse arquivo module-info.java, e compile novamente. Faça o backup se quiser.
  14. Você errou ao editar a XML 'zone', esquece de colocar "aspas" em algum atributo. Reveja o arquivo zone.xml e veja se não está faltando algumas "aspas" na linha de numero 4485.
  15. Seria bom aprender mais antes de querer abrir um servidor. Depois de online, aparece tanto erro, você não vai saber resolver e será tempo jogado fora. Na parte dos teleports. Vai estudando que você consegue algo de qualidade suficiente.
×
×
  • Create New...