Jump to content

eMommy

Members
  • Posts

    97
  • Credits

  • Joined

  • Last visited

  • Days Won

    8
  • Feedback

    0%

Everything posted by eMommy

  1. and thats a copy of l2 eigis whats your point lol
  2. what
  3. that's strange because i've dealt with CaptainOwn before and he was very professional and nice to work with
  4. and people use adrenaline if not interface autofarm in older clients, so what? is it fun to manually click on thousands of mobs and is it practical when the average player is around 27-30 years old? you are misinformed just like a lot of players including myself at one point. I used to think essence was just as how you described it: full farm and 0 activity. Except this is not the case when i actually played it to then realize that essence is superior to any chronicle released in every way possible and it's full of pvp and events and instances every hour to the point that you will wonder how it went from 10:00 to 23:00 while your free time slips just from under your nose.
  5. lineage 2 is dead for hardstuck interlude and high 5 players only. take a look at valhalla essence and innadril and say that again. it's been more alive than ever also imagine being in 2022 and still using the 2004 interlude client over the zaken one or the secret of empire one from lucera. really weird right?
  6. package l2s.gameserver.handler.effects.impl.trigger; import l2s.gameserver.handler.effects.EffectHandler; import l2s.gameserver.listener.actor.OnKillListener; import l2s.gameserver.model.Creature; import l2s.gameserver.model.actor.instances.creature.Abnormal; import l2s.gameserver.model.instances.MonsterInstance; import l2s.gameserver.templates.skill.EffectTemplate; public class p_auto_sweeper extends EffectHandler { private final int _minDist; private final int _maxDist; public p_auto_sweeper(EffectTemplate template) { super(template); _minDist = getParams().getInteger("min_dist", -1); _maxDist = getParams().getInteger("max_dist", 400); } private class impl extends EffectHandler { private ImplListener _listener; public impl(EffectTemplate template) { super(template); } @Override public void onStart(Abnormal abnormal, Creature effector, Creature effected) { if (getSkill().isPassive()) return; _listener = new ImplListener(); effected.addListener(_listener); } @Override public void onExit(Abnormal abnormal, Creature effector, Creature effected, boolean cancelled) { if (getSkill().isPassive()) return; effected.removeListener(_listener); _listener = null; } private class ImplListener implements OnKillListener { @Override public void onKill(Creature actor, Creature victim) { if (actor == null || victim == null || !victim.isMonster() || !actor.isPlayer() || actor.isDead() || !victim.isDead()) return; if (!getSkill().isPassive() && !actor.getAbnormalList().contains(p_auto_sweeper.this.getSkill().getId())) { actor.removeListener(_listener); return; } if (actor.getDistance(victim) > _minDist && actor.getDistance(victim) < _maxDist) { final MonsterInstance mob = victim.asMonster(); if (mob != null && !mob.isSweeped() && mob.isSpoiled(actor.getPlayer())) { mob.takeSweep(actor.getPlayer()); mob.endDecayTask(); } } } @Override public boolean ignorePetOrSummon() { return false; } } } @Override public EffectHandler getImpl() { return new impl(getTemplate()); } } <effect name="p_auto_sweeper"> <def name="min_dist" value="-1"/> <def name="max_dist" value="300"/> </effect> i just did this blind (on l2script) so its not tested but this is how i see the logic working
  7. depending on the client you use you can look at how ChatFontSizeWnd handles it or otherwise if you wanna change it generally you can do it through xdat
  8. on the newer clients you can do them as abnormals instead of inside the skill emitters so its way better
  9. https://fex.net/ru/s/3vydrcs
  10. you need to reverse the unknownFunction names to its correct ones
  11. no it could just be that stripsource was used otherwise you can do 'view script' with utpt
  12. npcstring
  13. i think its for adrenaline not l2j...
  14. no? you are limited to what your client is able to read. dont touch stuff like this if you dont know what it does lol because then you might not able to see any items normally
  15. no tooltip is through script only
  16. public final class HomeBoard implements IParseBoardHandler { // SQL Queries private static final String COUNT_FAVORITES = "SELECT COUNT(*) AS favorites FROM `bbs_favorites` WHERE `playerId`=?"; private static final String[] COMMANDS = { "_bbshome", "_bbstop", "_testpage1" }; @Override public String[] getCommunityBoardCommands() { return COMMANDS; } @Override public boolean parseCommunityBoardCommand(String command, L2PcInstance activeChar) { if (command.equals("_bbshome") || command.equals("_bbstop")) { CommunityBoardHandler.getInstance().addBypass(activeChar, "Home", command); String html = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/CommunityBoard/home.html"); html = html.replaceAll("%fav_count%", Integer.toString(getFavoriteCount(activeChar))); html = html.replaceAll("%region_count%", Integer.toString(getRegionCount(activeChar))); html = html.replaceAll("%clan_count%", Integer.toString(ClanTable.getInstance().getClanCount())); CommunityBoardHandler.separateAndSend(html, activeChar); } if (command.startsWith ("_testpage1")) { CommunityBoardHandler.getInstance().addBypass(activeChar, "testpage1", command); CommunityBoardHandler.separateAndSend(HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/CommunityBoard/custom/index.html"), activeChar); } else if (command.startsWith("_bbstop;")) { final String path = command.replace("_bbstop;", ""); if ((path.length() > 0) && path.endsWith(".html")) { final String html = HtmCache.getInstance().getHtm(activeChar.getHtmlPrefix(), "data/html/CommunityBoard/" + path); CommunityBoardHandler.separateAndSend(html, activeChar); } } return true; }
  17. interface u - > tooltip
  18. equals -> startswith/contains bypass _testpage1; ok but like if you want to redirect your page from home to custom/index then you can change what is already there under bbshome....
  19. thats what i thought at first but until you start playing it and really understand it you start to realize that essence is the pinnacle of l2 and superior to every other chronicle in almost every way possible.... the amount of new zones, items, interesting mechanics and instances are definitely not 'dumbed down' and if you compare this to like a interlude its like saying a shopping cart at the market is the same as a modern car
  20. im 43 years old and im froom Greece... * u cant scam me belieave me im a loier and i got my own hotel.) after we finsh the whole job you can have a suite on y last floow for 1 week.....
  21. LoadingWnd var String LoadingTex[num]; ........ LoadingTex[0] = "Tex1"; LoadingTex[1] = "Tex2"; LoadingTex[2] = "Tex3"; ........ loadingtexture.SetTexture( LoadingTex[Rand(size)] );
  22. you cant edit directly through actionscript you need to do it from pcode on jpex.....
  23. package events; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import l2s.commons.util.Rnd; import l2s.gameserver.Config; import l2s.gameserver.ThreadPoolManager; import l2s.gameserver.database.mysql; import l2s.gameserver.instancemanager.ServerVariables; import l2s.gameserver.listener.actor.OnAbnormalStartEndListener; import l2s.gameserver.listener.actor.OnDeathListener; import l2s.gameserver.listener.actor.player.OnPlayerEnterListener; import l2s.gameserver.listener.script.OnInitScriptListener; import l2s.gameserver.model.Creature; import l2s.gameserver.model.GameObjectsStorage; import l2s.gameserver.model.Player; import l2s.gameserver.model.actor.instances.creature.Abnormal; import l2s.gameserver.model.actor.listener.CharListenerList; import l2s.gameserver.model.actor.variables.PlayerVariables; import l2s.gameserver.network.l2.components.SystemMsg; import l2s.gameserver.network.l2.s2c.SystemMessagePacket; import l2s.gameserver.network.l2.s2c.events.ExBalthusEvent; import l2s.gameserver.network.l2.s2c.events.ExBalthusEventJackpotUser; import l2s.gameserver.utils.Functions; /** * @author nexvill */ public class BalthusEvent implements OnInitScriptListener { private static final Logger _log = LoggerFactory.getLogger(BalthusEvent.class); private class EventListeners implements OnPlayerEnterListener { @Override public void onPlayerEnter(Player player) { if (_active) { if (player.getAbnormalList().contains(BUFF_ID)) { int receivedAmount = player.getVarInt(PlayerVariables.BALTHUS_RECEIVED_AMOUNT, 0); player.sendPacket(new ExBalthusEvent(_round, _stage, _jackpotId, BASIC_REWARD_COUNT, receivedAmount, true, false, _time)); } else { int receivedAmount = player.getVarInt(PlayerVariables.BALTHUS_RECEIVED_AMOUNT, 0); player.sendPacket(new ExBalthusEvent(_round, _stage, _jackpotId, BASIC_REWARD_COUNT, receivedAmount, false, false, _time)); } } } } private class AbnormalStartEndListener implements OnAbnormalStartEndListener { @Override public void onAbnormalStart(Creature actor, Abnormal a) { if (actor.isPlayer() && (a.getId() == BUFF_ID) && _active) { int receivedAmount = actor.getPlayer().getVarInt(PlayerVariables.BALTHUS_RECEIVED_AMOUNT, 0); actor.sendPacket(new ExBalthusEvent(_round, _stage, _jackpotId, BASIC_REWARD_COUNT, receivedAmount, true, false, _time)); } } @Override public void onAbnormalEnd(Creature actor, Abnormal a) { if (actor.isPlayer() && (a.getId() == BUFF_ID) && _active) { int receivedAmount = actor.getPlayer().getVarInt(PlayerVariables.BALTHUS_RECEIVED_AMOUNT, 0); actor.sendPacket(new ExBalthusEvent(_round, _stage, _jackpotId, BASIC_REWARD_COUNT, receivedAmount, false, false, _time)); } } } public class MonsterDeathListener implements OnDeathListener { @Override public void onDeath(Creature actor, Creature killer) { if (!_active) return; if (killer == null || !actor.isMonster()) return; Player player = killer.getPlayer(); if (player == null) return; if ((killer.getLevel() - actor.getLevel()) > 15) return; if (Rnd.get(100) < 2) player.getInventory().addItem(BASIC_REWARD_ID, 1); } } private class UpdateEvent implements Runnable { @Override public void run() { long currentTime = System.currentTimeMillis(); if ((currentTime > _timeStart) && (currentTime < _timeEnd)) { Functions.SetActive(EVENT_NAME, true); } else { Functions.SetActive(EVENT_NAME, false); } } } private static final String EVENT_NAME = "BalthusEvent"; private static final int BUFF_ID = Config.BALTHUS_EVENT_PARTICIPATE_BUFF_ID; private EventListeners EVENT_LISTENERS = new EventListeners(); private final OnAbnormalStartEndListener _abnormalStartEndListener = new AbnormalStartEndListener(); // Misc private int _round = 1; private int _stage = 20; private int _time = 0; private int _jackpotId = 49800; private int _hour; private boolean _receivedThisHour = false; private static final int BASIC_REWARD_COUNT = Config.BALTHUS_EVENT_BASIC_REWARD_COUNT; private static final int BASIC_REWARD_ID = Config.BALTHUS_EVENT_BASIC_REWARD_ID; private static boolean _active = false; private static long _timeStart, _timeEnd; @Override public void onInit() { if (isActive()) { _active = true; CharListenerList.addGlobal(EVENT_LISTENERS); CharListenerList.addGlobal(_abnormalStartEndListener); _hour = ZonedDateTime.now().getHour(); _round = _hour + 1; _time = ZonedDateTime.now().getMinute() * 60; ThreadPoolManager.getInstance().schedule(new UpdateEvent(), _timeEnd); ThreadPoolManager.getInstance().scheduleAtFixedRate(() -> updateTimer(), 1000L, 1000L); _log.info("Loaded Event: Balthus Event [state: activated]"); } else { ThreadPoolManager.getInstance().schedule(new UpdateEvent(), _timeStart); _log.info("Loaded Event: Balthus Event [state: deactivated]"); } } private static boolean isActive() { LocalDateTime localDateTime = LocalDateTime.parse(Config.BALTHUS_EVENT_TIME_START, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")); _timeStart = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); localDateTime = LocalDateTime.parse(Config.BALTHUS_EVENT_TIME_END, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss")); _timeEnd = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); long currentTime = System.currentTimeMillis(); if ((currentTime > _timeStart) && (currentTime < _timeEnd)) { Functions.SetActive(EVENT_NAME, true); } else { Functions.SetActive(EVENT_NAME, false); mysql.set("DELETE FROM `character_variables` WHERE `value` = \"balthus_received_amount\";"); } return Functions.IsActive(EVENT_NAME); } private void updateTimer() { _time++; if (_time >= 3600) { _time = 0; _stage = 20; _round++; _receivedThisHour = false; if (_round > 24) { _round = 1; } manageJackpot(); updateEvent(); saveVars(); } else if (((_time == 3500) || (_time == 2880) || (_time == 2160) || (_time == 1440) || (_time == 720)) && !_receivedThisHour) { if (_time != 3500) { _stage += 20; } eventRun(); saveVars(); } } private void saveVars() { ServerVariables.set("balthus_round", _round); ServerVariables.set("balthus_stage", _stage); ServerVariables.set("balthus_jackpot", _jackpotId); ServerVariables.set("balthus_received_hour", _receivedThisHour); } private void eventRun() { int participantsCount = 0; if (!_receivedThisHour && (Rnd.get(100) < Config.BALTHUS_EVENT_JACKPOT_CHANCE)) { _receivedThisHour = true; for (Player player : GameObjectsStorage.getPlayers(false, false)) { if (player.getAbnormalList().contains(BUFF_ID)) { participantsCount++; player.setVar(PlayerVariables.BALTHUS_RECEIVED_AMOUNT, player.getVarInt(PlayerVariables.BALTHUS_RECEIVED_AMOUNT, 0) + BASIC_REWARD_COUNT); } player.sendPacket(new ExBalthusEventJackpotUser()); player.sendPacket(new SystemMessagePacket(SystemMsg.THE_SECRET_SUPPLIES_OF_THE_BALTHUS_KNIGHTS_ARRIVED_SOMEONE_RECEIVED_S1).addItemName(_jackpotId)); } if (!(participantsCount < 1)) { int number = Rnd.get(participantsCount); int i = 0; for (Player player : GameObjectsStorage.getPlayers(false, false)) { if (player.getAbnormalList().contains(BUFF_ID)) { if (number == i) { player.getInventory().addItem(_jackpotId, 1); break; } i++; } } } } updateEvent(); } private void updateEvent() { for (Player player : GameObjectsStorage.getPlayers(false, false)) { boolean participate = false; if (player.getAbnormalList().contains(BUFF_ID)) { participate = true; } int receivedAmount = player.getVarInt(PlayerVariables.BALTHUS_RECEIVED_AMOUNT, 0); player.sendPacket(new ExBalthusEvent(_round, _stage, _jackpotId, BASIC_REWARD_COUNT, receivedAmount, participate, _receivedThisHour, _time)); } } private void manageJackpot() { if (_hour < 1) _jackpotId = 95876; // Balthus Knights' High-grade Spellbook Chest else if (_hour < 17) _jackpotId = 49800; // Sibi's Coin Pack else if (_hour < 18) _jackpotId = 94875; // Balthus Knights' Enchanted Talisman Pack else if (_hour < 19) _jackpotId = 95872; // Balthus Knights' Master Book Chest else if (_hour < 20) _jackpotId = 94873; // Balthus Knights' Blessed Dragon Belt else if (_hour < 21) _jackpotId = 95873; // Balthus Knights' Enchanted Armor Pack else if (_hour < 22) _jackpotId = 95874; // Balthus Knights' Package: Hardin's Soul Crystal else if (_hour < 23) _jackpotId = 94877; // Balthus Knight's Package: Enhanced Einhasad's Pendant else if (_hour == 23) _jackpotId = 95875; // Balthus Knight's Enchanted Weapon Pack } } free
  24. its not in ui4 at least not in newer clients
×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock