Ir para conteúdo
  • Cadastre-se

-= JRGames =-

Sup. Membro
  • Total de itens

    510
  • Registro em

  • Última visita

  • Prêmios recebidos

    7

Tudo que -= JRGames =- postou

  1. OLHA NA AREA DE JAVA MODS QUE VAI ENCONTRA ALEN DELE VARIOS OUTROS BONS.
  2. procure por l2tools extrai tudo de todas as cronicas
  3. eu uso este para ver e extrair L2ViewUTX.zip
  4. -= JRGames =-

    sobre respaw

    creio que não melhor criar uma variável só para a parte mesmo.
  5. -= JRGames =-

    sobre respaw

    Sua Revisão e a L2jMegaPack. Procure nas config por: CheckPartyInvite coloque True e tambem tem a opção DisablePartyFlagZone coloque true tambem.
  6. tem varias maneiras de fazer isso e já tem alguns tópicos com esse mod se olhar bem no fórum vai achar Segue Alguns Links [Hidden Content]
  7. Index: net.sf.l2j;Config.java =================================================================== --- net.sf.l2j;Config.java (revision 84) +++ net.sf.l2j;Config.java (working copy) + public static final String ITEMS_HANDER_FILE = "./config/aCis/ItemsHander.properties"; + /** COMBATE Hero Settings */ + public static boolean ENABLE_HERO_COIN; + + + public static int HERO_COIN_ID_7DAYS; + public static int HERO_COIN_7DAYS; + + public static int HERO_COIN_ID_15DAYS; + public static int HERO_COIN_15DAYS; + + public static int HERO_COIN_ID_30DAYS; + public static int HERO_COIN_30DAYS; + + public static int HERO_COIN_ID_ETERNAL; + public static int HERO_COIN_ETERNAL; + + public static int HERO_ITEM_ID; + private static final void loadItemHander() + { + final ExProperties ItemHander = initProperties(ITEMS_HANDER_FILE); + + + ENABLE_HERO_COIN = ItemHander.getProperty("EnableHeroCoin", false); + + HERO_COIN_ID_7DAYS = ItemHander.getProperty("Hero7DaysId", 10); + HERO_COIN_7DAYS = ItemHander.getProperty("SetHero7Days", 10); + + HERO_COIN_ID_15DAYS = ItemHander.getProperty("Hero15DaysId", 10); + HERO_COIN_15DAYS = ItemHander.getProperty("SetHero15Days", 10); + + HERO_COIN_ID_30DAYS = ItemHander.getProperty("Hero30DaysId", 10); + HERO_COIN_30DAYS = ItemHander.getProperty("SetHero30Days", 10); + + HERO_COIN_ID_ETERNAL = ItemHander.getProperty("HeroEternalId", 10); + HERO_COIN_ETERNAL = ItemHander.getProperty("SetHeroEternal", 10); + + + HERO_ITEM_ID = ItemHander.getProperty("RewardHeroItemId", 10); + + + } - // players settings - loadPlayers(); + // players settings + loadPlayers(); + loadItemHander(); Index: Dev/HeroItem/HeroTaskManager.java =================================================================== --- Dev/HeroItem/HeroTaskManager.java (revision 84) +++ Dev/HeroItem/HeroTaskManager.java (working copy) + package Dev.HeroItem; + + import java.util.Map; + import java.util.concurrent.ConcurrentHashMap; + + import net.sf.l2j.commons.concurrent.ThreadPool; + + import net.sf.l2j.gameserver.model.actor.Creature; + import net.sf.l2j.gameserver.model.actor.Player; + + /** + * @author COMBATE + * + */ + public final class HeroTaskManager implements Runnable + { + private final Map<Player, Long> _players = new ConcurrentHashMap<>(); + + protected HeroTaskManager() + { + // Run task each 10 second. + ThreadPool.scheduleAtFixedRate(this, 1000, 1000); + } + + public final void add(Player player) + { + _players.put(player, System.currentTimeMillis()); + } + + public final void remove(Creature player) + { + _players.remove(player); + } + + @Override + public final void run() + { + if (_players.isEmpty()) + return; + + for (Map.Entry<Player, Long> entry : _players.entrySet()) + { + final Player player = entry.getKey(); + + if (player.getMemos().getLong("heroEndTime") < System.currentTimeMillis()) + { + AdminSetHero.removeHero(player, player); + remove(player); + } + } + } + + public static final HeroTaskManager getInstance() + { + return SingletonHolder._instance; + } + + private static class SingletonHolder + { + protected static final HeroTaskManager _instance = new HeroTaskManager(); + } + } + Index: Dev/HeroItem/AdminSetHero.java =================================================================== --- Dev/HeroItem/AdminSetHero.java (revision 84) +++ Dev/HeroItem/AdminSetHero.java (working copy) + package Dev.HeroItem; + + import java.util.StringTokenizer; + import java.util.concurrent.TimeUnit; + + import net.sf.l2j.commons.concurrent.ThreadPool; + + import net.sf.l2j.Config; + import net.sf.l2j.gameserver.enums.SayType; + import net.sf.l2j.gameserver.handler.IAdminCommandHandler; + import net.sf.l2j.gameserver.model.World; + import net.sf.l2j.gameserver.model.actor.Player; + import net.sf.l2j.gameserver.network.serverpackets.CreatureSay; + import net.sf.l2j.gameserver.network.serverpackets.SocialAction; + + /** + * @author COMBATE + * + */ + public class AdminSetHero implements IAdminCommandHandler + { + private static String[] _adminCommands = new String[] + { + "admin_sethero", + "admin_nohero" + }; + + @Override + public boolean useAdminCommand(String command, Player activeChar) + { + StringTokenizer st = new StringTokenizer(command); + st.nextToken(); + String player = ""; + int time = 1; + Player target = null; + if (st.hasMoreTokens()) + { + player = st.nextToken(); + target = World.getInstance().getPlayer(player); + if (st.hasMoreTokens()) + { + try + { + time = Integer.parseInt(st.nextToken()); + } + catch (NumberFormatException nfe) + { + activeChar.sendMessage("Invalid number format used: " + nfe); + return false; + } + } + } + else if (activeChar.getTarget() != null && activeChar.getTarget() instanceof Player) + target = (Player) activeChar.getTarget(); + + if (command.startsWith("admin_sethero")) + { + if (target == null && player.equals("")) + { + activeChar.sendMessage("Usage: //hero <char_name> [duration_days]"); + return false; + } + if (target != null) + { + AdminSetHero.doHero(target, activeChar, time); + activeChar.sendMessage(target.getName() + " Comando /hero Liberado! "); + activeChar.sendMessage(target.getName() + " got Hero status for " + time + " day(s)."); + } + } + else if (command.startsWith("admin_nohero")) + { + if (target == null && player.equals("")) + { + activeChar.sendMessage("Usage: //nohero <char_name>"); + return false; + } + if (target != null) + { + if (target.isHero()) + { + AdminSetHero.removeHero(target, activeChar); + activeChar.sendMessage("Removed the Hero status from " + target.getName() + "."); + } + activeChar.sendMessage(target.getName() + " haven't Hero status."); + } + } + return true; + } + + public static void doHero(Player target, Player player, int time) + { + target.getStat().addExp(target.getStat().getExpForLevel(81)); + target.broadcastPacket(new SocialAction(target, 3)); + target.setHero(true); + + HeroTaskManager.getInstance().add(target); + long remainingTime = target.getMemos().getLong("heroEndTime", 0); + if (remainingTime > 0) + { + target.getMemos().set("heroEndTime", remainingTime + TimeUnit.DAYS.toMillis(time)); + target.sendPacket(new CreatureSay(0, SayType.HERO_VOICE, "Hero Manager", "Dear " + player.getName() + ", your Hero status has been extended by " + time + " day(s).")); + } + else + { + target.getMemos().set("heroEndTime", System.currentTimeMillis() + TimeUnit.DAYS.toMillis(time)); + target.sendPacket(new CreatureSay(0, SayType.HERO_VOICE, "Hero Manager", "Dear " + player.getName() + ", you got Hero Status for " + time + " day(s).")); + + if (Config.HERO_ITEM_ID != 0) + { + target.addItem("Add", Config.HERO_ITEM_ID, 1, target, true); + target.getInventory().equipItemAndRecord(target.getInventory().getItemByItemId(Config.HERO_ITEM_ID)); + } + target.setHero(true); + target.broadcastUserInfo(); + } + } + + public static void removeHero(Player target, Player player) + { + HeroTaskManager.getInstance().remove(target); + target.getMemos().set("heroEndTime", 0); + target.setHero(false); + + if (Config.HERO_ITEM_ID != 0) + target.destroyItemByItemId("Destroy", Config.HERO_ITEM_ID, 1, target, true); + + target.sendPacket(new CreatureSay(0, SayType.HERO_VOICE, "Hero Manager", "Dear " + player.getName() + ", Your Hero period is over. You will be disconected in 3 seconds.")); + target.broadcastPacket(new SocialAction(target, 13)); + target.sendSkillList(); + target.broadcastUserInfo(); + ThreadPool.schedule(() -> target.logout(false), 3000); + } + + @Override + public String[] getAdminCommandList() + { + return _adminCommands; + } + } + Index: Dev/HeroItem/HeroMenu.java =================================================================== --- Dev/HeroItem/HeroMenu.java (revision 84) +++ Dev/HeroItem/HeroMenu.java (working copy) + package Dev.HeroItem; + + import java.text.SimpleDateFormat; + import java.util.StringTokenizer; + import java.util.concurrent.TimeUnit; + + import net.sf.l2j.gameserver.data.xml.TeleportLocationData; + import net.sf.l2j.gameserver.handler.IUserCommandHandler; + import net.sf.l2j.gameserver.model.actor.Player; + import net.sf.l2j.gameserver.model.location.TeleportLocation; + import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; + import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; + + /** + * @author COMBATE + * + */ + public class HeroMenu implements IUserCommandHandler + { + private static final int[] COMMAND_IDS = + { + 305 + }; + + @Override + + public void useUserCommand(int command, Player activeChar) + { + mainHtml(activeChar, 0); + return; + } + + + public static void mainHtml(Player activeChar, int time) + { + NpcHtmlMessage nhm = new NpcHtmlMessage(5); + StringBuilder html = new StringBuilder(""); + html.append("<html><head><title>Hero Menu</title></head><body><center>"); + html.append("<img src=\"SS_l2jNetwork.lineo\" width=300 height=3>"); + html.append("<table width=305 height=20 bgcolor=000000>"); + html.append("<tr>"); + html.append("<td align=center>Personal HERO Options</td>"); + html.append("</tr>"); + html.append("</table>"); + html.append("<img src=\"SS_l2jNetwork.lineo\" width=300 height=3>"); + if (activeChar.isHero()) + { + html.append("<br><br>"); + html.append(""); + html.append(""); + html.append("<br>"); + html.append("<img src=\"SS_l2jNetwork.lineo\" width=300 height=3>"); + html.append("<table width=305 height=20 bgcolor=000000>"); + html.append("<tr>"); + html.append("<td align=center>Color Name Options</td>"); + html.append("</tr>"); + html.append("</table>"); + html.append("<img src=\"SS_l2jNetwork.lineo\" width=300 height=3>"); + html.append("<br><br>"); + html.append("<a action=\"bypass -h heropanel color Green\" <font color=\"009900\">Green</font></a>"); + html.append("<a action=\"bypass -h heropanel color Blue\" <font color=\"3333ff\">Blue</font></a>"); + html.append("<a action=\"bypass -h heropanel color Purple\" <font color=\"800080\">Purple</font></a>"); + html.append("<a action=\"bypass -h heropanel color Yellow\" <font color=\"ffff00\">Yellow</font></a>"); + html.append("<a action=\"bypass -h heropanel color Gold\" <font color=\"cca300\">Gold</font></a>"); + html.append("<br><br><br>"); + html.append("<img src=\"SS_l2jNetwork.lineo\" width=300 height=3>"); + html.append("<table width=310 height=20 bgcolor=000000>"); + html.append("<tr>"); + html.append("<td align=center>Your HERO Status Period:</td>"); + html.append("</tr>"); + html.append("</table>"); + html.append("<img src=\"SS_l2jNetwork.lineo\" width=300 height=3>"); + long delay = activeChar.getMemos().getLong("heroEndTime", 0); + html.append("HERO Status ends at " + new SimpleDateFormat("dd-MM-yyyy HH:mm").format(delay) + ""); + } + else + { + html.append("<br>"); + html.append("Your character Isn't HERO."); + } + html.append("</center>"); + html.append("</body></html>"); + nhm.setHtml(html.toString()); + activeChar.sendPacket(nhm); + return; + } + + public static void Time(Player player, int time) + { + player.getMemos().set("heroEndTime", System.currentTimeMillis() + TimeUnit.DAYS.toMillis(time)); + } + + public static void bypass(Player activeChar, String command, StringTokenizer st) + { + if (command.equals("panelteleport")) + { + NpcHtmlMessage nhm = new NpcHtmlMessage(5); + StringBuilder html = new StringBuilder(""); + html.append("<html><head><title>AIO Teleport Menu</title></head><body><center>"); + html.append("<img src=\"SS_l2jNetwork.lineo\" width=300 height=3>"); + html.append("<table width=315 height=20 bgcolor=000000>"); + html.append("<tr>"); + html.append("<td align=center>Choose your destination</td>"); + html.append("</tr>"); + html.append("</table>"); + html.append("<img src=\"SS_l2jNetwork.lineo\" width=300 height=3>"); + if (activeChar.isHero()) + { + html.append("<br><br>"); + html.append("<button value=\"Giran\" action=\"bypass -h heropanel teleportTo 1040\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Goddard\" action=\"bypass -h heropanel teleportTo 1039\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Rune\" action=\"bypass -h heropanel teleportTo 1041\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Aden\" action=\"bypass -h heropanel teleportTo 1037\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Dion\" action=\"bypass -h heropanel teleportTo 6\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Gludio\" action=\"bypass -h heropanel teleportTo 1099\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Gludin\" action=\"bypass -h heropanel teleportTo 5\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Heine\" action=\"bypass -h heropanel teleportTo 1036\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Oren\" action=\"bypass -h heropanel teleportTo 1038\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<button value=\"Schuttgart\" action=\"bypass -h heropanel teleportTo 1035\" width=122 height=23 fore=\"SS_l2jBan.bf\" back=\"SS_l2jBan.bf\">"); + html.append("<br><br>"); + } + else + { + html.append("<br>"); + html.append("Your character Isn't HERO."); + } + html.append("</center>"); + html.append("</body></html>"); + nhm.setHtml(html.toString()); + activeChar.sendPacket(nhm); + } + else if (command.equals("teleportTo")) + { + final TeleportLocation list = TeleportLocationData.getInstance().getTeleportLocation(Integer.parseInt(st.nextToken())); + if (list != null) + { + if (activeChar.reduceAdena("Teleport", list.getPrice(), activeChar, true)) + activeChar.teleportTo(list, 0); + } + else + activeChar.sendMessage("No teleport destination. Contact with server Admin"); + + activeChar.sendPacket(ActionFailed.STATIC_PACKET); + } + else if (command.equals("color")) + + { + NpcHtmlMessage nhm = new NpcHtmlMessage(5); + StringBuilder html = new StringBuilder(""); + String type = st.nextToken(); + + switch (type) + { + case "Green": + + activeChar.getAppearance().setNameColor(0x009900); + activeChar.broadcastUserInfo(); + activeChar.sendMessage("Your color name has changed!"); + nhm.setHtml(html.toString()); + activeChar.sendPacket(nhm); + break; + case "Blue": + + activeChar.getAppearance().setNameColor(0xff7f00); + activeChar.broadcastUserInfo(); + activeChar.sendMessage("Your color name has changed!"); + nhm.setHtml(html.toString()); + activeChar.sendPacket(nhm); + break; + case "Purple": + + activeChar.getAppearance().setNameColor(0x800080); + activeChar.broadcastUserInfo(); + activeChar.sendMessage("Your color name has changed!"); + nhm.setHtml(html.toString()); + activeChar.sendPacket(nhm); + break; + case "Yellow": + + activeChar.getAppearance().setNameColor(0x00ffff); + activeChar.broadcastUserInfo(); + activeChar.sendMessage("Your color name has changed!"); + nhm.setHtml(html.toString()); + activeChar.sendPacket(nhm); + break; + case "Gold": + + activeChar.getAppearance().setNameColor(0x0099ff); + activeChar.broadcastUserInfo(); + activeChar.sendMessage("Your color name has changed!"); + nhm.setHtml(html.toString()); + activeChar.sendPacket(nhm); + break; + } + } + } + + + @Override + public int[] getUserCommandList() + { + return COMMAND_IDS; + } + } + Index: Dev/HeroItem/Hero7Days.java =================================================================== --- Dev/HeroItem/Hero7Days.java (revision 84) +++ Dev/HeroItem/Hero7Days.java (working copy) + package Dev.HeroItem; + + import net.sf.l2j.Config; + import net.sf.l2j.gameserver.handler.IItemHandler; + import net.sf.l2j.gameserver.model.actor.Playable; + import net.sf.l2j.gameserver.model.actor.Player; + import net.sf.l2j.gameserver.model.item.instance.ItemInstance; + import net.sf.l2j.gameserver.model.olympiad.OlympiadManager; + import net.sf.l2j.gameserver.network.SystemMessageId; + import net.sf.l2j.gameserver.network.serverpackets.SocialAction; + + /** + * @author COMBATE + * + */ + public class Hero7Days implements IItemHandler + { + private static final int[] ITEM_IDS = new int[] + { + Config.HERO_COIN_ID_7DAYS + }; + + @Override + public void useItem(Playable playable, ItemInstance item, boolean forceUse) + { + + if (Config.ENABLE_HERO_COIN) + { + if (!(playable instanceof Player)) + return; + + Player player = (Player) playable; + if (player.isHero()) + player.sendMessage("Comando /hero Liberado!"); + + else if (player.isInOlympiadMode() || OlympiadManager.getInstance().isRegisteredInComp(player)) + player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); + else if (player.destroyItemByItemId("hero", Config.HERO_COIN_ID_7DAYS, 1, null, true)) + AdminSetHero.doHero(player, player, Config.HERO_COIN_7DAYS); + HeroMenu.mainHtml(player, 0); + } + } + + public static void RemoveHeroStatus(Player target) + { + HeroTaskManager.getInstance().remove(target); + target.getMemos().set("heroEndTime", 0); + target.setHero(false); + target.broadcastPacket(new SocialAction(target, 13)); + target.broadcastUserInfo(); + } + + public int[] getItemIds() + { + return ITEM_IDS; + } + } + Index: Dev/HeroItem/Hero15Days.java =================================================================== --- Dev/HeroItem/Hero15Days.java (revision 84) +++ Dev/HeroItem/Hero15Days.java (working copy) + package Dev.HeroItem; + + import net.sf.l2j.Config; + import net.sf.l2j.gameserver.handler.IItemHandler; + import net.sf.l2j.gameserver.model.actor.Playable; + import net.sf.l2j.gameserver.model.actor.Player; + import net.sf.l2j.gameserver.model.item.instance.ItemInstance; + import net.sf.l2j.gameserver.model.olympiad.OlympiadManager; + import net.sf.l2j.gameserver.network.SystemMessageId; + import net.sf.l2j.gameserver.network.serverpackets.SocialAction; + + /** + * @author COMBATE + * + */ + public class Hero15Days implements IItemHandler + { + private static final int[] ITEM_IDS = new int[] + { + Config.HERO_COIN_ID_15DAYS + }; + + @Override + public void useItem(Playable playable, ItemInstance item, boolean forceUse) + { + + if (Config.ENABLE_HERO_COIN) + { + if (!(playable instanceof Player)) + return; + + Player player = (Player) playable; + if (player.isHero()) + player.sendMessage("Comando /hero Liberado!"); + + else if (player.isInOlympiadMode() || OlympiadManager.getInstance().isRegisteredInComp(player)) + player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); + else if (player.destroyItemByItemId("hero", Config.HERO_COIN_ID_15DAYS, 1, null, true)) + AdminSetHero.doHero(player, player, Config.HERO_COIN_15DAYS); + HeroMenu.mainHtml(player, 0); + } + } + + public static void RemoveHeroStatus(Player target) + { + HeroTaskManager.getInstance().remove(target); + target.getMemos().set("heroEndTime", 0); + target.setHero(false); + target.broadcastPacket(new SocialAction(target, 13)); + target.broadcastUserInfo(); + } + + public int[] getItemIds() + { + return ITEM_IDS; + } + } + Index: Dev/HeroItem/Hero30Days.java =================================================================== --- Dev/HeroItem/Hero30Days.java (revision 84) +++ Dev/HeroItem/Hero30Days.java (working copy) + package Dev.HeroItem; + + import net.sf.l2j.Config; + import net.sf.l2j.gameserver.handler.IItemHandler; + import net.sf.l2j.gameserver.model.actor.Playable; + import net.sf.l2j.gameserver.model.actor.Player; + import net.sf.l2j.gameserver.model.item.instance.ItemInstance; + import net.sf.l2j.gameserver.model.olympiad.OlympiadManager; + import net.sf.l2j.gameserver.network.SystemMessageId; + import net.sf.l2j.gameserver.network.serverpackets.SocialAction; + + /** + * @author COMBATE + * + */ + public class Hero30Days implements IItemHandler + { + private static final int[] ITEM_IDS = new int[] + { + Config.HERO_COIN_ID_30DAYS + }; + + @Override + public void useItem(Playable playable, ItemInstance item, boolean forceUse) + { + + if (Config.ENABLE_HERO_COIN) + { + if (!(playable instanceof Player)) + return; + + Player player = (Player) playable; + if (player.isHero()) + player.sendMessage("Comando /hero Liberado!"); + + else if (player.isInOlympiadMode() || OlympiadManager.getInstance().isRegisteredInComp(player)) + player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); + else if (player.destroyItemByItemId("hero", Config.HERO_COIN_ID_30DAYS, 1, null, true)) + AdminSetHero.doHero(player, player, Config.HERO_COIN_30DAYS); + HeroMenu.mainHtml(player, 0); + } + } + + public static void RemoveHeroStatus(Player target) + { + HeroTaskManager.getInstance().remove(target); + target.getMemos().set("heroEndTime", 0); + target.setHero(false); + target.broadcastPacket(new SocialAction(target, 13)); + target.broadcastUserInfo(); + } + + public int[] getItemIds() + { + return ITEM_IDS; + } + } Index: Dev/HeroItem/HeroEternal.java =================================================================== --- Dev/HeroItem/HeroEternal.java (revision 84) +++ Dev/HeroItem/HeroEternal.java (working copy) + package Dev.HeroItem; + + import net.sf.l2j.Config; + import net.sf.l2j.gameserver.handler.IItemHandler; + import net.sf.l2j.gameserver.model.actor.Playable; + import net.sf.l2j.gameserver.model.actor.Player; + import net.sf.l2j.gameserver.model.item.instance.ItemInstance; + import net.sf.l2j.gameserver.model.olympiad.OlympiadManager; + import net.sf.l2j.gameserver.network.SystemMessageId; + import net.sf.l2j.gameserver.network.serverpackets.SocialAction; + + /** + * @author COMBATE + * + */ + public class HeroEternal implements IItemHandler + { + private static final int[] ITEM_IDS = new int[] + { + Config.HERO_COIN_ID_ETERNAL + }; + + @Override + public void useItem(Playable playable, ItemInstance item, boolean forceUse) + { + + if (Config.ENABLE_HERO_COIN) + { + if (!(playable instanceof Player)) + return; + + Player player = (Player) playable; + if (player.isHero()) + player.sendMessage("Comando /hero Liberado!"); + + else if (player.isInOlympiadMode() || OlympiadManager.getInstance().isRegisteredInComp(player)) + player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); + else if (player.destroyItemByItemId("hero", Config.HERO_COIN_ID_ETERNAL, 1, null, true)) + AdminSetHero.doHero(player, player, Config.HERO_COIN_ETERNAL); + HeroMenu.mainHtml(player, 0); + } + } + + public static void RemoveHeroStatus(Player target) + { + HeroTaskManager.getInstance().remove(target); + target.getMemos().set("heroEndTime", 0); + target.setHero(false); + target.broadcastPacket(new SocialAction(target, 13)); + target.broadcastUserInfo(); + } + + public int[] getItemIds() + { + return ITEM_IDS; + } + } + Index: net.sf.l2j.gameserver.network.clientpackets;RequestBypassToServer.java =================================================================== --- net.sf.l2j.gameserver.network.clientpackets;RequestBypassToServer.java (revision 84) +++ net.sf.l2j.gameserver.network.clientpackets;RequestBypassToServer.java (working copy) + if (_command.startsWith("heropanel")) + { + String value = _command.substring(8); + StringTokenizer st = new StringTokenizer(value); + String command = st.nextToken(); + + HeroMenu.bypass(player, command, st); + } Index: net.sf.l2j.gameserver.network.clientpackets;EnterWorld.java =================================================================== --- net.sf.l2j.gameserver.network.clientpackets;EnterWorld.java (revision 84) +++ net.sf.l2j.gameserver.network.clientpackets;EnterWorld.java (working copy) + import Dev.HeroItem.Hero7Days; + import Dev.HeroItem.HeroMenu; if (player.getMemos().getLong("vipTime", 0) > 0) + if (player.getMemos().getLong("heroEndTime", 0) > 0) + onEnterHero(player); + private static void onEnterHero(Player activeChar) + { + long now = Calendar.getInstance().getTimeInMillis(); + long endDay = activeChar.getMemos().getLong("heroEndTime"); + + if (now > endDay) + Hero7Days.RemoveHeroStatus(activeChar); + else + { + + activeChar.setHero(true); + activeChar.broadcastUserInfo(); + HeroMenu.mainHtml(activeChar, 0); + sendReEnterMessageHero(activeChar); + + } + } + private static void sendReEnterMessageHero(Player player) + { + long delay = player.getMemos().getLong("heroEndTime", 0); + + player.sendMessage("Hero Ends In: " + new SimpleDateFormat("dd-MM-yyyy HH:mm").format(delay) + ""); + + } Index: net.sf.l2j.gameserver.model.actor;Player.java =================================================================== --- net.sf.l2j.gameserver.model.actor;Player.java (revision 84) +++ net.sf.l2j.gameserver.model.actor;Player.java (working copy) Index: Apenas Comfirme se existe! se não adicione + private boolean _isHero; + + + public boolean isHero() + { + return _isHero; + } + + + public void setHero(boolean hero) + { + if (hero && _baseClass == _activeClass) + { + for (L2Skill skill : SkillTable.getHeroSkills()) + addSkill(skill, false); + } + else + { + for (L2Skill skill : SkillTable.getHeroSkills()) + removeSkill(skill.getId(), false); + + HeroTaskManager.getInstance().remove(this); + getMemos().set("heroEndTime", 0); + } + _isHero = hero; + + broadcastUserInfo(); + sendSkillList(); + } Index: Referencia pra adicionar public void onPlayerEnter() + if (isHero()) + HeroTaskManager.getInstance().add(this); Index: Referencia // Stop all timers associated to that Player. - PvpFlagTaskManager.getInstance().remove(this); + PvpFlagTaskManager.getInstance().remove(this); + HeroTaskManager.getInstance().remove(this); Index: Referencia private void regiveTemporarySkills() { + // Add Hero skills if hero. + if (isHero()) + setHero(true); Index: Referencia pra adicionar PreparedStatement ps = con.prepareStatement(RESTORE_CHARACTER)) - // Set the position of the Player. - player.getPosition().set(rs.getInt("x"), rs.getInt("y"), rs.getInt("z"), rs.getInt("heading")); + // Set the position of the Player. + player.getPosition().set(rs.getInt("x"), rs.getInt("y"), rs.getInt("z"), rs.getInt("heading")); + // Set Hero status if it applies + if (HeroManager.getInstance().isActiveHero(objectId)) + player.setHero(true); Index: net.sf.l2j.gameserver.handler;AdminCommandHandler.java =================================================================== --- net.sf.l2j.gameserver.handler;AdminCommandHandler.java (revision 84) +++ net.sf.l2j.gameserver.handler;AdminCommandHandler.java (working copy) + import Dev.HeroItem.AdminSetHero; - registerHandler(new AdminTeleport()); + registerHandler(new AdminTeleport()); + registerHandler(new AdminSetHero()); Index: net.sf.l2j.gameserver.handler;ItemHandler.java =================================================================== --- net.sf.l2j.gameserver.network.clientpackets;ItemHandler.java (revision 84) +++ net.sf.l2j.gameserver.network.clientpackets;ItemHandler.java (working copy) + import Dev.HeroItem.Hero15Days; + import Dev.HeroItem.Hero30Days; + import Dev.HeroItem.Hero7Days; + import Dev.HeroItem.HeroEternal; + registerHandler(new Hero7Days()); + registerHandler(new Hero15Days()); + registerHandler(new Hero30Days()); + registerHandler(new HeroEternal()); Index: data/xml/adminCommands.xml =================================================================== --- data/xml/adminCommands.xml (revision 84) +++ data/xml/adminCommands.xml (working copy) - <!-- OLYMPIADS --> - <aCar name="admin_addolypoints" accessLevel="7"/> - <aCar name="admin_removeolypoints" accessLevel="7"/> - <aCar name="admin_endoly" accessLevel="7"/> + <aCar name="admin_sethero" accessLevel="7"/> + <aCar name="admin_nohero" accessLevel="7"/> - <aCar name="admin_setnoble" accessLevel="7"/> Leia ele e use a parte que desejar nem todo e necessário dependendo do que já tiver no seu servidor
  8. escolha um que não vai te dar dor de cabeça [Hidden Content]
  9. pode ser a quantidade de ID que não e suportada, ou algum erro no npcname-e uma , um . algo assim que ate mesmo o Espaço ja da este erro
  10. Tente Deste modelo creio que vai da certo pra você, um Exemplo com o peito TT normal para o peito Pvp chamado da html <a action="bypass -h npc_%objectId%_exc_multisell 999">Armors PvP </a> xml multisell <?xml version='1.0' encoding='utf-8'?> <list maintainEnchantment="true"> <!-- Armor PvP: Titanium Hearvy --> <item id="1"> <ingredient id="9822" count="10"/> <!-- coin boss --> <ingredient id="9301" count="1"/> <!-- Peito TT Normal --> <production id="9390" count="1"/> <!-- Peito TT Pvp --> </item> </list> Nesta caso caso o Peito normal estiver +15 quando compra o peito Pvp vai mater o enchant +15 Ou seja não perde o enchant, e so ira aparecer no npc merchant se o player estiver com o peito na bega
  11. o ban ja te mando o código em outro tópico
  12. -= JRGames =-

    Hero visual

    sim. DOWNLOAD DO PROGRAMA
  13. qual reve q quer adcionar ?
  14. estamos com versões diferentes da pack a sua deve estar em CustomZone.xml ou PvPZone.xml mude os spawns de ketra e teste
  15. a primeira não sei te informar ao certo. a Segunda e só você mudar os Spawn da zona, vai em ( game\data\xml\zones ) arquivo SoloZone.xml e mude os Spawn da área que deseja
  16. foi compilado com recursos de visualização que não são suportados. Foi compilado com Java errado coloque o certo da revisão que ele liga.
  17. Em HeroItem.java este está para 7 dias. pode mudar em " int days = 7; " + long remainingTime = activeChar.getMemos().getLong("heroTime", 0); + int days = 7;
  18. e a questão das oly com a nova classe vai bloquear as skills de mago ?
  19. posta o erro que ta tendo que tento te ajudar
×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.