Jump to content

tensador27

Members
  • Posts

    25
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

2 Followers

About tensador27

Profile Information

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

tensador27's Achievements

Explorer

Explorer (4/16)

  • Collaborator Rare
  • First Post Rare
  • Reacting Well Rare
  • Dedicated Rare
  • Conversation Starter Rare

Recent Badges

3

Reputation

  1. hello I was looking for something similar to that code in frozen but the closest thing I found was this but I can't find something that says how much slot it shows depending on the class level L2PcInstance /** * Return the number of Henna empty slot of the L2PcInstance.<BR> * <BR> * @return the henna empty slots */ public int getHennaEmptySlots() { int totalSlots = 1 + getClassId().level(); for (int i = 0; i < 3; i++) { if (_henna[i] != null) { totalSlots--; } } if (totalSlots <= 0) { return 0; } return totalSlots; } and something that I forgot to say the npc adds them to the dyes but does not show them in the inventory
  2. does not show the dye bar https://prnt.sc/4988fu Hello, I am adding a new class, everything works fine, but the dye bar is not added where it should be added so that the new class shows the bar.
  3. hello, sorry, the nuisance, I managed to make the npc only see the one who calls them and that they disappear 60 seconds after using the item, I also made it so that they cannot spam the item but I can't get the npc to be automatically deleted when moving the player because I don't know where the player's movement is this is how spawnservitors is public void spawnServitors() { /** The _player. */ final L2PcInstance _player; _player = L2PcInstance.this; InstanceManager.getInstance().createInstance(getObjectId()); L2Spawn servitor; float angle = Rnd.get(1000); int sCount = 4; for (int i = 0; i < sCount; i++) { final L2Spawn npc = servitor = getNpcServitor(i); if (servitor != null) { servitor.setInstanceId(getObjectId()); _player.setInstanceId(_player.getObjectId()); _player.getAppearance().setInvisible(); servitor.setLocx(Math.round(getX() + (float) Math.cos(angle / 1000 * 2 * Math.PI) * 30)); servitor.setLocy(Math.round(getY() + (float) Math.sin(angle / 1000 * 2 * Math.PI) * 65)); servitor.setLocz(getZ()); int heading = (int) Math.round(Math.atan2(getY() - servitor.getLocy(), getX() - servitor.getLocx()) / Math.PI * 32768); if (heading < 0) { heading = 65535 + heading; } servitor.setHeading(heading); if (InstanceManager.getInstance().getInstance(getObjectId()) != null) { servitor.doSpawn(); ThreadPoolManager.getInstance().scheduleGeneral(() -> npc.getLastSpawn().decayMe(), 60000); } if (_player.isMoving() || !isInsideRadius(_player, Config.NPC_MAGIC_GEM_RADIUS, false, false)) { ThreadPoolManager.getInstance().scheduleGeneral(() -> npc.getLastSpawn().decayMe(), 1000); _player.setInstanceId(0); } } angle += 1000 / sCount; } } and this is the part of the item if (!player.getFloodProtectors().getMagicGem().tryPerformAction("Magic Gem")) { return; } if (!GrandBossManager.getInstance().checkIfInZone(null, player) && player.getInstanceId() == 0 && !player.isInsideZone(ZoneId.ZONE_PVP) && (!player.isInsideZone(ZoneId.ZONE_NOSUMMONFRIEND) || !player.isInsideZone(ZoneId.ZONE_TOWN)) && !player.isInOlympiadMode() && !AttackStanceTaskManager.getInstance().getAttackStanceTask(player) && InstanceManager.getInstance().getInstance(player.getObjectId()) == null && player.getPvpFlag() == 0) { player.spawnServitors(); player.sendMessage("You use a Magic Gem."); ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() { @Override public void run() { player.setInstanceId(0); player.getAppearance().setVisible(); } }, 59000); } else { player.sendMessage("You cannot use a Magic Gem right now."); }
  4. Thanks for the help I will try to do it and now it is only that after 60 seconds the npc will be deleted by themselves
  5. Is there something in acis to guide me in attaching the npc to the player?
  6. hello i found the magic gem code from the source l2jtenkai and i wanted to try it in interlude but i have some problems I don't know how to make it only be used once to avoid spam and if the player moves the npc disappear I leave a video for you to see https://www.youtube.com/watch?v=BRpk92UzuLc&feature=youtu.be Item MagicGem.java package net.sf.l2j.gameserver.handler.itemhandlers; import net.sf.l2j.A.Instance.InstanceManager; import net.sf.l2j.gameserver.data.xml.SummonItemData; import net.sf.l2j.gameserver.enums.ZoneId; 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.holder.IntIntHolder; import net.sf.l2j.gameserver.model.item.instance.ItemInstance; import net.sf.l2j.gameserver.network.SystemMessageId; public class MagicGem implements IItemHandler { @Override public void useItem(Playable playable, ItemInstance item, boolean forceUse) { if (!(playable instanceof Player)) { return; } Player player = (Player) playable; if (player.isSitting()) { player.sendPacket(SystemMessageId.CANT_MOVE_SITTING); return; } if (player.isMoving()) { player.sendPacket(SystemMessageId.CANNOT_EXCHANCE_USED_ITEM); return; } if (player.isInObserverMode()) return; if (player.isAllSkillsDisabled() || player.getCast().isCastingNow()) return; final IntIntHolder sitem = SummonItemData.getInstance().getSummonItem(item.getItemId()); if ((player.getSummon() != null || player.isMounted()) && sitem.getValue() > 0) { player.sendPacket(SystemMessageId.SUMMON_ONLY_ONE); return; } if (player.getAttack().isAttackingNow()) { player.sendPacket(SystemMessageId.YOU_CANNOT_SUMMON_IN_COMBAT); return; } if (player.getInstanceId() == 0 && !player.isInsideZone(ZoneId.PVP) && (!player.isInsideZone(ZoneId.NO_SUMMON_FRIEND) || !player.isInOlympiadMode() && InstanceManager.getInstance().getInstance(player.getObjectId()) == null && player.getPvpFlag() == 0)){ player.spawnServitors(); player.sendMessage("You use a Magic Gem."); } else { player.sendMessage("You cannot use a Magic Gem right now."); } return; } } Player.java public void spawnServitors() { _instance = InstanceManager.getInstance().createInstance(); Spawn servitor; float angle = Rnd.get(1000); int sCount = 4; int lifeTime = 60; for (int i = 0; i < sCount; i++) { servitor = getNpcServitor(i); if (servitor != null) { servitor.setInstanceId(_instance.getId()); servitor.setLoc(Math.round(getX() + (float) Math.cos(angle / 1000 * 2 * Math.PI) * 30), Math.round(getY() + (float) Math.sin(angle / 1000 * 2 * Math.PI) * 30), getZ() + 75, i); int heading = (int) Math .round(Math.atan2(getY() - servitor.getLocY(), getX() - servitor.getLocX()) / Math.PI * 32768); if (heading < 0) { heading = 65535 + heading; } servitor.setHeading(heading); if (_instance != null) { final Npc npc = servitor.doSpawn(); npc.scheduleDespawn(lifeTime * 1000L); } } angle += 1000 / sCount; } } // Magic Gem private Spawn[] _npcServitors = new Spawn[4]; public Spawn getNpcServitor(int id) { if (_npcServitors[id] != null) { return _npcServitors[id]; } Spawn spawn = null; try { NpcTemplate tmpl; switch (id) { case 0: tmpl = NpcData.getInstance().getTemplate(7); break; case 1: tmpl = NpcData.getInstance().getTemplate(50006); break; case 2: tmpl = NpcData.getInstance().getTemplate(30080); break; default: tmpl = NpcData.getInstance().getTemplate(30103); } spawn = new Spawn(tmpl); } catch (Exception e) { e.printStackTrace(); } _npcServitors[id] = spawn; return _npcServitors[id]; } I'd appreciate your help
  7. ConectionPool.java add this private static final CLogger LOGGER = new CLogger(ConnectionPool.class.getName()); + private static ConnectionPool _instance; public static Connection getConnection() throws SQLException { return _source.getConnection(); } + public static ConnectionPool getInstance() + { + if (_instance == null) + { + _instance = new ConnectionPool(); + } + + return _instance; + }
  8. hello i have this only problem in l2jfrozen
  9. with setinvisible could the name be hidden? hello I have a problem with the target issue it works but if the player is gm you can't target another player if (Config.PROTECT_TARGET_ADM_ENABLE) { if (isGM() != player.isGM()) { player.sendPacket(ActionFailed.STATIC_PACKET); player.setTarget(null); return; } } now it works fine only one gm can target another gm if (Config.PROTECT_TARGET_ADM_ENABLE) { if (isGM() && player.isGM() == false) { player.sendPacket(ActionFailed.STATIC_PACKET); return; } }
  10. it works thanks sorry for another question but if I wanted to hide the name of the administrator it would be in that part onAction ? Hello, I remember in an interlude server in which if you passed the mouse over the administrator it showed an effect similar to that of the doors, how could you put that
  11. Hello, how could I make a player unable to target an administrator player?
  12. hello I wanted to add a second value of custom enchant value for a custom scroll or donor I tried it but when using the scroll it keeps using the common value of custom enchant value and I don't know how to make it work thanks anyway enchant config: RequestEnchantItem.java
×
×
  • Create New...