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();
}
}
}
I would like to know about the Acis base of the data pack I use. The server source and server file could not find that information. I respectfully ask for the help of masters.🥲
Artificial Intelligence for all Chronicles. Developed in L2 HighFive branch since 2023 but it can be adapted to any project including Fand-C, aCis, Frozen, Scripts even compiled
projects such as Lucera with some aditional cost.
Features:
1. Grouped of templates to create your own BOT (including skill, items, appearance, sex e.t.c.)
2. Bot can participate in Olympiad (+ any event with extra cost base on your event engine)
3. Bot walk nearby NPC to receive buff, receive equipment and teleport to any other area
4. Bot will accept party & clan invitation and follow party leader to wherever he go including teleport
6. Bot will trade player back dropped items from PK or fallen Raid Bosses after they visit a peace zone
7. Bot will open store and sell configurable item in configurable prices to players.
8. Bot will attack and cast spells in a realistic way. All classes are used including buffers, summoners, bishops e.t.c.
9. Buffer and bishops will cast buff to party members when player has no available or overriden buffs.
10. Bot will enchant their equipent and re-purchase upon failure. Their weapon will also switched between hero weapon and retail weapon when they need to.
11. Bot can move in complex map system and find monsters or players but they can also follow routes for specific paths using configurable XML if you want to.
Preview of some features:
Olympiad
Trade
Store
PvP
Example of a single configurable template in XML:
https://pastebin.com/RXZVGCfA
Price:
270 Euro (Compiled) - 450 Euro (Source)
Contact Me
Discord: https://discord.gg/gKAsAhJNuq
MaxCheaters: https://maxcheaters.com/profile/243647-out-of-time/
Gmail: l2outoftime@gmail.com
RCS Message: +30 698 740 8501
Good day!
Due to the increasing number of questions, "Do you provide services for the client?" - I decided to answer with a separate topic.
I provide services for editing/modifying the client and individual files, namely:
1. Transfer/Creation/Editing locations, geodata.
2. All kinds of work with NPCs, including transfer, animation, adding effects to them and logos.
3. Actually, Transfer/Creation/Edit any EFFECTS, including Abnormal Effects.
4. Any work with weapons, armor, accessories and everything related to it.
5. Create or edit textures, including dynamic textures.
6. Creating a Lobby Screen, Lobby Char Selection (character selection window) and Lobby Char Creation (character creation window).
What I don't do:
1. Coding in any form (except for CB).
I started publishing my work recently, here - YouTube
And here - RuTube
If required, I respect confidentiality.
Any other questions? Welcome to Telegram or PM.
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:
6 answers to this question
Recommended Posts