Jump to content

Question

Posted

hello i have a problem i use one event and after start show me this error

image.jpg

can any help me to fix it tnx!

code:

public class RandomFight
{
	public static RandomFight getInstance()
	{
		return SingletonHolder._instance;
	}
	
	public static enum State
	{
		INACTIVE,
		REGISTER,
		LOADING,
		FIGHT
	}
	
	public static State state = State.INACTIVE;
	
	public static Vector<L2PcInstance> players = new Vector<>();
	
	private L2PcInstance player;
	
	protected void openRegistrations()
	{
		state = State.REGISTER;
		final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight Event will start in 1 minute.");
		final CreatureSay cs1 = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "To register press ?register");
		Broadcast.toAllOnlinePlayers(cs);
		Broadcast.toAllOnlinePlayers(cs1);
		ThreadPoolManager.getInstance().scheduleGeneral(new checkRegist(), 60000);
	}
	
	protected void checkRegistrations()
	{
		state = State.LOADING;
		
		if (players.isEmpty() || players.size() < 2)
		{
			final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight Event will not start cause of no many partitipations, we are sorry.");
			Broadcast.toAllOnlinePlayers(cs);
			clean();
			return;
		}
		final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Amount of players Registed: " + players.size());
		final CreatureSay cs1 = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "2 Random players will be choosen in 30 seconds!");
		Broadcast.toAllOnlinePlayers(cs);
		Broadcast.toAllOnlinePlayers(cs1);
		ThreadPoolManager.getInstance().scheduleGeneral(new pickPlayers(), 30000);
	}
	
	protected void pickPlayers()
	{
		if (players.isEmpty() || players.size() < 2)
		{
			final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight Event aborted because no many partitipations, we are sorry.");
			Broadcast.toAllOnlinePlayers(cs);
			clean();
			return;
		}
		
		for (L2PcInstance p : players)
			if (p.isInOlympiadMode() || Olympiad.getInstance().isRegistered(p))
			{
				players.remove(p);
				p.sendMessage("You automatically left from event because of your olympiad obligations.");
			}
		
		int rnd1 = Rnd.get(players.size());
		int rnd2 = Rnd.get(players.size());
		
		while (rnd2 == rnd1)
			rnd2 = Rnd.get(players.size());
		
		for (L2PcInstance player : players)
		{
			if (player != players.get(rnd1) && player != players.get(rnd2))
				players.remove(player);
		}
		
		final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Players selected: " + players.firstElement().getName() + " || " + players.lastElement().getName());
		final CreatureSay cs1 = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Players will be teleported in 15 seconds");
		Broadcast.toAllOnlinePlayers(cs);
		Broadcast.toAllOnlinePlayers(cs1);
		ThreadPoolManager.getInstance().scheduleGeneral(new teleportPlayers(), 15000);
	}
	
	protected void teleport()
	{
		if (players.isEmpty() || players.size() < 2)
		{
			final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight Event aborted because no many partitipations, we are sorry.");
			Broadcast.toAllOnlinePlayers(cs);
			clean();
			return;
		}
		final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Players teleported!");
		Broadcast.toAllOnlinePlayers(cs);
		
		players.firstElement().teleToLocation(113474, 15552, 3968);
		players.lastElement().teleToLocation(112990, 15489, 3968);
		players.firstElement().setTeam(1);
		players.lastElement().setTeam(2);
		
		// para,etc
		
		players.firstElement().sendMessage("Fight will begin in 15 seconds!");
		players.lastElement().sendMessage("Fight will begin in 15 seconds!");
		
		ThreadPoolManager.getInstance().scheduleGeneral(new fight(), 15000);
	}
	
	protected void startFight()
	{
		
		if (players.isEmpty() || players.size() < 2)
		{
			final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "One of the players isn't online, event aborted we are sorry!");
			Broadcast.toAllOnlinePlayers(cs);
			clean();
			return;
		}
		
		state = State.FIGHT;
		final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "FIGHT STARTED!");
		Broadcast.toAllOnlinePlayers(cs);
		players.firstElement().sendMessage("Start Fight!!");
		players.lastElement().sendMessage("Start Fight!");
		ThreadPoolManager.getInstance().scheduleGeneral(new checkLast(), 120000);
	}
	
	protected void lastCheck()
	{
		if (state == State.FIGHT)
		{
			if (players.isEmpty() || players.size() < 2)
			{
				revert();
				clean();
				return;
			}
			
			int alive = 0;
			for (L2PcInstance player : players)
			{
				if (!player.isDead())
					alive++;
			}
			
			if (alive == 2)
			{
				final CreatureSay cs = new CreatureSay(player.getObjectId(), Say2.TRADE, "", "Random Fight ended tie!");
				Broadcast.toAllOnlinePlayers(cs);
				clean();
				revert();
			}
		}
	}
	
	public static void revert()
	{
		if (!players.isEmpty())
			for (L2PcInstance p : players)
			{
				if (p == null)
					continue;
				
				if (p.isDead())
					p.doRevive();
				
				p.setCurrentHp(p.getMaxHp());
				p.setCurrentCp(p.getMaxCp());
				p.setCurrentMp(p.getMaxMp());
				p.broadcastUserInfo();
				p.teleToLocation(82698, 148638, -3473);
				
			}
	}
	
	public static void clean()
	{
		
		if (state == State.FIGHT)
			for (L2PcInstance p : players)
				p.setTeam(0);
		
		players.clear();
		state = State.INACTIVE;
		
	}
	
	protected RandomFight()
	{
		ThreadPoolManager.getInstance().scheduleAiAtFixedRate(new Event(), 60000 * Config.EVERY_MINUTES, 60000 * Config.EVERY_MINUTES);
	}
	
	
	private static class SingletonHolder
	{
		protected static final RandomFight _instance = new RandomFight();
	}
	
	protected class Event implements Runnable
	{
		@Override
		public void run()
		{
			if (state == State.INACTIVE)
				openRegistrations();
		}
		
	}
	
	protected class checkRegist implements Runnable
	{
		
		@Override
		public void run()
		{
			checkRegistrations();
		}
		
	}
	
	protected class pickPlayers implements Runnable
	{
		@Override
		public void run()
		{
			pickPlayers();
		}
		
	}
	
	protected class teleportPlayers implements Runnable
	{
		@Override
		public void run()
		{
			teleport();
		}
		
	}
	
	protected class fight implements Runnable
	{
		
		@Override
		public void run()
		{
			startFight();
		}
		
	}
	
	protected class checkLast implements Runnable
	{
		@Override
		public void run()
		{
			lastCheck();
		}
		
	}
}

