Jump to content

12 Anos Online! 🎂

Gremlin

Membro
  • Posts

    308
  • Joined

  • Last visited

  • Days Won

    6

Gremlin last won the day on July 25 2019

Gremlin had the most liked content!

7 Followers

About Gremlin

  • Birthday 08/19/1998

Recent Profile Visitors

3094 profile views

Gremlin's Achievements

Newbie

Newbie (1/14)

130

Reputation

1

Community Answers

  1. Deve ter algum arquivo em game/config/main/
  2. Index: dist/game/data/scripts/ai/sunriseNpc/EnchantManager/EnchantManager.java =================================================================== --- dist/game/data/scripts/ai/sunriseNpc/EnchantManager/EnchantManager.java (revision 0) +++ dist/game/data/scripts/ai/sunriseNpc/EnchantManager/EnchantManager.java (working copy) @@ -0,0 +1,176 @@ +package ai.sunriseNpc.EnchantManager; + +import l2r.gameserver.data.xml.impl.ItemData; +import l2r.gameserver.model.actor.L2Npc; +import l2r.gameserver.model.actor.instance.L2PcInstance; +import l2r.gameserver.model.itemcontainer.Inventory; +import l2r.gameserver.model.items.instance.L2ItemInstance; +import l2r.gameserver.network.SystemMessageId; +import l2r.gameserver.network.serverpackets.InventoryUpdate; +import l2r.gameserver.network.serverpackets.NpcHtmlMessage; + +import ai.npc.AbstractNpcAI; + +/** + * @author L2fuLL + */ +public final class EnchantManager extends AbstractNpcAI +{ + private static final int NpcId = 576; + private static final int SafeEnchantMax = 6; + private static final int[] IdItemAndCost = + { + 57, // Id Item + 100000000 // Count + }; + + public EnchantManager() + { + super(EnchantManager.class.getSimpleName(), "ai/sunriseNpc"); + addFirstTalkId(NpcId); + addTalkId(NpcId); + addStartNpc(NpcId); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + int armorType = -1; + + if (event.startsWith("safe_seteh")) + { + armorType = Inventory.PAPERDOLL_HEAD; + } + else if (event.startsWith("safe_setec")) + { + armorType = Inventory.PAPERDOLL_CHEST; + } + else if (event.startsWith("safe_seteg")) + { + armorType = Inventory.PAPERDOLL_GLOVES; + } + else if (event.startsWith("safe_seteb")) + { + armorType = Inventory.PAPERDOLL_FEET; + } + else if (event.startsWith("safe_setel")) + { + armorType = Inventory.PAPERDOLL_LEGS; + } + else if (event.startsWith("safe_setew")) + { + armorType = Inventory.PAPERDOLL_RHAND; + } + else if (event.startsWith("safe_setes")) + { + armorType = Inventory.PAPERDOLL_LHAND; + } + else if (event.startsWith("safe_setle")) + { + armorType = Inventory.PAPERDOLL_LEAR; + } + else if (event.startsWith("safe_setre")) + { + armorType = Inventory.PAPERDOLL_REAR; + } + else if (event.startsWith("safe_setlf")) + { + armorType = Inventory.PAPERDOLL_LFINGER; + } + else if (event.startsWith("safe_setrf")) + { + armorType = Inventory.PAPERDOLL_RFINGER; + } + else if (event.startsWith("safe_seten")) + { + armorType = Inventory.PAPERDOLL_NECK; + } + else if (event.startsWith("safe_setun")) + { + armorType = Inventory.PAPERDOLL_UNDER; + } + else if (event.startsWith("safe_setba")) + { + armorType = Inventory.PAPERDOLL_CLOAK; + } + else if (event.startsWith("safe_setbe")) + { + armorType = Inventory.PAPERDOLL_BELT; + } + + if (armorType != -1) + { + setEnchant(player, SafeEnchantMax, armorType); + } + sendMainHtmlWindow(player, npc); + return ""; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + sendMainHtmlWindow(player, npc); + return ""; + } + + private void sendMainHtmlWindow(L2PcInstance player, L2Npc npc) + { + final NpcHtmlMessage html = getHtmlPacket(player, npc, "main.htm"); + html.replace("%player%", player.getName()); + html.replace("%PRICE%", String.valueOf(IdItemAndCost[1])); + html.replace("%ITEM_ID%", ItemData.getInstance().getTemplate(IdItemAndCost[0]).getName()); + + player.sendPacket(html); + } + + private NpcHtmlMessage getHtmlPacket(L2PcInstance player, L2Npc npc, String htmlFile) + { + final NpcHtmlMessage packet = new NpcHtmlMessage(npc.getObjectId()); + packet.setHtml(getHtm(player, player.getHtmlPrefix(), htmlFile)); + return packet; + } + + private void setEnchant(L2PcInstance activeChar, int ench, int armorType) + { + // now we need to find the equipped weapon of the targeted character... + int curEnchant = 0; // display purposes only + L2ItemInstance itemInstance = null; + + // only attempt to enchant if there is a weapon equipped + L2ItemInstance parmorInstance = activeChar.getInventory().getPaperdollItem(armorType); + if ((parmorInstance != null) && (parmorInstance.getLocationSlot() == armorType)) + { + itemInstance = parmorInstance; + } + + if (itemInstance != null) + { + curEnchant = itemInstance.getEnchantLevel(); + + // set enchant value + if ((curEnchant < SafeEnchantMax) && !itemInstance.isHeroItem()) + { + if (activeChar.destroyItemByItemId("enchant", IdItemAndCost[0], IdItemAndCost[1], activeChar, true)) + { + activeChar.getInventory().unEquipItemInSlot(armorType); + itemInstance.setEnchantLevel(ench); + activeChar.getInventory().equipItem(itemInstance); + + // send packets + InventoryUpdate iu = new InventoryUpdate(); + iu.addModifiedItem(itemInstance); + activeChar.sendInventoryUpdate(iu); + activeChar.broadcastUserInfo(); + + // informations + activeChar.sendMessageS("Congratulation, You enchanted your item to +" + SafeEnchantMax + "!", 4); + activeChar.sendMessage("Changed enchantment of " + activeChar.getName() + "'s " + itemInstance.getItem().getName() + " from " + curEnchant + " to " + ench + "."); + } + } + else + { + activeChar.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS); + } + } + } +} \ No newline at end of file Index: dist/game/data/scripts/ai/sunriseNpc/EnchantManager/main.htm =================================================================== --- dist/game/data/scripts/ai/sunriseNpc/EnchantManager/main.htm (revision 0) +++ dist/game/data/scripts/ai/sunriseNpc/EnchantManager/main.htm (working copy) @@ -0,0 +1,43 @@ +<html> + <title>Enchant Manager</title> +<body> +<br> + <center> + <img src="L2UI_CH3.herotower_deco" width=256 height=32> + <font color="00FFFF" > <h4>Safe Enchant</h4></font><br> + </center><br> + <center> + Hello <font color="LEVEL">%player%</font>, I can safely enchant your items<br> + This action cost <font color="LEVEL" > %ITEM_ID% %PRICE%</font><br><br> + <table> + <tr> + <td><button action="bypass -h Quest EnchantManager safe_seteh" width=32 height=32 back="icon.armor_circlet_i00" fore="icon.armor_circlet_i00"></td> + <td><button action="bypass -h Quest EnchantManager safe_setec" width=32 height=32 back="icon.armor_t96_u_i00" fore="icon.armor_t96_u_i00"></td> + <td><button action="bypass -h Quest EnchantManager safe_setel" width=32 height=32 back="icon.armor_t96_l_i00" fore="icon.armor_t96_l_i00"></td> + <td><button action="bypass -h Quest EnchantManager safe_seteg" width=32 height=32 back="icon.armor_t96_g_i01" fore="icon.armor_t96_g_i01"></td> + <td><button action="bypass -h Quest EnchantManager safe_seteb" width=32 height=32 back="icon.armor_t96_b_i01" fore="icon.armor_t96_b_i01"></td> + </tr> + </table> + <br> + <table> + <tr> + <td><button action="bypass -h Quest EnchantManager safe_setle" width=32 height=32 back="icon.accessory_earring_of_antaras_i00" fore="icon.accessory_earring_of_antaras_i00"></td> + <td><button action="bypass -h Quest EnchantManager safe_setre" width=32 height=32 back="icon.accessory_earring_of_zaken_i00" fore="icon.accessory_earring_of_zaken_i00"></td> + <td><button action="bypass -h Quest EnchantManager safe_seten" width=32 height=32 back="icon.accessory_necklace_of_valakas_i00" fore="icon.accessory_necklace_of_valakas_i00"></td> + <td><button action="bypass -h Quest EnchantManager safe_setlf" width=32 height=32 back="icon.accessory_ring_of_queen_ant_i00" fore="icon.accessory_ring_of_queen_ant_i00"></td> + <td><button action="bypass -h Quest EnchantManager safe_setrf" width=32 height=32 back="icon.accessory_ring_of_baium_i00" fore="icon.accessory_ring_of_baium_i00"></td> + </tr> + </table> + <br> + <table> + <tr> + <td><button action="bypass -h Quest EnchantManager safe_setew" width=32 height=32 back="icon.weapon_vesper_shaper_i01" fore="icon.weapon_vesper_shaper_i01"></td> + <td><button action="bypass -h Quest EnchantManager safe_setes" width=32 height=32 back="icon.verper_sigil_i01" fore="icon.verper_sigil_i01"></td> + <td><button action="bypass -h Quest EnchantManager safe_setbe" width=32 height=32 back="icon.belt_i03" fore="icon.belt_i03"></td> + <td><button action="bypass -h Quest EnchantManager safe_setun" width=32 height=32 back="icon.etc_stripe_shirts_s_i05" fore="icon.etc_stripe_shirts_s_i05"></td> + </tr> + </table> + <br> +<img src="L2UI_CH3.herotower_deco" width=256 height=32> +</center> +</body></html> Index: dist/game/data/scripts/handlers/SunriseNpcsLoader.java =================================================================== --- dist/game/data/scripts/handlers/SunriseNpcsLoader.java (revision 947) +++ dist/game/data/scripts/handlers/SunriseNpcsLoader.java (working copy) @@ -8,6 +8,7 @@ import ai.sunriseNpc.CastleManager.CastleManager; import ai.sunriseNpc.CommunityNpcs.CommunityNpcs; import ai.sunriseNpc.DelevelManager.DelevelManager; +import ai.sunriseNpc.EnchantManager.EnchantManager; import ai.sunriseNpc.GrandBossManager.GrandBossManager; import ai.sunriseNpc.NoblesseManager.NoblesseManager; import ai.sunriseNpc.PointsManager.PointsManager; @@ -33,6 +34,7 @@ PointsManager.class, PremiumManager.class, ReportManager.class, + EnchantManager.class, }; public SunriseNpcsLoader() Index: dist/game/data/xml/stats/npcs/custom/custom.xml =================================================================== --- dist/game/data/xml/stats/npcs/custom/custom.xml (revision 947) +++ dist/game/data/xml/stats/npcs/custom/custom.xml (working copy) @@ -114,6 +114,12 @@ <height normal="22" /> </collision> </npc> + <npc id="576" displayId="13298" name="Enchant Manager" usingServerSideName="true" title="www.l2jsunrise.com" usingServerSideTitle="true" type="L2Npc"> + <collision> + <radius normal="10" /> + <height normal="22" /> + </collision> + </npc> <npc id="8983" displayId="21804" name="Chest" usingServerSideName="true" title="THunt" usingServerSideTitle="true" type="L2Monster"> <sex>MALE</sex> <stats str="10" int="10" dex="10" wit="10" con="10" men="10"> Creditos: L2fuLL
  3. Quando cria um botão no programa ele não mostra como deveria ficar in game, não usei muito tempo mas deve haver mais alguns bugs.
  4. Esse programa é apenas um editor de html, bem útil mas meio bugadinho ainda. DOWNLOAD
  5. Só uma duvida, lembro que a versão antes da key tava com o .getreward bugado, sabe se essa source ta assim?
  6. Quando importava o projeto no eclipse, ele automaticamente criava outro arquivo que impedia de compilar, mas ja resolvi.
  7. Alguem sabe corrigir esse problema ao compilar o core? Só tenho esse erro ao compilar o core, o data compila normal.
  8. Eu estou afim de começar a mexer em interlude pvp, mas pra isso preciso saber quais os principais problemas das sources acis, frozen e mobius que precisa de atenção.
  9. Falo das outras html como gmshop, gk...
  10. Você tem ou sabe onde baixar os outros arquivos além do index?
  11. Não recomendo low rate com sunrise, mas para mid e high é a melhor em custo benefício, sou usuário snv deles a uns 3 anos e só agora que estão realmente fazendo correções de bugs com mais frequência.
  12. Parte do html do buff é no java, então tem que mexer lá tbm.
  13. Se for npc com aparencia de player procura tabela com nome de fakes alguma coisa, se tiver usando a versão xml todos os npcs ficam em "game/data/xml/stats/npc..."
  14. Se ninguém fizer até sábado, manda mensagem no privado pra mim.
×
×
  • Create New...