Ir para conteúdo
  • Cadastre-se

[ADM]Mystogan

Membro
  • Total de itens

    196
  • Registro em

  • Última visita

Reputação

23 Normal

5 Seguidores

Sobre [ADM]Mystogan

  • Rank
    Muito Noob
  • Data de Nascimento 11-03-1992

Profile Information

  • Gênero:
    Masculino
  • Localização:
    Nova Friburgo - Rio de Janeiro
  • Interesses:
    Me tornar um grande desenvolvedor de conteúdo para Lineage2.

Contact Methods

  • Facebook:
    https://www.facebook.com/otavio.ferreira.33449
  • Skype:
    otaviomystogan
  • Site:
    l2remember.com

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

  1. [ADM]Mystogan

    Compilando e clonando revisão L2JBRasil 3.0 pelo git

    Nao estou com sorte. estou com esse erro agora para dar Chekout no project... https://ibb.co/nJPBjx
  2. [ADM]Mystogan

    Compilando e clonando revisão L2JBRasil 3.0 pelo git

    Obrigado ambos estavao com erro importanto um jdk 1.8.0_151 agr ajustei ao meu 1.8.0_610 funcionou certinho obrigado mesmo tayran agr posso voltar ao projeto C4
  3. [ADM]Mystogan

    Compilando e clonando revisão L2JBRasil 3.0 pelo git

    http://www.imagemhost.com.br/image/01IU ai esta
  4. [ADM]Mystogan

    Compilando e clonando revisão L2JBRasil 3.0 pelo git

    http://www.imagemhost.com.br/image/0NDS ai esta a foto do erro porem a tecla F4 não abriu nem uma janela
  5. [ADM]Mystogan

    Compilando e clonando revisão L2JBRasil 3.0 pelo git

    entendo mais agora quando eu clico em compilar da o seguinte erro JDK (1.8) needed to run this Ant target is incorrectly configured. Please update your settings in the Project Structure dialog.
  6. [ADM]Mystogan

    Compilando e clonando revisão L2JBRasil 3.0 pelo git

    Tayran sabe resolver esse erro ? http://www.imagemhost.com.br/image/033C isso aparece apos clicar em Fix it. http://www.imagemhost.com.br/image/0YIL
  7. [ADM]Mystogan

    ACP 3.5 Funcionando

    estou tentando adaptar um script de vote aqui se der certo te passo ele... alguem ai esta com um problema de nao atualizar o dinheiro depois de comprar algo na loja de itens ?
  8. [ADM]Mystogan

    ACP 3.5 Funcionando

    eu uso a lisvus C4 arrumei maior parte do site mais agr ao comprar os itens ele desconta o valor e nao entrega nada vou dar uma lida nesse arquivo ja que ele que e reponsavel pelo ato de entregar items ... obrigado
  9. [ADM]Mystogan

    ACP 3.5 Funcionando

    obrigado fiz aqui uma coisa agr que estou com erro e nao esta acusando em nada eu compro os itens pelo site mais nao estao entregando na minha conta oque poderia estar causando isso ?
  10. [ADM]Mystogan

    ACP 3.5 Funcionando

    painel muito bacana acabo de conseguir adaptar ele todo para a rev l2jlisvus so nao consegui achar onde alterar o enchant limitie gostaria de por o +10 no lugar do +16 e tb o valor do nobles limpar pk etc pf ficaria mt grato
  11. [ADM]Mystogan

    MOD Enchant L2jLisvus

    Aqui o arquivo "RequestEnchantItem.java" completo /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.clientpackets; import net.sf.l2j.Config; import net.sf.l2j.gameserver.model.Inventory; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.*; import net.sf.l2j.gameserver.templates.L2Item; import net.sf.l2j.gameserver.templates.L2WeaponType; import net.sf.l2j.gameserver.util.IllegalPlayerAction; import net.sf.l2j.gameserver.util.Util; import net.sf.l2j.util.Rnd; import java.util.logging.Logger; public class RequestEnchantItem extends L2GameClientPacket { protected static final Logger _log = Logger.getLogger(Inventory.class.getName()); private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem"; private static final int[] crystalScrolls = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 }; private int _objectId; @Override protected void readImpl() { _objectId = 0; try { _objectId = readD(); } catch (Exception e) { } } @Override public void runImpl() { L2PcInstance activeChar = getClient().getActiveChar(); if ((activeChar == null) || (_objectId == 0)) { return; } if (activeChar.isProcessingTransaction() || (activeChar.getPrivateStoreType() != 0)) { activeChar.sendPacket(new SystemMessage(1688)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId); L2ItemInstance scroll = activeChar.getActiveEnchantItem(); if ((item == null) || (scroll == null)) { activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } // can't enchant rods and hero weapons if ((item.getItem().getItemType() == L2WeaponType.ROD) || (!Config.ALLOW_HERO_ENCHANT && (item.getItemId() >= 6611) && (item.getItemId() <= 6621)) || ((item.getItemId() >= 7816) && (item.getItemId() <= 7831))) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } if (item.isWear()) { Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant a weared Item", IllegalPlayerAction.PUNISH_KICK); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } switch (item.getLocation()) { case INVENTORY: case PAPERDOLL: { if (item.getOwnerId() != activeChar.getObjectId()) { activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } break; } default: { Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to use enchant Exploit!", IllegalPlayerAction.PUNISH_KICKBAN); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } } if (activeChar.getActiveWarehouse() != null) { activeChar.setActiveWarehouse(null); } int itemType2 = item.getItem().getType2(); boolean blessedScroll = false; boolean enchantItem = false; int crystalId = 0; /** pretty code ;D */ switch (item.getItem().getCrystalType()) { case L2Item.CRYSTAL_S: crystalId = 1462; switch (scroll.getItemId()) { case 959: case 961: case 6577: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 960: case 962: case 6578: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; case L2Item.CRYSTAL_A: crystalId = 1461; switch (scroll.getItemId()) { case 729: case 731: case 6569: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 730: case 732: case 6570: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; case L2Item.CRYSTAL_B: crystalId = 1460; switch (scroll.getItemId()) { case 947: case 949: case 6571: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 948: case 950: case 6572: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; case L2Item.CRYSTAL_C: crystalId = 1459; switch (scroll.getItemId()) { case 951: case 953: case 6573: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 952: case 954: case 6574: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; case L2Item.CRYSTAL_D: crystalId = 1458; switch (scroll.getItemId()) { case 955: case 957: case 6575: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 956: case 958: case 6576: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; } if (!enchantItem) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } // Get the scroll type - Yesod if ((scroll.getItemId() >= 6569) && (scroll.getItemId() <= 6578)) { blessedScroll = true; } else { for (int crystalscroll : crystalScrolls) { if (scroll.getItemId() == crystalscroll) { blessedScroll = true; } break; } } int chance = 0; int maxEnchantLevel = 0; if (item.getItem().getType2() == L2Item.TYPE2_WEAPON) { if (blessedScroll) { chance = Config.BLESSED_ENCHANT_CHANCE_WEAPON; } else { chance = Config.ENCHANT_CHANCE_WEAPON; } maxEnchantLevel = Config.ENCHANT_MAX_WEAPON; } else if (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR) { if (blessedScroll) { chance = Config.BLESSED_ENCHANT_CHANCE_ARMOR; } else { chance = Config.ENCHANT_CHANCE_ARMOR; } maxEnchantLevel = Config.ENCHANT_MAX_ARMOR; } else if (item.getItem().getType2() == L2Item.TYPE2_ACCESSORY) { if (blessedScroll) { chance = Config.BLESSED_ENCHANT_CHANCE_JEWELRY; } else { chance = Config.ENCHANT_CHANCE_JEWELRY; } maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY; } if (item.getItem().getType2() == L2Item.TYPE2_WEAPON) { if (blessedScroll) { chance = Config.CRYSTAL_ENCHANT_CHANCE_WEAPON; } maxEnchantLevel = Config.CRYSTALENCHANT_MAX_WEAPON; } else if (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR) { if (blessedScroll) { chance = Config.CRYSTAL_ENCHANT_CHANCE_ARMOR; } maxEnchantLevel = Config.CRYSTALENCHANT_MAX_ARMOR; } else if (item.getItem().getType2() == L2Item.TYPE2_ACCESSORY) { if (blessedScroll) { chance = Config.CRYSTAL_ENCHANT_CHANCE_JEWELRY; } else { chance = Config.CRYSTAL_ENCHANT_CHANCE_JEWELRY; } maxEnchantLevel = Config.CRYSTALENCHANT_MAX_JEWELRY; } if ((item.getEnchantLevel() >= maxEnchantLevel) && (maxEnchantLevel != 0)) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } scroll = activeChar.getInventory().destroyItem("Enchant", scroll, activeChar, item); if (scroll == null) { activeChar.sendPacket(new SystemMessage(SystemMessage.NOT_ENOUGH_ITEMS)); Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant with a scroll he doesnt have", Config.DEFAULT_PUNISH); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } if ((item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX) || ((item.getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR) && (item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX_FULL))) { chance = 100; } boolean failed = false; SystemMessage sm; if (Rnd.get(100) < chance) { synchronized (item) { if (item.getOwnerId() != activeChar.getObjectId()) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } if ((item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY) && (item.getLocation() != L2ItemInstance.ItemLocation.PAPERDOLL)) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } if (item.getEnchantLevel() == 0) { sm = new SystemMessage(SystemMessage.S1_SUCCESSFULLY_ENCHANTED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { sm = new SystemMessage(SystemMessage.S1_S2_SUCCESSFULLY_ENCHANTED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } item.setEnchantLevel(item.getEnchantLevel() + 1); item.updateDatabase(); } } else { failed = true; if (!blessedScroll) { if (item.getEnchantLevel() > 0) { sm = new SystemMessage(SystemMessage.ENCHANTMENT_FAILED_S1_S2_EVAPORATED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { sm = new SystemMessage(SystemMessage.ENCHANTMENT_FAILED_S1_EVAPORATED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } if (item.isEquipped()) { if (item.getEnchantLevel() > 0) { sm = new SystemMessage(SystemMessage.EQUIPMENT_S1_S2_REMOVED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { sm = new SystemMessage(SystemMessage.S1_DISARMED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot()); InventoryUpdate iu = new InventoryUpdate(); for (L2ItemInstance element : unequiped) { iu.addModifiedItem(element); } activeChar.sendPacket(iu); activeChar.broadcastUserInfo(); } int count = item.getCrystalCount() - ((item.getItem().getCrystalCount() + 1) / 2); if (count < 1) { count = 1; } L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null); if (destroyItem == null) { activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem); sm = new SystemMessage(SystemMessage.EARNED_S2_S1_s); sm.addItemName(crystals.getItemId()); sm.addNumber(count); activeChar.sendPacket(sm); if (!Config.FORCE_INVENTORY_UPDATE) { InventoryUpdate iu = new InventoryUpdate(); if (destroyItem.getCount() == 0) { iu.addRemovedItem(destroyItem); } else { iu.addModifiedItem(destroyItem); } iu.addItem(crystals); activeChar.sendPacket(iu); } else { activeChar.sendPacket(new ItemList(activeChar, true)); } StatusUpdate su = new StatusUpdate(activeChar.getObjectId()); su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad()); activeChar.sendPacket(su); activeChar.broadcastUserInfo(); L2World.getInstance().removeObject(destroyItem); activeChar.sendPacket(new EnchantResult(1)); } else { activeChar.sendPacket(new SystemMessage(SystemMessage.BLESSED_ENCHANT_FAILED)); item.setEnchantLevel(0); item.updateDatabase(); activeChar.sendPacket(new EnchantResult(2)); } } sm = null; StatusUpdate su = new StatusUpdate(activeChar.getObjectId()); su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad()); activeChar.sendPacket(su); su = null; if (!failed) { activeChar.sendPacket(new EnchantResult(0)); } activeChar.sendPacket(new ItemList(activeChar, false)); // TODO update only the enchanted item activeChar.broadcastUserInfo(); activeChar.setActiveEnchantItem(null); } /* * (non-Javadoc) * @see net.sf.l2j.gameserver.clientpackets.L2GameClientPacket#getType() */ @Override public String getType() { return _C__58_REQUESTENCHANTITEM; } }
  12. [ADM]Mystogan

    MOD Enchant L2jLisvus

    Bem vamos la estou tentando desenvolver meu primeiro "Mod Java" da chance e do limite do crystal enchant para o L2jLisvus mais esta com um problema que as config não estão 100% apenas o limite esta Ok a chance não esta oque poderia ser ? Other.properties # % Chance of succeding to enchant an item when it has a chance of breaking EnchantChanceWeapon = 65 EnchantChanceArmor = 65 EnchantChanceJewelry = 65 # % Chance of succeding to enchant an item without a chance of breaking BlessedEnchantChanceWeapon = 70 BlessedEnchantChanceArmor = 70 BlessedEnchantChanceJewelry = 70 +# Crystal Scroll By [ADM]Mystogan +CrystalEnchantChanceWeapon = 100 +CrystalEnchantChanceArmor = 100 +CrystalEnchantChanceJewelry = 100 # Enchant limit [default = 0 (unlimited)] EnchantMaxWeapon = 20 EnchantMaxArmor = 20 EnchantMaxJewelry = 20 +# Crystal Enchant limit By [ADM]Mystogan [default = 0 (unlimited)] +CrystalEnchantMaxWeapon = 10 +CrystalEnchantMaxArmor = 8 +CrystalEnchantMaxJewelry = 8 Config.java BLESSED_ENCHANT_CHANCE_JEWELRY = Integer.parseInt(otherSettings.getProperty("BlessedEnchantChanceJewelry", "54")); + CRYSTAL_ENCHANT_CHANCE_WEAPON = Integer.parseInt(otherSettings.getProperty("CrystalEnchantChanceWeapon", "100")); + CRYSTAL_ENCHANT_CHANCE_ARMOR = Integer.parseInt(otherSettings.getProperty("CrystalEnchantChanceArmor", "100")); + CRYSTAL_ENCHANT_CHANCE_JEWELRY = Integer.parseInt(otherSettings.getProperty("CrystalEnchantChanceJewelry", "100")); /* limit on enchant */ ENCHANT_MAX_WEAPON = Integer.parseInt(otherSettings.getProperty("EnchantMaxWeapon", "25")); ENCHANT_MAX_ARMOR = Integer.parseInt(otherSettings.getProperty("EnchantMaxArmor", "25")); ENCHANT_MAX_JEWELRY = Integer.parseInt(otherSettings.getProperty("EnchantMaxJewelry", "25")); + CRYSTALENCHANT_MAX_WEAPON = Integer.parseInt(otherSettings.getProperty("CrystalEnchantMaxWeapon", "10")); + CRYSTALENCHANT_MAX_ARMOR = Integer.parseInt(otherSettings.getProperty("CrystalEnchantMaxArmor", "8")); + CRYSTALENCHANT_MAX_JEWELRY = Integer.parseInt(otherSettings.getProperty("CrystalEnchantMaxJewelry", "8")); public static int BLESSED_ENCHANT_CHANCE_JEWELRY; + public static int CRYSTAL_ENCHANT_CHANCE_WEAPON; + public static int CRYSTAL_ENCHANT_CHANCE_ARMOR; + public static int CRYSTAL_ENCHANT_CHANCE_JEWELRY; /** Maximum level of enchantment */ public static int ENCHANT_MAX_WEAPON; public static int ENCHANT_MAX_ARMOR; public static int ENCHANT_MAX_JEWELRY; + public static int CRYSTALENCHANT_MAX_WEAPON; + public static int CRYSTALENCHANT_MAX_ARMOR; + public static int CRYSTALENCHANT_MAX_JEWELRY; RequestEnchantItem.java maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY; } + if (item.getItem().getType2() == L2Item.TYPE2_WEAPON) + { + if (blessedScroll) + { + chance = Config.CRYSTAL_ENCHANT_CHANCE_WEAPON; + } + maxEnchantLevel = Config.CRYSTALENCHANT_MAX_WEAPON; + } + else if (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR) + { + if (blessedScroll) + { + chance = Config.CRYSTAL_ENCHANT_CHANCE_ARMOR; + } + maxEnchantLevel = Config.CRYSTALENCHANT_MAX_ARMOR; + } + else if (item.getItem().getType2() == L2Item.TYPE2_ACCESSORY) + { + if (blessedScroll) + { + chance = Config.CRYSTAL_ENCHANT_CHANCE_JEWELRY; + } + else + { + chance = Config.CRYSTAL_ENCHANT_CHANCE_JEWELRY; + } + maxEnchantLevel = Config.CRYSTALENCHANT_MAX_JEWELRY; + } + if ((item.getEnchantLevel() >= maxEnchantLevel) && (maxEnchantLevel != 0)) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; }
  13. [ADM]Mystogan

    Scroll Enchant Falhando como Blessed Enchant

    Alguem poderia fazer com que o Scroll Enchant Normal Falhar e voltar para o +0 como o Blessed Enchant Faz ? gostaria de fazer com que cada um tenha sua chance especifica /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.clientpackets; import java.util.logging.Logger; import net.sf.l2j.Config; import net.sf.l2j.gameserver.model.Inventory; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.EnchantResult; import net.sf.l2j.gameserver.serverpackets.InventoryUpdate; import net.sf.l2j.gameserver.serverpackets.ItemList; import net.sf.l2j.gameserver.serverpackets.StatusUpdate; import net.sf.l2j.gameserver.serverpackets.SystemMessage; import net.sf.l2j.gameserver.templates.L2Item; import net.sf.l2j.gameserver.templates.L2WeaponType; import net.sf.l2j.gameserver.util.IllegalPlayerAction; import net.sf.l2j.gameserver.util.Util; import net.sf.l2j.util.Rnd; public class RequestEnchantItem extends L2GameClientPacket { protected static final Logger _log = Logger.getLogger(Inventory.class.getName()); private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem"; private static final int[] crystalScrolls = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 }; private int _objectId; @Override protected void readImpl() { _objectId = 0; try { _objectId = readD(); } catch (Exception e) { } } @Override public void runImpl() { L2PcInstance activeChar = getClient().getActiveChar(); if ((activeChar == null) || (_objectId == 0)) { return; } if (activeChar.isProcessingTransaction() || (activeChar.getPrivateStoreType() != 0)) { activeChar.sendPacket(new SystemMessage(1688)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId); L2ItemInstance scroll = activeChar.getActiveEnchantItem(); if ((item == null) || (scroll == null)) { activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } // can't enchant rods and hero weapons if ((item.getItem().getItemType() == L2WeaponType.ROD) || (!Config.ALLOW_HERO_ENCHANT && (item.getItemId() >= 6611) && (item.getItemId() <= 6621)) || ((item.getItemId() >= 7816) && (item.getItemId() <= 7831))) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } if (item.isWear()) { Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant a weared Item", IllegalPlayerAction.PUNISH_KICK); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } switch (item.getLocation()) { case INVENTORY: case PAPERDOLL: { if (item.getOwnerId() != activeChar.getObjectId()) { activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } break; } default: { Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to use enchant Exploit!", IllegalPlayerAction.PUNISH_KICKBAN); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } } if (activeChar.getActiveWarehouse() != null) { activeChar.setActiveWarehouse(null); } int itemType2 = item.getItem().getType2(); boolean blessedScroll = false; boolean enchantItem = false; int crystalId = 0; /** pretty code ;D */ switch (item.getItem().getCrystalType()) { case L2Item.CRYSTAL_S: crystalId = 1462; switch (scroll.getItemId()) { case 959: case 961: case 6577: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 960: case 962: case 6578: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; case L2Item.CRYSTAL_A: crystalId = 1461; switch (scroll.getItemId()) { case 729: case 731: case 6569: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 730: case 732: case 6570: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; case L2Item.CRYSTAL_B: crystalId = 1460; switch (scroll.getItemId()) { case 947: case 949: case 6571: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 948: case 950: case 6572: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; case L2Item.CRYSTAL_C: crystalId = 1459; switch (scroll.getItemId()) { case 951: case 953: case 6573: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 952: case 954: case 6574: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; case L2Item.CRYSTAL_D: crystalId = 1458; switch (scroll.getItemId()) { case 955: case 957: case 6575: if (itemType2 == L2Item.TYPE2_WEAPON) { enchantItem = true; } break; case 956: case 958: case 6576: if ((itemType2 == L2Item.TYPE2_SHIELD_ARMOR) || (itemType2 == L2Item.TYPE2_ACCESSORY)) { enchantItem = true; } break; } break; } if (!enchantItem) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } // Get the scroll type - Yesod if ((scroll.getItemId() >= 6569) && (scroll.getItemId() <= 6578)) { blessedScroll = true; } else { for (int crystalscroll : crystalScrolls) { if (scroll.getItemId() == crystalscroll) { blessedScroll = true; } break; } } int chance = 0; int maxEnchantLevel = 0; if (item.getItem().getType2() == L2Item.TYPE2_WEAPON) { if (blessedScroll) { chance = Config.BLESSED_ENCHANT_CHANCE_WEAPON; } else { chance = Config.ENCHANT_CHANCE_WEAPON; } maxEnchantLevel = Config.ENCHANT_MAX_WEAPON; } else if (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR) { if (blessedScroll) { chance = Config.BLESSED_ENCHANT_CHANCE_ARMOR; } else { chance = Config.ENCHANT_CHANCE_ARMOR; } maxEnchantLevel = Config.ENCHANT_MAX_ARMOR; } else if (item.getItem().getType2() == L2Item.TYPE2_ACCESSORY) { if (blessedScroll) { chance = Config.BLESSED_ENCHANT_CHANCE_JEWELRY; } else { chance = Config.ENCHANT_CHANCE_JEWELRY; } maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY; } if ((item.getEnchantLevel() >= maxEnchantLevel) && (maxEnchantLevel != 0)) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } scroll = activeChar.getInventory().destroyItem("Enchant", scroll, activeChar, item); if (scroll == null) { activeChar.sendPacket(new SystemMessage(SystemMessage.NOT_ENOUGH_ITEMS)); Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant with a scroll he doesnt have", Config.DEFAULT_PUNISH); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } if ((item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX) || ((item.getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR) && (item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX_FULL))) { chance = 100; } boolean failed = false; SystemMessage sm; if (Rnd.get(100) < chance) { synchronized (item) { if (item.getOwnerId() != activeChar.getObjectId()) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } if ((item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY) && (item.getLocation() != L2ItemInstance.ItemLocation.PAPERDOLL)) { activeChar.sendPacket(new SystemMessage(SystemMessage.INAPPROPRIATE_ENCHANT_CONDITION)); activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } if (item.getEnchantLevel() == 0) { sm = new SystemMessage(SystemMessage.S1_SUCCESSFULLY_ENCHANTED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { sm = new SystemMessage(SystemMessage.S1_S2_SUCCESSFULLY_ENCHANTED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } item.setEnchantLevel(item.getEnchantLevel() + 1); item.updateDatabase(); } } else { failed = true; if (!blessedScroll) { if (item.getEnchantLevel() > 0) { sm = new SystemMessage(SystemMessage.ENCHANTMENT_FAILED_S1_S2_EVAPORATED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { sm = new SystemMessage(SystemMessage.ENCHANTMENT_FAILED_S1_EVAPORATED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } if (item.isEquipped()) { if (item.getEnchantLevel() > 0) { sm = new SystemMessage(SystemMessage.EQUIPMENT_S1_S2_REMOVED); sm.addNumber(item.getEnchantLevel()); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } else { sm = new SystemMessage(SystemMessage.S1_DISARMED); sm.addItemName(item.getItemId()); activeChar.sendPacket(sm); } L2ItemInstance[] unequiped = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot()); InventoryUpdate iu = new InventoryUpdate(); for (L2ItemInstance element : unequiped) { iu.addModifiedItem(element); } activeChar.sendPacket(iu); activeChar.broadcastUserInfo(); } int count = item.getCrystalCount() - ((item.getItem().getCrystalCount() + 1) / 2); if (count < 1) { count = 1; } L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null); if (destroyItem == null) { activeChar.setActiveEnchantItem(null); activeChar.sendPacket(new EnchantResult(2)); return; } L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem); sm = new SystemMessage(SystemMessage.EARNED_S2_S1_s); sm.addItemName(crystals.getItemId()); sm.addNumber(count); activeChar.sendPacket(sm); if (!Config.FORCE_INVENTORY_UPDATE) { InventoryUpdate iu = new InventoryUpdate(); if (destroyItem.getCount() == 0) { iu.addRemovedItem(destroyItem); } else { iu.addModifiedItem(destroyItem); } iu.addItem(crystals); activeChar.sendPacket(iu); } else { activeChar.sendPacket(new ItemList(activeChar, true)); } StatusUpdate su = new StatusUpdate(activeChar.getObjectId()); su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad()); activeChar.sendPacket(su); activeChar.broadcastUserInfo(); L2World.getInstance().removeObject(destroyItem); activeChar.sendPacket(new EnchantResult(1)); } else { activeChar.sendPacket(new SystemMessage(SystemMessage.BLESSED_ENCHANT_FAILED)); item.setEnchantLevel(0); item.updateDatabase(); activeChar.sendPacket(new EnchantResult(2)); } } sm = null; StatusUpdate su = new StatusUpdate(activeChar.getObjectId()); su.addAttribute(StatusUpdate.CUR_LOAD, activeChar.getCurrentLoad()); activeChar.sendPacket(su); su = null; if (!failed) { activeChar.sendPacket(new EnchantResult(0)); } activeChar.sendPacket(new ItemList(activeChar, false)); // TODO update only the enchanted item activeChar.broadcastUserInfo(); activeChar.setActiveEnchantItem(null); } /* * (non-Javadoc) * @see net.sf.l2j.gameserver.clientpackets.L2GameClientPacket#getType() */ @Override public String getType() { return _C__58_REQUESTENCHANTITEM; } }
  14. [ADM]Mystogan

    [Tutorial] Modificar periodo de Olimpiadas

    Ola galera gostaria de tirar uma duvida com voces estou modificando as olympiadas para rodas sabado e domingo e entregar o hero na segunda deixando terça quarta quinta e sexta em tempo de espera alguem ai ja tem um codigo pronto para isso ? ou pode me informa que dia esta terminando a minha com o codigo conforme esta.... Calendar currentTime = Calendar.getInstance(); currentTime.add(Calendar.WEEK_OF_MONTH, 1); currentTime.set(Calendar.DAY_OF_MONTH, 1); currentTime.set(Calendar.AM_PM, Calendar.AM); currentTime.set(Calendar.HOUR, 12); currentTime.set(Calendar.MINUTE, 0); currentTime.set(Calendar.SECOND, 0); _olympiadEnd = currentTime.getTimeInMillis(); Calendar nextChange = Calendar.getInstance(); _nextWeeklyChange = nextChange.getTimeInMillis() + WEEKLY_PERIOD; scheduleWeeklyChange(); }
  15. [ADM]Mystogan

    Guardar Meu pack

    Muito obrigado a voces agr posso formatar minha maquina de maneira aliviada e tranquila
×