6 answers to this question

Recommended Posts

  • 0
Posted

Funny thing is, line 35 is empty :troll: So, consider giving code you have inside sources when the error occurs.

Guest
This topic is now closed to further replies.


  • Posts

    • Hello! I am new to l2 server creation and i need your help please!!! I want to make my own l2 interlude c6 server with custom thing in it.  I need help with where to start. What source pack to pick to start and what to do. Please if you can help me i would appreciate it very much !!!
    • Need Discord with rare badge? VISIT US AND SHOP WITH US! NEW STOCK   Aged, Early Supporter Discord Accounts I sell HQ Aged and Early, Discord Accounts that are inactive and not flagged by discord at cheap prices   If you want to contact me, you can add me on discord: worldcoldwar Features: Format - age : email : pass : token Not flagged and undetected by discord HQ % With OGE Emails, password etc can be changed Unverified Early Supporter 24M Boost Badge HypeSquad Events Early Verified Bot Developer Early Supporters SHOP LINK: disvault1.mypaylix.gg/ For PayPal payments, please open a ticket. If you experience any problems with cryptocurrency payments, please open a ticket as well.
    • Tired of frantically switching between windows trying to find that specific Warlock who should be casting saves? Forgot which server you left your Warsmith on? This mod solves these problems! What it does: Turns the boring window title into an information panel: Server Name - Character Name [Class] Real-life examples: - ServerName - HardcoreFarm [Spoilerr] (who's been spoiling for 3 months already) - ServerName - ClericHelper [Buffer] (eternal buffer on standby) - ServerName - MainChar [Gladiator] (main character who's always AFK) Why you need this: For multiboxers - to avoid confusing where the DD is and where the healer is For the forgetful - if your memory is like a goldfish For streamers - viewers immediately see who's on screen For adults - when playing at work and need to quickly hide the window DLL only - no Interface files needed Installation (more complicated than making tea): 1. Download the DLL 2. Drop it into the System folder 3. Launch the client 4. Be amazed how you lived without this before!   Purchase Conditions: Price: 100$ Payment Method: USDT. How to Buy: Contact me on Telegram: @kiselevwv for a quick response. I will answer all your questions and provide additional information if needed. I guarantee functionality at the moment of sale and prompt assistance with setup after purchase.    
    • Hello Everyone   Wts adena  L2 REBORN C5 FRANZ x1 50kk stock 😉   Contact Discord :  topseller4081  
    • tratando de crear un GvE tengo problemas con el scripts como no se mucho de esto me estoy ayudando con IA pero no puedo salir de este bache      [06:19:43]  WARN Quest GvE_AI not found! [06:19:45]  WARN Quest GvE_AI not found! [06:19:50]  WARN Quest GvE_AI not found! [06:25:51]  WARN Quest GvE_AI not found!
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and 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..