Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### Eclipse Workspace Patch 1.0
- #P aCis_gameserver
- diff --git config/Tournament.ini config/Tournament.ini
- new file mode 100644
- index 0000000..95364c3
- --- /dev/null
- +++ config/Tournament.ini
- @@ -0,0 +1,157 @@
- +# ================================================
- +# TOURNAMENT (by Rouxy)
- +# ================================================
- +# Tournament event duration in minutes
- +TournamentDuration = 5
- +# Tournament start times
- +TournamentStartTime = 12:00,20:00
- +
- +# Npc Register Id
- +TournamentNpcId = 50009
- +
- +# Npc register tournament coords
- +TournamentNpcLocation = 150086,46733,-3412
- +
- +# Debug enabled
- +Debug = True
- +
- +# List of restricted items in tournament
- +ItemRestrictedList = 57
- +
- +# List of restricted skills in tournament
- +SkillRestrictedList = 360
- +
- +# Time in seconds between search fights
- +TimeBetweenSearchFights = 5
- +
- +# Time that teams will be teleported to arena in seconds
- +TeleportFightTime = 10
- +
- +# Winner team rewards
- +# item1,count1;item2,count2;
- +WinnerRewards = 57,1000;3470,10
- +
- +# Looser team rewards
- +# item1,count1;item2,count2;
- +LooserRewards 57,500;3470,5
- +
- +# Start battle times in seconds
- +FightStartTime_1x1 = 10
- +FightStartTime_2x2 = 10
- +FightStartTime_3x3 = 10
- +FightStartTime_4x4 = 10
- +FightStartTime_5x5 = 10
- +FightStartTime_9x9 = 10
- +
- +# Battle duration in minutes
- +FightDuration_1x1 = 1
- +FightDuration_2x2 = 1
- +FightDuration_3x3 = 1
- +FightDuration_4x4 = 1
- +FightDuration_5x5 = 1
- +FightDuration_9x9 = 1
- +
- +# Fight classes restrictions
- +# ARCHERS
- +ArchersCountAllowed_1x1 = 1
- +ArchersCountAllowed_2x2 = 1
- +ArchersCountAllowed_3x3 = 1
- +ArchersCountAllowed_4x4 = 1
- +ArchersCountAllowed_5x5 = 1
- +ArchersCountAllowed_9x9 = 1
- +
- +# ARCHMAGES
- +ArchmagesCountAllowed_1x1 = 1
- +ArchmagesCountAllowed_2x2 = 1
- +ArchmagesCountAllowed_3x3 = 1
- +ArchmagesCountAllowed_4x4 = 1
- +ArchmagesCountAllowed_5x5 = 1
- +ArchmagesCountAllowed_9x9 = 1
- +
- +# DAGGERS
- +DaggersCountAllowed_1x1 = 1
- +DaggersCountAllowed_2x2 = 1
- +DaggersCountAllowed_3x3 = 1
- +DaggersCountAllowed_4x4 = 1
- +DaggersCountAllowed_5x5 = 1
- +DaggersCountAllowed_9x9 = 1
- +
- +# DOMINATORS
- +DominatorsCountAllowed_1x1 = 1
- +DominatorsCountAllowed_2x2 = 1
- +DominatorsCountAllowed_3x3 = 1
- +DominatorsCountAllowed_4x4 = 1
- +DominatorsCountAllowed_5x5 = 1
- +DominatorsCountAllowed_9x9 = 1
- +
- +# DOOMCRYERS
- +DoomcryersCountAllowed_1x1 = 1
- +DoomcryersCountAllowed_2x2 = 1
- +DoomcryersCountAllowed_3x3 = 1
- +DoomcryersCountAllowed_4x4 = 1
- +DoomcryersCountAllowed_5x5 = 1
- +DoomcryersCountAllowed_9x9 = 1
- +
- +# DREADNOUGHTS
- +DreadnoughtsCountAllowed_1x1 = 1
- +DreadnoughtsCountAllowed_2x2 = 1
- +DreadnoughtsCountAllowed_3x3 = 1
- +DreadnoughtsCountAllowed_4x4 = 1
- +DreadnoughtsCountAllowed_5x5 = 1
- +DreadnoughtsCountAllowed_9x9 = 1
- +
- +# DUELISTS
- +DuelistsCountAllowed_1x1 = 1
- +DuelistsCountAllowed_2x2 = 1
- +DuelistsCountAllowed_3x3 = 1
- +DuelistsCountAllowed_4x4 = 1
- +DuelistsCountAllowed_5x5 = 1
- +DuelistsCountAllowed_9x9 = 1
- +
- +# HEALERS
- +HealersCountAllowed_1x1 = 1
- +HealersCountAllowed_2x2 = 1
- +HealersCountAllowed_3x3 = 1
- +HealersCountAllowed_4x4 = 1
- +HealersCountAllowed_5x5 = 1
- +HealersCountAllowed_9x9 = 1
- +
- +# MYSTIC MUSES
- +MysticMusesCountAllowed_1x1 = 1
- +MysticMusesCountAllowed_2x2 = 1
- +MysticMusesCountAllowed_3x3 = 1
- +MysticMusesCountAllowed_4x4 = 1
- +MysticMusesCountAllowed_5x5 = 1
- +MysticMusesCountAllowed_9x9 = 1
- +
- +# SOULTAKERS
- +SoulTakersCountAllowed_1x1 = 1
- +SoulTakersCountAllowed_2x2 = 1
- +SoulTakersCountAllowed_3x3 = 1
- +SoulTakersCountAllowed_4x4 = 1
- +SoulTakersCountAllowed_5x5 = 1
- +SoulTakersCountAllowed_9x9 = 1
- +
- +# TITANS
- +TitansCountAllowed_1x1 = 1
- +TitansCountAllowed_2x2 = 1
- +TitansCountAllowed_3x3 = 1
- +TitansCountAllowed_4x4 = 1
- +TitansCountAllowed_5x5 = 1
- +TitansCountAllowed_9x9 = 1
- +
- +# STORMSCREAMERS
- +StormScreamersCountAllowed_1x1 = 1
- +StormScreamersCountAllowed_2x2 = 1
- +StormScreamersCountAllowed_3x3 = 1
- +StormScreamersCountAllowed_4x4 = 1
- +StormScreamersCountAllowed_5x5 = 1
- +StormScreamersCountAllowed_9x9 = 1
- +
- +# TANKERS
- +TankersCountAllowed_1x1 = 1
- +TankersCountAllowed_2x2 = 1
- +TankersCountAllowed_3x3 = 1
- +TankersCountAllowed_4x4 = 1
- +TankersCountAllowed_5x5 = 1
- +TankersCountAllowed_9x9 = 1
- diff --git config/character_memo_alt.sql config/character_memo_alt.sql
- new file mode 100644
- index 0000000..06ff8fc
- --- /dev/null
- +++ config/character_memo_alt.sql
- @@ -0,0 +1,11 @@
- +CREATE TABLE `character_memo_alt` (
- + `obj_id` int(11) NOT NULL DEFAULT 0,
- + `name` varchar(255) NOT NULL DEFAULT '0',
- + `value` text NOT NULL,
- + `expire_time` bigint(20) NOT NULL DEFAULT 0,
- + UNIQUE KEY `prim` (`obj_id`,`name`),
- + KEY `obj_id` (`obj_id`),
- + KEY `name` (`name`),
- + KEY `value` (`value`(333)),
- + KEY `expire_time` (`expire_time`)
- +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- diff --git config/tournament_player_data.sql config/tournament_player_data.sql
- new file mode 100644
- index 0000000..af4d429
- --- /dev/null
- +++ config/tournament_player_data.sql
- @@ -0,0 +1,12 @@
- +CREATE TABLE `tournament_player_data` (
- + `obj_id` int(11) DEFAULT NULL,
- + `fight_type` varchar(45) DEFAULT '',
- + `fights_done` int(11) DEFAULT NULL,
- + `victories` int(11) DEFAULT NULL,
- + `defeats` int(11) DEFAULT NULL,
- + `ties` int(11) DEFAULT NULL,
- + `kills` int(11) DEFAULT NULL,
- + `damage` int(11) DEFAULT NULL,
- + `wdt` varchar(11) DEFAULT '',
- + `dpf` varchar(11) DEFAULT ''
- +) ENGINE=InnoDB DEFAULT CHARSET=latin1;
- diff --git java/Base/Instance/Instance.java java/Base/Instance/Instance.java
- new file mode 100644
- index 0000000..75d7118
- --- /dev/null
- +++ java/Base/Instance/Instance.java
- @@ -0,0 +1,48 @@
- +package Base.Instance;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +
- +import net.sf.l2j.gameserver.model.actor.instance.Door;
- +
- +/**
- + * @author Anarchy
- + */
- +public class Instance
- +{
- + private int id;
- + private List<Door> doors;
- +
- + public Instance(int id)
- + {
- + this.id = id;
- + doors = new ArrayList<>();
- + }
- +
- + public void openDoors()
- + {
- + for (Door door : doors)
- + door.openMe();
- + }
- +
- + public void closeDoors()
- + {
- + for (Door door : doors)
- + door.closeMe();
- + }
- +
- + public void addDoor(Door door)
- + {
- + doors.add(door);
- + }
- +
- + public List<Door> getDoors()
- + {
- + return doors;
- + }
- +
- + public int getId()
- + {
- + return id;
- + }
- +}
- \ No newline at end of file
- diff --git java/Base/Instance/InstanceIdFactory.java java/Base/Instance/InstanceIdFactory.java
- new file mode 100644
- index 0000000..5aca326
- --- /dev/null
- +++ java/Base/Instance/InstanceIdFactory.java
- @@ -0,0 +1,17 @@
- +package Base.Instance;
- +
- +import java.util.concurrent.atomic.AtomicInteger;
- +
- +/**
- + * @author Anarchy
- + *
- + */
- +public final class InstanceIdFactory
- +{
- + private static AtomicInteger nextAvailable = new AtomicInteger(1);
- +
- + public synchronized static int getNextAvailable()
- + {
- + return nextAvailable.getAndIncrement();
- + }
- +}
- \ No newline at end of file
- diff --git java/Base/Instance/InstanceManager.java java/Base/Instance/InstanceManager.java
- new file mode 100644
- index 0000000..b9ecc59
- --- /dev/null
- +++ java/Base/Instance/InstanceManager.java
- @@ -0,0 +1,62 @@
- +package Base.Instance;
- +
- +import java.util.Map;
- +import java.util.concurrent.ConcurrentHashMap;
- +
- +import net.sf.l2j.gameserver.model.actor.instance.Door;
- +
- +/**
- + * @author Anarchy
- + *
- + */
- +public class InstanceManager
- +{
- + private Map<Integer, Instance> instances;
- +
- + protected InstanceManager()
- + {
- + instances = new ConcurrentHashMap<>();
- + instances.put(0, new Instance(0));
- + }
- +
- + public void addDoor(int id, Door door)
- + {
- + if (!instances.containsKey(id) || id == 0)
- + return;
- +
- + instances.get(id).addDoor(door);
- + }
- +
- + public void deleteInstance(int id)
- + {
- + if (id == 0)
- + {
- + System.out.println("Attempt to delete instance with id 0.");
- + return;
- + }
- +
- + // delete doors
- + }
- +
- + public synchronized Instance createInstance()
- + {
- + Instance instance = new Instance(InstanceIdFactory.getNextAvailable());
- + instances.put(instance.getId(), instance);
- + return instance;
- + }
- +
- + public Instance getInstance(int id)
- + {
- + return instances.get(id);
- + }
- +
- + public static InstanceManager getInstance()
- + {
- + return SingletonHolder.instance;
- + }
- +
- + private static final class SingletonHolder
- + {
- + protected static final InstanceManager instance = new InstanceManager();
- + }
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Commands/AdminTournament.java java/Base/Tournament/Commands/AdminTournament.java
- new file mode 100644
- index 0000000..bb6e6cf
- --- /dev/null
- +++ java/Base/Tournament/Commands/AdminTournament.java
- @@ -0,0 +1,38 @@
- +package Base.Tournament.Commands;
- +
- +import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +import Base.Tournament.Manager.TournamentManager;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class AdminTournament implements IAdminCommandHandler
- +{
- +
- + @Override
- + public void useAdminCommand(String command, Player player)
- + {
- + if (command.startsWith("admin_tour"))
- + {
- + if (TournamentManager.getInstance().isRunning())
- + TournamentManager.getInstance().finishEvent();
- + else
- + TournamentManager.getInstance().startEvent();
- + }
- +
- + }
- +
- + @Override
- + public String[] getAdminCommandList()
- + {
- +
- + return new String[]
- + {
- + "admin_tour"
- + };
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Commands/VoiceTournament.java java/Base/Tournament/Commands/VoiceTournament.java
- new file mode 100644
- index 0000000..1fb2697
- --- /dev/null
- +++ java/Base/Tournament/Commands/VoiceTournament.java
- @@ -0,0 +1,92 @@
- +package Base.Tournament.Commands;
- +
- +import java.util.StringTokenizer;
- +
- +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
- +import net.sf.l2j.gameserver.model.World;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class VoiceTournament implements IVoicedCommandHandler
- +{
- +
- + @Override
- + public boolean useVoicedCommand(String command, Player player)
- + {
- + StringTokenizer st = new StringTokenizer(command, " ");
- + st.nextToken();
- + TournamentTeam team = player.getTournamentTeam();
- + if (command.startsWith("mytour"))
- + {
- + TournamentManager.getInstance().showHtml(player, "myTour", TournamentFightType.NONE);
- + }
- + if (command.startsWith("tournamentinvite"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (TournamentManager.getInstance().isTournamentTeleporting())
- + {
- + player.sendMessage("Tournament is teleportind players, wait 30 seconds to invite someone.");
- + return false;
- + }
- + String nextMemberName = st.nextToken();
- + Player nextMember = World.getInstance().getPlayer(nextMemberName);
- + if (nextMember == player)
- + {
- + player.sendMessage("You can't invite yourself!");
- + return false;
- + }
- +
- + if (nextMember != null)
- + {
- + if (nextMember.isInTournamentTeam())
- + {
- + player.sendMessage("This player already in Tournament Team.");
- + return false;
- + }
- + if (nextMember.isInParty())
- + {
- + player.sendMessage("You can't players in party. Don't worry, party will be automatically created!");
- + return false;
- + }
- + if (team != null)
- + {
- + if (team.getLeader() != player)
- + {
- + player.sendMessage("Only Leaders can invite players.");
- + return false;
- + }
- + }
- + TournamentManager.getInstance().askJoinTeam(player, nextMember);
- + }
- + else
- + {
- + player.sendMessage("Player " + nextMemberName + " doesn't exists or is not online!");
- + return false;
- + }
- + }
- + return false;
- + }
- +
- + @Override
- + public String[] getVoicedCommandList()
- + {
- +
- + return new String[]
- + {
- + "mytour",
- + "tournamentinvite"
- + };
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Data/TournamentArenaParser.java java/Base/Tournament/Data/TournamentArenaParser.java
- new file mode 100644
- index 0000000..ec48ca8
- --- /dev/null
- +++ java/Base/Tournament/Data/TournamentArenaParser.java
- @@ -0,0 +1,135 @@
- +package Base.Tournament.Data;
- +
- +import java.nio.file.Path;
- +import java.util.ArrayList;
- +import java.util.List;
- +
- +import org.w3c.dom.Document;
- +import org.w3c.dom.NamedNodeMap;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Model.TournamentArena;
- +
- +import net.sf.l2j.commons.data.StatSet;
- +import net.sf.l2j.commons.data.xml.IXmlReader;
- +import net.sf.l2j.commons.random.Rnd;
- +
- +import net.sf.l2j.gameserver.model.location.Location;
- +
- +public class TournamentArenaParser implements IXmlReader
- +{
- +
- + private List<TournamentArena> _arenas = new ArrayList<>();
- + // private int _lastDynamicId = 0;
- +
- + public TournamentArenaParser()
- + {
- + load();
- + }
- +
- + public void reload()
- + {
- + // Reset dynamic id.
- + // _lastDynamicId = 0;
- + _arenas.clear();
- + load();
- + }
- +
- + public static TournamentArenaParser getInstance()
- + {
- + return SingleTonHolder._instance;
- + }
- +
- + private static class SingleTonHolder
- + {
- + protected static TournamentArenaParser _instance = new TournamentArenaParser();
- + }
- +
- + @Override
- + public void load()
- + {
- + parseFile("./data/xml/TournamentData/Arenas.xml");
- + LOGGER.info("Loaded {} Tournament Arenas.", _arenas.size());
- + }
- +
- + @Override
- + public void parseDocument(Document doc, Path path)
- + {
- +
- + // StatsSet used to feed informations. Cleaned on every entry.
- + final StatSet set = new StatSet();
- + forEach(doc, "list", listNode -> forEach(listNode, "arena", arenaNode ->
- + {
- +
- + final NamedNodeMap attrs = arenaNode.getAttributes();
- + // final Node attribute = attrs.getNamedItem("id");
- + // final int arenaId = attribute == null ? _lastDynamicId++ : Integer.parseInt(attribute.getNodeValue());
- +
- + // parse and feed attributes
- + parseAndFeed(attrs, set);
- +
- + final List<Location> teamOneLocs = new ArrayList<>();
- + forEach(arenaNode, "team_one_loc", nodeNode ->
- + {
- + final NamedNodeMap nodeAttrs = nodeNode.getAttributes();
- + teamOneLocs.add(new Location(parseInteger(nodeAttrs, "x"), parseInteger(nodeAttrs, "y"), parseInteger(nodeAttrs, "z")));
- + });
- +
- + final List<Location> teamTwoLocs = new ArrayList<>();
- + forEach(arenaNode, "team_two_loc", nodeNode ->
- + {
- + final NamedNodeMap nodeAttrs = nodeNode.getAttributes();
- + teamTwoLocs.add(new Location(parseInteger(nodeAttrs, "x"), parseInteger(nodeAttrs, "y"), parseInteger(nodeAttrs, "z")));
- + });
- + TournamentArena arena = new TournamentArena(set, teamOneLocs, teamTwoLocs);
- + _arenas.add(arena);
- +
- + }));
- +
- + }
- +
- + public List<TournamentArena> getArenasForType(TournamentFightType type)
- + {
- + List<TournamentArena> list = new ArrayList<>();
- + for (TournamentArena arena : _arenas)
- + {
- + if (arena.getTypes().contains(type))
- + {
- + list.add(arena);
- + }
- + }
- + return list;
- + }
- +
- + public TournamentArena getRandomArenaForType(TournamentFightType type)
- + {
- + return getArenasForType(type).get(Rnd.get(getArenasForType(type).size()));
- + }
- +
- + public TournamentArena getRandomArena()
- + {
- + return _arenas.get(Rnd.get(_arenas.size()));
- + }
- +
- + public TournamentArena getArena(int id)
- + {
- + return _arenas.get(id);
- + }
- +
- + /**
- + * @return the arenas
- + */
- + public List<TournamentArena> getArenas()
- + {
- + return _arenas;
- + }
- +
- + /**
- + * @param arenas the arenas to set
- + */
- + public void setArenas(List<TournamentArena> arenas)
- + {
- + this._arenas = arenas;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Enums/TournamentFightType.java java/Base/Tournament/Enums/TournamentFightType.java
- new file mode 100644
- index 0000000..4482a6a
- --- /dev/null
- +++ java/Base/Tournament/Enums/TournamentFightType.java
- @@ -0,0 +1,16 @@
- +package Base.Tournament.Enums;
- +
- +/**
- + * @author Rouxy
- + */
- +public enum TournamentFightType
- +{
- + NONE,
- + F1X1,
- + F2X2,
- + F3X3,
- + F4X4,
- + F5X5,
- + F9X9;
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Manager/TournamentManager.java java/Base/Tournament/Manager/TournamentManager.java
- new file mode 100644
- index 0000000..3df8e6c
- --- /dev/null
- +++ java/Base/Tournament/Manager/TournamentManager.java
- @@ -0,0 +1,1247 @@
- +package Base.Tournament.Manager;
- +
- +import java.sql.Connection;
- +import java.sql.PreparedStatement;
- +import java.sql.ResultSet;
- +import java.text.SimpleDateFormat;
- +import java.util.ArrayList;
- +import java.util.Calendar;
- +import java.util.HashMap;
- +import java.util.LinkedList;
- +import java.util.List;
- +import java.util.Map;
- +import java.util.StringTokenizer;
- +import java.util.concurrent.ScheduledFuture;
- +import java.util.logging.Logger;
- +
- +import net.sf.l2j.commons.pool.ConnectionPool;
- +import net.sf.l2j.commons.pool.ThreadPool;
- +import net.sf.l2j.commons.random.Rnd;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.data.manager.SpawnManager;
- +import net.sf.l2j.gameserver.data.sql.PlayerInfoTable;
- +import net.sf.l2j.gameserver.data.xml.NpcData;
- +import net.sf.l2j.gameserver.enums.SayType;
- +import net.sf.l2j.gameserver.handler.AdminCommandHandler;
- +import net.sf.l2j.gameserver.handler.VoicedCommandHandler;
- +import net.sf.l2j.gameserver.model.World;
- +import net.sf.l2j.gameserver.model.actor.Creature;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
- +
- +import net.sf.l2j.gameserver.model.location.Location;
- +import net.sf.l2j.gameserver.model.spawn.Spawn;
- +import net.sf.l2j.gameserver.network.SystemMessageId;
- +import net.sf.l2j.gameserver.network.serverpackets.ConfirmDlg;
- +import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket;
- +import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
- +import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
- +import net.sf.l2j.util.Mysql;
- +import net.sf.l2j.util.PlayerVariables;
- +
- +import Base.Tournament.Commands.AdminTournament;
- +import Base.Tournament.Commands.VoiceTournament;
- +import Base.Tournament.Data.TournamentArenaParser;
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Model.TournamentTeam;
- +import Base.Tournament.Task.TournamentFight;
- +import Base.Tournament.Task.TournamentSearchFights;
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentManager
- +{
- + private static final Logger _log = Logger.getLogger(TournamentManager.class.getName());
- + private Map<TournamentTeam, TournamentFightType> registeredTournamentTeams = new HashMap<>();
- + private Map<Integer, TournamentFight> currentFights = new HashMap<>();
- + private Calendar nextEvent;
- + private final SimpleDateFormat format = new SimpleDateFormat("HH:mm");
- + private Spawn _npcSpawn;
- + private boolean running;
- + private ScheduledFuture<?> finishEventTask = null;
- + private boolean tournamentTeleporting;
- + private int allTimeFights = 0;
- +
- + public TournamentManager()
- + {
- + TournamentArenaParser.getInstance();
- + ThreadPool.scheduleAtFixedRate(new TournamentSearchFights(TournamentFightType.F1X1), 0, Config.TOURNAMENT_TIME_SEARCH_FIGHTS * 1000);
- + ThreadPool.scheduleAtFixedRate(new TournamentSearchFights(TournamentFightType.F2X2), 0, Config.TOURNAMENT_TIME_SEARCH_FIGHTS * 1000);
- + ThreadPool.scheduleAtFixedRate(new TournamentSearchFights(TournamentFightType.F3X3), 0, Config.TOURNAMENT_TIME_SEARCH_FIGHTS * 1000);
- + ThreadPool.scheduleAtFixedRate(new TournamentSearchFights(TournamentFightType.F4X4), 0, Config.TOURNAMENT_TIME_SEARCH_FIGHTS * 1000);
- + ThreadPool.scheduleAtFixedRate(new TournamentSearchFights(TournamentFightType.F5X5), 0, Config.TOURNAMENT_TIME_SEARCH_FIGHTS * 1000);
- + ThreadPool.scheduleAtFixedRate(new TournamentSearchFights(TournamentFightType.F9X9), 0, Config.TOURNAMENT_TIME_SEARCH_FIGHTS * 1000);
- + VoicedCommandHandler.getInstance().registerHandler(new VoiceTournament());
- + AdminCommandHandler.getInstance().registerHandler(new AdminTournament());
- +
- + startCalculationOfNextEventTime();
- + }
- +
- + public static TournamentManager getInstance()
- + {
- + return SingleTonHolder._instance;
- + }
- +
- + private static class SingleTonHolder
- + {
- + protected static TournamentManager _instance = new TournamentManager();
- + }
- +
- + public String getNextTime()
- + {
- + if (nextEvent.getTime() != null)
- + {
- + return format.format(nextEvent.getTime());
- + }
- + return "Erro";
- + }
- +
- + public void startCalculationOfNextEventTime()
- + {
- + try
- + {
- + Calendar currentTime = Calendar.getInstance();
- + Calendar testStartTime = null;
- + long flush2 = 0L;
- + long timeL = 0L;
- + int count = 0;
- + for (String timeOfDay : Config.TOURNAMENT_EVENT_INTERVAL_BY_TIME_OF_DAY)
- + {
- + testStartTime = Calendar.getInstance();
- + testStartTime.setLenient(true);
- + String[] splitTimeOfDay = timeOfDay.split(":");
- + testStartTime.set(11, Integer.parseInt(splitTimeOfDay[0]));
- + testStartTime.set(12, Integer.parseInt(splitTimeOfDay[1]));
- + testStartTime.set(13, 0);
- + if (testStartTime.getTimeInMillis() < currentTime.getTimeInMillis())
- + {
- + testStartTime.add(5, 1);
- + }
- + timeL = testStartTime.getTimeInMillis() - currentTime.getTimeInMillis();
- + if (count == 0)
- + {
- + flush2 = timeL;
- + nextEvent = testStartTime;
- + }
- + if (timeL < flush2)
- + {
- + flush2 = timeL;
- + nextEvent = testStartTime;
- + }
- + count++;
- + }
- + _log.info("[Tournament]: Next Event time: " + nextEvent.getTime().toString());
- + ThreadPool.schedule(new StartEventTask(), flush2);
- + }
- + catch (Exception e)
- + {
- + System.out.println("[Tournament]: " + e);
- + }
- + }
- +
- + public static void toAllOnlinePlayers(L2GameServerPacket packet)
- + {
- + for (Player player : World.getInstance().getPlayers())
- + {
- + if (player.isOnline())
- + player.sendPacket(packet);
- + }
- + }
- +
- + public void announceToAllOnlinePlayers(String text)
- + {
- + for (Player player : World.getInstance().getPlayers())
- + {
- + if (player.isOnline())
- + player.sendChatMessage(0, SayType.CRITICAL_ANNOUNCE, "", text);
- + }
- + }
- +
- + class FinishEventTask implements Runnable
- + {
- + FinishEventTask()
- + {
- +
- + }
- +
- + @Override
- + public void run()
- + {
- + finishEvent();
- +
- + }
- +
- + }
- +
- + public void finishEvent()
- + {
- + _log.info("----------------------------------------------------------------------------");
- + _log.info("[Tournament]: Event Finished.");
- + _log.info("----------------------------------------------------------------------------");
- + announceToAllOnlinePlayers("[Tournament]: Event Finished");
- + announceToAllOnlinePlayers("[Tournament]: All fights have been stored");
- + announceToAllOnlinePlayers("[Tournament]: Next event: " + getNextTime());
- + unspawnNpc();
- + setRunning(false);
- + if (getFinishEventTask() != null)
- + {
- + getFinishEventTask().cancel(true);
- + finishEventTask = null;
- + }
- + }
- +
- + public void startEvent()
- + {
- + _log.info("----------------------------------------------------------------------------");
- + _log.info("[Tournament]: Event Started.");
- + _log.info("----------------------------------------------------------------------------");
- + spawnNpcEvent();
- + setRunning(true);
- + announceToAllOnlinePlayers("[Tournament]: Party and Non Event PvP");
- + announceToAllOnlinePlayers("[Tournament]: Battles: 1x1 / 2x2 / 3x3 / 4x4 / 5x5 / 9x9");
- + announceToAllOnlinePlayers("[Tournament]: Teleport in the GK to (Tournament) Zone");
- + announceToAllOnlinePlayers("[Tournament]: Event duration: " + Config.TOURNAMENT_EVENT_DURATION + " minutes");
- + setFinishEventTask(ThreadPool.schedule(new FinishEventTask(), Config.TOURNAMENT_EVENT_DURATION * 60 * 1000));
- + // for (Player player : World.getInstance().getPlayers())
- + // {
- + // askTeleport(player);
- + // }
- + }
- +
- + class StartEventTask implements Runnable
- + {
- + @Override
- + public void run()
- + {
- + startEvent();
- +
- + }
- +
- + }
- +
- + public void unspawnNpc()
- + {
- + if (_npcSpawn == null)
- + {
- + return;
- + }
- + _npcSpawn.getNpc().deleteMe();
- +
- + SpawnManager.getInstance().deleteSpawn(_npcSpawn);
- + }
- +
- + public void spawnNpcEvent()
- + {
- +
- + NpcTemplate tmpl = NpcData.getInstance().getTemplate(Config.TOURNAMENT_NPC_ID);
- + Location npcLoc = Config.TOURNAMENT_NPC_LOCATION;
- + try
- + {
- + _npcSpawn = new Spawn(tmpl);
- +
- + _npcSpawn.setLoc(npcLoc.getX(), npcLoc.getY(), npcLoc.getZ(), Rnd.get(65535));
- + _npcSpawn.setRespawnDelay(1);
- +
- + SpawnManager.getInstance().addSpawn(_npcSpawn, false);
- +
- +
- + _npcSpawn.doSpawn(false);
- + _npcSpawn.getNpc().getStatus().setHp(9.99999999E8D);
- + _npcSpawn.getNpc().isAggressive();
- + _npcSpawn.getNpc().decayMe();
- + _npcSpawn.getNpc().spawnMe(_npcSpawn.getNpc().getX(), _npcSpawn.getNpc().getY(), _npcSpawn.getNpc().getZ());
- + _npcSpawn.getNpc().broadcastPacket(new MagicSkillUse(_npcSpawn.getNpc(), _npcSpawn.getNpc(), 1034, 1, 1, 1));
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- +
- + }
- +
- + public void askJoinTeam(Player leader, Player target)
- + {
- + ConfirmDlg confirm = new ConfirmDlg(SystemMessageId.S1.getId());
- + confirm.addString("Do you wish to join " + leader.getName() + "'s Tournament Team?");
- + confirm.addTime(30000);
- + target.setTournamentTeamRequesterId(leader.getObjectId());
- + target.setTournamentTeamBeingInvited(true);
- + target.sendPacket(confirm);
- + leader.sendMessage(target.getName() + " was invited to your team.");
- +
- + }
- +
- + public void askTeleport(Player player)
- + {
- + ConfirmDlg confirm = new ConfirmDlg(SystemMessageId.S1.getId());
- + confirm.addString("Do you wish to teleport to Tournament Zone?");
- + confirm.addTime(30000);
- + setTournamentTeleporting(true);
- + ThreadPool.schedule(new Runnable()
- + {
- + @Override
- + public void run()
- + {
- + setTournamentTeleporting(false);
- + }
- + }, 30000);
- + player.sendPacket(confirm);
- + }
- +
- + public void debugInfo(String text)
- + {
- + _log.info("[Tournament]: " + text);
- + }
- +
- + public List<TournamentFight> getCurrentFights(TournamentFightType type)
- + {
- + List<TournamentFight> list = new ArrayList<>();
- + for (Map.Entry<Integer, TournamentFight> entry : currentFights.entrySet())
- + {
- + if (entry.getValue().getFightType() == type)
- + list.add(entry.getValue());
- + }
- + return list;
- + }
- +
- + public TournamentFight getFight(int id)
- + {
- + return currentFights.get(id);
- + }
- +
- + public Map<Integer, TournamentFight> getCurrentFights()
- + {
- + return currentFights;
- + }
- +
- + public void setCurrentFights(Map<Integer, TournamentFight> currentFights)
- + {
- + this.currentFights = currentFights;
- + }
- +
- + public void onDisconnect(Player player)
- + {
- + if (player.isInTournamentTeam())
- + {
- + TournamentTeam team = player.getTournamentTeam();
- + team.getMembers().remove(player);
- + team.sendMessage(player.getName() + " left the Tournament Team.");
- + if (team.getMembers().size() <= 1)
- + {
- + team.disbandTeam();
- + return;
- + }
- + if (team.isLeader(player))
- + {
- + Player newLeader = team.getMembers().get(Rnd.get(team.getMembers().size()));
- + if (newLeader != null)
- + {
- + team.setLeader(newLeader);
- + newLeader.sendMessage("You has became the new Tournament Team Leader");
- + }
- + team.sendMessage(newLeader + " has became the new Team Leader");
- +
- + }
- + }
- + }
- +
- + public void onKill(Creature killer, Player killed)
- + {
- + if (killed.isInTournamentMatch())
- + {
- + if (killer instanceof Player)
- + {
- + Player killerPlayer = killer.getActingPlayer();
- + if (killerPlayer.isInTournamentMatch())
- + {
- + if (killerPlayer.getTournamentFightId() == killed.getTournamentFightId() && killed.getTournamentFightId() != 0)
- + {
- + TournamentFight fight = TournamentManager.getInstance().getFight(killed.getTournamentFightId());
- + if (fight != null)
- + {
- + // add single kill to killer
- + killerPlayer.addTournamentKill(killerPlayer.getTournamentFightType());
- + killerPlayer.sendMessage("Killed Tournament Enemy: " + killed.getName());
- +
- + if (killed.getTournamentTeam() != null)
- + {
- + if (killed.getTournamentTeam().teamIsDefeated())
- + {
- + fight.finish();
- + }
- + }
- + }
- + }
- + }
- + }
- + }
- + }
- +
- + public List<TournamentTeam> getRegisteredTeamsByType(TournamentFightType type)
- + {
- + List<TournamentTeam> teams = new ArrayList<>();
- + for (Map.Entry<TournamentTeam, TournamentFightType> entry : registeredTournamentTeams.entrySet())
- + {
- + if (entry.getValue().equals(type))
- + {
- + teams.add(entry.getKey());
- + }
- + }
- + return teams;
- + }
- +
- + /**
- + * @return the tournamentTeams
- + */
- + public Map<TournamentTeam, TournamentFightType> getRegisteredTournamentTeams()
- + {
- + return registeredTournamentTeams;
- + }
- +
- + /**
- + * @param tournamentTeams the tournamentTeams to set
- + */
- + public void setTournamentTeams(Map<TournamentTeam, TournamentFightType> tournamentTeams)
- + {
- + this.registeredTournamentTeams = tournamentTeams;
- + }
- +
- + public boolean isInTournamentMode(Player player)
- + {
- + for (Map.Entry<TournamentTeam, TournamentFightType> entry : registeredTournamentTeams.entrySet())
- + {
- + if (entry.getKey().getMembers().contains(player))
- + {
- + return true;
- + }
- +
- + }
- + return false;
- + }
- +
- + // Npc html part
- +
- + public void showHtml(Player player, String page, TournamentFightType type)
- + {
- + NpcHtmlMessage htm = new NpcHtmlMessage(0);
- + htm.setFile("data/html/en/mods/tournament/" + page + ".htm");
- +
- + htm.replace("%missingMembers%", getMembersMessageForFightType(player, type));
- + htm.replace("%memberslist%", player.getTournamentTeam() != null ? generateMemberList(player.getTournamentTeam()) : "<br><font color=ff0000>You haven't a Tournament Team</font>");
- + htm.replace("%inviteBoxRegButton%", getInviteBoxOrRegisterButton(player, type));
- + htm.replace("%fightType%", type.equals(TournamentFightType.NONE) ? "" : type.name().substring(1).toLowerCase());
- +
- + // Fight Data
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentVictories().entrySet())
- + {
- + htm.replace("%victories" + entry.getKey().name() + "%", player.getTournamentVictories().get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentDefeats().entrySet())
- + {
- + htm.replace("%defeats" + entry.getKey().name() + "%", player.getTournamentDefeats().get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentTies().entrySet())
- + {
- + htm.replace("%ties" + entry.getKey().name() + "%", player.getTournamentTies().get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentKills().entrySet())
- + {
- + htm.replace("%kills" + entry.getKey().name() + "%", player.getTournamentKills().get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentDamage().entrySet())
- + {
- + htm.replace("%damage" + entry.getKey().name() + "%", player.getTournamentDamage().get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentDamage().entrySet())
- + {
- + htm.replace("%dpf" + entry.getKey().name() + "%", getDamagePerFight(player, entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentVictories().entrySet())
- + {
- + htm.replace("%fightsDone" + entry.getKey().name() + "%", player.getTournamentFightsDone(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentVictories().entrySet())
- + {
- + htm.replace("%teamsReg" + entry.getKey().name() + "%", registeredTournamentTeams.size());
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentVictories().entrySet())
- + {
- + htm.replace("%activeFights" + entry.getKey().name() + "%", getCurrentFights(entry.getKey()).size());
- + }
- +
- + htm.replace("%allTimeFights%", getAllTimeFights());
- + htm.replace("%tourPoints%", player.getTournamentPoints());
- + htm.replace("%killstotal%", player.getTotalTournamentKills());
- + htm.replace("%totalDmg%", player.getTournamentTotalDamage());
- + htm.replace("%playerName%", player.getName());
- + htm.replace("%dpfTotal%", getDamagePerFight(player));
- + htm.replace("%wdt%", getWinDefeatTie(player));
- + htm.replace("%totalFights%", player.getTotalTournamentFightsDone());
- +
- + player.sendPacket(htm);
- + }
- +
- + public String getInviteBoxOrRegisterButton(Player player, TournamentFightType type)
- + {
- + StringBuilder sb = new StringBuilder();
- + if (getMissingMembersForFightType(player, type) == 0)
- + {
- + sb.append("<table width=300>");
- + sb.append("<tr>");
- + sb.append("<td align=center><font color=LEVEL> Your team is ready!!</font></td>");
- + sb.append("</tr>");
- + sb.append("</table>");
- + }
- + else
- + {
- + sb.append("<center>");
- + sb.append("Type the name of your partner or use command: <br1><font color=994992>\".tournamentinvite playername\"</font>");
- + sb.append("</center>");
- + sb.append("<table width=300>");
- + sb.append("<tr>");
- + sb.append("<td>Player Name</td>");
- + sb.append("<td><edit var=\"playerName\" width=120 height=15></td>");
- + sb.append("<td><button value=\"Invite\" action=\"bypass -h bp_inviteTournamentMember $playerName\" width=45 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"></td>");
- + sb.append("</tr>");
- + sb.append("</table>");
- + }
- +
- + return sb.toString();
- + }
- +
- + public String getMembersMessageForFightType(Player player, TournamentFightType type)
- + {
- + if (!player.isInTournamentTeam())
- + {
- + return "<br><font color=ff0000>You haven't a Tournament Team</font>";
- + }
- + if (type != TournamentFightType.NONE)
- + {
- + return "<br>You need to invite <font color=LEVEL>" + getMissingMembersForFightType(player, type) + "</font> to register " + type.name().substring(1).toLowerCase() + " fights.";
- + }
- + return "";
- + }
- +
- + public int getMissingMembersForFightType(Player player, TournamentFightType type)
- + {
- + int membersCount = 0;
- + if (!player.isInTournamentTeam())
- + {
- + return -1;
- + }
- + membersCount = player.getTournamentTeam().getMembers().size();
- + switch (type)
- + {
- + case F1X1:
- + return 0;
- + case F2X2:
- + return 2 - membersCount;
- + case F3X3:
- + return 3 - membersCount;
- + case F4X4:
- + return 4 - membersCount;
- + case F5X5:
- + return 5 - membersCount;
- + case F9X9:
- + return 9 - membersCount;
- + default:
- + return -1;
- + }
- + }
- +
- + public String generateMemberList(TournamentTeam team)
- + {
- + StringBuilder sb = new StringBuilder();
- + int bgcolor = 0;
- + for (Player member : team.getMembers())
- + {
- + sb.append("<img src=\"Sek.cbui371\" width=300 height=1>");
- + if (bgcolor % 2 == 0)
- + sb.append("<table width=315 bgcolor=090000>");
- + else
- + sb.append("<table width=315 bgcolor=000000>");
- +
- + sb.append("<tr>");
- + sb.append("<td fixwidth=50></td>");
- + sb.append("<td align=center>");
- + sb.append("<font color=LEVEL>" + member.getName() + "</font>");
- + sb.append("</td>");
- + sb.append("<td fixwidth=50></td>");
- + sb.append("</tr>");
- + sb.append("</table>");
- + bgcolor++;
- + }
- +
- + return sb.toString();
- + }
- +
- + public void onPlayerEnter(Player player)
- + {
- + // catch data from memo
- + loadTournamentData(player);
- +
- + // check data and insert if have no result for all types
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentVictories().entrySet())
- + {
- + checkData(player, entry.getKey());
- + }
- + }
- +
- + public void checkData(Player player, TournamentFightType type)
- + {
- +
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT * FROM tournament_player_data WHERE obj_id=? AND fight_type=?");
- + offline.setInt(1, player.getObjectId());
- + offline.setString(2, type.name());
- + rs = offline.executeQuery();
- + boolean hasResult = rs.next();
- + if (!hasResult)
- + {
- + insertData(player, type);
- + }
- +
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- +
- + }
- +
- + public void insertData(Player player, TournamentFightType type)
- + {
- +
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("REPLACE INTO tournament_player_data (obj_id, fight_type, fights_done, victories, defeats, ties, kills, damage, wdt, dpf) VALUES (?,?,?,?,?,?,?,?,?,?)");
- + offline.setInt(1, player.getObjectId());
- + offline.setString(2, type.name());
- + offline.setInt(3, player.getTotalTournamentFightsDone());
- + offline.setInt(4, player.getTournamentVictories().get(type));
- + offline.setInt(5, player.getTournamentDefeats().get(type));
- + offline.setInt(6, player.getTournamentTies().get(type));
- + offline.setInt(7, player.getTournamentKills().get(type));
- + offline.setInt(8, player.getTournamentDamage().get(type));
- + offline.setString(9, "" + getWinDefeatTie(player, type));
- + offline.setInt(10, getDamagePerFight(player, type));
- + offline.execute();
- +
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- +
- + }
- +
- + public void updateData(Player player, TournamentFightType type)
- + {
- +
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("UPDATE tournament_player_data SET fights_done=?, victories=?, defeats=?, ties=?, kills=?, damage=?, wdt=?, dpf=? WHERE obj_id=? AND fight_type=?");
- + offline.setInt(1, player.getTotalTournamentFightsDone());
- + offline.setInt(2, player.getTournamentVictories().get(type));
- + offline.setInt(3, player.getTournamentDefeats().get(type));
- + offline.setInt(4, player.getTournamentTies().get(type));
- + offline.setInt(5, player.getTournamentKills().get(type));
- + offline.setInt(6, player.getTournamentDamage().get(type));
- + offline.setString(7, "" + getWinDefeatTie(player, type));
- + offline.setInt(8, getDamagePerFight(player, type));
- + offline.setInt(9, player.getObjectId());
- + offline.setString(10, type.name());
- + offline.execute();
- +
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- +
- + }
- +
- + public void initializeTournamentMaps(Player player)
- + {
- + player.getTournamentDamage().put(TournamentFightType.F1X1, 0);
- + player.getTournamentDamage().put(TournamentFightType.F2X2, 0);
- + player.getTournamentDamage().put(TournamentFightType.F3X3, 0);
- + player.getTournamentDamage().put(TournamentFightType.F4X4, 0);
- + player.getTournamentDamage().put(TournamentFightType.F5X5, 0);
- + player.getTournamentDamage().put(TournamentFightType.F9X9, 0);
- +
- + player.getTournamentDefeats().put(TournamentFightType.F1X1, 0);
- + player.getTournamentDefeats().put(TournamentFightType.F2X2, 0);
- + player.getTournamentDefeats().put(TournamentFightType.F3X3, 0);
- + player.getTournamentDefeats().put(TournamentFightType.F4X4, 0);
- + player.getTournamentDefeats().put(TournamentFightType.F5X5, 0);
- + player.getTournamentDefeats().put(TournamentFightType.F9X9, 0);
- +
- + player.getTournamentVictories().put(TournamentFightType.F1X1, 0);
- + player.getTournamentVictories().put(TournamentFightType.F2X2, 0);
- + player.getTournamentVictories().put(TournamentFightType.F3X3, 0);
- + player.getTournamentVictories().put(TournamentFightType.F4X4, 0);
- + player.getTournamentVictories().put(TournamentFightType.F5X5, 0);
- + player.getTournamentVictories().put(TournamentFightType.F9X9, 0);
- +
- + player.getTournamentTies().put(TournamentFightType.F1X1, 0);
- + player.getTournamentTies().put(TournamentFightType.F2X2, 0);
- + player.getTournamentTies().put(TournamentFightType.F3X3, 0);
- + player.getTournamentTies().put(TournamentFightType.F4X4, 0);
- + player.getTournamentTies().put(TournamentFightType.F5X5, 0);
- + player.getTournamentTies().put(TournamentFightType.F9X9, 0);
- +
- + player.getTournamentKills().put(TournamentFightType.F1X1, 0);
- + player.getTournamentKills().put(TournamentFightType.F2X2, 0);
- + player.getTournamentKills().put(TournamentFightType.F3X3, 0);
- + player.getTournamentKills().put(TournamentFightType.F4X4, 0);
- + player.getTournamentKills().put(TournamentFightType.F5X5, 0);
- + player.getTournamentKills().put(TournamentFightType.F9X9, 0);
- + }
- +
- + // store/load fights methods
- + public void loadTournamentData(Player player)
- + {
- + initializeTournamentMaps(player);
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT * FROM character_memo_alt WHERE obj_id =?");
- + offline.setInt(1, player.getObjectId());
- + rs = offline.executeQuery();
- +
- + while (rs.next())
- + {
- + if (rs.getString("name").startsWith("Tournament"))
- + {
- + StringTokenizer st = new StringTokenizer(rs.getString("name"), "-");
- + st.nextToken(); // "Tournament"
- + switch (st.nextToken())
- + {
- + case "Victories":
- + if (st.hasMoreTokens())
- + {
- + player.getTournamentVictories().put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- + case "Defeats":
- + if (st.hasMoreTokens())
- + {
- + player.getTournamentDefeats().put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- + case "Ties":
- + if (st.hasMoreTokens())
- + {
- + player.getTournamentTies().put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- + case "Kills":
- + if (st.hasMoreTokens())
- + {
- + player.getTournamentKills().put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- +
- + case "Damage":
- + if (st.hasMoreTokens())
- + {
- + player.getTournamentDamage().put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- + case "Points":
- + player.setTournamentPoints(rs.getInt("value"));
- + break;
- + }
- +
- + }
- +
- + }
- +
- + con.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- + }
- +
- + public int getTournamentPlayerFightsDone(int objectId, TournamentFightType type)
- + {
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + int fights = 0;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT * FROM character_memo_alt WHERE obj_id =?");
- + offline.setInt(1, objectId);
- + rs = offline.executeQuery();
- +
- + while (rs.next())
- + {
- + if (rs.getString("name").startsWith("Tournament"))
- + {
- + StringTokenizer st = new StringTokenizer(rs.getString("name"), "-");
- + st.nextToken(); // "Tournament"
- + switch (st.nextToken())
- + {
- + case "Victories":
- + case "Defeats":
- + case "Ties":
- + if (st.hasMoreTokens() && st.nextToken().startsWith(type.name()))
- + {
- + fights += rs.getInt("value");
- + }
- + break;
- +
- + }
- +
- + }
- +
- + }
- +
- + con.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- + return fights;
- + }
- +
- + public void showPlayerTournamentData(Player player, int targetObjectId, TournamentFightType type, Map<TournamentFightType, Integer> tournamentKills, Map<TournamentFightType, Integer> tournamentVictories, Map<TournamentFightType, Integer> tournamentDefeats, Map<TournamentFightType, Integer> tournamentTies, Map<TournamentFightType, Integer> tournamentDamage)
- + {
- + NpcHtmlMessage htm = new NpcHtmlMessage(0);
- + htm.setFile("data/html/en/mods/tournament/ranking/info/playerInfo" + type.name() + ".htm");
- +
- + // Fight Data
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentVictories.entrySet())
- + {
- + htm.replace("%victories" + entry.getKey().name() + "%", tournamentVictories.get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentDefeats.entrySet())
- + {
- + htm.replace("%defeats" + entry.getKey().name() + "%", tournamentDefeats.get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentTies.entrySet())
- + {
- + htm.replace("%ties" + entry.getKey().name() + "%", tournamentTies.get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentKills.entrySet())
- + {
- + htm.replace("%kills" + entry.getKey().name() + "%", tournamentKills.get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentDamage.entrySet())
- + {
- + htm.replace("%damage" + entry.getKey().name() + "%", tournamentDamage.get(entry.getKey()));
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentDamage.entrySet())
- + {
- + htm.replace("%dpf" + entry.getKey().name() + "%", "Not Showing");
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentVictories().entrySet())
- + {
- + htm.replace("%fightsDone" + entry.getKey().name() + "%", getTournamentPlayerFightsDone(targetObjectId, type));
- + }
- +
- + htm.replace("%tourPoints%", player.getTournamentPoints());
- + htm.replace("%killstotal%", player.getTotalTournamentKills());
- + htm.replace("%totalDmg%", player.getTournamentTotalDamage());
- + htm.replace("%playerName%", player.getName());
- + htm.replace("%dpfTotal%", getDamagePerFight(player));
- + htm.replace("%wdt%", getWinDefeatTie(player));
- + htm.replace("%totalFights%", player.getTotalTournamentFightsDone());
- +
- + player.sendPacket(htm);
- + }
- +
- + public void showPlayerRankingData(Player player, int targetObjectId, TournamentFightType type)
- + {
- + Map<TournamentFightType, Integer> tournamentKills = new HashMap<>();
- + Map<TournamentFightType, Integer> tournamentVictories = new HashMap<>();
- + Map<TournamentFightType, Integer> tournamentDefeats = new HashMap<>();
- + Map<TournamentFightType, Integer> tournamentTies = new HashMap<>();
- + Map<TournamentFightType, Integer> tournamentDamage = new HashMap<>();
- +
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT * FROM character_memo_alt WHERE obj_id =?");
- + offline.setInt(1, targetObjectId);
- + rs = offline.executeQuery();
- +
- + while (rs.next())
- + {
- + if (rs.getString("name").startsWith("Tournament"))
- + {
- + StringTokenizer st = new StringTokenizer(rs.getString("name"), "-");
- + st.nextToken(); // "Tournament"
- + switch (st.nextToken())
- + {
- + case "Victories":
- + if (st.hasMoreTokens())
- + {
- + tournamentVictories.put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- + case "Defeats":
- + if (st.hasMoreTokens())
- + {
- + tournamentDefeats.put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- + case "Ties":
- + if (st.hasMoreTokens())
- + {
- + tournamentTies.put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- + case "Kills":
- + if (st.hasMoreTokens())
- + {
- + tournamentKills.put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- +
- + case "Damage":
- + if (st.hasMoreTokens())
- + {
- + tournamentDamage.put(TournamentFightType.valueOf(st.nextToken()), rs.getInt("value"));
- + }
- + break;
- +
- + }
- +
- + }
- +
- + }
- +
- + con.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- +
- + showPlayerTournamentData(player, targetObjectId, type, tournamentKills, tournamentVictories, tournamentDefeats, tournamentTies, tournamentDamage);
- + }
- +
- + class WDTRecord
- + {
- + String playerName;
- +
- + }
- +
- + public void storeTournamentData(Player player)
- + {
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentVictories().entrySet())
- + {
- + PlayerVariables.setVar(player, "Tournament-Victories-" + entry.getKey().name(), entry.getValue(), -1);
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentDefeats().entrySet())
- + {
- + PlayerVariables.setVar(player, "Tournament-Defeats-" + entry.getKey().name(), entry.getValue(), -1);
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentTies().entrySet())
- + {
- + PlayerVariables.setVar(player, "Tournament-Ties-" + entry.getKey().name(), entry.getValue(), -1);
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentKills().entrySet())
- + {
- + PlayerVariables.setVar(player, "Tournament-Kills-" + entry.getKey().name(), entry.getValue(), -1);
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentDamage().entrySet())
- + {
- + PlayerVariables.setVar(player, "Tournament-Damage-" + entry.getKey().name(), entry.getValue(), -1);
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentDamage().entrySet())
- + {
- + PlayerVariables.setVar(player, "Tournament-WDT-" + entry.getKey().name(), String.valueOf(getWinDefeatTie(player, entry.getKey())), -1);
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentDamage().entrySet())
- + {
- + PlayerVariables.setVar(player, "Tournament-DPF-" + entry.getKey().name(), String.valueOf(getDamagePerFight(player, entry.getKey())), -1);
- + }
- +
- + PlayerVariables.setVar(player, "Tournament-Points", player.getTournamentPoints(), -1);
- +
- + }
- +
- + /**
- + * @return the started
- + */
- + public boolean isRunning()
- + {
- + return running;
- + }
- +
- + /**
- + * @param started the started to set
- + */
- + public void setRunning(boolean started)
- + {
- + this.running = started;
- + }
- +
- + /**
- + * @return the finishEvent
- + */
- + public ScheduledFuture<?> getFinishEventTask()
- + {
- + return finishEventTask;
- + }
- +
- + /**
- + * @param finishEvent the finishEvent to set
- + */
- + public void setFinishEventTask(ScheduledFuture<?> finishEvent)
- + {
- + this.finishEventTask = finishEvent;
- + }
- +
- + /**
- + * @return the tournamentTeleporting
- + */
- + public boolean isTournamentTeleporting()
- + {
- + return tournamentTeleporting;
- + }
- +
- + /**
- + * @param tournamentTeleporting the tournamentTeleporting to set
- + */
- + public void setTournamentTeleporting(boolean tournamentTeleporting)
- + {
- + this.tournamentTeleporting = tournamentTeleporting;
- + }
- +
- + public double getDamagePerFight(int totalDamage, int totalFightsDone)
- + {
- + double dpf = 0;
- + if (totalFightsDone == 0)
- + {
- + return 0;
- + }
- + dpf = (totalDamage / totalFightsDone * 1000);
- + return dpf;
- + }
- +
- + public int getDamagePerFight(Player player, TournamentFightType type)
- + {
- + int dpf = 0;
- + int totalDamage = player.getTournamentTotalDamage();
- + int totalFightsDone = player.getTournamentFightsDone(type);
- + if (totalFightsDone == 0)
- + {
- + return 0;
- + }
- + dpf = (totalDamage / totalFightsDone);
- + return dpf;
- + }
- +
- + public double getWinDefeatTie(int totalFightsDone, int totalVictories, int totalDefeats, int totalTies)
- + {
- + int ratioByFight = 1;
- + double playerWDT = 0;
- + if (totalFightsDone == 0)
- + {
- + return 0;
- + }
- + playerWDT = ratioByFight * (((3) * totalVictories) + ((-3) * totalDefeats) + (totalTies)) / totalFightsDone;
- + return playerWDT;
- + }
- +
- + public double getDamagePerFight(Player player)
- + {
- + double dpf = 0;
- + int totalDamage = player.getTournamentTotalDamage();
- + int totalFightsDone = player.getTotalTournamentFightsDone();
- + if (totalFightsDone == 0)
- + {
- + return 0;
- + }
- + dpf = (totalDamage / totalFightsDone);
- + return dpf;
- + }
- +
- + public double getWinDefeatTie(Player player)
- + {
- + int ratioByFight = 1;
- + double playerWDT = 0;
- + int totalFightsDone = player.getTotalTournamentFightsDone();
- + int totalVictories = player.getTotalVictories();
- + int totalDefeats = player.getTotalDefeats();
- + int totalTies = player.getTotalTies();
- + if (totalFightsDone == 0)
- + {
- + return 0;
- + }
- + playerWDT = ratioByFight * (((3) * totalVictories) + ((-3) * totalDefeats) + (totalTies)) / totalFightsDone;
- + return playerWDT;
- + }
- +
- + public double getWinDefeatTie(Player player, TournamentFightType type)
- + {
- + int ratioByFight = 1;
- + double playerWDT = 0;
- + int totalFightsDone = player.getTournamentFightsDone(type);
- + int totalVictories = player.getTournamentVictories().get(type);
- + int totalDefeats = player.getTournamentDefeats().get(type);
- + int totalTies = player.getTournamentTies().get(type);
- + if (totalFightsDone == 0)
- + {
- + return 0;
- + }
- + playerWDT = ratioByFight * (((3) * totalVictories) + ((-3) * totalDefeats) + (totalTies)) / totalFightsDone;
- + return playerWDT;
- + }
- +
- + // RANKING
- + class TourRankRecord
- + {
- + int pos;
- + String playerName;
- + String recordVal;
- +
- + public TourRankRecord(int pos, String playerName, String recordVal)
- + {
- + this.pos = pos + 1;
- + this.playerName = playerName;
- + this.recordVal = recordVal;
- + }
- + }
- +
- + public String generateRankingRecords(Player player, TournamentFightType type, LinkedList<TourRankRecord> records, String rankType)
- + {
- + StringBuilder sb = new StringBuilder();
- + int bgColor = 1;
- + for (TourRankRecord record : records)
- + {
- + if (record == null)
- + continue;
- + if (bgColor % 2 == 0)
- + sb.append("<table width=300 bgcolor=000000>");
- + else
- + sb.append("<table width=300>");
- + sb.append("<tr>");
- + sb.append("<td align=center fixwidth=20>");
- + sb.append(record.pos);
- + sb.append("</td>");
- + sb.append("<td fixwidth=5></td>");
- + sb.append("<td align=center fixwidth=75>");
- + sb.append(record.playerName);
- + sb.append("</td>");
- + sb.append("<td align=center fixwidth=50>");
- + sb.append(record.recordVal);
- + sb.append("</td>");
- + sb.append("<td align=center fixwidth=50>");
- + sb.append("<a action=\"bypass bp_checkTournamentPlayer " + record.playerName + " " + type.name() + "\"><font color=LEVEL>Check</font></a>");
- + sb.append("</td>");
- + sb.append("</tr>");
- + sb.append("</table>");
- +
- + }
- + return sb.toString();
- + }
- +
- + public void showRanking(Player player, TournamentFightType fightType, String rankType)
- + {
- + NpcHtmlMessage htm = new NpcHtmlMessage(0);
- + htm.setFile("data/html/en/mods/tournament/ranking/" + rankType + "/" + fightType.name() + ".htm");
- +
- + LinkedList<TourRankRecord> records = new LinkedList<>();
- + int pos = 0;
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT * FROM tournament_player_data WHERE fight_type=? ORDER BY " + rankType + " DESC LIMIT 10");
- + offline.setString(1, fightType.name());
- + rs = offline.executeQuery();
- + while (rs.next())
- + {
- +
- + records.add(new TourRankRecord(pos, PlayerInfoTable.getInstance().getPlayerName(rs.getInt("obj_id")), String.valueOf(rs.getInt(rankType))));
- + pos++;
- +
- + }
- +
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- + for (Map.Entry<TournamentFightType, Integer> entry : player.getTournamentVictories().entrySet())
- + htm.replace("%ranking-" + rankType + entry.getKey() + "%", generateRankingRecords(player, fightType, records, rankType));
- + player.sendPacket(htm);
- + }
- +
- + /**
- + * @return the allTimeFights
- + */
- + public int getAllTimeFights()
- + {
- + return allTimeFights;
- + }
- +
- + /**
- + * @param allTimeFights the allTimeFights to set
- + */
- + public void setAllTimeFights(int allTimeFights)
- + {
- + this.allTimeFights = allTimeFights;
- + }
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Matches/TournamentMatch.java java/Base/Tournament/Matches/TournamentMatch.java
- new file mode 100644
- index 0000000..de22efc
- --- /dev/null
- +++ java/Base/Tournament/Matches/TournamentMatch.java
- @@ -0,0 +1,16 @@
- +package Base.Tournament.Matches;
- +
- +import Base.Tournament.Model.TournamentTeam;
- +
- +/**
- + * @author Rouxy
- + */
- +public abstract class TournamentMatch
- +{
- + public abstract boolean register(TournamentTeam team);
- +
- + public abstract boolean unRegister(TournamentTeam team);
- +
- + public abstract boolean checkConditions(TournamentTeam team);
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Matches/TournamentMatch1x1.java java/Base/Tournament/Matches/TournamentMatch1x1.java
- new file mode 100644
- index 0000000..9b90bc4
- --- /dev/null
- +++ java/Base/Tournament/Matches/TournamentMatch1x1.java
- @@ -0,0 +1,187 @@
- +package Base.Tournament.Matches;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +import java.util.concurrent.ScheduledFuture;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.enums.actors.ClassId;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentMatch1x1 extends TournamentMatch
- +{
- + private List<TournamentTeam> registeredTeams = new ArrayList<>();
- + private ScheduledFuture<?> searchFightsTask = null;
- + private final TournamentFightType fightType = TournamentFightType.F1X1;
- +
- + public static TournamentMatch1x1 getInstance()
- + {
- + return SingleTonHolder._instance;
- + }
- +
- + private static class SingleTonHolder
- + {
- + protected static TournamentMatch1x1 _instance = new TournamentMatch1x1();
- + }
- +
- + @Override
- + public boolean register(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().put(team, TournamentFightType.F1X1);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + @Override
- + public boolean unRegister(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(team);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + public ScheduledFuture<?> getSearchFightsTask()
- + {
- + return searchFightsTask;
- + }
- +
- + public void setSearchFightsTask(ScheduledFuture<?> searchFightsTask)
- + {
- + this.searchFightsTask = searchFightsTask;
- + }
- +
- + public List<TournamentTeam> getRegisteredTeams()
- + {
- + return registeredTeams;
- + }
- +
- + public void setRegisteredTeams(List<TournamentTeam> registeredTeams)
- + {
- + this.registeredTeams = registeredTeams;
- + }
- +
- + @Override
- + public boolean checkConditions(TournamentTeam team)
- + {
- +
- + if (team.getMembers().size() != 1)
- + {
- + team.sendMessage("Only 1 player allowed in this mode.");
- + team.screenMessage("Only 1 player allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DUELIST) > Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F1X1) + " Duelist(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F1X1) + " Duelist(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.ARCHMAGE) > Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F1X1) + " Archmage(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F1X1) + " Archmage(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.SOULTAKER) > Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F1X1) + " Soultaker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F1X1) + " Soultaker(s) are allowed in this mode.");
- + return false;
- + }
- +
- + if (team.getCountOfClass(ClassId.STORM_SCREAMER) > Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F1X1) + " Storm Screamer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F1X1) + " Storm Screamer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.MYSTIC_MUSE) > Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F1X1) + " Mystic Muse(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F1X1) + " Mystic Muse(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.TITAN) > Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F1X1) + " Titan(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F1X1) + " Titan(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOMINATOR) > Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F1X1) + " Dominator(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F1X1) + " Dominator(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F1X1) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F1X1) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F1X1) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F1X1) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getArchersCount() > Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F1X1) + " Archer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F1X1) + " Archer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getTankersCount() > Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F1X1) + " Tanker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F1X1) + " Tanker(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getHealersCount() > Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F1X1) + " Healer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F1X1) + " Healer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getDaggersCount() > Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F1X1))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F1X1) + " Dagger(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F1X1) + " Dagger(s) are allowed in this mode.");
- + return false;
- + }
- +
- + return true;
- + }
- +
- + /**
- + * @return the fightType
- + */
- + public TournamentFightType getFightType()
- + {
- + return fightType;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Matches/TournamentMatch2x2.java java/Base/Tournament/Matches/TournamentMatch2x2.java
- new file mode 100644
- index 0000000..3fdc6cf
- --- /dev/null
- +++ java/Base/Tournament/Matches/TournamentMatch2x2.java
- @@ -0,0 +1,187 @@
- +package Base.Tournament.Matches;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +import java.util.concurrent.ScheduledFuture;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.enums.actors.ClassId;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentMatch2x2 extends TournamentMatch
- +{
- + private List<TournamentTeam> registeredTeams = new ArrayList<>();
- + private ScheduledFuture<?> searchFightsTask = null;
- + private final TournamentFightType fightType = TournamentFightType.F2X2;
- +
- + public static TournamentMatch2x2 getInstance()
- + {
- + return SingleTonHolder._instance;
- + }
- +
- + private static class SingleTonHolder
- + {
- + protected static TournamentMatch2x2 _instance = new TournamentMatch2x2();
- + }
- +
- + @Override
- + public boolean register(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().put(team, TournamentFightType.F2X2);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + @Override
- + public boolean unRegister(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(team);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + public ScheduledFuture<?> getSearchFightsTask()
- + {
- + return searchFightsTask;
- + }
- +
- + public void setSearchFightsTask(ScheduledFuture<?> searchFightsTask)
- + {
- + this.searchFightsTask = searchFightsTask;
- + }
- +
- + public List<TournamentTeam> getRegisteredTeams()
- + {
- + return registeredTeams;
- + }
- +
- + public void setRegisteredTeams(List<TournamentTeam> registeredTeams)
- + {
- + this.registeredTeams = registeredTeams;
- + }
- +
- + @Override
- + public boolean checkConditions(TournamentTeam team)
- + {
- +
- + if (team.getMembers().size() != 2)
- + {
- + team.sendMessage("Your team must contains 2 players.");
- + team.screenMessage("Your team must contains 2 players.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DUELIST) > Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F2X2) + " Duelist(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F2X2) + " Duelist(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.ARCHMAGE) > Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F2X2) + " Archmage(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F2X2) + " Archmage(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.SOULTAKER) > Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F2X2) + " Soultaker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F2X2) + " Soultaker(s) are allowed in this mode.");
- + return false;
- + }
- +
- + if (team.getCountOfClass(ClassId.STORM_SCREAMER) > Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F2X2) + " Storm Screamer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F2X2) + " Storm Screamer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.MYSTIC_MUSE) > Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F2X2) + " Mystic Muse(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F2X2) + " Mystic Muse(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.TITAN) > Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F2X2) + " Titan(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F2X2) + " Titan(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOMINATOR) > Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F2X2) + " Dominator(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F2X2) + " Dominator(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F2X2) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F2X2) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F2X2) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F2X2) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getArchersCount() > Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F2X2) + " Archer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F2X2) + " Archer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getTankersCount() > Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F2X2) + " Tanker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F2X2) + " Tanker(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getHealersCount() > Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F2X2) + " Healer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F2X2) + " Healer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getDaggersCount() > Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F2X2))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F2X2) + " Dagger(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F2X2) + " Dagger(s) are allowed in this mode.");
- + return false;
- + }
- +
- + return true;
- + }
- +
- + /**
- + * @return the fightType
- + */
- + public TournamentFightType getFightType()
- + {
- + return fightType;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Matches/TournamentMatch3x3.java java/Base/Tournament/Matches/TournamentMatch3x3.java
- new file mode 100644
- index 0000000..6702dbf
- --- /dev/null
- +++ java/Base/Tournament/Matches/TournamentMatch3x3.java
- @@ -0,0 +1,187 @@
- +package Base.Tournament.Matches;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +import java.util.concurrent.ScheduledFuture;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.enums.actors.ClassId;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentMatch3x3 extends TournamentMatch
- +{
- + private List<TournamentTeam> registeredTeams = new ArrayList<>();
- + private ScheduledFuture<?> searchFightsTask = null;
- + private final TournamentFightType fightType = TournamentFightType.F3X3;
- +
- + public static TournamentMatch3x3 getInstance()
- + {
- + return SingleTonHolder._instance;
- + }
- +
- + private static class SingleTonHolder
- + {
- + protected static TournamentMatch3x3 _instance = new TournamentMatch3x3();
- + }
- +
- + @Override
- + public boolean register(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().put(team, TournamentFightType.F3X3);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + @Override
- + public boolean unRegister(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(team);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + public ScheduledFuture<?> getSearchFightsTask()
- + {
- + return searchFightsTask;
- + }
- +
- + public void setSearchFightsTask(ScheduledFuture<?> searchFightsTask)
- + {
- + this.searchFightsTask = searchFightsTask;
- + }
- +
- + public List<TournamentTeam> getRegisteredTeams()
- + {
- + return registeredTeams;
- + }
- +
- + public void setRegisteredTeams(List<TournamentTeam> registeredTeams)
- + {
- + this.registeredTeams = registeredTeams;
- + }
- +
- + @Override
- + public boolean checkConditions(TournamentTeam team)
- + {
- +
- + if (team.getMembers().size() != 3)
- + {
- + team.sendMessage("Your team must contains 3 players.");
- + team.screenMessage("Your team must contains 3 players.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DUELIST) > Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F3X3) + " Duelist(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F3X3) + " Duelist(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.ARCHMAGE) > Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F3X3) + " Archmage(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F3X3) + " Archmage(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.SOULTAKER) > Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F3X3) + " Soultaker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F3X3) + " Soultaker(s) are allowed in this mode.");
- + return false;
- + }
- +
- + if (team.getCountOfClass(ClassId.STORM_SCREAMER) > Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F3X3) + " Storm Screamer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F3X3) + " Storm Screamer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.MYSTIC_MUSE) > Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F3X3) + " Mystic Muse(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F3X3) + " Mystic Muse(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.TITAN) > Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F3X3) + " Titan(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F3X3) + " Titan(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOMINATOR) > Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F3X3) + " Dominator(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F3X3) + " Dominator(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F3X3) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F3X3) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F3X3) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F3X3) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getArchersCount() > Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F3X3) + " Archer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F3X3) + " Archer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getTankersCount() > Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F3X3) + " Tanker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F3X3) + " Tanker(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getHealersCount() > Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F3X3) + " Healer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F3X3) + " Healer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getDaggersCount() > Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F3X3))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F3X3) + " Dagger(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F3X3) + " Dagger(s) are allowed in this mode.");
- + return false;
- + }
- +
- + return true;
- + }
- +
- + /**
- + * @return the fightType
- + */
- + public TournamentFightType getFightType()
- + {
- + return fightType;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Matches/TournamentMatch4x4.java java/Base/Tournament/Matches/TournamentMatch4x4.java
- new file mode 100644
- index 0000000..8643e28
- --- /dev/null
- +++ java/Base/Tournament/Matches/TournamentMatch4x4.java
- @@ -0,0 +1,187 @@
- +package Base.Tournament.Matches;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +import java.util.concurrent.ScheduledFuture;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.enums.actors.ClassId;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentMatch4x4 extends TournamentMatch
- +{
- + private List<TournamentTeam> registeredTeams = new ArrayList<>();
- + private ScheduledFuture<?> searchFightsTask = null;
- + private final TournamentFightType fightType = TournamentFightType.F4X4;
- +
- + public static TournamentMatch4x4 getInstance()
- + {
- + return SingleTonHolder._instance;
- + }
- +
- + private static class SingleTonHolder
- + {
- + protected static TournamentMatch4x4 _instance = new TournamentMatch4x4();
- + }
- +
- + @Override
- + public boolean register(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().put(team, TournamentFightType.F4X4);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + @Override
- + public boolean unRegister(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(team);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + public ScheduledFuture<?> getSearchFightsTask()
- + {
- + return searchFightsTask;
- + }
- +
- + public void setSearchFightsTask(ScheduledFuture<?> searchFightsTask)
- + {
- + this.searchFightsTask = searchFightsTask;
- + }
- +
- + public List<TournamentTeam> getRegisteredTeams()
- + {
- + return registeredTeams;
- + }
- +
- + public void setRegisteredTeams(List<TournamentTeam> registeredTeams)
- + {
- + this.registeredTeams = registeredTeams;
- + }
- +
- + @Override
- + public boolean checkConditions(TournamentTeam team)
- + {
- +
- + if (team.getMembers().size() != 4)
- + {
- + team.sendMessage("Your team must contains 4 players.");
- + team.screenMessage("Your team must contains 4 players.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DUELIST) > Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F4X4) + " Duelist(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F4X4) + " Duelist(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.ARCHMAGE) > Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F4X4) + " Archmage(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F4X4) + " Archmage(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.SOULTAKER) > Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F4X4) + " Soultaker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F4X4) + " Soultaker(s) are allowed in this mode.");
- + return false;
- + }
- +
- + if (team.getCountOfClass(ClassId.STORM_SCREAMER) > Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F4X4) + " Storm Screamer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F4X4) + " Storm Screamer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.MYSTIC_MUSE) > Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F4X4) + " Mystic Muse(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F4X4) + " Mystic Muse(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.TITAN) > Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F4X4) + " Titan(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F4X4) + " Titan(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOMINATOR) > Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F4X4) + " Dominator(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F4X4) + " Dominator(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F4X4) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F4X4) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F4X4) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F4X4) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getArchersCount() > Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F4X4) + " Archer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F4X4) + " Archer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getTankersCount() > Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F4X4) + " Tanker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F4X4) + " Tanker(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getHealersCount() > Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F4X4) + " Healer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F4X4) + " Healer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getDaggersCount() > Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F4X4))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F4X4) + " Dagger(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F4X4) + " Dagger(s) are allowed in this mode.");
- + return false;
- + }
- +
- + return true;
- + }
- +
- + /**
- + * @return the fightType
- + */
- + public TournamentFightType getFightType()
- + {
- + return fightType;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Matches/TournamentMatch5x5.java java/Base/Tournament/Matches/TournamentMatch5x5.java
- new file mode 100644
- index 0000000..49d14f7
- --- /dev/null
- +++ java/Base/Tournament/Matches/TournamentMatch5x5.java
- @@ -0,0 +1,187 @@
- +package Base.Tournament.Matches;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +import java.util.concurrent.ScheduledFuture;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.enums.actors.ClassId;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentMatch5x5 extends TournamentMatch
- +{
- + private List<TournamentTeam> registeredTeams = new ArrayList<>();
- + private ScheduledFuture<?> searchFightsTask = null;
- + private final TournamentFightType fightType = TournamentFightType.F5X5;
- +
- + public static TournamentMatch5x5 getInstance()
- + {
- + return SingleTonHolder._instance;
- + }
- +
- + private static class SingleTonHolder
- + {
- + protected static TournamentMatch5x5 _instance = new TournamentMatch5x5();
- + }
- +
- + @Override
- + public boolean register(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().put(team, TournamentFightType.F5X5);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + @Override
- + public boolean unRegister(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(team);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + public ScheduledFuture<?> getSearchFightsTask()
- + {
- + return searchFightsTask;
- + }
- +
- + public void setSearchFightsTask(ScheduledFuture<?> searchFightsTask)
- + {
- + this.searchFightsTask = searchFightsTask;
- + }
- +
- + public List<TournamentTeam> getRegisteredTeams()
- + {
- + return registeredTeams;
- + }
- +
- + public void setRegisteredTeams(List<TournamentTeam> registeredTeams)
- + {
- + this.registeredTeams = registeredTeams;
- + }
- +
- + @Override
- + public boolean checkConditions(TournamentTeam team)
- + {
- +
- + if (team.getMembers().size() != 5)
- + {
- + team.sendMessage("Your team must contains 5 players.");
- + team.screenMessage("Your team must contains 5 players.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DUELIST) > Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F5X5) + " Duelist(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F5X5) + " Duelist(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.ARCHMAGE) > Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F5X5) + " Archmage(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F5X5) + " Archmage(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.SOULTAKER) > Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F5X5) + " Soultaker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F5X5) + " Soultaker(s) are allowed in this mode.");
- + return false;
- + }
- +
- + if (team.getCountOfClass(ClassId.STORM_SCREAMER) > Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F5X5) + " Storm Screamer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F5X5) + " Storm Screamer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.MYSTIC_MUSE) > Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F5X5) + " Mystic Muse(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F5X5) + " Mystic Muse(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.TITAN) > Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F5X5) + " Titan(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F5X5) + " Titan(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOMINATOR) > Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F5X5) + " Dominator(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F5X5) + " Dominator(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F5X5) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F5X5) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F5X5) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F5X5) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getArchersCount() > Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F5X5) + " Archer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F5X5) + " Archer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getTankersCount() > Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F5X5) + " Tanker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F5X5) + " Tanker(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getHealersCount() > Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F5X5) + " Healer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F5X5) + " Healer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getDaggersCount() > Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F5X5))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F5X5) + " Dagger(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F5X5) + " Dagger(s) are allowed in this mode.");
- + return false;
- + }
- +
- + return true;
- + }
- +
- + /**
- + * @return the fightType
- + */
- + public TournamentFightType getFightType()
- + {
- + return fightType;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Matches/TournamentMatch9x9.java java/Base/Tournament/Matches/TournamentMatch9x9.java
- new file mode 100644
- index 0000000..ce03cd9
- --- /dev/null
- +++ java/Base/Tournament/Matches/TournamentMatch9x9.java
- @@ -0,0 +1,187 @@
- +package Base.Tournament.Matches;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +import java.util.concurrent.ScheduledFuture;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.enums.actors.ClassId;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentMatch9x9 extends TournamentMatch
- +{
- + private List<TournamentTeam> registeredTeams = new ArrayList<>();
- + private ScheduledFuture<?> searchFightsTask = null;
- + private final TournamentFightType fightType = TournamentFightType.F9X9;
- +
- + public static TournamentMatch9x9 getInstance()
- + {
- + return SingleTonHolder._instance;
- + }
- +
- + private static class SingleTonHolder
- + {
- + protected static TournamentMatch9x9 _instance = new TournamentMatch9x9();
- + }
- +
- + @Override
- + public boolean register(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().put(team, TournamentFightType.F9X9);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + @Override
- + public boolean unRegister(TournamentTeam team)
- + {
- + try
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(team);
- + return true;
- + }
- + catch (Exception e)
- + {
- +
- + e.printStackTrace();
- + return false;
- + }
- + }
- +
- + public ScheduledFuture<?> getSearchFightsTask()
- + {
- + return searchFightsTask;
- + }
- +
- + public void setSearchFightsTask(ScheduledFuture<?> searchFightsTask)
- + {
- + this.searchFightsTask = searchFightsTask;
- + }
- +
- + public List<TournamentTeam> getRegisteredTeams()
- + {
- + return registeredTeams;
- + }
- +
- + public void setRegisteredTeams(List<TournamentTeam> registeredTeams)
- + {
- + this.registeredTeams = registeredTeams;
- + }
- +
- + @Override
- + public boolean checkConditions(TournamentTeam team)
- + {
- +
- + if (team.getMembers().size() != 9)
- + {
- + team.sendMessage("Your team must contains 9 players.");
- + team.screenMessage("Your team must contains 9 players.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DUELIST) > Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F9X9) + " Duelist(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DUELIST_ALLOWED.get(TournamentFightType.F9X9) + " Duelist(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.ARCHMAGE) > Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F9X9) + " Archmage(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHMAGE_ALLOWED.get(TournamentFightType.F9X9) + " Archmage(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.SOULTAKER) > Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F9X9) + " Soultaker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_SOULTAKER_ALLOWED.get(TournamentFightType.F9X9) + " Soultaker(s) are allowed in this mode.");
- + return false;
- + }
- +
- + if (team.getCountOfClass(ClassId.STORM_SCREAMER) > Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F9X9) + " Storm Screamer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_STORMSCREAMER_ALLOWED.get(TournamentFightType.F9X9) + " Storm Screamer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.MYSTIC_MUSE) > Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F9X9) + " Mystic Muse(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_MYSTICMUSE_ALLOWED.get(TournamentFightType.F9X9) + " Mystic Muse(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.TITAN) > Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F9X9) + " Titan(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TITAN_ALLOWED.get(TournamentFightType.F9X9) + " Titan(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOMINATOR) > Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F9X9) + " Dominator(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOMINATOR_ALLOWED.get(TournamentFightType.F9X9) + " Dominator(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F9X9) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F9X9) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getCountOfClass(ClassId.DOOMCRYER) > Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F9X9) + " Doomcryer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DOOMCRYER_ALLOWED.get(TournamentFightType.F9X9) + " Doomcryer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getArchersCount() > Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F9X9) + " Archer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_ARCHER_ALLOWED.get(TournamentFightType.F9X9) + " Archer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getTankersCount() > Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F9X9) + " Tanker(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_TANKER_ALLOWED.get(TournamentFightType.F9X9) + " Tanker(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getHealersCount() > Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F9X9) + " Healer(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_HEALER_ALLOWED.get(TournamentFightType.F9X9) + " Healer(s) are allowed in this mode.");
- + return false;
- + }
- + if (team.getDaggersCount() > Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F9X9))
- + {
- + team.sendMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F9X9) + " Dagger(s) are allowed in this mode.");
- + team.screenMessage("Only " + Config.TOURNAMENT_DAGGER_ALLOWED.get(TournamentFightType.F9X9) + " Dagger(s) are allowed in this mode.");
- + return false;
- + }
- +
- + return true;
- + }
- +
- + /**
- + * @return the fightType
- + */
- + public TournamentFightType getFightType()
- + {
- + return fightType;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Model/TournamentArena.java java/Base/Tournament/Model/TournamentArena.java
- new file mode 100644
- index 0000000..c10b68c
- --- /dev/null
- +++ java/Base/Tournament/Model/TournamentArena.java
- @@ -0,0 +1,78 @@
- +package Base.Tournament.Model;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +
- +import net.sf.l2j.commons.data.StatSet;
- +
- +import net.sf.l2j.gameserver.model.location.Location;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +
- +/**
- + * @author Rouxy
- + */
- +
- +public class TournamentArena
- +{
- + private final int id;
- + private List<Location> teamOneLocation = new ArrayList<>();
- + private List<Location> teamTwoLocation = new ArrayList<>();
- + private int time;
- +
- + private final List<TournamentFightType> types = new ArrayList<>();
- +
- + public TournamentArena(StatSet set, List<Location> teamOneLocation, List<Location> teamTwoLocation)
- + {
- + String fTypes = set.getString("types");
- + for (String type : fTypes.split(";"))
- + {
- + if (TournamentFightType.valueOf(type) != null)
- + types.add(TournamentFightType.valueOf(type));
- + }
- + id = set.getInteger("id");
- + this.teamOneLocation = teamOneLocation;
- + this.teamTwoLocation = teamTwoLocation;
- + }
- +
- + public List<Location> getTeamOneLocation()
- + {
- + return teamOneLocation;
- + }
- +
- + public void setTeamOneLocation(List<Location> teamOneLocation)
- + {
- + this.teamOneLocation = teamOneLocation;
- + }
- +
- + public List<Location> getTeamTwoLocation()
- + {
- + return teamTwoLocation;
- + }
- +
- + public void setTeamTwoLocation(List<Location> teamTwoLocation)
- + {
- + this.teamTwoLocation = teamTwoLocation;
- + }
- +
- + public int getTime()
- + {
- + return time;
- + }
- +
- + public void setTime(int time)
- + {
- + this.time = time;
- + }
- +
- + public int getId()
- + {
- + return id;
- + }
- +
- + public List<TournamentFightType> getTypes()
- + {
- + return types;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Model/TournamentTeam.java java/Base/Tournament/Model/TournamentTeam.java
- new file mode 100644
- index 0000000..f8e5acd
- --- /dev/null
- +++ java/Base/Tournament/Model/TournamentTeam.java
- @@ -0,0 +1,458 @@
- +package Base.Tournament.Model;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.enums.LootRule;
- +import net.sf.l2j.gameserver.enums.MessageType;
- +import net.sf.l2j.gameserver.enums.actors.ClassId;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +
- +import net.sf.l2j.gameserver.model.group.Party;
- +import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
- +import net.sf.l2j.util.RewardHolder;
- +
- +import Base.Instance.InstanceManager;
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentTeam
- +{
- + private Player leader;
- + private Player target;
- + private List<Player> members = new ArrayList<>();
- + private Party party;
- + private int teamFightId;
- +
- + public TournamentTeam(Player leader, Player target)
- + {
- + this.leader = leader;
- + this.target = target;
- +
- + members.add(0, leader);
- + leader.setTournamentTeam(this);
- + leader.sendMessage("Your Tournament fight has been created.");
- +
- + if (target != null)
- + {
- + leader.sendMessage(target.getName() + " entered your Tournament Team.");
- + target.sendMessage(leader.getName() + " entered your Tournament Team.");
- + members.add(1, target);
- + target.setTournamentTeam(this);
- +
- + }
- +
- + }
- +
- + public List<Player> getMembers()
- + {
- + return members;
- + }
- +
- + public void setMembers(List<Player> members)
- + {
- + this.members = members;
- + }
- +
- + public Player getLeader()
- + {
- + return leader;
- + }
- +
- + public void setLeader(Player leader)
- + {
- + this.leader = leader;
- + }
- +
- + public Player getTarget()
- + {
- + return target;
- + }
- +
- + public void setTarget(Player target)
- + {
- + this.target = target;
- + }
- +
- + public void sendMessage(String text)
- + {
- + for (Player player : getMembers())
- + {
- +
- + player.sendMessage("[Tournament]: " + text);
- +
- + }
- + }
- +
- + public void screenMessage(String text)
- + {
- + for (Player player : getMembers())
- + {
- +
- + player.sendPacket(new ExShowScreenMessage("[Tournament]: " + text, 4000));
- +
- + }
- + }
- +
- + public String getName()
- + {
- + return leader.getName() + "'s Team";
- + }
- +
- + public void addMember(Player player)
- + {
- + if (player == null || getMembers().contains(player))
- + return;
- +
- + getMembers().add(player);
- + player.setTournamentTeam(this);
- + player.sendMessage("You entered " + leader.getName() + "'s Tournament Team.");
- + sendMessage("Player " + player.getName() + " joined your Tournament Team.");
- +
- + }
- +
- + public Party getParty()
- + {
- + return party;
- + }
- +
- + public void setParty(Party party)
- + {
- + this.party = party;
- + }
- +
- + public int getCountOfClass(ClassId classId)
- + {
- + int count = 0;
- + for (Player player : getMembers())
- + {
- + if (player.getClassId() == classId)
- + {
- + count++;
- + }
- + }
- + return count;
- + }
- +
- + public int getHealersCount()
- + {
- + int count = 0;
- + for (Player player : getMembers())
- + {
- + if (player.getClassId().isHealer())
- + {
- + count++;
- + }
- + }
- + return count;
- +
- + }
- +
- + public int getTankersCount()
- + {
- + int count = 0;
- + for (Player player : getMembers())
- + {
- + if (player.getClassId().isTanker())
- + {
- + count++;
- + }
- + }
- + return count;
- +
- + }
- +
- + public int getDaggersCount()
- + {
- + int count = 0;
- + for (Player player : getMembers())
- + {
- + if (player.getClassId().isDagger())
- + {
- + count++;
- + }
- + }
- + return count;
- +
- + }
- +
- + public int getArchersCount()
- + {
- + int count = 0;
- + for (Player player : getMembers())
- + {
- + if (player.getClassId().isArcher())
- + {
- + count++;
- + }
- + }
- + return count;
- +
- + }
- +
- + public void setInTournamentMatch(boolean val)
- + {
- + for (Player player : getMembers())
- + {
- + player.setInTournamentMatch(val);
- + }
- + }
- +
- + public void setFightId(int id)
- + {
- + for (Player player : getMembers())
- + {
- + player.setTournamentFightId(id);
- + }
- + teamFightId = id;
- + }
- +
- + public void paralyze()
- + {
- + for (Player player : getMembers())
- + {
- + player.setTarget(null);
- + player.setInvul(true);
- + player.setIsParalyzed(true);
- + player.broadcastUserInfo();
- + }
- + }
- +
- + public void unparalyze()
- + {
- + for (Player player : getMembers())
- + {
- + player.setTarget(null);
- + player.setInvul(false);
- + player.setIsParalyzed(false);
- + player.broadcastUserInfo();
- +
- + }
- + }
- +
- + public boolean teamIsDefeated()
- + {
- + for (Player player : getMembers())
- + {
- + if (!player.isDead())
- + {
- + return false;
- + }
- + }
- + return true;
- + }
- +
- + public int getAliveMembers()
- + {
- + int count = 0;
- + for (Player player : getMembers())
- + {
- + if (player.isDead())
- + continue;
- + else
- + count++;
- + }
- + return count;
- + }
- +
- + public void reward(boolean winner)
- + {
- + String text = winner ? "Your team have won the Tournament Battle! =D" : "Your team lost won the Tournament Battle! =(";
- + screenMessage(text);
- + sendMessage(text);
- + for (Player player : getMembers())
- + {
- +
- + for (RewardHolder reward : winner ? Config.TOURNAMENT_FIGHT_REWARD_WINNER : Config.TOURNAMENT_FIGHT_REWARD_LOOSER)
- + {
- + player.addItem("TournamentReward", reward.getItemId(), reward.getCount(), player, true);
- + }
- + }
- +
- + }
- +
- + public void teleportBack()
- + {
- + for (Player player : getMembers())
- + {
- + player.teleportTo(player.getLastX(), player.getLastY(), player.getLastZ(), 0);
- + }
- + }
- +
- + public void removeTournamentTeam()
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(this);
- + }
- +
- + public void setTournamentFightType(TournamentFightType type)
- + {
- + for (Player player : getMembers())
- + {
- + player.setTournamentFightType(type);
- + }
- + }
- +
- + public void removeMember(Player member)
- + {
- +
- + if (!getMembers().contains(member))
- + return;
- + member.setTournamentFightId(0);
- + member.setTournamentFightType(TournamentFightType.NONE);
- + member.setTournamentTeam(null);
- + member.setTournamentTeamBeingInvited(false);
- + member.sendMessage("Your tournament Team has dispersed.");
- + if (party != null)
- + party.removePartyMember(member, MessageType.LEFT);
- + members.remove(member);
- + if (members.size() < 1)
- + {
- + disbandTeam();
- + }
- + }
- +
- + public void prepareToFight()
- + {
- + // first disband a possible old party
- + Party party = null;
- + for (Player player : getMembers())
- + {
- + if (player.isInParty())
- + {
- + player.getParty().disband();
- + }
- + }
- + if (getMembers().size() > 1)
- + {
- + party = new Party(leader, getMembers().get(1), LootRule.ITEM_LOOTER);
- + }
- + for (Player player : getMembers())
- + {
- + if (party != null && !player.isInParty())
- + {
- + party.addPartyMember(player);
- + }
- + // revive dead players
- + if (player.isDead())
- + {
- + player.doRevive();
- + }
- + // heal players
- + player.getStatus().setCpHpMp(player.getStatus().getMaxCp(), player.getStatus().getMaxHp(), player.getStatus().getMaxMp());
- +
- + // reset tournament match damages
- + player.setTournamentMatchDamage(0);
- + }
- +
- + }
- +
- + public void resetTeamMatchDamage()
- + {
- + for (Player player : getMembers())
- + {
- + player.setTournamentMatchDamage(0);
- + }
- + }
- +
- + public void backInstance()
- + {
- + for (Player player : getMembers())
- + {
- + player.setInstance(InstanceManager.getInstance().getInstance(0), true);
- +
- + }
- + }
- +
- + public void doRevive()
- + {
- +
- + for (Player player : getMembers())
- + {
- +
- + player.doRevive();
- + player.getStatus().setCpHpMp(player.getStatus().getMaxCp(), player.getStatus().getMaxHp(), player.getStatus().getMaxMp());
- + }
- + }
- +
- + public void disbandTeam()
- + {
- + if (TournamentManager.getInstance().getRegisteredTournamentTeams().containsKey(this))
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(this);
- + }
- + for (Player member : getMembers())
- + {
- + member.setTournamentFightId(0);
- + member.setTournamentFightType(TournamentFightType.NONE);
- + member.setTournamentTeam(null);
- + member.setTournamentTeamBeingInvited(false);
- + member.sendMessage("Your tournament Team has dispersed.");
- + }
- + if (getParty() != null)
- + getParty().disband();
- + setParty(null);
- + }
- +
- + public int getFightId()
- + {
- + return teamFightId;
- + }
- +
- + public void setTeamFightId(int id)
- + {
- + teamFightId = id;
- + }
- +
- + public boolean isLeader(Player player)
- + {
- + return player == leader;
- + }
- +
- + public int getTotalDamage()
- + {
- + int damage = 0;
- + for (Player member : getMembers())
- + {
- + damage += member.getTournamentMatchDamage();
- + }
- + return damage;
- + }
- +
- + public void addTeamDefeat(TournamentFightType type)
- + {
- + for (Player member : getMembers())
- + {
- + member.addTournamentDefeat(type);
- + }
- + }
- +
- + public void addTeamVictory(TournamentFightType type)
- + {
- + for (Player member : getMembers())
- + {
- + member.addTournamentVictory(type);
- + }
- + }
- +
- + public void addTeamTie(TournamentFightType type)
- + {
- + for (Player member : getMembers())
- + {
- + member.addTournamentTie(type);
- + }
- + }
- +
- + public void addTotalDamageToPlayers(TournamentFightType type)
- + {
- + for (Player member : getMembers())
- + {
- + member.addTournamentDamage(type, member.getTournamentMatchDamage());
- + }
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Task/OutOfTheZoneTask.java java/Base/Tournament/Task/OutOfTheZoneTask.java
- new file mode 100644
- index 0000000..b3be70a
- --- /dev/null
- +++ java/Base/Tournament/Task/OutOfTheZoneTask.java
- @@ -0,0 +1,135 @@
- +package Base.Tournament.Task;
- +
- +import net.sf.l2j.gameserver.enums.ZoneId;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class OutOfTheZoneTask implements Runnable
- +{
- + private TournamentTeam teamOne;
- + private int teamOneOutSideTimes;
- + private TournamentTeam teamTwo;
- + private int teamTwoOutSideTimes;
- +
- + public OutOfTheZoneTask(TournamentTeam teamOne, TournamentTeam teamTwo)
- + {
- + this.teamOne = teamOne;
- + this.teamTwo = teamTwo;
- + }
- +
- + public boolean isOutOfTheZone(TournamentTeam team)
- + {
- + for (Player member : team.getMembers())
- + {
- + if (member == null)
- + {
- + return true;
- + }
- + if (!member.isInsideZone(ZoneId.TOURNAMENT))
- + {
- + team.sendMessage(member.getName() + " is out side of the zone. Return to zone or lose battle.");
- + return true;
- + }
- +
- + }
- + return false;
- + }
- +
- + @Override
- + public void run()
- + {
- +
- + if (teamOne.getFightId() != 0 && teamTwo.getFightId() != 0 && teamOne.getFightId() == teamTwo.getFightId())
- + {
- + TournamentFight fight = TournamentManager.getInstance().getCurrentFights().get(teamOne.getFightId());
- + if (fight != null && fight.isStarted())
- + {
- + if (isOutOfTheZone(teamOne))
- + teamOneOutSideTimes++;
- + else
- + teamOneOutSideTimes = 0;
- + if (isOutOfTheZone(teamTwo))
- + teamTwoOutSideTimes++;
- + else
- + teamTwoOutSideTimes = 0;
- +
- + if (teamOneOutSideTimes >= 10)
- + fight.finish(teamTwo);
- + if (teamTwoOutSideTimes >= 10)
- + fight.finish(teamOne);
- + }
- + }
- +
- + }
- +
- + /**
- + * @return the teamOne
- + */
- + public TournamentTeam getTeamOne()
- + {
- + return teamOne;
- + }
- +
- + /**
- + * @param teamOne the teamOne to set
- + */
- + public void setTeamOne(TournamentTeam teamOne)
- + {
- + this.teamOne = teamOne;
- + }
- +
- + /**
- + * @return the teamTwo
- + */
- + public TournamentTeam getTeamTwo()
- + {
- + return teamTwo;
- + }
- +
- + /**
- + * @param teamTwo the teamTwo to set
- + */
- + public void setTeamTwo(TournamentTeam teamTwo)
- + {
- + this.teamTwo = teamTwo;
- + }
- +
- + /**
- + * @return the teamOneOutSideTimes
- + */
- + public int getTeamOneOutSideTimes()
- + {
- + return teamOneOutSideTimes;
- + }
- +
- + /**
- + * @param teamOneOutSideTimes the teamOneOutSideTimes to set
- + */
- + public void setTeamOneOutSideTimes(int teamOneOutSideTimes)
- + {
- + this.teamOneOutSideTimes = teamOneOutSideTimes;
- + }
- +
- + /**
- + * @return the teamTwoOutSideTimes
- + */
- + public int getTeamTwoOutSideTimes()
- + {
- + return teamTwoOutSideTimes;
- + }
- +
- + /**
- + * @param teamTwoOutSideTimes the teamTwoOutSideTimes to set
- + */
- + public void setTeamTwoOutSideTimes(int teamTwoOutSideTimes)
- + {
- + this.teamTwoOutSideTimes = teamTwoOutSideTimes;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Task/TournamentFight.java java/Base/Tournament/Task/TournamentFight.java
- new file mode 100644
- index 0000000..5e90a5f
- --- /dev/null
- +++ java/Base/Tournament/Task/TournamentFight.java
- @@ -0,0 +1,442 @@
- +package Base.Tournament.Task;
- +
- +import java.util.concurrent.ScheduledFuture;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.commons.pool.ThreadPool;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +
- +import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
- +import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage.SMPOS;
- +
- +import Base.Instance.Instance;
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentArena;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +/**
- + * @author Zaun
- + */
- +public class TournamentFight
- +{
- + private TournamentFightType fightType = TournamentFightType.NONE;
- + private Instance instance = null;
- +
- + private TournamentArena tournamentArena;
- + private TournamentTeam teamOne;
- + private TournamentTeam teamTwo;
- + private int id;
- + private ScheduledFuture<?> finishTask = null;
- + private ScheduledFuture<?> timer = null;
- + private long fightBeginTime;
- + private ScheduledFuture<?> outOfTheZoneTask = null;
- + private boolean started;
- +
- + public TournamentFight(int id, TournamentFightType fightType, Instance instance, TournamentTeam teamOne, TournamentTeam teamTwo, TournamentArena tournamentArena)
- + {
- +
- + this.fightType = fightType;
- + this.id = id;
- + this.instance = instance;
- + this.teamOne = teamOne;
- + this.teamTwo = teamTwo;
- + this.tournamentArena = tournamentArena;
- +
- + teamOne.setInTournamentMatch(true);
- + teamOne.setFightId(id);
- + teamOne.setTournamentFightType(fightType);
- + teamOne.screenMessage("Match found! You will be teleported in: " + Config.TOURNAMENT_TIME_TO_TELEPORT + " seconds.");
- + teamOne.screenMessage("Match found! You will be teleported in: " + Config.TOURNAMENT_TIME_TO_TELEPORT + " seconds.");
- + teamOne.prepareToFight();
- +
- + teamTwo.setInTournamentMatch(true);
- + teamTwo.setFightId(id);
- + teamTwo.setTournamentFightType(fightType);
- + teamTwo.screenMessage("Match found! You will be teleported in: " + Config.TOURNAMENT_TIME_TO_TELEPORT + " seconds.");
- + teamTwo.screenMessage("Match found! You will be teleported in: " + Config.TOURNAMENT_TIME_TO_TELEPORT + " seconds.");
- + teamTwo.prepareToFight();
- +
- + fightBeginTime = System.currentTimeMillis();
- + TournamentManager.getInstance().getCurrentFights().put(id, this);
- + TournamentManager.getInstance().setAllTimeFights(TournamentManager.getInstance().getAllTimeFights() + 1);
- + ThreadPool.schedule(new TournamentTeleport(this, tournamentArena, teamOne, teamTwo), Config.TOURNAMENT_TIME_TO_TELEPORT * 1000);
- + finishTask = ThreadPool.schedule(new FinishFight(), (Config.TOURNAMENT_FIGHT_DURATION.get(fightType)) * 60 * 1000 + (Config.TOURNAMENT_TIME_TO_TELEPORT + Config.TOURNAMENT_FIGHT_START_TIME.get(fightType) * 1000));
- + timer = ThreadPool.scheduleAtFixedRate(new Timer(), 1000, 1010);
- + setOutOfTheZoneTask(ThreadPool.scheduleAtFixedRate(new OutOfTheZoneTask(teamOne, teamTwo), 0, 1000));
- +
- + }
- +
- + class Timer implements Runnable
- + {
- +
- + @Override
- + public void run()
- + {
- + if (isStarted())
- + broadCastTimer();
- + }
- +
- + }
- +
- + public void broadCastTimer()
- + {
- + int secondsLeft = (int) (((fightBeginTime + (1000 * 60 * Config.TOURNAMENT_FIGHT_DURATION.get(fightType) + (Config.TOURNAMENT_TIME_TO_TELEPORT + Config.TOURNAMENT_FIGHT_START_TIME.get(fightType) * 1000))) - System.currentTimeMillis()) / 1000);
- + int minutes = secondsLeft / 60;
- + int seconds = secondsLeft % 60;
- + ExShowScreenMessage packet = new ExShowScreenMessage(String.format("%02d:%02d", minutes, seconds), 1010, SMPOS.BOTTOM_RIGHT, false);
- + for (Player player : teamOne.getMembers())
- + player.sendPacket(packet);
- + for (Player player : teamTwo.getMembers())
- + player.sendPacket(packet);
- + }
- +
- + private class FinishFight implements Runnable
- + {
- +
- + @Override
- + public void run()
- + {
- +
- + finish();
- + }
- +
- + }
- +
- + class TeleportBack implements Runnable
- + {
- + TournamentTeam team;
- +
- + public TeleportBack(TournamentTeam team)
- + {
- + this.team = team;
- + }
- +
- + @Override
- + public void run()
- + {
- + team.doRevive();
- + team.teleportBack();
- + team.backInstance();
- + }
- +
- + }
- +
- + public void finish()
- + {
- + try
- + {
- + if (getWinner() != null)
- + {
- + // reward victorious team
- + getWinner().reward(true);
- + // store +1 victory
- + getWinner().addTeamVictory(fightType);
- +
- + if (getLooser() != null)
- + {
- + // reward looser team
- + getLooser().reward(false);
- + getLooser().addTeamDefeat(fightType);
- +
- + }
- +
- + }
- + else
- + {
- + teamOne.screenMessage("Fight ended in a tie!");
- + teamTwo.screenMessage("Fight ended in a tie!");
- + teamOne.addTeamTie(fightType);
- + teamTwo.addTeamTie(fightType);
- + }
- +
- + // both teams code below
- +
- + // Team One
- + teamOne.addTotalDamageToPlayers(fightType);
- + teamOne.resetTeamMatchDamage(); // reset damage
- + teamOne.setInTournamentMatch(false);
- + teamOne.setFightId(0);
- + ThreadPool.schedule(new TeleportBack(teamOne), 5000);
- + teamOne.removeTournamentTeam();
- + teamOne.setTournamentFightType(TournamentFightType.NONE);
- + // store fight
- + store(teamOne);
- +
- + // Team Two
- + teamTwo.addTotalDamageToPlayers(fightType);
- + teamTwo.resetTeamMatchDamage();// reset damage
- + teamTwo.setInTournamentMatch(false);
- + teamTwo.setFightId(0);
- + ThreadPool.schedule(new TeleportBack(teamTwo), 5000);
- + teamTwo.removeTournamentTeam();
- + teamTwo.setTournamentFightType(TournamentFightType.NONE);
- + // store fight
- + store(teamTwo);
- +
- + TournamentManager.getInstance().getCurrentFights().remove(id);
- +
- + // cancel tasks
- + if (finishTask != null)
- + {
- + finishTask.cancel(true);
- + finishTask = null;
- + }
- +
- + if (timer != null)
- + {
- + timer.cancel(true);
- + timer = null;
- + }
- +
- + if (outOfTheZoneTask != null)
- + {
- + outOfTheZoneTask.cancel(true);
- + outOfTheZoneTask = null;
- + }
- +
- + }
- + catch (Exception e)
- + {
- + TournamentManager.getInstance().debugInfo("[Tournament Fight]: Could not finish a fight: ");
- + e.printStackTrace();
- + }
- +
- + }
- +
- + public void finish(TournamentTeam winner)
- + {
- + try
- + {
- + TournamentTeam looser = null;
- + if (winner != null)
- + {
- + if (winner == teamOne)
- + {
- + looser = teamTwo;
- +
- + }
- + else
- + {
- + looser = teamOne;
- + }
- + // reward victorious team
- + winner.reward(true);
- + // store +1 victory
- + winner.addTeamVictory(fightType);
- +
- + }
- + if (looser != null)
- + {
- + looser.reward(false);
- + // reward looser team
- + looser.reward(false);
- + looser.addTeamDefeat(fightType);
- + }
- +
- + winner.sendMessage("Your team has won the battle because, players of enemy team were out of tournament zone.");
- + looser.sendMessage("Your team has lost the battle because, players of your team were out of tournament zone.");
- +
- + // both teams code below
- +
- + // Team One
- + teamOne.addTotalDamageToPlayers(fightType);
- + teamOne.resetTeamMatchDamage(); // reset damage
- + teamOne.setInTournamentMatch(false);
- + teamOne.setFightId(0);
- + ThreadPool.schedule(new TeleportBack(teamOne), 5000);
- + teamOne.removeTournamentTeam();
- + teamOne.setTournamentFightType(TournamentFightType.NONE);
- + // store fight
- + store(teamOne);
- +
- + // Team Two
- + teamTwo.addTotalDamageToPlayers(fightType);
- + teamTwo.resetTeamMatchDamage();// reset damage
- + teamTwo.setInTournamentMatch(false);
- + teamTwo.setFightId(0);
- + ThreadPool.schedule(new TeleportBack(teamTwo), 5000);
- + teamTwo.removeTournamentTeam();
- + teamTwo.setTournamentFightType(TournamentFightType.NONE);
- + // store fight
- + store(teamTwo);
- +
- + TournamentManager.getInstance().getCurrentFights().remove(id);
- +
- + // cancel tasks
- + if (finishTask != null)
- + {
- + finishTask.cancel(true);
- + finishTask = null;
- + }
- +
- + if (timer != null)
- + {
- + timer.cancel(true);
- + timer = null;
- + }
- +
- + if (outOfTheZoneTask != null)
- + {
- + outOfTheZoneTask.cancel(true);
- + outOfTheZoneTask = null;
- + }
- +
- + }
- + catch (Exception e)
- + {
- + TournamentManager.getInstance().debugInfo("[Tournament Fight]: Could not finish a fight: ");
- + e.printStackTrace();
- + }
- +
- + }
- +
- + public TournamentTeam getLooser()
- + {
- + if (getWinner() != null)
- + {
- + if (getWinner() == teamOne)
- + {
- + return teamTwo;
- + }
- + else if (getWinner() == teamTwo)
- + {
- + return teamOne;
- + }
- + }
- + return null;
- + }
- +
- + public TournamentTeam getWinner()
- + {
- + int teamOneLive = teamOne.getAliveMembers();
- + int teamTwoLive = teamTwo.getAliveMembers();
- + if (teamOneLive > teamTwoLive)
- + {
- + return teamOne;
- + }
- + else if (teamTwoLive > teamOneLive)
- + {
- + return teamTwo;
- + }
- + else if (teamOne.getTotalDamage() > teamTwo.getTotalDamage())
- + {
- + return teamOne;
- + }
- + else if (teamTwo.getTotalDamage() > teamOne.getTotalDamage())
- + {
- + return teamTwo;
- + }
- + return null;
- +
- + }
- +
- + public TournamentFightType getFightType()
- + {
- + return fightType;
- + }
- +
- + public void setFightType(TournamentFightType fightType)
- + {
- + this.fightType = fightType;
- + }
- +
- + public Instance getInstance()
- + {
- + return instance;
- + }
- +
- + public void setInstance(Instance instance)
- + {
- + this.instance = instance;
- + }
- +
- + public TournamentArena getTournamentArena()
- + {
- + return tournamentArena;
- + }
- +
- + public void setTournamentArena(TournamentArena tournamentArena)
- + {
- + this.tournamentArena = tournamentArena;
- + }
- +
- + public TournamentTeam getTeamTwo()
- + {
- + return teamTwo;
- + }
- +
- + public void setTeamTwo(TournamentTeam teamTwo)
- + {
- + this.teamTwo = teamTwo;
- + }
- +
- + public TournamentTeam getTeamOne()
- + {
- + return teamOne;
- + }
- +
- + public void setTeamOne(TournamentTeam teamOne)
- + {
- + this.teamOne = teamOne;
- + }
- +
- + public int getId()
- + {
- + return id;
- + }
- +
- + public void setId(int id)
- + {
- + this.id = id;
- + }
- +
- + public ScheduledFuture<?> getFinishTask()
- + {
- + return finishTask;
- + }
- +
- + public void setFinishTask(ScheduledFuture<?> finishTask)
- + {
- + this.finishTask = finishTask;
- + }
- +
- + /**
- + * @return the outOfTheZoneTask
- + */
- + public ScheduledFuture<?> getOutOfTheZoneTask()
- + {
- + return outOfTheZoneTask;
- + }
- +
- + /**
- + * @param outOfTheZoneTask the outOfTheZoneTask to set
- + */
- + public void setOutOfTheZoneTask(ScheduledFuture<?> outOfTheZoneTask)
- + {
- + this.outOfTheZoneTask = outOfTheZoneTask;
- + }
- +
- + /**
- + * @return the started
- + */
- + public boolean isStarted()
- + {
- + return started;
- + }
- +
- + /**
- + * @param started the started to set
- + */
- + public void setStarted(boolean started)
- + {
- + this.started = started;
- + }
- +
- + public void store(TournamentTeam team)
- + {
- + for (Player member : team.getMembers())
- + TournamentManager.getInstance().updateData(member, fightType);
- + }
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Task/TournamentSearchFights.java java/Base/Tournament/Task/TournamentSearchFights.java
- new file mode 100644
- index 0000000..88aea18
- --- /dev/null
- +++ java/Base/Tournament/Task/TournamentSearchFights.java
- @@ -0,0 +1,92 @@
- +package Base.Tournament.Task;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +
- +import net.sf.l2j.commons.random.Rnd;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.idfactory.IdFactory;
- +
- +import Base.Instance.Instance;
- +import Base.Instance.InstanceManager;
- +import Base.Tournament.Data.TournamentArenaParser;
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentArena;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +public class TournamentSearchFights implements Runnable
- +{
- +
- + private List<TournamentTeam> teams = new ArrayList<>();
- +
- + private TournamentFightType fightType;
- +
- + public TournamentSearchFights(TournamentFightType fightType)
- + {
- + this.fightType = fightType;
- + }
- +
- + @Override
- + public void run()
- + {
- + teams = TournamentManager.getInstance().getRegisteredTeamsByType(fightType);
- + if (teams.size() >= 2)
- + {
- + try
- + {
- + if (Config.TOURNAMENT_DEBUG)
- + {
- + TournamentManager.getInstance().debugInfo("Tournament is Searching for " + fightType.name() + " fights.");
- + }
- + boolean found = false;
- + // Search teams for a new fight
- + List<TournamentTeam> searchList = teams;
- + int teamOneIndex = Rnd.get(searchList.size());
- + TournamentTeam teamOne = searchList.get(teamOneIndex);
- + searchList.remove(teamOneIndex);
- + int teamTwoIndex = Rnd.get(searchList.size());
- + TournamentTeam teamTwo = searchList.get(teamTwoIndex);
- + searchList.clear();
- + if (teamOne != teamTwo)
- + {
- + found = true;
- + }
- +
- + // Create a new tournament fight
- + if (found)
- + {
- + // remove teams from registered list
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(teamOne);
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(teamTwo);
- +
- + // Select an arena properly
- + TournamentArena arena = TournamentArenaParser.getInstance().getRandomArenaForType(fightType);
- + // Create a instance to run the match
- + Instance instance = InstanceManager.getInstance().createInstance();
- +
- + int fightId = IdFactory.getInstance().getNextId();
- + if (arena != null)
- + {
- + TournamentFight fight = new TournamentFight(fightId, fightType, instance, teamOne, teamTwo, arena);
- +
- + if (Config.TOURNAMENT_DEBUG)
- + {
- + TournamentManager.getInstance().debugInfo("A new fight (ID: " + fight.getId() + ") [" + fightType.name() + "] started: " + teamOne.getName() + " vs " + teamTwo.getName());
- + }
- +
- + }
- +
- + }
- + }
- + catch (Exception e)
- + {
- + TournamentManager.getInstance().debugInfo("[Tournament Search Fights]: Could not start a fight: ");
- + e.printStackTrace();
- +
- + }
- +
- + }
- + }
- +}
- \ No newline at end of file
- diff --git java/Base/Tournament/Task/TournamentTeleport.java java/Base/Tournament/Task/TournamentTeleport.java
- new file mode 100644
- index 0000000..1c7c392
- --- /dev/null
- +++ java/Base/Tournament/Task/TournamentTeleport.java
- @@ -0,0 +1,177 @@
- +package Base.Tournament.Task;
- +
- +import java.util.List;
- +
- +import net.sf.l2j.commons.pool.ThreadPool;
- +
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +import net.sf.l2j.gameserver.model.location.Location;
- +
- +import Base.Tournament.Model.TournamentArena;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +public class TournamentTeleport implements Runnable
- +{
- +
- + private TournamentArena arena;
- + private TournamentFight fight;
- + private TournamentTeam teamOne;
- + private TournamentTeam teamTwo;
- +
- + public TournamentTeleport(TournamentFight fight, TournamentArena arena, TournamentTeam teamOne, TournamentTeam teamTwo)
- + {
- + this.fight = fight;
- + this.arena = arena;
- + this.teamOne = teamOne;
- + this.teamTwo = teamTwo;
- + }
- +
- + @Override
- + public void run()
- + {
- + teleportTeamOne();
- + teleportTeamTwo();
- + teamOne.paralyze();
- + teamTwo.paralyze();
- + teamOne.screenMessage("Fight will start in " + Config.TOURNAMENT_FIGHT_START_TIME.get(fight.getFightType()) + " seconds");
- + teamTwo.screenMessage("Fight will start in " + Config.TOURNAMENT_FIGHT_START_TIME.get(fight.getFightType()) + " seconds");
- +
- + ThreadPool.schedule(new Unparalyze(), Config.TOURNAMENT_FIGHT_START_TIME.get(fight.getFightType()) * 1000);
- +
- + }
- +
- + class Unparalyze implements Runnable
- + {
- +
- + @Override
- + public void run()
- + {
- + teamOne.unparalyze();
- + teamTwo.unparalyze();
- + fight.setStarted(true);
- + teamOne.screenMessage("Battle Started!");
- + teamTwo.screenMessage("Battle Started!");
- +
- + }
- +
- + }
- +
- + public void teleportTeamOne()
- + {
- + int locIndex = 0;
- + for (Player player : teamOne.getMembers())
- + {
- + if (!player.isOnline())
- + continue;
- +
- + List<Location> locs = arena.getTeamOneLocation();
- + Location loc = locs.get(locIndex);
- + if (loc != null)
- + {
- + player.setLastX(player.getPosition().getX());
- + player.setLastY(player.getPosition().getY());
- + player.setLastZ(player.getPosition().getZ());
- + player.setInstance(fight.getInstance(), true);
- + player.teleToLocation(loc);
- + locIndex++;
- + }
- + else
- + {
- + fight.getTeamOne().sendMessage("Something goes wrong with locations of team one, please, contact and Admin.");
- + fight.getTeamTwo().sendMessage("Something goes wrong with locations of team one, please, contact and Admin.");
- + fight.finish();
- + }
- +
- + }
- + }
- +
- + public void teleportTeamTwo()
- + {
- + int locIndex = 0;
- + for (Player player : teamTwo.getMembers())
- + {
- + if (!player.isOnline())
- + continue;
- +
- + List<Location> locs = arena.getTeamTwoLocation();
- + Location loc = locs.get(locIndex);
- + if (loc != null)
- + {
- + player.setLastX(player.getPosition().getX());
- + player.setLastY(player.getPosition().getY());
- + player.setLastZ(player.getPosition().getZ());
- + player.setInstance(fight.getInstance(), true);
- + player.teleToLocation(loc);
- + locIndex++;
- + }
- + else
- + {
- + fight.getTeamOne().sendMessage("Something goes wrong with locations of team two, please, contact and Admin.");
- + fight.getTeamTwo().sendMessage("Something goes wrong with locations of team two, please, contact and Admin.");
- + fight.finish();
- + }
- +
- + }
- + }
- +
- + /**
- + * @return the arena
- + */
- + public TournamentArena getArena()
- + {
- + return arena;
- + }
- +
- + /**
- + * @param arena the arena to set
- + */
- + public void setArena(TournamentArena arena)
- + {
- + this.arena = arena;
- + }
- +
- + /**
- + * @return the teamOne
- + */
- + public TournamentTeam getTeamOne()
- + {
- + return teamOne;
- + }
- +
- + /**
- + * @param teamOne the teamOne to set
- + */
- + public void setTeamOne(TournamentTeam teamOne)
- + {
- + this.teamOne = teamOne;
- + }
- +
- + /**
- + * @return the teamTwo
- + */
- + public TournamentTeam getTeamTwo()
- + {
- + return teamTwo;
- + }
- +
- + /**
- + * @param teamTwo the teamTwo to set
- + */
- + public void setTeamTwo(TournamentTeam teamTwo)
- + {
- + this.teamTwo = teamTwo;
- + }
- +
- + public TournamentFight getFight()
- + {
- + return fight;
- + }
- +
- + public void setFight(TournamentFight fight)
- + {
- + this.fight = fight;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/Config.java java/net/sf/l2j/Config.java
- index 3f6cec4..be6925e 100644
- --- java/net/sf/l2j/Config.java
- +++ java/net/sf/l2j/Config.java
- @@ -24,7 +24,11 @@
- import net.sf.l2j.gameserver.enums.GeoType;
- import net.sf.l2j.gameserver.model.holder.IntIntHolder;
- +import net.sf.l2j.gameserver.model.location.Location;
- import net.sf.l2j.gameserver.model.olympiad.enums.OlympiadPeriod;
- +import net.sf.l2j.util.RewardHolder;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- /**
- * This class contains global server configuration.<br>
- @@ -48,6 +52,320 @@
- public static final String RUS_ACIS_FILE = "./config/rus_acis.properties";
- public static final String SERVER_FILE = "./config/server.properties";
- public static final String SIEGE_FILE = "./config/siege.properties";
- + public static final String TOURNAMENT = "./config/Tournament.ini";
- +
- +
- + /** Tournament */
- +
- + public static int TOURNAMENT_EVENT_DURATION;
- +
- + public static String[] TOURNAMENT_EVENT_INTERVAL_BY_TIME_OF_DAY;
- + public static int TOURNAMENT_NPC_ID;
- + public static Location TOURNAMENT_NPC_LOCATION;
- + public static List<Integer> TOURNAMENT_RESTRICTED_SKILL_LIST = new ArrayList<>();
- + public static List<Integer> TOURNAMENT_RESTRICTED_ITEM_LIST = new ArrayList<>();
- + public static int TOURNAMENT_TIME_SEARCH_FIGHTS;
- + public static List<RewardHolder> TOURNAMENT_FIGHT_REWARD_WINNER = new ArrayList<>();
- + public static List<RewardHolder> TOURNAMENT_FIGHT_REWARD_LOOSER = new ArrayList<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_FIGHT_START_TIME = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_FIGHT_DURATION = new HashMap<>();
- + public static int TOURNAMENT_TIME_TO_TELEPORT;
- + public static boolean TOURNAMENT_DEBUG;
- +
- + public static Map<TournamentFightType, Integer> TOURNAMENT_DUELIST_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_DREADNOUGHT_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_TANKER_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_DAGGER_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_ARCHER_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_HEALER_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_ARCHMAGE_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_SOULTAKER_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_MYSTICMUSE_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_STORMSCREAMER_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_TITAN_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_DOMINATOR_ALLOWED = new HashMap<>();
- + public static Map<TournamentFightType, Integer> TOURNAMENT_DOOMCRYER_ALLOWED = new HashMap<>();
- +
- + private static final void loadTournament()
- + {
- + final ExProperties tournament = initProperties(TOURNAMENT);
- +
- + String[] npcLoc = tournament.getProperty("TournamentNpcLocation", "150086,46733,-3412").split(",");
- + TOURNAMENT_NPC_ID = tournament.getProperty("TournamentNpcId", 50009);
- + TOURNAMENT_NPC_LOCATION = new Location(Integer.parseInt(npcLoc[0]), Integer.parseInt(npcLoc[1]), Integer.parseInt(npcLoc[2]));
- + TOURNAMENT_EVENT_INTERVAL_BY_TIME_OF_DAY = tournament.getProperty("TournamentStartTime", "20:00").split(",");
- + TOURNAMENT_EVENT_DURATION = tournament.getProperty("TournamentDuration", 5);
- + for (String item : tournament.getProperty("ItemRestrictedList", "").split(","))
- + {
- + TOURNAMENT_RESTRICTED_ITEM_LIST.add(Integer.parseInt(item));
- + }
- + for (String skill : tournament.getProperty("SkillRestrictedList", "").split(","))
- + {
- + TOURNAMENT_RESTRICTED_SKILL_LIST.add(Integer.parseInt(skill));
- + }
- + TOURNAMENT_TIME_SEARCH_FIGHTS = tournament.getProperty("TimeBetweenSearchFights", 5);
- + TOURNAMENT_DEBUG = tournament.getProperty("Debug", true);
- + TOURNAMENT_TIME_TO_TELEPORT = tournament.getProperty("TeleportFightTime", 10);
- + TOURNAMENT_FIGHT_REWARD_WINNER.clear();
- + for (String s : tournament.getProperty("WinnerRewards", "57,1000;3470,10").split(";"))
- + {
- + String[] reward = s.split(",");
- +
- + RewardHolder simpleReward = new RewardHolder(Integer.parseInt(reward[0]), Integer.parseInt(reward[1]));
- + TOURNAMENT_FIGHT_REWARD_WINNER.add(simpleReward);
- + }
- + TOURNAMENT_FIGHT_REWARD_LOOSER.clear();
- + for (String s : tournament.getProperty("LooserRewards", "57,500;3470,5").split(";"))
- + {
- + String[] reward = s.split(",");
- +
- + RewardHolder simpleReward = new RewardHolder(Integer.parseInt(reward[0]), Integer.parseInt(reward[1]));
- + TOURNAMENT_FIGHT_REWARD_LOOSER.add(simpleReward);
- + }
- +
- + TOURNAMENT_FIGHT_START_TIME.clear();
- + int startTime1x1 = tournament.getProperty("FightStartTime_1x1", 10);
- + int startTime2x2 = tournament.getProperty("FightStartTime_2x2", 10);
- + int startTime3x3 = tournament.getProperty("FightStartTime_3x3", 10);
- + int startTime4x4 = tournament.getProperty("FightStartTime_4x4", 10);
- + int startTime5x5 = tournament.getProperty("FightStartTime_5x5", 10);
- + int startTime9x9 = tournament.getProperty("FightStartTime_9x9", 10);
- +
- + TOURNAMENT_FIGHT_START_TIME.put(TournamentFightType.F1X1, startTime1x1);
- + TOURNAMENT_FIGHT_START_TIME.put(TournamentFightType.F2X2, startTime2x2);
- + TOURNAMENT_FIGHT_START_TIME.put(TournamentFightType.F3X3, startTime3x3);
- + TOURNAMENT_FIGHT_START_TIME.put(TournamentFightType.F4X4, startTime4x4);
- + TOURNAMENT_FIGHT_START_TIME.put(TournamentFightType.F5X5, startTime5x5);
- + TOURNAMENT_FIGHT_START_TIME.put(TournamentFightType.F9X9, startTime9x9);
- +
- + TOURNAMENT_FIGHT_DURATION.clear();
- + int fightTime1x1 = tournament.getProperty("FightDuration_1x1", 1);
- + int fightTime2x2 = tournament.getProperty("FightDuration_2x2", 1);
- + int fightTime3x3 = tournament.getProperty("FightDuration_3x3", 1);
- + int fightTime4x4 = tournament.getProperty("FightDuration_4x4", 1);
- + int fightTime5x5 = tournament.getProperty("FightDuration_5x5", 1);
- + int fightTime9x9 = tournament.getProperty("FightDuration_9x9", 1);
- +
- + TOURNAMENT_FIGHT_DURATION.put(TournamentFightType.F1X1, fightTime1x1);
- + TOURNAMENT_FIGHT_DURATION.put(TournamentFightType.F2X2, fightTime2x2);
- + TOURNAMENT_FIGHT_DURATION.put(TournamentFightType.F3X3, fightTime3x3);
- + TOURNAMENT_FIGHT_DURATION.put(TournamentFightType.F4X4, fightTime4x4);
- + TOURNAMENT_FIGHT_DURATION.put(TournamentFightType.F5X5, fightTime5x5);
- + TOURNAMENT_FIGHT_DURATION.put(TournamentFightType.F9X9, fightTime9x9);
- +
- + TOURNAMENT_DUELIST_ALLOWED.clear();
- + TOURNAMENT_DREADNOUGHT_ALLOWED.clear();
- + TOURNAMENT_TANKER_ALLOWED.clear();
- + TOURNAMENT_DAGGER_ALLOWED.clear();
- + TOURNAMENT_ARCHER_ALLOWED.clear();
- + TOURNAMENT_HEALER_ALLOWED.clear();
- + TOURNAMENT_ARCHMAGE_ALLOWED.clear();
- + TOURNAMENT_SOULTAKER_ALLOWED.clear();
- + TOURNAMENT_MYSTICMUSE_ALLOWED.clear();
- + TOURNAMENT_STORMSCREAMER_ALLOWED.clear();
- + TOURNAMENT_TITAN_ALLOWED.clear();
- + TOURNAMENT_DOMINATOR_ALLOWED.clear();
- + TOURNAMENT_DOOMCRYER_ALLOWED.clear();
- + // ARCHERS
- + int archer1x1 = tournament.getProperty("ArchersCountAllowed_1x1", 1);
- + int archer2x2 = tournament.getProperty("ArchersCountAllowed_2x2", 1);
- + int archer3x3 = tournament.getProperty("ArchersCountAllowed_3x3", 1);
- + int archer4x4 = tournament.getProperty("ArchersCountAllowed_4x4", 1);
- + int archer5x5 = tournament.getProperty("ArchersCountAllowed_5x5", 1);
- + int archer9x9 = tournament.getProperty("ArchersCountAllowed_9x9", 1);
- +
- + TOURNAMENT_ARCHER_ALLOWED.put(TournamentFightType.F1X1, archer1x1);
- + TOURNAMENT_ARCHER_ALLOWED.put(TournamentFightType.F2X2, archer2x2);
- + TOURNAMENT_ARCHER_ALLOWED.put(TournamentFightType.F3X3, archer3x3);
- + TOURNAMENT_ARCHER_ALLOWED.put(TournamentFightType.F4X4, archer4x4);
- + TOURNAMENT_ARCHER_ALLOWED.put(TournamentFightType.F5X5, archer5x5);
- + TOURNAMENT_ARCHER_ALLOWED.put(TournamentFightType.F9X9, archer9x9);
- +
- + // archmages
- + int archmage1X1 = tournament.getProperty("ArchmagesCountAllowed_1x1", 1);
- + int archmage2x2 = tournament.getProperty("ArchmagesCountAllowed_2x2", 1);
- + int archmage3x3 = tournament.getProperty("ArchmagesCountAllowed_3x3", 1);
- + int archmage4x4 = tournament.getProperty("ArchmagesCountAllowed_4x4", 1);
- + int archmage5x5 = tournament.getProperty("ArchmagesCountAllowed_5x5", 1);
- + int archmage9x9 = tournament.getProperty("ArchmagesCountAllowed_9x9", 1);
- +
- + TOURNAMENT_ARCHMAGE_ALLOWED.put(TournamentFightType.F1X1, archmage1X1);
- + TOURNAMENT_ARCHMAGE_ALLOWED.put(TournamentFightType.F2X2, archmage2x2);
- + TOURNAMENT_ARCHMAGE_ALLOWED.put(TournamentFightType.F3X3, archmage3x3);
- + TOURNAMENT_ARCHMAGE_ALLOWED.put(TournamentFightType.F4X4, archmage4x4);
- + TOURNAMENT_ARCHMAGE_ALLOWED.put(TournamentFightType.F5X5, archmage5x5);
- + TOURNAMENT_ARCHMAGE_ALLOWED.put(TournamentFightType.F9X9, archmage9x9);
- +
- + // DAGGERS
- + int dagger1x1 = tournament.getProperty("DaggersCountAllowed_1x1", 1);
- + int dagger2x2 = tournament.getProperty("DaggersCountAllowed_2x2", 1);
- + int dagger3x3 = tournament.getProperty("DaggersCountAllowed_3x3", 1);
- + int dagger4x4 = tournament.getProperty("DaggersCountAllowed_4x4", 1);
- + int dagger5x5 = tournament.getProperty("DaggersCountAllowed_5x5", 1);
- + int dagger9x9 = tournament.getProperty("DaggersCountAllowed_9x9", 1);
- +
- + TOURNAMENT_DAGGER_ALLOWED.put(TournamentFightType.F1X1, dagger1x1);
- + TOURNAMENT_DAGGER_ALLOWED.put(TournamentFightType.F2X2, dagger2x2);
- + TOURNAMENT_DAGGER_ALLOWED.put(TournamentFightType.F3X3, dagger3x3);
- + TOURNAMENT_DAGGER_ALLOWED.put(TournamentFightType.F4X4, dagger4x4);
- + TOURNAMENT_DAGGER_ALLOWED.put(TournamentFightType.F5X5, dagger5x5);
- + TOURNAMENT_DAGGER_ALLOWED.put(TournamentFightType.F9X9, dagger9x9);
- +
- + // DOMINATOR
- + int dominator1x1 = tournament.getProperty("DominatorsCountAllowed_1x1", 1);
- + int dominator2x2 = tournament.getProperty("DominatorsCountAllowed_2x2", 1);
- + int dominator3x3 = tournament.getProperty("DominatorsCountAllowed_3x3", 1);
- + int dominator4x4 = tournament.getProperty("DominatorsCountAllowed_4x4", 1);
- + int dominator5x5 = tournament.getProperty("DominatorsCountAllowed_5x5", 1);
- + int dominator9x9 = tournament.getProperty("DominatorsCountAllowed_9x9", 1);
- +
- + TOURNAMENT_DOMINATOR_ALLOWED.put(TournamentFightType.F1X1, dominator1x1);
- + TOURNAMENT_DOMINATOR_ALLOWED.put(TournamentFightType.F2X2, dominator2x2);
- + TOURNAMENT_DOMINATOR_ALLOWED.put(TournamentFightType.F3X3, dominator3x3);
- + TOURNAMENT_DOMINATOR_ALLOWED.put(TournamentFightType.F4X4, dominator4x4);
- + TOURNAMENT_DOMINATOR_ALLOWED.put(TournamentFightType.F5X5, dominator5x5);
- + TOURNAMENT_DOMINATOR_ALLOWED.put(TournamentFightType.F9X9, dominator9x9);
- +
- + // DOOMCRYER
- + int doomcryer1x1 = tournament.getProperty("DoomcryersCountAllowed_1x1", 1);
- + int doomcryer2x2 = tournament.getProperty("DoomcryersCountAllowed_2x2", 1);
- + int doomcryer3x3 = tournament.getProperty("DoomcryersCountAllowed_3x3", 1);
- + int doomcryer4x4 = tournament.getProperty("DoomcryersCountAllowed_4x4", 1);
- + int doomcryer5x5 = tournament.getProperty("DoomcryersCountAllowed_5x5", 1);
- + int doomcryer9x9 = tournament.getProperty("DoomcryersCountAllowed_9x9", 1);
- +
- + TOURNAMENT_DOOMCRYER_ALLOWED.put(TournamentFightType.F1X1, doomcryer1x1);
- + TOURNAMENT_DOOMCRYER_ALLOWED.put(TournamentFightType.F2X2, doomcryer2x2);
- + TOURNAMENT_DOOMCRYER_ALLOWED.put(TournamentFightType.F3X3, doomcryer3x3);
- + TOURNAMENT_DOOMCRYER_ALLOWED.put(TournamentFightType.F4X4, doomcryer4x4);
- + TOURNAMENT_DOOMCRYER_ALLOWED.put(TournamentFightType.F5X5, doomcryer5x5);
- + TOURNAMENT_DOOMCRYER_ALLOWED.put(TournamentFightType.F9X9, doomcryer9x9);
- +
- + // DREADNOUGHT
- + int dreadnought1x1 = tournament.getProperty("DreadnoughtsCountAllowed_1x1", 1);
- + int dreadnought2x2 = tournament.getProperty("DreadnoughtsCountAllowed_2x2", 1);
- + int dreadnought3x3 = tournament.getProperty("DreadnoughtsCountAllowed_3x3", 1);
- + int dreadnought4x4 = tournament.getProperty("DreadnoughtsCountAllowed_4x4", 1);
- + int dreadnought5x5 = tournament.getProperty("DreadnoughtsCountAllowed_5x5", 1);
- + int dreadnought9x9 = tournament.getProperty("DreadnoughtsCountAllowed_9x9", 1);
- +
- + TOURNAMENT_DREADNOUGHT_ALLOWED.put(TournamentFightType.F1X1, dreadnought1x1);
- + TOURNAMENT_DREADNOUGHT_ALLOWED.put(TournamentFightType.F2X2, dreadnought2x2);
- + TOURNAMENT_DREADNOUGHT_ALLOWED.put(TournamentFightType.F3X3, dreadnought3x3);
- + TOURNAMENT_DREADNOUGHT_ALLOWED.put(TournamentFightType.F4X4, dreadnought4x4);
- + TOURNAMENT_DREADNOUGHT_ALLOWED.put(TournamentFightType.F5X5, dreadnought5x5);
- + TOURNAMENT_DREADNOUGHT_ALLOWED.put(TournamentFightType.F9X9, dreadnought9x9);
- +
- + // DUELIST
- + int duelist1x1 = tournament.getProperty("DuelistsCountAllowed_1x1", 1);
- + int duelist2x2 = tournament.getProperty("DuelistsCountAllowed_2x2", 1);
- + int duelist3x3 = tournament.getProperty("DuelistsCountAllowed_3x3", 1);
- + int duelist4x4 = tournament.getProperty("DuelistsCountAllowed_4x4", 1);
- + int duelist5x5 = tournament.getProperty("DuelistsCountAllowed_5x5", 1);
- + int duelist9x9 = tournament.getProperty("DuelistsCountAllowed_9x9", 1);
- +
- + TOURNAMENT_DUELIST_ALLOWED.put(TournamentFightType.F1X1, duelist1x1);
- + TOURNAMENT_DUELIST_ALLOWED.put(TournamentFightType.F2X2, duelist2x2);
- + TOURNAMENT_DUELIST_ALLOWED.put(TournamentFightType.F3X3, duelist3x3);
- + TOURNAMENT_DUELIST_ALLOWED.put(TournamentFightType.F4X4, duelist4x4);
- + TOURNAMENT_DUELIST_ALLOWED.put(TournamentFightType.F5X5, duelist5x5);
- + TOURNAMENT_DUELIST_ALLOWED.put(TournamentFightType.F9X9, duelist9x9);
- +
- + // HEALER
- + int healer1x1 = tournament.getProperty("HealersCountAllowed_1x1", 1);
- + int healer2x2 = tournament.getProperty("HealersCountAllowed_2x2", 1);
- + int healer3x3 = tournament.getProperty("HealersCountAllowed_3x3", 1);
- + int healer4x4 = tournament.getProperty("HealersCountAllowed_4x4", 1);
- + int healer5x5 = tournament.getProperty("HealersCountAllowed_5x5", 1);
- + int healer9x9 = tournament.getProperty("HealersCountAllowed_9x9", 1);
- +
- + TOURNAMENT_HEALER_ALLOWED.put(TournamentFightType.F1X1, healer1x1);
- + TOURNAMENT_HEALER_ALLOWED.put(TournamentFightType.F2X2, healer2x2);
- + TOURNAMENT_HEALER_ALLOWED.put(TournamentFightType.F3X3, healer3x3);
- + TOURNAMENT_HEALER_ALLOWED.put(TournamentFightType.F4X4, healer4x4);
- + TOURNAMENT_HEALER_ALLOWED.put(TournamentFightType.F5X5, healer5x5);
- + TOURNAMENT_HEALER_ALLOWED.put(TournamentFightType.F9X9, healer9x9);
- +
- + // MYSTIC MUSE
- + int mysticmuse1x1 = tournament.getProperty("MysticMusesCountAllowed_1x1", 1);
- + int mysticmuse2x2 = tournament.getProperty("MysticMusesCountAllowed_2x2", 1);
- + int mysticmuse3x3 = tournament.getProperty("MysticMusesCountAllowed_3x3", 1);
- + int mysticmuse4x4 = tournament.getProperty("MysticMusesCountAllowed_4x4", 1);
- + int mysticmuse5x5 = tournament.getProperty("MysticMusesCountAllowed_5x5", 1);
- + int mysticmuse9x9 = tournament.getProperty("MysticMusesCountAllowed_9x9", 1);
- +
- + TOURNAMENT_MYSTICMUSE_ALLOWED.put(TournamentFightType.F1X1, mysticmuse1x1);
- + TOURNAMENT_MYSTICMUSE_ALLOWED.put(TournamentFightType.F2X2, mysticmuse2x2);
- + TOURNAMENT_MYSTICMUSE_ALLOWED.put(TournamentFightType.F3X3, mysticmuse3x3);
- + TOURNAMENT_MYSTICMUSE_ALLOWED.put(TournamentFightType.F4X4, mysticmuse4x4);
- + TOURNAMENT_MYSTICMUSE_ALLOWED.put(TournamentFightType.F5X5, mysticmuse5x5);
- + TOURNAMENT_MYSTICMUSE_ALLOWED.put(TournamentFightType.F9X9, mysticmuse9x9);
- +
- + // SOUL TAKER
- + int soulTaker1x1 = tournament.getProperty("SoulTakersCountAllowed_1x1", 1);
- + int soulTaker2x2 = tournament.getProperty("SoulTakersCountAllowed_2x2", 1);
- + int soulTaker3x3 = tournament.getProperty("SoulTakersCountAllowed_3x3", 1);
- + int soulTaker4x4 = tournament.getProperty("SoulTakersCountAllowed_4x4", 1);
- + int soulTaker5x5 = tournament.getProperty("SoulTakersCountAllowed_5x5", 1);
- + int soulTaker9x9 = tournament.getProperty("SoulTakersCountAllowed_9x9", 1);
- +
- + TOURNAMENT_SOULTAKER_ALLOWED.put(TournamentFightType.F1X1, soulTaker1x1);
- + TOURNAMENT_SOULTAKER_ALLOWED.put(TournamentFightType.F2X2, soulTaker2x2);
- + TOURNAMENT_SOULTAKER_ALLOWED.put(TournamentFightType.F3X3, soulTaker3x3);
- + TOURNAMENT_SOULTAKER_ALLOWED.put(TournamentFightType.F4X4, soulTaker4x4);
- + TOURNAMENT_SOULTAKER_ALLOWED.put(TournamentFightType.F5X5, soulTaker5x5);
- + TOURNAMENT_SOULTAKER_ALLOWED.put(TournamentFightType.F9X9, soulTaker9x9);
- +
- + // TITAN
- + int titan1x1 = tournament.getProperty("TitansCountAllowed_1x1", 1);
- + int titan2x2 = tournament.getProperty("TitansCountAllowed_2x2", 1);
- + int titan3x3 = tournament.getProperty("TitansCountAllowed_3x3", 1);
- + int titan4x4 = tournament.getProperty("TitansCountAllowed_4x4", 1);
- + int titan5x5 = tournament.getProperty("TitansCountAllowed_5x5", 1);
- + int titan9x9 = tournament.getProperty("TitansCountAllowed_9x9", 1);
- +
- + TOURNAMENT_TITAN_ALLOWED.put(TournamentFightType.F1X1, titan1x1);
- + TOURNAMENT_TITAN_ALLOWED.put(TournamentFightType.F2X2, titan2x2);
- + TOURNAMENT_TITAN_ALLOWED.put(TournamentFightType.F3X3, titan3x3);
- + TOURNAMENT_TITAN_ALLOWED.put(TournamentFightType.F4X4, titan4x4);
- + TOURNAMENT_TITAN_ALLOWED.put(TournamentFightType.F5X5, titan5x5);
- + TOURNAMENT_TITAN_ALLOWED.put(TournamentFightType.F9X9, titan9x9);
- +
- + // STORM SCREAMER
- + int stormScreamer1x1 = tournament.getProperty("StormScreamersCountAllowed_1x1", 1);
- + int stormScreamer2x2 = tournament.getProperty("StormScreamersCountAllowed_2x2", 1);
- + int stormScreamer3x3 = tournament.getProperty("StormScreamersCountAllowed_3x3", 1);
- + int stormScreamer4x4 = tournament.getProperty("StormScreamersCountAllowed_4x4", 1);
- + int stormScreamer5x5 = tournament.getProperty("StormScreamersCountAllowed_5x5", 1);
- + int stormScreamer9x9 = tournament.getProperty("StormScreamersCountAllowed_9x9", 1);
- +
- + TOURNAMENT_STORMSCREAMER_ALLOWED.put(TournamentFightType.F1X1, stormScreamer1x1);
- + TOURNAMENT_STORMSCREAMER_ALLOWED.put(TournamentFightType.F2X2, stormScreamer2x2);
- + TOURNAMENT_STORMSCREAMER_ALLOWED.put(TournamentFightType.F3X3, stormScreamer3x3);
- + TOURNAMENT_STORMSCREAMER_ALLOWED.put(TournamentFightType.F4X4, stormScreamer4x4);
- + TOURNAMENT_STORMSCREAMER_ALLOWED.put(TournamentFightType.F5X5, stormScreamer5x5);
- + TOURNAMENT_STORMSCREAMER_ALLOWED.put(TournamentFightType.F9X9, stormScreamer9x9);
- +
- + // TANKERS
- + int tanker1x1 = tournament.getProperty("TankersCountAllowed_1x1", 1);
- + int tanker2x2 = tournament.getProperty("TankersCountAllowed_2x2", 1);
- + int tanker3x3 = tournament.getProperty("TankersCountAllowed_3x3", 1);
- + int tanker4x4 = tournament.getProperty("TankersCountAllowed_4x4", 1);
- + int tanker5x5 = tournament.getProperty("TankersCountAllowed_5x5", 1);
- + int tanker9x9 = tournament.getProperty("TankersCountAllowed_9x9", 1);
- +
- + TOURNAMENT_TANKER_ALLOWED.put(TournamentFightType.F1X1, tanker1x1);
- + TOURNAMENT_TANKER_ALLOWED.put(TournamentFightType.F2X2, tanker2x2);
- + TOURNAMENT_TANKER_ALLOWED.put(TournamentFightType.F3X3, tanker3x3);
- + TOURNAMENT_TANKER_ALLOWED.put(TournamentFightType.F4X4, tanker4x4);
- + TOURNAMENT_TANKER_ALLOWED.put(TournamentFightType.F5X5, tanker5x5);
- + TOURNAMENT_TANKER_ALLOWED.put(TournamentFightType.F9X9, tanker9x9);
- +
- + }
- +
- +
- +
- +
- /** Character Killing Monument settings */
- @@ -2568,6 +2886,8 @@
- // rates settings
- loadRates();
- + loadTournament();
- +
- // rusacis settings
- loadRusAcis();
- }
- diff --git java/net/sf/l2j/commons/data/xml/IXmlReader.java java/net/sf/l2j/commons/data/xml/IXmlReader.java
- index d876bb1..cc69d62 100644
- --- java/net/sf/l2j/commons/data/xml/IXmlReader.java
- +++ java/net/sf/l2j/commons/data/xml/IXmlReader.java
- @@ -465,4 +465,24 @@
- throw e;
- }
- }
- +
- +
- + /**
- + * This method parses the content of a NamedNodeMap and feed the given StatsSet.
- + * @param attrs : The NamedNodeMap to parse.
- + * @param set : The StatsSet to feed.
- + */
- + default void parseAndFeed(NamedNodeMap attrs, StatSet set)
- + {
- + for (int i = 0; i < attrs.getLength(); i++)
- + {
- + final Node attr = attrs.item(i);
- + set.set(attr.getNodeName(), attr.getNodeValue());
- + }
- + }
- +
- +
- +
- +
- +
- }
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/GameServer.java java/net/sf/l2j/gameserver/GameServer.java
- index 98f7da4..9a43506 100644
- --- java/net/sf/l2j/gameserver/GameServer.java
- +++ java/net/sf/l2j/gameserver/GameServer.java
- @@ -81,6 +81,7 @@
- import net.sf.l2j.gameserver.data.xml.WalkerRouteData;
- import net.sf.l2j.gameserver.geoengine.GeoEngine;
- import net.sf.l2j.gameserver.handler.AdminCommandHandler;
- +import net.sf.l2j.gameserver.handler.BypassHandler;
- import net.sf.l2j.gameserver.handler.ChatHandler;
- import net.sf.l2j.gameserver.handler.ItemHandler;
- import net.sf.l2j.gameserver.handler.SkillHandler;
- @@ -116,6 +117,8 @@
- import Base.HuntPass.HuntPassData;
- import Base.HuntPass.HuntPassManager;
- import Base.HuntPass.HuntPassPointCollector;
- +import Base.Instance.InstanceManager;
- +import Base.Tournament.Manager.TournamentManager;
- public class GameServer
- {
- @@ -299,6 +302,7 @@
- LOGGER.info("Loaded {} skill handlers.", SkillHandler.getInstance().size());
- LOGGER.info("Loaded {} target handlers.", TargetHandler.getInstance().size());
- LOGGER.info("Loaded {} user command handlers.", UserCommandHandler.getInstance().size());
- + LOGGER.info("Loaded {} bypass command handlers.", BypassHandler.getInstance().size());
- LOGGER.info("Loaded {} voiced command handlers.", VoicedCommandHandler.getInstance().size());
- @@ -334,6 +338,13 @@
- + StringUtil.printSection("Instance Manager");
- + InstanceManager.getInstance();
- +
- + StringUtil.printSection("Tournament Manager");
- + TournamentManager.getInstance();
- +
- +
- StringUtil.printSection("System");
- Runtime.getRuntime().addShutdownHook(Shutdown.getInstance());
- diff --git java/net/sf/l2j/gameserver/enums/ZoneId.java java/net/sf/l2j/gameserver/enums/ZoneId.java
- index 1be8899..01a1938 100644
- --- java/net/sf/l2j/gameserver/enums/ZoneId.java
- +++ java/net/sf/l2j/gameserver/enums/ZoneId.java
- @@ -23,8 +23,9 @@
- SCRIPT(18),
- BOSS(19),
- PAGAN(20),
- - SSQ(21),
- - ENCHANT_ZONE(22);
- + TOURNAMENT(21),
- + SSQ(22),
- + ENCHANT_ZONE(23);
- private final int _id;
- diff --git java/net/sf/l2j/gameserver/enums/actors/ClassId.java java/net/sf/l2j/gameserver/enums/actors/ClassId.java
- index 9fbfcef..7bc550d 100644
- --- java/net/sf/l2j/gameserver/enums/actors/ClassId.java
- +++ java/net/sf/l2j/gameserver/enums/actors/ClassId.java
- @@ -2,6 +2,8 @@
- import java.util.EnumSet;
- +import net.sf.l2j.commons.util.ArraysUtil;
- +
- import net.sf.l2j.gameserver.model.actor.Player;
- /**
- @@ -182,6 +184,79 @@
- return _name;
- }
- +
- +
- + private static final ClassId[] HEALERS =
- + {
- + ClassId.BISHOP,
- + ClassId.CARDINAL,
- + ClassId.EVAS_SAINT,
- + ClassId.ELVEN_ELDER,
- + ClassId.SHILLIEN_SAINT,
- + ClassId.SHILLIEN_ELDER
- + };
- +
- + private static final ClassId[] TANKERS =
- + {
- + ClassId.HELL_KNIGHT,
- + ClassId.DARK_AVENGER,
- + ClassId.SHILLIEN_KNIGHT,
- + ClassId.SHILLIEN_TEMPLAR,
- + ClassId.EVAS_TEMPLAR,
- + ClassId.TEMPLE_KNIGHT,
- + ClassId.BLADEDANCER,
- + ClassId.SPECTRAL_DANCER,
- + ClassId.SWORD_SINGER,
- + ClassId.SWORD_MUSE,
- + ClassId.PHOENIX_KNIGHT,
- + ClassId.PALADIN,
- + };
- +
- + private static final ClassId[] DAGGERS =
- + {
- + ClassId.ADVENTURER,
- + ClassId.TREASURE_HUNTER,
- + ClassId.GHOST_HUNTER,
- + ClassId.ABYSS_WALKER,
- + ClassId.PLAINS_WALKER,
- + ClassId.WIND_RIDER,
- + ClassId.FORTUNE_SEEKER,
- + ClassId.BOUNTY_HUNTER
- + };
- +
- + private static final ClassId[] ARCHERS =
- + {
- + ClassId.SAGGITARIUS,
- + ClassId.HAWKEYE,
- + ClassId.GHOST_SENTINEL,
- + ClassId.PHANTOM_RANGER,
- + ClassId.MOONLIGHT_SENTINEL,
- + ClassId.SILVER_RANGER
- + };
- +
- + public boolean isHealer()
- + {
- + return ArraysUtil.contains(HEALERS, this);
- + }
- +
- + public boolean isDagger()
- + {
- + return ArraysUtil.contains(DAGGERS, this);
- + }
- +
- + public boolean isTanker()
- + {
- + return ArraysUtil.contains(TANKERS, this);
- + }
- +
- + public boolean isArcher()
- + {
- + return ArraysUtil.contains(ARCHERS, this);
- + }
- +
- +
- +
- +
- /**
- * @return The associated id of this {@link ClassId}.
- */
- diff --git java/net/sf/l2j/gameserver/geoengine/geodata/IGeoObject.java java/net/sf/l2j/gameserver/geoengine/geodata/IGeoObject.java
- index 379e708..28b43ff 100644
- --- java/net/sf/l2j/gameserver/geoengine/geodata/IGeoObject.java
- +++ java/net/sf/l2j/gameserver/geoengine/geodata/IGeoObject.java
- @@ -31,4 +31,6 @@
- * @return byte[][] : {@link IGeoObject} data.
- */
- public byte[][] getObjectGeoData();
- +
- + public int getInstanceID();
- }
- diff --git java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java
- index 926b29c..1842f7f 100644
- --- java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java
- +++ java/net/sf/l2j/gameserver/handler/AdminCommandHandler.java
- @@ -18,6 +18,7 @@
- import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminFind;
- import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGeoEngine;
- import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminInfo;
- +import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminInstance;
- import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminItem;
- import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminKnownlist;
- import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminLMEvent;
- @@ -88,9 +89,10 @@
- registerHandler(new AdminTest());
- registerHandler(new AdminZone());
- registerHandler(new AdminZoneCreation());
- + registerHandler(new AdminInstance());
- }
- - private void registerHandler(IAdminCommandHandler handler)
- + public void registerHandler(IAdminCommandHandler handler)
- {
- for (String id : handler.getAdminCommandList())
- _entries.put(id.hashCode(), handler);
- diff --git java/net/sf/l2j/gameserver/handler/BypassHandler.java java/net/sf/l2j/gameserver/handler/BypassHandler.java
- new file mode 100644
- index 0000000..b8f406f
- --- /dev/null
- +++ java/net/sf/l2j/gameserver/handler/BypassHandler.java
- @@ -0,0 +1,54 @@
- +package net.sf.l2j.gameserver.handler;
- +
- +import java.util.HashMap;
- +import java.util.Map;
- +
- +
- +import net.sf.l2j.gameserver.model.entity.Tournament.ByPasses.TournamentBypasses;
- +
- +/**
- + * @author Anarchy
- + */
- +public class BypassHandler
- +{
- +
- + private final Map<Integer, IBypassHandler> _datatable = new HashMap<>();
- +
- + public static BypassHandler getInstance()
- + {
- + return SingletonHolder._instance;
- + }
- +
- + private BypassHandler()
- + {
- + registerBypassHandler(new TournamentBypasses());
- + }
- +
- + public void registerBypassHandler(IBypassHandler handler)
- + {
- + String[] ids = handler.getBypassHandlersList();
- + for (int i = 0; i < ids.length; i++)
- + {
- + _datatable.put(ids[i].hashCode(), handler);
- + }
- + }
- +
- + public IBypassHandler getBypassHandler(String bypass)
- + {
- + String command = bypass;
- + if (bypass.indexOf(" ") != -1)
- + command = bypass.substring(0, bypass.indexOf(" "));
- +
- + return _datatable.get(command.hashCode());
- + }
- +
- + public int size()
- + {
- + return _datatable.size();
- + }
- +
- + private static class SingletonHolder
- + {
- + protected static final BypassHandler _instance = new BypassHandler();
- + }
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/handler/IBypassHandler.java java/net/sf/l2j/gameserver/handler/IBypassHandler.java
- new file mode 100644
- index 0000000..3fec86c
- --- /dev/null
- +++ java/net/sf/l2j/gameserver/handler/IBypassHandler.java
- @@ -0,0 +1,13 @@
- +package net.sf.l2j.gameserver.handler;
- +
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +/**
- + * @author Anarchy
- + */
- +public interface IBypassHandler
- +{
- + public boolean handleBypass(String bypass, Player activeChar);
- +
- + public String[] getBypassHandlersList();
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminInstance.java java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminInstance.java
- new file mode 100644
- index 0000000..5e1a2ec
- --- /dev/null
- +++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminInstance.java
- @@ -0,0 +1,62 @@
- +package net.sf.l2j.gameserver.handler.admincommandhandlers;
- +
- +import java.util.StringTokenizer;
- +
- +import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
- +import net.sf.l2j.gameserver.model.World;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +import Base.Instance.InstanceManager;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class AdminInstance implements IAdminCommandHandler
- +{
- +
- + @Override
- + public void useAdminCommand(String command, Player activeChar)
- + {
- + if (command.startsWith("admin_getinstance"))
- + {
- + StringTokenizer st = new StringTokenizer(command, " ");
- + st.nextToken(); // skip command
- +
- + if (!st.hasMoreTokens())
- + {
- + activeChar.sendMessage("Write the name.");
- + return;
- + }
- +
- + String target_name = st.nextToken();
- + Player player = World.getInstance().getPlayer(target_name);
- + if (player == null)
- + {
- + activeChar.sendMessage("Player is offline");
- + return;
- + }
- +
- + activeChar.setInstance(player.getInstance(), false);
- + activeChar.sendMessage("You are with the same instance of player " + target_name);
- + }
- + else if (command.startsWith("admin_resetmyinstance"))
- + {
- + activeChar.setInstance(InstanceManager.getInstance().getInstance(0), false);
- + activeChar.sendMessage("Your instance is now default");
- + }
- +
- + }
- +
- + @Override
- + public String[] getAdminCommandList()
- + {
- +
- + return new String[]
- + {
- + "admin_getinstance",
- + "admin_resetmyinstance"
- + };
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java
- index 61144d5..7ad61ea 100644
- --- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java
- +++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminReload.java
- @@ -27,6 +27,8 @@
- import net.sf.l2j.gameserver.model.actor.Player;
- import net.sf.l2j.util.LocalizationStorage;
- +import Base.Tournament.Data.TournamentArenaParser;
- +
- public class AdminReload implements IAdminCommandHandler
- {
- private static final String[] ADMIN_COMMANDS =
- @@ -75,6 +77,12 @@
- CrestCache.getInstance().reload();
- player.sendMessage("Crests have been reloaded.");
- }
- + else if (type.startsWith("tournamentarena"))
- + {
- + TournamentArenaParser.getInstance().reload();
- + player.sendMessage("The content of Tournament arenas.xml has been reloaded.");
- + }
- +
- else if (type.startsWith("cw"))
- {
- CursedWeaponManager.getInstance().reload();
- diff --git java/net/sf/l2j/gameserver/model/WorldObject.java java/net/sf/l2j/gameserver/model/WorldObject.java
- index 2bb4d4a..90f3e13 100644
- --- java/net/sf/l2j/gameserver/model/WorldObject.java
- +++ java/net/sf/l2j/gameserver/model/WorldObject.java
- @@ -15,12 +15,16 @@
- import net.sf.l2j.gameserver.model.actor.Creature;
- import net.sf.l2j.gameserver.model.actor.Playable;
- import net.sf.l2j.gameserver.model.actor.Player;
- +import net.sf.l2j.gameserver.model.actor.instance.Fence;
- import net.sf.l2j.gameserver.model.boat.BoatItinerary;
- import net.sf.l2j.gameserver.model.location.Location;
- import net.sf.l2j.gameserver.model.location.SpawnLocation;
- import net.sf.l2j.gameserver.model.zone.type.subtype.ZoneType;
- import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
- +import Base.Instance.Instance;
- +import Base.Instance.InstanceManager;
- +
- /**
- * Mother class of all interactive objects in the world (PC, NPC, Item...)
- */
- @@ -399,6 +403,18 @@
- }
- }
- +
- +
- + for (WorldObject object : getDifferentInstanceObjects())
- + {
- + object.removeKnownObject(this);
- + removeKnownObject(object);
- + }
- +
- +
- +
- +
- +
- // For every new surrounding area NOT SHARED with old surrounding areas.
- for (WorldRegion region : newAreas)
- {
- @@ -411,7 +427,8 @@
- // Update all objects.
- for (WorldObject obj : region.getObjects())
- {
- - if (obj == this)
- + // if (obj == this)
- + if (obj == this || obj.getInstance().getId() != getInstance().getId())
- continue;
- obj.addKnownObject(this);
- @@ -494,6 +511,11 @@
- if (obj == this || !type.isAssignableFrom(obj.getClass()))
- continue;
- +
- + if (obj.getInstance().getId() != getInstance().getId() && !(obj instanceof Fence))
- + continue;
- +
- +
- result.add((A) obj);
- }
- }
- @@ -524,6 +546,12 @@
- if (obj == this || !type.isAssignableFrom(obj.getClass()) || !predicate.test((A) obj))
- continue;
- +
- + if (obj.getInstance().getId() != getInstance().getId() && !(obj instanceof Fence))
- + continue;
- +
- +
- +
- result.add((A) obj);
- }
- }
- @@ -814,4 +842,50 @@
- {
- }
- +
- +
- +
- + // Rouxy: Instance
- + private Instance _instance = InstanceManager.getInstance().getInstance(0);
- +
- + public void setInstance(Instance instance, boolean silent)
- + {
- + _instance = instance;
- +
- + if (!silent)
- + {
- + decayMe();
- + spawnMe();
- + }
- + }
- +
- + public Instance getInstance()
- + {
- + return _instance;
- + }
- +
- + private final List<WorldObject> getDifferentInstanceObjects()
- + {
- + final WorldRegion region = _region;
- + if (region == null)
- + return Collections.emptyList();
- +
- + final List<WorldObject> result = new ArrayList<>();
- +
- + for (WorldRegion reg : region.getSurroundingRegions())
- + {
- + for (WorldObject obj : reg.getObjects())
- + {
- + if (obj == this || obj.getInstance().getId() == getInstance().getId() || obj instanceof Fence)
- + continue;
- +
- + result.add(obj);
- + }
- + }
- +
- + return result;
- + }
- +
- +
- +
- }
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/model/actor/Player.java java/net/sf/l2j/gameserver/model/actor/Player.java
- index 6aaf342..93586b7 100644
- --- java/net/sf/l2j/gameserver/model/actor/Player.java
- +++ java/net/sf/l2j/gameserver/model/actor/Player.java
- @@ -67,6 +67,7 @@
- import net.sf.l2j.gameserver.enums.PrivilegeType;
- import net.sf.l2j.gameserver.enums.PunishmentType;
- import net.sf.l2j.gameserver.enums.RestartType;
- +import net.sf.l2j.gameserver.enums.SayType;
- import net.sf.l2j.gameserver.enums.ShortcutType;
- import net.sf.l2j.gameserver.enums.SpawnType;
- import net.sf.l2j.gameserver.enums.StatusType;
- @@ -171,6 +172,7 @@
- import net.sf.l2j.gameserver.network.serverpackets.ChangeWaitType;
- import net.sf.l2j.gameserver.network.serverpackets.CharInfo;
- import net.sf.l2j.gameserver.network.serverpackets.ConfirmDlg;
- +import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
- import net.sf.l2j.gameserver.network.serverpackets.DeleteObject;
- import net.sf.l2j.gameserver.network.serverpackets.EnchantResult;
- import net.sf.l2j.gameserver.network.serverpackets.EtcStatusUpdate;
- @@ -182,6 +184,7 @@
- import net.sf.l2j.gameserver.network.serverpackets.ExStorageMaxCount;
- import net.sf.l2j.gameserver.network.serverpackets.HennaInfo;
- import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;
- +import net.sf.l2j.gameserver.network.serverpackets.ItemList;
- import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket;
- import net.sf.l2j.gameserver.network.serverpackets.LeaveWorld;
- import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
- @@ -239,6 +242,13 @@
- import net.sf.l2j.gameserver.taskmanager.ShadowItemTaskManager;
- import net.sf.l2j.gameserver.taskmanager.WaterTaskManager;
- import net.sf.l2j.util.CustomMessage;
- +import net.sf.l2j.util.Mysql;
- +import net.sf.l2j.util.PlayerVar;
- +import net.sf.l2j.util.PlayerVariables;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- @@ -2062,6 +2072,8 @@
- return null;
- }
- + item.setInstance(getInstance(), true); // True because Drop me will spawn it
- +
- item.dropMe(this, x, y, z);
- // Send message to client, if requested.
- @@ -2662,6 +2674,7 @@
- if (killer != null)
- {
- final Player pk = killer.getActingPlayer();
- + TournamentManager.getInstance().onKill(killer, this);
- if (pk != null)
- {
- @@ -4316,6 +4329,9 @@
- player.getStatus().stopHpMpRegeneration();
- }
- + PlayerVariables.loadVariables(player);
- + TournamentManager.getInstance().onPlayerEnter(player);
- +
- if (Config.RESTORE_STORE_ITEMS)
- player.restoreStoreList();
- @@ -6809,6 +6825,9 @@
- if (isInOlympiadMode() && target instanceof Player && ((Player) target).isInOlympiadMode() && ((Player) target).getOlympiadGameId() == getOlympiadGameId())
- OlympiadGameManager.getInstance().notifyCompetitorDamage(this, damage);
- +
- + if (isInTournamentMatch() && target instanceof Player && ((Player) target).isInTournamentMatch() && ((Player) target).getTournamentFightId() == getTournamentFightId())
- + addTournamentMatchDamage(damage);
- }
- public void checkItemRestriction()
- @@ -7859,7 +7878,468 @@
- -
- + // Rouxy: Daily Reward
- + /**
- + * @return the nextRewardTime
- + */
- + public long getNextRewardTime()
- + {
- + return nextRewardTime;
- + }
- +
- + /**
- + * @param nextRewardTime the nextRewardTime to set
- + */
- + public void setNextRewardTime(long nextRewardTime)
- + {
- + this.nextRewardTime = nextRewardTime;
- + }
- +
- + private long nextRewardTime;
- +
- + // Rouxy: Tournament
- +
- + private boolean tournamentTeamBeingInvited;
- + private int tournamentFightId;
- + private TournamentFightType tournamentFightType = TournamentFightType.NONE;
- + private boolean inTournamentMatch;
- + private int lastX;
- + private int lastY;
- + private int lastZ;
- + private int tournamentPoints;
- + private int tournamentMatchDamage;
- + private Map<TournamentFightType, Integer> tournamentKills = new HashMap<>();
- + private Map<TournamentFightType, Integer> tournamentVictories = new HashMap<>();
- + private Map<TournamentFightType, Integer> tournamentDefeats = new HashMap<>();
- + private Map<TournamentFightType, Integer> tournamentTies = new HashMap<>();
- + private Map<TournamentFightType, Integer> tournamentDamage = new HashMap<>();
- +
- + public int getTournamentTotalDamage()
- + {
- + int count = 0;
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentDamage.entrySet())
- + {
- + count += entry.getValue();
- + }
- + return count;
- + }
- +
- + public int getTournamentTotalDamage(TournamentFightType type)
- + {
- + return tournamentDamage.get(type);
- + }
- +
- + public int getTotalVictories()
- + {
- + int count = 0;
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentVictories.entrySet())
- + {
- + count += entry.getValue();
- + }
- + return count;
- + }
- +
- + public int getTotalDefeats()
- + {
- + int count = 0;
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentDefeats.entrySet())
- + {
- + count += entry.getValue();
- + }
- + return count;
- + }
- +
- + public int getTotalTies()
- + {
- + int count = 0;
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentTies.entrySet())
- + {
- + count += entry.getValue();
- + }
- + return count;
- + }
- +
- + /**
- + * @return Total of fights done by player
- + */
- + public int getTotalTournamentFightsDone()
- + {
- + return getTournamentFightsDone(TournamentFightType.F1X1) + getTournamentFightsDone(TournamentFightType.F2X2) + getTournamentFightsDone(TournamentFightType.F3X3) + getTournamentFightsDone(TournamentFightType.F4X4) + getTournamentFightsDone(TournamentFightType.F5X5) + getTournamentFightsDone(TournamentFightType.F9X9);
- + }
- +
- + /**
- + * @param type
- + * @return Total of fights of type done by player
- + */
- + public int getTournamentFightsDone(TournamentFightType type)
- + {
- + return tournamentVictories.get(type) + tournamentDefeats.get(type) + tournamentTies.get(type);
- + }
- +
- + /**
- + * @return if player is in a registered team o tournament
- + */
- + public boolean isInTournamentMode()
- + {
- + return TournamentManager.getInstance().isInTournamentMode(this);
- + }
- +
- + public TournamentTeam getTournamentTeam()
- + {
- + return tournamentTeam;
- + }
- +
- + public void setTournamentTeam(TournamentTeam tournamentTeam)
- + {
- + this.tournamentTeam = tournamentTeam;
- + }
- +
- + private TournamentTeam tournamentTeam;
- +
- + public boolean isInTournamentTeam()
- + {
- + return getTournamentTeam() != null;
- + }
- +
- + /**
- + * @return if player received a invitation to a tour team
- + */
- + public boolean isTournamentTeamBeingInvited()
- + {
- + return tournamentTeamBeingInvited;
- + }
- +
- + public void setTournamentTeamBeingInvited(boolean tournamentTeamBeingInvited)
- + {
- + this.tournamentTeamBeingInvited = tournamentTeamBeingInvited;
- + }
- +
- + public int getTournamentFightId()
- + {
- + return tournamentFightId;
- + }
- +
- + public void setTournamentFightId(int tournamentFightId)
- + {
- + this.tournamentFightId = tournamentFightId;
- + }
- +
- + public TournamentFightType getTournamentFightType()
- + {
- + return tournamentFightType;
- + }
- +
- + public void setTournamentFightType(TournamentFightType tournamentFightType)
- + {
- + this.tournamentFightType = tournamentFightType;
- + }
- +
- + /**
- + * @return the inTournamentMatch
- + */
- + public boolean isInTournamentMatch()
- + {
- + return inTournamentMatch;
- + }
- +
- + /**
- + * @param inTournamentMatch the inTournamentMatch to set
- + */
- + public void setInTournamentMatch(boolean inTournamentMatch)
- + {
- + this.inTournamentMatch = inTournamentMatch;
- + }
- +
- + /**
- + * @return the lastX
- + */
- + public int getLastX()
- + {
- + return lastX;
- + }
- +
- + /**
- + * @param lastX the lastX to set
- + */
- + public void setLastX(int lastX)
- + {
- + this.lastX = lastX;
- + }
- +
- + /**
- + * @return the lastY
- + */
- + public int getLastY()
- + {
- + return lastY;
- + }
- +
- + /**
- + * @param lastY the lastY to set
- + */
- + public void setLastY(int lastY)
- + {
- + this.lastY = lastY;
- + }
- +
- + /**
- + * @return the lastZ
- + */
- + public int getLastZ()
- + {
- + return lastZ;
- + }
- +
- + /**
- + * @param lastZ the lastZ to set
- + */
- + public void setLastZ(int lastZ)
- + {
- + this.lastZ = lastZ;
- + }
- +
- + /**
- + * @return the tournamentMatchDamage
- + */
- + public int getTournamentMatchDamage()
- + {
- + return tournamentMatchDamage;
- + }
- +
- + public void addTournamentMatchDamage(int damage)
- + {
- + tournamentMatchDamage += damage;
- + }
- +
- + /**
- + * @param tournamentMatchDamage the tournamentMatchDamage to set
- + */
- + public void setTournamentMatchDamage(int tournamentMatchDamage)
- + {
- + this.tournamentMatchDamage = tournamentMatchDamage;
- + }
- +
- + /**
- + * @return the tournamentKills
- + */
- + public Map<TournamentFightType, Integer> getTournamentKills()
- + {
- + return tournamentKills;
- + }
- +
- + /**
- + * @param tournamentKills the tournamentKills to set
- + */
- + public void setTournamentKills(Map<TournamentFightType, Integer> tournamentKills)
- + {
- + this.tournamentKills = tournamentKills;
- + }
- +
- + public void addTournamentTie(TournamentFightType type)
- + {
- + increment(tournamentTies, type);
- + }
- +
- + public void addTournamentDefeat(TournamentFightType type)
- + {
- + increment(tournamentDefeats, type);
- + }
- +
- + public void addTournamentVictory(TournamentFightType type)
- + {
- + increment(tournamentVictories, type);
- + }
- +
- + public void addTournamentKill(TournamentFightType type)
- + {
- + increment(tournamentKills, type);
- + }
- +
- + public static <K> void increment(Map<K, Integer> map, K key)
- + {
- + map.merge(key, 1, Integer::sum);
- +
- + }
- +
- + public void addTournamentDamage(TournamentFightType type, int damage)
- + {
- + increment(tournamentDamage, type, damage);
- + }
- +
- + public static <K> void increment(Map<K, Integer> map, K key, int toIncrement)
- + {
- +
- + int val = map.get(key);
- + map.put(key, val + toIncrement);
- + }
- +
- + /**
- + * @return all kills of plaer in tournament
- + */
- + public int getTotalTournamentKills()
- + {
- + int kills = 0;
- + for (Map.Entry<TournamentFightType, Integer> entry : tournamentKills.entrySet())
- + {
- + kills += entry.getValue();
- + }
- + return kills;
- + }
- +
- + /**
- + * @return the tournamentVictories
- + */
- + public Map<TournamentFightType, Integer> getTournamentVictories()
- + {
- + return tournamentVictories;
- + }
- +
- + /**
- + * @param tournamentVictories the tournamentVictories to set
- + */
- + public void setTournamentVictories(Map<TournamentFightType, Integer> tournamentVictories)
- + {
- + this.tournamentVictories = tournamentVictories;
- + }
- +
- + /**
- + * @return the tournamentDefeats
- + */
- + public Map<TournamentFightType, Integer> getTournamentDefeats()
- + {
- + return tournamentDefeats;
- + }
- +
- + /**
- + * @param tournamentDefeats the tournamentDefeats to set
- + */
- + public void setTournamentDefeats(Map<TournamentFightType, Integer> tournamentDefeats)
- + {
- + this.tournamentDefeats = tournamentDefeats;
- + }
- +
- + /**
- + * @return the tournamentTies
- + */
- + public Map<TournamentFightType, Integer> getTournamentTies()
- + {
- + return tournamentTies;
- + }
- +
- + /**
- + * @param tournamentTies the tournamentTies to set
- + */
- + public void setTournamentTies(Map<TournamentFightType, Integer> tournamentTies)
- + {
- + this.tournamentTies = tournamentTies;
- + }
- +
- + public void storeTournament()
- + {
- +
- + }
- +
- + /**
- + * @return the tournamentDamage
- + */
- + public Map<TournamentFightType, Integer> getTournamentDamage()
- + {
- + return tournamentDamage;
- + }
- +
- + /**
- + * @param tournamentDamage the tournamentDamage to set
- + */
- + public void setTournamentDamage(Map<TournamentFightType, Integer> tournamentDamage)
- + {
- + this.tournamentDamage = tournamentDamage;
- + }
- +
- + /**
- + * @return the tournamentPoints
- + */
- + public int getTournamentPoints()
- + {
- + return tournamentPoints;
- + }
- +
- + /**
- + * @param tournamentPoints the tournamentPoints to set
- + */
- + public void setTournamentPoints(int tournamentPoints)
- + {
- + this.tournamentPoints = tournamentPoints;
- + }
- +
- + /**
- + * @return the tournamentTeamRequesterId
- + */
- + public int getTournamentTeamRequesterId()
- + {
- + return tournamentTeamRequesterId;
- + }
- +
- + /**
- + * @param tournamentTeamRequesterId the tournamentTeamRequesterId to set
- + */
- + public void setTournamentTeamRequesterId(int tournamentTeamRequesterId)
- + {
- + this.tournamentTeamRequesterId = tournamentTeamRequesterId;
- + }
- +
- + private int tournamentTeamRequesterId;
- +
- + // player variables
- + private final Map<String, PlayerVar> vars = new ConcurrentHashMap<>();
- +
- + /**
- + * @return player memos.
- + */
- + public Map<String, PlayerVar> getVariables()
- + {
- + return vars;
- + }
- +
- + public void deleteTempItem(int itemObjectID)
- + {
- + boolean destroyed = false;
- + if (getInventory().getItemByObjectId(itemObjectID) != null)
- + {
- + sendMessage("Your " + ItemData.getInstance().getTemplate(getInventory().getItemByObjectId(itemObjectID).getItemId()).getName() + " has expired.");
- + destroyItem("tempItemDestroy", itemObjectID, 1, this, true);
- +
- + sendPacket(new ItemList(this, true));
- +
- + destroyed = true;
- + }
- +
- + if (!destroyed)
- + {
- + Connection con = null;
- + PreparedStatement statement = null;
- + ResultSet rset = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + statement = con.prepareStatement("DELETE FROM items WHERE object_id=?");
- + statement.setInt(1, itemObjectID);
- + statement.execute();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, statement, rset);
- + }
- + }
- + }
- +
- + public void sendChatMessage(int objectId, SayType messageType, String charName, String text)
- + {
- + sendPacket(new CreatureSay(objectId, messageType, charName, text));
- + }
- diff --git java/net/sf/l2j/gameserver/model/actor/cast/PlayableCast.java java/net/sf/l2j/gameserver/model/actor/cast/PlayableCast.java
- index 39e9d29..41653ff 100644
- --- java/net/sf/l2j/gameserver/model/actor/cast/PlayableCast.java
- +++ java/net/sf/l2j/gameserver/model/actor/cast/PlayableCast.java
- @@ -1,5 +1,6 @@
- package net.sf.l2j.gameserver.model.actor.cast;
- +import net.sf.l2j.Config;
- import net.sf.l2j.gameserver.enums.skills.SkillType;
- import net.sf.l2j.gameserver.model.actor.Creature;
- import net.sf.l2j.gameserver.model.actor.Playable;
- @@ -70,6 +71,16 @@
- if (!skill.checkCondition(_actor, target, false))
- return false;
- + if (_actor.getActingPlayer().isInTournamentMatch())
- + {
- + if (Config.TOURNAMENT_RESTRICTED_SKILL_LIST.contains(skill.getId()))
- + {
- + _actor.sendMessage("You can't use this skill in Tournament.");
- + return false;
- + }
- + }
- +
- +
- final Player player = _actor.getActingPlayer();
- if (player.isInOlympiadMode() && (skill.isHeroSkill() || skill.getSkillType() == SkillType.RESURRECT))
- diff --git java/net/sf/l2j/gameserver/model/actor/instance/Door.java java/net/sf/l2j/gameserver/model/actor/instance/Door.java
- index f35d09a..2bf5cca 100644
- --- java/net/sf/l2j/gameserver/model/actor/instance/Door.java
- +++ java/net/sf/l2j/gameserver/model/actor/instance/Door.java
- @@ -464,4 +464,15 @@
- _npcMakers.remove(npcMaker);
- _npcMakers.add(npcMaker);
- }
- +
- +
- + @Override
- + public int getInstanceID()
- + {
- + if (getDoorId() == 17100001 || getDoorId() == 17100002 || getDoorId() == 17100101 || getDoorId() == 17100102 || getDoorId() == 17100201 || getDoorId() == 17100202 || getDoorId() == 17100301 || getDoorId() == 17100302)
- + return 2140000000;
- +
- + return getInstance().getId();
- + }
- +
- }
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/model/actor/instance/Fence.java java/net/sf/l2j/gameserver/model/actor/instance/Fence.java
- index cd75ae9..6c5c189 100644
- --- java/net/sf/l2j/gameserver/model/actor/instance/Fence.java
- +++ java/net/sf/l2j/gameserver/model/actor/instance/Fence.java
- @@ -142,4 +142,12 @@
- player.sendPacket(new ExColosseumFenceInfo(getObjectId(), _fence));
- }
- }
- +
- + @Override
- + public int getInstanceID()
- + {
- +
- + return getInstance().getId();
- + }
- +
- }
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/model/actor/instance/Monster.java java/net/sf/l2j/gameserver/model/actor/instance/Monster.java
- index dbdcbaf..b2319ca 100644
- --- java/net/sf/l2j/gameserver/model/actor/instance/Monster.java
- +++ java/net/sf/l2j/gameserver/model/actor/instance/Monster.java
- @@ -628,6 +628,7 @@
- final ItemInstance item = ItemInstance.create(holder.getId(), holder.getValue(), player, this);
- if (player != null)
- item.setDropProtection(player.getObjectId(), isRaidBoss());
- + item.setInstance(getInstance(), false);
- item.dropMe(this, 70);
- // If stackable, end loop as entire count is included in 1 instance of item.
- diff --git java/net/sf/l2j/gameserver/model/actor/instance/SchemeBuffer.java java/net/sf/l2j/gameserver/model/actor/instance/SchemeBuffer.java
- index 5f5f47d..d0f0bd3 100644
- --- java/net/sf/l2j/gameserver/model/actor/instance/SchemeBuffer.java
- +++ java/net/sf/l2j/gameserver/model/actor/instance/SchemeBuffer.java
- @@ -22,21 +22,13 @@
- public class SchemeBuffer extends Folk
- {
- private static final int PAGE_LIMIT = 6;
- - private static SchemeBuffer _instance = null;
- -
- +
- public SchemeBuffer(int objectId, NpcTemplate template)
- {
- super(objectId, template);
- }
- - public static SchemeBuffer getInstance()
- - {
- - if (_instance == null)
- - {
- - _instance = new SchemeBuffer(0, null);
- - }
- - return _instance;
- - }
- +
- @Override
- diff --git java/net/sf/l2j/gameserver/model/actor/instance/TournamentNpc.java java/net/sf/l2j/gameserver/model/actor/instance/TournamentNpc.java
- new file mode 100644
- index 0000000..5295334
- --- /dev/null
- +++ java/net/sf/l2j/gameserver/model/actor/instance/TournamentNpc.java
- @@ -0,0 +1,40 @@
- +package net.sf.l2j.gameserver.model.actor.instance;
- +
- +import net.sf.l2j.gameserver.model.actor.Player;
- +import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentNpc extends Folk
- +{
- + public TournamentNpc(final int objectId, final NpcTemplate template)
- + {
- + super(objectId, template);
- + }
- +
- + @Override
- + public void showChatWindow(Player player)
- + {
- + TournamentManager.getInstance().showHtml(player, "main", TournamentFightType.NONE);
- + }
- +
- + @Override
- + public String getHtmlPath(Player id, final int npcId, final int val)
- + {
- + String pom = "";
- + if (val == 0)
- + {
- + pom = "" + npcId;
- + }
- + else
- + {
- + pom = npcId + "-" + val;
- + }
- + return "data/html/en/mods/tournament/" + pom + ".htm";
- + }
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/model/entity/Tournament/ByPasses/TournamentBypasses.java java/net/sf/l2j/gameserver/model/entity/Tournament/ByPasses/TournamentBypasses.java
- new file mode 100644
- index 0000000..0e5a5dc
- --- /dev/null
- +++ java/net/sf/l2j/gameserver/model/entity/Tournament/ByPasses/TournamentBypasses.java
- @@ -0,0 +1,445 @@
- +package net.sf.l2j.gameserver.model.entity.Tournament.ByPasses;
- +
- +import java.util.StringTokenizer;
- +
- +import net.sf.l2j.gameserver.data.sql.PlayerInfoTable;
- +import net.sf.l2j.gameserver.handler.IBypassHandler;
- +import net.sf.l2j.gameserver.model.World;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +import Base.Tournament.Enums.TournamentFightType;
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Matches.TournamentMatch1x1;
- +import Base.Tournament.Matches.TournamentMatch2x2;
- +import Base.Tournament.Matches.TournamentMatch3x3;
- +import Base.Tournament.Matches.TournamentMatch4x4;
- +import Base.Tournament.Matches.TournamentMatch5x5;
- +import Base.Tournament.Matches.TournamentMatch9x9;
- +import Base.Tournament.Model.TournamentTeam;
- +
- +
- +public class TournamentBypasses implements IBypassHandler
- +{
- +
- + @Override
- + public boolean handleBypass(String bypass, Player player)
- + {
- + StringTokenizer st = new StringTokenizer(bypass, " ");
- + st.nextToken();
- + TournamentTeam team = player.getTournamentTeam();
- +
- + if (bypass.startsWith("bp_tournamentTeamInfo"))
- + {
- + if (team != null)
- + {
- + TournamentManager.getInstance().showHtml(player, "createTeam", TournamentFightType.F2X2);
- + }
- + else
- + {
- + player.sendMessage("First you must create a new Tournament Team.");
- + }
- + }
- + if (bypass.startsWith("bp_leaveTournamentTeam"))
- + {
- + if (team != null)
- + {
- + team.removeMember(player);
- + }
- + else
- + {
- + player.sendMessage("You haven't a Team.");
- + }
- + }
- + if (bypass.startsWith("bp_registerTournament1x1"))
- + {
- + TournamentManager.getInstance().showHtml(player, "fights/F1X1", TournamentFightType.F1X1);
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (!player.isInTournamentTeam())
- + {
- + team = new TournamentTeam(player, null);
- + }
- +
- + if (!TournamentMatch1x1.getInstance().checkConditions(team))
- + {
- + return false;
- + }
- + if (TournamentManager.getInstance().getRegisteredTournamentTeams().containsKey(team))
- + {
- + player.sendMessage("Your team already registered.");
- + return true;
- + }
- +
- + if (team.getLeader() != player)
- + {
- + player.sendMessage("Only Leaders can register.");
- + return false;
- + }
- +
- + if (TournamentMatch1x1.getInstance().register(team))
- + {
- + team.sendMessage("Your are on the 1x1 waiting list. ");
- + return true;
- + }
- +
- + }
- + if (bypass.startsWith("bp_registerTournament2x2"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (!player.isInTournamentTeam() || player.getTournamentTeam().getMembers().size() < 2)
- + {
- + player.sendMessage("You need to invite 1 players to register this mode.");
- + }
- + else
- + {
- + if (!TournamentMatch2x2.getInstance().checkConditions(team))
- + {
- + return false;
- + }
- + if (TournamentManager.getInstance().getRegisteredTournamentTeams().containsKey(team))
- + {
- + player.sendMessage("Your team already registered.");
- + return true;
- + }
- +
- + if (team.getLeader() != player)
- + {
- + player.sendMessage("Only Leaders can register.");
- + return false;
- + }
- +
- + if (TournamentMatch2x2.getInstance().register(team))
- + {
- + team.sendMessage("Your team is on the 2x2 waiting list. ");
- + return true;
- + }
- + }
- + TournamentManager.getInstance().showHtml(player, "fights/F2X2", TournamentFightType.F2X2);
- +
- + }
- + if (bypass.startsWith("bp_registerTournament3x3"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (!player.isInTournamentTeam() || player.getTournamentTeam().getMembers().size() < 3)
- + {
- + player.sendMessage("You need to invite 2 players to register this mode.");
- + }
- + else
- + {
- + if (!TournamentMatch3x3.getInstance().checkConditions(team))
- + {
- + return false;
- + }
- + if (TournamentManager.getInstance().getRegisteredTournamentTeams().containsKey(team))
- + {
- + player.sendMessage("Your team already registered.");
- + return true;
- + }
- +
- + if (team.getLeader() != player)
- + {
- + player.sendMessage("Only Leaders can register.");
- + return false;
- + }
- +
- + if (TournamentMatch3x3.getInstance().register(team))
- + {
- + team.sendMessage("Your team is on the 3x3 waiting list. ");
- + return true;
- + }
- +
- + }
- + TournamentManager.getInstance().showHtml(player, "fights/F3X3", TournamentFightType.F3X3);
- +
- + }
- +
- + if (bypass.startsWith("bp_registerTournament4x4"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (!player.isInTournamentTeam() || player.getTournamentTeam().getMembers().size() < 4)
- + {
- + player.sendMessage("You need to invite 3 players to register this mode.");
- + }
- + else
- + {
- + if (!TournamentMatch3x3.getInstance().checkConditions(team))
- + {
- + return false;
- + }
- + if (TournamentManager.getInstance().getRegisteredTournamentTeams().containsKey(team))
- + {
- + player.sendMessage("Your team already registered.");
- + return true;
- + }
- +
- + if (team.getLeader() != player)
- + {
- + player.sendMessage("Only Leaders can register.");
- + return false;
- + }
- +
- + if (TournamentMatch4x4.getInstance().register(team))
- + {
- + team.sendMessage("Your team is on the 4x4 waiting list. ");
- + return true;
- + }
- + }
- + TournamentManager.getInstance().showHtml(player, "fights/F4X4", TournamentFightType.F4X4);
- +
- + }
- +
- + if (bypass.startsWith("bp_registerTournament5x5"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (!player.isInTournamentTeam() || player.getTournamentTeam().getMembers().size() < 5)
- + {
- + player.sendMessage("You need to invite 4 players to register this mode.");
- + }
- + else
- + {
- + if (!TournamentMatch3x3.getInstance().checkConditions(team))
- + {
- + return false;
- + }
- + if (TournamentManager.getInstance().getRegisteredTournamentTeams().containsKey(team))
- + {
- + player.sendMessage("Your team already registered.");
- + return true;
- + }
- +
- + if (team.getLeader() != player)
- + {
- + player.sendMessage("Only Leaders can register.");
- + return false;
- + }
- +
- + if (TournamentMatch5x5.getInstance().register(team))
- + {
- + team.sendMessage("Your team is on the 5x5 waiting list. ");
- + return true;
- + }
- + }
- + TournamentManager.getInstance().showHtml(player, "fights/F5X5", TournamentFightType.F5X5);
- +
- + }
- +
- + if (bypass.startsWith("bp_registerTournament9x9"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (!player.isInTournamentTeam() || player.getTournamentTeam().getMembers().size() < 9)
- + {
- + player.sendMessage("You need to invite 8 players to register this mode.");
- + }
- + else
- + {
- + if (!TournamentMatch3x3.getInstance().checkConditions(team))
- + {
- + return false;
- + }
- + if (TournamentManager.getInstance().getRegisteredTournamentTeams().containsKey(team))
- + {
- + player.sendMessage("Your team already registered.");
- + return true;
- + }
- +
- + if (team.getLeader() != player)
- + {
- + player.sendMessage("Only Leaders can register.");
- + return false;
- + }
- +
- + if (TournamentMatch9x9.getInstance().register(team))
- + {
- + team.sendMessage("Your team is on the 9x9 waiting list. ");
- + return true;
- + }
- + }
- + TournamentManager.getInstance().showHtml(player, "fights/F9X9", TournamentFightType.F9X9);
- +
- + }
- + if (bypass.startsWith("bp_deleteTournamentTeam"))
- + {
- +
- + if (team != null)
- + {
- + team.disbandTeam();
- + }
- + else
- + {
- + player.sendMessage("You haven't a Tournament Team.");
- + }
- + TournamentManager.getInstance().showHtml(player, "main", TournamentFightType.NONE);
- + }
- + if (bypass.startsWith("bp_inviteTournamentMember"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (TournamentManager.getInstance().isTournamentTeleporting())
- + {
- + player.sendMessage("Tournament is teleportind players, wait 30 seconds to invite someone.");
- + return false;
- + }
- + String nextMemberName = st.nextToken();
- + Player nextMember = World.getInstance().getPlayer(nextMemberName);
- + if (nextMember == player)
- + {
- + player.sendMessage("You can't invite yourself!");
- + return false;
- + }
- +
- + if (nextMember != null)
- + {
- + if (nextMember.isInTournamentTeam())
- + {
- + player.sendMessage("This player already in Tournament Team.");
- + return false;
- + }
- + if (nextMember.isInParty())
- + {
- + player.sendMessage("You can't players in party. Don't worry, party will be automatically created!");
- + return false;
- + }
- + if (team != null)
- + {
- + if (team.getLeader() != player)
- + {
- + player.sendMessage("Only Leaders can invite players.");
- + return false;
- + }
- + }
- + TournamentManager.getInstance().askJoinTeam(player, nextMember);
- + }
- + else
- + {
- + player.sendMessage("Player " + nextMemberName + " doesn't exists or is not online!");
- + return false;
- + }
- +
- + }
- + if (bypass.startsWith("bp_removeTournamentParticipation"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (team != null)
- + {
- + if (TournamentManager.getInstance().getRegisteredTournamentTeams().containsKey(team))
- + {
- + TournamentManager.getInstance().getRegisteredTournamentTeams().remove(team);
- + team.sendMessage("Your team have been removed from Tournament Waiting List");
- + }
- + else
- + {
- + player.sendMessage("Your team isn't registered.");
- + TournamentManager.getInstance().showHtml(player, "main", TournamentFightType.NONE);
- + return false;
- + }
- + }
- + else
- + {
- + player.sendMessage("You haven't a Tournament Team.");
- + }
- + TournamentManager.getInstance().showHtml(player, "main", TournamentFightType.NONE);
- +
- + }
- +
- + if (bypass.startsWith("bp_createTournamentTeam"))
- + {
- + if (!TournamentManager.getInstance().isRunning())
- + {
- + player.sendMessage("Tournament isn't Running!");
- + return false;
- + }
- + if (player.getTournamentTeam() != null)
- + {
- + player.sendMessage("You can't create a new Tournament Team.");
- + return false;
- + }
- +
- + if (team == null)
- + {
- + team = new TournamentTeam(player, null);
- + }
- + else
- + {
- + player.sendMessage("Your Tournament Team has been already created, try to invite someone.");
- + return false;
- + }
- + TournamentManager.getInstance().showHtml(player, "main", TournamentFightType.NONE);
- +
- + }
- + else if (bypass.startsWith("bp_showTournamentPage"))
- + {
- + String page = st.nextToken();
- + TournamentManager.getInstance().showHtml(player, page, TournamentFightType.NONE);
- + }
- + else if (bypass.startsWith("bp_checkTournamentPlayer"))
- + {
- + String playerName = st.nextToken();
- + String type = st.nextToken();
- + int targetObjectId = PlayerInfoTable.getInstance().getPlayerObjectId(playerName);
- + TournamentManager.getInstance().showPlayerRankingData(player, targetObjectId, TournamentFightType.valueOf(type));
- + }
- + else if (bypass.startsWith("bp_tournamentRanking"))
- + {
- + String type = st.nextToken();
- + String rankType = st.nextToken();
- + TournamentManager.getInstance().showRanking(player, TournamentFightType.valueOf(type), rankType);
- + }
- + return false;
- + }
- +
- + @Override
- + public String[] getBypassHandlersList()
- + {
- +
- + return new String[]
- + {
- + "bp_checkTournamentPlayer",
- + "bp_showTournamentPage",
- + "bp_registerTournament1x1",
- + "bp_removeTournamentParticipation",
- + "bp_createTournamentTeam",
- + "bp_registerTournament2x2",
- + "bp_inviteTournamentMember",
- + "bp_deleteTournamentTeam",
- + "bp_tournamentTeamInfo",
- + "bp_inviteTournamentPage",
- + "bp_registerTournament3x3",
- + "bp_registerTournament4x4",
- + "bp_registerTournament5x5",
- + "bp_registerTournament9x9",
- + "bp_tournamentRanking",
- + "bp_leaveTournamentTeam"
- +
- + };
- + }
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/model/zone/SpawnZone.java java/net/sf/l2j/gameserver/model/zone/SpawnZone.java
- new file mode 100644
- index 0000000..2110804
- --- /dev/null
- +++ java/net/sf/l2j/gameserver/model/zone/SpawnZone.java
- @@ -0,0 +1,58 @@
- +package net.sf.l2j.gameserver.model.zone;
- +
- +import java.util.ArrayList;
- +import java.util.List;
- +
- +import net.sf.l2j.commons.random.Rnd;
- +
- +import net.sf.l2j.gameserver.model.location.Location;
- +import net.sf.l2j.gameserver.model.zone.type.subtype.ZoneType;
- +
- +/**
- + * Abstract zone with spawn locations.<br>
- + * It inherits regular L2ZoneType behavior, with the possible addition of 2 Lists holding Locations.
- + */
- +public abstract class SpawnZone extends ZoneType
- +{
- + private List<Location> _spawnLocs = null;
- + private List<Location> _chaoticSpawnLocs = null;
- +
- + public SpawnZone(int id)
- + {
- + super(id);
- + }
- +
- + public final void addSpawn(int x, int y, int z)
- + {
- + if (_spawnLocs == null)
- + _spawnLocs = new ArrayList<>();
- +
- + _spawnLocs.add(new Location(x, y, z));
- + }
- +
- + public final void addChaoticSpawn(int x, int y, int z)
- + {
- + if (_chaoticSpawnLocs == null)
- + _chaoticSpawnLocs = new ArrayList<>();
- +
- + _chaoticSpawnLocs.add(new Location(x, y, z));
- + }
- +
- + public final List<Location> getSpawns()
- + {
- + return _spawnLocs;
- + }
- +
- + public final Location getSpawnLoc()
- + {
- + return Rnd.get(_spawnLocs);
- + }
- +
- + public final Location getChaoticSpawnLoc()
- + {
- + if (_chaoticSpawnLocs != null)
- + return Rnd.get(_chaoticSpawnLocs);
- +
- + return getSpawnLoc();
- + }
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/model/zone/type/TournamentZone.java java/net/sf/l2j/gameserver/model/zone/type/TournamentZone.java
- new file mode 100644
- index 0000000..dc258f8
- --- /dev/null
- +++ java/net/sf/l2j/gameserver/model/zone/type/TournamentZone.java
- @@ -0,0 +1,51 @@
- +package net.sf.l2j.gameserver.model.zone.type;
- +
- +import net.sf.l2j.gameserver.enums.ZoneId;
- +import net.sf.l2j.gameserver.model.actor.Creature;
- +import net.sf.l2j.gameserver.model.actor.Player;
- +import net.sf.l2j.gameserver.model.zone.SpawnZone;
- +import net.sf.l2j.gameserver.network.SystemMessageId;
- +
- +/**
- + * @author Rouxy
- + */
- +public class TournamentZone extends SpawnZone
- +{
- +
- + @Override
- + public void setParameter(String name, String value)
- + {
- +
- + super.setParameter(name, value);
- + }
- +
- + public TournamentZone(int id)
- + {
- + super(id);
- +
- + }
- +
- + @Override
- + protected void onEnter(Creature character)
- + {
- + character.setInsideZone(ZoneId.TOURNAMENT, true);
- + if (character instanceof Player)
- + ((Player) character).sendPacket(SystemMessageId.ENTERED_COMBAT_ZONE);
- +
- + character.setInsideZone(ZoneId.PVP, true);
- + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true);
- + }
- +
- + @Override
- + protected void onExit(Creature character)
- + {
- + character.setInsideZone(ZoneId.TOURNAMENT, false);
- + character.setInsideZone(ZoneId.PVP, false);
- + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false);
- +
- + if (character instanceof Player)
- + ((Player) character).sendPacket(SystemMessageId.LEFT_COMBAT_ZONE);
- +
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/network/clientpackets/DlgAnswer.java java/net/sf/l2j/gameserver/network/clientpackets/DlgAnswer.java
- index 5103b6e..d2727e4 100644
- --- java/net/sf/l2j/gameserver/network/clientpackets/DlgAnswer.java
- +++ java/net/sf/l2j/gameserver/network/clientpackets/DlgAnswer.java
- @@ -1,5 +1,8 @@
- package net.sf.l2j.gameserver.network.clientpackets;
- +import net.sf.l2j.Config;
- +import net.sf.l2j.gameserver.enums.LootRule;
- +import net.sf.l2j.gameserver.model.World;
- import net.sf.l2j.gameserver.model.actor.Player;
- import net.sf.l2j.gameserver.model.entity.events.capturetheflag.CTFEvent;
- import net.sf.l2j.gameserver.model.entity.events.capturetheflag.CTFManager;
- @@ -9,7 +12,12 @@
- import net.sf.l2j.gameserver.model.entity.events.lastman.LMManager;
- import net.sf.l2j.gameserver.model.entity.events.teamvsteam.TvTEvent;
- import net.sf.l2j.gameserver.model.entity.events.teamvsteam.TvTManager;
- +import net.sf.l2j.gameserver.model.group.Party;
- import net.sf.l2j.gameserver.network.SystemMessageId;
- +import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
- +
- +import Base.Tournament.Manager.TournamentManager;
- +import Base.Tournament.Model.TournamentTeam;
- public final class DlgAnswer extends L2GameClientPacket
- {
- @@ -50,5 +58,92 @@
- player.activateGate(_answer, 1);
- else if (_messageId == SystemMessageId.WOULD_YOU_LIKE_TO_CLOSE_THE_GATE.getId())
- player.activateGate(_answer, 0);
- +
- + else if (_messageId == SystemMessageId.S1.getId())
- + {
- + if (TournamentManager.getInstance().isTournamentTeleporting())
- + {
- + if (_answer == 1)
- + {
- + player.teleportTo(Config.TOURNAMENT_NPC_LOCATION.getX(), Config.TOURNAMENT_NPC_LOCATION.getY(), Config.TOURNAMENT_NPC_LOCATION.getZ(), 500);
- + }
- + }
- + else if (player.isTournamentTeamBeingInvited())
- + {
- + Player leader = World.getInstance().getPlayer(player.getTournamentTeamRequesterId());
- + if (leader != null)
- + {
- + TournamentTeam team = leader.getTournamentTeam();
- + if (_answer == 1)
- + {
- + if (team == null)
- + {
- + team = new TournamentTeam(leader, player);
- + player.sendPacket(new ExShowScreenMessage("Your Team have been created!", 3000));
- + }
- + else
- + {
- + team.addMember(player);
- + leader.sendPacket(new ExShowScreenMessage(player.getName() + " entered your team.", 3000));
- + player.sendPacket(new ExShowScreenMessage("You entered " + team.getName() + ".", 3000));
- + }
- + Party party = leader.getParty();
- + if (party != null)
- + {
- + party.addPartyMember(player);
- + }
- + else
- + {
- + party = new Party(leader, player, LootRule.ITEM_LOOTER);
- + team.setParty(party);
- + }
- + // String pageToOpen = null;
- + // TournamentFightType type = TournamentFightType.NONE;
- + // switch (team.getMembers().size())
- + // {
- + // case 1:
- + // pageToOpen = "fights/F1X1";
- + // type = TournamentFightType.F1X1;
- + // break;
- + // case 2:
- + // pageToOpen = "fights/F2X2";
- + // type = TournamentFightType.F2X2;
- + // break;
- + // case 3:
- + // pageToOpen = "fights/F3X3";
- + // type = TournamentFightType.F3X3;
- + // break;
- + // case 4:
- + // pageToOpen = "fights/F4X4";
- + // type = TournamentFightType.F4X4;
- + // break;
- + // case 5:
- + // pageToOpen = "fights/F5X5";
- + // type = TournamentFightType.F5X5;
- + // break;
- + // case 9:
- + // pageToOpen = "fights/F9X9";
- + // type = TournamentFightType.F9X9;
- + // break;
- + //
- + // }
- + // TournamentManager.getInstance().showHtml(leader, pageToOpen, type);
- + // TournamentManager.getInstance().showHtml(player, pageToOpen, type);
- +
- + }
- + else
- + {
- + leader.sendMessage(player.getName() + " denied your Tournament Team request.");
- + return;
- + }
- + }
- + player.setTournamentTeamRequesterId(0);
- + player.setTournamentTeamBeingInvited(false);
- + }
- + }
- +
- +
- +
- +
- }
- }
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
- index fa0119b..b23a2ea 100644
- --- java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
- +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
- @@ -34,7 +34,9 @@
- import net.sf.l2j.gameserver.enums.skills.ElementType;
- import net.sf.l2j.gameserver.enums.skills.SkillType;
- import net.sf.l2j.gameserver.handler.AdminCommandHandler;
- +import net.sf.l2j.gameserver.handler.BypassHandler;
- import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
- +import net.sf.l2j.gameserver.handler.IBypassHandler;
- import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
- import net.sf.l2j.gameserver.handler.VoicedCommandHandler;
- import net.sf.l2j.gameserver.handler.itemhandlers.Cubic;
- @@ -126,6 +128,22 @@
- ach.useAdminCommand(_command, player);
- }
- + else if (_command.startsWith("bp_"))
- + {
- + String command = _command.split(" ")[0];
- + IBypassHandler bh = BypassHandler.getInstance().getBypassHandler(command);
- + if (bh == null)
- + {
- + GMAUDIT_LOG.warning("No handler registered for bypass '" + command + "'");
- + return;
- + }
- + bh.handleBypass(_command, player);
- + }
- +
- +
- +
- +
- +
- else if (_command.startsWith("cubic_"))
- {
- String command = _command.substring(6);
- diff --git java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java
- index 75ebcca..8cc59d8 100644
- --- java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java
- +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java
- @@ -32,6 +32,14 @@
- if (requestor == null)
- return;
- +
- + if (requestor.isInTournamentMatch())
- + {
- + requestor.sendMessage("You can't invite players in Tournament.");
- + return;
- + }
- +
- +
- final Player target = World.getInstance().getPlayer(_targetName);
- if (target == null)
- {
- diff --git java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java
- index 00a37d4..61cdf4c 100644
- --- java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java
- +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java
- @@ -11,6 +11,8 @@
- import net.sf.l2j.gameserver.network.serverpackets.RestartResponse;
- import net.sf.l2j.gameserver.taskmanager.AttackStanceTaskManager;
- +import Base.Tournament.Manager.TournamentManager;
- +
- public final class RequestRestart extends L2GameClientPacket
- {
- @Override
- @@ -52,6 +54,8 @@
- return;
- }
- +
- + TournamentManager.getInstance().onDisconnect(player);
- player.removeFromBossZone();
- final GameClient client = getClient();
- diff --git java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java
- index 7f2cc2d..53cff25 100644
- --- java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java
- +++ java/net/sf/l2j/gameserver/network/clientpackets/UseItem.java
- @@ -73,6 +73,17 @@
- }
- }
- +
- + if (player.getActingPlayer().isInTournamentMatch())
- + {
- + if (Config.TOURNAMENT_RESTRICTED_ITEM_LIST.contains(item.getItem().getItemId()))
- + {
- + player.sendMessage("You can't use this item in Tournament.");
- + return;
- + }
- + }
- +
- +
- if (item.getItem().getType2() == Item.TYPE2_QUEST)
- {
- player.sendPacket(SystemMessageId.CANNOT_USE_QUEST_ITEMS);
- diff --git java/net/sf/l2j/gameserver/network/serverpackets/NpcHtmlMessage.java java/net/sf/l2j/gameserver/network/serverpackets/NpcHtmlMessage.java
- index b34e4bf..92a45a8 100644
- --- java/net/sf/l2j/gameserver/network/serverpackets/NpcHtmlMessage.java
- +++ java/net/sf/l2j/gameserver/network/serverpackets/NpcHtmlMessage.java
- @@ -14,6 +14,23 @@
- private String _html;
- private String _file;
- + /**
- + * @return the _file
- + */
- + public String getFile()
- + {
- + return _file;
- + }
- +
- + /**
- + * @param _file the _file to set
- + */
- + public void set_file(String _file)
- + {
- + this._file = _file;
- + }
- +
- +
- private int _itemId = 0;
- private boolean _validate = true;
- diff --git java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSummon.java java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSummon.java
- index 59e8b0a..f8df991 100644
- --- java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSummon.java
- +++ java/net/sf/l2j/gameserver/skills/l2skills/L2SkillSummon.java
- @@ -173,7 +173,7 @@
- spawnLoc.addStrictOffset(40);
- spawnLoc.setHeadingTo(activeChar.getPosition());
- spawnLoc.set(GeoEngine.getInstance().getValidLocation(activeChar, spawnLoc));
- -
- + summon.setInstance(activeChar.getInstance(), true);
- summon.spawnMe(spawnLoc);
- summon.getAI().setFollowStatus(true);
- diff --git java/net/sf/l2j/util/Mysql.java java/net/sf/l2j/util/Mysql.java
- new file mode 100644
- index 0000000..efaaab8
- --- /dev/null
- +++ java/net/sf/l2j/util/Mysql.java
- @@ -0,0 +1,187 @@
- +package net.sf.l2j.util;
- +
- +import java.sql.Connection;
- +import java.sql.PreparedStatement;
- +import java.sql.ResultSet;
- +import java.sql.SQLException;
- +import java.sql.Statement;
- +import java.util.logging.Logger;
- +
- +import net.sf.l2j.commons.pool.ConnectionPool;
- +
- +public abstract class Mysql
- +{
- + private static final Logger _log = Logger.getLogger(Mysql.class.getName());
- +
- + /**
- + * Performs a simple sql queries where unnecessary control parameters <BR>
- + * NOTE: In this method, the parameters passed are not valid for SQL-injection!
- + * @param db
- + * @param query
- + * @param vars
- + * @return
- + */
- + public static boolean setEx(ConnectionPool db, String query, Object... vars)
- + {
- + Connection con = null;
- + Statement statement = null;
- + PreparedStatement pstatement = null;
- + boolean successed = true;
- +
- + try
- + {
- + if (db == null)
- + db = new ConnectionPool();
- +
- + con = db.getConnection();
- + if (vars.length == 0)
- + {
- + statement = con.createStatement();
- + statement.executeUpdate(query);
- + statement.close();
- + }
- + else
- + {
- + pstatement = con.prepareStatement(query);
- + setVars(pstatement, vars);
- + pstatement.executeUpdate();
- + pstatement.close();
- + }
- + con.close();
- + }
- + catch (Exception e)
- + {
- + _log.warning("Could not execute update '" + query + "': " + e);
- + e.printStackTrace();
- + successed = false;
- + }
- + finally
- + {
- + closeQuietly(con, pstatement);
- + closeQuietly(statement);
- + }
- + return successed;
- + }
- +
- + public static void setVars(PreparedStatement statement, Object... vars) throws SQLException
- + {
- + Number n;
- + long long_val;
- + double double_val;
- + for (int i = 0; i < vars.length; i++)
- + if (vars[i] instanceof Number)
- + {
- + n = (Number) vars[i];
- + long_val = n.longValue();
- + double_val = n.doubleValue();
- + if (long_val == double_val)
- + statement.setLong(i + 1, long_val);
- + else
- + statement.setDouble(i + 1, double_val);
- + }
- + else if (vars[i] instanceof String)
- + statement.setString(i + 1, (String) vars[i]);
- + }
- +
- + public static boolean set(String query, Object... vars)
- + {
- + return setEx(null, query, vars);
- + }
- +
- + public static boolean set(String query)
- + {
- + return setEx(null, query);
- + }
- +
- + public static void closeQuietly(Connection conn)
- + {
- + try
- + {
- + close(conn);
- + }
- + catch (SQLException e)
- + { // NOPMD
- + // quiet
- + }
- + }
- +
- + public static void closeQuietly(Connection conn, Statement stmt, ResultSet rs)
- + {
- +
- + try
- + {
- + closeQuietly(rs);
- + }
- + finally
- + {
- + try
- + {
- + closeQuietly(stmt);
- + }
- + finally
- + {
- + closeQuietly(conn);
- + }
- + }
- + }
- +
- + public static void closeQuietly(Connection conn, Statement stmt)
- + {
- + try
- + {
- + closeQuietly(stmt);
- + }
- + finally
- + {
- + closeQuietly(conn);
- + }
- + }
- +
- + public static void closeQuietly(ResultSet rs)
- + {
- + try
- + {
- + close(rs);
- + }
- + catch (SQLException e)
- + { // NOPMD
- + // quiet
- + }
- + }
- +
- + public static void closeQuietly(Statement stmt)
- + {
- + try
- + {
- + close(stmt);
- + }
- + catch (SQLException e)
- + { // NOPMD
- + // quiet
- + }
- + }
- +
- + public static void close(Connection conn) throws SQLException
- + {
- + if (conn != null)
- + {
- + conn.close();
- + }
- + }
- +
- + public static void close(ResultSet rs) throws SQLException
- + {
- + if (rs != null)
- + {
- + rs.close();
- + }
- + }
- +
- + public static void close(Statement stmt) throws SQLException
- + {
- + if (stmt != null)
- + {
- + stmt.close();
- + }
- + }
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/util/PlayerVar.java java/net/sf/l2j/util/PlayerVar.java
- new file mode 100644
- index 0000000..4c6ab26
- --- /dev/null
- +++ java/net/sf/l2j/util/PlayerVar.java
- @@ -0,0 +1,122 @@
- +package net.sf.l2j.util;
- +
- +import java.util.concurrent.ScheduledFuture;
- +
- +import net.sf.l2j.commons.pool.ThreadPool;
- +
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +public class PlayerVar
- +{
- + private Player owner;
- + private String name;
- + private String value;
- + private long expire_time;
- +
- + @SuppressWarnings("rawtypes")
- + private ScheduledFuture task;
- +
- + public PlayerVar(Player owner, String name, String value, long expire_time)
- + {
- + this.owner = owner;
- + this.name = name;
- + this.value = value;
- + this.expire_time = expire_time;
- +
- + if (expire_time > 0) // if expires schedule expiration
- + {
- + task = ThreadPool.schedule(new PlayerVarExpireTask(this), expire_time - System.currentTimeMillis());
- + }
- + }
- +
- + public int getIntValue()
- + {
- + if (isNumeric(getValue()))
- + {
- + return Integer.parseInt(getValue());
- + }
- + return -1;
- + }
- +
- + public String getName()
- + {
- + return name;
- + }
- +
- + public Player getOwner()
- + {
- + return owner;
- + }
- +
- + public boolean hasExpired()
- + {
- + return task == null || task.isDone();
- + }
- +
- + public long getTimeToExpire()
- + {
- + return expire_time - System.currentTimeMillis();
- + }
- +
- + public String getValue()
- + {
- + return value;
- + }
- +
- + public boolean getValueBoolean()
- + {
- + if (isNumeric(value))
- + return Integer.parseInt(value) > 0;
- +
- + return value.equalsIgnoreCase("true");
- + }
- +
- + public void setValue(String val)
- + {
- + value = val;
- + }
- +
- + public void stopExpireTask()
- + {
- + if (task != null && !task.isDone())
- + {
- + task.cancel(true);
- + }
- + }
- +
- + private static class PlayerVarExpireTask implements Runnable
- + {
- + private PlayerVar _pv;
- +
- + public PlayerVarExpireTask(PlayerVar pv)
- + {
- + _pv = pv;
- + }
- +
- + @Override
- + public void run()
- + {
- + Player pc = _pv.getOwner();
- + if (pc == null)
- + {
- + return;
- + }
- +
- + PlayerVariables.unsetVar(pc, _pv.getName());
- + }
- + }
- +
- + public boolean isNumeric(String str)
- + {
- + try
- + {
- + @SuppressWarnings("unused")
- + double d = Double.parseDouble(str);
- + }
- + catch (NumberFormatException nfe)
- + {
- + return false;
- + }
- + return true;
- + }
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/util/PlayerVariables.java java/net/sf/l2j/util/PlayerVariables.java
- new file mode 100644
- index 0000000..4c191c8
- --- /dev/null
- +++ java/net/sf/l2j/util/PlayerVariables.java
- @@ -0,0 +1,351 @@
- +package net.sf.l2j.util;
- +
- +import java.sql.Connection;
- +import java.sql.PreparedStatement;
- +import java.sql.ResultSet;
- +
- +import net.sf.l2j.commons.pool.ConnectionPool;
- +
- +import net.sf.l2j.gameserver.model.actor.Player;
- +
- +/**
- + * @author DevKatara
- + */
- +public class PlayerVariables
- +{
- + // When var exist
- + public static void changeValue(Player player, String name, String value)
- + {
- + if (!player.getVariables().containsKey(name))
- + {
- + player.sendMessage("Variable is not exist...");
- + return;
- + }
- +
- + getVarObject(player, name).setValue(value);
- + Mysql.set("UPDATE character_memo_alt SET value=? WHERE obj_id=? AND name=?", value, player.getObjectId(), name);
- + }
- +
- + public static void setVar(Player player, String name, String value, long expirationTime)
- + {
- + if (player.getVariables().containsKey(name))
- + getVarObject(player, name).stopExpireTask();
- +
- + player.getVariables().put(name, new PlayerVar(player, name, value, expirationTime));
- + Mysql.set("REPLACE INTO character_memo_alt (obj_id, name, value, expire_time) VALUES (?,?,?,?)", player.getObjectId(), name, value, expirationTime);
- + }
- +
- + public static void setVar(int objId, String name, String value, long expirationTime)
- + {
- + Mysql.set("REPLACE INTO character_memo_alt (obj_id, name, value, expire_time) VALUES (?,?,?,?)", objId, name, value, expirationTime);
- + }
- +
- + public static void setVar(Player player, String name, int value, long expirationTime)
- + {
- + setVar(player, name, String.valueOf(value), expirationTime);
- + }
- +
- + public void setVar(Player player, String name, long value, long expirationTime)
- + {
- + setVar(player, name, String.valueOf(value), expirationTime);
- + }
- +
- + public static PlayerVar getVarObject(Player player, String name)
- + {
- + if (player.getVariables() == null)
- + return null;
- +
- + return player.getVariables().get(name);
- + }
- +
- + public static long getVarTimeToExpire(Player player, String name)
- + {
- + try
- + {
- + return getVarObject(player, name).getTimeToExpire();
- + }
- + catch (NullPointerException npe)
- + {
- + }
- +
- + return 0;
- + }
- +
- + public static void unsetVar(Player player, String name)
- + {
- + if (name == null)
- + return;
- +
- + // Avoid possible unsetVar that have elements for login
- + if (player == null)
- + return;
- +
- + PlayerVar pv = player.getVariables().remove(name);
- +
- + if (pv != null)
- + {
- + if (name.contains("delete_temp_item"))
- + pv.getOwner().deleteTempItem(Integer.parseInt(pv.getValue()));
- + else if (name.contains("solo_hero"))
- + {
- + pv.getOwner().broadcastCharInfo();
- + pv.getOwner().broadcastUserInfo();
- + }
- +
- + Mysql.set("DELETE FROM character_memo_alt WHERE obj_id=? AND name=? LIMIT 1", pv.getOwner().getObjectId(), name);
- +
- + pv.stopExpireTask();
- + }
- + }
- +
- + public static void deleteExpiredVar(Player player, String name, String value)
- + {
- + if (name == null)
- + return;
- +
- + if (name.contains("delete_temp_item"))
- + player.deleteTempItem(Integer.parseInt(value));
- + /*
- + * else if(name.contains("solo_hero")) // Useless player.broadcastCharInfo();
- + */
- +
- + Mysql.set("DELETE FROM character_memo_alt WHERE obj_id=? AND name=? LIMIT 1", player.getObjectId(), name);
- + }
- +
- + public static String getVar(Player player, String name)
- + {
- + PlayerVar pv = getVarObject(player, name);
- +
- + if (pv == null)
- + return null;
- +
- + return pv.getValue();
- + }
- +
- + public static long getVarTimeToExpireSQL(Player player, String name)
- + {
- + long expireTime = 0;
- + try (Connection con = ConnectionPool.getConnection())
- + {
- + PreparedStatement statement = con.prepareStatement("SELECT expire_time FROM character_memo_alt WHERE obj_id = ? AND name = ?");
- + statement.setLong(1, player.getObjectId());
- + statement.setString(2, name);
- + for (ResultSet rset = statement.executeQuery(); rset.next();)
- + expireTime = rset.getLong("expire_time");
- +
- + con.close();
- + statement.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- +
- + return expireTime;
- + }
- +
- + public static boolean getVarB(Player player, String name, boolean defaultVal)
- + {
- + PlayerVar pv = getVarObject(player, name);
- +
- + if (pv == null)
- + return defaultVal;
- +
- + return pv.getValueBoolean();
- + }
- +
- + public static boolean getVarB(Player player, String name)
- + {
- + return getVarB(player, name, false);
- + }
- +
- + public long getVarLong(Player player, String name)
- + {
- + return getVarLong(player, name, 0L);
- + }
- +
- + public long getVarLong(Player player, String name, long defaultVal)
- + {
- + long result = defaultVal;
- + String var = getVar(player, name);
- + if (var != null)
- + result = Long.parseLong(var);
- +
- + return result;
- + }
- +
- + public static int getVarInt(Player player, String name)
- + {
- + return getVarInt(player, name, 0);
- + }
- +
- + public static int getVarInt(Player player, String name, int defaultVal)
- + {
- + int result = defaultVal;
- + String var = getVar(player, name);
- + if (var != null)
- + {
- + if (var.equalsIgnoreCase("true"))
- + result = 1;
- + else if (var.equalsIgnoreCase("false"))
- + result = 0;
- + else
- + result = Integer.parseInt(var);
- + }
- + return result;
- + }
- +
- + public static void votedResult(Player player)
- + {
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT * FROM character_memo_alt WHERE obj_id=? AND name=?");
- + offline.setInt(1, player.getObjectId());
- + rs = offline.executeQuery();
- + boolean hasResult = rs.next();
- + if (!hasResult)
- + {
- + insertVoteSites(player);
- + }
- +
- + con.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- + }
- +
- + public static void insertVoteSites(Player player)
- + {
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("INSERT INTO character_memo_alt (obj_id,name,value,expire_time) VALUES (?,?,?,?)");
- + offline.setInt(1, player.getObjectId());
- + offline.setString(2, "votedSites");
- + offline.setString(3, "0");
- + offline.setLong(4, 0);
- + offline.execute();
- + con.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- + }
- +
- + public static void loadVariables(Player player)
- + {
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT * FROM character_memo_alt WHERE obj_id =?");
- + offline.setInt(1, player.getObjectId());
- + rs = offline.executeQuery();
- +
- + while (rs.next())
- + {
- + String name = rs.getString("name");
- + String value = rs.getString("value");
- + long expire_time = rs.getLong("expire_time");
- + long curtime = System.currentTimeMillis();
- +
- + if ((expire_time <= curtime) && (expire_time > 0))
- + {
- + deleteExpiredVar(player, name, rs.getString("value")); // TODO: Remove the Var
- + continue;
- + }
- +
- + player.getVariables().put(name, new PlayerVar(player, name, value, expire_time));
- + }
- +
- + con.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- + }
- +
- + public static String getVarValue(Player player, String var, String defaultString)
- + {
- + String value = null;
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT value FROM character_memo_alt WHERE obj_id = ? AND name = ?");
- + offline.setInt(1, player.getObjectId());
- + offline.setString(2, var);
- + rs = offline.executeQuery();
- + if (rs.next())
- + value = rs.getString("value");
- +
- + con.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- + return value == null ? defaultString : value;
- + }
- +
- + public static String getVarValue(int objectId, String var, String defaultString)
- + {
- + String value = null;
- + Connection con = null;
- + PreparedStatement offline = null;
- + ResultSet rs = null;
- + try
- + {
- + con = ConnectionPool.getConnection();
- + offline = con.prepareStatement("SELECT value FROM character_memo_alt WHERE obj_id = ? AND name = ?");
- + offline.setInt(1, objectId);
- + offline.setString(2, var);
- + rs = offline.executeQuery();
- + if (rs.next())
- + value = rs.getString("value");
- +
- + con.close();
- + }
- + catch (Exception e)
- + {
- + e.printStackTrace();
- + }
- + finally
- + {
- + Mysql.closeQuietly(con, offline, rs);
- + }
- + return value == null ? defaultString : value;
- + }
- +
- +}
- \ No newline at end of file
- diff --git java/net/sf/l2j/util/RewardHolder.java java/net/sf/l2j/util/RewardHolder.java
- new file mode 100644
- index 0000000..422b063
- --- /dev/null
- +++ java/net/sf/l2j/util/RewardHolder.java
- @@ -0,0 +1,49 @@
- +package net.sf.l2j.util;
- +
- +/**
- + * @author Rouxy
- + */
- +public class RewardHolder
- +{
- + private int itemId;
- + private int count;
- + private int chance;
- +
- + public RewardHolder(int itemId, int count)
- + {
- + this.itemId = itemId;
- + this.count = count;
- + this.chance = 100;
- + }
- +
- + public int getItemId()
- + {
- + return itemId;
- + }
- +
- + public void setItemId(int itemId)
- + {
- + this.itemId = itemId;
- + }
- +
- + public int getCount()
- + {
- + return count;
- + }
- +
- + public void setCount(int count)
- + {
- + this.count = count;
- + }
- +
- + public int getChance()
- + {
- + return chance;
- + }
- +
- + public void setChance(int chance)
- + {
- + this.chance = chance;
- + }
- +
- +}
- \ No newline at end of file
- diff --git server/gameserver/data/xml/TournamentData/Arenas.xml server/gameserver/data/xml/TournamentData/Arenas.xml
- new file mode 100644
- index 0000000..3292d3a
- --- /dev/null
- +++ server/gameserver/data/xml/TournamentData/Arenas.xml
- @@ -0,0 +1,159 @@
- +<?xml version='1.0' encoding='utf-8'?>
- +<list>
- + <!--<arena id="1" types="F1X1;F2X2;F3X3;F4X4;F5X5;F9X9">
- +
- + <team_one_loc x="87775" y="257757" z="-10381"/>
- + <team_one_loc x="87775" y="257857" z="-10381"/>
- + <team_one_loc x="87775" y="257957" z="-10381"/>
- + <team_one_loc x="87775" y="258057" z="-10381"/>
- + <team_one_loc x="87775" y="258157" z="-10381"/>
- + <team_one_loc x="87775" y="258257" z="-10381"/>
- + <team_one_loc x="87775" y="258357" z="-10381"/>
- + <team_one_loc x="87775" y="258457" z="-10381"/>
- + <team_one_loc x="87775" y="258557" z="-10381"/>
- +
- + <team_two_loc x="88959" y="257757" z="-10381"/>
- + <team_two_loc x="88959" y="257857" z="-10381"/>
- + <team_two_loc x="88959" y="257957" z="-10381"/>
- + <team_two_loc x="88959" y="258057" z="-10381"/>
- + <team_two_loc x="88959" y="258157" z="-10381"/>
- + <team_two_loc x="88959" y="258257" z="-10381"/>
- + <team_two_loc x="88959" y="258357" z="-10381"/>
- + <team_two_loc x="88959" y="258457" z="-10381"/>
- + <team_two_loc x="88959" y="258557" z="-10381"/>
- + </arena>-->
- +
- + <!-- coliseum 1x1 -->
- + <arena id="2" types="F1X1">
- + <!-- Team One Locs -->
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <!-- Team Two Locs -->
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + </arena>
- +
- + <!-- coliseum 2x2 -->
- + <arena id="3" types="F2X2">
- + <!-- Team One Locs -->
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <!-- Team Two Locs -->
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + </arena>
- +
- + <!-- coliseum 3x3 -->
- + <arena id="4" types="F3X3">
- + <!-- Team One Locs -->
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46626" z="-3408"/>
- + <team_one_loc x="150396" y="46626" z="-3408"/>
- + <!-- Team Two Locs -->
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46626" z="-3408"/>
- + <team_two_loc x="148532" y="46626" z="-3408"/>
- + </arena>
- +
- + <!-- coliseum 4x4 -->
- + <arena id="5" types="F4X4">
- + <!-- Team One Locs -->
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46626" z="-3408"/>
- + <team_one_loc x="150396" y="46626" z="-3408"/>
- + <team_one_loc x="150396" y="46926" z="-3408"/>
- + <team_one_loc x="150396" y="46926" z="-3408"/>
- + <!-- Team Two Locs -->
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46626" z="-3408"/>
- + <team_two_loc x="148532" y="46626" z="-3408"/>
- + <team_two_loc x="148532" y="46926" z="-3408"/>
- + <team_two_loc x="148532" y="46926" z="-3408"/>
- + </arena>
- +
- + <!-- coliseum 5x5 -->
- + <arena id="6" types="F5X5">
- + <!-- Team One Locs -->
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46626" z="-3408"/>
- + <team_one_loc x="150396" y="46626" z="-3408"/>
- + <team_one_loc x="150396" y="46926" z="-3408"/>
- + <team_one_loc x="150396" y="46926" z="-3408"/>
- + <team_one_loc x="150396" y="46526" z="-3408"/>
- + <team_one_loc x="150396" y="46526" z="-3408"/>
- + <!-- Team Two Locs -->
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46626" z="-3408"/>
- + <team_two_loc x="148532" y="46626" z="-3408"/>
- + <team_two_loc x="148532" y="46926" z="-3408"/>
- + <team_two_loc x="148532" y="46926" z="-3408"/>
- + <team_two_loc x="148532" y="46526" z="-3408"/>
- + <team_two_loc x="148532" y="46526" z="-3408"/>
- + </arena>
- +
- + <!-- coliseum 9x9 -->
- + <arena id="7" types="F9X9">
- + <!-- Team One Locs -->
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46726" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46826" z="-3408"/>
- + <team_one_loc x="150396" y="46626" z="-3408"/>
- + <team_one_loc x="150396" y="46626" z="-3408"/>
- + <team_one_loc x="150396" y="46926" z="-3408"/>
- + <team_one_loc x="150396" y="46926" z="-3408"/>
- + <team_one_loc x="150396" y="46526" z="-3408"/>
- + <team_one_loc x="150396" y="46526" z="-3408"/>
- + <team_one_loc x="150396" y="46426" z="-3408"/>
- + <team_one_loc x="150396" y="46426" z="-3408"/>
- + <team_one_loc x="150396" y="46326" z="-3408"/>
- + <team_one_loc x="150396" y="46326" z="-3408"/>
- + <team_one_loc x="150396" y="47026" z="-3408"/>
- + <team_one_loc x="150396" y="47026" z="-3408"/>
- + <team_one_loc x="150396" y="47126" z="-3408"/>
- + <team_one_loc x="150396" y="47126" z="-3408"/>
- + <!-- Team Two Locs -->
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46726" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46826" z="-3408"/>
- + <team_two_loc x="148532" y="46626" z="-3408"/>
- + <team_two_loc x="148532" y="46626" z="-3408"/>
- + <team_two_loc x="148532" y="46926" z="-3408"/>
- + <team_two_loc x="148532" y="46926" z="-3408"/>
- + <team_two_loc x="148532" y="46526" z="-3408"/>
- + <team_two_loc x="148532" y="46526" z="-3408"/>
- + <team_two_loc x="148532" y="46426" z="-3408"/>
- + <team_two_loc x="148532" y="46426" z="-3408"/>
- + <team_two_loc x="148532" y="46326" z="-3408"/>
- + <team_two_loc x="148532" y="46326" z="-3408"/>
- + <team_two_loc x="148532" y="47026" z="-3408"/>
- + <team_two_loc x="148532" y="47026" z="-3408"/>
- + <team_two_loc x="148532" y="47126" z="-3408"/>
- + <team_two_loc x="148532" y="47126" z="-3408"/>
- + </arena>
- +
- +
- +</list>
- \ No newline at end of file
- diff --git server/gameserver/data/xml/adminCommands.xml server/gameserver/data/xml/adminCommands.xml
- index a8921c9..d70cc57 100644
- --- server/gameserver/data/xml/adminCommands.xml
- +++ server/gameserver/data/xml/adminCommands.xml
- @@ -11,6 +11,9 @@
- <aCar name="admin_msg" accessLevel="7" params="id" desc="Send the associated SystemMessage id."/>
- <aCar name="admin_show" accessLevel="7" params="clear|door|html|move|path|walker" desc="Show visual paths. For html, show the complete folder."/>
- + <!-- ADMIN TOURNAMENT -->
- + <aCar name="admin_tour" accessLevel="7" params="" desc="Activate or Deactivate the manual tournament."/>
- +
- <!-- ANNOUNCEMENTS -->
- <aCar name="admin_announce" accessLevel="7" params="[list|all|add|add_auto|del]" desc="Open the Announcements panel."/>
- <aCar name="admin_ann" accessLevel="7" params="message" desc="Broadcast the message, with 'Announcements:' tag."/>
- diff --git server/gameserver/data/xml/npcs/TournamentNPC.xml server/gameserver/data/xml/npcs/TournamentNPC.xml
- new file mode 100644
- index 0000000..217e99c
- --- /dev/null
- +++ server/gameserver/data/xml/npcs/TournamentNPC.xml
- @@ -0,0 +1,40 @@
- +<?xml version="1.0" encoding="utf-8"?>
- +<list>
- + <npc id="50009" idTemplate="30519" name="First" title="Tournament Manager">
- + <set name="usingServerSideName" val="true"/>
- + <set name="usingServerSideTitle" val="true"/>
- + <set name="level" val="70"/>
- + <set name="radius" val="7"/>
- + <set name="height" val="18"/>
- + <set name="rHand" val="0"/>
- + <set name="lHand" val="0"/>
- + <set name="type" val="TournamentNpc"/>
- + <set name="exp" val="0"/>
- + <set name="sp" val="0"/>
- + <set name="hp" val="2444.46819"/>
- + <set name="mp" val="1345.8"/>
- + <set name="hpRegen" val="7.5"/>
- + <set name="mpRegen" val="2.7"/>
- + <set name="pAtk" val="688.86373"/>
- + <set name="pDef" val="295.91597"/>
- + <set name="mAtk" val="470.40463"/>
- + <set name="mDef" val="216.53847"/>
- + <set name="crit" val="4"/>
- + <set name="atkSpd" val="253"/>
- + <set name="str" val="40"/>
- + <set name="int" val="21"/>
- + <set name="dex" val="30"/>
- + <set name="wit" val="20"/>
- + <set name="con" val="43"/>
- + <set name="men" val="20"/>
- + <set name="corpseTime" val="7"/>
- + <set name="walkSpd" val="50"/>
- + <set name="runSpd" val="120"/>
- + <set name="dropHerbGroup" val="0"/>
- + <ai type="DEFAULT" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" canMove="true" seedable="false"/>
- + <skills>
- + <skill id="4045" level="1"/>
- + <skill id="4416" level="18"/>
- + </skills>
- + </npc>
- +</list>
- \ No newline at end of file
- diff --git server/gameserver/data/xml/zones/TournamentZone.xml server/gameserver/data/xml/zones/TournamentZone.xml
- new file mode 100644
- index 0000000..354553d
- --- /dev/null
- +++ server/gameserver/data/xml/zones/TournamentZone.xml
- @@ -0,0 +1,47 @@
- +<?xml version="1.0" encoding="UTF-8"?>
- +<list>
- + <!-- PVP Zones -->
- + <zone shape="NPoly" minZ="-3596" maxZ="-3396"><!-- dion_monster_pvp -->
- + <node x="11947" y="183019"/>
- + <node x="12937" y="183019"/>
- + <node x="12943" y="184010"/>
- + <node x="11941" y="184010"/>
- + </zone>
- + <zone shape="NPoly" minZ="-3752" maxZ="-3352"><!-- gludin_pvp -->
- + <node x="-88411" y="141732"/>
- + <node x="-87429" y="141733"/>
- + <node x="-87429" y="142708"/>
- + <node x="-88408" y="142708"/>
- + </zone>
- + <zone shape="NPoly" minZ="-3850" maxZ="-3350"><!-- giran_pvp_battle -->
- + <node x="72493" y="142263"/>
- + <node x="73493" y="142264"/>
- + <node x="73493" y="143261"/>
- + <node x="72495" y="143258"/>
- + </zone>
- + <zone shape="NPoly" minZ="-3498" maxZ="-3298"><!-- colosseum_battle -->
- + <node x="150948" y="46483" />
- + <node x="151210" y="46186" />
- + <node x="151221" y="45928" />
- + <node x="150737" y="45344" />
- + <node x="148265" y="45346" />
- + <node x="147769" y="45942" />
- + <node x="147784" y="46184" />
- + <node x="148047" y="46482" />
- + <node x="148049" y="46954" />
- + <node x="147781" y="47256" />
- + <node x="147769" y="47492" />
- + <node x="148263" y="48087" />
- + <node x="150745" y="48084" />
- + <node x="151220" y="47493" />
- + <node x="151216" y="47259" />
- + <node x="150947" y="46960" />
- + </zone>
- +
- + <zone shape="NPoly" minZ="1000" maxZ="-20000"><!-- heine room 1 -->
- + <node x="87595" y="259076"/>
- + <node x="87595" y="257344"/>
- + <node x="89223" y="257344"/>
- + <node x="89223" y="259076"/>
- + </zone>
- +</list>
- \ No newline at end of file
- diff --git java/net/sf/l2j/gameserver/network/GameClient.java java/net/sf/l2j/gameserver/network/GameClient.java
- index ab7c1e4..a453c60 100644
- --- java/net/sf/l2j/gameserver/network/GameClient.java
- +++ java/net/sf/l2j/gameserver/network/GameClient.java
- @@ -1,5 +1,6 @@
- package net.sf.l2j.gameserver.network;
- +import java.lang.System.Logger.Level;
- import java.net.InetAddress;
- import java.nio.ByteBuffer;
- import java.sql.Connection;
- @@ -25,6 +26,7 @@
- import net.sf.l2j.gameserver.data.sql.PlayerInfoTable;
- import net.sf.l2j.gameserver.enums.FloodProtector;
- import net.sf.l2j.gameserver.enums.MessageType;
- +import net.sf.l2j.gameserver.enums.TeleportType;
- import net.sf.l2j.gameserver.model.CharSelectSlot;
- import net.sf.l2j.gameserver.model.World;
- import net.sf.l2j.gameserver.model.actor.Player;
- @@ -39,6 +41,9 @@
- import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket;
- import net.sf.l2j.gameserver.network.serverpackets.ServerClose;
- +import Base.Instance.InstanceManager;
- +import Base.Tournament.Manager.TournamentManager;
- +
- /**
- * Represents a client connected on Game Server.<br>
- * <br>
- @@ -213,9 +218,21 @@
- {
- try
- {
- - ThreadPool.execute(() ->
- + ThreadPool.execute(new DisconnectTask());
- + }
- + catch (RejectedExecutionException e)
- + {
- + }
- + }
- +
- + protected class DisconnectTask implements Runnable
- + {
- + @Override
- + public void run()
- + {
- + boolean fast = true;
- + try
- {
- - boolean fast = true;
- final Player player = getPlayer();
- if (player != null && !isDetached())
- {
- @@ -263,11 +280,26 @@
- }
- AntiFeedManager.getInstance().onDisconnect(GameClient.this);
- + // Rouxy: Instance Mod
- + Player player2 = getPlayer();
- + if (player2 != null)
- + {
- + if (player2.getInstance() != null && player2.getInstance().getId() != 0)
- + {
- + player2.setInstance(InstanceManager.getInstance().getInstance(0), true);
- + player2.teleportTo(83384,148152,-3400,100);
- + }
- + }
- + // Rouxy: Tournament
- + TournamentManager.getInstance().onDisconnect(player);
- +
- +
- cleanMe(fast);
- - });
- - }
- - catch (RejectedExecutionException e)
- - {
- + }
- + catch (Exception e1)
- + {
- + LOGGER.info(Level.WARNING, "error while disconnecting client", e1);
- + }
- }
- }
- diff --git java/net/sf/l2j/gameserver/network/serverpackets/Die.java java/net/sf/l2j/gameserver/network/serverpackets/Die.java
- index 1644ed0..cb5f105 100644
- --- java/net/sf/l2j/gameserver/network/serverpackets/Die.java
- +++ java/net/sf/l2j/gameserver/network/serverpackets/Die.java
- @@ -29,7 +29,7 @@
- {
- _creature = creature;
- _objectId = creature.getObjectId();
- - _canTeleport = !(((creature instanceof Player)) && CTFEvent.isStarted() && CTFEvent.isPlayerParticipant(_objectId) || TvTEvent.isStarted() && TvTEvent.isPlayerParticipant(_objectId) || LMEvent.isStarted() && LMEvent.isPlayerParticipant(_objectId) || DMEvent.isStarted() && DMEvent.isPlayerParticipant(_objectId));
- + _canTeleport = !(((creature instanceof Player)) && !creature.getActingPlayer().isInTournamentMatch() && CTFEvent.isStarted() && CTFEvent.isPlayerParticipant(_objectId) || TvTEvent.isStarted() && TvTEvent.isPlayerParticipant(_objectId) || LMEvent.isStarted() && LMEvent.isPlayerParticipant(_objectId) || DMEvent.isStarted() && DMEvent.isPlayerParticipant(_objectId));
- _fake = !creature.isDead();
- if (creature instanceof Player)
- diff --git a/aCis_datapack/data/html/mods/tournament/createTeam.htm b/aCis_datapack/data/html/mods/tournament/createTeam.htm
- new file mode 100644
- index 0000000..4640213
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/createTeam.htm
- @@ -0,0 +1,38 @@
- +
- +<html>
- +<title>Battle Tournament</title>
- +<body>
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +<br>
- +
- +
- +<center>
- + Tournament Team:
- +
- + <br>You need to invite <font color=LEVEL>%missingMembers%</font>
- +</center>
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +
- +
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +%inviteBoxRegButton%
- +<br>
- +
- +<center>
- + <table width=320 bgcolor=000000>
- + <tr>
- + <td align=center>
- + <font color=994992>** Team Members **</font>
- + </td>
- + </tr>
- + </table>
- + %memberslist%
- +
- +</center>
- +<br>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</body>
- +</html>
- diff --git a/aCis_datapack/data/html/mods/tournament/fights/F1X1.htm b/aCis_datapack/data/html/mods/tournament/fights/F1X1.htm
- new file mode 100644
- index 0000000..2fbba6a
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/fights/F1X1.htm
- @@ -0,0 +1,93 @@
- +<html><body>
- +
- +
- +<table width=300>
- + <tr>
- + <td fixwidth=20></td>
- + <td align=center><img src="l2ui_ch3.herotower_deco" width=256 height=32> </td>
- + <td fixwidth=20></td>
- + </tr>
- +</table>
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Tournament (1x1)</font></td>
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=315 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Players Registered: </font>%teamsRegF1X1%<br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Active Fights: </font>%activeFightsF1X1%<br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Total Fights: </font>%allTimeFights%<br>
- + </td>
- + </tr>
- +</table>
- +
- +<br>
- +<table width=315 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Register" action="bypass -h bp_registerTournament1x1" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=315 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Leave" action="bypass -h bp_removeTournamentParticipation" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=315 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="DeleteTeam" action="bypass -h bp_deleteTournamentTeam" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center>* Your Team *</td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +<center>
- +%memberslist%
- +</center>
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/fights/F2X2.htm b/aCis_datapack/data/html/mods/tournament/fights/F2X2.htm
- new file mode 100644
- index 0000000..0dd4456
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/fights/F2X2.htm
- @@ -0,0 +1,110 @@
- +<html><body>
- +
- +
- +<table width=300>
- + <tr>
- + <td fixwidth=20></td>
- + <td align=center><img src="l2ui_ch3.herotower_deco" width=256 height=32> </td>
- + <td fixwidth=20></td>
- + </tr>
- +</table>
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td align=center> <font color=ff0019>Tournament (2x2)</font></td>
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center>
- + <font color=LEVEL>Players Registered: </font>%teamsRegF2X2%<br>
- + </td>
- + <td fixwidth=5></td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Active Fights: </font>%activeFightsF2X2%<br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Total Fights: </font>%allTimeFights%<br>
- + </td>
- + </tr>
- +</table>
- +
- +<br>
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Register" action="bypass -h bp_registerTournament2x2" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Leave" action="bypass -h bp_removeTournamentParticipation" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="DeleteTeam" action="bypass -h bp_deleteTournamentTeam" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300>
- + <tr>
- + <td align=center >Type the name of your partner or use command: <br1><font color=994992>".tournamentinvite playername"</font></td>
- +
- + </tr>
- +</table>
- +
- +<table width=280>
- + <tr>
- + <td align=center>Player Name:</td>
- + <td align=left><edit var="playerName" width=120 height=10></td>
- + <td align=center><button value="Invite" action="bypass -h bp_inviteTournamentMember $playerName" width=45 height=15 back="sek.cbui94" fore="sek.cbui92"></td>
- + </tr>
- + </table>
- +
- +<br>
- +
- +
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center>* Your Team *</td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +<center>
- +%memberslist%
- +</center>
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/fights/F3X3.htm b/aCis_datapack/data/html/mods/tournament/fights/F3X3.htm
- new file mode 100644
- index 0000000..9afe1b2
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/fights/F3X3.htm
- @@ -0,0 +1,110 @@
- +<html><body>
- +
- +
- +<table width=300>
- + <tr>
- + <td fixwidth=20></td>
- + <td align=center><img src="l2ui_ch3.herotower_deco" width=256 height=32> </td>
- + <td fixwidth=20></td>
- + </tr>
- +</table>
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td align=center> <font color=ff0019>Tournament (3x3)</font></td>
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center>
- + <font color=LEVEL>Players Registered: </font>%teamsRegF3X3%<br>
- + </td>
- + <td fixwidth=5></td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Active Fights: </font>%activeFightsF3X3%<br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Total Fights: </font>%allTimeFights%<br>
- + </td>
- + </tr>
- +</table>
- +
- +<br>
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Register" action="bypass -h bp_registerTournament3x3" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Leave" action="bypass -h bp_removeTournamentParticipation" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="DeleteTeam" action="bypass -h bp_deleteTournamentTeam" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300>
- + <tr>
- + <td align=center >Type the name of your partner or use command: <br1><font color=994992>".tournamentinvite playername"</font></td>
- +
- + </tr>
- +</table>
- +
- +<table width=280>
- + <tr>
- + <td align=center>Player Name:</td>
- + <td align=left><edit var="playerName" width=120 height=10></td>
- + <td align=center><button value="Invite" action="bypass -h bp_inviteTournamentMember $playerName" width=45 height=15 back="sek.cbui94" fore="sek.cbui92"></td>
- + </tr>
- + </table>
- +
- +<br>
- +
- +
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center>* Your Team *</td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +<center>
- +%memberslist%
- +</center>
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/fights/F4X4.htm b/aCis_datapack/data/html/mods/tournament/fights/F4X4.htm
- new file mode 100644
- index 0000000..a8bd719
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/fights/F4X4.htm
- @@ -0,0 +1,110 @@
- +<html><body>
- +
- +
- +<table width=300>
- + <tr>
- + <td fixwidth=20></td>
- + <td align=center><img src="l2ui_ch3.herotower_deco" width=256 height=32> </td>
- + <td fixwidth=20></td>
- + </tr>
- +</table>
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td align=center> <font color=ff0019>Tournament (4x4)</font></td>
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center>
- + <font color=LEVEL>Players Registered: </font>%teamsRegF4X4%<br>
- + </td>
- + <td fixwidth=5></td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Active Fights: </font>%activeFightsF4X4%<br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Total Fights: </font>%allTimeFights%<br>
- + </td>
- + </tr>
- +</table>
- +
- +<br>
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Register" action="bypass -h bp_registerTournament4x4" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Leave" action="bypass -h bp_removeTournamentParticipation" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="DeleteTeam" action="bypass -h bp_deleteTournamentTeam" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300>
- + <tr>
- + <td align=center >Type the name of your partner or use command: <br1><font color=994992>".tournamentinvite playername"</font></td>
- +
- + </tr>
- +</table>
- +
- +<table width=280>
- + <tr>
- + <td align=center>Player Name:</td>
- + <td align=left><edit var="playerName" width=120 height=10></td>
- + <td align=center><button value="Invite" action="bypass -h bp_inviteTournamentMember $playerName" width=45 height=15 back="sek.cbui94" fore="sek.cbui92"></td>
- + </tr>
- + </table>
- +
- +<br>
- +
- +
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center>* Your Team *</td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +<center>
- +%memberslist%
- +</center>
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/fights/F5X5.htm b/aCis_datapack/data/html/mods/tournament/fights/F5X5.htm
- new file mode 100644
- index 0000000..361e55b
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/fights/F5X5.htm
- @@ -0,0 +1,110 @@
- +<html><body>
- +
- +
- +<table width=300>
- + <tr>
- + <td fixwidth=20></td>
- + <td align=center><img src="l2ui_ch3.herotower_deco" width=256 height=32> </td>
- + <td fixwidth=20></td>
- + </tr>
- +</table>
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td align=center> <font color=ff0019>Tournament (5x5)</font></td>
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center>
- + <font color=LEVEL>Players Registered: </font>%teamsRegF5X5%<br>
- + </td>
- + <td fixwidth=5></td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Active Fights: </font>%activeFightsF5X5%<br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Total Fights: </font>%allTimeFights%<br>
- + </td>
- + </tr>
- +</table>
- +
- +<br>
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Register" action="bypass -h bp_registerTournament5x5" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Leave" action="bypass -h bp_removeTournamentParticipation" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="DeleteTeam" action="bypass -h bp_deleteTournamentTeam" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300>
- + <tr>
- + <td align=center >Type the name of your partner or use command: <br1><font color=994992>".tournamentinvite playername"</font></td>
- +
- + </tr>
- +</table>
- +
- +<table width=280>
- + <tr>
- + <td align=center>Player Name:</td>
- + <td align=left><edit var="playerName" width=120 height=10></td>
- + <td align=center><button value="Invite" action="bypass -h bp_inviteTournamentMember $playerName" width=45 height=15 back="sek.cbui94" fore="sek.cbui92"></td>
- + </tr>
- + </table>
- +
- +<br>
- +
- +
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center>* Your Team *</td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +<center>
- +%memberslist%
- +</center>
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/fights/F9X9.htm b/aCis_datapack/data/html/mods/tournament/fights/F9X9.htm
- new file mode 100644
- index 0000000..2cddd64
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/fights/F9X9.htm
- @@ -0,0 +1,110 @@
- +<html><body>
- +
- +
- +<table width=300>
- + <tr>
- + <td fixwidth=20></td>
- + <td align=center><img src="l2ui_ch3.herotower_deco" width=256 height=32> </td>
- + <td fixwidth=20></td>
- + </tr>
- +</table>
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td align=center> <font color=ff0019>Tournament (9x9)</font></td>
- +<td align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center>
- + <font color=LEVEL>Players Registered: </font>%teamsRegF9X9%<br>
- + </td>
- + <td fixwidth=5></td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Active Fights: </font>%activeFightsF9X9%<br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=center>
- + <font color=LEVEL>Total Fights: </font>%allTimeFights%<br>
- + </td>
- + </tr>
- +</table>
- +
- +<br>
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Register" action="bypass -h bp_registerTournament9x9" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Leave" action="bypass -h bp_removeTournamentParticipation" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="DeleteTeam" action="bypass -h bp_deleteTournamentTeam" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +<table width=300>
- + <tr>
- + <td align=center >Type the name of your partner or use command: <br1><font color=994992>".tournamentinvite playername"</font></td>
- +
- + </tr>
- +</table>
- +
- +<table width=280>
- + <tr>
- + <td align=center>Player Name:</td>
- + <td align=left><edit var="playerName" width=120 height=10></td>
- + <td align=center><button value="Invite" action="bypass -h bp_inviteTournamentMember $playerName" width=45 height=15 back="sek.cbui94" fore="sek.cbui92"></td>
- + </tr>
- + </table>
- +
- +<br>
- +
- +
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center>* Your Team *</td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +<center>
- +%memberslist%
- +</center>
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/invitePage.htm b/aCis_datapack/data/html/mods/tournament/invitePage.htm
- new file mode 100644
- index 0000000..526a149
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/invitePage.htm
- @@ -0,0 +1,49 @@
- +
- +<html>
- +<title>Battle Tournament</title>
- +<body>
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +<br>
- +
- +
- +<center>
- + Tournament Team:
- +
- +
- +</center>
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +
- +
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +
- +<center>
- + Type the name of your partner or use command: <br1><font color=994992>".tournamentinvite playername"</font>
- +</center>
- +<table width=280>
- + <tr>
- + <td>Player Name</td>
- + <td><edit var="playerName" width=120 height=15></td>
- + <td><button value="Invite" action="bypass -h bp_inviteTournamentMember $playerName" width=45 height=15 back="sek.cbui94" fore="sek.cbui92"></td>
- + </tr>
- + </table>
- +
- +<br>
- +
- +<center>
- + <table width=320 bgcolor=000000>
- + <tr>
- + <td align=center>
- + <font color=994992>** Team Members **</font>
- + </td>
- + </tr>
- + </table>
- + %memberslist%
- +
- +</center>
- +<br>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</body>
- +</html>
- diff --git a/aCis_datapack/data/html/mods/tournament/main.htm b/aCis_datapack/data/html/mods/tournament/main.htm
- new file mode 100644
- index 0000000..9b5eb60
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/main.htm
- @@ -0,0 +1,126 @@
- +
- +<html>
- +<title>Battle Tournament</title>
- +<body>
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +<br>
- +
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +<table width=280 bgcolor=000000>
- +<tr>
- +<td width=25 align="right"><button action="" width=32 height=32 back="icon.skill1367" fore="icon.skill1369"></td>
- +<td width=120>
- +<table>
- +<tr><td><font color="abf04b">[ Battle Tour 1x1 ] </font></td></tr>
- +<tr><td>{ 1 member per team }</font></td></tr>
- +</table>
- +</td>
- +<td width=8></td>
- +<td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h bp_showTournamentPage fights/F1X1" value="Fight 1x1"></td>
- +</tr>
- +</table>
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +<table width=280 bgcolor=000000>
- +<tr>
- +<td width=25 align="right"><button action="" width=32 height=32 back="icon.skill1367" fore="icon.skill1369"></td>
- +<td width=120>
- +<table>
- +<tr><td><font color="abf04b">[ Battle Tour 2x2 ] </font></td></tr>
- +<tr><td>{ 2 members for pt }</font></td></tr>
- +</table>
- +</td>
- +<td width=8></td>
- +<td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h bp_showTournamentPage fights/F2X2" value="Fight 2x2"></td>
- +</tr>
- +</table>
- +
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +<table width=280 bgcolor=000000>
- +<tr>
- +<td width=25 align="right"><button action="" width=32 height=32 back="icon.etc_event_medal_i00" fore="icon.skill1368"></td>
- +<td width=120>
- +<table>
- +<tr><td><font color="abf04b">[ Battle Tour 3x3 ] </font></td></tr>
- +<tr><td>{ 3 members for pt } </font></td></tr>
- +</table>
- +</td>
- +<td width=11></td>
- +<td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h bp_showTournamentPage fights/F3X3" value="Fight 3x3"></td>
- +</tr>
- +</table>
- +
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +<table width=280 bgcolor=000000>
- +<tr>
- +<td width=25 align="right"><button action="" width=32 height=32 back="icon.etc_event_medal_i00" fore="icon.skill1368"></td>
- +<td width=120>
- +<table>
- +<tr><td><font color="abf04b">[ Battle Tour 4x4 ] </font></td></tr>
- +<tr><td>{ 4 members for pt } </font></td></tr>
- +</table>
- +</td>
- +<td width=11></td>
- +<td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h bp_showTournamentPage fights/F4X4" value="Fight 4x4"></td>
- +</tr>
- +</table>
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +<table width=280 bgcolor=000000>
- +<tr>
- +<td width=25 align="right"><button action="" width=32 height=32 back="icon.etc_event_medal_i00" fore="icon.skill1370"></td>
- +<td width=120>
- +<table>
- +<tr><td><font color="abf04b">[ Battle Tour 5x5 ] </font></td></tr>
- +<tr><td>{ 5 members for pt } </font></td></tr>
- +</table>
- +</td>
- +<td width=11></td>
- +<td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h bp_showTournamentPage fights/F5X5" value="Fight 5x5"></td>
- +</tr>
- +</table>
- +
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +<table width=280 bgcolor=000000>
- +<tr>
- +<td width=25 align="right"><button action="" width=32 height=32 back="icon.etc_event_medal_i00" fore="icon.skill1370"></td>
- +<td width=120>
- +<table>
- +<tr><td><font color="abf04b">[ Battle Tour 9x9 ] </font></td></tr>
- +<tr><td>{ 9 members for pt } </font></td></tr>
- +</table>
- +</td>
- +<td width=11></td>
- +<td><button width="115" height="30" back="L2UI_ch3.bigbutton2_down" fore="L2UI_ch3.bigbutton2" action="bypass -h bp_showTournamentPage fights/F9X9" value="Fight 9x9"></td>
- +</tr>
- +</table>
- +
- +
- +<img src="Sek.cbui371" width=300 height=1>
- +<br>
- +<table width=315 bgcolor=000000>
- + <tr>
- + <td align=center><font color=ff0000>Quick Actions</font></td>
- +
- + </tr>
- +</table>
- +<br>
- +<table width=315 bgcolor=000000>
- + <tr>
- + <td align=center><font color=LEVEL><a action="bypass bp_deleteTournamentTeam">Delete Team</a></font></td>
- + <td align=center><font color=LEVEL><a action="bypass bp_leaveTournamentTeam">Leave Team</a></font></td>
- + <td align=center><font color=LEVEL><a action="bypass bp_removeTournamentParticipation">Unregister</a></font></td>
- + <td align=center><font color=LEVEL><a action="bypass bp_showTournamentPage invitePage">Invite Page</a></font></td>
- +
- +
- + </tr>
- +</table>
- +
- +<br>
- +</body>
- +</html>
- diff --git a/aCis_datapack/data/html/mods/tournament/myTour - Copia.htm b/aCis_datapack/data/html/mods/tournament/myTour - Copia.htm
- new file mode 100644
- index 0000000..8698fd4
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/myTour - Copia.htm
- @@ -0,0 +1,148 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +<a action="bypass bp_showTournamentPage ranking">rank</a>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> My Tour</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Here you can check all your Tournament Status.</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfTotal%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<br><br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=250>
- + <a action=""><font color=LEVEL>DPF = Damage Per Fight</font></a>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=250>
- + <a action=""><font color=LEVEL>WDT = Win/Defeats/Ties Ratio</font></a>
- + </td>
- + </tr>
- +
- +</table>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/myTour.htm b/aCis_datapack/data/html/mods/tournament/myTour.htm
- new file mode 100644
- index 0000000..740f6de
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/myTour.htm
- @@ -0,0 +1,161 @@
- +<html><title>My Tour</title><body>
- +
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Rankings" action="bypass bp_showTournamentPage ranking" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +<table width=300>
- + <tr>
- + <td fixwidth=20></td>
- + <td align=center><img src="l2ui_ch3.herotower_deco" width=256 height=32> </td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> My Tour</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Here you can check all your Tournament Status.</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfTotal%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=250>
- + <a action=""><font color=LEVEL>DPF = Damage Per Fight</font></a>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=250>
- + <a action=""><font color=LEVEL>WDT = Win/Defeats/Ties Ratio</font></a>
- + </td>
- + </tr>
- +
- +</table>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking.htm b/aCis_datapack/data/html/mods/tournament/ranking.htm
- new file mode 100644
- index 0000000..5d692e0
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking.htm
- @@ -0,0 +1,139 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +<table border="1" width="315" bgcolor="000000">
- +<tr>
- +<td width=99 align=center>Tournament Points: <font color=LEVEL>%tourPoints%</font><br1>
- +</td>
- +</tr>
- +</table>
- +<br>
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Rankings</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=icon.skill1363 width=32 height=32>
- +</td>
- +<td fixwidth=250>
- +<font color=FE642E>Top Global</font><br1>
- +<font color=F2F5A9>Best Tournament Players.</font>
- +</td>
- +<td fixwidth=50>
- +<button action="bypass -h bp_showTournamentPage ranking/global" width=32 height=32 fore="L2UI_CH3.Minimap.mapbutton_zoomin1" back="L2UI_CH3.Minimap.mapbutton_zoomin2">
- +</td>
- +</tr>
- +</table>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=32 height=35>
- + <img src=icon.skill1230 width=32 height=32>
- + </td>
- + <td fixwidth=250>
- + <font color=FE642E>Top Kills</font><br1>
- + <font color=F2F5A9>Top Killers in Tournament.</font>
- + </td>
- + <td fixwidth=50>
- + <button action="bypass -h bp_showTournamentPage ranking/kills" width=32 height=32 fore="L2UI_CH3.Minimap.mapbutton_zoomin1" back="L2UI_CH3.Minimap.mapbutton_zoomin2">
- + </td>
- + </tr>
- +</table>
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=icon.skill1374 width=32 height=32>
- +</td>
- +<td fixwidth=250>
- +<font color=FE642E>Top Victories</font><br1>
- +<font color=F2F5A9>Most victorious players in Tournament.</font>
- +</td>
- +<td fixwidth=50>
- +<button action="bypass -h bp_showTournamentPage ranking/victories" width=32 height=32 fore="L2UI_CH3.Minimap.mapbutton_zoomin1" back="L2UI_CH3.Minimap.mapbutton_zoomin2">
- +</td>
- +</tr>
- +</table>
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=icon.skill0260 width=32 height=32>
- +</td>
- +<td fixwidth=250>
- +<font color=FE642E>Top Damage</font><br1>
- +<font color=F2F5A9>Players with more damage in Tournament.</font>
- +</td>
- +<td fixwidth=50>
- +<button action="bypass -h bp_showTournamentPage ranking/damage" width=32 height=32 fore="L2UI_CH3.Minimap.mapbutton_zoomin1" back="L2UI_CH3.Minimap.mapbutton_zoomin2">
- +</td>
- +</tr>
- +</table>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=icon.skill0426 width=32 height=32>
- +</td>
- +<td fixwidth=250>
- +<font color=FE642E>Top Ties</font><br1>
- +<font color=F2F5A9>Players with more tied fights in Tournament.</font>
- +</td>
- +<td fixwidth=50>
- +<button action="bypass -h bp_showTournamentPage ranking/ties" width=32 height=32 fore="L2UI_CH3.Minimap.mapbutton_zoomin1" back="L2UI_CH3.Minimap.mapbutton_zoomin2">
- +</td>
- +</tr>
- +</table>
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=40>
- +<img src=icon.skill0060 width=32 height=32>
- +</td>
- +<td fixwidth=250>
- +<font color=FE642E>Top Defeats</font><br1>
- +<font color=F2F5A9>Players with more deaths in Tournament.</font>
- +</td>
- +<td fixwidth=50>
- +<button action="bypass -h bp_showTournamentPage ranking/defeats" width=32 height=32 fore="L2UI_CH3.Minimap.mapbutton_zoomin1" back="L2UI_CH3.Minimap.mapbutton_zoomin2">
- +</td>
- +</tr>
- +</table>
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage mytour" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/damage.htm b/aCis_datapack/data/html/mods/tournament/ranking/damage.htm
- new file mode 100644
- index 0000000..9b8e3d4
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/damage.htm
- @@ -0,0 +1,148 @@
- +<html><body>
- +
- +<table border="1" width="320" bgcolor="000000">
- +<tr>
- +<td width=99 align=center>Tournament Points: <font color=LEVEL>%tourPoints%</font><br1>
- +</td>
- +</tr>
- +</table>
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>(Damage) Select a Mode:</font></td>
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>1x1 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F1X1 damage"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>2x2 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F2X2 damage"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>3x3 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F3X3 damage"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>4x4 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F4X4 damage"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>5x5 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F5X5 damage"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>9x9 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F9X9 damage"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/damage/F1X1.htm b/aCis_datapack/data/html/mods/tournament/ranking/damage/F1X1.htm
- new file mode 100644
- index 0000000..003f324
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/damage/F1X1.htm
- @@ -0,0 +1,53 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Ranking (1x1)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Damage
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-damageF1X1%
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/damage" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/damage/F2X2.htm b/aCis_datapack/data/html/mods/tournament/ranking/damage/F2X2.htm
- new file mode 100644
- index 0000000..2cf79e2
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/damage/F2X2.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Ranking (2x2)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Damage
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-damageF2X2%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/damage" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/damage/F3X3.htm b/aCis_datapack/data/html/mods/tournament/ranking/damage/F3X3.htm
- new file mode 100644
- index 0000000..f3d936a
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/damage/F3X3.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Ranking (3x3)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Damage
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-damageF3X3%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/damage" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/damage/F4X4.htm b/aCis_datapack/data/html/mods/tournament/ranking/damage/F4X4.htm
- new file mode 100644
- index 0000000..29d021c
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/damage/F4X4.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Ranking (4x4)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Damage
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-damageF4X4%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/damage" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/damage/F5X5.htm b/aCis_datapack/data/html/mods/tournament/ranking/damage/F5X5.htm
- new file mode 100644
- index 0000000..a96922c
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/damage/F5X5.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Ranking (5x5)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Damage
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-damageF5X5%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/damage" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/damage/F9X9.htm b/aCis_datapack/data/html/mods/tournament/ranking/damage/F9X9.htm
- new file mode 100644
- index 0000000..a5a75a8
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/damage/F9X9.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Ranking (9x9)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Damage
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-damageF9X9%
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/damage" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/defeats.htm b/aCis_datapack/data/html/mods/tournament/ranking/defeats.htm
- new file mode 100644
- index 0000000..4af0b8f
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/defeats.htm
- @@ -0,0 +1,148 @@
- +<html><body>
- +
- +<table border="1" width="320" bgcolor="000000">
- +<tr>
- +<td width=99 align=center>Tournament Points: <font color=LEVEL>%tourPoints%</font><br1>
- +</td>
- +</tr>
- +</table>
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>(Defeats) Select a Mode:</font></td>
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>1x1 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F1X1 defeats"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>2x2 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F2X2 defeats"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>3x3 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F3X3 defeats"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>4x4 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F4X4 defeats"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>5x5 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F5X5 defeats"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>9x9 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F9X9 defeats"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/defeats/F1X1.htm b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F1X1.htm
- new file mode 100644
- index 0000000..0dfc564
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F1X1.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Defeats Ranking (1x1)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-defeatsF1X1%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/defeats" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/defeats/F2X2.htm b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F2X2.htm
- new file mode 100644
- index 0000000..cbfda68
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F2X2.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Defeats Ranking (2x2)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-defeatsF2X2%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/defeats" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/defeats/F3X3.htm b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F3X3.htm
- new file mode 100644
- index 0000000..fc439d0
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F3X3.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Defeats Ranking (3x3)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Defeats
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-defeatsF3X3%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/defeats" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/defeats/F4X4.htm b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F4X4.htm
- new file mode 100644
- index 0000000..776e626
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F4X4.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Defeats Ranking (4x4)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-defeatsF4X4%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/defeats" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/defeats/F5X5.htm b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F5X5.htm
- new file mode 100644
- index 0000000..dbaaf00
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F5X5.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Defeats Ranking (5x5)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-defeatsF5X5%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/defeats" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/defeats/F9X9.htm b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F9X9.htm
- new file mode 100644
- index 0000000..4540c2a
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/defeats/F9X9.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Defeats Ranking (9x9)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-defeatsF9X9%
- +
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/defeats" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/dpf/F1X1.htm b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F1X1.htm
- new file mode 100644
- index 0000000..91adfee
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F1X1.htm
- @@ -0,0 +1,46 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Per Fight (DPF) Ranking(1x1)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + DPF
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-dpfF1X1%
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/dpf/F2X2.htm b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F2X2.htm
- new file mode 100644
- index 0000000..d904061
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F2X2.htm
- @@ -0,0 +1,46 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Per Fight (DPF) Ranking(2x2)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + DPF
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-dpfF2X2%
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/dpf/F3X3.htm b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F3X3.htm
- new file mode 100644
- index 0000000..3f15f47
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F3X3.htm
- @@ -0,0 +1,46 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Per Fight (DPF) Ranking(3x3)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + DPF
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-dpfF3X3%
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/dpf/F4X4.htm b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F4X4.htm
- new file mode 100644
- index 0000000..186fc91
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F4X4.htm
- @@ -0,0 +1,46 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Per Fight (DPF) Ranking(4x4)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + DPF
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-dpfF4X4%
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/dpf/F5X5.htm b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F5X5.htm
- new file mode 100644
- index 0000000..7861a00
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F5X5.htm
- @@ -0,0 +1,46 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Damage Per Fight (DPF) Ranking (5x5)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + DPF
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-dpfF5X5%
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/dpf/F9X9.htm b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F9X9.htm
- new file mode 100644
- index 0000000..74d96ce
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/dpf/F9X9.htm
- @@ -0,0 +1,46 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Global Ranking (9x9)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + DPF
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-dpfF9X9%
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/global.htm b/aCis_datapack/data/html/mods/tournament/ranking/global.htm
- new file mode 100644
- index 0000000..150caab
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/global.htm
- @@ -0,0 +1,148 @@
- +<html><body>
- +
- +<table border="1" width="320" bgcolor="000000">
- +<tr>
- +<td width=99 align=center>Tournament Points: <font color=LEVEL>%tourPoints%</font><br1>
- +</td>
- +</tr>
- +</table>
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Select a Mode:</font></td>
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>1x1 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F1X1 wdt"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>2x2 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F2X2 wdt"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>3x3 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F3X3 wdt"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>4x4 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F4X4 wdt"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>5x5 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F5X5 wdt"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>9x9 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F9X9 wdt"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF1X1.htm b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF1X1.htm
- new file mode 100644
- index 0000000..c45a0fb
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF1X1.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 1x1 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 1x1 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (1x1)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF1X1%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (1x1)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF1X1%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF1X1%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (1x1):</font> %damageF1X1%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF1X1%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF2X2.htm b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF2X2.htm
- new file mode 100644
- index 0000000..33f7848
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF2X2.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 2x2 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 2x2 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (2x2)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF2X2%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (2x2)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF2X2%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF2X2%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (1x1):</font> %damageF2X2%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF2X2%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF3X3.htm b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF3X3.htm
- new file mode 100644
- index 0000000..16fdef5
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF3X3.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 3x3 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 3x3 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (3x3)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF3X3%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (2X2)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF3X3%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF3X3%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (3x3):</font> %damageF3X3%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF3X3%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF4X4.htm b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF4X4.htm
- new file mode 100644
- index 0000000..cca73a2
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF4X4.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 4x4 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 4x4 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (4x4)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF4X4%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (2X2)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF4X4%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF4X4%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (4x4):</font> %damageF4X4%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF4X4%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF5X5.htm b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF5X5.htm
- new file mode 100644
- index 0000000..f9d0670
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF5X5.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 5x5 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 5x5 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (5x5)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF5X5%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (2X2)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF5X5%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF5X5%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (5x5):</font> %damageF5X5%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF5X5%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF9X9.htm b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF9X9.htm
- new file mode 100644
- index 0000000..dfceab8
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/info/playerInfoF9X9.htm
- @@ -0,0 +1,180 @@
- +<html><title>My Tour</title><body>
- +
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 9x9 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 9x9 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (9x9)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF9X9%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (2X2)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF9X9%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF9X9%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (9x9):</font> %damageF9X9%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF9X9%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/kills.htm b/aCis_datapack/data/html/mods/tournament/ranking/kills.htm
- new file mode 100644
- index 0000000..8fa36b7
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/kills.htm
- @@ -0,0 +1,148 @@
- +<html><body>
- +
- +<table border="1" width="320" bgcolor="000000">
- +<tr>
- +<td width=99 align=center>Tournament Points: <font color=LEVEL>%tourPoints%</font><br1>
- +</td>
- +</tr>
- +</table>
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>(Kills) Select a Mode:</font></td>
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>1x1 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F1X1 kills"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>2x2 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F2X2 kills"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>3x3 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F3X3 kills"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>4x4 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F4X4 kills"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>5x5 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F5X5 kills"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>9x9 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F9X9 kills"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/kills/F1X1.htm b/aCis_datapack/data/html/mods/tournament/ranking/kills/F1X1.htm
- new file mode 100644
- index 0000000..320a738
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/kills/F1X1.htm
- @@ -0,0 +1,57 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Kills Ranking(1x1)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Kills
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-killsF1X1%
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/kills" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/kills/F2X2.htm b/aCis_datapack/data/html/mods/tournament/ranking/kills/F2X2.htm
- new file mode 100644
- index 0000000..d934dee
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/kills/F2X2.htm
- @@ -0,0 +1,57 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Kills Ranking(2x2)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Kills
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-killsF2X2%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/kills" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/kills/F3X3.htm b/aCis_datapack/data/html/mods/tournament/ranking/kills/F3X3.htm
- new file mode 100644
- index 0000000..3ddbc24
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/kills/F3X3.htm
- @@ -0,0 +1,57 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Kills Ranking(3x3)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Kills
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-killsF3X3%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/kills" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/kills/F4X4.htm b/aCis_datapack/data/html/mods/tournament/ranking/kills/F4X4.htm
- new file mode 100644
- index 0000000..9ed4aae
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/kills/F4X4.htm
- @@ -0,0 +1,57 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Kills Ranking(4x4)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + DPF
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-killsF4X4%
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/kills" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/kills/F5X5.htm b/aCis_datapack/data/html/mods/tournament/ranking/kills/F5X5.htm
- new file mode 100644
- index 0000000..b2081e6
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/kills/F5X5.htm
- @@ -0,0 +1,57 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Kills Ranking (5x5)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Kills
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-killsF5X5%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/kills" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/kills/F9X9.htm b/aCis_datapack/data/html/mods/tournament/ranking/kills/F9X9.htm
- new file mode 100644
- index 0000000..3726491
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/kills/F9X9.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Kills Ranking (9x9)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Kill
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-killsF9X9%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/kills" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/ties.htm b/aCis_datapack/data/html/mods/tournament/ranking/ties.htm
- new file mode 100644
- index 0000000..d218dd9
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/ties.htm
- @@ -0,0 +1,148 @@
- +<html><body>
- +
- +<table border="1" width="320" bgcolor="000000">
- +<tr>
- +<td width=99 align=center>Tournament Points: <font color=LEVEL>%tourPoints%</font><br1>
- +</td>
- +</tr>
- +</table>
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>(Tie) Select a Mode:</font></td>
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>1x1 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F1X1 ties"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>2x2 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F2X2 ties"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>3x3 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F3X3 ties"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>4x4 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F4X4 ties"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>5x5 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F5X5 ties"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>9x9 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F9X9 ties"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/ties/F1X1.htm b/aCis_datapack/data/html/mods/tournament/ranking/ties/F1X1.htm
- new file mode 100644
- index 0000000..51b6ae8
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/ties/F1X1.htm
- @@ -0,0 +1,55 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Ties Ranking(1x1)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Ties
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-tiesF1X1%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/ties" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/ties/F2X2.htm b/aCis_datapack/data/html/mods/tournament/ranking/ties/F2X2.htm
- new file mode 100644
- index 0000000..29d7c15
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/ties/F2X2.htm
- @@ -0,0 +1,55 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Ties Ranking(2x2)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Ties
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-tiesF2X2%
- +
- +
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/ties" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/ties/F3X3.htm b/aCis_datapack/data/html/mods/tournament/ranking/ties/F3X3.htm
- new file mode 100644
- index 0000000..603be3a
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/ties/F3X3.htm
- @@ -0,0 +1,55 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Ties Ranking(3x3)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Ties
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-tiesF3X3%
- +
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/ties" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/ties/F4X4.htm b/aCis_datapack/data/html/mods/tournament/ranking/ties/F4X4.htm
- new file mode 100644
- index 0000000..e4393b4
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/ties/F4X4.htm
- @@ -0,0 +1,55 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Ties Ranking(4x4)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Ties
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-tiesF4X4%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/ties" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/ties/F5X5.htm b/aCis_datapack/data/html/mods/tournament/ranking/ties/F5X5.htm
- new file mode 100644
- index 0000000..0d7affa
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/ties/F5X5.htm
- @@ -0,0 +1,55 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Ties Ranking (5x5)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Ties
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-tiesF5X5%
- +
- +
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/ties" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/ties/F9X9.htm b/aCis_datapack/data/html/mods/tournament/ranking/ties/F9X9.htm
- new file mode 100644
- index 0000000..a78a158
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/ties/F9X9.htm
- @@ -0,0 +1,57 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Global Ranking (9x9)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Ties
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-tiesF9X9%
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/ties" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/victories.htm b/aCis_datapack/data/html/mods/tournament/ranking/victories.htm
- new file mode 100644
- index 0000000..74093b6
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/victories.htm
- @@ -0,0 +1,148 @@
- +<html><body>
- +
- +<table border="1" width="320" bgcolor="000000">
- +<tr>
- +<td width=99 align=center>Tournament Points: <font color=LEVEL>%tourPoints%</font><br1>
- +</td>
- +</tr>
- +</table>
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>(Victories) Select a Mode:</font></td>
- +<td width=50 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>1x1 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F1X1 victories"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_1 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>2x2 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F2X2 victories"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_2 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>3x3 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F3X3 victories"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_3 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>4x4 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F4X4 victories"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_4 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>5x5 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F5X5 victories"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_5 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +<td fixwidth=190 align=center>
- +<font color=LEVEL>9x9 MODE</font><br1>
- +<a action="bypass bp_tournamentRanking F9X9 victories"><font color=009099>Check Ranking</font></a>
- +</td>
- +<td fixwidth=32 height=35>
- +<img src=l2ui_ch3.calculate1_9 width=32 height=32>
- +</td>
- +</tr>
- +</table>
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/victories/F1X1.htm b/aCis_datapack/data/html/mods/tournament/ranking/victories/F1X1.htm
- new file mode 100644
- index 0000000..e19840f
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/victories/F1X1.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Victories Ranking (1x1)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-victoriesF1X1%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/victories" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/victories/F2X2.htm b/aCis_datapack/data/html/mods/tournament/ranking/victories/F2X2.htm
- new file mode 100644
- index 0000000..61176eb
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/victories/F2X2.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Victories Ranking (2x2)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-victoriesF2X2%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/victories" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/victories/F3X3.htm b/aCis_datapack/data/html/mods/tournament/ranking/victories/F3X3.htm
- new file mode 100644
- index 0000000..10cb636
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/victories/F3X3.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Victories Ranking (3x3)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-victoriesF3X3%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/victories" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/victories/F4X4.htm b/aCis_datapack/data/html/mods/tournament/ranking/victories/F4X4.htm
- new file mode 100644
- index 0000000..47af928
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/victories/F4X4.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Victories Ranking (4x4)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-victoriesF4X4%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/victories" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/victories/F5X5.htm b/aCis_datapack/data/html/mods/tournament/ranking/victories/F5X5.htm
- new file mode 100644
- index 0000000..594ccae
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/victories/F5X5.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Victories Ranking (5x5)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-victoriesF5X5%
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/victories" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/victories/F9X9.htm b/aCis_datapack/data/html/mods/tournament/ranking/victories/F9X9.htm
- new file mode 100644
- index 0000000..3f87e17
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/victories/F9X9.htm
- @@ -0,0 +1,55 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Victories Ranking (9x9)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + Victories
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-victoriesF9X9%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/victories" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/wdt/F1X1.htm b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F1X1.htm
- new file mode 100644
- index 0000000..b6476f8
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F1X1.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Global Ranking (1x1)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + W/D/T
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-wdtF1X1%
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/global" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/wdt/F2X2.htm b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F2X2.htm
- new file mode 100644
- index 0000000..235866c
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F2X2.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Global Ranking (2x2)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + W/D/T
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-wdtF2X2%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/global" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/wdt/F3X3.htm b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F3X3.htm
- new file mode 100644
- index 0000000..bdefa5d
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F3X3.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Global Ranking (3x3)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + W/D/T
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-wdtF3X3%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/global" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/wdt/F4X4.htm b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F4X4.htm
- new file mode 100644
- index 0000000..ec04ca1
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F4X4.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Global Ranking (4x4)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + W/D/T
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-wdtF4X4%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/global" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/wdt/F5X5.htm b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F5X5.htm
- new file mode 100644
- index 0000000..a9bbf4a
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F5X5.htm
- @@ -0,0 +1,55 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Global Ranking (5x5)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + W/D/T
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-wdtF5X5%
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/global" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/ranking/wdt/F9X9.htm b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F9X9.htm
- new file mode 100644
- index 0000000..ed3d56c
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/ranking/wdt/F9X9.htm
- @@ -0,0 +1,54 @@
- +<html><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<br>
- +<table border="0" width="320" bgcolor="000000">
- +<tr>
- +
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019>Global Ranking (9x9)</font></td>
- +<td width=30 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +<table width=300 bgcolor=000000>
- + <tr>
- + <td fixwidth=5></td>
- + <td align=center fixwidth=20>
- + #
- + </td>
- + <td align=center fixwidth=75>
- + Player
- + </td>
- + <td align=center fixwidth=50>
- + W/D/T
- + </td>
- + <td align=center fixwidth=50>
- + Action
- + </td>
- + </tr>
- +
- +</table>
- +%ranking-wdtF9X9%
- +
- +
- +
- +
- +<br>
- +<table width=314 bgcolor=000000>
- + <tr>
- + <td fixwidth=50></td>
- + <td align=center><button value="Back" action="bypass bp_showTournamentPage ranking/global" width=65 height=19 back="L2UI_ch3.smallbutton2_over" fore="L2UI_ch3.smallbutton2"></td>
- + <td fixwidth=50></td>
- + </tr>
- +</table>
- +
- +
- +
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/status/1x1.htm b/aCis_datapack/data/html/mods/tournament/status/1x1.htm
- new file mode 100644
- index 0000000..c45a0fb
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/status/1x1.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 1x1 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 1x1 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (1x1)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF1X1%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (1x1)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF1X1%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF1X1%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (1x1):</font> %damageF1X1%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF1X1%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/status/2x2.htm b/aCis_datapack/data/html/mods/tournament/status/2x2.htm
- new file mode 100644
- index 0000000..33f7848
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/status/2x2.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 2x2 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 2x2 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (2x2)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF2X2%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (2x2)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF2X2%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF2X2%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (1x1):</font> %damageF2X2%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF2X2%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/status/3x3.htm b/aCis_datapack/data/html/mods/tournament/status/3x3.htm
- new file mode 100644
- index 0000000..da41c65
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/status/3x3.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 3x3 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 3x3 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (3x3)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF3X3%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (3x3)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF3X3%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF3X3%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (3x3):</font> %damageF3X3%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF3X3%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/status/4x4.htm b/aCis_datapack/data/html/mods/tournament/status/4x4.htm
- new file mode 100644
- index 0000000..9416d63
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/status/4x4.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 4x4 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 4x4 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (4x4)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF4X4%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (4x4)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF4X4%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF4X4%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (4x4):</font> %damageF4X4%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF4X4%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/status/5x5.htm b/aCis_datapack/data/html/mods/tournament/status/5x5.htm
- new file mode 100644
- index 0000000..d525eaf
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/status/5x5.htm
- @@ -0,0 +1,183 @@
- +<html><title>My Tour</title><body>
- +
- +<center>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 5x5 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 5x5 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (5x5)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF5X5%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (5x5)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF5X5%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF5X5%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (5x5):</font> %damageF5X5%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF5X5%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
- \ No newline at end of file
- diff --git a/aCis_datapack/data/html/mods/tournament/status/9x9.htm b/aCis_datapack/data/html/mods/tournament/status/9x9.htm
- new file mode 100644
- index 0000000..306ea0c
- --- /dev/null
- +++ b/aCis_datapack/data/html/mods/tournament/status/9x9.htm
- @@ -0,0 +1,180 @@
- +<html><title>My Tour</title><body>
- +
- +
- +<table border="1" width=316 bgcolor="000000">
- +<tr>
- +<td width=99 align=center><font color=LEVEL>%playerName%</font>
- +</td>
- +</tr>
- +</table>
- +<br>
- +
- +<table border="0" width="300" bgcolor="000000">
- +<tr>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +<td width=99 align=center> <font color=ff0019> 9x9 Details</font></td>
- +<td width=99 align=center> <img src="L2UI.bbs_boardmaster" width=16 height=16></td>
- +</tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 height=32 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>All statuses below refer to 9x9 mode</font>
- +</td>
- +
- +</tr>
- +</table>
- +<br>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>General (9x9)</font><br>
- + </td>
- + </tr>
- +
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>DPF:</font> %dpfF9X9%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>WDT:</font> %wdt%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Damage:</font> %totalDmg%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %totalFights%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td fixwidth=290>
- + <font color=LEVEL>Matches (9x9)</font><br>
- + </td>
- + <tr>
- + </tr>
- +</table>
- +
- +<table width=320 bgcolor=000000>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Victories:</font> %victoriesF9X9%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Defeats:</font> %defeatsF9X9%
- +
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Damage (9x9):</font> %damageF9X9%
- + <br>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Fights:</font> %fightsDoneF9X9%
- + <br>
- + </td>
- + </tr>
- + <tr>
- + <td fixwidth=5>
- + </td>
- + <td align=left>
- + <font color=ff0029>Total Kills:</font> %killstotal%
- + <br>
- + </td>
- +
- + </tr>
- +</table>
- +<br>
- +
- +
- +<table width=300 bgcolor=000000>
- +<tr>
- +<td fixwidth=5>
- +</td>
- +<td fixwidth=250 align=center>
- +<font color=LEVEL>Click on Fight to full check</font>
- +</td>
- +
- +</tr>
- +</table>
- +<table width=330 bgcolor=000000>
- + <tr>
- + <td fixwidth=30>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/1x1"><font color=FF0000>1x1</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/2x2"><font color=FF0000>2x2</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/3x3"><font color=FF0000>3x3</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/4x4"><font color=FF0000>4x4</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/5x5"><font color=FF0000>5x5</font></a>
- + </td>
- + <td>
- + <a action="bypass bp_showTournamentPage status/9x9"><font color=FF0000>9x9</font></a>
- + </td>
- + <td fixwidth=30>
- + </td>
- + </tr>
- +
- +
- +</table>
- +
- +
- +<center>
- +<a action="bypass bp_showTournamentPage myTour"> Back</a>
- +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
- +</center>
- +
- +
- +</body></html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement