Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: L2_GameServer_It/java/net/sf/l2j/gameserver/model/entity/TvTEvent.java
- ===================================================================
- --- L2_GameServer_It/java/net/sf/l2j/gameserver/model/entity/TvTEvent.java (revision 1433)
- +++ L2_GameServer_It/java/net/sf/l2j/gameserver/model/entity/TvTEvent.java (working copy)
- @@ -57,7 +57,7 @@
- }
- /** The teams of the TvTEvent<br> */
- - private static TvTEventTeam[] _teams = new TvTEventTeam[2]; // event only allow max 2 teams
- + private static TvTEventTeam[] _teams = new TvTEventTeam[3]; // event only allow max 2 teams
- /** The state of the TvTEvent<br> */
- private static EventState _state = EventState.INACTIVE;
- /** The spawn of the participation npc<br> */
- @@ -78,6 +78,7 @@
- {
- _teams[0] = new TvTEventTeam(Config.TVT_EVENT_TEAM_1_NAME, Config.TVT_EVENT_TEAM_1_COORDINATES);
- _teams[1] = new TvTEventTeam(Config.TVT_EVENT_TEAM_2_NAME, Config.TVT_EVENT_TEAM_2_COORDINATES);
- + _teams[2] = new TvTEventTeam(Config.TVT_EVENT_TEAM_3_NAME, Config.TVT_EVENT_TEAM_3_COORDINATES);
- }
- /**
- @@ -143,11 +144,12 @@
- setState(EventState.STARTING);
- // not enought participants
- - if (_teams[0].getParticipatedPlayerCount() < Config.TVT_EVENT_MIN_PLAYERS_IN_TEAMS || _teams[1].getParticipatedPlayerCount() < Config.TVT_EVENT_MIN_PLAYERS_IN_TEAMS)
- + if (_teams[0].getParticipatedPlayerCount() < Config.TVT_EVENT_MIN_PLAYERS_IN_TEAMS || _teams[1].getParticipatedPlayerCount() < Config.TVT_EVENT_MIN_PLAYERS_IN_TEAMS || _teams[2].getParticipatedPlayerCount() < Config.TVT_EVENT_MIN_PLAYERS_IN_TEAMS)
- {
- setState(EventState.INACTIVE);
- _teams[0].cleanMe();
- _teams[1].cleanMe();
- + _teams[2].cleanMe();
- unSpawnNpc();
- return false;
- }
- @@ -185,16 +187,16 @@
- */
- public static String calculateRewards()
- {
- - if (_teams[0].getPoints() == _teams[1].getPoints())
- + if (_teams[0].getPoints() == _teams[1].getPoints() || (_teams[0].getPoints() == _teams[2].getPoints() || _teams[1].getPoints() == _teams[2].getPoints()))
- {
- - if (_teams[0].getParticipatedPlayerCount() == 0 || _teams[1].getParticipatedPlayerCount() == 0)
- + if (_teams[0].getParticipatedPlayerCount() == 0 || _teams[1].getParticipatedPlayerCount() == 0 || _teams[2].getParticipatedPlayerCount() == 0)
- {
- // the fight cannot be completed
- setState(EventState.REWARDING);
- return "TvT Event: Event finish. No team won, cause of inactivity!";
- }
- - sysMsgToAllParticipants("TvT Event: Both teams are at a tie, next team to get a kill wins!");
- + sysMsgToAllParticipants("TvT Event: Teams are at a tie, next team to get a kill wins!");
- }
- while (_teams[0].getPoints() == _teams[1].getPoints())
- @@ -209,7 +211,7 @@
- setState(EventState.REWARDING); // after state REWARDING is set, nobody can point anymore
- - byte teamId = (byte)(_teams[0].getPoints() > _teams[1].getPoints() ? 0 : 1); // which team wins?
- + byte teamId = (byte)(_teams[0].getPoints() > _teams[1].getPoints() || (_teams[0].getPoints() > _teams[2].getPoints()) || (_teams[1].getPoints() > _teams[2].getPoints()) ? 0 : 1); // which team wins?
- TvTEventTeam team = _teams[teamId];
- for (String playerName : team.getParticipatedPlayerNames())
- @@ -292,6 +294,7 @@
- _teams[0].cleanMe();
- _teams[1].cleanMe();
- + _teams[2].cleanMe();
- setState(EventState.INACTIVE);
- }
- @@ -310,10 +313,12 @@
- byte teamId = 0;
- - if (_teams[0].getParticipatedPlayerCount() == _teams[1].getParticipatedPlayerCount())
- - teamId = (byte)(Rnd.get(2));
- + if (_teams[0].getParticipatedPlayerCount() == _teams[1].getParticipatedPlayerCount() || (_teams[0].getParticipatedPlayerCount() == _teams[2].getParticipatedPlayerCount() || (_teams[1].getParticipatedPlayerCount() == _teams[2].getParticipatedPlayerCount())))
- + teamId = (byte)(Rnd.get(3));
- else
- teamId = (byte)(_teams[0].getParticipatedPlayerCount() > _teams[1].getParticipatedPlayerCount() ? 1 : 0);
- + teamId = (byte)(_teams[0].getParticipatedPlayerCount() > _teams[2].getParticipatedPlayerCount() ? 1 : 0);
- + teamId = (byte)(_teams[1].getParticipatedPlayerCount() > _teams[2].getParticipatedPlayerCount() ? 1 : 0);
- return _teams[teamId].addPlayer(playerInstance);
- }
- @@ -357,6 +362,12 @@
- if (playerInstance != null)
- playerInstance.sendMessage(message);
- }
- +
- + for (L2PcInstance playerInstance : _teams[2].getParticipatedPlayers().values())
- + {
- + if (playerInstance != null)
- + playerInstance.sendMessage(message);
- + }
- }
- /**
- @@ -451,11 +462,11 @@
- npcHtmlMessage.setHtml("<html><head><title>TvT Event</title></head><body>Cursed weapon owners are not allowed to participate.</body></html>");
- else if (playerInstance.getKarma() > 0)
- npcHtmlMessage.setHtml("<html><head><title>TvT Event</title></head><body>Chaotic players are not allowed to participate.</body></html>");
- - else if (_teams[0].getParticipatedPlayerCount() >= Config.TVT_EVENT_MAX_PLAYERS_IN_TEAMS && _teams[1].getParticipatedPlayerCount() >= Config.TVT_EVENT_MAX_PLAYERS_IN_TEAMS)
- + else if (_teams[0].getParticipatedPlayerCount() >= Config.TVT_EVENT_MAX_PLAYERS_IN_TEAMS && _teams[1].getParticipatedPlayerCount() >= Config.TVT_EVENT_MAX_PLAYERS_IN_TEAMS && _teams[2].getParticipatedPlayerCount() >= Config.TVT_EVENT_MAX_PLAYERS_IN_TEAMS)
- npcHtmlMessage.setHtml("<html><head><title>TvT Event</title></head><body>Sorry the event is full!</body></html>");
- else if (playerLevel < Config.TVT_EVENT_MIN_LVL || playerLevel > Config.TVT_EVENT_MAX_LVL)
- npcHtmlMessage.setHtml("<html><head><title>TvT Event</title></head><body>Only players from level " + Config.TVT_EVENT_MIN_LVL + " to level " + Config.TVT_EVENT_MAX_LVL + " are allowed tro participate.</body></html>");
- - else if (_teams[0].getParticipatedPlayerCount() > 19 && _teams[1].getParticipatedPlayerCount() > 19)
- + else if (_teams[0].getParticipatedPlayerCount() > 19 && _teams[1].getParticipatedPlayerCount() > 19 && _teams[2].getParticipatedPlayerCount() > 19)
- npcHtmlMessage.setHtml("<html><head><title>TvT Event</title></head><body>The event is full! Maximum of " + Config.TVT_EVENT_MAX_PLAYERS_IN_TEAMS + " player are allowed in one team.</body></html>");
- else if (addParticipant(playerInstance))
- npcHtmlMessage.setHtml("<html><head><title>TvT Event</title></head><body>You are on the registration list now.</body></html>");
- @@ -723,7 +734,7 @@
- */
- public static byte getParticipantTeamId(String playerName)
- {
- - return (byte)(_teams[0].containsPlayer(playerName) ? 0 : (_teams[1].containsPlayer(playerName) ? 1 : -1));
- + return (byte)(_teams[0].containsPlayer(playerName) ? 0 : (_teams[1].containsPlayer(playerName) ? 1 : (_teams[2].containsPlayer(playerName) ? 2 : -1)));
- }
- /**
- @@ -734,7 +745,7 @@
- */
- public static int[] getParticipantTeamCoordinates(String playerName)
- {
- - return _teams[0].containsPlayer(playerName) ? _teams[0].getCoordinates() : (_teams[1].containsPlayer(playerName) ? _teams[1].getCoordinates() : null);
- + return _teams[0].containsPlayer(playerName) ? _teams[0].getCoordinates() : (_teams[1].containsPlayer(playerName) ? _teams[1].getCoordinates() : (_teams[2].containsPlayer(playerName) ? _teams[2].getCoordinates() : null));
- }
- @@ -746,7 +757,7 @@
- */
- public static boolean isPlayerParticipant(String playerName)
- {
- - return _teams[0].containsPlayer(playerName) || _teams[1].containsPlayer(playerName);
- + return _teams[0].containsPlayer(playerName) || _teams[1].containsPlayer(playerName) || _teams[2].containsPlayer(playerName);
- }
- /**
- @@ -756,7 +767,7 @@
- */
- public static int getParticipatedPlayersCount()
- {
- - return _teams[0].getParticipatedPlayerCount() + _teams[1].getParticipatedPlayerCount();
- + return _teams[0].getParticipatedPlayerCount() + _teams[1].getParticipatedPlayerCount() + _teams[2].getParticipatedPlayerCount();
- }
- /**
- @@ -766,7 +777,7 @@
- */
- public static String[] getTeamNames()
- {
- - return new String[]{_teams[0].getName(), _teams[1].getName()};
- + return new String[]{_teams[0].getName(), _teams[1].getName(), _teams[2].getName()};
- }
- /**
- @@ -776,7 +787,7 @@
- */
- public static int[] getTeamsPlayerCounts()
- {
- - return new int[]{_teams[0].getParticipatedPlayerCount(), _teams[1].getParticipatedPlayerCount()};
- + return new int[]{_teams[0].getParticipatedPlayerCount(), _teams[1].getParticipatedPlayerCount(), _teams[2].getParticipatedPlayerCount()};
- }
- /**
- @@ -786,6 +797,6 @@
- */
- public static int[] getTeamsPoints()
- {
- - return new int[]{_teams[0].getPoints(), _teams[1].getPoints()};
- + return new int[]{_teams[0].getPoints(), _teams[1].getPoints(), _teams[2].getPoints()};
- }
- }
- Index: L2_GameServer_It/java/net/sf/l2j/Config.java
- ===================================================================
- --- L2_GameServer_It/java/net/sf/l2j/Config.java (revision 1433)
- +++ L2_GameServer_It/java/net/sf/l2j/Config.java (working copy)
- @@ -863,6 +863,8 @@
- public static int[] TVT_EVENT_TEAM_1_COORDINATES = new int[3];
- public static String TVT_EVENT_TEAM_2_NAME;
- public static int[] TVT_EVENT_TEAM_2_COORDINATES = new int[3];
- + public static String TVT_EVENT_TEAM_3_NAME;
- + public static int[] TVT_EVENT_TEAM_3_COORDINATES = new int[3];
- public static List<int[]> TVT_EVENT_REWARDS = new FastList<int[]>();
- public static boolean TVT_EVENT_TARGET_TEAM_MEMBERS_ALLOWED;
- public static boolean TVT_EVENT_POTIONS_ALLOWED;
- @@ -1887,7 +1889,9 @@
- TVT_EVENT_START_LEAVE_TELEPORT_DELAY = Integer.parseInt(L2JModSettings.getProperty("TvTEventStartLeaveTeleportDelay", "20"));
- TVT_EVENT_TEAM_1_NAME = L2JModSettings.getProperty("TvTEventTeam1Name", "Team1");
- + TVT_EVENT_TEAM_2_NAME = L2JModSettings.getProperty("TvTEventTeam2Name", "Team2");
- propertySplit = L2JModSettings.getProperty("TvTEventTeam1Coordinates", "0,0,0").split(",");
- + propertySplit = L2JModSettings.getProperty("TvTEventTeam2Coordinates", "0,0,0").split(",");
- if (propertySplit.length < 3)
- {
- @@ -1899,9 +1903,13 @@
- TVT_EVENT_TEAM_1_COORDINATES[0] = Integer.parseInt(propertySplit[0]);
- TVT_EVENT_TEAM_1_COORDINATES[1] = Integer.parseInt(propertySplit[1]);
- TVT_EVENT_TEAM_1_COORDINATES[2] = Integer.parseInt(propertySplit[2]);
- +
- + TVT_EVENT_TEAM_2_COORDINATES[0] = Integer.parseInt(propertySplit[0]);
- + TVT_EVENT_TEAM_2_COORDINATES[1] = Integer.parseInt(propertySplit[1]);
- + TVT_EVENT_TEAM_2_COORDINATES[2] = Integer.parseInt(propertySplit[2]);
- - TVT_EVENT_TEAM_2_NAME = L2JModSettings.getProperty("TvTEventTeam2Name", "Team2");
- - propertySplit = L2JModSettings.getProperty("TvTEventTeam2Coordinates", "0,0,0").split(",");
- + TVT_EVENT_TEAM_3_NAME = L2JModSettings.getProperty("TvTEventTeam3Name", "Team2");
- + propertySplit = L2JModSettings.getProperty("TvTEventTeam3Coordinates", "0,0,0").split(",");
- if (propertySplit.length < 3)
- {
- @@ -1910,9 +1918,9 @@
- }
- else
- {
- - TVT_EVENT_TEAM_2_COORDINATES[0] = Integer.parseInt(propertySplit[0]);
- - TVT_EVENT_TEAM_2_COORDINATES[1] = Integer.parseInt(propertySplit[1]);
- - TVT_EVENT_TEAM_2_COORDINATES[2] = Integer.parseInt(propertySplit[2]);
- + TVT_EVENT_TEAM_3_COORDINATES[0] = Integer.parseInt(propertySplit[0]);
- + TVT_EVENT_TEAM_3_COORDINATES[1] = Integer.parseInt(propertySplit[1]);
- + TVT_EVENT_TEAM_3_COORDINATES[2] = Integer.parseInt(propertySplit[2]);
- propertySplit = L2JModSettings.getProperty("TvTEventReward", "57,100000").split(";");
- for (String reward : propertySplit)
- Index: L2_GameServer_It/java/config/l2jmods.properties
- ===================================================================
- --- L2_GameServer_It/java/config/l2jmods.properties (revision 1433)
- +++ L2_GameServer_It/java/config/l2jmods.properties (working copy)
- @@ -96,38 +96,54 @@
- #---------------------------------------------------------------
- # enable TvTEvent
- TvTEventEnabled = false
- +
- # Time Between TvT events (in minutes, 300 = 5 hours)
- TvTEventInterval = 300
- +
- # Registration timer (in minutes) from start of event.
- TvTEventParticipationTime = 60
- +
- # Event running time, in minutes
- TvTEventRunningTime = 20
- +
- # TvT Event NPC Details (create a custom npc of type L2TvTEventNpc)
- TvTEventParticipationNpcId = 70010
- TvTEventParticipationNpcCoordinates = 83425,148585,-3406
- +
- # Minimum amount of players allowed in each team
- TvTEventMinPlayersInTeams = 1
- TvTEventMaxPlayersInTeams = 20
- +
- # Level rules
- TvTEventMinPlayerLevel = 1
- TvTEventMaxPlayerLevel = 80
- +
- # Teleport delay Timers (in seconds)
- TvTEventRespawnTeleportDelay = 10
- TvTEventStartLeaveTeleportDelay = 10
- +
- # First Team Details (name, start and death x,y,z tp point)
- TvTEventTeam1Name = Team1
- TvTEventTeam1Coordinates = 148695,46725,-3414
- +
- # Second Team Details (name, start and death x,y,z tp point)
- TvTEventTeam2Name = Team2
- TvTEventTeam2Coordinates = 149999,46728,-3414
- +
- +# Third Team Details (name, start and death x,y,z tp point)
- +TvTEventTeam3Name = Team3
- +TvTEventTeam3Coordinates = 149999,46730,-3414
- +
- # Reward for winning team
- # itemId,amount;itemId,amount;itemId,amount;...
- # no ";" at the start or end
- TvTEventReward = 57,100000;5575,1000
- +
- # TvTEvent Rules
- TvTEventTargetTeamMembersAllowed = true
- TvTEventPotionsAllowed = false
- TvTEventSummonByItemAllowed = false
- +
- # Door id's to close/open on start/end
- # ex.: 1;2;3;4;5;6
- # no ";" at the start or end
- Index: L2_GameServer_It/java/net/sf/l2j/gameserver/model/actor/instance/L2TvTEventNpcInstance.java
- ===================================================================
- --- L2_GameServer_It/java/net/sf/l2j/gameserver/model/actor/instance/L2TvTEventNpcInstance.java (revision 1433)
- +++ L2_GameServer_It/java/net/sf/l2j/gameserver/model/actor/instance/L2TvTEventNpcInstance.java (working copy)
- @@ -68,6 +68,8 @@
- npcHtmlMessage.replace("%team1playercount%", String.valueOf(teamsPlayerCounts[0]));
- npcHtmlMessage.replace("%team2name%", Config.TVT_EVENT_TEAM_2_NAME);
- npcHtmlMessage.replace("%team2playercount%", String.valueOf(teamsPlayerCounts[1]));
- + npcHtmlMessage.replace("%team3name%", Config.TVT_EVENT_TEAM_3_NAME);
- + npcHtmlMessage.replace("%team3playercount%", String.valueOf(teamsPlayerCounts[2]));
- playerInstance.sendPacket(npcHtmlMessage);
- }
- }
- @@ -89,7 +91,10 @@
- npcHtmlMessage.replace("%team1points%", String.valueOf(teamsPointsCounts[0]));
- npcHtmlMessage.replace("%team2name%", Config.TVT_EVENT_TEAM_2_NAME);
- npcHtmlMessage.replace("%team2playercount%", String.valueOf(teamsPlayerCounts[1]));
- - npcHtmlMessage.replace("%team2points%", String.valueOf(teamsPointsCounts[1])); // <---- array index from 0 to 1 thx DaRkRaGe
- + npcHtmlMessage.replace("%team2points%", String.valueOf(teamsPointsCounts[1]));
- + npcHtmlMessage.replace("%team3name%", Config.TVT_EVENT_TEAM_3_NAME);
- + npcHtmlMessage.replace("%team3playercount%", String.valueOf(teamsPlayerCounts[2]));
- + npcHtmlMessage.replace("%team3points%", String.valueOf(teamsPointsCounts[2]));
- playerInstance.sendPacket(npcHtmlMessage);
- }
- }
- Index: Data/data/html/mods/TvTEventParticipation.htm
- ===================================================================
- --- Data/data/html/mods/TvTEventParticipation.htm (revision 680)
- +++ Data/data/html/mods/TvTEventParticipation.htm (working copy)
- @@ -1,7 +1,8 @@
- <html><title>TvT Event</title><body>
- Registration for TvT Event:<br><br><center>
- %team1name% (%team1playercount% players in)<br1>
- -%team2name% (%team2playercount% players in)<br>
- +%team2name% (%team2playercount% players in)<br1>
- +%team3name% (%team3playercount% players in)<br>
- <button value="Participate" action="bypass -h npc_%objectId%_tvt_event_participation" width=50 height=15 back="sek.cbui94" fore="sek.cbui92">
- <button value="Close" action="bypass -h npc_%objectId%_Close" width=50 height=15 back="sek.cbui94" fore="sek.cbui92">
- </center></body></html>
- Index: Data/data/html/mods/TvTEventStatus.htm
- ===================================================================
- --- Data/data/html/mods/TvTEventStatus.htm (revision 680)
- +++ Data/data/html/mods/TvTEventStatus.htm (working copy)
- @@ -1,5 +1,6 @@
- <html><title>TvT Event</title><body>
- Status:<br><br><center>
- %team1name% with %team1playercount% players and %team1points% points.<br1>
- -%team2name% with %team2playercount% players and %team2points% points.<br>
- +%team2name% with %team2playercount% players and %team2points% points.<br1>
- +%team3name% with %team3playercount% players and %team3points% points.<br>
- </center></body></html>
Advertisement
Add Comment
Please, Sign In to add comment