Jump to content

l2jkain

Members
  • Posts

    207
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by l2jkain

  1. I want to define for all Gatekeeper I wrote this more I came across it msg = "811; Town of Oren" in all htmls has this string msg = "" I want to add the has inside this string but I do not know where it is if (getTemplate().isType("Gatekeeper")) player.sendPacket(new ConfirmDlg(SystemMessageId.WILL_BE_MOVED).addString(getTemplate().getName()).addZoneName(player.getPosition()).addTime(15000).addRequesterId(player.getObjectId())); Hello I'm trying to set a team to close https://ibb.co/mh8mRgx
  2. Hello, which class meets this attribute? msg="811;Rune Township" which is inside the telemetry htmls msg="" <a action="bypass -h npc_%objectId%_goto 1047" msg="811;Rune Township">Rune Township - 57000 Adena</a><br1>
  3. Boa noite. Bom meu problema é o seguinte, meu personagem vip tem mais taxas de itens, adena e Exp drop, porém quando os vip players estão caindo em uma festa o outro membro que não é vip ganha a mesma quantidade que o vip player como um show ? Eu uso esse método para definir um player vip isVip () I use this VIP manager
  4. Hello anyone could help me with this method for aCis? + /** + * Method called to spawn a team flag + * @param teamId as Integer + * @return L2Spawn + */ + private L2Spawn spawnFlag(int teamId) + { + return NpcUtils.spawnSingle(teamId == 1 ? BLUE_NPC_ID : RED_NPC_ID, getConfigs().FLAGS.get(teamId), eventInstance); + } + Cod method jServe /** * Method spawnSingle. * @param npcId int * @param x int * @param y int * @param z int * @return NpcInstance */ public static NpcInstance spawnSingle(int npcId, int x, int y, int z) { return spawnSingle(npcId, new Location(x, y, z, -1), ReflectionManager.DEFAULT, 0); }
  5. Hello, I'm trying to put some time in some items, however the items added in the config are not saving in my database, would anyone help me solve this? code complete : https://pastebin.com/raw/y3B7Cvfk Class responsible for saving and removing from database package net.sf.l2j.gameserver.data.sql; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Logger; import net.sf.l2j.Config; import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.gameserver.model.World; import net.sf.l2j.gameserver.model.WorldObject; import net.sf.l2j.gameserver.model.actor.instance.Player; import net.sf.l2j.gameserver.model.item.instance.ItemInstance; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.ItemList; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; import net.sf.l2j.gameserver.taskmanager.ItemsTaskManager; public class TimedItemTable public final Map<Integer, Info> _timedItems = new ConcurrentHashMap<>(); { private static Logger _log = Logger.getLogger(TimedItemTable.class.getName()); public class Info { int _charId; int _itemId; long _activationTime; } public static final TimedItemTable getInstance() { return SingletonHolder._instance; } private static class SingletonHolder { protected static final TimedItemTable _instance = new TimedItemTable(); } public TimedItemTable() { restore(); _startControlTask.schedule(60000); } public boolean getActiveTimed(Player player, boolean trade) { for (Info i : _timedItems.values()) { if ((i != null) && (i._charId == player.getObjectId())) { ItemInstance item = player.getInventory().getItemByObjectId(i._itemId); if (item != null) { if (System.currentTimeMillis() < i._activationTime) return true; } } } return false; } public synchronized void destroy(ItemInstance item) { Info inf = _timedItems.get(item.getObjectId()); if (inf != null) { _timedItems.remove(inf._itemId); try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("DELETE FROM character_timed_items WHERE charId = ? AND itemId = ?"); statement.setInt(1, inf._charId); statement.setInt(2, inf._itemId); statement.execute(); statement.close(); } catch (Exception e) { e.printStackTrace(); } } } public synchronized void setTimed(ItemInstance item) { Info inf = _timedItems.get(item.getObjectId()); if (inf != null) inf._charId = item.getOwnerId(); else { inf = new Info(); inf._activationTime = (System.currentTimeMillis() / 1000) + (Config.TIMED_ITEM_TIME * 60); inf._charId = item.getOwnerId(); inf._itemId = item.getObjectId(); _timedItems.put(inf._itemId, inf); } saveToDb(inf); } public boolean isActive(ItemInstance item) { for (Info i : _timedItems.values()) { if (i._itemId == item.getObjectId()) return true; } return false; } private void restore() { try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("SELECT charId, itemId, time FROM character_timed_items"); ResultSet rs = statement.executeQuery(); while (rs.next()) { Info inf = new Info(); inf._activationTime = rs.getLong("time"); inf._charId = rs.getInt("charId"); inf._itemId = rs.getInt("itemId"); _timedItems.put(inf._itemId, inf); } rs.close(); statement.close(); _log.info("loaded " + _timedItems.size() + " Timed Items "); } catch (Exception e) { e.printStackTrace(); } } @SuppressWarnings("resource") private static void saveToDb(Info temp) { try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("UPDATE character_timed_items set charId = ? where itemId = ?"); statement.setInt(1, temp._charId); statement.setInt(2, temp._itemId); if (statement.executeUpdate() == 0) { statement = con.prepareStatement("INSERT INTO character_timed_items (charId, itemId, time) VALUES (?, ?, ?)"); statement.setInt(1, temp._charId); statement.setInt(2, temp._itemId); statement.setLong(3, temp._activationTime); statement.execute(); statement.close(); } } catch (Exception e) { e.printStackTrace(); } } @SuppressWarnings("resource") public void delete(Info temp) { _timedItems.remove(temp._itemId); try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("DELETE FROM character_timed_items WHERE charId =? AND itemId =?"); statement.setInt(1, temp._charId); statement.setInt(2, temp._itemId); statement.execute(); } catch (Exception e) { e.printStackTrace(); } Player player = World.getInstance().getPlayer(temp._charId); if (player != null) { ItemInstance item = player.getInventory().getItemByObjectId(temp._itemId); if (item.isEquipped()) player.getInventory().unEquipItemInSlot(item.getLocationSlot()); player.getInventory().destroyItem("timeLost", item, player, player); player.sendPacket(new ItemList(player, false)); player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED).addItemName(item.getItemId())); } else { try (Connection con = L2DatabaseFactory.getInstance().getConnection();) { if (temp._charId != 0) { try (PreparedStatement statement = con.prepareStatement("DELETE FROM items WHERE owner_id = ? AND object_id = ?");) { statement.setInt(1, temp._charId); statement.setInt(2, temp._itemId); statement.execute(); statement.close(); } } else { for (WorldObject o : World.getInstance().getObjects()) { if (o.getObjectId() == temp._itemId) { World.getInstance().removeObject(o); break; } } } } catch (Exception e) { e.printStackTrace(); } } } private final ItemsTaskManager _startControlTask = new ItemsTaskManager() { @Override protected void onElapsed() { for (Info temp : _timedItems.values()) { if (temp._activationTime < (System.currentTimeMillis() / 1000)) delete(temp); } schedule(60000); } }; }
  6. I want it to update x minutes and not every 24 hours
  7. How do I get the rank of the Olympics to update in real time?
  8. Hello, I would like to deploy a custom Scroll to highlight any "Grid" Use Hasha's enchant system by xml https://pastebin.com/raw/eZmEK1X1
  9. only shows this does not show error in console
  10. hello whenever I'm going to compile my project be with this error.
  11. Hi, does anyone help me with this? I'm trying to set a color on the times of my tvt! so it was done to define team colors public static void prepareNameAndTitle() { for (Player player : _teams[0].getParticipatedPlayers().values()) { if (player != null) { player.getAppearance().setTitleColor(Config.TVT_EVENT_TEAM_TEAM_BLUE_COLOR); player.getAppearance().setNameColor(Config.TVT_EVENT_TEAM_TEAM_BLUE_COLOR); } } for (Player player : _teams[1].getParticipatedPlayers().values()) { if (player != null) { player.getAppearance().setTitleColor(Config.TVT_EVENT_TEAM_TEAM_RED_COLOR); player.getAppearance().setNameColor(Config.TVT_EVENT_TEAM_TEAM_RED_COLOR); } } } when the event is over I was forced to use it to exit the colors of TVT for (TvTEventTeam team : _teams) { for (Player player : team.getParticipatedPlayers().values()) { // Check for nullpointer if (player != null) { player.clearEventScore(); player.getAppearance().setTitleColor(0xFFFF77); player.getAppearance().setNameColor(0xFFFFFF); // Teleport back. new TvTEventTeleporter(player, (player.getTeam() == 1 ? Config.TVT_EVENT_PARTICIPATION_NPC_LOCATION : Config.TVT_EVENT_PARTICIPATION_NPC_LOCATION), false); } } } I do not restore the original colors because I am setting the white color as soon as I exit the tvt how can I define each team and a color in charinfo and userinfo
  12. even adding here does not work / Count the private kill killer.increaseEventScore(); killer.sendPacket(new PlaySound(0, "ItemSound.quest_itemget")); +killer.broadcastUserInfo();
  13. Hello, I would like a help with a bug in my tvt event. The title of the participants does not update the kills in the titles. Code Add : UserInfo.java writeS((_activeChar.getPolyType() != PolyType.DEFAULT) ? "Morphed" : _activeChar.getTitle()); for writeS((_activeChar.getPolyType() != PolyType.DEFAULT) ? "Morphed" : _activeChar.isInEvent() ? "Kills: " + _activeChar.getEventScore() : _activeChar.getTitle()); CharInfo.java if (gmSeeInvis) writeS("Invisible"); else writeS(_activeChar.getTitle()); for if (gmSeeInvis) writeS("Invisible"); else writeS(_activeChar.isInEvent() ? "Kills: " + _activeChar.getEventScore() : _activeChar.getTitle()); Did I do something wrong?
  14. Hi all, I have a html file that I have set in npc without a directory of this error, can anyone help me? Why does not a direct HTML work in here? No Directory. package net.sf.l2j.gameserver.model.actor.instance; import java.util.StringTokenizer; import net.sf.l2j.gameserver.data.xml.AugmentationData; import net.sf.l2j.gameserver.model.L2Augmentation; import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; import net.sf.l2j.gameserver.model.item.instance.ItemInstance; import net.sf.l2j.gameserver.model.item.type.WeaponType; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage; import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage.SMPOS; import net.sf.l2j.gameserver.network.serverpackets.ExVariationCancelResult; import net.sf.l2j.gameserver.network.serverpackets.ExVariationResult; import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.SkillList; import net.sf.l2j.gameserver.network.serverpackets.StatusUpdate; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; /** * @author AbsolutePower * */ public class FastAug extends Folk { public FastAug(int objectId, NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(Player player, String command) { if (player == null) return; final StringTokenizer st = new StringTokenizer(command, " "); final String currentcommand = st.nextToken(); final String letsSliptIt = currentcommand; final String[] nowTheId = letsSliptIt.split("-"); final String OurSplititCommand = nowTheId[0]; final String FinallyWeHaveObjectId = nowTheId[1]; if(OurSplititCommand.startsWith("showremlist")) showListWindowForRemove(player); else if(OurSplititCommand.startsWith("showauglist")) showListWindow(player); else if(OurSplititCommand.startsWith("tryremove")) { final ItemInstance item = player.getInventory().getItemByObjectId(Integer.parseInt(FinallyWeHaveObjectId)); if (item == null) return; if (item.isEquipped()) { player.disarmWeapons(); player.broadcastUserInfo(); } item.removeAugmentation(); player.sendPacket(new ExVariationCancelResult(1)); InventoryUpdate iu = new InventoryUpdate(); iu.addModifiedItem(item); player.sendPacket(iu); player.sendPacket(new SkillList()); player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.AUGMENTATION_HAS_BEEN_SUCCESSFULLY_REMOVED_FROM_YOUR_S1).addItemName(item)); showListWindowForRemove(player); player.sendPacket(ActionFailed.STATIC_PACKET); } else if(OurSplititCommand.startsWith("tryaug")) { if (player.getInventory().getInventoryItemCount(57, 0) < 200000) { player.sendMessage("You do not have enough adena!"); player.sendPacket(ActionFailed.STATIC_PACKET); return; } final ItemInstance item = player.getInventory().getItemByObjectId(Integer.parseInt(FinallyWeHaveObjectId)); if (item == null) return; if (item.isEquipped()) { player.disarmWeapons(); player.broadcastUserInfo(); } final L2Augmentation aug = AugmentationData.getInstance().generateRandomAugmentation(2, 2); item.setAugmentation(aug); final int stat12 = 0x0000FFFF & aug.getAugmentationId(); final int stat34 = aug.getAugmentationId() >> 16; player.sendPacket(new ExVariationResult(stat12, stat34, 1)); InventoryUpdate iu = new InventoryUpdate(); iu.addModifiedItem(item); player.sendPacket(iu); StatusUpdate su = new StatusUpdate(player); su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad()); player.sendPacket(su); showListWindow(player); player.getInventory().reduceAdena("FastAugh", 200000, player, null); player.sendPacket(SystemMessageId.THE_ITEM_WAS_SUCCESSFULLY_AUGMENTED); if (item.getAugmentation().getSkill()!=null) { player.sendPacket(new ExShowScreenMessage("You have " + item.getAugmentation().getSkill().getName(), 5000, SMPOS.TOP_CENTER, true)); player.sendPacket(new SkillList()); } player.sendPacket(ActionFailed.STATIC_PACKET); } super.onBypassFeedback(player, command); } public void showListWindow(Player player) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); StringBuilder tb = new StringBuilder(""); String Rem = "RemoveAug"; tb.append("<html><head><title>By AbsolutePower</title></head><body>"); tb.append("<center>"); tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"000000\">"); tb.append("<tr>"); tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>"); tb.append("<td valign=\"top\"><font color=\"FF6600\">AugmentHelper</font>"); tb.append("<br1><font color=\"00FF00ju\">" + player.getName() + "</font>, use this menu for fast augment :)<br1></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("</center>"); tb.append("<center>"); tb.append("<br>"); for (ItemInstance item : player.getInventory().getItems()) { if (!item.isAugmented() && item.getItemType() instanceof WeaponType && item.isEquipable() && !item.isQuestItem()) { tb.append("<button value=\""+item.getItemName()+"\" action=\"bypass -h npc_" + getObjectId() + "_tryaug-"+item.getObjectId()+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>"); tb.append("<table border=0 width=\"100%\">"); tb.append("<tr><td><img src=\""+ item.getItem().getIcon()+"\"width=\"32\"height=\"32\"></td>" +"<td>"+"<button value=\""+item.getItemName()+"\" action=\"bypass -h npc_"+getObjectId()+"_tryaug-"+item.getObjectId()+"\"width=204 height=21 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>"+"</td>"+"<td>+"+item.getEnchantLevel()+"</td></tr></table>"); } } tb.append("<br>"); tb.append("<button value=\""+Rem+"\" action=\"bypass -h npc_" + getObjectId() + "_showremlist-1"+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>"); tb.append("</center>"); tb.append("</body></html>"); nhm.setHtml(tb.toString()); player.sendPacket(nhm); } public void showListWindowForRemove(Player player) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); StringBuilder tb = new StringBuilder(""); String Rem = "GobackToAugList"; tb.append("<html><head><title>By AbsolutePower</title></head><body>"); tb.append("<center>"); tb.append("<table width=\"250\" cellpadding=\"5\" bgcolor=\"000000\">"); tb.append("<tr>"); tb.append("<td width=\"45\" valign=\"top\" align=\"center\"><img src=\"L2ui_ch3.menubutton4\" width=\"38\" height=\"38\"></td>"); tb.append("<td valign=\"top\"><font color=\"FF6600\">AugmentHelper</font>"); tb.append("<br1><font color=\"00FF00ju\">" + player.getName() + "</font>, use this menu for fast augment :)<br1></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("</center>"); tb.append("<center>"); tb.append("<br>"); for (ItemInstance item : player.getInventory().getItems()) { if (item.isAugmented() && item.getItemType() instanceof WeaponType && item.isEquipable() && !item.isQuestItem()) { tb.append("<button value=\""+item.getItemName()+"\" action=\"bypass -h npc_" + getObjectId() + "_tryremove-"+item.getObjectId()+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>"); tb.append("<table border=0 width=\"100%\">"); tb.append("<tr><td><img src=\""+ item.getItem().getIcon() +"\"width=\"32\"height=\"32\"></td>" +"<td>"+"<button value=\""+ item.getItemName() +"\" action=\"bypass -h npc_" +getObjectId()+ "_tryaug-"+item.getObjectId()+"\"width=204 height=21 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>"+"</td>"+"<td>+"+item.getEnchantLevel()+"</td></tr></table>"); } } tb.append("<br>"); tb.append("<button value=\""+Rem+"\" action=\"bypass -h npc_" + getObjectId() + "_showauglist-1"+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"><br>"); tb.append("</center>"); tb.append("</body></html>"); nhm.setHtml(tb.toString()); player.sendPacket(nhm); } }
  15. Hello, I would like to know how I always do when a player opens a multisel from a merchant does not close the HTM. I did it but it did not work. ### Eclipse Workspace Patch 1.0 #P aCis_gameserver Index: java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java (revision 7) +++ java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java (working copy) @@ -70,7 +70,7 @@ return; } - if (folk != null && !folk.canInteract(player)) + if (!player.isGM() && !player.isMultisell() && folk != null && !folk.canInteract(player)) { player.setMultiSell(null); return; Index: java/net/sf/l2j/gameserver/model/actor/instance/Player.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/Player.java (revision 7) +++ java/net/sf/l2j/gameserver/model/actor/instance/Player.java (working copy) @@ -621,6 +621,8 @@ private int _KillerTarget = 0; + private boolean _isMultisell = false; + /** * Constructor of Player (use Creature constructor). * <ul> @@ -3584,6 +3586,16 @@ _currentMultiSell = list; } + public void setMultisell(boolean b) + { + _isMultisell = b; + } + + public boolean isMultisell() + { + return _isMultisell; + } + @Override public void setTarget(WorldObject newTarget) { Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (revision 7) +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (working copy) @@ -112,6 +112,8 @@ { if (!player.validateBypass(_command)) return; + + player.setMultisell(false); int endOfId = _command.indexOf('_', 5); String id;
  16. Hi, I was wondering if this would be correct because that makes my code not work CharNameTable.getInstance().doesCharNameExist(playerName) for PlayerInfoTable.getInstance().getPlayerObjectId(playerName) > 0
  17. thanks for the help I give up trying to do can close the topic
×
×
  • Create New...