Jump to content

eMommy

Members
  • Posts

    70
  • Credits

  • Joined

  • Last visited

  • Days Won

    7
  • Feedback

    0%

Posts posted by eMommy

  1. 23 minutes ago, Vince* said:

     

    Those clients are using auto-farm system, so what? do you have fun while leaving and setting up an autofarm option for farming purposes???? 0 pvps 0 sieges, only full farm, do you call that lineage 2 🤔 ? Interesting....

    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.

    • Like 1
  2. 1 hour ago, Vince* said:

     

    Lineage 2 IS A DEAD GAME except those private servers that doesn't stay online for long.... then what? Lineage 2 only will help growing a community? Also those forums that you said that including sports content doesn't even do any updates except adding/removing categories and staff members due to its activity..... :thinking:

    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?

    • Like 1
  3. 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

    • Like 1
  4. 48 minutes ago, Hustman said:

    Can i create a new writeH somehow to be linked to a new or existed variable in client like below? For example make the weight variable dynamically changed from java
    https://prnt.sc/e2gnUEgP_y0C

    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

  5. 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;
        }
    
  6. 57 minutes ago, cronol said:

    Ok, no i dont have any error on homeboard.java but is not working... when i pre

    HOMEBOARD.JAVA

     

    On home.html i have this coded

     

    <tr><td align="left"><button value="Main" action="bypass _testpage1;" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Info_Down" fore="L2UI_CT1.OlympiadWnd_DF_Info"></td></tr>

     

    In CN no redirect...

    home.html

     

    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....

  7. 1 hour ago, darta said:

    how can people like essence? it s really a dumb down version of l2...

    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

  8. 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

    • Thanks 1
  9. 29 minutes ago, tets said:

    i tried to open ui4.ugx with extractor but then loginmenu is gfxflash file so its starting to be ... weird 
    i'm pretty sure this ertheia logo is somewhere in utx files but idk where and i can't open them all with software i've got in maxcheater so i'm starting to be salty 

    its not in ui4 at least not in newer clients

    javaw_7tMTy7XcWP.png

×
×
  • 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