hello i have a problem i use one event and after start show me this error
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();
}
}
}
.Any Solution or make the soulshot Toggle
somewon can help me how i can make my custom soulshot left click toggle
all works only toggle i can't manage it, 😞
thanks in advance.
I was looking for server with a low rates,eventually i found l2 elixir.I Joined beta and after so many years since 2008 i found a friend that we played together, memories came back. i cant wait for the grand oppening!. dont miss it!
Question
tazerman2
hello i have a problem i use one event and after start show me this error
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